diff --git a/.gitignore b/.gitignore new file mode 100644 index 00000000..6060f82c --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +*.swp +.DS-Store diff --git a/README.md b/README.md index 3830a91d..8d1fb9a2 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,9 @@ # Recorder.js +A plugin for recording/exporting the output of Web Audio API nodes + +### Quick Note +Using akrennmair/libmp3lame-js for mp3 support causes conflict in licensing (see the license section below). I'm not sure if this can be merged back to the original or not. I'm also not sure which license override which. Use at your own risk; or if you happen to be a lawyer, please explain this to me? Thanks! -## A plugin for recording/exporting the output of Web Audio API nodes ### Syntax #### Constructor @@ -14,10 +17,10 @@ Creates a recorder instance. --------- #### Config -- **workerPath** - Path to recorder.js worker script. Defaults to 'js/recorderjs/recorderWorker.js' +- **workerPath** - Path to recorder.js worker script. Defaults to 'js/recorderjs/recorderWorker.js'. For the mp3 output format, you will need to use the 'recorderWorkerMP3.js'. - **bufferLen** - The length of the buffer that the internal JavaScriptNode uses to capture the audio. Can be tweaked if experiencing performance issues. Defaults to 4096. -- **callback** - A default callback to be used with `exportWAV`. -- **type** - The type of the Blob generated by `exportWAV`. Defaults to 'audio/wav'. +- **callback** - A default callback to be used with `exportAudio`. +- **type** - The type of the Blob generated by `exportAudio`. Defaults to 'audio/wav'. --------- #### Instance Methods @@ -31,7 +34,7 @@ Pretty self-explanatory... **record** will begin capturing audio and **stop** wi This will clear the recording. - rec.exportWAV([callback][, type]) + rec.exportAudio([callback][, type]) This will generate a Blob object containing the recording in WAV format. The callback will be called with the Blob as its sole argument. If a callback is not specified, the default callback (as defined in the config) will be used. If no default has been set, an error will be thrown. @@ -65,12 +68,9 @@ This will set the configuration for Recorder by passing in a config object. This method will force a download using the new anchor link *download* attribute. Filename defaults to 'output.wav'. -## License (MIT) - -Copyright © 2013 Matt Diamond - -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: +## License -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. +Original mattdiamond/Recorderjs is licensed under MIT. +akrennmair/libmp3lame-js is licensed under the same license as LAME which is LGPL. -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. \ No newline at end of file +I'm not sure how this will all works since I don't have a law degree. I wish it's just all WTFPL2. \ No newline at end of file diff --git a/example_simple_exportmp3.html b/example_simple_exportmp3.html new file mode 100644 index 00000000..21793eb0 --- /dev/null +++ b/example_simple_exportmp3.html @@ -0,0 +1,106 @@ + + + + + + Live input record and playback + + + + +

Recorder.js simple MP3 export example

+ +

Make sure you are using a recent version of Google Chrome.

+

Also before you enable microphone input either plug in headphones or turn the volume down if you want to avoid ear splitting feedback!

+ + + + +

Recordings

+ + +

Log

+

+
+  
+
+  
+
+
diff --git a/recorder.js b/recorder.js
index 52f3d0cd..f5edf02d 100644
--- a/recorder.js
+++ b/recorder.js
@@ -1,6 +1,7 @@
 (function(window){
 
-  var WORKER_PATH = 'recorderWorker.js';
+  var WORKER_WAV_PATH = 'recorderWorker.js';
+  var WORKER_MP3_PATH = 'recorderWorkerMP3.js';
 
   var Recorder = function(source, cfg){
     var config = cfg || {};
@@ -9,7 +10,7 @@
     this.node = (this.context.createScriptProcessor ||
                  this.context.createJavaScriptNode).call(this.context,
                                                          bufferLen, 2, 2);
-    var worker = new Worker(config.workerPath || WORKER_PATH);
+    var worker = new Worker(config.workerPath || WORKER_WAV_PATH);
     worker.postMessage({
       command: 'init',
       config: {
@@ -55,17 +56,17 @@
       worker.postMessage({ command: 'getBuffer' })
     }
 
-    this.exportWAV = function(cb, type){
+    this.exportAudio = function(cb, type) {
       currCallback = cb || config.callback;
       type = type || config.type || 'audio/wav';
       if (!currCallback) throw new Error('Callback not set');
       worker.postMessage({
-        command: 'exportWAV',
+        command: 'exportAudio',
         type: type
       });
     }
 
-    worker.onmessage = function(e){
+    worker.onmessage = function(e) {
       var blob = e.data;
       currCallback(blob);
     }
diff --git a/recorderWorker.js b/recorderWorker.js
index 08ad444c..cfe86752 100644
--- a/recorderWorker.js
+++ b/recorderWorker.js
@@ -11,8 +11,8 @@ this.onmessage = function(e){
     case 'record':
       record(e.data.buffer);
       break;
-    case 'exportWAV':
-      exportWAV(e.data.type);
+    case 'exportAudio':
+      exportAudio(e.data.type);
       break;
     case 'getBuffer':
       getBuffer();
@@ -33,7 +33,7 @@ function record(inputBuffer){
   recLength += inputBuffer[0].length;
 }
 
-function exportWAV(type){
+function exportAudio(type){
   var bufferL = mergeBuffers(recBuffersL, recLength);
   var bufferR = mergeBuffers(recBuffersR, recLength);
   var interleaved = interleave(bufferL, bufferR);
diff --git a/recorderWorkerMP3.js b/recorderWorkerMP3.js
new file mode 100644
index 00000000..c91151eb
--- /dev/null
+++ b/recorderWorkerMP3.js
@@ -0,0 +1,92 @@
+importScripts('vendor/libmp3lame.js');
+
+var mp3codec,
+  recBuffers = [],
+  recLength = 0;
+
+this.onmessage = function(e) {
+  switch (e.data.command) {
+    case 'init':
+      init(e.data.config);
+      break;
+    case 'record':
+      record(e.data.buffer);
+      break;
+    case 'exportAudio':
+      exportAudio();
+      break;
+    case 'clear':
+      clear();
+      break;
+  }
+};
+
+// The initilization default sample rate of the input audio at 44k
+// and scaled it down to 22k output. Not sure why this is necessary but is
+// needed for the sound to come out right.
+// The channels is set to mono and listenning to channel 1 which is the left channel.
+// There is some problem with stereo channel support.
+function init(config) {
+  if (!config) {
+    config = {};
+  }
+
+  mp3codec = Lame.init();
+
+  Lame.set_mode(mp3codec, config.mode || Lame.MONO);
+  Lame.set_num_channels(mp3codec, config.channels || 1);
+  Lame.set_out_samplerate(mp3codec, config.sampleRateOut || 22050);
+  Lame.set_in_samplerate(mp3codec, config.sampleRate || 44100);
+  Lame.set_bitrate(mp3codec, config.bitrate || 128);
+
+  Lame.init_params(mp3codec);
+}
+
+function record(buffer) {
+  var mp3data = Lame.encode_buffer_ieee_float(mp3codec, buffer[0], buffer[0]);
+  recBuffers.push(mp3data.data);
+  recLength += mp3data.data.length;
+}
+
+// Similar to the original exportWAV, it grabs the mp3 data from Lame encoder
+// object and build an mp3 blob with it.
+// When done, it posts the audio blob message to the worker.
+function exportAudio() {
+  var mp3data = Lame.encode_flush(mp3codec);
+
+  recBuffers.push(mp3data.data);
+  recLength += mp3data.data.length;
+
+  var buffer = mergeBuffers(recBuffers, recLength);
+  var view = new Uint8Array(buffer);
+
+  var audioBlob = new Blob([view], {
+    type: "audio/mp3"
+  });
+
+  this.postMessage(audioBlob);
+}
+
+// Close the Lame encoder object stream, empty out the data in buffer and
+// reset the buffer length stored.
+function clear() {
+  Lame.close(mp3codec);
+  mp3codec = null;
+
+  recBuffers = [];
+  recLength = 0;
+}
+
+function mergeBuffers(recBuffers, recLength) {
+  //Float32Array
+  var result = new Float32Array(recLength);
+
+  var offset = 0;
+
+  for (var i = 0; i < recBuffers.length; i++) {
+    result.set(recBuffers[i], offset);
+    offset += recBuffers[i].length;
+  }
+
+  return result;
+}
diff --git a/vendor/libmp3lame.js b/vendor/libmp3lame.js
new file mode 100644
index 00000000..44d5722e
--- /dev/null
+++ b/vendor/libmp3lame.js
@@ -0,0 +1,62892 @@
+// libmp3lame.js - port of libmp3lame to JavaScript using emscripten
+// by Andreas Krennmair 
+
+var Lame = (function() {
+
+// Note: Some Emscripten settings will significantly limit the speed of the generated code.
+// Note: Some Emscripten settings may limit the speed of the generated code.
+try {
+  this['Module'] = Module;
+} catch(e) {
+  this['Module'] = Module = {};
+}
+
+// The environment setup code below is customized to use Module.
+// *** Environment setup code ***
+var ENVIRONMENT_IS_NODE = typeof process === 'object' && typeof require === 'function';
+var ENVIRONMENT_IS_WEB = typeof window === 'object';
+var ENVIRONMENT_IS_WORKER = typeof importScripts === 'function';
+var ENVIRONMENT_IS_SHELL = !ENVIRONMENT_IS_WEB && !ENVIRONMENT_IS_NODE && !ENVIRONMENT_IS_WORKER;
+
+if (ENVIRONMENT_IS_NODE) {
+  // Expose functionality in the same simple way that the shells work
+  // Note that we pollute the global namespace here, otherwise we break in node
+  Module['print'] = function(x) {
+    process['stdout'].write(x + '\n');
+  };
+  Module['printErr'] = function(x) {
+    process['stderr'].write(x + '\n');
+  };
+
+  var nodeFS = require('fs');
+  var nodePath = require('path');
+
+  Module['read'] = function(filename) {
+    filename = nodePath['normalize'](filename);
+    var ret = nodeFS['readFileSync'](filename).toString();
+    // The path is absolute if the normalized version is the same as the resolved.
+    if (!ret && filename != nodePath['resolve'](filename)) {
+      filename = path.join(__dirname, '..', 'src', filename);
+      ret = nodeFS['readFileSync'](filename).toString();
+    }
+    return ret;
+  };
+
+  Module['load'] = function(f) {
+    globalEval(read(f));
+  };
+
+  if (!Module['arguments']) {
+    Module['arguments'] = process['argv'].slice(2);
+  }
+}
+
+if (ENVIRONMENT_IS_SHELL) {
+  Module['print'] = print;
+  if (typeof printErr != 'undefined') Module['printErr'] = printErr; // not present in v8 or older sm
+
+  // Polyfill over SpiderMonkey/V8 differences
+  if (typeof read != 'undefined') {
+    Module['read'] = read;
+  } else {
+    Module['read'] = function(f) { snarf(f) };
+  }
+
+  if (!Module['arguments']) {
+    if (typeof scriptArgs != 'undefined') {
+      Module['arguments'] = scriptArgs;
+    } else if (typeof arguments != 'undefined') {
+      Module['arguments'] = arguments;
+    }
+  }
+}
+
+if (ENVIRONMENT_IS_WEB && !ENVIRONMENT_IS_WORKER) {
+  if (!Module['print']) {
+    Module['print'] = function(x) {
+      console.log(x);
+    };
+  }
+
+  if (!Module['printErr']) {
+    Module['printErr'] = function(x) {
+      console.log(x);
+    };
+  }
+}
+
+if (ENVIRONMENT_IS_WEB || ENVIRONMENT_IS_WORKER) {
+  Module['read'] = function(url) {
+    var xhr = new XMLHttpRequest();
+    xhr.open('GET', url, false);
+    xhr.send(null);
+    return xhr.responseText;
+  };
+
+  if (!Module['arguments']) {
+    if (typeof arguments != 'undefined') {
+      Module['arguments'] = arguments;
+    }
+  }
+}
+
+if (ENVIRONMENT_IS_WORKER) {
+  // We can do very little here...
+  var TRY_USE_DUMP = false;
+  if (!Module['print']) {
+    Module['print'] = (TRY_USE_DUMP && (typeof(dump) !== "undefined") ? (function(x) {
+      dump(x);
+    }) : (function(x) {
+      // self.postMessage(x); // enable this if you want stdout to be sent as messages
+    }));
+  }
+
+  Module['load'] = importScripts;
+}
+
+if (!ENVIRONMENT_IS_WORKER && !ENVIRONMENT_IS_WEB && !ENVIRONMENT_IS_NODE && !ENVIRONMENT_IS_SHELL) {
+  // Unreachable because SHELL is dependant on the others
+  throw 'Unknown runtime environment. Where are we?';
+}
+
+function globalEval(x) {
+  eval.call(null, x);
+}
+if (!Module['load'] == 'undefined' && Module['read']) {
+  Module['load'] = function(f) {
+    globalEval(Module['read'](f));
+  };
+}
+if (!Module['print']) {
+  Module['print'] = function(){};
+}
+if (!Module['printErr']) {
+  Module['printErr'] = Module['print'];
+}
+if (!Module['arguments']) {
+  Module['arguments'] = [];
+}
+// *** Environment setup code ***
+
+// Closure helpers
+Module.print = Module['print'];
+Module.printErr = Module['printErr'];
+
+// Callbacks
+if (!Module['preRun']) Module['preRun'] = [];
+if (!Module['postRun']) Module['postRun'] = [];
+
+  
+// === Auto-generated preamble library stuff ===
+
+//========================================
+// Runtime code shared with compiler
+//========================================
+
+var Runtime = {
+  stackSave: function () {
+    return STACKTOP;
+  },
+  stackRestore: function (stackTop) {
+    STACKTOP = stackTop;
+  },
+  forceAlign: function (target, quantum) {
+    quantum = quantum || 4;
+    if (quantum == 1) return target;
+    if (isNumber(target) && isNumber(quantum)) {
+      return Math.ceil(target/quantum)*quantum;
+    } else if (isNumber(quantum) && isPowerOfTwo(quantum)) {
+      var logg = log2(quantum);
+      return '((((' +target + ')+' + (quantum-1) + ')>>' + logg + ')<<' + logg + ')';
+    }
+    return 'Math.ceil((' + target + ')/' + quantum + ')*' + quantum;
+  },
+  isNumberType: function (type) {
+    return type in Runtime.INT_TYPES || type in Runtime.FLOAT_TYPES;
+  },
+  isPointerType: function isPointerType(type) {
+  return type[type.length-1] == '*';
+},
+  isStructType: function isStructType(type) {
+  if (isPointerType(type)) return false;
+  if (/^\[\d+\ x\ (.*)\]/.test(type)) return true; // [15 x ?] blocks. Like structs
+  if (/?/.test(type)) return true; // { i32, i8 } etc. - anonymous struct types
+  // See comment in isStructPointerType()
+  return type[0] == '%';
+},
+  INT_TYPES: {"i1":0,"i8":0,"i16":0,"i32":0,"i64":0},
+  FLOAT_TYPES: {"float":0,"double":0},
+  BITSHIFT64_SHL: 0,
+  BITSHIFT64_ASHR: 1,
+  BITSHIFT64_LSHR: 2,
+  bitshift64: function (low, high, op, bits) {
+    var ret;
+    var ander = Math.pow(2, bits)-1;
+    if (bits < 32) {
+      switch (op) {
+        case Runtime.BITSHIFT64_SHL:
+          ret = [low << bits, (high << bits) | ((low&(ander << (32 - bits))) >>> (32 - bits))];
+          break;
+        case Runtime.BITSHIFT64_ASHR:
+          ret = [(((low >>> bits ) | ((high&ander) << (32 - bits))) >> 0) >>> 0, (high >> bits) >>> 0];
+          break;
+        case Runtime.BITSHIFT64_LSHR:
+          ret = [((low >>> bits) | ((high&ander) << (32 - bits))) >>> 0, high >>> bits];
+          break;
+      }
+    } else if (bits == 32) {
+      switch (op) {
+        case Runtime.BITSHIFT64_SHL:
+          ret = [0, low];
+          break;
+        case Runtime.BITSHIFT64_ASHR:
+          ret = [high, (high|0) < 0 ? ander : 0];
+          break;
+        case Runtime.BITSHIFT64_LSHR:
+          ret = [high, 0];
+          break;
+      }
+    } else { // bits > 32
+      switch (op) {
+        case Runtime.BITSHIFT64_SHL:
+          ret = [0, low << (bits - 32)];
+          break;
+        case Runtime.BITSHIFT64_ASHR:
+          ret = [(high >> (bits - 32)) >>> 0, (high|0) < 0 ? ander : 0];
+          break;
+        case Runtime.BITSHIFT64_LSHR:
+          ret = [high >>>  (bits - 32) , 0];
+          break;
+      }
+    }
+    HEAP32[tempDoublePtr>>2] = ret[0]; // cannot use utility functions since we are in runtime itself
+    HEAP32[tempDoublePtr+4>>2] = ret[1];
+  },
+  or64: function (x, y) {
+    var l = (x | 0) | (y | 0);
+    var h = (Math.round(x / 4294967296) | Math.round(y / 4294967296)) * 4294967296;
+    return l + h;
+  },
+  and64: function (x, y) {
+    var l = (x | 0) & (y | 0);
+    var h = (Math.round(x / 4294967296) & Math.round(y / 4294967296)) * 4294967296;
+    return l + h;
+  },
+  xor64: function (x, y) {
+    var l = (x | 0) ^ (y | 0);
+    var h = (Math.round(x / 4294967296) ^ Math.round(y / 4294967296)) * 4294967296;
+    return l + h;
+  },
+  getNativeTypeSize: function (type, quantumSize) {
+    if (Runtime.QUANTUM_SIZE == 1) return 1;
+    var size = {
+      '%i1': 1,
+      '%i8': 1,
+      '%i16': 2,
+      '%i32': 4,
+      '%i64': 8,
+      "%float": 4,
+      "%double": 8
+    }['%'+type]; // add '%' since float and double confuse Closure compiler as keys, and also spidermonkey as a compiler will remove 's from '_i8' etc
+    if (!size) {
+      if (type.charAt(type.length-1) == '*') {
+        size = Runtime.QUANTUM_SIZE; // A pointer
+      } else if (type[0] == 'i') {
+        var bits = parseInt(type.substr(1));
+        assert(bits % 8 == 0);
+        size = bits/8;
+      }
+    }
+    return size;
+  },
+  getNativeFieldSize: function (type) {
+    return Math.max(Runtime.getNativeTypeSize(type), Runtime.QUANTUM_SIZE);
+  },
+  dedup: function dedup(items, ident) {
+  var seen = {};
+  if (ident) {
+    return items.filter(function(item) {
+      if (seen[item[ident]]) return false;
+      seen[item[ident]] = true;
+      return true;
+    });
+  } else {
+    return items.filter(function(item) {
+      if (seen[item]) return false;
+      seen[item] = true;
+      return true;
+    });
+  }
+},
+  set: function set() {
+  var args = typeof arguments[0] === 'object' ? arguments[0] : arguments;
+  var ret = {};
+  for (var i = 0; i < args.length; i++) {
+    ret[args[i]] = 0;
+  }
+  return ret;
+},
+  calculateStructAlignment: function calculateStructAlignment(type) {
+    type.flatSize = 0;
+    type.alignSize = 0;
+    var diffs = [];
+    var prev = -1;
+    type.flatIndexes = type.fields.map(function(field) {
+      var size, alignSize;
+      if (Runtime.isNumberType(field) || Runtime.isPointerType(field)) {
+        size = Runtime.getNativeTypeSize(field); // pack char; char; in structs, also char[X]s.
+        alignSize = size;
+      } else if (Runtime.isStructType(field)) {
+        size = Types.types[field].flatSize;
+        alignSize = Types.types[field].alignSize;
+      } else {
+        throw 'Unclear type in struct: ' + field + ', in ' + type.name_ + ' :: ' + dump(Types.types[type.name_]);
+      }
+      alignSize = type.packed ? 1 : Math.min(alignSize, Runtime.QUANTUM_SIZE);
+      type.alignSize = Math.max(type.alignSize, alignSize);
+      var curr = Runtime.alignMemory(type.flatSize, alignSize); // if necessary, place this on aligned memory
+      type.flatSize = curr + size;
+      if (prev >= 0) {
+        diffs.push(curr-prev);
+      }
+      prev = curr;
+      return curr;
+    });
+    type.flatSize = Runtime.alignMemory(type.flatSize, type.alignSize);
+    if (diffs.length == 0) {
+      type.flatFactor = type.flatSize;
+    } else if (Runtime.dedup(diffs).length == 1) {
+      type.flatFactor = diffs[0];
+    }
+    type.needsFlattening = (type.flatFactor != 1);
+    return type.flatIndexes;
+  },
+  generateStructInfo: function (struct, typeName, offset) {
+    var type, alignment;
+    if (typeName) {
+      offset = offset || 0;
+      type = (typeof Types === 'undefined' ? Runtime.typeInfo : Types.types)[typeName];
+      if (!type) return null;
+      if (type.fields.length != struct.length) {
+        printErr('Number of named fields must match the type for ' + typeName + ': possibly duplicate struct names. Cannot return structInfo');
+        return null;
+      }
+      alignment = type.flatIndexes;
+    } else {
+      var type = { fields: struct.map(function(item) { return item[0] }) };
+      alignment = Runtime.calculateStructAlignment(type);
+    }
+    var ret = {
+      __size__: type.flatSize
+    };
+    if (typeName) {
+      struct.forEach(function(item, i) {
+        if (typeof item === 'string') {
+          ret[item] = alignment[i] + offset;
+        } else {
+          // embedded struct
+          var key;
+          for (var k in item) key = k;
+          ret[key] = Runtime.generateStructInfo(item[key], type.fields[i], alignment[i]);
+        }
+      });
+    } else {
+      struct.forEach(function(item, i) {
+        ret[item[1]] = alignment[i];
+      });
+    }
+    return ret;
+  },
+  dynCall: function (sig, ptr, args) {
+    if (args && args.length) {
+      return FUNCTION_TABLE[ptr].apply(null, args);
+    } else {
+      return FUNCTION_TABLE[ptr]();
+    }
+  },
+  addFunction: function (func, sig) {
+    assert(sig);
+    var table = FUNCTION_TABLE; // TODO: support asm
+    var ret = table.length;
+    table.push(func);
+    table.push(0);
+    return ret;
+  },
+  warnOnce: function (text) {
+    if (!Runtime.warnOnce.shown) Runtime.warnOnce.shown = {};
+    if (!Runtime.warnOnce.shown[text]) {
+      Runtime.warnOnce.shown[text] = 1;
+      Module.printErr(text);
+    }
+  },
+  funcWrappers: {},
+  getFuncWrapper: function (func, sig) {
+    assert(sig);
+    if (!Runtime.funcWrappers[func]) {
+      Runtime.funcWrappers[func] = function() {
+        Runtime.dynCall(sig, func, arguments);
+      };
+    }
+    return Runtime.funcWrappers[func];
+  },
+  UTF8Processor: function () {
+    var buffer = [];
+    var needed = 0;
+    this.processCChar = function (code) {
+      code = code & 0xff;
+      if (needed) {
+        buffer.push(code);
+        needed--;
+      }
+      if (buffer.length == 0) {
+        if (code < 128) return String.fromCharCode(code);
+        buffer.push(code);
+        if (code > 191 && code < 224) {
+          needed = 1;
+        } else {
+          needed = 2;
+        }
+        return '';
+      }
+      if (needed > 0) return '';
+      var c1 = buffer[0];
+      var c2 = buffer[1];
+      var c3 = buffer[2];
+      var ret;
+      if (c1 > 191 && c1 < 224) {
+        ret = String.fromCharCode(((c1 & 31) << 6) | (c2 & 63));
+      } else {
+        ret = String.fromCharCode(((c1 & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63));
+      }
+      buffer.length = 0;
+      return ret;
+    }
+    this.processJSString = function(string) {
+      string = unescape(encodeURIComponent(string));
+      var ret = [];
+      for (var i = 0; i < string.length; i++) {
+        ret.push(string.charCodeAt(i));
+      }
+      return ret;
+    }
+  },
+  stackAlloc: function stackAlloc(size) { var ret = STACKTOP;STACKTOP = (STACKTOP + size)|0;STACKTOP = ((((STACKTOP)+3)>>2)<<2); return ret; },
+  staticAlloc: function staticAlloc(size) { var ret = STATICTOP;STATICTOP = (STATICTOP + size)|0;STATICTOP = ((((STATICTOP)+3)>>2)<<2); if (STATICTOP >= TOTAL_MEMORY) enlargeMemory();; return ret; },
+  alignMemory: function alignMemory(size,quantum) { var ret = size = Math.ceil((size)/(quantum ? quantum : 4))*(quantum ? quantum : 4); return ret; },
+  makeBigInt: function makeBigInt(low,high,unsigned) { var ret = (unsigned ? (((low)>>>0)+(((high)>>>0)*4294967296)) : (((low)>>>0)+(((high)|0)*4294967296))); return ret; },
+  QUANTUM_SIZE: 4,
+  __dummy__: 0
+}
+
+
+
+
+var CorrectionsMonitor = {
+  MAX_ALLOWED: 0, // XXX
+  corrections: 0,
+  sigs: {},
+
+  note: function(type, succeed, sig) {
+    if (!succeed) {
+      this.corrections++;
+      if (this.corrections >= this.MAX_ALLOWED) abort('\n\nToo many corrections!');
+    }
+  },
+
+  print: function() {
+  }
+};
+
+
+
+
+
+//========================================
+// Runtime essentials
+//========================================
+
+var __THREW__ = 0; // Used in checking for thrown exceptions.
+var setjmpId = 1; // Used in setjmp/longjmp
+var setjmpLabels = {};
+
+var ABORT = false;
+
+var undef = 0;
+// tempInt is used for 32-bit signed values or smaller. tempBigInt is used
+// for 32-bit unsigned values or more than 32 bits. TODO: audit all uses of tempInt
+var tempValue, tempInt, tempBigInt, tempInt2, tempBigInt2, tempPair, tempBigIntI, tempBigIntR, tempBigIntS, tempBigIntP, tempBigIntD;
+var tempI64, tempI64b;
+var tempRet0, tempRet1, tempRet2, tempRet3, tempRet4, tempRet5, tempRet6, tempRet7, tempRet8, tempRet9;
+
+function abort(text) {
+  Module.print(text + ':\n' + (new Error).stack);
+  ABORT = true;
+  throw "Assertion: " + text;
+}
+
+function assert(condition, text) {
+  if (!condition) {
+    abort('Assertion failed: ' + text);
+  }
+}
+
+var globalScope = this;
+
+// C calling interface. A convenient way to call C functions (in C files, or
+// defined with extern "C").
+//
+// Note: LLVM optimizations can inline and remove functions, after which you will not be
+//       able to call them. Closure can also do so. To avoid that, add your function to
+//       the exports using something like
+//
+//         -s EXPORTED_FUNCTIONS='["_main", "_myfunc"]'
+//
+// @param ident      The name of the C function (note that C++ functions will be name-mangled - use extern "C")
+// @param returnType The return type of the function, one of the JS types 'number', 'string' or 'array' (use 'number' for any C pointer, and
+//                   'array' for JavaScript arrays and typed arrays).
+// @param argTypes   An array of the types of arguments for the function (if there are no arguments, this can be ommitted). Types are as in returnType,
+//                   except that 'array' is not possible (there is no way for us to know the length of the array)
+// @param args       An array of the arguments to the function, as native JS values (as in returnType)
+//                   Note that string arguments will be stored on the stack (the JS string will become a C string on the stack).
+// @return           The return value, as a native JS value (as in returnType)
+function ccall(ident, returnType, argTypes, args) {
+  return ccallFunc(getCFunc(ident), returnType, argTypes, args);
+}
+Module["ccall"] = ccall;
+
+// Returns the C function with a specified identifier (for C++, you need to do manual name mangling)
+function getCFunc(ident) {
+  try {
+    var func = eval('_' + ident);
+  } catch(e) {
+    try {
+      func = globalScope['Module']['_' + ident]; // closure exported function
+    } catch(e) {}
+  }
+  assert(func, 'Cannot call unknown function ' + ident + ' (perhaps LLVM optimizations or closure removed it?)');
+  return func;
+}
+
+// Internal function that does a C call using a function, not an identifier
+function ccallFunc(func, returnType, argTypes, args) {
+  var stack = 0;
+  function toC(value, type) {
+    if (type == 'string') {
+      if (value === null || value === undefined || value === 0) return 0; // null string
+      if (!stack) stack = Runtime.stackSave();
+      var ret = Runtime.stackAlloc(value.length+1);
+      writeStringToMemory(value, ret);
+      return ret;
+    } else if (type == 'array') {
+      if (!stack) stack = Runtime.stackSave();
+      var ret = Runtime.stackAlloc(value.length);
+      writeArrayToMemory(value, ret);
+      return ret;
+    }
+    return value;
+  }
+  function fromC(value, type) {
+    if (type == 'string') {
+      return Pointer_stringify(value);
+    }
+    assert(type != 'array');
+    return value;
+  }
+  var i = 0;
+  var cArgs = args ? args.map(function(arg) {
+    return toC(arg, argTypes[i++]);
+  }) : [];
+  var ret = fromC(func.apply(null, cArgs), returnType);
+  if (stack) Runtime.stackRestore(stack);
+  return ret;
+}
+
+// Returns a native JS wrapper for a C function. This is similar to ccall, but
+// returns a function you can call repeatedly in a normal way. For example:
+//
+//   var my_function = cwrap('my_c_function', 'number', ['number', 'number']);
+//   alert(my_function(5, 22));
+//   alert(my_function(99, 12));
+//
+function cwrap(ident, returnType, argTypes) {
+  var func = getCFunc(ident);
+  return function() {
+    return ccallFunc(func, returnType, argTypes, Array.prototype.slice.call(arguments));
+  }
+}
+Module["cwrap"] = cwrap;
+
+// Sets a value in memory in a dynamic way at run-time. Uses the
+// type data. This is the same as makeSetValue, except that
+// makeSetValue is done at compile-time and generates the needed
+// code then, whereas this function picks the right code at
+// run-time.
+// Note that setValue and getValue only do *aligned* writes and reads!
+// Note that ccall uses JS types as for defining types, while setValue and
+// getValue need LLVM types ('i8', 'i32') - this is a lower-level operation
+function setValue(ptr, value, type, noSafe) {
+  type = type || 'i8';
+  if (type.charAt(type.length-1) === '*') type = 'i32'; // pointers are 32-bit
+    switch(type) {
+      case 'i1': HEAP8[(ptr)]=value; break;
+      case 'i8': HEAP8[(ptr)]=value; break;
+      case 'i16': HEAP16[((ptr)>>1)]=value; break;
+      case 'i32': HEAP32[((ptr)>>2)]=value; break;
+      case 'i64': (tempI64 = [value>>>0,Math.min(Math.floor((value)/4294967296), 4294967295)>>>0],HEAP32[((ptr)>>2)]=tempI64[0],HEAP32[(((ptr)+(4))>>2)]=tempI64[1]); break;
+      case 'float': HEAPF32[((ptr)>>2)]=value; break;
+      case 'double': (HEAPF64[(tempDoublePtr)>>3]=value,HEAP32[((ptr)>>2)]=HEAP32[((tempDoublePtr)>>2)],HEAP32[(((ptr)+(4))>>2)]=HEAP32[(((tempDoublePtr)+(4))>>2)]); break;
+      default: abort('invalid type for setValue: ' + type);
+    }
+}
+Module['setValue'] = setValue;
+
+// Parallel to setValue.
+function getValue(ptr, type, noSafe) {
+  type = type || 'i8';
+  if (type.charAt(type.length-1) === '*') type = 'i32'; // pointers are 32-bit
+    switch(type) {
+      case 'i1': return HEAP8[(ptr)];
+      case 'i8': return HEAP8[(ptr)];
+      case 'i16': return HEAP16[((ptr)>>1)];
+      case 'i32': return HEAP32[((ptr)>>2)];
+      case 'i64': return HEAP32[((ptr)>>2)];
+      case 'float': return HEAPF32[((ptr)>>2)];
+      case 'double': return (HEAP32[((tempDoublePtr)>>2)]=HEAP32[((ptr)>>2)],HEAP32[(((tempDoublePtr)+(4))>>2)]=HEAP32[(((ptr)+(4))>>2)],HEAPF64[(tempDoublePtr)>>3]);
+      default: abort('invalid type for setValue: ' + type);
+    }
+  return null;
+}
+Module['getValue'] = getValue;
+
+var ALLOC_NORMAL = 0; // Tries to use _malloc()
+var ALLOC_STACK = 1; // Lives for the duration of the current function call
+var ALLOC_STATIC = 2; // Cannot be freed
+var ALLOC_NONE = 3; // Do not allocate
+Module['ALLOC_NORMAL'] = ALLOC_NORMAL;
+Module['ALLOC_STACK'] = ALLOC_STACK;
+Module['ALLOC_STATIC'] = ALLOC_STATIC;
+Module['ALLOC_NONE'] = ALLOC_NONE;
+
+// Simple unoptimized memset - necessary during startup
+var _memset = function(ptr, value, num) {
+  var stop = ptr + num;
+  while (ptr < stop) {
+    HEAP8[(ptr++)]=value;
+  }
+}
+
+// allocate(): This is for internal use. You can use it yourself as well, but the interface
+//             is a little tricky (see docs right below). The reason is that it is optimized
+//             for multiple syntaxes to save space in generated code. So you should
+//             normally not use allocate(), and instead allocate memory using _malloc(),
+//             initialize it with setValue(), and so forth.
+// @slab: An array of data, or a number. If a number, then the size of the block to allocate,
+//        in *bytes* (note that this is sometimes confusing: the next parameter does not
+//        affect this!)
+// @types: Either an array of types, one for each byte (or 0 if no type at that position),
+//         or a single type which is used for the entire block. This only matters if there
+//         is initial data - if @slab is a number, then this does not matter at all and is
+//         ignored.
+// @allocator: How to allocate memory, see ALLOC_*
+function allocate(slab, types, allocator, ptr) {
+  var zeroinit, size;
+  if (typeof slab === 'number') {
+    zeroinit = true;
+    size = slab;
+  } else {
+    zeroinit = false;
+    size = slab.length;
+  }
+
+  var singleType = typeof types === 'string' ? types : null;
+
+  var ret;
+  if (allocator == ALLOC_NONE) {
+    ret = ptr;
+  } else {
+    ret = [_malloc, Runtime.stackAlloc, Runtime.staticAlloc][allocator === undefined ? ALLOC_STATIC : allocator](Math.max(size, singleType ? 1 : types.length));
+  }
+
+  if (zeroinit) {
+    _memset(ret, 0, size);
+    return ret;
+  }
+
+  if (singleType === 'i8') {
+    HEAPU8.set(new Uint8Array(slab), ret);
+    return ret;
+  }
+
+  var i = 0, type;
+  while (i < size) {
+    var curr = slab[i];
+
+    if (typeof curr === 'function') {
+      curr = Runtime.getFunctionIndex(curr);
+    }
+
+    type = singleType || types[i];
+    if (type === 0) {
+      i++;
+      continue;
+    }
+
+    if (type == 'i64') type = 'i32'; // special case: we have one i32 here, and one i32 later
+
+    setValue(ret+i, curr, type);
+    i += Runtime.getNativeTypeSize(type);
+  }
+
+  return ret;
+}
+Module['allocate'] = allocate;
+
+function Pointer_stringify(ptr, /* optional */ length) {
+  var utf8 = new Runtime.UTF8Processor();
+  var nullTerminated = typeof(length) == "undefined";
+  var ret = "";
+  var i = 0;
+  var t;
+  while (1) {
+    t = HEAPU8[((ptr)+(i))];
+    if (nullTerminated && t == 0) break;
+    ret += utf8.processCChar(t);
+    i += 1;
+    if (!nullTerminated && i == length) break;
+  }
+  return ret;
+}
+Module['Pointer_stringify'] = Pointer_stringify;
+
+function Array_stringify(array) {
+  var ret = "";
+  for (var i = 0; i < array.length; i++) {
+    ret += String.fromCharCode(array[i]);
+  }
+  return ret;
+}
+Module['Array_stringify'] = Array_stringify;
+
+// Memory management
+
+var PAGE_SIZE = 4096;
+function alignMemoryPage(x) {
+  return ((x+4095)>>12)<<12;
+}
+
+var HEAP;
+var HEAP8, HEAPU8, HEAP16, HEAPU16, HEAP32, HEAPU32, HEAPF32, HEAPF64;
+
+var STACK_ROOT, STACKTOP, STACK_MAX;
+var STATICTOP;
+function enlargeMemory() {
+  abort('Cannot enlarge memory arrays. Either (1) compile with -s TOTAL_MEMORY=X with X higher than the current value, (2) compile with ALLOW_MEMORY_GROWTH which adjusts the size at runtime but prevents some optimizations, or (3) set Module.TOTAL_MEMORY before the program runs.');
+}
+
+var TOTAL_STACK = Module['TOTAL_STACK'] || 5242880;
+var TOTAL_MEMORY = Module['TOTAL_MEMORY'] || 16777216;
+var FAST_MEMORY = Module['FAST_MEMORY'] || 2097152;
+
+// Initialize the runtime's memory
+// check for full engine support (use string 'subarray' to avoid closure compiler confusion)
+  assert(!!Int32Array && !!Float64Array && !!(new Int32Array(1)['subarray']) && !!(new Int32Array(1)['set']),
+         'Cannot fallback to non-typed array case: Code is too specialized');
+
+  var buffer = new ArrayBuffer(TOTAL_MEMORY);
+  HEAP8 = new Int8Array(buffer);
+  HEAP16 = new Int16Array(buffer);
+  HEAP32 = new Int32Array(buffer);
+  HEAPU8 = new Uint8Array(buffer);
+  HEAPU16 = new Uint16Array(buffer);
+  HEAPU32 = new Uint32Array(buffer);
+  HEAPF32 = new Float32Array(buffer);
+  HEAPF64 = new Float64Array(buffer);
+
+  // Endianness check (note: assumes compiler arch was little-endian)
+  HEAP32[0] = 255;
+  assert(HEAPU8[0] === 255 && HEAPU8[3] === 0, 'Typed arrays 2 must be run on a little-endian system');
+
+Module['HEAP'] = HEAP;
+Module['HEAP8'] = HEAP8;
+Module['HEAP16'] = HEAP16;
+Module['HEAP32'] = HEAP32;
+Module['HEAPU8'] = HEAPU8;
+Module['HEAPU16'] = HEAPU16;
+Module['HEAPU32'] = HEAPU32;
+Module['HEAPF32'] = HEAPF32;
+Module['HEAPF64'] = HEAPF64;
+
+STACK_ROOT = STACKTOP = Runtime.alignMemory(1);
+STACK_MAX = TOTAL_STACK; // we lose a little stack here, but TOTAL_STACK is nice and round so use that as the max
+
+var tempDoublePtr = Runtime.alignMemory(allocate(12, 'i8', ALLOC_STACK), 8);
+assert(tempDoublePtr % 8 == 0);
+function copyTempFloat(ptr) { // functions, because inlining this code is increases code size too much
+  HEAP8[tempDoublePtr] = HEAP8[ptr];
+  HEAP8[tempDoublePtr+1] = HEAP8[ptr+1];
+  HEAP8[tempDoublePtr+2] = HEAP8[ptr+2];
+  HEAP8[tempDoublePtr+3] = HEAP8[ptr+3];
+}
+function copyTempDouble(ptr) {
+  HEAP8[tempDoublePtr] = HEAP8[ptr];
+  HEAP8[tempDoublePtr+1] = HEAP8[ptr+1];
+  HEAP8[tempDoublePtr+2] = HEAP8[ptr+2];
+  HEAP8[tempDoublePtr+3] = HEAP8[ptr+3];
+  HEAP8[tempDoublePtr+4] = HEAP8[ptr+4];
+  HEAP8[tempDoublePtr+5] = HEAP8[ptr+5];
+  HEAP8[tempDoublePtr+6] = HEAP8[ptr+6];
+  HEAP8[tempDoublePtr+7] = HEAP8[ptr+7];
+}
+
+STATICTOP = STACK_MAX;
+assert(STATICTOP < TOTAL_MEMORY); // Stack must fit in TOTAL_MEMORY; allocations from here on may enlarge TOTAL_MEMORY
+
+var nullString = allocate(intArrayFromString('(null)'), 'i8', ALLOC_STACK);
+
+function callRuntimeCallbacks(callbacks) {
+  while(callbacks.length > 0) {
+    var callback = callbacks.shift();
+    var func = callback.func;
+    if (typeof func === 'number') {
+      if (callback.arg === undefined) {
+        Runtime.dynCall('v', func);
+      } else {
+        Runtime.dynCall('vi', func, [callback.arg]);
+      }
+    } else {
+      func(callback.arg === undefined ? null : callback.arg);
+    }
+  }
+}
+
+var __ATINIT__ = []; // functions called during startup
+var __ATMAIN__ = []; // functions called when main() is to be run
+var __ATEXIT__ = []; // functions called during shutdown
+
+function initRuntime() {
+  callRuntimeCallbacks(__ATINIT__);
+}
+function preMain() {
+  callRuntimeCallbacks(__ATMAIN__);
+}
+function exitRuntime() {
+  callRuntimeCallbacks(__ATEXIT__);
+
+  // Print summary of correction activity
+  CorrectionsMonitor.print();
+}
+
+// Tools
+
+// This processes a JS string into a C-line array of numbers, 0-terminated.
+// For LLVM-originating strings, see parser.js:parseLLVMString function
+function intArrayFromString(stringy, dontAddNull, length /* optional */) {
+  var ret = (new Runtime.UTF8Processor()).processJSString(stringy);
+  if (length) {
+    ret.length = length;
+  }
+  if (!dontAddNull) {
+    ret.push(0);
+  }
+  return ret;
+}
+Module['intArrayFromString'] = intArrayFromString;
+
+function intArrayToString(array) {
+  var ret = [];
+  for (var i = 0; i < array.length; i++) {
+    var chr = array[i];
+    if (chr > 0xFF) {
+      chr &= 0xFF;
+    }
+    ret.push(String.fromCharCode(chr));
+  }
+  return ret.join('');
+}
+Module['intArrayToString'] = intArrayToString;
+
+// Write a Javascript array to somewhere in the heap
+function writeStringToMemory(string, buffer, dontAddNull) {
+  var array = intArrayFromString(string, dontAddNull);
+  var i = 0;
+  while (i < array.length) {
+    var chr = array[i];
+    HEAP8[((buffer)+(i))]=chr
+    i = i + 1;
+  }
+}
+Module['writeStringToMemory'] = writeStringToMemory;
+
+function writeArrayToMemory(array, buffer) {
+  for (var i = 0; i < array.length; i++) {
+    HEAP8[((buffer)+(i))]=array[i];
+  }
+}
+Module['writeArrayToMemory'] = writeArrayToMemory;
+
+function unSign(value, bits, ignore, sig) {
+  if (value >= 0) {
+    return value;
+  }
+  return bits <= 32 ? 2*Math.abs(1 << (bits-1)) + value // Need some trickery, since if bits == 32, we are right at the limit of the bits JS uses in bitshifts
+                    : Math.pow(2, bits)         + value;
+  // TODO: clean up previous line
+}
+function reSign(value, bits, ignore, sig) {
+  if (value <= 0) {
+    return value;
+  }
+  var half = bits <= 32 ? Math.abs(1 << (bits-1)) // abs is needed if bits == 32
+                        : Math.pow(2, bits-1);
+  if (value >= half && (bits <= 32 || value > half)) { // for huge values, we can hit the precision limit and always get true here. so don't do that
+                                                       // but, in general there is no perfect solution here. With 64-bit ints, we get rounding and errors
+                                                       // TODO: In i64 mode 1, resign the two parts separately and safely
+    value = -2*half + value; // Cannot bitshift half, as it may be at the limit of the bits JS uses in bitshifts
+  }
+  return value;
+}
+
+// A counter of dependencies for calling run(). If we need to
+// do asynchronous work before running, increment this and
+// decrement it. Incrementing must happen in a place like
+// PRE_RUN_ADDITIONS (used by emcc to add file preloading).
+// Note that you can add dependencies in preRun, even though
+// it happens right before run - run will be postponed until
+// the dependencies are met.
+var runDependencies = 0;
+var runDependencyTracking = {};
+var calledRun = false;
+var runDependencyWatcher = null;
+function addRunDependency(id) {
+  runDependencies++;
+  if (Module['monitorRunDependencies']) {
+    Module['monitorRunDependencies'](runDependencies);
+  }
+  if (id) {
+    assert(!runDependencyTracking[id]);
+    runDependencyTracking[id] = 1;
+    if (runDependencyWatcher === null && typeof setInterval !== 'undefined') {
+      // Check for missing dependencies every few seconds
+      runDependencyWatcher = setInterval(function() {
+        var shown = false;
+        for (var dep in runDependencyTracking) {
+          if (!shown) {
+            shown = true;
+            Module.printErr('still waiting on run dependencies:');
+          }
+          Module.printErr('dependency: ' + dep);
+        }
+        if (shown) {
+          Module.printErr('(end of list)');
+        }
+      }, 6000);
+    }
+  } else {
+    Module.printErr('warning: run dependency added without ID');
+  }
+}
+Module['addRunDependency'] = addRunDependency;
+function removeRunDependency(id) {
+  runDependencies--;
+  if (Module['monitorRunDependencies']) {
+    Module['monitorRunDependencies'](runDependencies);
+  }
+  if (id) {
+    assert(runDependencyTracking[id]);
+    delete runDependencyTracking[id];
+  } else {
+    Module.printErr('warning: run dependency removed without ID');
+  }
+  if (runDependencies == 0) {
+    if (runDependencyWatcher !== null) {
+      clearInterval(runDependencyWatcher);
+      runDependencyWatcher = null;
+    } 
+    // If run has never been called, and we should call run (INVOKE_RUN is true, and Module.noInitialRun is not false)
+    if (!calledRun && shouldRunNow) run();
+  }
+}
+Module['removeRunDependency'] = removeRunDependency;
+
+Module["preloadedImages"] = {}; // maps url to image data
+Module["preloadedAudios"] = {}; // maps url to audio data
+
+// === Body ===
+
+
+
+assert(STATICTOP == STACK_MAX); assert(STACK_MAX == TOTAL_STACK);
+
+STATICTOP += 146184;
+
+assert(STATICTOP < TOTAL_MEMORY);
+
+
+
+
+
+
+
+
+var _tabsel_123;
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+var _stderr;
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+var _freqs;
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+var __ZTVSt9exception;
+
+
+var __ZTVN10__cxxabiv120__si_class_type_infoE;
+
+
+var __ZTISt9exception;
+
+
+
+
+
+
+
+
+
+var __ZNSt9bad_allocC1Ev;
+var __ZNSt9bad_allocD1Ev;
+var __ZNSt20bad_array_new_lengthC1Ev;
+var __ZNSt20bad_array_new_lengthD1Ev;
+var __ZNSt20bad_array_new_lengthD2Ev;
+allocate(512, "i8", ALLOC_NONE, 5242880);
+allocate(4096, "i8", ALLOC_NONE, 5243392);
+allocate([0,27,134,42,204,204,52,43,33,78,132,43,252,247,157,43,88,156,166,43,252,247,157,43,33,78,132,43,204,204,52,43,0,27,134,42,83,248,191,44,254,169,171,44,146,50,149,44,159,129,122,44,239,29,73,44,62,186,23,44,116,173,207,43,133,159,107,43,183,89,146,42,83,248,191,172,254,169,171,172,146,50,149,172,159,129,122,172,239,29,73,172,62,186,23,172,116,173,207,171,133,159,107,171,183,89,146,170,0,27,134,170,204,204,52,171,33,78,132,171,252,247,157,171,88,156,166,171,252,247,157,171,33,78,132,171,204,204,52,171,0,27,134,170,0,27,134,42,204,204,52,43,33,78,132,43,252,247,157,43,88,156,166,43,252,247,157,43,33,78,132,43,204,204,52,43,0,27,134,42,83,248,191,44,254,169,171,44,146,50,149,44,159,129,122,44,239,29,73,44,62,186,23,44,116,173,207,43,133,159,107,43,183,89,146,42,37,39,192,172,51,37,173,172,234,209,152,172,227,84,131,172,249,175,89,172,11,14,43,172,102,34,244,171,201,49,137,171,74,123,157,170,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,72,144,128,170,174,79,227,170,5,174,113,170,234,207,6,62,205,19,212,62,139,111,68,63,255,175,139,63,23,208,166,63,117,235,200,63,190,226,245,63,122,130,26,64,105,251,74,64,185,87,144,64,107,16,243,64,233,58,183,65,92,28,124,63,187,141,36,63,68,29,175,62,178,143,112,63,212,208,49,190,125,27,68,191,215,179,93,63,0,0,0,63,254,181,3,191,218,134,241,190,2,115,160,190,116,71,58,190,29,176,193,189,135,203,39,189,29,161,104,188,70,123,114,187,168,132,91,63,216,185,97,63,221,26,115,63,129,186,123,63,65,218,126,63,253,200,127,63,101,249,127,63,141,255,127,63,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,72,144,128,42,174,79,227,42,5,174,113,42,37,39,192,44,51,37,173,44,234,209,152,44,227,84,131,44,249,175,89,44,11,14,43,44,102,34,244,43,201,49,137,43,74,123,157,42,83,248,191,172,254,169,171,172,146,50,149,172,159,129,122,172,239,29,73,172,62,186,23,172,116,173,207,171,133,159,107,171,183,89,146,170,0,27,134,170,204,204,52,171,33,78,132,171,252,247,157,171,88,156,166,171,252,247,157,171,33,78,132,171,204,204,52,171,0,27,134,170], "i8", ALLOC_NONE, 5247488);
+allocate([137,158,227,63,229,83,236,63,167,94,245,63,155,20,249,63,14,217,252,63,123,143,234,63,218,151,217,63,226,132,191,63,124,145,168,63,0,0,128,63], "i8", ALLOC_NONE, 5248064);
+allocate([43,152,159,163,27,134,139,188,168,241,120,163,7,62,43,61,81,63,155,164,158,120,179,189,139,51,14,164,232,209,62,62,176,169,254,164,226,172,32,191], "i8", ALLOC_NONE, 5248104);
+allocate([0,0,0,0,9,0,0,0,9,0,0,0,0,0,0,0,102,102,166,64,0,0,250,66,102,102,134,192,154,153,201,192,154,153,153,64,0,0,128,63,0,0,0,0,0,0,0,0,2,0,0,0,21,0,0,0,236,81,120,63,0,0,160,64,0,0,200,66,1,0,0,0,9,0,0,0,9,0,0,0,0,0,0,0,154,153,169,64,0,0,250,66,102,102,102,192,51,51,179,192,0,0,144,64,0,0,192,63,0,0,0,0,0,0,0,0,2,0,0,0,21,0,0,0,205,204,172,63,0,0,160,64,0,0,200,66,2,0,0,0,9,0,0,0,9,0,0,0,0,0,0,0,51,51,179,64,0,0,250,66,205,204,12,192,0,0,96,192,51,51,51,64,0,0,0,64,0,0,0,0,0,0,0,0,2,0,0,0,21,0,0,0,82,184,190,63,0,0,160,64,0,0,200,66,3,0,0,0,9,0,0,0,9,0,0,0,1,0,0,0,154,153,185,64,0,0,2,67,102,102,230,191,51,51,51,192,102,102,38,64,0,0,64,64,0,0,128,192,0,0,0,0,2,0,0,0,20,0,0,0,133,235,209,63,0,0,160,64,0,0,200,66,4,0,0,0,9,0,0,0,9,0,0,0,1,0,0,0,0,0,192,64,0,0,7,67,51,51,51,191,205,204,140,191,205,204,140,63,0,0,96,64,0,0,0,193,0,0,0,0,2,0,0,0,0,0,0,0,184,30,229,63,0,0,160,64,0,0,200,66,5,0,0,0,9,0,0,0,9,0,0,0,1,0,0,0,205,204,204,64,0,0,12,67,0,0,0,63,205,204,204,62,0,0,240,192,0,0,128,64,0,0,64,193,23,183,81,57,0,0,0,0,0,0,0,0,154,153,249,63,0,0,160,64,0,0,200,66,6,0,0,0,9,0,0,0,9,0,0,0,1,0,0,0,51,51,211,64,0,0,17,67,31,133,43,63,102,102,38,63,51,51,107,193,0,0,208,64,0,0,152,193,23,183,209,57,0,0,0,0,0,0,0,0,51,51,19,64,0,0,160,64,0,0,200,66,7,0,0,0,9,0,0,0,9,0,0,0,1,0,0,0,51,51,211,64,0,0,17,67,205,204,76,63,0,0,64,63,154,153,157,193,0,0,0,65,0,0,176,193,82,73,29,58,0,0,0,0,0,0,0,0,205,204,44,64,0,0,160,64,0,0,200,66,8,0,0,0,9,0,0,0,9,0,0,0,1,0,0,0,51,51,211,64,0,0,17,67,154,153,153,63,51,51,147,63,0,0,220,193,0,0,32,65,0,0,184,193,52,128,55,58,0,0,0,0,0,0,0,0,0,0,0,0,0,0,160,64,0,0,200,66,9,0,0,0,9,0,0,0,9,0,0,0,1,0,0,0,51,51,211,64,0,0,17,67,205,204,204,63,205,204,204,63,0,0,16,194,0,0,48,65,0,0,200,193,23,183,81,58,0,0,0,0,0,0,0,0,0,0,0,0,0,0,160,64,0,0,200,66,10,0,0,0,9,0,0,0,9,0,0,0,1,0,0,0,51,51,211,64,0,0,17,67,0,0,0,64,0,0,0,64,0,0,16,194,0,0,64,65,0,0,200,193,23,183,81,58,0,0,0,0,0,0,0,0,0,0,0,0,0,0,160,64,0,0,200,66], "i8", ALLOC_NONE, 5248144);
+allocate([0,0,0,0,9,0,0,0,9,0,0,0,0,0,0,0,102,102,134,64,0,0,200,65,154,153,217,192,154,153,217,192,51,51,227,64,0,0,128,63,0,0,0,0,0,0,0,0,2,0,0,0,31,0,0,0,0,0,128,63,0,0,160,64,0,0,200,66,1,0,0,0,9,0,0,0,9,0,0,0,0,0,0,0,102,102,134,64,0,0,200,65,154,153,153,192,154,153,153,192,205,204,172,64,51,51,179,63,0,0,128,191,0,0,0,0,2,0,0,0,27,0,0,0,178,157,143,63,0,0,160,64,0,0,196,66,2,0,0,0,9,0,0,0,9,0,0,0,0,0,0,0,102,102,134,64,0,0,200,65,102,102,38,192,102,102,38,192,205,204,108,64,0,0,0,64,0,0,64,192,0,0,0,0,2,0,0,0,23,0,0,0,47,221,164,63,0,0,160,64,0,0,194,66,3,0,0,0,9,0,0,0,9,0,0,0,1,0,0,0,102,102,134,64,0,0,200,65,205,204,204,191,205,204,204,191,0,0,0,64,0,0,0,64,0,0,160,192,0,0,0,0,2,0,0,0,18,0,0,0,223,79,189,63,0,0,160,64,0,0,192,66,4,0,0,0,9,0,0,0,9,0,0,0,1,0,0,0,102,102,134,64,0,0,200,65,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,0,0,0,193,0,0,0,0,2,0,0,0,12,0,0,0,16,88,217,63,0,0,160,64,0,0,190,66,5,0,0,0,9,0,0,0,9,0,0,0,1,0,0,0,102,102,134,64,0,0,200,65,102,102,166,63,102,102,166,63,0,0,192,192,0,0,96,64,0,0,48,193,0,0,0,0,2,0,0,0,8,0,0,0,154,153,249,63,0,0,160,64,102,102,188,66,6,0,0,0,9,0,0,0,9,0,0,0,1,0,0,0,0,0,144,64,0,0,200,66,205,204,12,64,51,51,19,64,0,0,64,193,0,0,192,64,0,0,96,193,0,0,0,0,2,0,0,0,4,0,0,0,199,75,15,64,0,0,64,64,205,204,187,66,7,0,0,0,9,0,0,0,9,0,0,0,1,0,0,0,154,153,153,64,0,0,72,67,205,204,44,64,205,204,44,64,0,0,144,193,0,0,16,65,0,0,136,193,0,0,0,0,2,0,0,0,0,0,0,0,225,122,36,64,0,0,128,63,51,51,187,66,8,0,0,0,9,0,0,0,9,0,0,0,1,0,0,0,154,153,169,64,0,0,150,67,51,51,51,64,51,51,51,64,0,0,168,193,0,0,32,65,0,0,184,193,23,183,81,57,0,0,0,0,0,0,0,0,47,221,60,64,0,0,0,0,154,153,186,66,9,0,0,0,9,0,0,0,9,0,0,0,1,0,0,0,51,51,211,64,0,0,150,67,51,51,51,64,51,51,51,64,0,0,184,193,0,0,48,65,0,0,200,193,82,73,29,58,0,0,0,0,0,0,0,0,254,212,88,64,0,0,0,0,154,153,186,66,10,0,0,0,9,0,0,0,9,0,0,0,1,0,0,0,0,0,200,65,0,0,150,67,51,51,51,64,51,51,51,64,0,0,200,193,0,0,64,65,0,0,216,193,10,215,35,59,0,0,0,0,0,0,0,0,0,0,96,64,0,0,0,0,154,153,186,66], "i8", ALLOC_NONE, 5248892);
+allocate([3,0,1,0,4,0,4,0,6,0,7,0,8,0,8,0,4,0,4,0,4,0,5,0,6,0,8,0,7,0,9,0,5,0,7,0,6,0,8,0,7,0,9,0,8,0,10,0,7,0,8,0,7,0,8,0,8,0,9,0,9,0,10,0], "i8", ALLOC_NONE, 5249640);
+allocate([2,0,1,0,3,0,4,0,7,0,7,0,4,0,4,0,4,0,5,0,7,0,7,0,6,0,6,0,7,0,7,0,8,0,8,0], "i8", ALLOC_NONE, 5249704);
+allocate([2,0,0,0,2,0,0,0,2,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255], "i8", ALLOC_NONE, 5249740);
+allocate([0,0,128,63,54,89,75,63,152,134,33,63,152,134,33,63,152,134,33,63,152,134,33,63,152,134,33,63,250,155,128,62,153,158,240,61], "i8", ALLOC_NONE, 5249776);
+allocate([3,4,6,7,9,10,4,5,6,7,8,10,5,6,7,8,9,10,7,7,8,9,9,10,8,8,9,9,10,11,9,9,10,10,11,11] /* \03\04\06\07\09\0A\0 */, "i8", ALLOC_NONE, 5249812);
+allocate([7,0,5,0,9,0,14,0,15,0,7,0,6,0,4,0,5,0,5,0,6,0,7,0,7,0,6,0,8,0,8,0,8,0,5,0,15,0,6,0,9,0,10,0,5,0,1,0,11,0,7,0,9,0,6,0,4,0,1,0,14,0,4,0,6,0,2,0,6,0,0,0], "i8", ALLOC_NONE, 5249848);
+allocate([2,4,7,9,9,10,4,4,6,10,10,10,7,6,8,10,10,11,9,10,10,11,11,12,9,9,10,11,12,12,10,10,11,11,13,13] /* \02\04\07\09\09\0A\0 */, "i8", ALLOC_NONE, 5249920);
+allocate([3,0,4,0,6,0,18,0,12,0,5,0,5,0,1,0,2,0,16,0,9,0,3,0,7,0,3,0,5,0,14,0,7,0,3,0,19,0,17,0,15,0,13,0,10,0,4,0,13,0,5,0,8,0,11,0,5,0,1,0,12,0,4,0,4,0,1,0,1,0,0,0], "i8", ALLOC_NONE, 5249956);
+allocate([1,4,7,9,9,10,4,6,8,9,9,10,7,7,9,10,10,11,8,9,10,11,11,11,8,9,10,11,11,12,9,10,11,12,12,12] /* \01\04\07\09\09\0A\0 */, "i8", ALLOC_NONE, 5250028);
+allocate([1,0,2,0,10,0,19,0,16,0,10,0,3,0,3,0,7,0,10,0,5,0,3,0,11,0,4,0,13,0,17,0,8,0,4,0,12,0,11,0,18,0,15,0,11,0,2,0,7,0,6,0,9,0,14,0,3,0,1,0,6,0,4,0,5,0,3,0,2,0,0,0], "i8", ALLOC_NONE, 5250064);
+allocate([3,4,6,8,4,4,6,7,5,6,7,8,7,7,8,9] /* \03\04\06\08\04\04\0 */, "i8", ALLOC_NONE, 5250136);
+allocate([7,0,3,0,5,0,1,0,6,0,2,0,3,0,2,0,5,0,4,0,4,0,1,0,3,0,3,0,2,0,0,0], "i8", ALLOC_NONE, 5250152);
+allocate([1,4,7,8,4,5,8,9,7,8,9,10,8,8,9,10] /* \01\04\07\08\04\05\0 */, "i8", ALLOC_NONE, 5250184);
+allocate([1,0,2,0,6,0,5,0,3,0,1,0,4,0,4,0,7,0,5,0,7,0,1,0,6,0,1,0,1,0,0,0], "i8", ALLOC_NONE, 5250200);
+allocate([2,3,7,4,4,7,6,7,8] /* \02\03\07\04\04\07\0 */, "i8", ALLOC_NONE, 5250232);
+allocate([3,0,2,0,1,0,1,0,1,0,1,0,3,0,2,0,0,0], "i8", ALLOC_NONE, 5250244);
+allocate([4,5,5,6,5,6,6,7,5,6,6,7,6,7,7,8] /* \04\05\05\06\05\06\0 */, "i8", ALLOC_NONE, 5250264);
+allocate([15,0,28,0,26,0,48,0,22,0,40,0,36,0,64,0,14,0,24,0,20,0,32,0,12,0,16,0,8,0,0,0], "i8", ALLOC_NONE, 5250280);
+allocate([1,5,5,7,5,8,7,9,5,7,7,9,7,9,9,10] /* \01\05\05\07\05\08\0 */, "i8", ALLOC_NONE, 5250312);
+allocate([1,0,10,0,8,0,20,0,12,0,20,0,16,0,32,0,14,0,12,0,24,0,0,0,28,0,16,0,24,0,16,0], "i8", ALLOC_NONE, 5250328);
+allocate([1,4,7,4,5,7,6,7,8] /* \01\04\07\04\05\07\0 */, "i8", ALLOC_NONE, 5250360);
+allocate([1,0,2,0,1,0,3,0,1,0,1,0,3,0,2,0,0,0], "i8", ALLOC_NONE, 5250372);
+allocate([4,5,7,8,9,10,10,11,11,12,12,12,12,12,13,10,5,6,7,8,9,10,10,11,11,11,12,12,12,12,12,10,7,7,8,9,9,10,10,11,11,11,11,12,12,12,13,9,8,8,9,9,10,10,10,11,11,11,11,12,12,12,12,9,9,9,9,10,10,10,10,11,11,11,12,12,12,12,13,9,10,9,10,10,10,10,11,11,11,11,12,12,12,12,12,9,10,10,10,10,10,11,11,11,11,12,12,12,12,12,13,9,11,10,10,10,11,11,11,11,12,12,12,12,12,13,13,10,11,11,11,11,11,11,11,11,11,12,12,12,12,13,13,10,11,11,11,11,11,11,11,12,12,12,12,12,13,13,13,10,12,11,11,11,11,12,12,12,12,12,12,13,13,13,13,10,12,12,11,11,11,12,12,12,12,12,12,13,13,13,13,10,12,12,12,12,12,12,12,12,12,12,13,13,13,13,13,10,12,12,12,12,12,12,12,12,13,13,13,13,13,13,13,10,13,12,12,12,12,12,12,13,13,13,13,13,13,13,13,10,9,9,9,9,9,9,9,9,9,9,9,10,10,10,10,6] /* \04\05\07\08\09\0A\0 */, "i8", ALLOC_NONE, 5250392);
+allocate([15,0,13,0,46,0,80,0,146,0,6,1,248,0,178,1,170,1,157,2,141,2,137,2,109,2,5,2,8,4,88,0,14,0,12,0,21,0,38,0,71,0,130,0,122,0,216,0,209,0,198,0,71,1,89,1,63,1,41,1,23,1,42,0,47,0,22,0,41,0,74,0,68,0,128,0,120,0,221,0,207,0,194,0,182,0,84,1,59,1,39,1,29,2,18,0,81,0,39,0,75,0,70,0,134,0,125,0,116,0,220,0,204,0,190,0,178,0,69,1,55,1,37,1,15,1,16,0,147,0,72,0,69,0,135,0,127,0,118,0,112,0,210,0,200,0,188,0,96,1,67,1,50,1,29,1,28,2,14,0,7,1,66,0,129,0,126,0,119,0,114,0,214,0,202,0,192,0,180,0,85,1,61,1,45,1,25,1,6,1,12,0,249,0,123,0,121,0,117,0,113,0,215,0,206,0,195,0,185,0,91,1,74,1,52,1,35,1,16,1,8,2,10,0,179,1,115,0,111,0,109,0,211,0,203,0,196,0,187,0,97,1,76,1,57,1,42,1,27,1,19,2,125,1,17,0,171,1,212,0,208,0,205,0,201,0,193,0,186,0,177,0,169,0,64,1,47,1,30,1,12,1,2,2,121,1,16,0,79,1,199,0,197,0,191,0,189,0,181,0,174,0,77,1,65,1,49,1,33,1,19,1,9,2,123,1,115,1,11,0,156,2,184,0,183,0,179,0,175,0,88,1,75,1,58,1,48,1,34,1,21,1,18,2,127,1,117,1,110,1,10,0,140,2,90,1,171,0,168,0,164,0,62,1,53,1,43,1,31,1,20,1,7,1,1,2,119,1,112,1,106,1,6,0,136,2,66,1,60,1,56,1,51,1,46,1,36,1,28,1,13,1,5,1,0,2,120,1,114,1,108,1,103,1,4,0,108,2,44,1,40,1,38,1,32,1,26,1,17,1,10,1,3,2,124,1,118,1,113,1,109,1,105,1,101,1,2,0,9,4,24,1,22,1,18,1,11,1,8,1,3,1,126,1,122,1,116,1,111,1,107,1,104,1,102,1,100,1,0,0,43,0,20,0,19,0,17,0,15,0,13,0,11,0,9,0,7,0,6,0,4,0,7,0,5,0,3,0,1,0,3,0], "i8", ALLOC_NONE, 5250648);
+allocate([1,4,3,5] /* \01\04\03\05 */, "i8", ALLOC_NONE, 5251160);
+allocate([1,0,1,0,1,0,0,0], "i8", ALLOC_NONE, 5251164);
+allocate([1,5,7,9,10,10,11,11,12,12,12,13,13,13,14,10,4,6,8,9,10,11,11,11,12,12,12,13,14,13,14,10,7,8,9,10,11,11,12,12,13,12,13,13,13,14,14,11,9,9,10,11,11,12,12,12,13,13,14,14,14,15,15,12,10,10,11,11,12,12,13,13,13,14,14,14,15,15,15,11,10,10,11,11,12,13,13,14,13,14,14,15,15,15,16,12,11,11,11,12,13,13,13,13,14,14,14,14,15,15,16,12,11,11,12,12,13,13,13,14,14,15,15,15,15,17,17,12,11,12,12,13,13,13,14,14,15,15,15,15,16,16,16,12,12,12,12,13,13,14,14,15,15,15,15,16,15,16,15,13,12,13,12,13,14,14,14,14,15,16,16,16,17,17,16,12,13,13,13,13,14,14,15,16,16,16,16,16,16,15,16,13,13,14,14,14,14,15,15,15,15,17,16,16,16,16,18,13,15,14,14,14,15,15,16,16,16,18,17,17,17,19,17,13,14,15,13,14,16,16,15,16,16,17,18,17,19,17,16,13,10,10,10,11,11,12,12,12,13,13,13,13,13,13,13,10] /* \01\05\07\09\0A\0A\0 */, "i8", ALLOC_NONE, 5251172);
+allocate([1,5,7,9,10,10,11,11,12,12,12,13,13,13,14,11,4,6,8,9,10,11,11,11,12,12,12,13,14,13,14,11,7,8,9,10,11,11,12,12,13,12,13,13,13,14,14,12,9,9,10,11,11,12,12,12,13,13,14,14,14,15,15,13,10,10,11,11,12,12,13,13,13,14,14,14,15,15,15,12,10,10,11,11,12,13,13,14,13,14,14,15,15,15,16,13,11,11,11,12,13,13,13,13,14,14,14,14,15,15,16,13,11,11,12,12,13,13,13,14,14,15,15,15,15,17,17,13,11,12,12,13,13,13,14,14,15,15,15,15,16,16,16,13,12,12,12,13,13,14,14,15,15,15,15,16,15,16,15,14,12,13,12,13,14,14,14,14,15,16,16,16,17,17,16,13,13,13,13,13,14,14,15,16,16,16,16,16,16,15,16,14,13,14,14,14,14,15,15,15,15,17,16,16,16,16,18,14,15,14,14,14,15,15,16,16,16,18,17,17,17,19,17,14,14,15,13,14,16,16,15,16,16,17,18,17,19,17,16,14,11,11,11,12,12,13,13,13,14,14,14,14,14,14,14,12] /* \01\05\07\09\0A\0A\0 */, "i8", ALLOC_NONE, 5251428);
+allocate([1,0,5,0,14,0,44,0,74,0,63,0,110,0,93,0,172,0,149,0,138,0,242,0,225,0,195,0,120,1,17,0,3,0,4,0,12,0,20,0,35,0,62,0,53,0,47,0,83,0,75,0,68,0,119,0,201,0,107,0,207,0,9,0,15,0,13,0,23,0,38,0,67,0,58,0,103,0,90,0,161,0,72,0,127,0,117,0,110,0,209,0,206,0,16,0,45,0,21,0,39,0,69,0,64,0,114,0,99,0,87,0,158,0,140,0,252,0,212,0,199,0,131,1,109,1,26,0,75,0,36,0,68,0,65,0,115,0,101,0,179,0,164,0,155,0,8,1,246,0,226,0,139,1,126,1,106,1,9,0,66,0,30,0,59,0,56,0,102,0,185,0,173,0,9,1,142,0,253,0,232,0,144,1,132,1,122,1,189,1,16,0,111,0,54,0,52,0,100,0,184,0,178,0,160,0,133,0,1,1,244,0,228,0,217,0,129,1,110,1,203,2,10,0,98,0,48,0,91,0,88,0,165,0,157,0,148,0,5,1,248,0,151,1,141,1,116,1,124,1,121,3,116,3,8,0,85,0,84,0,81,0,159,0,156,0,143,0,4,1,249,0,171,1,145,1,136,1,127,1,215,2,201,2,196,2,7,0,154,0,76,0,73,0,141,0,131,0,0,1,245,0,170,1,150,1,138,1,128,1,223,2,103,1,198,2,96,1,11,0,139,0,129,0,67,0,125,0,247,0,233,0,229,0,219,0,137,1,231,2,225,2,208,2,117,3,114,3,183,1,4,0,243,0,120,0,118,0,115,0,227,0,223,0,140,1,234,2,230,2,224,2,209,2,200,2,194,2,223,0,180,1,6,0,202,0,224,0,222,0,218,0,216,0,133,1,130,1,125,1,108,1,120,3,187,1,195,2,184,1,181,1,192,6,4,0,235,2,211,0,210,0,208,0,114,1,123,1,222,2,211,2,202,2,199,6,115,3,109,3,108,3,131,13,97,3,2,0,121,1,113,1,102,0,187,0,214,2,210,2,102,1,199,2,197,2,98,3,198,6,103,3,130,13,102,3,178,1,0,0,12,0,10,0,7,0,11,0,10,0,17,0,11,0,9,0,13,0,12,0,10,0,7,0,5,0,3,0,1,0,3,0], "i8", ALLOC_NONE, 5251684);
+allocate([3,5,6,8,8,9,10,10,10,11,11,12,12,12,13,14,5,5,7,8,9,9,10,10,10,11,11,12,12,12,13,13,6,7,7,8,9,9,10,10,10,11,11,12,12,13,13,13,7,8,8,9,9,10,10,11,11,11,12,12,12,13,13,13,8,8,9,9,10,10,11,11,11,11,12,12,12,13,13,13,9,9,9,10,10,10,11,11,11,11,12,12,13,13,13,14,10,9,10,10,10,11,11,11,11,12,12,12,13,13,14,14,10,10,10,11,11,11,11,12,12,12,12,12,13,13,13,14,10,10,10,11,11,11,11,12,12,12,12,13,13,14,14,14,10,10,11,11,11,11,12,12,12,13,13,13,13,14,14,14,11,11,11,11,12,12,12,12,12,13,13,13,13,14,15,14,11,11,11,11,12,12,12,12,13,13,13,13,14,14,14,15,12,12,11,12,12,12,13,13,13,13,13,13,14,14,15,15,12,12,12,12,12,13,13,13,13,14,14,14,14,14,15,15,13,13,13,13,13,13,13,13,14,14,14,14,15,15,14,15,13,13,13,13,13,13,13,14,14,14,14,14,15,15,15,15] /* \03\05\06\08\08\09\0 */, "i8", ALLOC_NONE, 5252196);
+allocate([7,0,12,0,18,0,53,0,47,0,76,0,124,0,108,0,89,0,123,0,108,0,119,0,107,0,81,0,122,0,63,0,13,0,5,0,16,0,27,0,46,0,36,0,61,0,51,0,42,0,70,0,52,0,83,0,65,0,41,0,59,0,36,0,19,0,17,0,15,0,24,0,41,0,34,0,59,0,48,0,40,0,64,0,50,0,78,0,62,0,80,0,56,0,33,0,29,0,28,0,25,0,43,0,39,0,63,0,55,0,93,0,76,0,59,0,93,0,72,0,54,0,75,0,50,0,29,0,52,0,22,0,42,0,40,0,67,0,57,0,95,0,79,0,72,0,57,0,89,0,69,0,49,0,66,0,46,0,27,0,77,0,37,0,35,0,66,0,58,0,52,0,91,0,74,0,62,0,48,0,79,0,63,0,90,0,62,0,40,0,38,0,125,0,32,0,60,0,56,0,50,0,92,0,78,0,65,0,55,0,87,0,71,0,51,0,73,0,51,0,70,0,30,0,109,0,53,0,49,0,94,0,88,0,75,0,66,0,122,0,91,0,73,0,56,0,42,0,64,0,44,0,21,0,25,0,90,0,43,0,41,0,77,0,73,0,63,0,56,0,92,0,77,0,66,0,47,0,67,0,48,0,53,0,36,0,20,0,71,0,34,0,67,0,60,0,58,0,49,0,88,0,76,0,67,0,106,0,71,0,54,0,38,0,39,0,23,0,15,0,109,0,53,0,51,0,47,0,90,0,82,0,58,0,57,0,48,0,72,0,57,0,41,0,23,0,27,0,62,0,9,0,86,0,42,0,40,0,37,0,70,0,64,0,52,0,43,0,70,0,55,0,42,0,25,0,29,0,18,0,11,0,11,0,118,0,68,0,30,0,55,0,50,0,46,0,74,0,65,0,49,0,39,0,24,0,16,0,22,0,13,0,14,0,7,0,91,0,44,0,39,0,38,0,34,0,63,0,52,0,45,0,31,0,52,0,28,0,19,0,14,0,8,0,9,0,3,0,123,0,60,0,58,0,53,0,47,0,43,0,32,0,22,0,37,0,24,0,17,0,12,0,15,0,10,0,2,0,1,0,71,0,37,0,34,0,30,0,28,0,20,0,17,0,26,0,21,0,16,0,10,0,6,0,8,0,6,0,2,0,0,0], "i8", ALLOC_NONE, 5252452);
+allocate([1,5,7,8,9,10,10,11,10,11,12,12,13,13,14,14,4,6,8,9,10,10,11,11,11,11,12,12,13,14,14,14,7,8,9,10,11,11,12,12,11,12,12,13,13,14,15,15,8,9,10,11,11,12,12,12,12,13,13,13,13,14,15,15,9,9,11,11,12,12,13,13,12,13,13,14,14,15,15,16,10,10,11,12,12,12,13,13,13,13,14,13,15,15,16,16,10,11,12,12,13,13,13,13,13,14,14,14,15,15,16,16,11,11,12,13,13,13,14,14,14,14,15,15,15,16,18,18,10,10,11,12,12,13,13,14,14,14,14,15,15,16,17,17,11,11,12,12,13,13,13,15,14,15,15,16,16,16,18,17,11,12,12,13,13,14,14,15,14,15,16,15,16,17,18,19,12,12,12,13,14,14,14,14,15,15,15,16,17,17,17,18,12,13,13,14,14,15,14,15,16,16,17,17,17,18,18,18,13,13,14,15,15,15,16,16,16,16,16,17,18,17,18,18,14,14,14,15,15,15,17,16,16,19,17,17,17,19,18,18,13,14,15,16,16,16,17,16,17,17,18,18,21,20,21,18] /* \01\05\07\08\09\0A\0 */, "i8", ALLOC_NONE, 5252964);
+allocate([1,0,5,0,14,0,21,0,34,0,51,0,46,0,71,0,42,0,52,0,68,0,52,0,67,0,44,0,43,0,19,0,3,0,4,0,12,0,19,0,31,0,26,0,44,0,33,0,31,0,24,0,32,0,24,0,31,0,35,0,22,0,14,0,15,0,13,0,23,0,36,0,59,0,49,0,77,0,65,0,29,0,40,0,30,0,40,0,27,0,33,0,42,0,16,0,22,0,20,0,37,0,61,0,56,0,79,0,73,0,64,0,43,0,76,0,56,0,37,0,26,0,31,0,25,0,14,0,35,0,16,0,60,0,57,0,97,0,75,0,114,0,91,0,54,0,73,0,55,0,41,0,48,0,53,0,23,0,24,0,58,0,27,0,50,0,96,0,76,0,70,0,93,0,84,0,77,0,58,0,79,0,29,0,74,0,49,0,41,0,17,0,47,0,45,0,78,0,74,0,115,0,94,0,90,0,79,0,69,0,83,0,71,0,50,0,59,0,38,0,36,0,15,0,72,0,34,0,56,0,95,0,92,0,85,0,91,0,90,0,86,0,73,0,77,0,65,0,51,0,44,0,43,0,42,0,43,0,20,0,30,0,44,0,55,0,78,0,72,0,87,0,78,0,61,0,46,0,54,0,37,0,30,0,20,0,16,0,53,0,25,0,41,0,37,0,44,0,59,0,54,0,81,0,66,0,76,0,57,0,54,0,37,0,18,0,39,0,11,0,35,0,33,0,31,0,57,0,42,0,82,0,72,0,80,0,47,0,58,0,55,0,21,0,22,0,26,0,38,0,22,0,53,0,25,0,23,0,38,0,70,0,60,0,51,0,36,0,55,0,26,0,34,0,23,0,27,0,14,0,9,0,7,0,34,0,32,0,28,0,39,0,49,0,75,0,30,0,52,0,48,0,40,0,52,0,28,0,18,0,17,0,9,0,5,0,45,0,21,0,34,0,64,0,56,0,50,0,49,0,45,0,31,0,19,0,12,0,15,0,10,0,7,0,6,0,3,0,48,0,23,0,20,0,39,0,36,0,35,0,53,0,21,0,16,0,23,0,13,0,10,0,6,0,1,0,4,0,2,0,16,0,15,0,17,0,27,0,25,0,20,0,29,0,11,0,17,0,12,0,16,0,8,0,1,0,1,0,0,0,1,0], "i8", ALLOC_NONE, 5253220);
+allocate([4,4,6,8,9,10,10,10,4,5,6,7,9,9,10,10,6,6,7,8,9,10,9,10,7,7,8,8,9,10,10,10,8,8,9,9,10,10,10,11,9,9,10,10,10,11,10,11,9,9,9,10,10,11,11,12,10,10,10,11,11,11,11,12] /* \04\04\06\08\09\0A\0 */, "i8", ALLOC_NONE, 5253732);
+allocate([9,0,6,0,16,0,33,0,41,0,39,0,38,0,26,0,7,0,5,0,6,0,9,0,23,0,16,0,26,0,11,0,17,0,7,0,11,0,14,0,21,0,30,0,10,0,7,0,17,0,10,0,15,0,12,0,18,0,28,0,14,0,5,0,32,0,13,0,22,0,19,0,18,0,16,0,9,0,5,0,40,0,17,0,31,0,29,0,17,0,13,0,4,0,2,0,27,0,12,0,11,0,15,0,10,0,7,0,4,0,1,0,27,0,12,0,8,0,12,0,6,0,3,0,1,0,0,0], "i8", ALLOC_NONE, 5253796);
+allocate([2,4,6,8,9,10,9,10,4,5,6,8,10,10,9,10,6,7,8,9,10,11,10,10,8,8,9,11,10,12,10,11,9,10,10,11,11,12,11,12,9,10,11,12,12,13,12,13,9,9,9,10,11,12,12,12,9,9,10,11,12,12,12,12] /* \02\04\06\08\09\0A\0 */, "i8", ALLOC_NONE, 5253924);
+allocate([3,0,4,0,10,0,24,0,34,0,33,0,21,0,15,0,5,0,3,0,4,0,10,0,32,0,17,0,11,0,10,0,11,0,7,0,13,0,18,0,30,0,31,0,20,0,5,0,25,0,11,0,19,0,59,0,27,0,18,0,12,0,5,0,35,0,33,0,31,0,58,0,30,0,16,0,7,0,5,0,28,0,26,0,32,0,19,0,17,0,15,0,8,0,14,0,14,0,12,0,9,0,13,0,14,0,9,0,4,0,1,0,11,0,4,0,6,0,6,0,6,0,3,0,2,0,0,0], "i8", ALLOC_NONE, 5253988);
+allocate([1,4,7,9,10,10,10,11,4,6,8,9,10,11,10,10,7,8,9,10,11,12,11,11,8,9,10,11,12,12,11,12,9,10,11,12,12,12,12,12,10,11,12,12,13,13,12,13,9,10,11,12,12,12,13,13,10,10,11,12,12,13,13,13] /* \01\04\07\09\0A\0A\0 */, "i8", ALLOC_NONE, 5254116);
+allocate([1,0,2,0,10,0,23,0,35,0,30,0,12,0,17,0,3,0,3,0,8,0,12,0,18,0,21,0,12,0,7,0,11,0,9,0,15,0,21,0,32,0,40,0,19,0,6,0,14,0,13,0,22,0,34,0,46,0,23,0,18,0,7,0,20,0,19,0,33,0,47,0,27,0,22,0,9,0,3,0,31,0,22,0,41,0,26,0,21,0,20,0,5,0,3,0,14,0,13,0,10,0,11,0,16,0,6,0,5,0,1,0,9,0,8,0,7,0,8,0,4,0,4,0,2,0,0,0], "i8", ALLOC_NONE, 5254180);
+allocate([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,2,0,0,0,2,0,0,0,2,0,0,0,2,0,0,0,3,0,0,0,2,0,0,0,3,0,0,0,3,0,0,0,4,0,0,0,3,0,0,0,4,0,0,0,3,0,0,0,4,0,0,0,4,0,0,0,5,0,0,0,4,0,0,0,5,0,0,0,4,0,0,0,6,0,0,0,5,0,0,0,6,0,0,0,5,0,0,0,6,0,0,0,5,0,0,0,7,0,0,0,6,0,0,0,7,0,0,0,6,0,0,0,7,0,0,0], "i8", ALLOC_NONE, 5254308);
+allocate([0,0,0,0,1,0,0,0,2,0,0,0,3,0,0,0,0,0,0,0,1,0,0,0,2,0,0,0,3,0,0,0,1,0,0,0,2,0,0,0,3,0,0,0,1,0,0,0,2,0,0,0,3,0,0,0,2,0,0,0,3,0,0,0], "i8", ALLOC_NONE, 5254492);
+allocate([1,0,0,0,2,0,0,0,4,0,0,0,8,0,0,0,1,0,0,0,2,0,0,0,4,0,0,0,8,0,0,0,2,0,0,0,4,0,0,0,8,0,0,0,2,0,0,0,4,0,0,0,8,0,0,0,4,0,0,0,8,0,0,0], "i8", ALLOC_NONE, 5254556);
+allocate([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,2,0,0,0,2,0,0,0,2,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,4,0,0,0,4,0,0,0], "i8", ALLOC_NONE, 5254620);
+allocate([1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,8,0,0,0,2,0,0,0,2,0,0,0,2,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,8,0,0,0,8,0,0,0,8,0,0,0,16,0,0,0,16,0,0,0], "i8", ALLOC_NONE, 5254684);
+allocate([0,0,0,0,6,0,0,0,12,0,0,0,18,0,0,0,24,0,0,0,30,0,0,0,36,0,0,0,44,0,0,0,54,0,0,0,66,0,0,0,80,0,0,0,96,0,0,0,116,0,0,0,140,0,0,0,168,0,0,0,200,0,0,0,238,0,0,0,28,1,0,0,80,1,0,0,140,1,0,0,208,1,0,0,10,2,0,0,64,2,0,0,0,0,0,0,4,0,0,0,8,0,0,0,12,0,0,0,18,0,0,0,24,0,0,0,32,0,0,0,42,0,0,0,56,0,0,0,74,0,0,0,100,0,0,0,132,0,0,0,174,0,0,0,192,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,0,0,0,12,0,0,0,18,0,0,0,24,0,0,0,30,0,0,0,36,0,0,0,44,0,0,0,54,0,0,0,66,0,0,0,80,0,0,0,96,0,0,0,114,0,0,0,136,0,0,0,162,0,0,0,194,0,0,0,232,0,0,0,22,1,0,0,76,1,0,0,138,1,0,0,208,1,0,0,28,2,0,0,64,2,0,0,0,0,0,0,4,0,0,0,8,0,0,0,12,0,0,0,18,0,0,0,26,0,0,0,36,0,0,0,48,0,0,0,62,0,0,0,80,0,0,0,104,0,0,0,136,0,0,0,180,0,0,0,192,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,0,0,0,12,0,0,0,18,0,0,0,24,0,0,0,30,0,0,0,36,0,0,0,44,0,0,0,54,0,0,0,66,0,0,0,80,0,0,0,96,0,0,0,116,0,0,0,140,0,0,0,168,0,0,0,200,0,0,0,238,0,0,0,28,1,0,0,80,1,0,0,140,1,0,0,208,1,0,0,10,2,0,0,64,2,0,0,0,0,0,0,4,0,0,0,8,0,0,0,12,0,0,0,18,0,0,0,26,0,0,0,36,0,0,0,48,0,0,0,62,0,0,0,80,0,0,0,104,0,0,0,134,0,0,0,174,0,0,0,192,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,8,0,0,0,12,0,0,0,16,0,0,0,20,0,0,0,24,0,0,0,30,0,0,0,36,0,0,0,44,0,0,0,52,0,0,0,62,0,0,0,74,0,0,0,90,0,0,0,110,0,0,0,134,0,0,0,162,0,0,0,196,0,0,0,238,0,0,0,32,1,0,0,86,1,0,0,162,1,0,0,64,2,0,0,0,0,0,0,4,0,0,0,8,0,0,0,12,0,0,0,16,0,0,0,22,0,0,0,30,0,0,0,40,0,0,0,52,0,0,0,66,0,0,0,84,0,0,0,106,0,0,0,136,0,0,0,192,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,8,0,0,0,12,0,0,0,16,0,0,0,20,0,0,0,24,0,0,0,30,0,0,0,36,0,0,0,42,0,0,0,50,0,0,0,60,0,0,0,72,0,0,0,88,0,0,0,106,0,0,0,128,0,0,0,156,0,0,0,190,0,0,0,230,0,0,0,20,1,0,0,74,1,0,0,128,1,0,0,64,2,0,0,0,0,0,0,4,0,0,0,8,0,0,0,12,0,0,0,16,0,0,0,22,0,0,0,28,0,0,0,38,0,0,0,50,0,0,0,64,0,0,0,80,0,0,0,100,0,0,0,126,0,0,0,192,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,8,0,0,0,12,0,0,0,16,0,0,0,20,0,0,0,24,0,0,0,30,0,0,0,36,0,0,0,44,0,0,0,54,0,0,0,66,0,0,0,82,0,0,0,102,0,0,0,126,0,0,0,156,0,0,0,194,0,0,0,240,0,0,0,40,1,0,0,108,1,0,0,192,1,0,0,38,2,0,0,64,2,0,0,0,0,0,0,4,0,0,0,8,0,0,0,12,0,0,0,16,0,0,0,22,0,0,0,30,0,0,0,42,0,0,0,58,0,0,0,78,0,0,0,104,0,0,0,138,0,0,0,180,0,0,0,192,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,0,0,0,12,0,0,0,18,0,0,0,24,0,0,0,30,0,0,0,36,0,0,0,44,0,0,0,54,0,0,0,66,0,0,0,80,0,0,0,96,0,0,0,116,0,0,0,140,0,0,0,168,0,0,0,200,0,0,0,238,0,0,0,28,1,0,0,80,1,0,0,140,1,0,0,208,1,0,0,10,2,0,0,64,2,0,0,0,0,0,0,4,0,0,0,8,0,0,0,12,0,0,0,18,0,0,0,26,0,0,0,36,0,0,0,48,0,0,0,62,0,0,0,80,0,0,0,104,0,0,0,134,0,0,0,174,0,0,0,192,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,0,0,0,12,0,0,0,18,0,0,0,24,0,0,0,30,0,0,0,36,0,0,0,44,0,0,0,54,0,0,0,66,0,0,0,80,0,0,0,96,0,0,0,116,0,0,0,140,0,0,0,168,0,0,0,200,0,0,0,238,0,0,0,28,1,0,0,80,1,0,0,140,1,0,0,208,1,0,0,10,2,0,0,64,2,0,0,0,0,0,0,4,0,0,0,8,0,0,0,12,0,0,0,18,0,0,0,26,0,0,0,36,0,0,0,48,0,0,0,62,0,0,0,80,0,0,0,104,0,0,0,134,0,0,0,174,0,0,0,192,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,24,0,0,0,36,0,0,0,48,0,0,0,60,0,0,0,72,0,0,0,88,0,0,0,108,0,0,0,132,0,0,0,160,0,0,0,192,0,0,0,232,0,0,0,24,1,0,0,80,1,0,0,144,1,0,0,220,1,0,0,54,2,0,0,56,2,0,0,58,2,0,0,60,2,0,0,62,2,0,0,64,2,0,0,0,0,0,0,8,0,0,0,16,0,0,0,24,0,0,0,36,0,0,0,52,0,0,0,72,0,0,0,96,0,0,0,124,0,0,0,160,0,0,0,162,0,0,0,164,0,0,0,166,0,0,0,192,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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", ALLOC_NONE, 5254748);
+allocate([0,0,0,0,6,0,0,0,11,0,0,0,16,0,0,0,21,0,0,0], "i8", ALLOC_NONE, 5256584);
+allocate([0,0,0,0,18,0,0,0,36,0,0,0,54,0,0,0,54,0,0,0,36,0,0,0,54,0,0,0,72,0,0,0,54,0,0,0,72,0,0,0,90,0,0,0,72,0,0,0,90,0,0,0,108,0,0,0,108,0,0,0,126,0,0,0], "i8", ALLOC_NONE, 5256604);
+allocate([0,0,0,0,18,0,0,0,36,0,0,0,54,0,0,0,51,0,0,0,35,0,0,0,53,0,0,0,71,0,0,0,52,0,0,0,70,0,0,0,88,0,0,0,69,0,0,0,87,0,0,0,105,0,0,0,104,0,0,0,122,0,0,0], "i8", ALLOC_NONE, 5256668);
+allocate([0,0,0,0,10,0,0,0,20,0,0,0,30,0,0,0,33,0,0,0,21,0,0,0,31,0,0,0,41,0,0,0,32,0,0,0,42,0,0,0,52,0,0,0,43,0,0,0,53,0,0,0,63,0,0,0,64,0,0,0,74,0,0,0], "i8", ALLOC_NONE, 5256732);
+allocate([34,86,0,0,192,93,0,0,128,62,0,0,255,255,255,255,68,172,0,0,128,187,0,0,0,125,0,0,255,255,255,255,17,43,0,0,224,46,0,0,64,31,0,0,255,255,255,255], "i8", ALLOC_NONE, 5256796);
+allocate([0,128,64,192,32,160,96,224,16,144,80,208,48,176,112,240,8,136,72,200,40,168,104,232,24,152,88,216,56,184,120,248,4,132,68,196,36,164,100,228,20,148,84,212,52,180,116,244,12,140,76,204,44,172,108,236,28,156,92,220,60,188,124,252,2,130,66,194,34,162,98,226,18,146,82,210,50,178,114,242,10,138,74,202,42,170,106,234,26,154,90,218,58,186,122,250,6,134,70,198,38,166,102,230,22,150,86,214,54,182,118,246,14,142,78,206,46,174,110,238,30,158,94,222,62,190,126,254] /* \00\80@\C0 \A0`\E0\1 */, "i8", ALLOC_NONE, 5256844);
+allocate([205,204,236,192,205,204,236,192,205,204,236,192,0,0,24,193,205,204,236,192,51,51,195,192,0,0,176,192,102,102,150,192,102,102,150,192,102,102,150,192,102,102,150,192], "i8", ALLOC_NONE, 5256972);
+allocate([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,2,0,0,0,2,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,2,0,0,0,0,0,0,0], "i8", ALLOC_NONE, 5257016);
+allocate(32832, "i8", ALLOC_NONE, 5257104);
+allocate(1496, "i8", ALLOC_NONE, 5289936);
+allocate([205,204,60,65,154,153,89,65,154,153,137,65,0,0,0,66,0,0,58,66,51,51,77,66,0,0,102,66,51,51,134,66,0,0,143,66,51,51,169,66,51,51,195,66,0,0,2,67], "i8", ALLOC_NONE, 5291432);
+allocate([154,153,217,64,154,153,185,64,154,153,185,64,205,204,204,64,0,0,208,64,102,102,30,65,154,153,65,65,102,102,102,65,0,0,112,65,51,51,151,65,205,204,172,65,51,51,215,65,205,204,8,66,205,204,32,66,51,51,59,66,0,0,98,66,205,204,114,66,205,204,147,66,102,102,171,66,205,204,186,66,51,51,252,66], "i8", ALLOC_NONE, 5291480);
+allocate([0,0,0,0,1,0,0,0,16,0,0,0,17,0,0,0,8,0,0,0,9,0,0,0,24,0,0,0,25,0,0,0,4,0,0,0,5,0,0,0,20,0,0,0,21,0,0,0,12,0,0,0,13,0,0,0,28,0,0,0,29,0,0,0,2,0,0,0,3,0,0,0,18,0,0,0,19,0,0,0,10,0,0,0,11,0,0,0,26,0,0,0,27,0,0,0,6,0,0,0,7,0,0,0,22,0,0,0,23,0,0,0,14,0,0,0,15,0,0,0,30,0,0,0,31,0,0,0], "i8", ALLOC_NONE, 5291564);
+allocate([8,0,0,0,208,7,0,0,16,0,0,0,116,14,0,0,24,0,0,0,60,15,0,0,32,0,0,0,124,21,0,0,40,0,0,0,88,27,0,0,48,0,0,0,76,29,0,0,56,0,0,0,16,39,0,0,64,0,0,0,248,42,0,0,80,0,0,0,188,52,0,0,96,0,0,0,252,58,0,0,112,0,0,0,240,60,0,0,128,0,0,0,104,66,0,0,160,0,0,0,92,68,0,0,192,0,0,0,168,72,0,0,224,0,0,0,200,75,0,0,0,1,0,0,244,76,0,0,64,1,0,0,20,80,0,0], "i8", ALLOC_NONE, 5291692);
+allocate([6,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,9,0,0,0,9,0,0,0,9,0,0,0,9,0,0,0,6,0,0,0,9,0,0,0,9,0,0,0,9,0,0,0,6,0,0,0,5,0,0,0,7,0,0,0,3,0,0,0,9,0,0,0,9,0,0,0,12,0,0,0,6,0,0,0,6,0,0,0,9,0,0,0,12,0,0,0,6,0,0,0,11,0,0,0,10,0,0,0,0,0,0,0,0,0,0,0,18,0,0,0,18,0,0,0,0,0,0,0,0,0,0,0,15,0,0,0,18,0,0,0,0,0,0,0,0,0,0,0,7,0,0,0,7,0,0,0,7,0,0,0,0,0,0,0,12,0,0,0,12,0,0,0,12,0,0,0,0,0,0,0,6,0,0,0,15,0,0,0,12,0,0,0,0,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,3,0,0,0,12,0,0,0,9,0,0,0,9,0,0,0,6,0,0,0,6,0,0,0,12,0,0,0,9,0,0,0,6,0,0,0,8,0,0,0,8,0,0,0,5,0,0,0,0,0,0,0,15,0,0,0,12,0,0,0,9,0,0,0,0,0,0,0,6,0,0,0,18,0,0,0,9,0,0,0,0,0,0,0], "i8", ALLOC_NONE, 5291828);
+allocate([8,0,0,0,16,0,0,0,24,0,0,0,32,0,0,0,40,0,0,0,48,0,0,0,56,0,0,0,64,0,0,0,80,0,0,0,96,0,0,0,112,0,0,0,128,0,0,0,160,0,0,0,192,0,0,0,224,0,0,0,0,1,0,0,64,1,0,0], "i8", ALLOC_NONE, 5292116);
+allocate([0,0,0,0,1,0,0,0,2,0,0,0,2,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0], "i8", ALLOC_NONE, 5292184);
+allocate(24, "i8", ALLOC_NONE, 5292248);
+allocate(22000, "i8", ALLOC_NONE, 5292272);
+allocate([15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,0,0,0] /* \0F\0F\0F\0F\0F\0F\0 */, "i8", ALLOC_NONE, 5314272);
+allocate([15,0,0,0,15,0,0,0,7,0,0,0,7,0,0,0,15,0,0,0,15,0,0,0,7,0,0,0,0,0,0,0,7,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,15,0,0,0,31,0,0,0,31,0,0,0,0,0,0,0,7,0,0,0,7,0,0,0,7,0,0,0,0,0,0,0,3,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0], "i8", ALLOC_NONE, 5314312);
+allocate([7,7,7,7,7,7,3,3,3,3,3,0,0,0,0,0,0,0,0,0,0,0] /* \07\07\07\07\07\07\0 */, "i8", ALLOC_NONE, 5314408);
+allocate([15,15,15,15,15,15,15,15,15,15,15,7,7,7,7,7,7,7,7,7,7,0] /* \0F\0F\0F\0F\0F\0F\0 */, "i8", ALLOC_NONE, 5314432);
+allocate(4, "i8", ALLOC_NONE, 5314456);
+allocate(4, "i8", ALLOC_NONE, 5314460);
+allocate(2052, "i8", ALLOC_NONE, 5314464);
+allocate([4,0,1,0,5,0,5,0,7,0,7,0,8,0,9,0,9,0,10,0,10,0,10,0,10,0,11,0,11,0,11,0,11,0,12,0,12,0,12,0,12,0,12,0,12,0,13,0,12,0,13,0,12,0,13,0,13,0,14,0,10,0,10,0,5,0,4,0,6,0,6,0,7,0,8,0,8,0,9,0,9,0,10,0,10,0,11,0,10,0,11,0,11,0,11,0,11,0,12,0,11,0,12,0,12,0,12,0,12,0,13,0,12,0,14,0,12,0,13,0,12,0,14,0,10,0,10,0,7,0,7,0,7,0,8,0,8,0,9,0,9,0,10,0,9,0,11,0,10,0,11,0,10,0,12,0,11,0,12,0,11,0,13,0,11,0,12,0,11,0,13,0,12,0,13,0,12,0,13,0,12,0,14,0,13,0,14,0,9,0,11,0,8,0,9,0,8,0,9,0,9,0,10,0,9,0,11,0,10,0,11,0,10,0,12,0,10,0,12,0,11,0,12,0,11,0,13,0,11,0,13,0,11,0,14,0,12,0,14,0,12,0,14,0,12,0,15,0,12,0,15,0,9,0,12,0,9,0,10,0,9,0,10,0,9,0,11,0,10,0,11,0,10,0,12,0,10,0,12,0,10,0,13,0,11,0,13,0,11,0,13,0,11,0,14,0,12,0,14,0,12,0,14,0,12,0,15,0,12,0,15,0,13,0,15,0,9,0,11,0,10,0,10,0,9,0,10,0,10,0,11,0,10,0,11,0,10,0,12,0,10,0,13,0,11,0,13,0,11,0,14,0,11,0,13,0,11,0,14,0,12,0,14,0,12,0,15,0,12,0,15,0,12,0,15,0,12,0,16,0,9,0,12,0,10,0,11,0,10,0,11,0,10,0,11,0,10,0,12,0,10,0,13,0,11,0,13,0,11,0,13,0,11,0,13,0,11,0,14,0,12,0,14,0,12,0,14,0,12,0,14,0,12,0,15,0,12,0,15,0,13,0,16,0,9,0,12,0,11,0,11,0,10,0,11,0,10,0,12,0,10,0,12,0,11,0,13,0,11,0,13,0,11,0,13,0,11,0,14,0,12,0,14,0,12,0,15,0,12,0,15,0,12,0,15,0,12,0,15,0,13,0,17,0,13,0,17,0,10,0,12,0,11,0,11,0,11,0,12,0,11,0,12,0,11,0,13,0,11,0,13,0,11,0,13,0,11,0,14,0,11,0,14,0,11,0,15,0,12,0,15,0,12,0,15,0,12,0,15,0,12,0,16,0,13,0,16,0,13,0,16,0,10,0,12,0,11,0,12,0,11,0,12,0,11,0,12,0,11,0,13,0,11,0,13,0,11,0,14,0,11,0,14,0,12,0,15,0,12,0,15,0,12,0,15,0,12,0,15,0,12,0,16,0,13,0,15,0,13,0,16,0,13,0,15,0,10,0,13,0,12,0,12,0,11,0,13,0,11,0,12,0,11,0,13,0,11,0,14,0,12,0,14,0,12,0,14,0,12,0,14,0,12,0,15,0,12,0,16,0,12,0,16,0,13,0,16,0,13,0,17,0,13,0,17,0,13,0,16,0,10,0,12,0,12,0,13,0,12,0,13,0,11,0,13,0,11,0,13,0,11,0,14,0,12,0,14,0,12,0,15,0,12,0,16,0,12,0,16,0,12,0,16,0,12,0,16,0,13,0,16,0,13,0,16,0,13,0,15,0,13,0,16,0,10,0,13,0,12,0,13,0,12,0,14,0,12,0,14,0,12,0,14,0,12,0,14,0,12,0,15,0,12,0,15,0,12,0,15,0,12,0,15,0,12,0,17,0,13,0,16,0,13,0,16,0,13,0,16,0,13,0,16,0,13,0,18,0,10,0,13,0,12,0,15,0,12,0,14,0,12,0,14,0,12,0,14,0,12,0,15,0,12,0,15,0,12,0,16,0,12,0,16,0,13,0,16,0,13,0,18,0,13,0,17,0,13,0,17,0,13,0,17,0,13,0,19,0,13,0,17,0,10,0,13,0,13,0,14,0,12,0,15,0,12,0,13,0,12,0,14,0,12,0,16,0,12,0,16,0,12,0,15,0,13,0,16,0,13,0,16,0,13,0,17,0,13,0,18,0,13,0,17,0,13,0,19,0,13,0,17,0,13,0,16,0,10,0,13,0,9,0,10,0,9,0,10,0,9,0,10,0,9,0,11,0,9,0,11,0,9,0,12,0,9,0,12,0,9,0,12,0,9,0,13,0,9,0,13,0,9,0,13,0,10,0,13,0,10,0,13,0,10,0,13,0,10,0,13,0,6,0,10,0], "i8", ALLOC_NONE, 5316516);
+allocate([44,76,0,0,56,74,0,0,68,72,0,0,80,70,0,0,92,68,0,0,116,64,0,0,140,60,0,0,164,56,0,0,212,48,0,0,28,37,0,0,110,15,0,0], "i8", ALLOC_NONE, 5317540);
+allocate([192,93,0,0,44,76,0,0,68,72,0,0,80,70,0,0,92,68,0,0,104,66,0,0,116,64,0,0,240,60,0,0,96,59,0,0,62,28,0,0,110,15,0,0], "i8", ALLOC_NONE, 5317584);
+allocate([44,76,0,0,56,74,0,0,168,72,0,0,80,70,0,0,92,68,0,0,128,62,0,0,240,60,0,0,52,58,0,0,212,48,0,0,16,39,0,0,110,15,0,0], "i8", ALLOC_NONE, 5317628);
+allocate([128,187,0,0,0,0,0,0,0,0,208,64,0,0,0,0,0,0,208,64,148,92,0,0,68,172,0,0,0,0,0,0,0,0,208,64,0,0,0,0,0,0,208,64,20,85,0,0,0,125,0,0,0,0,208,64,0,0,0,65,102,102,166,64,0,0,208,64,184,61,0,0,192,93,0,0,0,0,0,65,0,0,8,65,102,102,166,64,0,0,192,64,74,46,0,0,34,86,0,0,0,0,8,65,246,40,16,65,102,102,166,64,0,0,208,64,140,42,0,0,128,62,0,0,246,40,16,65,102,102,22,65,205,204,156,64,0,0,208,64,223,30,0,0,224,46,0,0,102,102,22,65,154,153,25,65,0,0,144,64,0,0,192,64,40,23,0,0,17,43,0,0,154,153,25,65,102,102,30,65,51,51,163,64,0,0,208,64,70,21,0,0,64,31,0,0,102,102,30,65,0,0,32,65,205,204,156,64,0,0,208,64,112,15,0,0], "i8", ALLOC_NONE, 5317672);
+allocate([102,102,182,64,0,0,208,64,154,153,233,64,51,51,3,65,0,0,32,65,102,102,62,65,0,0,80,65,0,0,96,65,0,0,112,65,0,0,132,65], "i8", ALLOC_NONE, 5317888);
+allocate([0,0,0,63,0,0,0,63], "i8", ALLOC_NONE, 5317928);
+allocate([84,224,212,189,89,191,65,190,248,108,93,190,47,168,31,190,254,195,51,36,70,124,111,62,48,42,1,63,72,191,65,63,70,124,111,63], "i8", ALLOC_NONE, 5317936);
+allocate(8192, "i8", ALLOC_NONE, 5317972);
+allocate(1028, "i8", ALLOC_NONE, 5326164);
+allocate(4, "i8", ALLOC_NONE, 5327192);
+allocate([1,0,0,0,2,0,0,0,5,0,0,0,7,0,0,0,7,0,0,0,10,0,0,0,10,0,0,0,13,0,0,0,13,0,0,0,13,0,0,0,13,0,0,0,13,0,0,0,13,0,0,0,13,0,0,0,13,0,0,0], "i8", ALLOC_NONE, 5327196);
+allocate([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,7,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,15,0,0,0,0,0,0,0,0,0,0,0,6,0,0,0,63,0,0,0,0,0,0,0,0,0,0,0,8,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,10,0,0,0,255,3,0,0,0,0,0,0,0,0,0,0,13,0,0,0,255,31,0,0,0,0,0,0,0,0,0,0,4,0,0,0,15,0,0,0,0,0,0,0,0,0,0,0,5,0,0,0,31,0,0,0,0,0,0,0,0,0,0,0,6,0,0,0,63,0,0,0,0,0,0,0,0,0,0,0,7,0,0,0,127,0,0,0,0,0,0,0,0,0,0,0,8,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,9,0,0,0,255,1,0,0,0,0,0,0,0,0,0,0,11,0,0,0,255,7,0,0,0,0,0,0,0,0,0,0,13,0,0,0,255,31,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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", ALLOC_NONE, 5327256);
+allocate(9216, "i8", ALLOC_NONE, 5327800);
+allocate(8192, "i8", ALLOC_NONE, 5337016);
+allocate(592, "i8", ALLOC_NONE, 5345208);
+allocate([123,0,0,0,34,0,0,0,74,0,0,0,73,0,0,0,99,0,0,0,20,0,0,0,40,0,0,0,26,0,0,0,145,0,0,0,90,0,0,0,116,0,0,0,41,0,0,0,135,0,0,0,85,0,0,0,96,0,0,0,138,0,0,0,89,0,0,0,0,0,0,0,107,0,0,0,132,0,0,0,65,0,0,0,88,0,0,0,104,0,0,0,102,0,0,0,97,0,0,0,136,0,0,0,61,0,0,0,141,0,0,0,32,0,0,0,1,0,0,0,112,0,0,0,128,0,0,0,57,0,0,0,140,0,0,0,2,0,0,0,139,0,0,0,58,0,0,0,3,0,0,0,125,0,0,0,50,0,0,0,22,0,0,0,4,0,0,0,55,0,0,0,127,0,0,0,122,0,0,0,120,0,0,0,98,0,0,0,52,0,0,0,48,0,0,0,54,0,0,0,124,0,0,0,25,0,0,0,84,0,0,0,80,0,0,0,115,0,0,0,81,0,0,0,119,0,0,0,5,0,0,0,30,0,0,0,36,0,0,0,59,0,0,0,126,0,0,0,38,0,0,0,49,0,0,0,91,0,0,0,6,0,0,0,129,0,0,0,79,0,0,0,137,0,0,0,7,0,0,0,35,0,0,0,100,0,0,0,131,0,0,0,19,0,0,0,33,0,0,0,46,0,0,0,47,0,0,0,8,0,0,0,29,0,0,0,146,0,0,0,63,0,0,0,86,0,0,0,71,0,0,0,45,0,0,0,142,0,0,0,9,0,0,0,77,0,0,0,82,0,0,0,64,0,0,0,133,0,0,0,10,0,0,0,66,0,0,0,39,0,0,0,11,0,0,0,103,0,0,0,12,0,0,0,75,0,0,0,134,0,0,0,13,0,0,0,53,0,0,0,62,0,0,0,109,0,0,0,117,0,0,0,23,0,0,0,108,0,0,0,92,0,0,0,67,0,0,0,93,0,0,0,43,0,0,0,121,0,0,0,15,0,0,0,68,0,0,0,14,0,0,0,16,0,0,0,76,0,0,0,87,0,0,0,118,0,0,0,17,0,0,0,78,0,0,0,143,0,0,0,114,0,0,0,110,0,0,0,69,0,0,0,21,0,0,0,111,0,0,0,95,0,0,0,105,0,0,0,42,0,0,0,37,0,0,0,24,0,0,0,56,0,0,0,44,0,0,0,101,0,0,0,83,0,0,0,94,0,0,0,106,0,0,0,147,0,0,0,113,0,0,0,18,0,0,0,51,0,0,0,130,0,0,0,144,0,0,0,60,0,0,0,70,0,0,0,31,0,0,0,72,0,0,0,27,0,0,0,28,0,0,0], "i8", ALLOC_NONE, 5345800);
+allocate([121,207,23,190,138,59,1,66,164,51,148,67,155,200,92,68,202,167,45,70,175,40,132,68,192,222,152,67,129,155,246,65,199,156,118,64,77,183,109,66,194,101,49,68,74,15,165,69,82,45,182,197,71,104,76,196,73,213,153,194,66,4,147,192,94,6,104,63,54,189,72,62,3,97,30,190,44,76,9,66,68,231,150,67,96,102,76,68,47,215,52,70,17,168,147,68,117,204,160,67,46,219,249,65,68,124,109,64,146,154,86,66,183,10,43,68,136,68,163,69,35,243,198,197,129,62,99,196,80,169,179,194,43,42,173,192,1,24,82,63,194,197,199,62,223,144,36,190,144,150,16,66,32,15,152,67,140,47,55,68,113,86,59,70,101,128,162,68,120,164,167,67,193,231,251,65,149,237,87,64,209,237,60,66,46,47,35,68,80,99,160,69,178,232,215,197,240,127,122,196,100,62,207,194,121,91,195,192,207,220,61,63,49,160,20,63,61,91,42,190,177,1,23,66,106,129,151,67,98,254,28,68,14,27,65,70,229,136,176,68,246,95,173,67,75,201,252,65,52,59,74,64,173,80,34,66,178,10,26,68,170,126,156,69,83,240,232,197,121,249,136,196,253,124,236,194,231,48,218,192,193,13,43,63,21,239,67,63,139,188,47,190,75,118,28,66,177,43,149,67,81,195,251,67,92,30,70,70,161,146,189,68,23,254,177,67,116,41,251,65,165,166,58,64,77,48,7,66,62,185,15,68,225,169,151,69,144,236,249,197,102,184,148,196,253,164,5,195,130,12,247,192,196,112,25,63,234,90,113,63,120,177,52,190,11,224,32,66,197,255,144,67,75,169,179,67,9,89,74,70,63,131,201,68,227,108,181,67,12,94,248,65,73,159,52,64,49,233,215,65,148,121,4,68,250,250,145,69,153,95,5,198,224,82,160,196,230,149,21,195,193,75,10,193,185,213,8,63,218,57,142,63,244,54,185,190,93,45,36,66,238,197,138,67,123,163,67,67,193,197,77,70,150,52,212,68,118,180,183,67,208,116,244,65,169,3,34,64,173,143,160,65,68,192,240,67,195,135,139,69,122,165,13,198,28,180,171,196,130,42,38,195,136,83,25,193,112,40,242,62,153,103,162,63,55,74,189,190,167,146,37,66,148,165,130,67,182,247,78,65,135,96,80,70,71,144,221,68,247,225,184,67,182,2,238,65,153,191,25,64,113,224,84,65,226,71,215,67,116,104,132,69,186,183,21,198,32,182,182,196,153,32,55,195,248,124,43,193,205,19,212,62,243,4,181,63,187,232,192,190,91,122,38,66,227,13,113,67,88,242,59,195,65,40,82,70,237,132,229,68,213,190,184,67,201,3,232,65,16,147,4,64,105,242,216,64,110,227,188,67,47,102,121,69,214,134,29,198,81,62,193,196,85,96,72,195,235,212,61,193,80,50,183,62,3,228,197,63,71,16,196,190,73,155,36,66,18,122,88,67,23,20,203,195,140,28,83,70,216,249,235,68,185,166,183,67,247,22,225,65,11,250,244,63,71,16,196,62,69,237,161,67,91,2,105,69,239,4,37,198,124,38,203,196,16,160,89,195,54,63,80,193,66,80,155,62,49,219,212,63,46,15,21,191,242,108,33,66,98,51,60,67,83,17,32,196,220,60,83,70,70,243,240,68,238,104,181,67,38,192,215,65,112,137,223,63,88,12,180,192,157,166,134,67,47,214,87,69,149,32,44,198,6,85,212,196,16,196,106,195,193,157,98,193,212,63,128,62,152,197,225,63,57,182,22,191,234,239,28,66,206,194,27,67,244,79,94,196,226,141,82,70,182,97,244,68,249,56,178,67,221,40,207,65,124,229,200,63,57,233,50,193,16,207,86,67,160,18,70,69,73,205,50,198,21,165,220,196,104,176,123,195,1,246,119,193,175,175,75,62,94,131,236,63,230,143,74,191,36,147,21,66,35,102,239,66,16,227,143,196,201,17,81,70,166,76,246,68,130,2,174,67,22,218,197,65,28,72,177,63,12,95,131,193,224,12,33,67,81,229,51,69,247,251,56,198,140,255,227,196,139,36,134,195,184,137,134,193,100,229,23,62,11,250,244,63,223,202,75,191,201,237,12,66,223,9,160,66,174,0,178,196,45,207,78,70,187,185,246,68,213,254,168,67,51,80,186,65,197,91,178,63,32,204,168,193,139,247,216,66,54,123,33,69,232,158,62,198,230,72,234,196,148,31,142,195,218,232,144,193,220,181,201,61,190,20,251,63,15,177,127,191,152,64,2,66,94,213,19,66,106,66,213,196,38,205,75,70,66,172,245,68,70,55,163,67,112,102,177,65,251,108,153,63,81,248,202,193,231,35,102,66,180,6,15,69,179,170,67,198,226,90,239,196,151,161,149,195,66,6,155,193,60,57,73,61,109,196,254,63,54,211,37,70,68,177,165,69,175,113,104,68,69,51,54,68,128,12,144,67,180,213,129,66,2,0,241,65,34,63,131,64,49,19,72,70,167,49,243,68,86,182,156,67,170,105,166,65,251,100,249,68,112,3,16,65,17,158,233,193], "i8", ALLOC_NONE, 5346392);
+allocate([0,0,0,0,128,1,0,0,128,4,0,0,128,4,0,0,0,0,0,0,128,1,0,0,128,4,0,0,64,2,0,0], "i8", ALLOC_NONE, 5347532);
+allocate([0,0,0,0,193,192,0,0,129,193,0,0,64,1,0,0,1,195,0,0,192,3,0,0,128,2,0,0,65,194,0,0,1,198,0,0,192,6,0,0,128,7,0,0,65,199,0,0,0,5,0,0,193,197,0,0,129,196,0,0,64,4,0,0,1,204,0,0,192,12,0,0,128,13,0,0,65,205,0,0,0,15,0,0,193,207,0,0,129,206,0,0,64,14,0,0,0,10,0,0,193,202,0,0,129,203,0,0,64,11,0,0,1,201,0,0,192,9,0,0,128,8,0,0,65,200,0,0,1,216,0,0,192,24,0,0,128,25,0,0,65,217,0,0,0,27,0,0,193,219,0,0,129,218,0,0,64,26,0,0,0,30,0,0,193,222,0,0,129,223,0,0,64,31,0,0,1,221,0,0,192,29,0,0,128,28,0,0,65,220,0,0,0,20,0,0,193,212,0,0,129,213,0,0,64,21,0,0,1,215,0,0,192,23,0,0,128,22,0,0,65,214,0,0,1,210,0,0,192,18,0,0,128,19,0,0,65,211,0,0,0,17,0,0,193,209,0,0,129,208,0,0,64,16,0,0,1,240,0,0,192,48,0,0,128,49,0,0,65,241,0,0,0,51,0,0,193,243,0,0,129,242,0,0,64,50,0,0,0,54,0,0,193,246,0,0,129,247,0,0,64,55,0,0,1,245,0,0,192,53,0,0,128,52,0,0,65,244,0,0,0,60,0,0,193,252,0,0,129,253,0,0,64,61,0,0,1,255,0,0,192,63,0,0,128,62,0,0,65,254,0,0,1,250,0,0,192,58,0,0,128,59,0,0,65,251,0,0,0,57,0,0,193,249,0,0,129,248,0,0,64,56,0,0,0,40,0,0,193,232,0,0,129,233,0,0,64,41,0,0,1,235,0,0,192,43,0,0,128,42,0,0,65,234,0,0,1,238,0,0,192,46,0,0,128,47,0,0,65,239,0,0,0,45,0,0,193,237,0,0,129,236,0,0,64,44,0,0,1,228,0,0,192,36,0,0,128,37,0,0,65,229,0,0,0,39,0,0,193,231,0,0,129,230,0,0,64,38,0,0,0,34,0,0,193,226,0,0,129,227,0,0,64,35,0,0,1,225,0,0,192,33,0,0,128,32,0,0,65,224,0,0,1,160,0,0,192,96,0,0,128,97,0,0,65,161,0,0,0,99,0,0,193,163,0,0,129,162,0,0,64,98,0,0,0,102,0,0,193,166,0,0,129,167,0,0,64,103,0,0,1,165,0,0,192,101,0,0,128,100,0,0,65,164,0,0,0,108,0,0,193,172,0,0,129,173,0,0,64,109,0,0,1,175,0,0,192,111,0,0,128,110,0,0,65,174,0,0,1,170,0,0,192,106,0,0,128,107,0,0,65,171,0,0,0,105,0,0,193,169,0,0,129,168,0,0,64,104,0,0,0,120,0,0,193,184,0,0,129,185,0,0,64,121,0,0,1,187,0,0,192,123,0,0,128,122,0,0,65,186,0,0,1,190,0,0,192,126,0,0,128,127,0,0,65,191,0,0,0,125,0,0,193,189,0,0,129,188,0,0,64,124,0,0,1,180,0,0,192,116,0,0,128,117,0,0,65,181,0,0,0,119,0,0,193,183,0,0,129,182,0,0,64,118,0,0,0,114,0,0,193,178,0,0,129,179,0,0,64,115,0,0,1,177,0,0,192,113,0,0,128,112,0,0,65,176,0,0,0,80,0,0,193,144,0,0,129,145,0,0,64,81,0,0,1,147,0,0,192,83,0,0,128,82,0,0,65,146,0,0,1,150,0,0,192,86,0,0,128,87,0,0,65,151,0,0,0,85,0,0,193,149,0,0,129,148,0,0,64,84,0,0,1,156,0,0,192,92,0,0,128,93,0,0,65,157,0,0,0,95,0,0,193,159,0,0,129,158,0,0,64,94,0,0,0,90,0,0,193,154,0,0,129,155,0,0,64,91,0,0,1,153,0,0,192,89,0,0,128,88,0,0,65,152,0,0,1,136,0,0,192,72,0,0,128,73,0,0,65,137,0,0,0,75,0,0,193,139,0,0,129,138,0,0,64,74,0,0,0,78,0,0,193,142,0,0,129,143,0,0,64,79,0,0,1,141,0,0,192,77,0,0,128,76,0,0,65,140,0,0,0,68,0,0,193,132,0,0,129,133,0,0,64,69,0,0,1,135,0,0,192,71,0,0,128,70,0,0,65,134,0,0,1,130,0,0,192,66,0,0,128,67,0,0,65,131,0,0,0,65,0,0,193,129,0,0,129,128,0,0,64,64,0,0], "i8", ALLOC_NONE, 5347564);
+allocate([28,0,0,0,32,0,0,0,6,0,0,0,6,0,0,0,8,0,0,0,8,0,0,0,8,0,0,0,8,0,0,0,8,0,0,0,8,0,0,0,8,0,0,0,8,0,0,0,8,0,0,0,8,0,0,0,8,0,0,0,8,0,0,0], ["*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0], ALLOC_NONE, 5348588);
+allocate([94,131,108,63,21,239,195,62,109,196,126,63,54,189,200,61,67,236,127,63,176,10,201,60,196,254,127,63,136,15,201,59], "i8", ALLOC_NONE, 5348652);
+allocate([0,0,0,0,8,0,0,0,16,0,0,0,24,0,0,0,32,0,0,0,40,0,0,0,48,0,0,0,56,0,0,0,64,0,0,0,80,0,0,0,96,0,0,0,112,0,0,0,128,0,0,0,144,0,0,0,160,0,0,0,255,255,255,255,0,0,0,0,32,0,0,0,40,0,0,0,48,0,0,0,56,0,0,0,64,0,0,0,80,0,0,0,96,0,0,0,112,0,0,0,128,0,0,0,160,0,0,0,192,0,0,0,224,0,0,0,0,1,0,0,64,1,0,0,255,255,255,255,0,0,0,0,8,0,0,0,16,0,0,0,24,0,0,0,32,0,0,0,40,0,0,0,48,0,0,0,56,0,0,0,64,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255], "i8", ALLOC_NONE, 5348684);
+allocate([8,0,0,0,9,0,0,0,9,0,0,0,0,0,0,0,0,0,0,0,51,51,211,64,0,0,17,67,51,51,115,63,0,0,0,0,0,0,240,193,0,0,48,65,82,73,157,58,1,0,0,0,16,0,0,0,9,0,0,0,9,0,0,0,0,0,0,0,0,0,0,0,51,51,211,64,0,0,17,67,51,51,115,63,0,0,0,0,0,0,200,193,0,0,48,65,111,18,131,58,1,0,0,0,24,0,0,0,9,0,0,0,9,0,0,0,0,0,0,0,0,0,0,0,51,51,211,64,0,0,17,67,51,51,115,63,0,0,0,0,0,0,160,193,0,0,48,65,111,18,131,58,1,0,0,0,32,0,0,0,9,0,0,0,9,0,0,0,0,0,0,0,0,0,0,0,51,51,211,64,0,0,17,67,51,51,115,63,0,0,0,0,0,0,112,193,0,0,48,65,111,18,131,58,1,0,0,0,40,0,0,0,9,0,0,0,9,0,0,0,0,0,0,0,0,0,0,0,51,51,211,64,0,0,17,67,51,51,115,63,0,0,0,0,0,0,32,193,0,0,48,65,250,237,107,58,1,0,0,0,48,0,0,0,9,0,0,0,9,0,0,0,0,0,0,0,0,0,0,0,51,51,211,64,0,0,17,67,51,51,115,63,0,0,0,0,0,0,32,193,0,0,48,65,250,237,107,58,1,0,0,0,56,0,0,0,9,0,0,0,9,0,0,0,0,0,0,0,0,0,0,0,51,51,211,64,0,0,17,67,51,51,115,63,0,0,0,0,0,0,192,192,0,0,48,65,23,183,81,58,1,0,0,0,64,0,0,0,9,0,0,0,9,0,0,0,0,0,0,0,0,0,0,0,51,51,211,64,0,0,17,67,51,51,115,63,0,0,0,0,0,0,0,192,0,0,48,65,23,183,81,58,1,0,0,0,80,0,0,0,9,0,0,0,9,0,0,0,0,0,0,0,0,0,0,0,51,51,211,64,0,0,17,67,51,51,115,63,0,0,0,0,0,0,0,0,0,0,0,65,52,128,55,58,1,0,0,0,96,0,0,0,9,0,0,0,9,0,0,0,0,0,0,0,0,0,32,64,51,51,211,64,0,0,17,67,51,51,115,63,0,0,0,0,0,0,128,63,0,0,176,64,82,73,29,58,1,0,0,0,112,0,0,0,9,0,0,0,9,0,0,0,0,0,0,0,0,0,16,64,51,51,211,64,0,0,17,67,51,51,115,63,0,0,0,0,0,0,0,64,0,0,144,64,111,18,3,58,1,0,0,0,128,0,0,0,9,0,0,0,9,0,0,0,0,0,0,0,154,153,249,63,205,204,204,64,0,0,12,67,51,51,115,63,0,0,0,0,0,0,64,64,0,0,128,64,23,183,81,57,1,0,0,0,160,0,0,0,9,0,0,0,9,0,0,0,1,0,0,0,184,30,229,63,0,0,192,64,0,0,7,67,51,51,115,63,0,0,0,192,0,0,160,64,0,0,96,64,0,0,0,0,1,0,0,0,192,0,0,0,9,0,0,0,9,0,0,0,1,0,0,0,82,184,190,63,51,51,179,64,0,0,250,66,236,81,120,63,0,0,128,192,0,0,224,64,0,0,64,64,0,0,0,0,0,0,0,0,224,0,0,0,9,0,0,0,9,0,0,0,1,0,0,0,0,0,160,63,102,102,166,64,0,0,250,66,72,225,122,63,0,0,192,192,0,0,16,65,0,0,0,64,0,0,0,0,0,0,0,0,0,1,0,0,9,0,0,0,9,0,0,0,1,0,0,0,236,81,120,63,102,102,166,64,0,0,250,66,0,0,128,63,0,0,0,193,0,0,32,65,0,0,128,63,0,0,0,0,0,0,0,0,64,1,0,0,9,0,0,0,9,0,0,0,1,0,0,0,102,102,102,63,102,102,166,64,0,0,250,66,0,0,128,63,0,0,32,193,0,0,64,65,0,0,0,0,0,0,0,0,0,0,0,0], "i8", ALLOC_NONE, 5348876);
+allocate(32832, "i8", ALLOC_NONE, 5349760);
+allocate([67,101,108,116,105,99,0] /* Celtic\00 */, "i8", ALLOC_NONE, 5382592);
+allocate([82,101,118,105,118,97,108,0] /* Revival\00 */, "i8", ALLOC_NONE, 5382600);
+allocate([76,97,116,105,110,0] /* Latin\00 */, "i8", ALLOC_NONE, 5382608);
+allocate([66,101,98,111,98,0] /* Bebob\00 */, "i8", ALLOC_NONE, 5382616);
+allocate([70,97,115,116,32,70,117,115,105,111,110,0] /* Fast Fusion\00 */, "i8", ALLOC_NONE, 5382624);
+allocate([83,119,105,110,103,0] /* Swing\00 */, "i8", ALLOC_NONE, 5382636);
+allocate([78,97,116,105,111,110,97,108,32,70,111,108,107,0] /* National Folk\00 */, "i8", ALLOC_NONE, 5382644);
+allocate([87,97,114,110,105,110,103,58,32,104,105,103,104,112,97,115,115,32,102,105,108,116,101,114,32,100,105,115,97,98,108,101,100,46,32,32,104,105,103,104,112,97,115,115,32,102,114,101,113,117,101,110,99,121,32,116,111,111,32,115,109,97,108,108,10,0] /* Warning: highpass fi */, "i8", ALLOC_NONE, 5382660);
+allocate([70,111,108,107,45,82,111,99,107,0] /* Folk-Rock\00 */, "i8", ALLOC_NONE, 5382728);
+allocate([83,83,69,0] /* SSE\00 */, "i8", ALLOC_NONE, 5382740);
+allocate([69,114,114,111,114,58,32,99,97,110,39,116,32,97,108,108,111,99,97,116,101,32,105,110,95,98,117,102,102,101,114,32,98,117,102,102,101,114,10,0] /* Error: can't allocat */, "i8", ALLOC_NONE, 5382744);
+allocate([70,111,108,107,0] /* Folk\00 */, "i8", ALLOC_NONE, 5382784);
+allocate([69,114,114,111,114,58,32,99,111,117,108,100,32,110,111,116,32,117,112,100,97,116,101,32,76,65,77,69,32,116,97,103,44,32,102,105,108,101,32,110,111,116,32,114,101,97,100,97,98,108,101,46,10,0] /* Error: could not upd */, "i8", ALLOC_NONE, 5382792);
+allocate([72,97,114,100,32,82,111,99,107,0] /* Hard Rock\00 */, "i8", ALLOC_NONE, 5382848);
+allocate([76,65,77,69,32,37,115,32,118,101,114,115,105,111,110,32,37,115,32,40,37,115,41,0] /* LAME %s version %s ( */, "i8", ALLOC_NONE, 5382860);
+allocate([69,114,114,111,114,58,32,99,111,117,108,100,32,110,111,116,32,117,112,100,97,116,101,32,76,65,77,69,32,116,97,103,44,32,102,105,108,101,32,110,111,116,32,115,101,101,107,97,98,108,101,46,10,0] /* Error: could not upd */, "i8", ALLOC_NONE, 5382884);
+allocate([82,111,99,107,32,38,32,82,111,108,108,0] /* Rock & Roll\00 */, "i8", ALLOC_NONE, 5382940);
+allocate([69,114,114,111,114,58,32,99,111,117,108,100,32,110,111,116,32,117,112,100,97,116,101,32,76,65,77,69,32,116,97,103,46,10,0] /* Error: could not upd */, "i8", ALLOC_NONE, 5382952);
+allocate([77,117,115,105,99,97,108,0] /* Musical\00 */, "i8", ALLOC_NONE, 5382988);
+allocate([10,0] /* \0A\00 */, "i8", ALLOC_NONE, 5382996);
+allocate([82,101,116,114,111,0] /* Retro\00 */, "i8", ALLOC_NONE, 5383000);
+allocate([9,105,110,116,101,114,99,104,97,110,110,101,108,32,109,97,115,107,105,110,103,32,114,97,116,105,111,58,32,37,103,10,0] /* \09interchannel mask */, "i8", ALLOC_NONE, 5383008);
+allocate([80,111,108,107,97,0] /* Polka\00 */, "i8", ALLOC_NONE, 5383044);
+allocate([9,117,115,105,110,103,32,116,101,109,112,111,114,97,108,32,109,97,115,107,105,110,103,32,101,102,102,101,99,116,58,32,37,115,10,0] /* \09using temporal ma */, "i8", ALLOC_NONE, 5383052);
+allocate([65,99,105,100,32,74,97,122,122,0] /* Acid Jazz\00 */, "i8", ALLOC_NONE, 5383088);
+allocate([110,111,0] /* no\00 */, "i8", ALLOC_NONE, 5383100);
+allocate([65,99,105,100,32,80,117,110,107,0] /* Acid Punk\00 */, "i8", ALLOC_NONE, 5383104);
+allocate([121,101,115,0] /* yes\00 */, "i8", ALLOC_NONE, 5383116);
+allocate([84,114,105,98,97,108,0] /* Tribal\00 */, "i8", ALLOC_NONE, 5383120);
+allocate([9,32,32,32,97,100,106,117,115,116,32,109,97,115,107,105,110,103,32,98,97,115,115,61,37,103,32,100,66,44,32,97,108,116,111,61,37,103,32,100,66,44,32,116,114,101,98,108,101,61,37,103,32,100,66,44,32,115,102,98,50,49,61,37,103,32,100,66,10,0] /* \09   adjust masking */, "i8", ALLOC_NONE, 5383128);
+allocate([76,111,45,70,105,0] /* Lo-Fi\00 */, "i8", ALLOC_NONE, 5383200);
+allocate([37,108,117,0] /* %lu\00 */, "i8", ALLOC_NONE, 5383208);
+allocate([9,101,120,112,101,114,105,109,101,110,116,97,108,32,112,115,121,32,116,117,110,105,110,103,115,32,98,121,32,78,97,111,107,105,32,83,104,105,98,97,116,97,10,0] /* \09experimental psy  */, "i8", ALLOC_NONE, 5383212);
+allocate([84,114,97,105,108,101,114,0] /* Trailer\00 */, "i8", ALLOC_NONE, 5383256);
+allocate([9,32,94,32,97,100,106,117,115,116,32,115,101,110,115,105,116,105,118,105,116,121,32,112,111,119,101,114,58,32,37,102,10,0] /* \09 ^ adjust sensiti */, "i8", ALLOC_NONE, 5383264);
+allocate([83,104,111,119,116,117,110,101,115,0] /* Showtunes\00 */, "i8", ALLOC_NONE, 5383300);
+allocate([80,78,71,0] /* PNG\00 */, "i8", ALLOC_NONE, 5383312);
+allocate([9,32,94,32,97,100,106,117,115,116,32,116,121,112,101,58,32,37,100,10,0] /* \09 ^ adjust type: % */, "i8", ALLOC_NONE, 5383316);
+allocate([82,97,118,101,0] /* Rave\00 */, "i8", ALLOC_NONE, 5383340);
+allocate([9,32,94,32,108,101,118,101,108,32,97,100,106,117,115,116,101,109,101,110,116,58,32,37,103,32,100,66,10,0] /* \09 ^ level adjustem */, "i8", ALLOC_NONE, 5383348);
+allocate([80,115,121,99,104,101,100,101,108,105,99,0] /* Psychedelic\00 */, "i8", ALLOC_NONE, 5383380);
+allocate([32,40,111,110,108,121,32,102,111,114,32,116,121,112,101,32,52,41,0] /*  (only for type 4)\0 */, "i8", ALLOC_NONE, 5383392);
+allocate([78,101,119,32,87,97,118,101,0] /* New Wave\00 */, "i8", ALLOC_NONE, 5383412);
+allocate([9,32,94,32,115,104,97,112,101,58,32,37,103,37,115,10,0] /* \09 ^ shape: %g%s\0A */, "i8", ALLOC_NONE, 5383424);
+allocate([67,97,98,97,114,101,116,0] /* Cabaret\00 */, "i8", ALLOC_NONE, 5383444);
+allocate([9,32,94,32,116,121,112,101,58,32,37,100,10,0] /* \09 ^ type: %d\0A\00 */, "i8", ALLOC_NONE, 5383452);
+allocate([78,97,116,105,118,101,32,85,83,0] /* Native US\00 */, "i8", ALLOC_NONE, 5383468);
+allocate([9,65,84,72,58,32,37,115,10,0] /* \09ATH: %s\0A\00 */, "i8", ALLOC_NONE, 5383480);
+allocate([74,117,110,103,108,101,0] /* Jungle\00 */, "i8", ALLOC_NONE, 5383492);
+allocate([110,111,116,32,117,115,101,100,0] /* not used\00 */, "i8", ALLOC_NONE, 5383500);
+allocate([80,111,112,47,70,117,110,107,0] /* Pop/Funk\00 */, "i8", ALLOC_NONE, 5383512);
+allocate([116,104,101,32,111,110,108,121,32,109,97,115,107,105,110,103,0] /* the only masking\00 */, "i8", ALLOC_NONE, 5383524);
+allocate([67,104,114,105,115,116,105,97,110,32,82,97,112,0] /* Christian Rap\00 */, "i8", ALLOC_NONE, 5383544);
+allocate([51,68,78,111,119,33,0] /* 3DNow!\00 */, "i8", ALLOC_NONE, 5383560);
+allocate([37,100,0] /* %d\00 */, "i8", ALLOC_NONE, 5383568);
+allocate([116,104,101,32,111,110,108,121,32,109,97,115,107,105,110,103,32,102,111,114,32,115,104,111,114,116,32,98,108,111,99,107,115,0] /* the only masking for */, "i8", ALLOC_NONE, 5383572);
+allocate([84,111,112,32,52,48,0] /* Top 40\00 */, "i8", ALLOC_NONE, 5383608);
+allocate([117,115,105,110,103,0] /* using\00 */, "i8", ALLOC_NONE, 5383616);
+allocate([71,97,110,103,115,116,97,0] /* Gangsta\00 */, "i8", ALLOC_NONE, 5383624);
+allocate([69,114,114,111,114,58,32,77,65,88,95,72,69,65,68,69,82,95,66,85,70,32,116,111,111,32,115,109,97,108,108,32,105,110,32,98,105,116,115,116,114,101,97,109,46,99,32,10,0] /* Error: MAX_HEADER_BU */, "i8", ALLOC_NONE, 5383632);
+allocate([9,32,94,32,115,116,111,112,112,105,110,103,58,32,37,100,10,0] /* \09 ^ stopping: %d\0 */, "i8", ALLOC_NONE, 5383684);
+allocate([67,117,108,116,0] /* Cult\00 */, "i8", ALLOC_NONE, 5383704);
+allocate([9,32,94,32,97,109,112,108,105,102,105,99,97,116,105,111,110,58,32,37,100,10,0] /* \09 ^ amplification: */, "i8", ALLOC_NONE, 5383712);
+allocate([67,111,109,101,100,121,0] /* Comedy\00 */, "i8", ALLOC_NONE, 5383736);
+allocate([9,110,111,105,115,101,32,115,104,97,112,105,110,103,58,32,37,100,10,0] /* \09noise shaping: %d */, "i8", ALLOC_NONE, 5383744);
+allocate([83,111,117,116,104,101,114,110,32,82,111,99,107,0] /* Southern Rock\00 */, "i8", ALLOC_NONE, 5383764);
+allocate([9,32,94,32,99,111,109,112,97,114,105,115,111,110,32,115,104,111,114,116,32,98,108,111,99,107,115,58,32,37,100,10,0] /* \09 ^ comparison sho */, "i8", ALLOC_NONE, 5383780);
+allocate([68,114,101,97,109,0] /* Dream\00 */, "i8", ALLOC_NONE, 5383816);
+allocate([9,113,117,97,110,116,105,122,97,116,105,111,110,32,99,111,109,112,97,114,105,115,111,110,58,32,37,100,10,0] /* \09quantization comp */, "i8", ALLOC_NONE, 5383824);
+allocate([69,117,114,111,100,97,110,99,101,0] /* Eurodance\00 */, "i8", ALLOC_NONE, 5383856);
+allocate([51,50,98,105,116,115,0] /* 32bits\00 */, "i8", ALLOC_NONE, 5383868);
+allocate([9,97,100,106,117,115,116,32,109,97,115,107,105,110,103,32,115,104,111,114,116,58,32,37,103,32,100,66,10,0] /* \09adjust masking sh */, "i8", ALLOC_NONE, 5383876);
+allocate([80,111,112,45,70,111,108,107,0] /* Pop-Folk\00 */, "i8", ALLOC_NONE, 5383908);
+allocate([9,97,100,106,117,115,116,32,109,97,115,107,105,110,103,58,32,37,103,32,100,66,10,0] /* \09adjust masking: % */, "i8", ALLOC_NONE, 5383920);
+allocate([69,108,101,99,116,114,111,110,105,99,0] /* Electronic\00 */, "i8", ALLOC_NONE, 5383944);
+allocate([9,115,117,98,98,108,111,99,107,32,103,97,105,110,58,32,37,100,10,0] /* \09subblock gain: %d */, "i8", ALLOC_NONE, 5383956);
+allocate([84,101,99,104,110,111,45,73,110,100,117,115,116,114,105,97,108,0] /* Techno-Industrial\00 */, "i8", ALLOC_NONE, 5383976);
+allocate([105,109,97,103,101,47,103,105,102,0] /* image/gif\00 */, "i8", ALLOC_NONE, 5383996);
+allocate([9,117,115,105,110,103,32,115,104,111,114,116,32,98,108,111,99,107,115,58,32,37,115,10,0] /* \09using short block */, "i8", ALLOC_NONE, 5384008);
+allocate([68,97,114,107,119,97,118,101,0] /* Darkwave\00 */, "i8", ALLOC_NONE, 5384036);
+allocate([102,111,114,99,101,100,0] /* forced\00 */, "i8", ALLOC_NONE, 5384048);
+allocate([71,111,116,104,105,99,0] /* Gothic\00 */, "i8", ALLOC_NONE, 5384056);
+allocate([32,49,37,37,32,32,98,117,103,32,105,110,32,76,65,77,69,32,101,110,99,111,100,105,110,103,32,108,105,98,114,97,114,121,0] /*  1%%  bug in LAME en */, "i8", ALLOC_NONE, 5384064);
+allocate([100,105,115,112,101,110,115,101,100,0] /* dispensed\00 */, "i8", ALLOC_NONE, 5384100);
+allocate([69,116,104,110,105,99,0] /* Ethnic\00 */, "i8", ALLOC_NONE, 5384112);
+allocate([99,104,97,110,110,101,108,32,99,111,117,112,108,101,100,0] /* channel coupled\00 */, "i8", ALLOC_NONE, 5384120);
+allocate([73,110,115,116,114,117,109,101,110,116,97,108,32,82,111,99,107,0] /* Instrumental Rock\00 */, "i8", ALLOC_NONE, 5384136);
+allocate([97,108,108,111,119,101,100,0] /* allowed\00 */, "i8", ALLOC_NONE, 5384156);
+allocate([73,110,115,116,114,117,109,101,110,116,97,108,32,80,111,112,0] /* Instrumental Pop\00 */, "i8", ALLOC_NONE, 5384164);
+allocate([10,112,115,121,99,104,111,97,99,111,117,115,116,105,99,58,10,10,0] /* \0Apsychoacoustic:\0 */, "i8", ALLOC_NONE, 5384184);
+allocate([77,101,100,105,116,97,116,105,118,101,0] /* Meditative\00 */, "i8", ALLOC_NONE, 5384204);
+allocate([9,117,115,105,110,103,32,76,65,77,69,32,84,97,103,10,0] /* \09using LAME Tag\0A */, "i8", ALLOC_NONE, 5384216);
+allocate([83,112,97,99,101,0] /* Space\00 */, "i8", ALLOC_NONE, 5384236);
+allocate(1, "i8", ALLOC_NONE, 5384244);
+allocate([9,32,63,63,32,111,111,112,115,44,32,115,111,109,101,32,110,101,119,32,111,110,101,32,63,63,32,10,0] /* \09 ?? oops, some ne */, "i8", ALLOC_NONE, 5384248);
+allocate([80,117,110,107,0] /* Punk\00 */, "i8", ALLOC_NONE, 5384280);
+allocate([9,118,97,114,105,97,98,108,101,32,98,105,116,114,97,116,101,32,45,32,86,66,82,32,109,116,114,104,32,37,115,10,0] /* \09variable bitrate  */, "i8", ALLOC_NONE, 5384288);
+allocate([83,111,117,108,0] /* Soul\00 */, "i8", ALLOC_NONE, 5384324);
+allocate([9,118,97,114,105,97,98,108,101,32,98,105,116,114,97,116,101,32,45,32,86,66,82,32,109,116,32,37,115,10,0] /* \09variable bitrate  */, "i8", ALLOC_NONE, 5384332);
+allocate([66,97,115,115,0] /* Bass\00 */, "i8", ALLOC_NONE, 5384364);
+allocate([77,77,88,0] /* MMX\00 */, "i8", ALLOC_NONE, 5384372);
+allocate([105,109,97,103,101,47,112,110,103,0] /* image/png\00 */, "i8", ALLOC_NONE, 5384376);
+allocate([9,118,97,114,105,97,98,108,101,32,98,105,116,114,97,116,101,32,45,32,86,66,82,32,114,104,32,37,115,10,0] /* \09variable bitrate  */, "i8", ALLOC_NONE, 5384388);
+allocate([65,108,116,101,114,110,97,116,105,118,101,32,82,111,99,107,0] /* Alternative Rock\00 */, "i8", ALLOC_NONE, 5384420);
+allocate([9,118,97,114,105,97,98,108,101,32,98,105,116,114,97,116,101,32,45,32,65,66,82,32,37,115,10,0] /* \09variable bitrate  */, "i8", ALLOC_NONE, 5384440);
+allocate([78,111,105,115,101,0] /* Noise\00 */, "i8", ALLOC_NONE, 5384468);
+allocate([32,57,37,37,32,32,89,111,117,114,32,115,121,115,116,101,109,32,105,115,32,111,118,101,114,99,108,111,99,107,101,100,0] /*  9%%  Your system is */, "i8", ALLOC_NONE, 5384476);
+allocate([9,99,111,110,115,116,97,110,116,32,98,105,116,114,97,116,101,32,45,32,67,66,82,32,37,115,10,0] /* \09constant bitrate  */, "i8", ALLOC_NONE, 5384512);
+allocate([71,111,115,112,101,108,0] /* Gospel\00 */, "i8", ALLOC_NONE, 5384540);
+allocate([40,102,114,101,101,32,102,111,114,109,97,116,41,0] /* (free format)\00 */, "i8", ALLOC_NONE, 5384548);
+allocate([83,111,117,110,100,32,67,108,105,112,0] /* Sound Clip\00 */, "i8", ALLOC_NONE, 5384564);
+allocate([109,97,120,32,115,121,115,116,101,109,32,98,121,116,101,115,32,61,32,37,49,48,108,117,10,0] /* max system bytes = % */, "i8", ALLOC_NONE, 5384576);
+allocate([40,100,101,102,97,117,108,116,41,0] /* (default)\00 */, "i8", ALLOC_NONE, 5384604);
+allocate([71,97,109,101,0] /* Game\00 */, "i8", ALLOC_NONE, 5384616);
+allocate([9,112,97,100,100,105,110,103,58,32,37,115,10,0] /* \09padding: %s\0A\00 */, "i8", ALLOC_NONE, 5384624);
+allocate([72,111,117,115,101,0] /* House\00 */, "i8", ALLOC_NONE, 5384640);
+allocate([51,46,57,57,46,53,0] /* 3.99.5\00 */, "i8", ALLOC_NONE, 5384648);
+allocate([97,108,108,0] /* all\00 */, "i8", ALLOC_NONE, 5384656);
+allocate([65,99,105,100,0] /* Acid\00 */, "i8", ALLOC_NONE, 5384660);
+allocate([104,116,116,112,58,47,47,108,97,109,101,46,115,102,46,110,101,116,0] /* http://lame.sf.net\0 */, "i8", ALLOC_NONE, 5384668);
+allocate([69,114,114,111,114,58,32,99,97,110,39,116,32,97,108,108,111,99,97,116,101,32,86,98,114,70,114,97,109,101,115,32,98,117,102,102,101,114,10,0] /* Error: can't allocat */, "i8", ALLOC_NONE, 5384688);
+allocate([111,102,102,0] /* off\00 */, "i8", ALLOC_NONE, 5384728);
+allocate([73,78,84,69,82,78,65,76,32,69,82,82,79,82,32,73,78,32,86,66,82,32,78,69,87,32,67,79,68,69,32,40,49,51,49,51,41,44,32,112,108,101,97,115,101,32,115,101,110,100,32,98,117,103,32,114,101,112,111,114,116,10,109,97,120,98,105,116,115,61,37,100,32,117,115,101,100,98,105,116,115,61,37,100,10,0] /* INTERNAL ERROR IN VB */, "i8", ALLOC_NONE, 5384732);
+allocate([73,110,115,116,114,117,109,101,110,116,97,108,0] /* Instrumental\00 */, "i8", ALLOC_NONE, 5384820);
+allocate([9,37,100,32,99,104,97,110,110,101,108,32,45,32,37,115,10,0] /* \09%d channel - %s\0 */, "i8", ALLOC_NONE, 5384836);
+allocate([67,108,97,115,115,105,99,97,108,0] /* Classical\00 */, "i8", ALLOC_NONE, 5384856);
+allocate([117,110,107,110,111,119,110,32,40,101,114,114,111,114,41,0] /* unknown (error)\00 */, "i8", ALLOC_NONE, 5384868);
+allocate([84,114,97,110,99,101,0] /* Trance\00 */, "i8", ALLOC_NONE, 5384884);
+allocate([44,32,0] /* , \00 */, "i8", ALLOC_NONE, 5384892);
+allocate([105,109,97,103,101,47,106,112,101,103,0] /* image/jpeg\00 */, "i8", ALLOC_NONE, 5384896);
+allocate([110,111,116,32,115,101,116,32,40,101,114,114,111,114,41,0] /* not set (error)\00 */, "i8", ALLOC_NONE, 5384908);
+allocate([70,117,115,105,111,110,0] /* Fusion\00 */, "i8", ALLOC_NONE, 5384924);
+allocate([109,111,110,111,0] /* mono\00 */, "i8", ALLOC_NONE, 5384932);
+allocate([74,97,122,122,43,70,117,110,107,0] /* Jazz+Funk\00 */, "i8", ALLOC_NONE, 5384940);
+allocate([57,48,37,37,32,32,76,65,77,69,32,99,111,109,112,105,108,101,100,32,119,105,116,104,32,98,117,103,103,121,32,118,101,114,115,105,111,110,32,111,102,32,103,99,99,32,117,115,105,110,103,32,97,100,118,97,110,99,101,100,32,111,112,116,105,109,105,122,97,116,105,111,110,115,0] /* 90%%  LAME compiled  */, "i8", ALLOC_NONE, 5384952);
+allocate([100,117,97,108,32,99,104,97,110,110,101,108,0] /* dual channel\00 */, "i8", ALLOC_NONE, 5385028);
+allocate([86,111,99,97,108,0] /* Vocal\00 */, "i8", ALLOC_NONE, 5385044);
+allocate([105,110,116,101,110,115,105,116,121,32,115,116,101,114,101,111,32,110,111,116,32,105,109,112,108,101,109,101,110,116,101,100,32,121,101,116,10,0] /* intensity stereo not */, "i8", ALLOC_NONE, 5385052);
+allocate([115,116,101,114,101,111,0] /* stereo\00 */, "i8", ALLOC_NONE, 5385092);
+allocate([84,114,105,112,45,72,111,112,0] /* Trip-Hop\00 */, "i8", ALLOC_NONE, 5385100);
+allocate([106,111,105,110,116,32,115,116,101,114,101,111,0] /* joint stereo\00 */, "i8", ALLOC_NONE, 5385112);
+allocate([65,109,98,105,101,110,116,0] /* Ambient\00 */, "i8", ALLOC_NONE, 5385128);
+allocate([9,77,80,69,71,45,37,115,32,76,97,121,101,114,32,51,10,0] /* \09MPEG-%s Layer 3\0 */, "i8", ALLOC_NONE, 5385136);
+allocate([69,117,114,111,45,84,101,99,104,110,111,0] /* Euro-Techno\00 */, "i8", ALLOC_NONE, 5385156);
+allocate([63,0] /* ?\00 */, "i8", ALLOC_NONE, 5385168);
+allocate([83,111,117,110,100,116,114,97,99,107,0] /* Soundtrack\00 */, "i8", ALLOC_NONE, 5385172);
+allocate([115,116,100,58,58,98,97,100,95,97,108,108,111,99,0] /* std::bad_alloc\00 */, "i8", ALLOC_NONE, 5385184);
+allocate([49,46,48,0] /* 1.0\00 */, "i8", ALLOC_NONE, 5385200);
+allocate([50,0] /* 2\00 */, "i8", ALLOC_NONE, 5385204);
+allocate([80,114,97,110,107,115,0] /* Pranks\00 */, "i8", ALLOC_NONE, 5385208);
+allocate([49,0] /* 1\00 */, "i8", ALLOC_NONE, 5385216);
+allocate([68,101,97,116,104,32,77,101,116,97,108,0] /* Death Metal\00 */, "i8", ALLOC_NONE, 5385220);
+allocate([50,46,53,0] /* 2.5\00 */, "i8", ALLOC_NONE, 5385232);
+allocate([83,107,97,0] /* Ska\00 */, "i8", ALLOC_NONE, 5385236);
+allocate([10,115,116,114,101,97,109,32,102,111,114,109,97,116,58,10,10,0] /* \0Astream format:\0A */, "i8", ALLOC_NONE, 5385240);
+allocate(1, "i8", ALLOC_NONE, 5385260);
+allocate([65,108,116,101,114,110,97,116,105,118,101,0] /* Alternative\00 */, "i8", ALLOC_NONE, 5385264);
+allocate([9,46,46,46,10,0] /* \09...\0A\00 */, "i8", ALLOC_NONE, 5385276);
+allocate([73,110,100,117,115,116,114,105,97,108,0] /* Industrial\00 */, "i8", ALLOC_NONE, 5385284);
+allocate([84,104,105,115,32,105,115,32,97,32,102,97,116,97,108,32,101,114,114,111,114,46,32,32,73,116,32,104,97,115,32,115,101,118,101,114,97,108,32,112,111,115,115,105,98,108,101,32,99,97,117,115,101,115,58,0] /* This is a fatal erro */, "i8", ALLOC_NONE, 5385296);
+allocate([9,101,120,112,101,114,105,109,101,110,116,97,108,32,89,61,37,100,10,0] /* \09experimental Y=%d */, "i8", ALLOC_NONE, 5385352);
+allocate([84,101,99,104,110,111,0] /* Techno\00 */, "i8", ALLOC_NONE, 5385372);
+allocate([9,104,117,102,102,109,97,110,32,115,101,97,114,99,104,58,32,37,115,10,0] /* \09huffman search: % */, "i8", ALLOC_NONE, 5385380);
+allocate([82,111,99,107,0] /* Rock\00 */, "i8", ALLOC_NONE, 5385404);
+allocate([98,101,115,116,32,40,105,110,115,105,100,101,32,108,111,111,112,44,32,115,108,111,119,41,0] /* best (inside loop, s */, "i8", ALLOC_NONE, 5385412);
+allocate([82,101,103,103,97,101,0] /* Reggae\00 */, "i8", ALLOC_NONE, 5385440);
+allocate([73,78,84,69,82,78,65,76,32,69,82,82,79,82,32,73,78,32,86,66,82,32,78,69,87,32,67,79,68,69,44,32,112,108,101,97,115,101,32,115,101,110,100,32,98,117,103,32,114,101,112,111,114,116,10,0] /* INTERNAL ERROR IN VB */, "i8", ALLOC_NONE, 5385448);
+allocate([98,101,115,116,32,40,111,117,116,115,105,100,101,32,108,111,111,112,41,0] /* best (outside loop)\ */, "i8", ALLOC_NONE, 5385504);
+allocate([82,97,112,0] /* Rap\00 */, "i8", ALLOC_NONE, 5385524);
+allocate([110,111,114,109,97,108,0] /* normal\00 */, "i8", ALLOC_NONE, 5385528);
+allocate([82,38,66,0] /* R&B\00 */, "i8", ALLOC_NONE, 5385536);
+allocate([105,110,32,117,115,101,32,98,121,116,101,115,32,32,32,32,32,61,32,37,49,48,108,117,10,0] /* in use bytes     = % */, "i8", ALLOC_NONE, 5385540);
+allocate([76,65,77,69,51,46,57,57,114,0] /* LAME3.99r\00 */, "i8", ALLOC_NONE, 5385568);
+allocate([9,99,104,49,32,40,114,105,103,104,116,41,32,115,99,97,108,105,110,103,58,32,37,103,10,0] /* \09ch1 (right) scali */, "i8", ALLOC_NONE, 5385580);
+allocate([80,111,112,0] /* Pop\00 */, "i8", ALLOC_NONE, 5385608);
+allocate([9,99,104,48,32,40,108,101,102,116,41,32,115,99,97,108,105,110,103,58,32,37,103,10,0] /* \09ch0 (left) scalin */, "i8", ALLOC_NONE, 5385612);
+allocate([79,116,104,101,114,0] /* Other\00 */, "i8", ALLOC_NONE, 5385640);
+allocate([9,115,99,97,108,105,110,103,58,32,37,103,10,0] /* \09scaling: %g\0A\00 */, "i8", ALLOC_NONE, 5385648);
+allocate([79,108,100,105,101,115,0] /* Oldies\00 */, "i8", ALLOC_NONE, 5385664);
+allocate([10,109,105,115,99,58,10,10,0] /* \0Amisc:\0A\0A\00 */, "i8", ALLOC_NONE, 5385672);
+allocate([88,88,88,0] /* XXX\00 */, "i8", ALLOC_NONE, 5385684);
+allocate([78,101,119,32,65,103,101,0] /* New Age\00 */, "i8", ALLOC_NONE, 5385688);
+allocate(1, "i8", ALLOC_NONE, 5385696);
+allocate([77,101,116,97,108,0] /* Metal\00 */, "i8", ALLOC_NONE, 5385700);
+allocate([98,105,116,32,114,101,115,101,114,118,111,105,114,32,101,114,114,111,114,58,32,10,108,51,95,115,105,100,101,45,62,109,97,105,110,95,100,97,116,97,95,98,101,103,105,110,58,32,37,105,32,10,82,101,115,118,111,105,114,32,115,105,122,101,58,32,32,32,32,32,32,32,32,32,32,32,32,32,37,105,32,10,114,101,115,118,32,100,114,97,105,110,32,40,112,111,115,116,41,32,32,32,32,32,32,32,32,32,37,105,32,10,114,101,115,118,32,100,114,97,105,110,32,40,112,114,101,41,32,32,32,32,32,32,32,32,32,32,37,105,32,10,104,101,97,100,101,114,32,97,110,100,32,115,105,100,101,105,110,102,111,58,32,32,32,32,32,32,37,105,32,10,100,97,116,97,32,98,105,116,115,58,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,37,105,32,10,116,111,116,97,108,32,98,105,116,115,58,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,37,105,32,40,114,101,109,97,105,110,100,101,114,58,32,37,105,41,32,10,98,105,116,115,112,101,114,102,114,97,109,101,58,32,32,32,32,32,32,32,32,32,32,32,32,32,37,105,32,10,0] /* bit reservoir error: */, "i8", ALLOC_NONE, 5385708);
+allocate([87,97,114,110,105,110,103,58,32,109,97,110,121,32,100,101,99,111,100,101,114,115,32,99,97,110,110,111,116,32,104,97,110,100,108,101,32,102,114,101,101,32,102,111,114,109,97,116,32,98,105,116,114,97,116,101,115,32,62,51,50,48,32,107,98,112,115,32,40,115,101,101,32,100,111,99,117,109,101,110,116,97,116,105,111,110,41,10,0] /* Warning: many decode */, "i8", ALLOC_NONE, 5385988);
+allocate([74,97,122,122,0] /* Jazz\00 */, "i8", ALLOC_NONE, 5386080);
+allocate([71,73,70,56,0] /* GIF8\00 */, "i8", ALLOC_NONE, 5386088);
+allocate([87,97,114,110,105,110,103,58,32,109,97,110,121,32,100,101,99,111,100,101,114,115,32,99,97,110,110,111,116,32,104,97,110,100,108,101,32,102,114,101,101,32,102,111,114,109,97,116,32,98,105,116,115,116,114,101,97,109,115,10,0] /* Warning: many decode */, "i8", ALLOC_NONE, 5386096);
+allocate([72,105,112,45,72,111,112,0] /* Hip-Hop\00 */, "i8", ALLOC_NONE, 5386160);
+allocate([112,111,108,121,112,104,97,115,101,32,108,111,119,112,97,115,115,32,102,105,108,116,101,114,32,100,105,115,97,98,108,101,100,10,0] /* polyphase lowpass fi */, "i8", ALLOC_NONE, 5386168);
+allocate([71,114,117,110,103,101,0] /* Grunge\00 */, "i8", ALLOC_NONE, 5386204);
+allocate([85,115,105,110,103,32,112,111,108,121,112,104,97,115,101,32,108,111,119,112,97,115,115,32,102,105,108,116,101,114,44,32,116,114,97,110,115,105,116,105,111,110,32,98,97,110,100,58,32,37,53,46,48,102,32,72,122,32,45,32,37,53,46,48,102,32,72,122,10,0] /* Using polyphase lowp */, "i8", ALLOC_NONE, 5386212);
+allocate([70,117,110,107,0] /* Funk\00 */, "i8", ALLOC_NONE, 5386284);
+allocate([76,65,77,69,32,37,115,32,37,115,32,40,37,115,41,10,0] /* LAME %s %s (%s)\0A\0 */, "i8", ALLOC_NONE, 5386292);
+allocate([83,121,110,116,104,80,111,112,0] /* SynthPop\00 */, "i8", ALLOC_NONE, 5386312);
+allocate([74,80,111,112,0] /* JPop\00 */, "i8", ALLOC_NONE, 5386324);
+allocate([65,110,105,109,101,0] /* Anime\00 */, "i8", ALLOC_NONE, 5386332);
+allocate([84,104,114,97,115,104,32,77,101,116,97,108,0] /* Thrash Metal\00 */, "i8", ALLOC_NONE, 5386340);
+allocate([83,97,108,115,97,0] /* Salsa\00 */, "i8", ALLOC_NONE, 5386356);
+allocate([77,101,114,101,110,103,117,101,0] /* Merengue\00 */, "i8", ALLOC_NONE, 5386364);
+allocate([67,104,114,105,115,116,105,97,110,32,82,111,99,107,0] /* Christian Rock\00 */, "i8", ALLOC_NONE, 5386376);
+allocate([85,115,105,110,103,32,112,111,108,121,112,104,97,115,101,32,104,105,103,104,112,97,115,115,32,102,105,108,116,101,114,44,32,116,114,97,110,115,105,116,105,111,110,32,98,97,110,100,58,32,37,53,46,48,102,32,72,122,32,45,32,37,53,46,48,102,32,72,122,10,0] /* Using polyphase high */, "i8", ALLOC_NONE, 5386392);
+allocate([67,111,110,116,101,109,112,111,114,97,114,121,32,67,104,114,105,115,116,105,97,110,0] /* Contemporary Christi */, "i8", ALLOC_NONE, 5386464);
+allocate([67,114,111,115,115,111,118,101,114,0] /* Crossover\00 */, "i8", ALLOC_NONE, 5386488);
+allocate([68,105,115,99,111,0] /* Disco\00 */, "i8", ALLOC_NONE, 5386500);
+allocate([66,108,97,99,107,32,77,101,116,97,108,0] /* Black Metal\00 */, "i8", ALLOC_NONE, 5386508);
+allocate([72,101,97,118,121,32,77,101,116,97,108,0] /* Heavy Metal\00 */, "i8", ALLOC_NONE, 5386520);
+allocate([115,121,115,116,101,109,32,98,121,116,101,115,32,32,32,32,32,61,32,37,49,48,108,117,10,0] /* system bytes     = % */, "i8", ALLOC_NONE, 5386532);
+allocate([67,104,114,105,115,116,105,97,110,32,71,97,110,103,115,116,97,0] /* Christian Gangsta\00 */, "i8", ALLOC_NONE, 5386560);
+allocate([66,101,97,116,0] /* Beat\00 */, "i8", ALLOC_NONE, 5386580);
+allocate([76,65,77,69,51,46,57,57,114,53,0] /* LAME3.99r5\00 */, "i8", ALLOC_NONE, 5386588);
+allocate([80,111,108,115,107,32,80,117,110,107,0] /* Polsk Punk\00 */, "i8", ALLOC_NONE, 5386600);
+allocate([98,97,100,95,97,114,114,97,121,95,110,101,119,95,108,101,110,103,116,104,0] /* bad_array_new_length */, "i8", ALLOC_NONE, 5386612);
+allocate([73,68,51,0] /* ID3\00 */, "i8", ALLOC_NONE, 5386636);
+allocate([73,78,84,69,82,78,65,76,32,69,82,82,79,82,32,73,78,32,86,66,82,32,78,69,87,32,67,79,68,69,32,40,57,56,54,41,44,32,112,108,101,97,115,101,32,115,101,110,100,32,98,117,103,32,114,101,112,111,114,116,10,0] /* INTERNAL ERROR IN VB */, "i8", ALLOC_NONE, 5386640);
+allocate([78,101,103,101,114,112,117,110,107,0] /* Negerpunk\00 */, "i8", ALLOC_NONE, 5386704);
+allocate([66,114,105,116,80,111,112,0] /* BritPop\00 */, "i8", ALLOC_NONE, 5386716);
+allocate([73,110,100,105,101,0] /* Indie\00 */, "i8", ALLOC_NONE, 5386724);
+allocate([82,101,115,97,109,112,108,105,110,103,58,32,32,105,110,112,117,116,32,37,103,32,107,72,122,32,32,111,117,116,112,117,116,32,37,103,32,107,72,122,10,0] /* Resampling:  input % */, "i8", ALLOC_NONE, 5386732);
+allocate([84,101,114,114,111,114,0] /* Terror\00 */, "i8", ALLOC_NONE, 5386776);
+allocate([72,97,114,100,99,111,114,101,0] /* Hardcore\00 */, "i8", ALLOC_NONE, 5386784);
+allocate([68,97,110,99,101,0] /* Dance\00 */, "i8", ALLOC_NONE, 5386796);
+allocate([67,108,117,98,45,72,111,117,115,101,0] /* Club-House\00 */, "i8", ALLOC_NONE, 5386804);
+allocate([68,114,117,109,32,38,32,66,97,115,115,0] /* Drum & Bass\00 */, "i8", ALLOC_NONE, 5386816);
+allocate([71,111,97,0] /* Goa\00 */, "i8", ALLOC_NONE, 5386828);
+allocate([68,97,110,99,101,32,72,97,108,108,0] /* Dance Hall\00 */, "i8", ALLOC_NONE, 5386832);
+allocate([69,117,114,111,45,72,111,117,115,101,0] /* Euro-House\00 */, "i8", ALLOC_NONE, 5386844);
+allocate([65,32,67,97,112,112,101,108,108,97,0] /* A Cappella\00 */, "i8", ALLOC_NONE, 5386856);
+allocate([68,114,117,109,32,83,111,108,111,0] /* Drum Solo\00 */, "i8", ALLOC_NONE, 5386868);
+allocate([80,117,110,107,32,82,111,99,107,0] /* Punk Rock\00 */, "i8", ALLOC_NONE, 5386880);
+allocate([65,117,116,111,99,111,110,118,101,114,116,105,110,103,32,102,114,111,109,32,115,116,101,114,101,111,32,116,111,32,109,111,110,111,46,32,83,101,116,116,105,110,103,32,101,110,99,111,100,105,110,103,32,116,111,32,109,111,110,111,32,109,111,100,101,46,10,0] /* Autoconverting from  */, "i8", ALLOC_NONE, 5386892);
+allocate([68,117,101,116,0] /* Duet\00 */, "i8", ALLOC_NONE, 5386960);
+allocate([70,114,101,101,115,116,121,108,101,0] /* Freestyle\00 */, "i8", ALLOC_NONE, 5386968);
+allocate([67,111,117,110,116,114,121,0] /* Country\00 */, "i8", ALLOC_NONE, 5386980);
+allocate([82,104,121,116,104,109,105,99,32,83,111,117,108,0] /* Rhythmic Soul\00 */, "i8", ALLOC_NONE, 5386988);
+allocate([80,111,119,101,114,32,66,97,108,108,97,100,0] /* Power Ballad\00 */, "i8", ALLOC_NONE, 5387004);
+allocate([66,97,108,108,97,100,0] /* Ballad\00 */, "i8", ALLOC_NONE, 5387020);
+allocate([70,111,108,107,108,111,114,101,0] /* Folklore\00 */, "i8", ALLOC_NONE, 5387028);
+allocate([83,97,109,98,97,0] /* Samba\00 */, "i8", ALLOC_NONE, 5387040);
+allocate([84,97,110,103,111,0] /* Tango\00 */, "i8", ALLOC_NONE, 5387048);
+allocate([67,108,117,98,0] /* Club\00 */, "i8", ALLOC_NONE, 5387056);
+allocate([83,108,111,119,32,74,97,109,0] /* Slow Jam\00 */, "i8", ALLOC_NONE, 5387064);
+allocate([67,80,85,32,102,101,97,116,117,114,101,115,58,32,37,115,10,0] /* CPU features: %s\0A\ */, "i8", ALLOC_NONE, 5387076);
+allocate([83,97,116,105,114,101,0] /* Satire\00 */, "i8", ALLOC_NONE, 5387096);
+allocate([80,111,114,110,32,71,114,111,111,118,101,0] /* Porn Groove\00 */, "i8", ALLOC_NONE, 5387104);
+allocate([67,108,97,115,115,105,99,32,82,111,99,107,0] /* Classic Rock\00 */, "i8", ALLOC_NONE, 5387116);
+allocate([80,114,105,109,117,115,0] /* Primus\00 */, "i8", ALLOC_NONE, 5387132);
+allocate([66,111,111,116,121,32,66,97,115,115,0] /* Booty Bass\00 */, "i8", ALLOC_NONE, 5387140);
+allocate([83,121,109,112,104,111,110,121,0] /* Symphony\00 */, "i8", ALLOC_NONE, 5387152);
+allocate([83,111,110,97,116,97,0] /* Sonata\00 */, "i8", ALLOC_NONE, 5387164);
+allocate([67,104,97,109,98,101,114,32,77,117,115,105,99,0] /* Chamber Music\00 */, "i8", ALLOC_NONE, 5387172);
+allocate([79,112,101,114,97,0] /* Opera\00 */, "i8", ALLOC_NONE, 5387188);
+allocate([67,104,97,110,115,111,110,0] /* Chanson\00 */, "i8", ALLOC_NONE, 5387196);
+allocate([83,112,101,101,99,104,0] /* Speech\00 */, "i8", ALLOC_NONE, 5387204);
+allocate([83,83,69,50,0] /* SSE2\00 */, "i8", ALLOC_NONE, 5387212);
+allocate([72,117,109,111,117,114,0] /* Humour\00 */, "i8", ALLOC_NONE, 5387220);
+allocate([65,99,111,117,115,116,105,99,0] /* Acoustic\00 */, "i8", ALLOC_NONE, 5387228);
+allocate([66,108,117,101,115,0] /* Blues\00 */, "i8", ALLOC_NONE, 5387240);
+allocate([69,97,115,121,32,76,105,115,116,101,110,105,110,103,0] /* Easy Listening\00 */, "i8", ALLOC_NONE, 5387248);
+allocate([67,104,111,114,117,115,0] /* Chorus\00 */, "i8", ALLOC_NONE, 5387264);
+allocate([66,105,103,32,66,97,110,100,0] /* Big Band\00 */, "i8", ALLOC_NONE, 5387272);
+allocate([83,108,111,119,32,82,111,99,107,0] /* Slow Rock\00 */, "i8", ALLOC_NONE, 5387284);
+allocate([83,121,109,112,104,111,110,105,99,32,82,111,99,107,0] /* Symphonic Rock\00 */, "i8", ALLOC_NONE, 5387296);
+allocate([80,115,121,99,104,101,100,101,108,105,99,32,82,111,99,107,0] /* Psychedelic Rock\00 */, "i8", ALLOC_NONE, 5387312);
+allocate([80,114,111,103,114,101,115,115,105,118,101,32,82,111,99,107,0] /* Progressive Rock\00 */, "i8", ALLOC_NONE, 5387332);
+allocate([71,111,116,104,105,99,32,82,111,99,107,0] /* Gothic Rock\00 */, "i8", ALLOC_NONE, 5387352);
+allocate([65,118,97,110,116,103,97,114,100,101,0] /* Avantgarde\00 */, "i8", ALLOC_NONE, 5387364);
+allocate([66,108,117,101,103,114,97,115,115,0] /* Bluegrass\00 */, "i8", ALLOC_NONE, 5387376);
+allocate([76,65,77,69,32,118,101,114,115,105,111,110,32,37,115,32,40,37,115,41,0] /* LAME version %s (%s) */, "i8", ALLOC_NONE, 5387388);
+allocate([73,110,116,101,114,110,97,108,32,98,117,102,102,101,114,32,105,110,99,111,110,115,105,115,116,101,110,99,121,46,32,102,108,117,115,104,98,105,116,115,32,60,62,32,82,101,115,118,83,105,122,101,0] /* Internal buffer inco */, "i8", ALLOC_NONE, 5387412);
+allocate([115,116,114,97,110,103,101,32,101,114,114,111,114,32,102,108,117,115,104,105,110,103,32,98,117,102,102,101,114,32,46,46,46,32,10,0] /* strange error flushi */, "i8", ALLOC_NONE, 5387468);
+allocate(468, "i8", ALLOC_NONE, 5387504);
+allocate([0,0,0,0,32,55,82,0,0,0,0,0,0,0,0,0,0,0,0,0], "i8", ALLOC_NONE, 5387972);
+allocate(1, "i8", ALLOC_NONE, 5387992);
+allocate([0,0,0,0,44,55,82,0,0,0,0,0,0,0,0,0,0,0,0,0], "i8", ALLOC_NONE, 5387996);
+allocate(1, "i8", ALLOC_NONE, 5388016);
+allocate([83,116,57,98,97,100,95,97,108,108,111,99,0] /* St9bad_alloc\00 */, "i8", ALLOC_NONE, 5388020);
+allocate([83,116,50,48,98,97,100,95,97,114,114,97,121,95,110,101,119,95,108,101,110,103,116,104,0] /* St20bad_array_new_le */, "i8", ALLOC_NONE, 5388036);
+allocate(12, "i8", ALLOC_NONE, 5388064);
+allocate([0,0,0,0,0,0,0,0,32,55,82,0], "i8", ALLOC_NONE, 5388076);
+allocate(1, "i8", ALLOC_NONE, 5388088);
+allocate(4, "i8", ALLOC_NONE, 5388092);
+allocate([1,30,0,0,1,30,0,0], "i8", ALLOC_NONE, 5388096);
+allocate([0,16,0,0,0,16,0,0,0,16,0,0,0,16,0,0], "i8", ALLOC_NONE, 5388104);
+allocate([1,5,3,2,4,0,3] /* \01\05\03\02\04\00\0 */, "i8", ALLOC_NONE, 5388120);
+allocate([221,1,30,61,115,47,118,192,47,250,176,188,158,20,250,64,153,188,161,186,158,119,53,193,81,220,194,184,116,225,80,65,83,153,135,188,1,154,68,193,129,18,177,60,29,186,23,65,225,231,169,188,42,236,187,192,86,189,194,59,84,76,48,64,23,210,72,59,21,174,94,191,117,48,252,56,166,136,14,62,45,12,61,59,187,242,93,61,21,159,94,192,66,120,238,188,39,159,203,64,116,13,11,188,159,194,8,193,122,116,11,188,136,161,23,65,15,206,8,188,48,10,13,193,54,239,183,60,24,84,219,64,42,177,212,188,119,161,140,192,227,27,133,60,46,141,12,64,204,220,29,187,91,68,64,191,179,14,221,59,38,166,6,62,18,27,246,186,98,72,30,62,88,65,24,192,146,25,191,189,204,80,54,64,198,233,127,189,83,84,41,192,195,60,177,60,160,42,15,64,141,230,100,189,27,243,213,191,107,217,67,61,72,195,128,63,221,177,17,59,30,72,235,190,198,2,2,61,96,182,39,62,140,213,99,188,41,29,78,189,32,117,213,59,250,86,192,60,8,103,16,188,195,30,155,62,254,109,206,191,55,145,103,190,17,54,138,63,79,222,175,189,44,92,131,190,5,120,6,61,113,172,38,190,93,7,22,188,128,210,103,190,162,171,193,188,106,76,200,62,186,131,191,187,206,177,98,190,217,136,128,61,99,84,56,61,14,238,10,183,195,81,164,60,229,233,6,59,220,52,70,59,209,172,241,188,164,63,172,62,202,209,191,191,12,238,130,190,224,157,95,63,198,63,242,189,120,245,249,61,39,37,244,61,171,200,78,191,74,115,160,189,61,4,245,62,155,0,154,187,253,11,255,189,221,42,193,187,240,154,38,189,226,118,106,61,225,172,170,61,116,82,8,60,208,143,45,189,111,248,133,188,144,228,243,60,148,49,144,188,83,247,229,62,31,210,32,191,69,246,18,190,75,222,151,62,236,79,105,190,172,192,190,190,13,131,104,188,76,24,12,59,175,11,39,61,83,49,215,190,21,234,253,189,13,83,99,62,22,214,39,61,196,1,201,59,137,153,214,61,247,48,138,61,143,176,152,188,61,242,108,61,134,205,2,189,7,1,4,61,132,146,177,59,35,242,16,63,249,36,134,191,99,48,65,191,195,71,149,62,202,81,38,62,41,63,137,190,8,118,43,62,71,89,6,60,108,141,65,190,36,174,230,62,232,94,158,62,59,32,169,190,83,31,141,190,179,5,138,61,91,28,212,59,139,246,67,189,211,25,177,61,92,87,134,60,98,50,27,189,45,15,148,60,22,191,192,187,190,188,20,63,131,166,2,191,181,32,8,191,54,36,163,190,218,83,18,190,249,108,79,190,122,105,51,62,249,208,22,62,32,205,194,60,1,112,199,62,138,81,31,62,88,186,110,190,236,195,129,190,127,224,86,189,85,103,133,60,212,73,205,188,47,187,141,61,242,19,200,60,237,111,24,189,6,255,148,60,149,162,245,187,69,87,9,63,94,65,128,190,239,223,215,190,42,39,221,190,85,217,52,187,98,70,12,189,146,207,46,61,213,159,63,189,79,51,209,189,227,53,135,62,214,104,21,62,42,194,26,62,27,131,201,188,75,199,51,190,101,108,229,189,100,191,64,190,139,76,38,189,16,94,96,61,204,36,68,61,80,177,64,61,130,177,181,188], "i8", ALLOC_NONE, 5388128);
+allocate([98,120,124,63,40,114,252,191,98,120,252,191,59,253,120,63,98,120,124,63,19,41,124,63,180,33,252,191,19,41,252,191,229,96,120,63,19,41,124,63,66,185,122,63,86,171,250,191,66,185,250,191,92,142,117,63,66,185,122,63,120,174,121,63,129,154,249,191,120,174,249,191,222,132,115,63,120,174,121,63,91,33,121,63,194,9,249,191,91,33,249,191,234,113,114,63,91,33,121,63,110,236,118,63,58,195,246,191,110,236,246,191,69,43,110,63,110,236,118,63,141,200,117,63,87,148,245,191,141,200,245,191,134,249,107,63,141,200,117,63,202,100,117,63,133,44,245,191,202,100,245,191,31,58,107,63,202,100,117,63,138,43,114,63,214,203,241,191,138,43,242,191,124,22,101,63,138,43,114,63], "i8", ALLOC_NONE, 5388884);
+HEAP32[((5327280)>>2)]=((5251164)|0);
+HEAP32[((5327284)>>2)]=((5251160)|0);
+HEAP32[((5327296)>>2)]=((5250372)|0);
+HEAP32[((5327300)>>2)]=((5250360)|0);
+HEAP32[((5327312)>>2)]=((5250244)|0);
+HEAP32[((5327316)>>2)]=((5250232)|0);
+HEAP32[((5327344)>>2)]=((5250200)|0);
+HEAP32[((5327348)>>2)]=((5250184)|0);
+HEAP32[((5327360)>>2)]=((5250152)|0);
+HEAP32[((5327364)>>2)]=((5250136)|0);
+HEAP32[((5327376)>>2)]=((5250064)|0);
+HEAP32[((5327380)>>2)]=((5250028)|0);
+HEAP32[((5327392)>>2)]=((5249956)|0);
+HEAP32[((5327396)>>2)]=((5249920)|0);
+HEAP32[((5327408)>>2)]=((5249848)|0);
+HEAP32[((5327412)>>2)]=((5249812)|0);
+HEAP32[((5327424)>>2)]=((5254180)|0);
+HEAP32[((5327428)>>2)]=((5254116)|0);
+HEAP32[((5327440)>>2)]=((5253988)|0);
+HEAP32[((5327444)>>2)]=((5253924)|0);
+HEAP32[((5327456)>>2)]=((5253796)|0);
+HEAP32[((5327460)>>2)]=((5253732)|0);
+HEAP32[((5327472)>>2)]=((5253220)|0);
+HEAP32[((5327476)>>2)]=((5252964)|0);
+HEAP32[((5327492)>>2)]=((5251428)|0);
+HEAP32[((5327504)>>2)]=((5252452)|0);
+HEAP32[((5327508)>>2)]=((5252196)|0);
+HEAP32[((5327520)>>2)]=((5251684)|0);
+HEAP32[((5327524)>>2)]=((5251172)|0);
+HEAP32[((5327536)>>2)]=((5251684)|0);
+HEAP32[((5327540)>>2)]=((5251172)|0);
+HEAP32[((5327552)>>2)]=((5251684)|0);
+HEAP32[((5327556)>>2)]=((5251172)|0);
+HEAP32[((5327568)>>2)]=((5251684)|0);
+HEAP32[((5327572)>>2)]=((5251172)|0);
+HEAP32[((5327584)>>2)]=((5251684)|0);
+HEAP32[((5327588)>>2)]=((5251172)|0);
+HEAP32[((5327600)>>2)]=((5251684)|0);
+HEAP32[((5327604)>>2)]=((5251172)|0);
+HEAP32[((5327616)>>2)]=((5251684)|0);
+HEAP32[((5327620)>>2)]=((5251172)|0);
+HEAP32[((5327632)>>2)]=((5251684)|0);
+HEAP32[((5327636)>>2)]=((5251172)|0);
+HEAP32[((5327648)>>2)]=((5250648)|0);
+HEAP32[((5327652)>>2)]=((5250392)|0);
+HEAP32[((5327664)>>2)]=((5250648)|0);
+HEAP32[((5327668)>>2)]=((5250392)|0);
+HEAP32[((5327680)>>2)]=((5250648)|0);
+HEAP32[((5327684)>>2)]=((5250392)|0);
+HEAP32[((5327696)>>2)]=((5250648)|0);
+HEAP32[((5327700)>>2)]=((5250392)|0);
+HEAP32[((5327712)>>2)]=((5250648)|0);
+HEAP32[((5327716)>>2)]=((5250392)|0);
+HEAP32[((5327728)>>2)]=((5250648)|0);
+HEAP32[((5327732)>>2)]=((5250392)|0);
+HEAP32[((5327744)>>2)]=((5250648)|0);
+HEAP32[((5327748)>>2)]=((5250392)|0);
+HEAP32[((5327760)>>2)]=((5250648)|0);
+HEAP32[((5327764)>>2)]=((5250392)|0);
+HEAP32[((5327776)>>2)]=((5250328)|0);
+HEAP32[((5327780)>>2)]=((5250312)|0);
+HEAP32[((5327792)>>2)]=((5250280)|0);
+HEAP32[((5327796)>>2)]=((5250264)|0);
+HEAP32[((5345208)>>2)]=((5387240)|0);
+HEAP32[((5345212)>>2)]=((5387116)|0);
+HEAP32[((5345216)>>2)]=((5386980)|0);
+HEAP32[((5345220)>>2)]=((5386796)|0);
+HEAP32[((5345224)>>2)]=((5386500)|0);
+HEAP32[((5345228)>>2)]=((5386284)|0);
+HEAP32[((5345232)>>2)]=((5386204)|0);
+HEAP32[((5345236)>>2)]=((5386160)|0);
+HEAP32[((5345240)>>2)]=((5386080)|0);
+HEAP32[((5345244)>>2)]=((5385700)|0);
+HEAP32[((5345248)>>2)]=((5385688)|0);
+HEAP32[((5345252)>>2)]=((5385664)|0);
+HEAP32[((5345256)>>2)]=((5385640)|0);
+HEAP32[((5345260)>>2)]=((5385608)|0);
+HEAP32[((5345264)>>2)]=((5385536)|0);
+HEAP32[((5345268)>>2)]=((5385524)|0);
+HEAP32[((5345272)>>2)]=((5385440)|0);
+HEAP32[((5345276)>>2)]=((5385404)|0);
+HEAP32[((5345280)>>2)]=((5385372)|0);
+HEAP32[((5345284)>>2)]=((5385284)|0);
+HEAP32[((5345288)>>2)]=((5385264)|0);
+HEAP32[((5345292)>>2)]=((5385236)|0);
+HEAP32[((5345296)>>2)]=((5385220)|0);
+HEAP32[((5345300)>>2)]=((5385208)|0);
+HEAP32[((5345304)>>2)]=((5385172)|0);
+HEAP32[((5345308)>>2)]=((5385156)|0);
+HEAP32[((5345312)>>2)]=((5385128)|0);
+HEAP32[((5345316)>>2)]=((5385100)|0);
+HEAP32[((5345320)>>2)]=((5385044)|0);
+HEAP32[((5345324)>>2)]=((5384940)|0);
+HEAP32[((5345328)>>2)]=((5384924)|0);
+HEAP32[((5345332)>>2)]=((5384884)|0);
+HEAP32[((5345336)>>2)]=((5384856)|0);
+HEAP32[((5345340)>>2)]=((5384820)|0);
+HEAP32[((5345344)>>2)]=((5384660)|0);
+HEAP32[((5345348)>>2)]=((5384640)|0);
+HEAP32[((5345352)>>2)]=((5384616)|0);
+HEAP32[((5345356)>>2)]=((5384564)|0);
+HEAP32[((5345360)>>2)]=((5384540)|0);
+HEAP32[((5345364)>>2)]=((5384468)|0);
+HEAP32[((5345368)>>2)]=((5384420)|0);
+HEAP32[((5345372)>>2)]=((5384364)|0);
+HEAP32[((5345376)>>2)]=((5384324)|0);
+HEAP32[((5345380)>>2)]=((5384280)|0);
+HEAP32[((5345384)>>2)]=((5384236)|0);
+HEAP32[((5345388)>>2)]=((5384204)|0);
+HEAP32[((5345392)>>2)]=((5384164)|0);
+HEAP32[((5345396)>>2)]=((5384136)|0);
+HEAP32[((5345400)>>2)]=((5384112)|0);
+HEAP32[((5345404)>>2)]=((5384056)|0);
+HEAP32[((5345408)>>2)]=((5384036)|0);
+HEAP32[((5345412)>>2)]=((5383976)|0);
+HEAP32[((5345416)>>2)]=((5383944)|0);
+HEAP32[((5345420)>>2)]=((5383908)|0);
+HEAP32[((5345424)>>2)]=((5383856)|0);
+HEAP32[((5345428)>>2)]=((5383816)|0);
+HEAP32[((5345432)>>2)]=((5383764)|0);
+HEAP32[((5345436)>>2)]=((5383736)|0);
+HEAP32[((5345440)>>2)]=((5383704)|0);
+HEAP32[((5345444)>>2)]=((5383624)|0);
+HEAP32[((5345448)>>2)]=((5383608)|0);
+HEAP32[((5345452)>>2)]=((5383544)|0);
+HEAP32[((5345456)>>2)]=((5383512)|0);
+HEAP32[((5345460)>>2)]=((5383492)|0);
+HEAP32[((5345464)>>2)]=((5383468)|0);
+HEAP32[((5345468)>>2)]=((5383444)|0);
+HEAP32[((5345472)>>2)]=((5383412)|0);
+HEAP32[((5345476)>>2)]=((5383380)|0);
+HEAP32[((5345480)>>2)]=((5383340)|0);
+HEAP32[((5345484)>>2)]=((5383300)|0);
+HEAP32[((5345488)>>2)]=((5383256)|0);
+HEAP32[((5345492)>>2)]=((5383200)|0);
+HEAP32[((5345496)>>2)]=((5383120)|0);
+HEAP32[((5345500)>>2)]=((5383104)|0);
+HEAP32[((5345504)>>2)]=((5383088)|0);
+HEAP32[((5345508)>>2)]=((5383044)|0);
+HEAP32[((5345512)>>2)]=((5383000)|0);
+HEAP32[((5345516)>>2)]=((5382988)|0);
+HEAP32[((5345520)>>2)]=((5382940)|0);
+HEAP32[((5345524)>>2)]=((5382848)|0);
+HEAP32[((5345528)>>2)]=((5382784)|0);
+HEAP32[((5345532)>>2)]=((5382728)|0);
+HEAP32[((5345536)>>2)]=((5382644)|0);
+HEAP32[((5345540)>>2)]=((5382636)|0);
+HEAP32[((5345544)>>2)]=((5382624)|0);
+HEAP32[((5345548)>>2)]=((5382616)|0);
+HEAP32[((5345552)>>2)]=((5382608)|0);
+HEAP32[((5345556)>>2)]=((5382600)|0);
+HEAP32[((5345560)>>2)]=((5382592)|0);
+HEAP32[((5345564)>>2)]=((5387376)|0);
+HEAP32[((5345568)>>2)]=((5387364)|0);
+HEAP32[((5345572)>>2)]=((5387352)|0);
+HEAP32[((5345576)>>2)]=((5387332)|0);
+HEAP32[((5345580)>>2)]=((5387312)|0);
+HEAP32[((5345584)>>2)]=((5387296)|0);
+HEAP32[((5345588)>>2)]=((5387284)|0);
+HEAP32[((5345592)>>2)]=((5387272)|0);
+HEAP32[((5345596)>>2)]=((5387264)|0);
+HEAP32[((5345600)>>2)]=((5387248)|0);
+HEAP32[((5345604)>>2)]=((5387228)|0);
+HEAP32[((5345608)>>2)]=((5387220)|0);
+HEAP32[((5345612)>>2)]=((5387204)|0);
+HEAP32[((5345616)>>2)]=((5387196)|0);
+HEAP32[((5345620)>>2)]=((5387188)|0);
+HEAP32[((5345624)>>2)]=((5387172)|0);
+HEAP32[((5345628)>>2)]=((5387164)|0);
+HEAP32[((5345632)>>2)]=((5387152)|0);
+HEAP32[((5345636)>>2)]=((5387140)|0);
+HEAP32[((5345640)>>2)]=((5387132)|0);
+HEAP32[((5345644)>>2)]=((5387104)|0);
+HEAP32[((5345648)>>2)]=((5387096)|0);
+HEAP32[((5345652)>>2)]=((5387064)|0);
+HEAP32[((5345656)>>2)]=((5387056)|0);
+HEAP32[((5345660)>>2)]=((5387048)|0);
+HEAP32[((5345664)>>2)]=((5387040)|0);
+HEAP32[((5345668)>>2)]=((5387028)|0);
+HEAP32[((5345672)>>2)]=((5387020)|0);
+HEAP32[((5345676)>>2)]=((5387004)|0);
+HEAP32[((5345680)>>2)]=((5386988)|0);
+HEAP32[((5345684)>>2)]=((5386968)|0);
+HEAP32[((5345688)>>2)]=((5386960)|0);
+HEAP32[((5345692)>>2)]=((5386880)|0);
+HEAP32[((5345696)>>2)]=((5386868)|0);
+HEAP32[((5345700)>>2)]=((5386856)|0);
+HEAP32[((5345704)>>2)]=((5386844)|0);
+HEAP32[((5345708)>>2)]=((5386832)|0);
+HEAP32[((5345712)>>2)]=((5386828)|0);
+HEAP32[((5345716)>>2)]=((5386816)|0);
+HEAP32[((5345720)>>2)]=((5386804)|0);
+HEAP32[((5345724)>>2)]=((5386784)|0);
+HEAP32[((5345728)>>2)]=((5386776)|0);
+HEAP32[((5345732)>>2)]=((5386724)|0);
+HEAP32[((5345736)>>2)]=((5386716)|0);
+HEAP32[((5345740)>>2)]=((5386704)|0);
+HEAP32[((5345744)>>2)]=((5386600)|0);
+HEAP32[((5345748)>>2)]=((5386580)|0);
+HEAP32[((5345752)>>2)]=((5386560)|0);
+HEAP32[((5345756)>>2)]=((5386520)|0);
+HEAP32[((5345760)>>2)]=((5386508)|0);
+HEAP32[((5345764)>>2)]=((5386488)|0);
+HEAP32[((5345768)>>2)]=((5386464)|0);
+HEAP32[((5345772)>>2)]=((5386376)|0);
+HEAP32[((5345776)>>2)]=((5386364)|0);
+HEAP32[((5345780)>>2)]=((5386356)|0);
+HEAP32[((5345784)>>2)]=((5386340)|0);
+HEAP32[((5345788)>>2)]=((5386332)|0);
+HEAP32[((5345792)>>2)]=((5386324)|0);
+HEAP32[((5345796)>>2)]=((5386312)|0);
+HEAP32[((5387980)>>2)]=(30);
+HEAP32[((5387984)>>2)]=(12);
+HEAP32[((5387988)>>2)]=(24);
+HEAP32[((5388004)>>2)]=(30);
+HEAP32[((5388008)>>2)]=(2);
+HEAP32[((5388012)>>2)]=(44);
+__ZTVN10__cxxabiv120__si_class_type_infoE=allocate([2,0,0,0], "i8", ALLOC_STATIC);
+HEAP32[((5388064)>>2)]=(((__ZTVN10__cxxabiv120__si_class_type_infoE+8)|0));
+HEAP32[((5388068)>>2)]=((5388020)|0);
+HEAP32[((5388072)>>2)]=__ZTISt9exception;
+HEAP32[((5388076)>>2)]=(((__ZTVN10__cxxabiv120__si_class_type_infoE+8)|0));
+HEAP32[((5388080)>>2)]=((5388036)|0);
+__ZNSt9bad_allocC1Ev = 10;
+__ZNSt9bad_allocD1Ev = 30;
+__ZNSt20bad_array_new_lengthC1Ev = 40;
+__ZNSt20bad_array_new_lengthD1Ev = (30);
+__ZNSt20bad_array_new_lengthD2Ev = (30);
+
+  
+  function _memcpy(dest, src, num) {
+      dest = dest|0; src = src|0; num = num|0;
+      var ret = 0;
+      ret = dest|0;
+      if ((dest&3) == (src&3)) {
+        while (dest & 3) {
+          if ((num|0) == 0) return ret|0;
+          HEAP8[(dest)]=HEAP8[(src)];
+          dest = (dest+1)|0;
+          src = (src+1)|0;
+          num = (num-1)|0;
+        }
+        while ((num|0) >= 4) {
+          HEAP32[((dest)>>2)]=HEAP32[((src)>>2)];
+          dest = (dest+4)|0;
+          src = (src+4)|0;
+          num = (num-4)|0;
+        }
+      }
+      while ((num|0) > 0) {
+        HEAP8[(dest)]=HEAP8[(src)];
+        dest = (dest+1)|0;
+        src = (src+1)|0;
+        num = (num-1)|0;
+      }
+      return ret|0;
+    }var _llvm_memcpy_p0i8_p0i8_i32;
+
+  
+  function _memset(ptr, value, num) {
+      ptr = ptr|0; value = value|0; num = num|0;
+      var stop = 0, value4 = 0, stop4 = 0, unaligned = 0;
+      stop = (ptr + num)|0;
+      if (num|0 >= 20) {
+        // This is unaligned, but quite large, so work hard to get to aligned settings
+        unaligned = ptr & 3;
+        value4 = value | (value << 8) | (value << 16) | (value << 24);
+        stop4 = stop & ~3;
+        if (unaligned) {
+          unaligned = (ptr + 4 - unaligned)|0;
+          while ((ptr|0) < (unaligned|0)) { // no need to check for stop, since we have large num
+            HEAP8[(ptr)]=value;
+            ptr = (ptr+1)|0;
+          }
+        }
+        while ((ptr|0) < (stop4|0)) {
+          HEAP32[((ptr)>>2)]=value4;
+          ptr = (ptr+4)|0;
+        }
+      }
+      while ((ptr|0) < (stop|0)) {
+        HEAP8[(ptr)]=value;
+        ptr = (ptr+1)|0;
+      }
+    }var _llvm_memset_p0i8_i32;
+
+  function _strlen(ptr) {
+      ptr = ptr|0;
+      var curr = 0;
+      curr = ptr;
+      while (HEAP8[(curr)]|0 != 0) {
+        curr = (curr + 1)|0;
+      }
+      return (curr - ptr)|0;
+    }
+
+  var _cos=Math.cos;
+
+  function _log10(x) {
+      return Math.log(x) / Math.LN10;
+    }
+
+  
+  function _memmove(dest, src, num) {
+      dest = dest|0; src = src|0; num = num|0;
+      if (((src|0) < (dest|0)) & ((dest|0) < ((src + num)|0))) {
+        // Unlikely case: Copy backwards in a safe manner
+        src = (src + num)|0;
+        dest = (dest + num)|0;
+        while ((num|0) > 0) {
+          dest = (dest - 1)|0;
+          src = (src - 1)|0;
+          num = (num - 1)|0;
+          HEAP8[(dest)]=HEAP8[(src)];
+        }
+      } else {
+        _memcpy(dest, src, num);
+      }
+    }var _llvm_memmove_p0i8_p0i8_i32;
+
+  var _ceil=Math.ceil;
+
+  function _strncmp(px, py, n) {
+      var i = 0;
+      while (i < n) {
+        var x = HEAPU8[((px)+(i))];
+        var y = HEAPU8[((py)+(i))];
+        if (x == y && x == 0) return 0;
+        if (x == 0) return -1;
+        if (y == 0) return 1;
+        if (x == y) {
+          i ++;
+          continue;
+        } else {
+          return x > y ? 1 : -1;
+        }
+      }
+      return 0;
+    }
+
+  
+  
+  
+  function _isspace(chr) {
+      return chr in { 32: 0, 9: 0, 10: 0, 11: 0, 12: 0, 13: 0 };
+    }
+  
+  function ___setErrNo(value) {
+      // For convenient setting and returning of errno.
+      if (!___setErrNo.ret) ___setErrNo.ret = allocate([0], 'i32', ALLOC_STATIC);
+      HEAP32[((___setErrNo.ret)>>2)]=value
+      return value;
+    }
+  
+  var ERRNO_CODES={E2BIG:7,EACCES:13,EADDRINUSE:98,EADDRNOTAVAIL:99,EAFNOSUPPORT:97,EAGAIN:11,EALREADY:114,EBADF:9,EBADMSG:74,EBUSY:16,ECANCELED:125,ECHILD:10,ECONNABORTED:103,ECONNREFUSED:111,ECONNRESET:104,EDEADLK:35,EDESTADDRREQ:89,EDOM:33,EDQUOT:122,EEXIST:17,EFAULT:14,EFBIG:27,EHOSTUNREACH:113,EIDRM:43,EILSEQ:84,EINPROGRESS:115,EINTR:4,EINVAL:22,EIO:5,EISCONN:106,EISDIR:21,ELOOP:40,EMFILE:24,EMLINK:31,EMSGSIZE:90,EMULTIHOP:72,ENAMETOOLONG:36,ENETDOWN:100,ENETRESET:102,ENETUNREACH:101,ENFILE:23,ENOBUFS:105,ENODATA:61,ENODEV:19,ENOENT:2,ENOEXEC:8,ENOLCK:37,ENOLINK:67,ENOMEM:12,ENOMSG:42,ENOPROTOOPT:92,ENOSPC:28,ENOSR:63,ENOSTR:60,ENOSYS:38,ENOTCONN:107,ENOTDIR:20,ENOTEMPTY:39,ENOTRECOVERABLE:131,ENOTSOCK:88,ENOTSUP:95,ENOTTY:25,ENXIO:6,EOVERFLOW:75,EOWNERDEAD:130,EPERM:1,EPIPE:32,EPROTO:71,EPROTONOSUPPORT:93,EPROTOTYPE:91,ERANGE:34,EROFS:30,ESPIPE:29,ESRCH:3,ESTALE:116,ETIME:62,ETIMEDOUT:110,ETXTBSY:26,EWOULDBLOCK:11,EXDEV:18};function __parseInt(str, endptr, base, min, max, bits, unsign) {
+      // Skip space.
+      while (_isspace(HEAP8[(str)])) str++;
+  
+      // Check for a plus/minus sign.
+      var multiplier = 1;
+      if (HEAP8[(str)] == '-'.charCodeAt(0)) {
+        multiplier = -1;
+        str++;
+      } else if (HEAP8[(str)] == '+'.charCodeAt(0)) {
+        str++;
+      }
+  
+      // Find base.
+      var finalBase = base;
+      if (!finalBase) {
+        if (HEAP8[(str)] == '0'.charCodeAt(0)) {
+          if (HEAP8[(str+1)] == 'x'.charCodeAt(0) ||
+              HEAP8[(str+1)] == 'X'.charCodeAt(0)) {
+            finalBase = 16;
+            str += 2;
+          } else {
+            finalBase = 8;
+            str++;
+          }
+        }
+      }
+      if (!finalBase) finalBase = 10;
+  
+      // Get digits.
+      var chr;
+      var ret = 0;
+      while ((chr = HEAP8[(str)]) != 0) {
+        var digit = parseInt(String.fromCharCode(chr), finalBase);
+        if (isNaN(digit)) {
+          break;
+        } else {
+          ret = ret * finalBase + digit;
+          str++;
+        }
+      }
+  
+      // Apply sign.
+      ret *= multiplier;
+  
+      // Set end pointer.
+      if (endptr) {
+        HEAP32[((endptr)>>2)]=str
+      }
+  
+      // Unsign if needed.
+      if (unsign) {
+        if (Math.abs(ret) > max) {
+          ret = max;
+          ___setErrNo(ERRNO_CODES.ERANGE);
+        } else {
+          ret = unSign(ret, bits);
+        }
+      }
+  
+      // Validate range.
+      if (ret > max || ret < min) {
+        ret = ret > max ? max : min;
+        ___setErrNo(ERRNO_CODES.ERANGE);
+      }
+  
+      if (bits == 64) {
+        return (tempRet0 = Math.min(Math.floor((ret)/4294967296), 4294967295)>>>0,ret>>>0);
+      }
+  
+      return ret;
+    }function _strtol(str, endptr, base) {
+      return __parseInt(str, endptr, base, -2147483648, 2147483647, 32);  // LONG_MIN, LONG_MAX.
+    }function _atoi(ptr) {
+      return _strtol(ptr, null, 10);
+    }
+
+  function _strchr(ptr, chr) {
+      ptr--;
+      do {
+        ptr++;
+        var val = HEAP8[(ptr)];
+        if (val == chr) return ptr;
+      } while (val);
+      return 0;
+    }
+
+  
+  
+  function __formatString(format, varargs) {
+      var textIndex = format;
+      var argIndex = 0;
+      function getNextArg(type) {
+        // NOTE: Explicitly ignoring type safety. Otherwise this fails:
+        //       int x = 4; printf("%c\n", (char)x);
+        var ret;
+        if (type === 'double') {
+          ret = (HEAP32[((tempDoublePtr)>>2)]=HEAP32[(((varargs)+(argIndex))>>2)],HEAP32[(((tempDoublePtr)+(4))>>2)]=HEAP32[(((varargs)+((argIndex)+(4)))>>2)],HEAPF64[(tempDoublePtr)>>3]);
+        } else if (type == 'i64') {
+          ret = [HEAP32[(((varargs)+(argIndex))>>2)],
+                 HEAP32[(((varargs)+(argIndex+4))>>2)]];
+        } else {
+          type = 'i32'; // varargs are always i32, i64, or double
+          ret = HEAP32[(((varargs)+(argIndex))>>2)];
+        }
+        argIndex += Runtime.getNativeFieldSize(type);
+        return ret;
+      }
+  
+      var ret = [];
+      var curr, next, currArg;
+      while(1) {
+        var startTextIndex = textIndex;
+        curr = HEAP8[(textIndex)];
+        if (curr === 0) break;
+        next = HEAP8[(textIndex+1)];
+        if (curr == '%'.charCodeAt(0)) {
+          // Handle flags.
+          var flagAlwaysSigned = false;
+          var flagLeftAlign = false;
+          var flagAlternative = false;
+          var flagZeroPad = false;
+          flagsLoop: while (1) {
+            switch (next) {
+              case '+'.charCodeAt(0):
+                flagAlwaysSigned = true;
+                break;
+              case '-'.charCodeAt(0):
+                flagLeftAlign = true;
+                break;
+              case '#'.charCodeAt(0):
+                flagAlternative = true;
+                break;
+              case '0'.charCodeAt(0):
+                if (flagZeroPad) {
+                  break flagsLoop;
+                } else {
+                  flagZeroPad = true;
+                  break;
+                }
+              default:
+                break flagsLoop;
+            }
+            textIndex++;
+            next = HEAP8[(textIndex+1)];
+          }
+  
+          // Handle width.
+          var width = 0;
+          if (next == '*'.charCodeAt(0)) {
+            width = getNextArg('i32');
+            textIndex++;
+            next = HEAP8[(textIndex+1)];
+          } else {
+            while (next >= '0'.charCodeAt(0) && next <= '9'.charCodeAt(0)) {
+              width = width * 10 + (next - '0'.charCodeAt(0));
+              textIndex++;
+              next = HEAP8[(textIndex+1)];
+            }
+          }
+  
+          // Handle precision.
+          var precisionSet = false;
+          if (next == '.'.charCodeAt(0)) {
+            var precision = 0;
+            precisionSet = true;
+            textIndex++;
+            next = HEAP8[(textIndex+1)];
+            if (next == '*'.charCodeAt(0)) {
+              precision = getNextArg('i32');
+              textIndex++;
+            } else {
+              while(1) {
+                var precisionChr = HEAP8[(textIndex+1)];
+                if (precisionChr < '0'.charCodeAt(0) ||
+                    precisionChr > '9'.charCodeAt(0)) break;
+                precision = precision * 10 + (precisionChr - '0'.charCodeAt(0));
+                textIndex++;
+              }
+            }
+            next = HEAP8[(textIndex+1)];
+          } else {
+            var precision = 6; // Standard default.
+          }
+  
+          // Handle integer sizes. WARNING: These assume a 32-bit architecture!
+          var argSize;
+          switch (String.fromCharCode(next)) {
+            case 'h':
+              var nextNext = HEAP8[(textIndex+2)];
+              if (nextNext == 'h'.charCodeAt(0)) {
+                textIndex++;
+                argSize = 1; // char (actually i32 in varargs)
+              } else {
+                argSize = 2; // short (actually i32 in varargs)
+              }
+              break;
+            case 'l':
+              var nextNext = HEAP8[(textIndex+2)];
+              if (nextNext == 'l'.charCodeAt(0)) {
+                textIndex++;
+                argSize = 8; // long long
+              } else {
+                argSize = 4; // long
+              }
+              break;
+            case 'L': // long long
+            case 'q': // int64_t
+            case 'j': // intmax_t
+              argSize = 8;
+              break;
+            case 'z': // size_t
+            case 't': // ptrdiff_t
+            case 'I': // signed ptrdiff_t or unsigned size_t
+              argSize = 4;
+              break;
+            default:
+              argSize = null;
+          }
+          if (argSize) textIndex++;
+          next = HEAP8[(textIndex+1)];
+  
+          // Handle type specifier.
+          if (['d', 'i', 'u', 'o', 'x', 'X', 'p'].indexOf(String.fromCharCode(next)) != -1) {
+            // Integer.
+            var signed = next == 'd'.charCodeAt(0) || next == 'i'.charCodeAt(0);
+            argSize = argSize || 4;
+            var currArg = getNextArg('i' + (argSize * 8));
+            var origArg = currArg;
+            var argText;
+            // Flatten i64-1 [low, high] into a (slightly rounded) double
+            if (argSize == 8) {
+              currArg = Runtime.makeBigInt(currArg[0], currArg[1], next == 'u'.charCodeAt(0));
+            }
+            // Truncate to requested size.
+            if (argSize <= 4) {
+              var limit = Math.pow(256, argSize) - 1;
+              currArg = (signed ? reSign : unSign)(currArg & limit, argSize * 8);
+            }
+            // Format the number.
+            var currAbsArg = Math.abs(currArg);
+            var prefix = '';
+            if (next == 'd'.charCodeAt(0) || next == 'i'.charCodeAt(0)) {
+              if (argSize == 8 && i64Math) argText = i64Math.stringify(origArg[0], origArg[1], null); else
+              argText = reSign(currArg, 8 * argSize, 1).toString(10);
+            } else if (next == 'u'.charCodeAt(0)) {
+              if (argSize == 8 && i64Math) argText = i64Math.stringify(origArg[0], origArg[1], true); else
+              argText = unSign(currArg, 8 * argSize, 1).toString(10);
+              currArg = Math.abs(currArg);
+            } else if (next == 'o'.charCodeAt(0)) {
+              argText = (flagAlternative ? '0' : '') + currAbsArg.toString(8);
+            } else if (next == 'x'.charCodeAt(0) || next == 'X'.charCodeAt(0)) {
+              prefix = flagAlternative ? '0x' : '';
+              if (argSize == 8 && i64Math) argText = (origArg[1]>>>0).toString(16) + (origArg[0]>>>0).toString(16); else
+              if (currArg < 0) {
+                // Represent negative numbers in hex as 2's complement.
+                currArg = -currArg;
+                argText = (currAbsArg - 1).toString(16);
+                var buffer = [];
+                for (var i = 0; i < argText.length; i++) {
+                  buffer.push((0xF - parseInt(argText[i], 16)).toString(16));
+                }
+                argText = buffer.join('');
+                while (argText.length < argSize * 2) argText = 'f' + argText;
+              } else {
+                argText = currAbsArg.toString(16);
+              }
+              if (next == 'X'.charCodeAt(0)) {
+                prefix = prefix.toUpperCase();
+                argText = argText.toUpperCase();
+              }
+            } else if (next == 'p'.charCodeAt(0)) {
+              if (currAbsArg === 0) {
+                argText = '(nil)';
+              } else {
+                prefix = '0x';
+                argText = currAbsArg.toString(16);
+              }
+            }
+            if (precisionSet) {
+              while (argText.length < precision) {
+                argText = '0' + argText;
+              }
+            }
+  
+            // Add sign if needed
+            if (flagAlwaysSigned) {
+              if (currArg < 0) {
+                prefix = '-' + prefix;
+              } else {
+                prefix = '+' + prefix;
+              }
+            }
+  
+            // Add padding.
+            while (prefix.length + argText.length < width) {
+              if (flagLeftAlign) {
+                argText += ' ';
+              } else {
+                if (flagZeroPad) {
+                  argText = '0' + argText;
+                } else {
+                  prefix = ' ' + prefix;
+                }
+              }
+            }
+  
+            // Insert the result into the buffer.
+            argText = prefix + argText;
+            argText.split('').forEach(function(chr) {
+              ret.push(chr.charCodeAt(0));
+            });
+          } else if (['f', 'F', 'e', 'E', 'g', 'G'].indexOf(String.fromCharCode(next)) != -1) {
+            // Float.
+            var currArg = getNextArg('double');
+            var argText;
+  
+            if (isNaN(currArg)) {
+              argText = 'nan';
+              flagZeroPad = false;
+            } else if (!isFinite(currArg)) {
+              argText = (currArg < 0 ? '-' : '') + 'inf';
+              flagZeroPad = false;
+            } else {
+              var isGeneral = false;
+              var effectivePrecision = Math.min(precision, 20);
+  
+              // Convert g/G to f/F or e/E, as per:
+              // http://pubs.opengroup.org/onlinepubs/9699919799/functions/printf.html
+              if (next == 'g'.charCodeAt(0) || next == 'G'.charCodeAt(0)) {
+                isGeneral = true;
+                precision = precision || 1;
+                var exponent = parseInt(currArg.toExponential(effectivePrecision).split('e')[1], 10);
+                if (precision > exponent && exponent >= -4) {
+                  next = ((next == 'g'.charCodeAt(0)) ? 'f' : 'F').charCodeAt(0);
+                  precision -= exponent + 1;
+                } else {
+                  next = ((next == 'g'.charCodeAt(0)) ? 'e' : 'E').charCodeAt(0);
+                  precision--;
+                }
+                effectivePrecision = Math.min(precision, 20);
+              }
+  
+              if (next == 'e'.charCodeAt(0) || next == 'E'.charCodeAt(0)) {
+                argText = currArg.toExponential(effectivePrecision);
+                // Make sure the exponent has at least 2 digits.
+                if (/[eE][-+]\d$/.test(argText)) {
+                  argText = argText.slice(0, -1) + '0' + argText.slice(-1);
+                }
+              } else if (next == 'f'.charCodeAt(0) || next == 'F'.charCodeAt(0)) {
+                argText = currArg.toFixed(effectivePrecision);
+              }
+  
+              var parts = argText.split('e');
+              if (isGeneral && !flagAlternative) {
+                // Discard trailing zeros and periods.
+                while (parts[0].length > 1 && parts[0].indexOf('.') != -1 &&
+                       (parts[0].slice(-1) == '0' || parts[0].slice(-1) == '.')) {
+                  parts[0] = parts[0].slice(0, -1);
+                }
+              } else {
+                // Make sure we have a period in alternative mode.
+                if (flagAlternative && argText.indexOf('.') == -1) parts[0] += '.';
+                // Zero pad until required precision.
+                while (precision > effectivePrecision++) parts[0] += '0';
+              }
+              argText = parts[0] + (parts.length > 1 ? 'e' + parts[1] : '');
+  
+              // Capitalize 'E' if needed.
+              if (next == 'E'.charCodeAt(0)) argText = argText.toUpperCase();
+  
+              // Add sign.
+              if (flagAlwaysSigned && currArg >= 0) {
+                argText = '+' + argText;
+              }
+            }
+  
+            // Add padding.
+            while (argText.length < width) {
+              if (flagLeftAlign) {
+                argText += ' ';
+              } else {
+                if (flagZeroPad && (argText[0] == '-' || argText[0] == '+')) {
+                  argText = argText[0] + '0' + argText.slice(1);
+                } else {
+                  argText = (flagZeroPad ? '0' : ' ') + argText;
+                }
+              }
+            }
+  
+            // Adjust case.
+            if (next < 'a'.charCodeAt(0)) argText = argText.toUpperCase();
+  
+            // Insert the result into the buffer.
+            argText.split('').forEach(function(chr) {
+              ret.push(chr.charCodeAt(0));
+            });
+          } else if (next == 's'.charCodeAt(0)) {
+            // String.
+            var arg = getNextArg('i8*') || nullString;
+            var argLength = _strlen(arg);
+            if (precisionSet) argLength = Math.min(argLength, precision);
+            if (!flagLeftAlign) {
+              while (argLength < width--) {
+                ret.push(' '.charCodeAt(0));
+              }
+            }
+            for (var i = 0; i < argLength; i++) {
+              ret.push(HEAPU8[(arg++)]);
+            }
+            if (flagLeftAlign) {
+              while (argLength < width--) {
+                ret.push(' '.charCodeAt(0));
+              }
+            }
+          } else if (next == 'c'.charCodeAt(0)) {
+            // Character.
+            if (flagLeftAlign) ret.push(getNextArg('i8'));
+            while (--width > 0) {
+              ret.push(' '.charCodeAt(0));
+            }
+            if (!flagLeftAlign) ret.push(getNextArg('i8'));
+          } else if (next == 'n'.charCodeAt(0)) {
+            // Write the length written so far to the next parameter.
+            var ptr = getNextArg('i32*');
+            HEAP32[((ptr)>>2)]=ret.length
+          } else if (next == '%'.charCodeAt(0)) {
+            // Literal percent sign.
+            ret.push(curr);
+          } else {
+            // Unknown specifiers remain untouched.
+            for (var i = startTextIndex; i < textIndex + 2; i++) {
+              ret.push(HEAP8[(i)]);
+            }
+          }
+          textIndex += 2;
+          // TODO: Support a/A (hex float) and m (last error) specifiers.
+          // TODO: Support %1${specifier} for arg selection.
+        } else {
+          ret.push(curr);
+          textIndex += 1;
+        }
+      }
+      return ret;
+    }function _snprintf(s, n, format, varargs) {
+      // int snprintf(char *restrict s, size_t n, const char *restrict format, ...);
+      // http://pubs.opengroup.org/onlinepubs/000095399/functions/printf.html
+      var result = __formatString(format, varargs);
+      var limit = (n === undefined) ? result.length
+                                    : Math.min(result.length, Math.max(n - 1, 0));
+      if (s < 0) {
+        s = -s;
+        var buf = _malloc(limit+1);
+        HEAP32[((s)>>2)]=buf;
+        s = buf;
+      }
+      for (var i = 0; i < limit; i++) {
+        HEAP8[((s)+(i))]=result[i];
+      }
+      if (limit < n || (n === undefined)) HEAP8[((s)+(i))]=0;
+      return result.length;
+    }function _sprintf(s, format, varargs) {
+      // int sprintf(char *restrict s, const char *restrict format, ...);
+      // http://pubs.opengroup.org/onlinepubs/000095399/functions/printf.html
+      return _snprintf(s, undefined, format, varargs);
+    }
+
+
+  function _toupper(chr) {
+      if (chr >= 'a'.charCodeAt(0) && chr <= 'z'.charCodeAt(0)) {
+        return chr - 'a'.charCodeAt(0) + 'A'.charCodeAt(0);
+      } else {
+        return chr;
+      }
+    }
+
+  function _tolower(chr) {
+      if (chr >= 'A'.charCodeAt(0) && chr <= 'Z'.charCodeAt(0)) {
+        return chr - 'A'.charCodeAt(0) + 'a'.charCodeAt(0);
+      } else {
+        return chr;
+      }
+    }
+
+  var _fabs=Math.abs;
+
+  var _llvm_pow_f64=Math.pow;
+
+  var _llvm_pow_f32=Math.pow;
+
+  
+  
+  var _stdin=allocate(1, "i32*", ALLOC_STACK);
+  
+  var _stdout=allocate(1, "i32*", ALLOC_STACK);
+  
+  var _stderr=allocate(1, "i32*", ALLOC_STACK);
+  
+  var __impure_ptr=allocate(1, "i32*", ALLOC_STACK);var FS={currentPath:"/",nextInode:2,streams:[null],ignorePermissions:true,joinPath:function (parts, forceRelative) {
+        var ret = parts[0];
+        for (var i = 1; i < parts.length; i++) {
+          if (ret[ret.length-1] != '/') ret += '/';
+          ret += parts[i];
+        }
+        if (forceRelative && ret[0] == '/') ret = ret.substr(1);
+        return ret;
+      },absolutePath:function (relative, base) {
+        if (typeof relative !== 'string') return null;
+        if (base === undefined) base = FS.currentPath;
+        if (relative && relative[0] == '/') base = '';
+        var full = base + '/' + relative;
+        var parts = full.split('/').reverse();
+        var absolute = [''];
+        while (parts.length) {
+          var part = parts.pop();
+          if (part == '' || part == '.') {
+            // Nothing.
+          } else if (part == '..') {
+            if (absolute.length > 1) absolute.pop();
+          } else {
+            absolute.push(part);
+          }
+        }
+        return absolute.length == 1 ? '/' : absolute.join('/');
+      },analyzePath:function (path, dontResolveLastLink, linksVisited) {
+        var ret = {
+          isRoot: false,
+          exists: false,
+          error: 0,
+          name: null,
+          path: null,
+          object: null,
+          parentExists: false,
+          parentPath: null,
+          parentObject: null
+        };
+        path = FS.absolutePath(path);
+        if (path == '/') {
+          ret.isRoot = true;
+          ret.exists = ret.parentExists = true;
+          ret.name = '/';
+          ret.path = ret.parentPath = '/';
+          ret.object = ret.parentObject = FS.root;
+        } else if (path !== null) {
+          linksVisited = linksVisited || 0;
+          path = path.slice(1).split('/');
+          var current = FS.root;
+          var traversed = [''];
+          while (path.length) {
+            if (path.length == 1 && current.isFolder) {
+              ret.parentExists = true;
+              ret.parentPath = traversed.length == 1 ? '/' : traversed.join('/');
+              ret.parentObject = current;
+              ret.name = path[0];
+            }
+            var target = path.shift();
+            if (!current.isFolder) {
+              ret.error = ERRNO_CODES.ENOTDIR;
+              break;
+            } else if (!current.read) {
+              ret.error = ERRNO_CODES.EACCES;
+              break;
+            } else if (!current.contents.hasOwnProperty(target)) {
+              ret.error = ERRNO_CODES.ENOENT;
+              break;
+            }
+            current = current.contents[target];
+            if (current.link && !(dontResolveLastLink && path.length == 0)) {
+              if (linksVisited > 40) { // Usual Linux SYMLOOP_MAX.
+                ret.error = ERRNO_CODES.ELOOP;
+                break;
+              }
+              var link = FS.absolutePath(current.link, traversed.join('/'));
+              ret = FS.analyzePath([link].concat(path).join('/'),
+                                   dontResolveLastLink, linksVisited + 1);
+              return ret;
+            }
+            traversed.push(target);
+            if (path.length == 0) {
+              ret.exists = true;
+              ret.path = traversed.join('/');
+              ret.object = current;
+            }
+          }
+        }
+        return ret;
+      },findObject:function (path, dontResolveLastLink) {
+        FS.ensureRoot();
+        var ret = FS.analyzePath(path, dontResolveLastLink);
+        if (ret.exists) {
+          return ret.object;
+        } else {
+          ___setErrNo(ret.error);
+          return null;
+        }
+      },createObject:function (parent, name, properties, canRead, canWrite) {
+        if (!parent) parent = '/';
+        if (typeof parent === 'string') parent = FS.findObject(parent);
+  
+        if (!parent) {
+          ___setErrNo(ERRNO_CODES.EACCES);
+          throw new Error('Parent path must exist.');
+        }
+        if (!parent.isFolder) {
+          ___setErrNo(ERRNO_CODES.ENOTDIR);
+          throw new Error('Parent must be a folder.');
+        }
+        if (!parent.write && !FS.ignorePermissions) {
+          ___setErrNo(ERRNO_CODES.EACCES);
+          throw new Error('Parent folder must be writeable.');
+        }
+        if (!name || name == '.' || name == '..') {
+          ___setErrNo(ERRNO_CODES.ENOENT);
+          throw new Error('Name must not be empty.');
+        }
+        if (parent.contents.hasOwnProperty(name)) {
+          ___setErrNo(ERRNO_CODES.EEXIST);
+          throw new Error("Can't overwrite object.");
+        }
+  
+        parent.contents[name] = {
+          read: canRead === undefined ? true : canRead,
+          write: canWrite === undefined ? false : canWrite,
+          timestamp: Date.now(),
+          inodeNumber: FS.nextInode++
+        };
+        for (var key in properties) {
+          if (properties.hasOwnProperty(key)) {
+            parent.contents[name][key] = properties[key];
+          }
+        }
+  
+        return parent.contents[name];
+      },createFolder:function (parent, name, canRead, canWrite) {
+        var properties = {isFolder: true, isDevice: false, contents: {}};
+        return FS.createObject(parent, name, properties, canRead, canWrite);
+      },createPath:function (parent, path, canRead, canWrite) {
+        var current = FS.findObject(parent);
+        if (current === null) throw new Error('Invalid parent.');
+        path = path.split('/').reverse();
+        while (path.length) {
+          var part = path.pop();
+          if (!part) continue;
+          if (!current.contents.hasOwnProperty(part)) {
+            FS.createFolder(current, part, canRead, canWrite);
+          }
+          current = current.contents[part];
+        }
+        return current;
+      },createFile:function (parent, name, properties, canRead, canWrite) {
+        properties.isFolder = false;
+        return FS.createObject(parent, name, properties, canRead, canWrite);
+      },createDataFile:function (parent, name, data, canRead, canWrite) {
+        if (typeof data === 'string') {
+          var dataArray = new Array(data.length);
+          for (var i = 0, len = data.length; i < len; ++i) dataArray[i] = data.charCodeAt(i);
+          data = dataArray;
+        }
+        var properties = {
+          isDevice: false,
+          contents: data.subarray ? data.subarray(0) : data // as an optimization, create a new array wrapper (not buffer) here, to help JS engines understand this object
+        };
+        return FS.createFile(parent, name, properties, canRead, canWrite);
+      },createLazyFile:function (parent, name, url, canRead, canWrite) {
+  
+        if (typeof XMLHttpRequest !== 'undefined') {
+          if (!ENVIRONMENT_IS_WORKER) throw 'Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc';
+          // Lazy chunked Uint8Array (implements get and length from Uint8Array). Actual getting is abstracted away for eventual reuse.
+          var LazyUint8Array = function(chunkSize, length) {
+            this.length = length;
+            this.chunkSize = chunkSize;
+            this.chunks = []; // Loaded chunks. Index is the chunk number
+          }
+          LazyUint8Array.prototype.get = function(idx) {
+            if (idx > this.length-1 || idx < 0) {
+              return undefined;
+            }
+            var chunkOffset = idx % chunkSize;
+            var chunkNum = Math.floor(idx / chunkSize);
+            return this.getter(chunkNum)[chunkOffset];
+          }
+          LazyUint8Array.prototype.setDataGetter = function(getter) {
+            this.getter = getter;
+          }
+    
+          // Find length
+          var xhr = new XMLHttpRequest();
+          xhr.open('HEAD', url, false);
+          xhr.send(null);
+          if (!(xhr.status >= 200 && xhr.status < 300 || xhr.status === 304)) throw new Error("Couldn't load " + url + ". Status: " + xhr.status);
+          var datalength = Number(xhr.getResponseHeader("Content-length"));
+          var header;
+          var hasByteServing = (header = xhr.getResponseHeader("Accept-Ranges")) && header === "bytes";
+          var chunkSize = 1024*1024; // Chunk size in bytes
+          if (!hasByteServing) chunkSize = datalength;
+    
+          // Function to get a range from the remote URL.
+          var doXHR = (function(from, to) {
+            if (from > to) throw new Error("invalid range (" + from + ", " + to + ") or no bytes requested!");
+            if (to > datalength-1) throw new Error("only " + datalength + " bytes available! programmer error!");
+    
+            // TODO: Use mozResponseArrayBuffer, responseStream, etc. if available.
+            var xhr = new XMLHttpRequest();
+            xhr.open('GET', url, false);
+            if (datalength !== chunkSize) xhr.setRequestHeader("Range", "bytes=" + from + "-" + to);
+    
+            // Some hints to the browser that we want binary data.
+            if (typeof Uint8Array != 'undefined') xhr.responseType = 'arraybuffer';
+            if (xhr.overrideMimeType) {
+              xhr.overrideMimeType('text/plain; charset=x-user-defined');
+            }
+    
+            xhr.send(null);
+            if (!(xhr.status >= 200 && xhr.status < 300 || xhr.status === 304)) throw new Error("Couldn't load " + url + ". Status: " + xhr.status);
+            if (xhr.response !== undefined) {
+              return new Uint8Array(xhr.response || []);
+            } else {
+              return intArrayFromString(xhr.responseText || '', true);
+            }
+          });
+    
+          var lazyArray = new LazyUint8Array(chunkSize, datalength);
+          lazyArray.setDataGetter(function(chunkNum) {
+            var start = chunkNum * lazyArray.chunkSize;
+            var end = (chunkNum+1) * lazyArray.chunkSize - 1; // including this byte
+            end = Math.min(end, datalength-1); // if datalength-1 is selected, this is the last block
+            if (typeof(lazyArray.chunks[chunkNum]) === "undefined") {
+              lazyArray.chunks[chunkNum] = doXHR(start, end);
+            }
+            if (typeof(lazyArray.chunks[chunkNum]) === "undefined") throw new Error("doXHR failed!");
+            return lazyArray.chunks[chunkNum];
+          });
+          var properties = { isDevice: false, contents: lazyArray };
+        } else {
+          var properties = { isDevice: false, url: url };
+        }
+  
+        return FS.createFile(parent, name, properties, canRead, canWrite);
+      },createPreloadedFile:function (parent, name, url, canRead, canWrite, onload, onerror, dontCreateFile) {
+        Browser.ensureObjects();
+        var fullname = FS.joinPath([parent, name], true);
+        function processData(byteArray) {
+          function finish(byteArray) {
+            if (!dontCreateFile) {
+              FS.createDataFile(parent, name, byteArray, canRead, canWrite);
+            }
+            if (onload) onload();
+            removeRunDependency('cp ' + fullname);
+          }
+          var handled = false;
+          Module['preloadPlugins'].forEach(function(plugin) {
+            if (handled) return;
+            if (plugin['canHandle'](fullname)) {
+              plugin['handle'](byteArray, fullname, finish, function() {
+                if (onerror) onerror();
+                removeRunDependency('cp ' + fullname);
+              });
+              handled = true;
+            }
+          });
+          if (!handled) finish(byteArray);
+        }
+        addRunDependency('cp ' + fullname);
+        if (typeof url == 'string') {
+          Browser.asyncLoad(url, function(byteArray) {
+            processData(byteArray);
+          }, onerror);
+        } else {
+          processData(url);
+        }
+      },createLink:function (parent, name, target, canRead, canWrite) {
+        var properties = {isDevice: false, link: target};
+        return FS.createFile(parent, name, properties, canRead, canWrite);
+      },createDevice:function (parent, name, input, output) {
+        if (!(input || output)) {
+          throw new Error('A device must have at least one callback defined.');
+        }
+        var ops = {isDevice: true, input: input, output: output};
+        return FS.createFile(parent, name, ops, Boolean(input), Boolean(output));
+      },forceLoadFile:function (obj) {
+        if (obj.isDevice || obj.isFolder || obj.link || obj.contents) return true;
+        var success = true;
+        if (typeof XMLHttpRequest !== 'undefined') {
+          throw new 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.");
+        } else if (Module['read']) {
+          // Command-line.
+          try {
+            // WARNING: Can't read binary files in V8's d8 or tracemonkey's js, as
+            //          read() will try to parse UTF8.
+            obj.contents = intArrayFromString(Module['read'](obj.url), true);
+          } catch (e) {
+            success = false;
+          }
+        } else {
+          throw new Error('Cannot load without read() or XMLHttpRequest.');
+        }
+        if (!success) ___setErrNo(ERRNO_CODES.EIO);
+        return success;
+      },ensureRoot:function () {
+        if (FS.root) return;
+        // The main file system tree. All the contents are inside this.
+        FS.root = {
+          read: true,
+          write: true,
+          isFolder: true,
+          isDevice: false,
+          timestamp: Date.now(),
+          inodeNumber: 1,
+          contents: {}
+        };
+      },init:function (input, output, error) {
+        // Make sure we initialize only once.
+        assert(!FS.init.initialized, '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)');
+        FS.init.initialized = true;
+  
+        FS.ensureRoot();
+  
+        // Allow Module.stdin etc. to provide defaults, if none explicitly passed to us here
+        input = input || Module['stdin'];
+        output = output || Module['stdout'];
+        error = error || Module['stderr'];
+  
+        // Default handlers.
+        var stdinOverridden = true, stdoutOverridden = true, stderrOverridden = true;
+        if (!input) {
+          stdinOverridden = false;
+          input = function() {
+            if (!input.cache || !input.cache.length) {
+              var result;
+              if (typeof window != 'undefined' &&
+                  typeof window.prompt == 'function') {
+                // Browser.
+                result = window.prompt('Input: ');
+                if (result === null) result = String.fromCharCode(0); // cancel ==> EOF
+              } else if (typeof readline == 'function') {
+                // Command line.
+                result = readline();
+              }
+              if (!result) result = '';
+              input.cache = intArrayFromString(result + '\n', true);
+            }
+            return input.cache.shift();
+          };
+        }
+        var utf8 = new Runtime.UTF8Processor();
+        function simpleOutput(val) {
+          if (val === null || val === '\n'.charCodeAt(0)) {
+            output.printer(output.buffer.join(''));
+            output.buffer = [];
+          } else {
+            output.buffer.push(utf8.processCChar(val));
+          }
+        }
+        if (!output) {
+          stdoutOverridden = false;
+          output = simpleOutput;
+        }
+        if (!output.printer) output.printer = Module['print'];
+        if (!output.buffer) output.buffer = [];
+        if (!error) {
+          stderrOverridden = false;
+          error = simpleOutput;
+        }
+        if (!error.printer) error.printer = Module['print'];
+        if (!error.buffer) error.buffer = [];
+  
+        // Create the temporary folder, if not already created
+        try {
+          FS.createFolder('/', 'tmp', true, true);
+        } catch(e) {}
+  
+        // Create the I/O devices.
+        var devFolder = FS.createFolder('/', 'dev', true, true);
+        var stdin = FS.createDevice(devFolder, 'stdin', input);
+        var stdout = FS.createDevice(devFolder, 'stdout', null, output);
+        var stderr = FS.createDevice(devFolder, 'stderr', null, error);
+        FS.createDevice(devFolder, 'tty', input, output);
+  
+        // Create default streams.
+        FS.streams[1] = {
+          path: '/dev/stdin',
+          object: stdin,
+          position: 0,
+          isRead: true,
+          isWrite: false,
+          isAppend: false,
+          isTerminal: !stdinOverridden,
+          error: false,
+          eof: false,
+          ungotten: []
+        };
+        FS.streams[2] = {
+          path: '/dev/stdout',
+          object: stdout,
+          position: 0,
+          isRead: false,
+          isWrite: true,
+          isAppend: false,
+          isTerminal: !stdoutOverridden,
+          error: false,
+          eof: false,
+          ungotten: []
+        };
+        FS.streams[3] = {
+          path: '/dev/stderr',
+          object: stderr,
+          position: 0,
+          isRead: false,
+          isWrite: true,
+          isAppend: false,
+          isTerminal: !stderrOverridden,
+          error: false,
+          eof: false,
+          ungotten: []
+        };
+        assert(Math.max(_stdin, _stdout, _stderr) < 128); // make sure these are low, we flatten arrays with these
+        HEAP32[((_stdin)>>2)]=1;
+        HEAP32[((_stdout)>>2)]=2;
+        HEAP32[((_stderr)>>2)]=3;
+  
+        // Other system paths
+        FS.createPath('/', 'dev/shm/tmp', true, true); // temp files
+  
+        // Newlib initialization
+        for (var i = FS.streams.length; i < Math.max(_stdin, _stdout, _stderr) + 4; i++) {
+          FS.streams[i] = null; // Make sure to keep FS.streams dense
+        }
+        FS.streams[_stdin] = FS.streams[1];
+        FS.streams[_stdout] = FS.streams[2];
+        FS.streams[_stderr] = FS.streams[3];
+        allocate([ allocate(
+          [0, 0, 0, 0, _stdin, 0, 0, 0, _stdout, 0, 0, 0, _stderr, 0, 0, 0],
+          'void*', ALLOC_STATIC) ], 'void*', ALLOC_NONE, __impure_ptr);
+      },quit:function () {
+        if (!FS.init.initialized) return;
+        // Flush any partially-printed lines in stdout and stderr. Careful, they may have been closed
+        if (FS.streams[2] && FS.streams[2].object.output.buffer.length > 0) FS.streams[2].object.output('\n'.charCodeAt(0));
+        if (FS.streams[3] && FS.streams[3].object.output.buffer.length > 0) FS.streams[3].object.output('\n'.charCodeAt(0));
+      },standardizePath:function (path) {
+        if (path.substr(0, 2) == './') path = path.substr(2);
+        return path;
+      },deleteFile:function (path) {
+        path = FS.analyzePath(path);
+        if (!path.parentExists || !path.exists) {
+          throw 'Invalid path ' + path;
+        }
+        delete path.parentObject.contents[path.name];
+      }};
+  
+  function _lseek(fildes, offset, whence) {
+      // off_t lseek(int fildes, off_t offset, int whence);
+      // http://pubs.opengroup.org/onlinepubs/000095399/functions/lseek.html
+      if (FS.streams[fildes] && !FS.streams[fildes].object.isDevice) {
+        var stream = FS.streams[fildes];
+        var position = offset;
+        if (whence === 1) {  // SEEK_CUR.
+          position += stream.position;
+        } else if (whence === 2) {  // SEEK_END.
+          position += stream.object.contents.length;
+        }
+        if (position < 0) {
+          ___setErrNo(ERRNO_CODES.EINVAL);
+          return -1;
+        } else {
+          stream.ungotten = [];
+          stream.position = position;
+          return position;
+        }
+      } else {
+        ___setErrNo(ERRNO_CODES.EBADF);
+        return -1;
+      }
+    }function _fseek(stream, offset, whence) {
+      // int fseek(FILE *stream, long offset, int whence);
+      // http://pubs.opengroup.org/onlinepubs/000095399/functions/fseek.html
+      var ret = _lseek(stream, offset, whence);
+      if (ret == -1) {
+        return -1;
+      } else {
+        FS.streams[stream].eof = false;
+        return 0;
+      }
+    }
+
+  var _floor=Math.floor;
+
+  function _strcat(pdest, psrc) {
+      var len = _strlen(pdest);
+      var i = 0;
+      do {
+        HEAP8[(pdest+len+i)]=HEAP8[(psrc+i)];
+        i ++;
+      } while (HEAP8[((psrc)+(i-1))] != 0);
+      return pdest;
+    }
+var _ExitMP3; // stub for _ExitMP3
+var _InitMP3; // stub for _InitMP3
+var _decodeMP3; // stub for _decodeMP3
+var _decodeMP3_unclipped; // stub for _decodeMP3_unclipped
+
+  var _log=Math.log;
+
+  var _exp=Math.exp;
+
+  var _sqrt=Math.sqrt;
+
+  
+  function __exit(status) {
+      // void _exit(int status);
+      // http://pubs.opengroup.org/onlinepubs/000095399/functions/exit.html
+  
+  
+      exitRuntime();
+      ABORT = true;
+  
+      throw 'exit(' + status + ') called, at ' + new Error().stack;
+    }function _exit(status) {
+      __exit(status);
+    }
+
+  function _qsort(base, num, size, cmp) {
+      if (num == 0 || size == 0) return;
+      // forward calls to the JavaScript sort method
+      // first, sort the items logically
+      var comparator = function(x, y) {
+        return Runtime.dynCall('iii', cmp, [x, y]);
+      }
+      var keys = [];
+      for (var i = 0; i < num; i++) keys.push(i);
+      keys.sort(function(a, b) {
+        return comparator(base+a*size, base+b*size);
+      });
+      // apply the sort
+      var temp = _malloc(num*size);
+      _memcpy(temp, base, num*size);
+      for (var i = 0; i < num; i++) {
+        if (keys[i] == i) continue; // already in place
+        _memcpy(base+i*size, temp+keys[i]*size, size);
+      }
+      _free(temp);
+    }
+
+  var _atan=Math.atan;
+
+  
+  
+  
+  
+  function _pwrite(fildes, buf, nbyte, offset) {
+      // ssize_t pwrite(int fildes, const void *buf, size_t nbyte, off_t offset);
+      // http://pubs.opengroup.org/onlinepubs/000095399/functions/write.html
+      var stream = FS.streams[fildes];
+      if (!stream || stream.object.isDevice) {
+        ___setErrNo(ERRNO_CODES.EBADF);
+        return -1;
+      } else if (!stream.isWrite) {
+        ___setErrNo(ERRNO_CODES.EACCES);
+        return -1;
+      } else if (stream.object.isFolder) {
+        ___setErrNo(ERRNO_CODES.EISDIR);
+        return -1;
+      } else if (nbyte < 0 || offset < 0) {
+        ___setErrNo(ERRNO_CODES.EINVAL);
+        return -1;
+      } else {
+        var contents = stream.object.contents;
+        while (contents.length < offset) contents.push(0);
+        for (var i = 0; i < nbyte; i++) {
+          contents[offset + i] = HEAPU8[((buf)+(i))];
+        }
+        stream.object.timestamp = Date.now();
+        return i;
+      }
+    }function _write(fildes, buf, nbyte) {
+      // ssize_t write(int fildes, const void *buf, size_t nbyte);
+      // http://pubs.opengroup.org/onlinepubs/000095399/functions/write.html
+      var stream = FS.streams[fildes];
+      if (!stream) {
+        ___setErrNo(ERRNO_CODES.EBADF);
+        return -1;
+      } else if (!stream.isWrite) {
+        ___setErrNo(ERRNO_CODES.EACCES);
+        return -1;
+      } else if (nbyte < 0) {
+        ___setErrNo(ERRNO_CODES.EINVAL);
+        return -1;
+      } else {
+        if (stream.object.isDevice) {
+          if (stream.object.output) {
+            for (var i = 0; i < nbyte; i++) {
+              try {
+                stream.object.output(HEAP8[((buf)+(i))]);
+              } catch (e) {
+                ___setErrNo(ERRNO_CODES.EIO);
+                return -1;
+              }
+            }
+            stream.object.timestamp = Date.now();
+            return i;
+          } else {
+            ___setErrNo(ERRNO_CODES.ENXIO);
+            return -1;
+          }
+        } else {
+          var bytesWritten = _pwrite(fildes, buf, nbyte, stream.position);
+          if (bytesWritten != -1) stream.position += bytesWritten;
+          return bytesWritten;
+        }
+      }
+    }function _fwrite(ptr, size, nitems, stream) {
+      // size_t fwrite(const void *restrict ptr, size_t size, size_t nitems, FILE *restrict stream);
+      // http://pubs.opengroup.org/onlinepubs/000095399/functions/fwrite.html
+      var bytesToWrite = nitems * size;
+      if (bytesToWrite == 0) return 0;
+      var bytesWritten = _write(stream, ptr, bytesToWrite);
+      if (bytesWritten == -1) {
+        if (FS.streams[stream]) FS.streams[stream].error = true;
+        return 0;
+      } else {
+        return Math.floor(bytesWritten / size);
+      }
+    }function _fprintf(stream, format, varargs) {
+      // int fprintf(FILE *restrict stream, const char *restrict format, ...);
+      // http://pubs.opengroup.org/onlinepubs/000095399/functions/printf.html
+      var result = __formatString(format, varargs);
+      var stack = Runtime.stackSave();
+      var ret = _fwrite(allocate(result, 'i8', ALLOC_STACK), 1, result.length, stream);
+      Runtime.stackRestore(stack);
+      return ret;
+    }var _vfprintf;
+
+  function _fflush(stream) {
+      // int fflush(FILE *stream);
+      // http://pubs.opengroup.org/onlinepubs/000095399/functions/fflush.html
+      var flush = function(filedes) {
+        // Right now we write all data directly, except for output devices.
+        if (FS.streams[filedes] && FS.streams[filedes].object.output) {
+          if (!FS.streams[filedes].isTerminal) { // don't flush terminals, it would cause a \n to also appear
+            FS.streams[filedes].object.output(null);
+          }
+        }
+      };
+      try {
+        if (stream === 0) {
+          for (var i = 0; i < FS.streams.length; i++) if (FS.streams[i]) flush(i);
+        } else {
+          flush(stream);
+        }
+        return 0;
+      } catch (e) {
+        ___setErrNo(ERRNO_CODES.EIO);
+        return -1;
+      }
+    }
+var _llvm_va_start; // stub for _llvm_va_start
+
+  function _llvm_va_end() {}
+
+  var _sin=Math.sin;
+
+  var _fabsf=Math.abs;
+
+  var _log10f;
+
+  function _ftell(stream) {
+      // long ftell(FILE *stream);
+      // http://pubs.opengroup.org/onlinepubs/000095399/functions/ftell.html
+      if (FS.streams[stream]) {
+        stream = FS.streams[stream];
+        if (stream.object.isDevice) {
+          ___setErrNo(ERRNO_CODES.ESPIPE);
+          return -1;
+        } else {
+          return stream.position;
+        }
+      } else {
+        ___setErrNo(ERRNO_CODES.EBADF);
+        return -1;
+      }
+    }
+
+
+  
+  
+  function _pread(fildes, buf, nbyte, offset) {
+      // ssize_t pread(int fildes, void *buf, size_t nbyte, off_t offset);
+      // http://pubs.opengroup.org/onlinepubs/000095399/functions/read.html
+      var stream = FS.streams[fildes];
+      if (!stream || stream.object.isDevice) {
+        ___setErrNo(ERRNO_CODES.EBADF);
+        return -1;
+      } else if (!stream.isRead) {
+        ___setErrNo(ERRNO_CODES.EACCES);
+        return -1;
+      } else if (stream.object.isFolder) {
+        ___setErrNo(ERRNO_CODES.EISDIR);
+        return -1;
+      } else if (nbyte < 0 || offset < 0) {
+        ___setErrNo(ERRNO_CODES.EINVAL);
+        return -1;
+      } else {
+        var bytesRead = 0;
+        while (stream.ungotten.length && nbyte > 0) {
+          HEAP8[(buf++)]=stream.ungotten.pop()
+          nbyte--;
+          bytesRead++;
+        }
+        var contents = stream.object.contents;
+        var size = Math.min(contents.length - offset, nbyte);
+        if (contents.subarray || contents.slice) { // typed array or normal array
+          for (var i = 0; i < size; i++) {
+            HEAP8[((buf)+(i))]=contents[offset + i]
+          }
+        } else {
+          for (var i = 0; i < size; i++) { // LazyUint8Array from sync binary XHR
+            HEAP8[((buf)+(i))]=contents.get(offset + i)
+          }
+        }
+        bytesRead += size;
+        return bytesRead;
+      }
+    }function _read(fildes, buf, nbyte) {
+      // ssize_t read(int fildes, void *buf, size_t nbyte);
+      // http://pubs.opengroup.org/onlinepubs/000095399/functions/read.html
+      var stream = FS.streams[fildes];
+      if (!stream) {
+        ___setErrNo(ERRNO_CODES.EBADF);
+        return -1;
+      } else if (!stream.isRead) {
+        ___setErrNo(ERRNO_CODES.EACCES);
+        return -1;
+      } else if (nbyte < 0) {
+        ___setErrNo(ERRNO_CODES.EINVAL);
+        return -1;
+      } else {
+        var bytesRead;
+        if (stream.object.isDevice) {
+          if (stream.object.input) {
+            bytesRead = 0;
+            while (stream.ungotten.length && nbyte > 0) {
+              HEAP8[(buf++)]=stream.ungotten.pop()
+              nbyte--;
+              bytesRead++;
+            }
+            for (var i = 0; i < nbyte; i++) {
+              try {
+                var result = stream.object.input();
+              } catch (e) {
+                ___setErrNo(ERRNO_CODES.EIO);
+                return -1;
+              }
+              if (result === null || result === undefined) break;
+              bytesRead++;
+              HEAP8[((buf)+(i))]=result
+            }
+            return bytesRead;
+          } else {
+            ___setErrNo(ERRNO_CODES.ENXIO);
+            return -1;
+          }
+        } else {
+          var ungotSize = stream.ungotten.length;
+          bytesRead = _pread(fildes, buf, nbyte, stream.position);
+          if (bytesRead != -1) {
+            stream.position += (stream.ungotten.length - ungotSize) + bytesRead;
+          }
+          return bytesRead;
+        }
+      }
+    }function _fread(ptr, size, nitems, stream) {
+      // size_t fread(void *restrict ptr, size_t size, size_t nitems, FILE *restrict stream);
+      // http://pubs.opengroup.org/onlinepubs/000095399/functions/fread.html
+      var bytesToRead = nitems * size;
+      if (bytesToRead == 0) return 0;
+      var bytesRead = _read(stream, ptr, bytesToRead);
+      var streamObj = FS.streams[stream];
+      if (bytesRead == -1) {
+        if (streamObj) streamObj.error = true;
+        return 0;
+      } else {
+        if (bytesRead < bytesToRead) streamObj.eof = true;
+        return Math.floor(bytesRead / size);
+      }
+    }
+
+  function _abort() {
+      ABORT = true;
+      throw 'abort() at ' + (new Error().stack);
+    }
+
+
+  function _sysconf(name) {
+      // long sysconf(int name);
+      // http://pubs.opengroup.org/onlinepubs/009695399/functions/sysconf.html
+      switch(name) {
+        case 8: return PAGE_SIZE;
+        case 54:
+        case 56:
+        case 21:
+        case 61:
+        case 63:
+        case 22:
+        case 67:
+        case 23:
+        case 24:
+        case 25:
+        case 26:
+        case 27:
+        case 69:
+        case 28:
+        case 101:
+        case 70:
+        case 71:
+        case 29:
+        case 30:
+        case 199:
+        case 75:
+        case 76:
+        case 32:
+        case 43:
+        case 44:
+        case 80:
+        case 46:
+        case 47:
+        case 45:
+        case 48:
+        case 49:
+        case 42:
+        case 82:
+        case 33:
+        case 7:
+        case 108:
+        case 109:
+        case 107:
+        case 112:
+        case 119:
+        case 121:
+          return 200809;
+        case 13:
+        case 104:
+        case 94:
+        case 95:
+        case 34:
+        case 35:
+        case 77:
+        case 81:
+        case 83:
+        case 84:
+        case 85:
+        case 86:
+        case 87:
+        case 88:
+        case 89:
+        case 90:
+        case 91:
+        case 94:
+        case 95:
+        case 110:
+        case 111:
+        case 113:
+        case 114:
+        case 115:
+        case 116:
+        case 117:
+        case 118:
+        case 120:
+        case 40:
+        case 16:
+        case 79:
+        case 19:
+          return -1;
+        case 92:
+        case 93:
+        case 5:
+        case 72:
+        case 6:
+        case 74:
+        case 92:
+        case 93:
+        case 96:
+        case 97:
+        case 98:
+        case 99:
+        case 102:
+        case 103:
+        case 105:
+          return 1;
+        case 38:
+        case 66:
+        case 50:
+        case 51:
+        case 4:
+          return 1024;
+        case 15:
+        case 64:
+        case 41:
+          return 32;
+        case 55:
+        case 37:
+        case 17:
+          return 2147483647;
+        case 18:
+        case 1:
+          return 47839;
+        case 59:
+        case 57:
+          return 99;
+        case 68:
+        case 58:
+          return 2048;
+        case 0: return 2097152;
+        case 3: return 65536;
+        case 14: return 32768;
+        case 73: return 32767;
+        case 39: return 16384;
+        case 60: return 1000;
+        case 106: return 700;
+        case 52: return 256;
+        case 62: return 255;
+        case 2: return 100;
+        case 65: return 64;
+        case 36: return 20;
+        case 100: return 16;
+        case 20: return 6;
+        case 53: return 4;
+      }
+      ___setErrNo(ERRNO_CODES.EINVAL);
+      return -1;
+    }
+
+  function _time(ptr) {
+      var ret = Math.floor(Date.now()/1000);
+      if (ptr) {
+        HEAP32[((ptr)>>2)]=ret
+      }
+      return ret;
+    }
+
+  
+  function ___errno_location() {
+      return ___setErrNo.ret;
+    }var ___errno;
+
+  function _sbrk(bytes) {
+      // Implement a Linux-like 'memory area' for our 'process'.
+      // Changes the size of the memory area by |bytes|; returns the
+      // address of the previous top ('break') of the memory area
+  
+      // We need to make sure no one else allocates unfreeable memory!
+      // We must control this entirely. So we don't even need to do
+      // unfreeable allocations - the HEAP is ours, from STATICTOP up.
+      // TODO: We could in theory slice off the top of the HEAP when
+      //       sbrk gets a negative increment in |bytes|...
+      var self = _sbrk;
+      if (!self.called) {
+        STATICTOP = alignMemoryPage(STATICTOP); // make sure we start out aligned
+        self.called = true;
+        _sbrk.DYNAMIC_START = STATICTOP;
+      }
+      var ret = STATICTOP;
+      if (bytes != 0) Runtime.staticAlloc(bytes);
+      return ret;  // Previous break location.
+    }
+
+  function ___gxx_personality_v0() {
+    }
+
+  function ___cxa_allocate_exception(size) {
+      return _malloc(size);
+    }
+
+  
+  function _llvm_eh_exception() {
+      return HEAP32[((_llvm_eh_exception.buf)>>2)];
+    }
+  
+  function __ZSt18uncaught_exceptionv() { // std::uncaught_exception()
+      return !!__ZSt18uncaught_exceptionv.uncaught_exception;
+    }
+  
+  
+  
+  function ___cxa_is_number_type(type) {
+      var isNumber = false;
+      try { if (type == __ZTIi) isNumber = true } catch(e){}
+      try { if (type == __ZTIj) isNumber = true } catch(e){}
+      try { if (type == __ZTIl) isNumber = true } catch(e){}
+      try { if (type == __ZTIm) isNumber = true } catch(e){}
+      try { if (type == __ZTIx) isNumber = true } catch(e){}
+      try { if (type == __ZTIy) isNumber = true } catch(e){}
+      try { if (type == __ZTIf) isNumber = true } catch(e){}
+      try { if (type == __ZTId) isNumber = true } catch(e){}
+      try { if (type == __ZTIe) isNumber = true } catch(e){}
+      try { if (type == __ZTIc) isNumber = true } catch(e){}
+      try { if (type == __ZTIa) isNumber = true } catch(e){}
+      try { if (type == __ZTIh) isNumber = true } catch(e){}
+      try { if (type == __ZTIs) isNumber = true } catch(e){}
+      try { if (type == __ZTIt) isNumber = true } catch(e){}
+      return isNumber;
+    }function ___cxa_does_inherit(definiteType, possibilityType, possibility) {
+      if (possibility == 0) return false;
+      if (possibilityType == 0 || possibilityType == definiteType)
+        return true;
+      var possibility_type_info;
+      if (___cxa_is_number_type(possibilityType)) {
+        possibility_type_info = possibilityType;
+      } else {
+        var possibility_type_infoAddr = HEAP32[((possibilityType)>>2)] - 8;
+        possibility_type_info = HEAP32[((possibility_type_infoAddr)>>2)];
+      }
+      switch (possibility_type_info) {
+      case 0: // possibility is a pointer
+        // See if definite type is a pointer
+        var definite_type_infoAddr = HEAP32[((definiteType)>>2)] - 8;
+        var definite_type_info = HEAP32[((definite_type_infoAddr)>>2)];
+        if (definite_type_info == 0) {
+          // Also a pointer; compare base types of pointers
+          var defPointerBaseAddr = definiteType+8;
+          var defPointerBaseType = HEAP32[((defPointerBaseAddr)>>2)];
+          var possPointerBaseAddr = possibilityType+8;
+          var possPointerBaseType = HEAP32[((possPointerBaseAddr)>>2)];
+          return ___cxa_does_inherit(defPointerBaseType, possPointerBaseType, possibility);
+        } else
+          return false; // one pointer and one non-pointer
+      case 1: // class with no base class
+        return false;
+      case 2: // class with base class
+        var parentTypeAddr = possibilityType + 8;
+        var parentType = HEAP32[((parentTypeAddr)>>2)];
+        return ___cxa_does_inherit(definiteType, parentType, possibility);
+      default:
+        return false; // some unencountered type
+      }
+    }function ___cxa_find_matching_catch(thrown, throwntype, typeArray) {
+      // If throwntype is a pointer, this means a pointer has been
+      // thrown. When a pointer is thrown, actually what's thrown
+      // is a pointer to the pointer. We'll dereference it.
+      if (throwntype != 0 && !___cxa_is_number_type(throwntype)) {
+        var throwntypeInfoAddr= HEAP32[((throwntype)>>2)] - 8;
+        var throwntypeInfo= HEAP32[((throwntypeInfoAddr)>>2)];
+        if (throwntypeInfo == 0)
+          thrown = HEAP32[((thrown)>>2)];
+      }
+      // The different catch blocks are denoted by different types.
+      // Due to inheritance, those types may not precisely match the
+      // type of the thrown object. Find one which matches, and
+      // return the type of the catch block which should be called.
+      for (var i = 0; i < typeArray.length; i++) {
+        if (___cxa_does_inherit(typeArray[i], throwntype, thrown))
+          return (tempRet0 = typeArray[i],thrown);
+      }
+      // Shouldn't happen unless we have bogus data in typeArray
+      // or encounter a type for which emscripten doesn't have suitable
+      // typeinfo defined. Best-efforts match just in case.
+      return (tempRet0 = throwntype,thrown);
+    }function ___cxa_throw(ptr, type, destructor) {
+      if (!___cxa_throw.initialized) {
+        try {
+          HEAP32[((__ZTVN10__cxxabiv119__pointer_type_infoE)>>2)]=0; // Workaround for libcxxabi integration bug
+        } catch(e){}
+        try {
+          HEAP32[((__ZTVN10__cxxabiv117__class_type_infoE)>>2)]=1; // Workaround for libcxxabi integration bug
+        } catch(e){}
+        try {
+          HEAP32[((__ZTVN10__cxxabiv120__si_class_type_infoE)>>2)]=2; // Workaround for libcxxabi integration bug
+        } catch(e){}
+        ___cxa_throw.initialized = true;
+      }
+      HEAP32[((_llvm_eh_exception.buf)>>2)]=ptr
+      HEAP32[(((_llvm_eh_exception.buf)+(4))>>2)]=type
+      HEAP32[(((_llvm_eh_exception.buf)+(8))>>2)]=destructor
+      if (!("uncaught_exception" in __ZSt18uncaught_exceptionv)) {
+        __ZSt18uncaught_exceptionv.uncaught_exception = 1;
+      } else {
+        __ZSt18uncaught_exceptionv.uncaught_exception++;
+      }
+      throw ptr + " - Exception catching is disabled, this exception cannot be caught. Compile with -s DISABLE_EXCEPTION_CATCHING=0 or DISABLE_EXCEPTION_CATCHING=2 to catch.";;
+    }
+
+  function ___cxa_call_unexpected(exception) {
+      ABORT = true;
+      throw exception;
+    }
+
+  function ___cxa_begin_catch(ptr) {
+      __ZSt18uncaught_exceptionv.uncaught_exception--;
+      return ptr;
+    }
+
+  
+  function ___cxa_free_exception(ptr) {
+      return _free(ptr);
+    }function ___cxa_end_catch() {
+      if (___cxa_end_catch.rethrown) {
+        ___cxa_end_catch.rethrown = false;
+        return;
+      }
+      // Clear state flag.
+      __THREW__ = 0;
+      // Clear type.
+      HEAP32[(((_llvm_eh_exception.buf)+(4))>>2)]=0
+      // Call destructor if one is registered then clear it.
+      var ptr = HEAP32[((_llvm_eh_exception.buf)>>2)];
+      var destructor = HEAP32[(((_llvm_eh_exception.buf)+(8))>>2)];
+      if (destructor) {
+        Runtime.dynCall('vi', destructor, [ptr]);
+        HEAP32[(((_llvm_eh_exception.buf)+(8))>>2)]=0
+      }
+      // Free ptr if it isn't null.
+      if (ptr) {
+        ___cxa_free_exception(ptr);
+        HEAP32[((_llvm_eh_exception.buf)>>2)]=0
+      }
+    }
+
+  function __ZNSt9exceptionD2Ev(){}
+
+  function _llvm_bswap_i16(x) {
+      return ((x&0xff)<<8) | ((x>>8)&0xff);
+    }
+
+  var _llvm_memset_p0i8_i64;
+
+  function _exp2(x) {
+      return Math.pow(2, x);
+    }
+
+  var _floorf=Math.floor;
+
+
+
+
+
+  var Browser={mainLoop:{scheduler:null,shouldPause:false,paused:false,queue:[],pause:function () {
+          Browser.mainLoop.shouldPause = true;
+        },resume:function () {
+          if (Browser.mainLoop.paused) {
+            Browser.mainLoop.paused = false;
+            Browser.mainLoop.scheduler();
+          }
+          Browser.mainLoop.shouldPause = false;
+        },updateStatus:function () {
+          if (Module['setStatus']) {
+            var message = Module['statusMessage'] || 'Please wait...';
+            var remaining = Browser.mainLoop.remainingBlockers;
+            var expected = Browser.mainLoop.expectedBlockers;
+            if (remaining) {
+              if (remaining < expected) {
+                Module['setStatus'](message + ' (' + (expected - remaining) + '/' + expected + ')');
+              } else {
+                Module['setStatus'](message);
+              }
+            } else {
+              Module['setStatus']('');
+            }
+          }
+        }},pointerLock:false,moduleContextCreatedCallbacks:[],workers:[],ensureObjects:function () {
+        if (Browser.ensured) return;
+        Browser.ensured = true;
+        try {
+          new Blob();
+          Browser.hasBlobConstructor = true;
+        } catch(e) {
+          Browser.hasBlobConstructor = false;
+          console.log("warning: no blob constructor, cannot create blobs with mimetypes");
+        }
+        Browser.BlobBuilder = typeof MozBlobBuilder != "undefined" ? MozBlobBuilder : (typeof WebKitBlobBuilder != "undefined" ? WebKitBlobBuilder : (!Browser.hasBlobConstructor ? console.log("warning: no BlobBuilder") : null));
+        Browser.URLObject = typeof window != "undefined" ? (window.URL ? window.URL : window.webkitURL) : console.log("warning: cannot create object URLs");
+  
+        // Support for plugins that can process preloaded files. You can add more of these to
+        // your app by creating and appending to Module.preloadPlugins.
+        //
+        // Each plugin is asked if it can handle a file based on the file's name. If it can,
+        // it is given the file's raw data. When it is done, it calls a callback with the file's
+        // (possibly modified) data. For example, a plugin might decompress a file, or it
+        // might create some side data structure for use later (like an Image element, etc.).
+  
+        function getMimetype(name) {
+          return {
+            'jpg': 'image/jpeg',
+            'png': 'image/png',
+            'bmp': 'image/bmp',
+            'ogg': 'audio/ogg',
+            'wav': 'audio/wav',
+            'mp3': 'audio/mpeg'
+          }[name.substr(-3)];
+          return ret;
+        }
+  
+        if (!Module["preloadPlugins"]) Module["preloadPlugins"] = [];
+  
+        var imagePlugin = {};
+        imagePlugin['canHandle'] = function(name) {
+          return name.substr(-4) in { '.jpg': 1, '.png': 1, '.bmp': 1 };
+        };
+        imagePlugin['handle'] = function(byteArray, name, onload, onerror) {
+          var b = null;
+          if (Browser.hasBlobConstructor) {
+            try {
+              b = new Blob([byteArray], { type: getMimetype(name) });
+            } catch(e) {
+              Runtime.warnOnce('Blob constructor present but fails: ' + e + '; falling back to blob builder');
+            }
+          }
+          if (!b) {
+            var bb = new Browser.BlobBuilder();
+            bb.append((new Uint8Array(byteArray)).buffer); // we need to pass a buffer, and must copy the array to get the right data range
+            b = bb.getBlob();
+          }
+          var url = Browser.URLObject.createObjectURL(b);
+          var img = new Image();
+          img.onload = function() {
+            assert(img.complete, 'Image ' + name + ' could not be decoded');
+            var canvas = document.createElement('canvas');
+            canvas.width = img.width;
+            canvas.height = img.height;
+            var ctx = canvas.getContext('2d');
+            ctx.drawImage(img, 0, 0);
+            Module["preloadedImages"][name] = canvas;
+            Browser.URLObject.revokeObjectURL(url);
+            if (onload) onload(byteArray);
+          };
+          img.onerror = function(event) {
+            console.log('Image ' + url + ' could not be decoded');
+            if (onerror) onerror();
+          };
+          img.src = url;
+        };
+        Module['preloadPlugins'].push(imagePlugin);
+  
+        var audioPlugin = {};
+        audioPlugin['canHandle'] = function(name) {
+          return name.substr(-4) in { '.ogg': 1, '.wav': 1, '.mp3': 1 };
+        };
+        audioPlugin['handle'] = function(byteArray, name, onload, onerror) {
+          var done = false;
+          function finish(audio) {
+            if (done) return;
+            done = true;
+            Module["preloadedAudios"][name] = audio;
+            if (onload) onload(byteArray);
+          }
+          function fail() {
+            if (done) return;
+            done = true;
+            Module["preloadedAudios"][name] = new Audio(); // empty shim
+            if (onerror) onerror();
+          }
+          if (Browser.hasBlobConstructor) {
+            try {
+              var b = new Blob([byteArray], { type: getMimetype(name) });
+            } catch(e) {
+              return fail();
+            }
+            var url = Browser.URLObject.createObjectURL(b); // XXX we never revoke this!
+            var audio = new Audio();
+            audio.addEventListener('canplaythrough', function() { finish(audio) }, false); // use addEventListener due to chromium bug 124926
+            audio.onerror = function(event) {
+              if (done) return;
+              console.log('warning: browser could not fully decode audio ' + name + ', trying slower base64 approach');
+              function encode64(data) {
+                var BASE = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';
+                var PAD = '=';
+                var ret = '';
+                var leftchar = 0;
+                var leftbits = 0;
+                for (var i = 0; i < data.length; i++) {
+                  leftchar = (leftchar << 8) | data[i];
+                  leftbits += 8;
+                  while (leftbits >= 6) {
+                    var curr = (leftchar >> (leftbits-6)) & 0x3f;
+                    leftbits -= 6;
+                    ret += BASE[curr];
+                  }
+                }
+                if (leftbits == 2) {
+                  ret += BASE[(leftchar&3) << 4];
+                  ret += PAD + PAD;
+                } else if (leftbits == 4) {
+                  ret += BASE[(leftchar&0xf) << 2];
+                  ret += PAD;
+                }
+                return ret;
+              }
+              audio.src = 'data:audio/x-' + name.substr(-3) + ';base64,' + encode64(byteArray);
+              finish(audio); // we don't wait for confirmation this worked - but it's worth trying
+            };
+            audio.src = url;
+            // workaround for chrome bug 124926 - we do not always get oncanplaythrough or onerror
+            setTimeout(function() {
+              finish(audio); // try to use it even though it is not necessarily ready to play
+            }, 10000);
+          } else {
+            return fail();
+          }
+        };
+        Module['preloadPlugins'].push(audioPlugin);
+      },createContext:function (canvas, useWebGL, setInModule) {
+        try {
+          var ctx = canvas.getContext(useWebGL ? 'experimental-webgl' : '2d');
+          if (!ctx) throw ':(';
+        } catch (e) {
+          Module.print('Could not create canvas - ' + e);
+          return null;
+        }
+        if (useWebGL) {
+          // Set the background of the WebGL canvas to black
+          canvas.style.backgroundColor = "black";
+  
+          // Warn on context loss
+          canvas.addEventListener('webglcontextlost', function(event) {
+            alert('WebGL context lost. You will need to reload the page.');
+          }, false);
+        }
+        if (setInModule) {
+          Module.ctx = ctx;
+          Module.useWebGL = useWebGL;
+          Browser.moduleContextCreatedCallbacks.forEach(function(callback) { callback() });
+        }
+        return ctx;
+      },requestFullScreen:function () {
+        var canvas = Module['canvas'];
+        function fullScreenChange() {
+          var isFullScreen = false;
+          if ((document['webkitFullScreenElement'] || document['webkitFullscreenElement'] ||
+               document['mozFullScreenElement'] || document['mozFullscreenElement'] ||
+               document['fullScreenElement'] || document['fullscreenElement']) === canvas) {
+            canvas.requestPointerLock = canvas['requestPointerLock'] ||
+                                        canvas['mozRequestPointerLock'] ||
+                                        canvas['webkitRequestPointerLock'];
+            canvas.requestPointerLock();
+            isFullScreen = true;
+          }
+          if (Module['onFullScreen']) Module['onFullScreen'](isFullScreen);
+        }
+  
+        document.addEventListener('fullscreenchange', fullScreenChange, false);
+        document.addEventListener('mozfullscreenchange', fullScreenChange, false);
+        document.addEventListener('webkitfullscreenchange', fullScreenChange, false);
+  
+        function pointerLockChange() {
+          Browser.pointerLock = document['pointerLockElement'] === canvas ||
+                                document['mozPointerLockElement'] === canvas ||
+                                document['webkitPointerLockElement'] === canvas;
+        }
+  
+        document.addEventListener('pointerlockchange', pointerLockChange, false);
+        document.addEventListener('mozpointerlockchange', pointerLockChange, false);
+        document.addEventListener('webkitpointerlockchange', pointerLockChange, false);
+  
+        canvas.requestFullScreen = canvas['requestFullScreen'] ||
+                                   canvas['mozRequestFullScreen'] ||
+                                   (canvas['webkitRequestFullScreen'] ? function() { canvas['webkitRequestFullScreen'](Element['ALLOW_KEYBOARD_INPUT']) } : null);
+        canvas.requestFullScreen(); 
+      },requestAnimationFrame:function (func) {
+        if (!window.requestAnimationFrame) {
+          window.requestAnimationFrame = window['requestAnimationFrame'] ||
+                                         window['mozRequestAnimationFrame'] ||
+                                         window['webkitRequestAnimationFrame'] ||
+                                         window['msRequestAnimationFrame'] ||
+                                         window['oRequestAnimationFrame'] ||
+                                         window['setTimeout'];
+        }
+        window.requestAnimationFrame(func);
+      },getMovementX:function (event) {
+        return event['movementX'] ||
+               event['mozMovementX'] ||
+               event['webkitMovementX'] ||
+               0;
+      },getMovementY:function (event) {
+        return event['movementY'] ||
+               event['mozMovementY'] ||
+               event['webkitMovementY'] ||
+               0;
+      },xhrLoad:function (url, onload, onerror) {
+        var xhr = new XMLHttpRequest();
+        xhr.open('GET', url, true);
+        xhr.responseType = 'arraybuffer';
+        xhr.onload = function() {
+          if (xhr.status == 200) {
+            onload(xhr.response);
+          } else {
+            onerror();
+          }
+        };
+        xhr.onerror = onerror;
+        xhr.send(null);
+      },asyncLoad:function (url, onload, onerror, noRunDep) {
+        Browser.xhrLoad(url, function(arrayBuffer) {
+          assert(arrayBuffer, 'Loading data file "' + url + '" failed (no arrayBuffer).');
+          onload(new Uint8Array(arrayBuffer));
+          if (!noRunDep) removeRunDependency('al ' + url);
+        }, function(event) {
+          if (onerror) {
+            onerror();
+          } else {
+            throw 'Loading data file "' + url + '" failed.';
+          }
+        });
+        if (!noRunDep) addRunDependency('al ' + url);
+      },resizeListeners:[],updateResizeListeners:function () {
+        var canvas = Module['canvas'];
+        Browser.resizeListeners.forEach(function(listener) {
+          listener(canvas.width, canvas.height);
+        });
+      },setCanvasSize:function (width, height, noUpdates) {
+        var canvas = Module['canvas'];
+        canvas.width = width;
+        canvas.height = height;
+        if (!noUpdates) Browser.updateResizeListeners();
+      }};
+___setErrNo(0);
+__ATINIT__.unshift({ func: function() { if (!Module["noFSInit"] && !FS.init.initialized) FS.init() } });__ATMAIN__.push({ func: function() { FS.ignorePermissions = false } });__ATEXIT__.push({ func: function() { FS.quit() } });Module["FS_createFolder"] = FS.createFolder;Module["FS_createPath"] = FS.createPath;Module["FS_createDataFile"] = FS.createDataFile;Module["FS_createPreloadedFile"] = FS.createPreloadedFile;Module["FS_createLazyFile"] = FS.createLazyFile;Module["FS_createLink"] = FS.createLink;Module["FS_createDevice"] = FS.createDevice;
+_llvm_eh_exception.buf = allocate(12, "void*", ALLOC_STATIC);
+Module["requestFullScreen"] = function() { Browser.requestFullScreen() };
+  Module["requestAnimationFrame"] = function(func) { Browser.requestAnimationFrame(func) };
+  Module["pauseMainLoop"] = function() { Browser.mainLoop.pause() };
+  Module["resumeMainLoop"] = function() { Browser.mainLoop.resume() };
+  
+
+
+var FUNCTION_TABLE = [0,0,__ZNSt20bad_array_new_lengthD0Ev,0,_ABR_iteration_loop,0,_count_bit_noESC_from2,0,_count_bit_noESC_from3,0,__ZNSt9bad_allocC2Ev,0,__ZNSt9bad_allocD0Ev,0,_VBR_old_iteration_loop,0,_find_scalefac_x34,0,_floatcompare,0,_VBR_new_iteration_loop,0,_long_block_constrain,0,__ZNKSt9bad_alloc4whatEv,0,_CBR_iteration_loop,0,_count_bit_null,0,__ZNSt9bad_allocD2Ev,0,_count_bit_noESC,0,_short_block_constrain,0,_guess_scalefac_x34,0,_choose_table_nonMMX,0,__ZNSt20bad_array_new_lengthC2Ev,0,_decodeMP3_unclipped,0,__ZNKSt20bad_array_new_length4whatEv,0,_decodeMP3,0,_init_xrpow_core_c,0,_fht,0,_lame_report_def,0];
+
+function _CRC_update($value, $crc) {
+  var $2 = $crc << 1;
+  var $8 = ((($2 ^ $value << 9) & 65536 | 0) == 0 ? $2 : $2 ^ 32773) << 1;
+  var $14 = ((($8 ^ $value << 10) & 65536 | 0) == 0 ? $8 : $8 ^ 32773) << 1;
+  var $20 = ((($14 ^ $value << 11) & 65536 | 0) == 0 ? $14 : $14 ^ 32773) << 1;
+  var $26 = ((($20 ^ $value << 12) & 65536 | 0) == 0 ? $20 : $20 ^ 32773) << 1;
+  var $32 = ((($26 ^ $value << 13) & 65536 | 0) == 0 ? $26 : $26 ^ 32773) << 1;
+  var $38 = ((($32 ^ $value << 14) & 65536 | 0) == 0 ? $32 : $32 ^ 32773) << 1;
+  var $44 = ((($38 ^ $value << 15) & 65536 | 0) == 0 ? $38 : $38 ^ 32773) << 1;
+  return (($44 ^ $value << 16) & 65536 | 0) == 0 ? $44 : $44 ^ 32773;
+}
+_CRC_update["X"] = 1;
+function _calcFrameLength($cfg, $kbps, $pad) {
+  return ((((HEAP32[$cfg >> 2] * 72e3 & -1) + 72e3) * $kbps & -1 | 0) / (HEAP32[$cfg + 48 >> 2] | 0) & -1) + $pad << 3;
+}
+function _putbits_noheaders($gfc, $val) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = $gfc + 284 | 0;
+    var $2 = $gfc + 300 | 0;
+    var $3 = $gfc + 296 | 0;
+    var $4 = $1 | 0;
+    var $5 = $gfc + 296 | 0;
+    var $6 = $1 | 0;
+    var $7 = $gfc + 292 | 0;
+    var $_01 = 8;
+    label = 3;
+    break;
+   case 3:
+    var $_01;
+    var $9 = HEAP32[$2 >> 2];
+    var $10 = ($9 | 0) == 0;
+    if ($10) {
+      label = 4;
+      break;
+    } else {
+      label = 5;
+      break;
+    }
+   case 4:
+    HEAP32[$2 >> 2] = 8;
+    var $12 = HEAP32[$3 >> 2];
+    var $13 = $12 + 1 | 0;
+    HEAP32[$3 >> 2] = $13;
+    var $14 = HEAP32[$4 >> 2];
+    var $15 = $14 + $13 | 0;
+    HEAP8[$15] = 0;
+    label = 5;
+    break;
+   case 5:
+    var $17 = HEAP32[$2 >> 2];
+    var $18 = ($_01 | 0) < ($17 | 0);
+    var $_0_ = $18 ? $_01 : $17;
+    var $19 = $_01 - $_0_ | 0;
+    var $20 = $17 - $_0_ | 0;
+    HEAP32[$2 >> 2] = $20;
+    var $21 = $val >> $19;
+    var $22 = $21 << $20;
+    var $23 = HEAP32[$5 >> 2];
+    var $24 = HEAP32[$6 >> 2];
+    var $25 = $24 + $23 | 0;
+    var $26 = HEAP8[$25];
+    var $27 = $26 & 255;
+    var $28 = $22 | $27;
+    var $29 = $28 & 255;
+    HEAP8[$25] = $29;
+    var $30 = HEAP32[$7 >> 2];
+    var $31 = $30 + $_0_ | 0;
+    HEAP32[$7 >> 2] = $31;
+    var $32 = ($19 | 0) > 0;
+    if ($32) {
+      var $_01 = $19;
+      label = 3;
+      break;
+    } else {
+      label = 6;
+      break;
+    }
+   case 6:
+    return;
+  }
+}
+function _getframebits($gfc) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = $gfc + 16 | 0;
+    var $2 = $gfc + 84740 | 0;
+    var $3 = HEAP32[$2 >> 2];
+    var $4 = ($3 | 0) == 0;
+    if ($4) {
+      label = 4;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 3:
+    var $6 = $1 | 0;
+    var $7 = HEAP32[$6 >> 2];
+    var $8 = 5348684 + ($7 << 6) + ($3 << 2) | 0;
+    var $bit_rate_0_in = $8;
+    label = 5;
+    break;
+   case 4:
+    var $10 = $gfc + 120 | 0;
+    var $bit_rate_0_in = $10;
+    label = 5;
+    break;
+   case 5:
+    var $bit_rate_0_in;
+    var $bit_rate_0 = HEAP32[$bit_rate_0_in >> 2];
+    var $12 = $gfc + 84748 | 0;
+    var $13 = HEAP32[$12 >> 2];
+    var $14 = _calcFrameLength($1, $bit_rate_0, $13);
+    return $14;
+  }
+}
+function _get_max_frame_buffer_size_by_constraint($cfg, $constraint) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = $cfg + 104 | 0;
+    var $2 = HEAP32[$1 >> 2];
+    var $3 = ($2 | 0) > 320;
+    if ($3) {
+      label = 3;
+      break;
+    } else {
+      label = 6;
+      break;
+    }
+   case 3:
+    var $5 = ($constraint | 0) == 1;
+    if ($5) {
+      label = 4;
+      break;
+    } else {
+      label = 5;
+      break;
+    }
+   case 4:
+    var $7 = _calcFrameLength($cfg, $2, 0);
+    var $maxmp3buf_0 = $7;
+    label = 12;
+    break;
+   case 5:
+    var $9 = $cfg | 0;
+    var $10 = HEAP32[$9 >> 2];
+    var $11 = $10 * 7680 & -1;
+    var $12 = $11 + 7680 | 0;
+    var $maxmp3buf_0 = $12;
+    label = 12;
+    break;
+   case 6:
+    var $14 = $cfg + 48 | 0;
+    var $15 = HEAP32[$14 >> 2];
+    var $16 = ($15 | 0) < 16e3;
+    var $17 = $cfg | 0;
+    var $18 = HEAP32[$17 >> 2];
+    if ($16) {
+      label = 7;
+      break;
+    } else {
+      label = 8;
+      break;
+    }
+   case 7:
+    var $20 = 5348716 + ($18 << 6) | 0;
+    var $max_kbps_0_in = $20;
+    label = 9;
+    break;
+   case 8:
+    var $22 = 5348740 + ($18 << 6) | 0;
+    var $max_kbps_0_in = $22;
+    label = 9;
+    break;
+   case 9:
+    var $max_kbps_0_in;
+    if (($constraint | 0) == 1) {
+      label = 10;
+      break;
+    } else if (($constraint | 0) == 2) {
+      label = 11;
+      break;
+    } else {
+      var $maxmp3buf_0 = 11520;
+      label = 12;
+      break;
+    }
+   case 10:
+    var $max_kbps_0 = HEAP32[$max_kbps_0_in >> 2];
+    var $25 = _calcFrameLength($cfg, $max_kbps_0, 0);
+    var $maxmp3buf_0 = $25;
+    label = 12;
+    break;
+   case 11:
+    var $27 = HEAP32[$17 >> 2];
+    var $28 = $27 * 7680 & -1;
+    var $29 = $28 + 7680 | 0;
+    var $maxmp3buf_0 = $29;
+    label = 12;
+    break;
+   case 12:
+    var $maxmp3buf_0;
+    return $maxmp3buf_0;
+  }
+}
+function _CRC_writeheader($gfc, $header) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = $header + 2 | 0;
+    var $2 = HEAP8[$1];
+    var $3 = $2 & 255;
+    var $4 = _CRC_update($3, 65535);
+    var $5 = $header + 3 | 0;
+    var $6 = HEAP8[$5];
+    var $7 = $6 & 255;
+    var $8 = _CRC_update($7, $4);
+    var $9 = $gfc + 24 | 0;
+    var $10 = HEAP32[$9 >> 2];
+    var $11 = ($10 | 0) > 6;
+    if ($11) {
+      label = 3;
+      break;
+    } else {
+      var $crc_0_lcssa = $8;
+      label = 5;
+      break;
+    }
+   case 3:
+    var $12 = HEAP32[$9 >> 2];
+    var $crc_012 = $8;
+    var $i_013 = 6;
+    label = 4;
+    break;
+   case 4:
+    var $i_013;
+    var $crc_012;
+    var $14 = $header + $i_013 | 0;
+    var $15 = HEAP8[$14];
+    var $16 = $15 & 255;
+    var $17 = _CRC_update($16, $crc_012);
+    var $18 = $i_013 + 1 | 0;
+    var $19 = ($18 | 0) < ($12 | 0);
+    if ($19) {
+      var $crc_012 = $17;
+      var $i_013 = $18;
+      label = 4;
+      break;
+    } else {
+      var $crc_0_lcssa = $17;
+      label = 5;
+      break;
+    }
+   case 5:
+    var $crc_0_lcssa;
+    var $20 = $crc_0_lcssa >>> 8;
+    var $21 = $20 & 255;
+    var $22 = $header + 4 | 0;
+    HEAP8[$22] = $21;
+    var $23 = $crc_0_lcssa & 255;
+    var $24 = $header + 5 | 0;
+    HEAP8[$24] = $23;
+    return;
+  }
+}
+function _compute_flushbits($gfc, $total_bytes_output) {
+  var label = 0;
+  var __stackBase__ = STACKTOP;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = $gfc + 52128 | 0;
+    var $2 = HEAP32[$1 >> 2];
+    var $3 = $gfc + 52124 | 0;
+    var $4 = HEAP32[$3 >> 2];
+    var $5 = $4 - 1 | 0;
+    var $6 = ($4 | 0) == 0;
+    var $_ = $6 ? 255 : $5;
+    var $7 = $gfc + 39836 + $_ * 48 | 0;
+    var $8 = HEAP32[$7 >> 2];
+    var $9 = $gfc + 292 | 0;
+    var $10 = HEAP32[$9 >> 2];
+    var $11 = $8 - $10 | 0;
+    HEAP32[$total_bytes_output >> 2] = $11;
+    var $12 = ($11 | 0) > -1;
+    if ($12) {
+      label = 3;
+      break;
+    } else {
+      var $flushbits_0 = $11;
+      label = 4;
+      break;
+    }
+   case 3:
+    var $14 = 1 - $2 | 0;
+    var $15 = $14 + $_ | 0;
+    var $16 = ($_ | 0) < ($2 | 0);
+    var $17 = $15 + 256 | 0;
+    var $remaining_headers_0 = $16 ? $17 : $15;
+    var $18 = $remaining_headers_0 << 3;
+    var $19 = $gfc + 24 | 0;
+    var $20 = HEAP32[$19 >> 2];
+    var $21 = $18 * $20 & -1;
+    var $22 = $11 - $21 | 0;
+    var $flushbits_0 = $22;
+    label = 4;
+    break;
+   case 4:
+    var $flushbits_0;
+    var $24 = _getframebits($gfc);
+    var $25 = $24 + $flushbits_0 | 0;
+    var $26 = HEAP32[$total_bytes_output >> 2];
+    var $27 = $26 + $24 | 0;
+    var $28 = $27 & 7;
+    var $29 = ($27 | 0) / 8 & -1;
+    var $not_ = ($28 | 0) != 0;
+    var $30 = $not_ & 1;
+    var $storemerge = $30 + $29 | 0;
+    HEAP32[$total_bytes_output >> 2] = $storemerge;
+    var $31 = $gfc + 296 | 0;
+    var $32 = HEAP32[$31 >> 2];
+    var $33 = $32 + 1 | 0;
+    var $34 = $33 + $storemerge | 0;
+    HEAP32[$total_bytes_output >> 2] = $34;
+    var $35 = ($25 | 0) < 0;
+    if ($35) {
+      label = 5;
+      break;
+    } else {
+      label = 6;
+      break;
+    }
+   case 5:
+    _lame_errorf($gfc, 5387468, (tempInt = STACKTOP, STACKTOP = STACKTOP + 1 | 0, STACKTOP = STACKTOP + 3 >> 2 << 2, HEAP32[tempInt >> 2] = 0, tempInt));
+    label = 6;
+    break;
+   case 6:
+    STACKTOP = __stackBase__;
+    return $25;
+  }
+}
+function _flush_bitstream($gfc) {
+  var label = 0;
+  var __stackBase__ = STACKTOP;
+  STACKTOP = STACKTOP + 4 | 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $nbytes = __stackBase__;
+    var $1 = _compute_flushbits($gfc, $nbytes);
+    var $2 = ($1 | 0) < 0;
+    if ($2) {
+      label = 4;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 3:
+    _drain_into_ancillary($gfc, $1);
+    var $4 = $gfc + 52136 | 0;
+    HEAP32[$4 >> 2] = 0;
+    var $5 = $gfc + 21312 | 0;
+    HEAP32[$5 >> 2] = 0;
+    label = 4;
+    break;
+   case 4:
+    STACKTOP = __stackBase__;
+    return;
+  }
+}
+function _drain_into_ancillary($gfc, $remainingBits) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = ($remainingBits | 0) > 7;
+    if ($1) {
+      label = 6;
+      break;
+    } else {
+      var $_5_ph = $remainingBits;
+      label = 4;
+      break;
+    }
+   case 3:
+    var $2 = $22 - 32 | 0;
+    var $_5_ph = $2;
+    label = 4;
+    break;
+   case 4:
+    var $_5_ph;
+    var $3 = ($_5_ph | 0) > 0;
+    if ($3) {
+      label = 5;
+      break;
+    } else {
+      label = 13;
+      break;
+    }
+   case 5:
+    var $4 = $gfc + 52132 | 0;
+    var $5 = $gfc + 144 | 0;
+    var $_530 = $_5_ph;
+    label = 12;
+    break;
+   case 6:
+    _putbits2($gfc, 76, 8);
+    var $7 = $remainingBits - 8 | 0;
+    var $8 = ($7 | 0) > 7;
+    if ($8) {
+      label = 7;
+      break;
+    } else {
+      var $_5_ph = $7;
+      label = 4;
+      break;
+    }
+   case 7:
+    _putbits2($gfc, 65, 8);
+    var $10 = $remainingBits - 16 | 0;
+    var $11 = ($10 | 0) > 7;
+    if ($11) {
+      label = 8;
+      break;
+    } else {
+      var $_5_ph = $10;
+      label = 4;
+      break;
+    }
+   case 8:
+    _putbits2($gfc, 77, 8);
+    var $12 = $remainingBits - 24 | 0;
+    var $13 = ($12 | 0) > 7;
+    if ($13) {
+      label = 9;
+      break;
+    } else {
+      var $_5_ph = $12;
+      label = 4;
+      break;
+    }
+   case 9:
+    _putbits2($gfc, 69, 8);
+    var $15 = $remainingBits - 32 | 0;
+    var $16 = ($15 | 0) > 31;
+    if ($16) {
+      label = 10;
+      break;
+    } else {
+      var $_5_ph = $15;
+      label = 4;
+      break;
+    }
+   case 10:
+    var $17 = $remainingBits - 40 | 0;
+    var $18 = $17 >>> 3;
+    var $19 = $18 ^ -1;
+    var $20 = $19 >>> 0 > 4294967290;
+    var $umax = $20 ? $19 : -6;
+    var $21 = $umax << 3;
+    var $22 = $21 + $remainingBits | 0;
+    var $23 = -$umax | 0;
+    var $i_031 = 0;
+    label = 11;
+    break;
+   case 11:
+    var $i_031;
+    var $25 = $i_031 + 5384648 | 0;
+    var $26 = HEAP8[$25];
+    var $27 = $26 << 24 >> 24;
+    _putbits2($gfc, $27, 8);
+    var $28 = $i_031 + 1 | 0;
+    var $exitcond = ($28 | 0) == ($23 | 0);
+    if ($exitcond) {
+      label = 3;
+      break;
+    } else {
+      var $i_031 = $28;
+      label = 11;
+      break;
+    }
+   case 12:
+    var $_530;
+    var $29 = HEAP32[$4 >> 2];
+    _putbits2($gfc, $29, 1);
+    var $30 = HEAP32[$5 >> 2];
+    var $31 = ($30 | 0) == 0;
+    var $32 = $31 & 1;
+    var $33 = HEAP32[$4 >> 2];
+    var $34 = $32 ^ $33;
+    HEAP32[$4 >> 2] = $34;
+    var $35 = $_530 - 1 | 0;
+    var $36 = ($35 | 0) > 0;
+    if ($36) {
+      var $_530 = $35;
+      label = 12;
+      break;
+    } else {
+      label = 13;
+      break;
+    }
+   case 13:
+    return;
+  }
+}
+_drain_into_ancillary["X"] = 1;
+function _add_dummy_byte($gfc, $val, $n) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = ($n | 0) == 0;
+    if ($1) {
+      label = 7;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 3:
+    var $2 = $val & 255;
+    var $_in = $n;
+    label = 5;
+    break;
+   case 4:
+    var $3 = $_in - 1 | 0;
+    var $4 = ($3 | 0) == 0;
+    if ($4) {
+      label = 7;
+      break;
+    } else {
+      var $_in = $3;
+      label = 5;
+      break;
+    }
+   case 5:
+    var $_in;
+    _putbits_noheaders($gfc, $2);
+    var $i_06 = 0;
+    label = 6;
+    break;
+   case 6:
+    var $i_06;
+    var $7 = $gfc + 39836 + $i_06 * 48 | 0;
+    var $8 = HEAP32[$7 >> 2];
+    var $9 = $8 + 8 | 0;
+    HEAP32[$7 >> 2] = $9;
+    var $10 = $i_06 + 1 | 0;
+    var $exitcond = ($10 | 0) == 256;
+    if ($exitcond) {
+      label = 4;
+      break;
+    } else {
+      var $i_06 = $10;
+      label = 6;
+      break;
+    }
+   case 7:
+    return;
+  }
+}
+function _format_bitstream($gfc) {
+  var label = 0;
+  var __stackBase__ = STACKTOP;
+  STACKTOP = STACKTOP + 4 | 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $nbytes = __stackBase__;
+    var $1 = _getframebits($gfc);
+    var $2 = $gfc + 21320 | 0;
+    var $3 = HEAP32[$2 >> 2];
+    _drain_into_ancillary($gfc, $3);
+    _encodeSideInfo2($gfc, $1);
+    var $4 = $gfc + 24 | 0;
+    var $5 = HEAP32[$4 >> 2];
+    var $6 = $5 << 3;
+    var $7 = _writeMainData($gfc);
+    var $8 = $6 + $7 | 0;
+    var $9 = $gfc + 21324 | 0;
+    var $10 = HEAP32[$9 >> 2];
+    _drain_into_ancillary($gfc, $10);
+    var $11 = HEAP32[$9 >> 2];
+    var $12 = $8 + $11 | 0;
+    var $13 = $1 - $12 | 0;
+    var $14 = ($13 | 0) / 8 & -1;
+    var $15 = $gfc + 21312 | 0;
+    var $16 = HEAP32[$15 >> 2];
+    var $17 = $16 + $14 | 0;
+    HEAP32[$15 >> 2] = $17;
+    var $18 = _compute_flushbits($gfc, $nbytes);
+    var $19 = $gfc + 52136 | 0;
+    var $20 = HEAP32[$19 >> 2];
+    var $21 = ($18 | 0) == ($20 | 0);
+    if ($21) {
+      label = 4;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 3:
+    _lame_errorf($gfc, 5387412, (tempInt = STACKTOP, STACKTOP = STACKTOP + 1 | 0, STACKTOP = STACKTOP + 3 >> 2 << 2, HEAP32[tempInt >> 2] = 0, tempInt));
+    label = 4;
+    break;
+   case 4:
+    var $24 = HEAP32[$15 >> 2];
+    var $25 = $24 << 3;
+    var $26 = HEAP32[$19 >> 2];
+    var $27 = ($25 | 0) == ($26 | 0);
+    if ($27) {
+      label = 6;
+      break;
+    } else {
+      label = 5;
+      break;
+    }
+   case 5:
+    var $29 = HEAP32[$9 >> 2];
+    var $30 = HEAP32[$2 >> 2];
+    var $31 = HEAP32[$4 >> 2];
+    var $32 = $31 << 3;
+    var $33 = $12 - $29 | 0;
+    var $34 = $33 - $32 | 0;
+    var $35 = ($12 | 0) % 8;
+    _lame_errorf($gfc, 5385708, (tempInt = STACKTOP, STACKTOP = STACKTOP + 36 | 0, HEAP32[tempInt >> 2] = $25, HEAP32[tempInt + 4 >> 2] = $26, HEAP32[tempInt + 8 >> 2] = $29, HEAP32[tempInt + 12 >> 2] = $30, HEAP32[tempInt + 16 >> 2] = $32, HEAP32[tempInt + 20 >> 2] = $34, HEAP32[tempInt + 24 >> 2] = $12, HEAP32[tempInt + 28 >> 2] = $35, HEAP32[tempInt + 32 >> 2] = $1, tempInt));
+    _lame_errorf($gfc, 5385296, (tempInt = STACKTOP, STACKTOP = STACKTOP + 1 | 0, STACKTOP = STACKTOP + 3 >> 2 << 2, HEAP32[tempInt >> 2] = 0, tempInt));
+    _lame_errorf($gfc, 5384952, (tempInt = STACKTOP, STACKTOP = STACKTOP + 1 | 0, STACKTOP = STACKTOP + 3 >> 2 << 2, HEAP32[tempInt >> 2] = 0, tempInt));
+    _lame_errorf($gfc, 5384476, (tempInt = STACKTOP, STACKTOP = STACKTOP + 1 | 0, STACKTOP = STACKTOP + 3 >> 2 << 2, HEAP32[tempInt >> 2] = 0, tempInt));
+    _lame_errorf($gfc, 5384064, (tempInt = STACKTOP, STACKTOP = STACKTOP + 1 | 0, STACKTOP = STACKTOP + 3 >> 2 << 2, HEAP32[tempInt >> 2] = 0, tempInt));
+    var $36 = HEAP32[$15 >> 2];
+    var $37 = $36 << 3;
+    HEAP32[$19 >> 2] = $37;
+    label = 6;
+    break;
+   case 6:
+    var $39 = $gfc + 292 | 0;
+    var $40 = HEAP32[$39 >> 2];
+    var $41 = ($40 | 0) > 1e9;
+    if ($41) {
+      label = 7;
+      break;
+    } else {
+      label = 10;
+      break;
+    }
+   case 7:
+    var $42 = HEAP32[$39 >> 2];
+    var $i_042 = 0;
+    label = 8;
+    break;
+   case 8:
+    var $i_042;
+    var $44 = $gfc + 39836 + $i_042 * 48 | 0;
+    var $45 = HEAP32[$44 >> 2];
+    var $46 = $45 - $42 | 0;
+    HEAP32[$44 >> 2] = $46;
+    var $47 = $i_042 + 1 | 0;
+    var $exitcond = ($47 | 0) == 256;
+    if ($exitcond) {
+      label = 9;
+      break;
+    } else {
+      var $i_042 = $47;
+      label = 8;
+      break;
+    }
+   case 9:
+    HEAP32[$39 >> 2] = 0;
+    label = 10;
+    break;
+   case 10:
+    STACKTOP = __stackBase__;
+    return 0;
+  }
+}
+_format_bitstream["X"] = 1;
+function _encodeSideInfo2($gfc, $bitsPerFrame) {
+  var label = 0;
+  var __stackBase__ = STACKTOP;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = $gfc + 52124 | 0;
+    var $2 = HEAP32[$1 >> 2];
+    var $3 = $gfc + 39836 + $2 * 48 + 4 | 0;
+    HEAP32[$3 >> 2] = 0;
+    var $4 = HEAP32[$1 >> 2];
+    var $5 = $gfc + 39836 + $4 * 48 + 8 | 0;
+    var $6 = $gfc + 24 | 0;
+    var $7 = HEAP32[$6 >> 2];
+    _memset($5, 0, $7);
+    var $8 = $gfc + 64 | 0;
+    var $9 = HEAP32[$8 >> 2];
+    var $10 = ($9 | 0) < 16e3;
+    if ($10) {
+      label = 3;
+      break;
+    } else {
+      label = 4;
+      break;
+    }
+   case 3:
+    _writeheader($gfc, 4094, 12);
+    label = 5;
+    break;
+   case 4:
+    _writeheader($gfc, 4095, 12);
+    label = 5;
+    break;
+   case 5:
+    var $14 = $gfc + 16 | 0;
+    var $15 = HEAP32[$14 >> 2];
+    _writeheader($gfc, $15, 1);
+    _writeheader($gfc, 1, 2);
+    var $16 = $gfc + 160 | 0;
+    var $17 = HEAP32[$16 >> 2];
+    var $18 = ($17 | 0) == 0;
+    var $19 = $18 & 1;
+    _writeheader($gfc, $19, 1);
+    var $20 = $gfc + 84740 | 0;
+    var $21 = HEAP32[$20 >> 2];
+    _writeheader($gfc, $21, 4);
+    var $22 = $gfc + 20 | 0;
+    var $23 = HEAP32[$22 >> 2];
+    _writeheader($gfc, $23, 2);
+    var $24 = $gfc + 84748 | 0;
+    var $25 = HEAP32[$24 >> 2];
+    _writeheader($gfc, $25, 1);
+    var $26 = $gfc + 172 | 0;
+    var $27 = HEAP32[$26 >> 2];
+    _writeheader($gfc, $27, 1);
+    var $28 = $gfc + 180 | 0;
+    var $29 = HEAP32[$28 >> 2];
+    _writeheader($gfc, $29, 2);
+    var $30 = $gfc + 84752 | 0;
+    var $31 = HEAP32[$30 >> 2];
+    _writeheader($gfc, $31, 2);
+    var $32 = $gfc + 164 | 0;
+    var $33 = HEAP32[$32 >> 2];
+    _writeheader($gfc, $33, 1);
+    var $34 = $gfc + 168 | 0;
+    var $35 = HEAP32[$34 >> 2];
+    _writeheader($gfc, $35, 1);
+    var $36 = $gfc + 176 | 0;
+    var $37 = HEAP32[$36 >> 2];
+    _writeheader($gfc, $37, 2);
+    var $38 = HEAP32[$16 >> 2];
+    var $39 = ($38 | 0) == 0;
+    if ($39) {
+      label = 7;
+      break;
+    } else {
+      label = 6;
+      break;
+    }
+   case 6:
+    _writeheader($gfc, 0, 16);
+    label = 7;
+    break;
+   case 7:
+    var $42 = HEAP32[$14 >> 2];
+    var $43 = ($42 | 0) == 1;
+    var $44 = $gfc + 21312 | 0;
+    var $45 = HEAP32[$44 >> 2];
+    if ($43) {
+      label = 8;
+      break;
+    } else {
+      label = 30;
+      break;
+    }
+   case 8:
+    _writeheader($gfc, $45, 9);
+    var $47 = $gfc + 72 | 0;
+    var $48 = HEAP32[$47 >> 2];
+    var $49 = ($48 | 0) == 2;
+    var $50 = $gfc + 21316 | 0;
+    var $51 = HEAP32[$50 >> 2];
+    if ($49) {
+      label = 9;
+      break;
+    } else {
+      label = 10;
+      break;
+    }
+   case 9:
+    _writeheader($gfc, $51, 3);
+    label = 11;
+    break;
+   case 10:
+    _writeheader($gfc, $51, 5);
+    label = 11;
+    break;
+   case 11:
+    var $54 = HEAP32[$47 >> 2];
+    var $55 = ($54 | 0) > 0;
+    if ($55) {
+      var $ch_0181 = 0;
+      label = 12;
+      break;
+    } else {
+      var $gr_0176 = 0;
+      var $67 = $54;
+      label = 14;
+      break;
+    }
+   case 12:
+    var $ch_0181;
+    var $56 = $gfc + 21328 + ($ch_0181 << 4) | 0;
+    var $57 = HEAP32[$56 >> 2];
+    _writeheader($gfc, $57, 1);
+    var $58 = $gfc + 21328 + ($ch_0181 << 4) + 4 | 0;
+    var $59 = HEAP32[$58 >> 2];
+    _writeheader($gfc, $59, 1);
+    var $60 = $gfc + 21328 + ($ch_0181 << 4) + 8 | 0;
+    var $61 = HEAP32[$60 >> 2];
+    _writeheader($gfc, $61, 1);
+    var $62 = $gfc + 21328 + ($ch_0181 << 4) + 12 | 0;
+    var $63 = HEAP32[$62 >> 2];
+    _writeheader($gfc, $63, 1);
+    var $64 = $ch_0181 + 1 | 0;
+    var $65 = HEAP32[$47 >> 2];
+    var $66 = ($64 | 0) < ($65 | 0);
+    if ($66) {
+      var $ch_0181 = $64;
+      label = 12;
+      break;
+    } else {
+      var $gr_0176 = 0;
+      var $67 = $65;
+      label = 14;
+      break;
+    }
+   case 13:
+    var $_pr = HEAP32[$47 >> 2];
+    var $gr_0176 = $139;
+    var $67 = $_pr;
+    label = 14;
+    break;
+   case 14:
+    var $67;
+    var $gr_0176;
+    var $68 = ($67 | 0) > 0;
+    if ($68) {
+      var $ch_1173 = 0;
+      label = 15;
+      break;
+    } else {
+      label = 29;
+      break;
+    }
+   case 15:
+    var $ch_1173;
+    var $69 = $gfc + 304 + $gr_0176 * 10504 + $ch_1173 * 5252 + 4768 | 0;
+    var $70 = HEAP32[$69 >> 2];
+    var $71 = $gfc + 304 + $gr_0176 * 10504 + $ch_1173 * 5252 + 4844 | 0;
+    var $72 = HEAP32[$71 >> 2];
+    var $73 = $72 + $70 | 0;
+    _writeheader($gfc, $73, 12);
+    var $74 = $gfc + 304 + $gr_0176 * 10504 + $ch_1173 * 5252 + 4772 | 0;
+    var $75 = HEAP32[$74 >> 2];
+    var $76 = ($75 | 0) / 2 & -1;
+    _writeheader($gfc, $76, 9);
+    var $77 = $gfc + 304 + $gr_0176 * 10504 + $ch_1173 * 5252 + 4780 | 0;
+    var $78 = HEAP32[$77 >> 2];
+    _writeheader($gfc, $78, 8);
+    var $79 = $gfc + 304 + $gr_0176 * 10504 + $ch_1173 * 5252 + 4784 | 0;
+    var $80 = HEAP32[$79 >> 2];
+    _writeheader($gfc, $80, 4);
+    var $81 = $gfc + 304 + $gr_0176 * 10504 + $ch_1173 * 5252 + 4788 | 0;
+    var $82 = HEAP32[$81 >> 2];
+    var $83 = ($82 | 0) == 0;
+    if ($83) {
+      label = 21;
+      break;
+    } else {
+      label = 16;
+      break;
+    }
+   case 16:
+    _writeheader($gfc, 1, 1);
+    var $85 = HEAP32[$81 >> 2];
+    _writeheader($gfc, $85, 2);
+    var $86 = $gfc + 304 + $gr_0176 * 10504 + $ch_1173 * 5252 + 4792 | 0;
+    var $87 = HEAP32[$86 >> 2];
+    _writeheader($gfc, $87, 1);
+    var $88 = $gfc + 304 + $gr_0176 * 10504 + $ch_1173 * 5252 + 4796 | 0;
+    var $89 = HEAP32[$88 >> 2];
+    var $90 = ($89 | 0) == 14;
+    if ($90) {
+      label = 17;
+      break;
+    } else {
+      label = 18;
+      break;
+    }
+   case 17:
+    HEAP32[$88 >> 2] = 16;
+    label = 18;
+    break;
+   case 18:
+    var $93 = HEAP32[$88 >> 2];
+    _writeheader($gfc, $93, 5);
+    var $94 = $gfc + 304 + $gr_0176 * 10504 + $ch_1173 * 5252 + 4800 | 0;
+    var $95 = HEAP32[$94 >> 2];
+    var $96 = ($95 | 0) == 14;
+    if ($96) {
+      label = 19;
+      break;
+    } else {
+      label = 20;
+      break;
+    }
+   case 19:
+    HEAP32[$94 >> 2] = 16;
+    label = 20;
+    break;
+   case 20:
+    var $99 = HEAP32[$94 >> 2];
+    _writeheader($gfc, $99, 5);
+    var $100 = $gfc + 304 + $gr_0176 * 10504 + $ch_1173 * 5252 + 4808 | 0;
+    var $101 = HEAP32[$100 >> 2];
+    _writeheader($gfc, $101, 3);
+    var $102 = $gfc + 304 + $gr_0176 * 10504 + $ch_1173 * 5252 + 4812 | 0;
+    var $103 = HEAP32[$102 >> 2];
+    _writeheader($gfc, $103, 3);
+    var $104 = $gfc + 304 + $gr_0176 * 10504 + $ch_1173 * 5252 + 4816 | 0;
+    var $105 = HEAP32[$104 >> 2];
+    _writeheader($gfc, $105, 3);
+    label = 28;
+    break;
+   case 21:
+    _writeheader($gfc, 0, 1);
+    var $107 = $gfc + 304 + $gr_0176 * 10504 + $ch_1173 * 5252 + 4796 | 0;
+    var $108 = HEAP32[$107 >> 2];
+    var $109 = ($108 | 0) == 14;
+    if ($109) {
+      label = 22;
+      break;
+    } else {
+      label = 23;
+      break;
+    }
+   case 22:
+    HEAP32[$107 >> 2] = 16;
+    label = 23;
+    break;
+   case 23:
+    var $112 = HEAP32[$107 >> 2];
+    _writeheader($gfc, $112, 5);
+    var $113 = $gfc + 304 + $gr_0176 * 10504 + $ch_1173 * 5252 + 4800 | 0;
+    var $114 = HEAP32[$113 >> 2];
+    var $115 = ($114 | 0) == 14;
+    if ($115) {
+      label = 24;
+      break;
+    } else {
+      label = 25;
+      break;
+    }
+   case 24:
+    HEAP32[$113 >> 2] = 16;
+    label = 25;
+    break;
+   case 25:
+    var $118 = HEAP32[$113 >> 2];
+    _writeheader($gfc, $118, 5);
+    var $119 = $gfc + 304 + $gr_0176 * 10504 + $ch_1173 * 5252 + 4804 | 0;
+    var $120 = HEAP32[$119 >> 2];
+    var $121 = ($120 | 0) == 14;
+    if ($121) {
+      label = 26;
+      break;
+    } else {
+      label = 27;
+      break;
+    }
+   case 26:
+    HEAP32[$119 >> 2] = 16;
+    label = 27;
+    break;
+   case 27:
+    var $124 = HEAP32[$119 >> 2];
+    _writeheader($gfc, $124, 5);
+    var $125 = $gfc + 304 + $gr_0176 * 10504 + $ch_1173 * 5252 + 4824 | 0;
+    var $126 = HEAP32[$125 >> 2];
+    _writeheader($gfc, $126, 4);
+    var $127 = $gfc + 304 + $gr_0176 * 10504 + $ch_1173 * 5252 + 4828 | 0;
+    var $128 = HEAP32[$127 >> 2];
+    _writeheader($gfc, $128, 3);
+    label = 28;
+    break;
+   case 28:
+    var $130 = $gfc + 304 + $gr_0176 * 10504 + $ch_1173 * 5252 + 4832 | 0;
+    var $131 = HEAP32[$130 >> 2];
+    _writeheader($gfc, $131, 1);
+    var $132 = $gfc + 304 + $gr_0176 * 10504 + $ch_1173 * 5252 + 4836 | 0;
+    var $133 = HEAP32[$132 >> 2];
+    _writeheader($gfc, $133, 1);
+    var $134 = $gfc + 304 + $gr_0176 * 10504 + $ch_1173 * 5252 + 4840 | 0;
+    var $135 = HEAP32[$134 >> 2];
+    _writeheader($gfc, $135, 1);
+    var $136 = $ch_1173 + 1 | 0;
+    var $137 = HEAP32[$47 >> 2];
+    var $138 = ($136 | 0) < ($137 | 0);
+    if ($138) {
+      var $ch_1173 = $136;
+      label = 15;
+      break;
+    } else {
+      label = 29;
+      break;
+    }
+   case 29:
+    var $139 = $gr_0176 + 1 | 0;
+    var $exitcond = ($139 | 0) == 2;
+    if ($exitcond) {
+      label = 45;
+      break;
+    } else {
+      label = 13;
+      break;
+    }
+   case 30:
+    _writeheader($gfc, $45, 8);
+    var $141 = $gfc + 21316 | 0;
+    var $142 = HEAP32[$141 >> 2];
+    var $143 = $gfc + 72 | 0;
+    var $144 = HEAP32[$143 >> 2];
+    _writeheader($gfc, $142, $144);
+    var $145 = HEAP32[$143 >> 2];
+    var $146 = ($145 | 0) > 0;
+    if ($146) {
+      var $ch_2183 = 0;
+      label = 31;
+      break;
+    } else {
+      label = 45;
+      break;
+    }
+   case 31:
+    var $ch_2183;
+    var $147 = $gfc + 304 + $ch_2183 * 5252 + 4768 | 0;
+    var $148 = HEAP32[$147 >> 2];
+    var $149 = $gfc + 304 + $ch_2183 * 5252 + 4844 | 0;
+    var $150 = HEAP32[$149 >> 2];
+    var $151 = $150 + $148 | 0;
+    _writeheader($gfc, $151, 12);
+    var $152 = $gfc + 304 + $ch_2183 * 5252 + 4772 | 0;
+    var $153 = HEAP32[$152 >> 2];
+    var $154 = ($153 | 0) / 2 & -1;
+    _writeheader($gfc, $154, 9);
+    var $155 = $gfc + 304 + $ch_2183 * 5252 + 4780 | 0;
+    var $156 = HEAP32[$155 >> 2];
+    _writeheader($gfc, $156, 8);
+    var $157 = $gfc + 304 + $ch_2183 * 5252 + 4784 | 0;
+    var $158 = HEAP32[$157 >> 2];
+    _writeheader($gfc, $158, 9);
+    var $159 = $gfc + 304 + $ch_2183 * 5252 + 4788 | 0;
+    var $160 = HEAP32[$159 >> 2];
+    var $161 = ($160 | 0) == 0;
+    if ($161) {
+      label = 37;
+      break;
+    } else {
+      label = 32;
+      break;
+    }
+   case 32:
+    _writeheader($gfc, 1, 1);
+    var $163 = HEAP32[$159 >> 2];
+    _writeheader($gfc, $163, 2);
+    var $164 = $gfc + 304 + $ch_2183 * 5252 + 4792 | 0;
+    var $165 = HEAP32[$164 >> 2];
+    _writeheader($gfc, $165, 1);
+    var $166 = $gfc + 304 + $ch_2183 * 5252 + 4796 | 0;
+    var $167 = HEAP32[$166 >> 2];
+    var $168 = ($167 | 0) == 14;
+    if ($168) {
+      label = 33;
+      break;
+    } else {
+      label = 34;
+      break;
+    }
+   case 33:
+    HEAP32[$166 >> 2] = 16;
+    label = 34;
+    break;
+   case 34:
+    var $171 = HEAP32[$166 >> 2];
+    _writeheader($gfc, $171, 5);
+    var $172 = $gfc + 304 + $ch_2183 * 5252 + 4800 | 0;
+    var $173 = HEAP32[$172 >> 2];
+    var $174 = ($173 | 0) == 14;
+    if ($174) {
+      label = 35;
+      break;
+    } else {
+      label = 36;
+      break;
+    }
+   case 35:
+    HEAP32[$172 >> 2] = 16;
+    label = 36;
+    break;
+   case 36:
+    var $177 = HEAP32[$172 >> 2];
+    _writeheader($gfc, $177, 5);
+    var $178 = $gfc + 304 + $ch_2183 * 5252 + 4808 | 0;
+    var $179 = HEAP32[$178 >> 2];
+    _writeheader($gfc, $179, 3);
+    var $180 = $gfc + 304 + $ch_2183 * 5252 + 4812 | 0;
+    var $181 = HEAP32[$180 >> 2];
+    _writeheader($gfc, $181, 3);
+    var $182 = $gfc + 304 + $ch_2183 * 5252 + 4816 | 0;
+    var $183 = HEAP32[$182 >> 2];
+    _writeheader($gfc, $183, 3);
+    label = 44;
+    break;
+   case 37:
+    _writeheader($gfc, 0, 1);
+    var $185 = $gfc + 304 + $ch_2183 * 5252 + 4796 | 0;
+    var $186 = HEAP32[$185 >> 2];
+    var $187 = ($186 | 0) == 14;
+    if ($187) {
+      label = 38;
+      break;
+    } else {
+      label = 39;
+      break;
+    }
+   case 38:
+    HEAP32[$185 >> 2] = 16;
+    label = 39;
+    break;
+   case 39:
+    var $190 = HEAP32[$185 >> 2];
+    _writeheader($gfc, $190, 5);
+    var $191 = $gfc + 304 + $ch_2183 * 5252 + 4800 | 0;
+    var $192 = HEAP32[$191 >> 2];
+    var $193 = ($192 | 0) == 14;
+    if ($193) {
+      label = 40;
+      break;
+    } else {
+      label = 41;
+      break;
+    }
+   case 40:
+    HEAP32[$191 >> 2] = 16;
+    label = 41;
+    break;
+   case 41:
+    var $196 = HEAP32[$191 >> 2];
+    _writeheader($gfc, $196, 5);
+    var $197 = $gfc + 304 + $ch_2183 * 5252 + 4804 | 0;
+    var $198 = HEAP32[$197 >> 2];
+    var $199 = ($198 | 0) == 14;
+    if ($199) {
+      label = 42;
+      break;
+    } else {
+      label = 43;
+      break;
+    }
+   case 42:
+    HEAP32[$197 >> 2] = 16;
+    label = 43;
+    break;
+   case 43:
+    var $202 = HEAP32[$197 >> 2];
+    _writeheader($gfc, $202, 5);
+    var $203 = $gfc + 304 + $ch_2183 * 5252 + 4824 | 0;
+    var $204 = HEAP32[$203 >> 2];
+    _writeheader($gfc, $204, 4);
+    var $205 = $gfc + 304 + $ch_2183 * 5252 + 4828 | 0;
+    var $206 = HEAP32[$205 >> 2];
+    _writeheader($gfc, $206, 3);
+    label = 44;
+    break;
+   case 44:
+    var $208 = $gfc + 304 + $ch_2183 * 5252 + 4836 | 0;
+    var $209 = HEAP32[$208 >> 2];
+    _writeheader($gfc, $209, 1);
+    var $210 = $gfc + 304 + $ch_2183 * 5252 + 4840 | 0;
+    var $211 = HEAP32[$210 >> 2];
+    _writeheader($gfc, $211, 1);
+    var $212 = $ch_2183 + 1 | 0;
+    var $213 = HEAP32[$143 >> 2];
+    var $214 = ($212 | 0) < ($213 | 0);
+    if ($214) {
+      var $ch_2183 = $212;
+      label = 31;
+      break;
+    } else {
+      label = 45;
+      break;
+    }
+   case 45:
+    var $215 = HEAP32[$16 >> 2];
+    var $216 = ($215 | 0) == 0;
+    if ($216) {
+      label = 47;
+      break;
+    } else {
+      label = 46;
+      break;
+    }
+   case 46:
+    var $218 = HEAP32[$1 >> 2];
+    var $219 = $gfc + 39836 + $218 * 48 + 8 | 0;
+    _CRC_writeheader($gfc, $219);
+    label = 47;
+    break;
+   case 47:
+    var $221 = HEAP32[$1 >> 2];
+    var $222 = $221 + 1 | 0;
+    var $223 = $222 & 255;
+    HEAP32[$1 >> 2] = $223;
+    var $224 = $gfc + 39836 + $221 * 48 | 0;
+    var $225 = HEAP32[$224 >> 2];
+    var $226 = $225 + $bitsPerFrame | 0;
+    var $227 = $gfc + 39836 + $223 * 48 | 0;
+    HEAP32[$227 >> 2] = $226;
+    var $228 = HEAP32[$1 >> 2];
+    var $229 = $gfc + 52128 | 0;
+    var $230 = HEAP32[$229 >> 2];
+    var $231 = ($228 | 0) == ($230 | 0);
+    if ($231) {
+      label = 48;
+      break;
+    } else {
+      label = 49;
+      break;
+    }
+   case 48:
+    _lame_errorf($gfc, 5383632, (tempInt = STACKTOP, STACKTOP = STACKTOP + 1 | 0, STACKTOP = STACKTOP + 3 >> 2 << 2, HEAP32[tempInt >> 2] = 0, tempInt));
+    label = 49;
+    break;
+   case 49:
+    STACKTOP = __stackBase__;
+    return;
+  }
+}
+_encodeSideInfo2["X"] = 1;
+function _writeheader($gfc, $val, $j) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = $gfc + 52124 | 0;
+    var $2 = HEAP32[$1 >> 2];
+    var $3 = $gfc + 39836 + $2 * 48 + 4 | 0;
+    var $4 = HEAP32[$3 >> 2];
+    var $5 = ($j | 0) > 0;
+    if ($5) {
+      var $ptr_019 = $4;
+      var $_020 = $j;
+      label = 3;
+      break;
+    } else {
+      var $ptr_0_lcssa = $4;
+      label = 4;
+      break;
+    }
+   case 3:
+    var $_020;
+    var $ptr_019;
+    var $6 = $ptr_019 & 7;
+    var $7 = 8 - $6 | 0;
+    var $8 = ($_020 | 0) < ($7 | 0);
+    var $_0_ = $8 ? $_020 : $7;
+    var $9 = $_020 - $_0_ | 0;
+    var $10 = $val >> $9;
+    var $11 = $7 - $_0_ | 0;
+    var $12 = $10 << $11;
+    var $13 = $ptr_019 >> 3;
+    var $14 = HEAP32[$1 >> 2];
+    var $15 = $gfc + 39836 + $14 * 48 + 8 + $13 | 0;
+    var $16 = HEAP8[$15];
+    var $17 = $16 & 255;
+    var $18 = $17 | $12;
+    var $19 = $18 & 255;
+    HEAP8[$15] = $19;
+    var $20 = $_0_ + $ptr_019 | 0;
+    var $21 = ($9 | 0) > 0;
+    if ($21) {
+      var $ptr_019 = $20;
+      var $_020 = $9;
+      label = 3;
+      break;
+    } else {
+      var $ptr_0_lcssa = $20;
+      label = 4;
+      break;
+    }
+   case 4:
+    var $ptr_0_lcssa;
+    var $22 = HEAP32[$1 >> 2];
+    var $23 = $gfc + 39836 + $22 * 48 + 4 | 0;
+    HEAP32[$23 >> 2] = $ptr_0_lcssa;
+    return;
+  }
+}
+function _writeMainData($gfc) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = $gfc + 16 | 0;
+    var $2 = HEAP32[$1 >> 2];
+    var $3 = ($2 | 0) == 1;
+    var $4 = $gfc + 72 | 0;
+    if ($3) {
+      var $tot_bits_0113 = 0;
+      var $gr_0114 = 0;
+      label = 4;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 3:
+    var $5 = HEAP32[$4 >> 2];
+    var $6 = ($5 | 0) > 0;
+    if ($6) {
+      var $tot_bits_2142 = 0;
+      var $ch_1143 = 0;
+      label = 18;
+      break;
+    } else {
+      var $tot_bits_3 = 0;
+      label = 30;
+      break;
+    }
+   case 4:
+    var $gr_0114;
+    var $tot_bits_0113;
+    var $7 = HEAP32[$4 >> 2];
+    var $8 = ($7 | 0) > 0;
+    if ($8) {
+      var $tot_bits_1104 = $tot_bits_0113;
+      var $ch_0105 = 0;
+      label = 5;
+      break;
+    } else {
+      var $tot_bits_1_lcssa = $tot_bits_0113;
+      label = 17;
+      break;
+    }
+   case 5:
+    var $ch_0105;
+    var $tot_bits_1104;
+    var $9 = $gfc + 304 + $gr_0114 * 10504 + $ch_0105 * 5252 | 0;
+    var $10 = $gfc + 304 + $gr_0114 * 10504 + $ch_0105 * 5252 + 4784 | 0;
+    var $11 = HEAP32[$10 >> 2];
+    var $12 = 5254620 + ($11 << 2) | 0;
+    var $13 = HEAP32[$12 >> 2];
+    var $14 = 5254492 + ($11 << 2) | 0;
+    var $15 = HEAP32[$14 >> 2];
+    var $16 = $gfc + 304 + $gr_0114 * 10504 + $ch_0105 * 5252 + 4868 | 0;
+    var $17 = HEAP32[$16 >> 2];
+    var $18 = ($17 | 0) > 0;
+    if ($18) {
+      var $data_bits_097 = 0;
+      var $sfb_098 = 0;
+      label = 6;
+      break;
+    } else {
+      var $data_bits_0_lcssa = 0;
+      var $sfb_0_lcssa = 0;
+      label = 9;
+      break;
+    }
+   case 6:
+    var $sfb_098;
+    var $data_bits_097;
+    var $19 = $gfc + 304 + $gr_0114 * 10504 + $ch_0105 * 5252 + 4608 + ($sfb_098 << 2) | 0;
+    var $20 = HEAP32[$19 >> 2];
+    var $21 = ($20 | 0) == -1;
+    if ($21) {
+      var $data_bits_1 = $data_bits_097;
+      label = 8;
+      break;
+    } else {
+      label = 7;
+      break;
+    }
+   case 7:
+    _putbits2($gfc, $20, $13);
+    var $23 = $data_bits_097 + $13 | 0;
+    var $data_bits_1 = $23;
+    label = 8;
+    break;
+   case 8:
+    var $data_bits_1;
+    var $25 = $sfb_098 + 1 | 0;
+    var $26 = HEAP32[$16 >> 2];
+    var $27 = ($25 | 0) < ($26 | 0);
+    if ($27) {
+      var $data_bits_097 = $data_bits_1;
+      var $sfb_098 = $25;
+      label = 6;
+      break;
+    } else {
+      var $data_bits_0_lcssa = $data_bits_1;
+      var $sfb_0_lcssa = $25;
+      label = 9;
+      break;
+    }
+   case 9:
+    var $sfb_0_lcssa;
+    var $data_bits_0_lcssa;
+    var $28 = $gfc + 304 + $gr_0114 * 10504 + $ch_0105 * 5252 + 4860 | 0;
+    var $29 = HEAP32[$28 >> 2];
+    var $30 = ($sfb_0_lcssa | 0) < ($29 | 0);
+    if ($30) {
+      var $data_bits_2100 = $data_bits_0_lcssa;
+      var $sfb_1101 = $sfb_0_lcssa;
+      label = 10;
+      break;
+    } else {
+      var $data_bits_2_lcssa = $data_bits_0_lcssa;
+      label = 13;
+      break;
+    }
+   case 10:
+    var $sfb_1101;
+    var $data_bits_2100;
+    var $31 = $gfc + 304 + $gr_0114 * 10504 + $ch_0105 * 5252 + 4608 + ($sfb_1101 << 2) | 0;
+    var $32 = HEAP32[$31 >> 2];
+    var $33 = ($32 | 0) == -1;
+    if ($33) {
+      var $data_bits_3 = $data_bits_2100;
+      label = 12;
+      break;
+    } else {
+      label = 11;
+      break;
+    }
+   case 11:
+    _putbits2($gfc, $32, $15);
+    var $35 = $data_bits_2100 + $15 | 0;
+    var $data_bits_3 = $35;
+    label = 12;
+    break;
+   case 12:
+    var $data_bits_3;
+    var $37 = $sfb_1101 + 1 | 0;
+    var $38 = HEAP32[$28 >> 2];
+    var $39 = ($37 | 0) < ($38 | 0);
+    if ($39) {
+      var $data_bits_2100 = $data_bits_3;
+      var $sfb_1101 = $37;
+      label = 10;
+      break;
+    } else {
+      var $data_bits_2_lcssa = $data_bits_3;
+      label = 13;
+      break;
+    }
+   case 13:
+    var $data_bits_2_lcssa;
+    var $40 = $gfc + 304 + $gr_0114 * 10504 + $ch_0105 * 5252 + 4788 | 0;
+    var $41 = HEAP32[$40 >> 2];
+    var $42 = ($41 | 0) == 2;
+    if ($42) {
+      label = 14;
+      break;
+    } else {
+      label = 15;
+      break;
+    }
+   case 14:
+    var $44 = _ShortHuffmancodebits($gfc, $9);
+    var $_pn = $44;
+    label = 16;
+    break;
+   case 15:
+    var $46 = _LongHuffmancodebits($gfc, $9);
+    var $_pn = $46;
+    label = 16;
+    break;
+   case 16:
+    var $_pn;
+    var $48 = _huffman_coder_count1($gfc, $9);
+    var $data_bits_4 = $data_bits_2_lcssa + $tot_bits_1104 | 0;
+    var $49 = $data_bits_4 + $_pn | 0;
+    var $50 = $49 + $48 | 0;
+    var $51 = $ch_0105 + 1 | 0;
+    var $52 = HEAP32[$4 >> 2];
+    var $53 = ($51 | 0) < ($52 | 0);
+    if ($53) {
+      var $tot_bits_1104 = $50;
+      var $ch_0105 = $51;
+      label = 5;
+      break;
+    } else {
+      var $tot_bits_1_lcssa = $50;
+      label = 17;
+      break;
+    }
+   case 17:
+    var $tot_bits_1_lcssa;
+    var $54 = $gr_0114 + 1 | 0;
+    var $exitcond = ($54 | 0) == 2;
+    if ($exitcond) {
+      var $tot_bits_3 = $tot_bits_1_lcssa;
+      label = 30;
+      break;
+    } else {
+      var $tot_bits_0113 = $tot_bits_1_lcssa;
+      var $gr_0114 = $54;
+      label = 4;
+      break;
+    }
+   case 18:
+    var $ch_1143;
+    var $tot_bits_2142;
+    var $55 = $gfc + 304 + $ch_1143 * 5252 | 0;
+    var $56 = $gfc + 304 + $ch_1143 * 5252 + 4788 | 0;
+    var $57 = HEAP32[$56 >> 2];
+    var $58 = ($57 | 0) == 2;
+    var $59 = $gfc + 304 + $ch_1143 * 5252 + 5188 | 0;
+    if ($58) {
+      var $sfb_partition_0137 = 0;
+      var $scale_bits_0138 = 0;
+      var $sfb_2139 = 0;
+      label = 19;
+      break;
+    } else {
+      label = 25;
+      break;
+    }
+   case 19:
+    var $sfb_2139;
+    var $scale_bits_0138;
+    var $sfb_partition_0137;
+    var $60 = HEAP32[$59 >> 2];
+    var $61 = $60 + ($sfb_partition_0137 << 2) | 0;
+    var $62 = HEAP32[$61 >> 2];
+    var $63 = ($62 | 0) / 3 & -1;
+    var $64 = $gfc + 304 + $ch_1143 * 5252 + 5192 + ($sfb_partition_0137 << 2) | 0;
+    var $65 = HEAP32[$64 >> 2];
+    var $66 = ($62 | 0) > 2;
+    if ($66) {
+      label = 20;
+      break;
+    } else {
+      var $scale_bits_1_lcssa = $scale_bits_0138;
+      var $sfb_3_lcssa = $sfb_2139;
+      label = 23;
+      break;
+    }
+   case 20:
+    var $67 = $65 * 3 & -1;
+    var $68 = ($63 | 0) > 1;
+    var $smax = $68 ? $63 : 1;
+    var $69 = $67 * $smax & -1;
+    var $i_0128 = 0;
+    var $sfb_3130 = $sfb_2139;
+    label = 21;
+    break;
+   case 21:
+    var $sfb_3130;
+    var $i_0128;
+    var $71 = $sfb_3130 * 3 & -1;
+    var $72 = $gfc + 304 + $ch_1143 * 5252 + 4608 + ($71 << 2) | 0;
+    var $73 = HEAP32[$72 >> 2];
+    var $74 = ($73 | 0) > 0;
+    var $_ = $74 ? $73 : 0;
+    _putbits2($gfc, $_, $65);
+    var $75 = $71 + 1 | 0;
+    var $76 = $gfc + 304 + $ch_1143 * 5252 + 4608 + ($75 << 2) | 0;
+    var $77 = HEAP32[$76 >> 2];
+    var $78 = ($77 | 0) > 0;
+    var $79 = $78 ? $77 : 0;
+    _putbits2($gfc, $79, $65);
+    var $80 = $71 + 2 | 0;
+    var $81 = $gfc + 304 + $ch_1143 * 5252 + 4608 + ($80 << 2) | 0;
+    var $82 = HEAP32[$81 >> 2];
+    var $83 = ($82 | 0) > 0;
+    var $_95 = $83 ? $82 : 0;
+    _putbits2($gfc, $_95, $65);
+    var $84 = $i_0128 + 1 | 0;
+    var $85 = $sfb_3130 + 1 | 0;
+    var $86 = ($84 | 0) < ($63 | 0);
+    if ($86) {
+      var $i_0128 = $84;
+      var $sfb_3130 = $85;
+      label = 21;
+      break;
+    } else {
+      label = 22;
+      break;
+    }
+   case 22:
+    var $87 = $sfb_2139 + $smax | 0;
+    var $88 = $scale_bits_0138 + $69 | 0;
+    var $scale_bits_1_lcssa = $88;
+    var $sfb_3_lcssa = $87;
+    label = 23;
+    break;
+   case 23:
+    var $sfb_3_lcssa;
+    var $scale_bits_1_lcssa;
+    var $90 = $sfb_partition_0137 + 1 | 0;
+    var $exitcond154 = ($90 | 0) == 4;
+    if ($exitcond154) {
+      label = 24;
+      break;
+    } else {
+      var $sfb_partition_0137 = $90;
+      var $scale_bits_0138 = $scale_bits_1_lcssa;
+      var $sfb_2139 = $sfb_3_lcssa;
+      label = 19;
+      break;
+    }
+   case 24:
+    var $92 = _ShortHuffmancodebits($gfc, $55);
+    var $data_bits_5 = $92;
+    var $scale_bits_4 = $scale_bits_1_lcssa;
+    label = 29;
+    break;
+   case 25:
+    var $94 = HEAP32[$59 >> 2];
+    var $95 = HEAP32[$94 >> 2];
+    var $96 = $gfc + 304 + $ch_1143 * 5252 + 5192 | 0;
+    var $97 = HEAP32[$96 >> 2];
+    var $98 = ($95 | 0) > 0;
+    if ($98) {
+      label = 26;
+      break;
+    } else {
+      var $scale_bits_3_lcssa = 0;
+      var $sfb_5_lcssa = 0;
+      label = 28;
+      break;
+    }
+   case 26:
+    var $99 = $97 * $95 & -1;
+    var $i_1116 = 0;
+    var $sfb_5118 = 0;
+    label = 27;
+    break;
+   case 27:
+    var $sfb_5118;
+    var $i_1116;
+    var $101 = $gfc + 304 + $ch_1143 * 5252 + 4608 + ($sfb_5118 << 2) | 0;
+    var $102 = HEAP32[$101 >> 2];
+    var $103 = ($102 | 0) > 0;
+    var $_96 = $103 ? $102 : 0;
+    _putbits2($gfc, $_96, $97);
+    var $104 = $i_1116 + 1 | 0;
+    var $105 = $sfb_5118 + 1 | 0;
+    var $exitcond150 = ($104 | 0) == ($95 | 0);
+    if ($exitcond150) {
+      var $scale_bits_3_lcssa = $99;
+      var $sfb_5_lcssa = $95;
+      label = 28;
+      break;
+    } else {
+      var $i_1116 = $104;
+      var $sfb_5118 = $105;
+      label = 27;
+      break;
+    }
+   case 28:
+    var $sfb_5_lcssa;
+    var $scale_bits_3_lcssa;
+    var $106 = HEAP32[$59 >> 2];
+    var $107 = $106 + 4 | 0;
+    var $108 = HEAP32[$107 >> 2];
+    var $109 = $gfc + 304 + $ch_1143 * 5252 + 5196 | 0;
+    var $110 = HEAP32[$109 >> 2];
+    var $111 = ($108 | 0) > 0;
+    if ($111) {
+      label = 31;
+      break;
+    } else {
+      var $scale_bits_3_lcssa_1 = $scale_bits_3_lcssa;
+      var $sfb_5_lcssa_1 = $sfb_5_lcssa;
+      label = 34;
+      break;
+    }
+   case 29:
+    var $scale_bits_4;
+    var $data_bits_5;
+    var $113 = _huffman_coder_count1($gfc, $55);
+    var $114 = $scale_bits_4 + $tot_bits_2142 | 0;
+    var $115 = $114 + $data_bits_5 | 0;
+    var $116 = $115 + $113 | 0;
+    var $117 = $ch_1143 + 1 | 0;
+    var $118 = HEAP32[$4 >> 2];
+    var $119 = ($117 | 0) < ($118 | 0);
+    if ($119) {
+      var $tot_bits_2142 = $116;
+      var $ch_1143 = $117;
+      label = 18;
+      break;
+    } else {
+      var $tot_bits_3 = $116;
+      label = 30;
+      break;
+    }
+   case 30:
+    var $tot_bits_3;
+    return $tot_bits_3;
+   case 31:
+    var $120 = $110 * $108 & -1;
+    var $i_1116_1 = 0;
+    var $sfb_5118_1 = $sfb_5_lcssa;
+    label = 32;
+    break;
+   case 32:
+    var $sfb_5118_1;
+    var $i_1116_1;
+    var $122 = $gfc + 304 + $ch_1143 * 5252 + 4608 + ($sfb_5118_1 << 2) | 0;
+    var $123 = HEAP32[$122 >> 2];
+    var $124 = ($123 | 0) > 0;
+    var $_96_1 = $124 ? $123 : 0;
+    _putbits2($gfc, $_96_1, $110);
+    var $125 = $i_1116_1 + 1 | 0;
+    var $126 = $sfb_5118_1 + 1 | 0;
+    var $exitcond150_1 = ($125 | 0) == ($108 | 0);
+    if ($exitcond150_1) {
+      label = 33;
+      break;
+    } else {
+      var $i_1116_1 = $125;
+      var $sfb_5118_1 = $126;
+      label = 32;
+      break;
+    }
+   case 33:
+    var $127 = $sfb_5_lcssa + $108 | 0;
+    var $128 = $scale_bits_3_lcssa + $120 | 0;
+    var $scale_bits_3_lcssa_1 = $128;
+    var $sfb_5_lcssa_1 = $127;
+    label = 34;
+    break;
+   case 34:
+    var $sfb_5_lcssa_1;
+    var $scale_bits_3_lcssa_1;
+    var $130 = HEAP32[$59 >> 2];
+    var $131 = $130 + 8 | 0;
+    var $132 = HEAP32[$131 >> 2];
+    var $133 = $gfc + 304 + $ch_1143 * 5252 + 5200 | 0;
+    var $134 = HEAP32[$133 >> 2];
+    var $135 = ($132 | 0) > 0;
+    if ($135) {
+      label = 35;
+      break;
+    } else {
+      var $scale_bits_3_lcssa_2 = $scale_bits_3_lcssa_1;
+      var $sfb_5_lcssa_2 = $sfb_5_lcssa_1;
+      label = 38;
+      break;
+    }
+   case 35:
+    var $136 = $134 * $132 & -1;
+    var $i_1116_2 = 0;
+    var $sfb_5118_2 = $sfb_5_lcssa_1;
+    label = 36;
+    break;
+   case 36:
+    var $sfb_5118_2;
+    var $i_1116_2;
+    var $138 = $gfc + 304 + $ch_1143 * 5252 + 4608 + ($sfb_5118_2 << 2) | 0;
+    var $139 = HEAP32[$138 >> 2];
+    var $140 = ($139 | 0) > 0;
+    var $_96_2 = $140 ? $139 : 0;
+    _putbits2($gfc, $_96_2, $134);
+    var $141 = $i_1116_2 + 1 | 0;
+    var $142 = $sfb_5118_2 + 1 | 0;
+    var $exitcond150_2 = ($141 | 0) == ($132 | 0);
+    if ($exitcond150_2) {
+      label = 37;
+      break;
+    } else {
+      var $i_1116_2 = $141;
+      var $sfb_5118_2 = $142;
+      label = 36;
+      break;
+    }
+   case 37:
+    var $143 = $sfb_5_lcssa_1 + $132 | 0;
+    var $144 = $scale_bits_3_lcssa_1 + $136 | 0;
+    var $scale_bits_3_lcssa_2 = $144;
+    var $sfb_5_lcssa_2 = $143;
+    label = 38;
+    break;
+   case 38:
+    var $sfb_5_lcssa_2;
+    var $scale_bits_3_lcssa_2;
+    var $146 = HEAP32[$59 >> 2];
+    var $147 = $146 + 12 | 0;
+    var $148 = HEAP32[$147 >> 2];
+    var $149 = $gfc + 304 + $ch_1143 * 5252 + 5204 | 0;
+    var $150 = HEAP32[$149 >> 2];
+    var $151 = ($148 | 0) > 0;
+    if ($151) {
+      label = 39;
+      break;
+    } else {
+      var $scale_bits_3_lcssa_3 = $scale_bits_3_lcssa_2;
+      label = 42;
+      break;
+    }
+   case 39:
+    var $152 = $150 * $148 & -1;
+    var $i_1116_3 = 0;
+    var $sfb_5118_3 = $sfb_5_lcssa_2;
+    label = 40;
+    break;
+   case 40:
+    var $sfb_5118_3;
+    var $i_1116_3;
+    var $154 = $gfc + 304 + $ch_1143 * 5252 + 4608 + ($sfb_5118_3 << 2) | 0;
+    var $155 = HEAP32[$154 >> 2];
+    var $156 = ($155 | 0) > 0;
+    var $_96_3 = $156 ? $155 : 0;
+    _putbits2($gfc, $_96_3, $150);
+    var $157 = $i_1116_3 + 1 | 0;
+    var $158 = $sfb_5118_3 + 1 | 0;
+    var $exitcond150_3 = ($157 | 0) == ($148 | 0);
+    if ($exitcond150_3) {
+      label = 41;
+      break;
+    } else {
+      var $i_1116_3 = $157;
+      var $sfb_5118_3 = $158;
+      label = 40;
+      break;
+    }
+   case 41:
+    var $159 = $scale_bits_3_lcssa_2 + $152 | 0;
+    var $scale_bits_3_lcssa_3 = $159;
+    label = 42;
+    break;
+   case 42:
+    var $scale_bits_3_lcssa_3;
+    var $161 = _LongHuffmancodebits($gfc, $55);
+    var $data_bits_5 = $161;
+    var $scale_bits_4 = $scale_bits_3_lcssa_3;
+    label = 29;
+    break;
+  }
+}
+_writeMainData["X"] = 1;
+function _copy_buffer($gfc, $buffer, $size, $mp3data) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = _do_copy_buffer($gfc, $buffer, $size);
+    var $2 = ($1 | 0) < 1;
+    var $3 = ($mp3data | 0) == 0;
+    var $or_cond = $2 | $3;
+    if ($or_cond) {
+      var $_0 = $1;
+      label = 4;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 3:
+    var $5 = $gfc + 85748 | 0;
+    _UpdateMusicCRC($5, $buffer, $1);
+    var $6 = $gfc + 85784 | 0;
+    var $7 = HEAP32[$6 >> 2];
+    var $8 = $7 + $1 | 0;
+    HEAP32[$6 >> 2] = $8;
+    var $9 = _do_gain_analysis($gfc, $buffer, $1);
+    var $_0 = $9;
+    label = 4;
+    break;
+   case 4:
+    var $_0;
+    return $_0;
+  }
+}
+function _do_copy_buffer($gfc, $buffer, $size) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = $gfc + 296 | 0;
+    var $2 = HEAP32[$1 >> 2];
+    var $3 = $2 + 1 | 0;
+    var $4 = ($2 | 0) < 0;
+    if ($4) {
+      var $_0 = 0;
+      label = 5;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 3:
+    var $6 = ($size | 0) != 0;
+    var $7 = ($3 | 0) > ($size | 0);
+    var $or_cond = $6 & $7;
+    if ($or_cond) {
+      var $_0 = -1;
+      label = 5;
+      break;
+    } else {
+      label = 4;
+      break;
+    }
+   case 4:
+    var $9 = $gfc + 284 | 0;
+    var $10 = HEAP32[$9 >> 2];
+    _memcpy($buffer, $10, $3);
+    HEAP32[$1 >> 2] = -1;
+    var $11 = $gfc + 300 | 0;
+    HEAP32[$11 >> 2] = 0;
+    var $_0 = $3;
+    label = 5;
+    break;
+   case 5:
+    var $_0;
+    return $_0;
+  }
+}
+function _do_gain_analysis($gfc, $buffer, $minimum) {
+  var label = 0;
+  var __stackBase__ = STACKTOP;
+  STACKTOP = STACKTOP + 9216 | 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $pcm_buf = __stackBase__;
+    var $1 = $gfc + 136 | 0;
+    var $2 = HEAP32[$1 >> 2];
+    var $3 = ($2 | 0) == 0;
+    if ($3) {
+      var $_0 = $minimum;
+      label = 21;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 3:
+    var $4 = $gfc + 85672 | 0;
+    var $5 = $gfc + 85804 | 0;
+    var $6 = $pcm_buf | 0;
+    var $7 = $pcm_buf + 4608 | 0;
+    var $8 = $gfc + 132 | 0;
+    var $9 = $gfc + 128 | 0;
+    var $10 = $gfc + 72 | 0;
+    var $11 = $gfc + 72 | 0;
+    var $12 = $gfc + 85680 | 0;
+    var $13 = $gfc + 85680 | 0;
+    var $mp3_in_039 = $minimum;
+    label = 4;
+    break;
+   case 4:
+    var $mp3_in_039;
+    var $15 = HEAP32[$5 >> 2];
+    var $16 = _hip_decode1_unclipped($15, $buffer, $mp3_in_039, $6, $7);
+    var $17 = ($16 | 0) == -1;
+    var $_ = $17 ? 0 : $16;
+    var $18 = ($_ | 0) > 0;
+    if ($18) {
+      label = 5;
+      break;
+    } else {
+      label = 20;
+      break;
+    }
+   case 5:
+    var $20 = HEAP32[$8 >> 2];
+    var $21 = ($20 | 0) == 0;
+    if ($21) {
+      label = 18;
+      break;
+    } else {
+      label = 6;
+      break;
+    }
+   case 6:
+    var $22 = ($_ | 0) > 0;
+    if ($22) {
+      var $i_033 = 0;
+      label = 7;
+      break;
+    } else {
+      label = 12;
+      break;
+    }
+   case 7:
+    var $i_033;
+    var $23 = $pcm_buf + ($i_033 << 2) | 0;
+    var $24 = HEAPF32[$23 >> 2];
+    var $25 = HEAPF32[$13 >> 2];
+    var $26 = $24 > $25;
+    if ($26) {
+      label = 8;
+      break;
+    } else {
+      label = 9;
+      break;
+    }
+   case 8:
+    HEAPF32[$13 >> 2] = $24;
+    label = 11;
+    break;
+   case 9:
+    var $29 = -$24;
+    var $30 = $25 < $29;
+    if ($30) {
+      label = 10;
+      break;
+    } else {
+      label = 11;
+      break;
+    }
+   case 10:
+    HEAPF32[$13 >> 2] = $29;
+    label = 11;
+    break;
+   case 11:
+    var $33 = $i_033 + 1 | 0;
+    var $exitcond = ($33 | 0) == ($_ | 0);
+    if ($exitcond) {
+      label = 12;
+      break;
+    } else {
+      var $i_033 = $33;
+      label = 7;
+      break;
+    }
+   case 12:
+    var $34 = HEAP32[$11 >> 2];
+    var $35 = ($34 | 0) > 1;
+    var $36 = ($_ | 0) > 0;
+    var $or_cond = $35 & $36;
+    if ($or_cond) {
+      var $i_135 = 0;
+      label = 13;
+      break;
+    } else {
+      label = 18;
+      break;
+    }
+   case 13:
+    var $i_135;
+    var $37 = $pcm_buf + 4608 + ($i_135 << 2) | 0;
+    var $38 = HEAPF32[$37 >> 2];
+    var $39 = HEAPF32[$12 >> 2];
+    var $40 = $38 > $39;
+    if ($40) {
+      label = 14;
+      break;
+    } else {
+      label = 15;
+      break;
+    }
+   case 14:
+    HEAPF32[$12 >> 2] = $38;
+    label = 17;
+    break;
+   case 15:
+    var $43 = -$38;
+    var $44 = $39 < $43;
+    if ($44) {
+      label = 16;
+      break;
+    } else {
+      label = 17;
+      break;
+    }
+   case 16:
+    HEAPF32[$12 >> 2] = $43;
+    label = 17;
+    break;
+   case 17:
+    var $47 = $i_135 + 1 | 0;
+    var $exitcond40 = ($47 | 0) == ($_ | 0);
+    if ($exitcond40) {
+      label = 18;
+      break;
+    } else {
+      var $i_135 = $47;
+      label = 13;
+      break;
+    }
+   case 18:
+    var $48 = HEAP32[$9 >> 2];
+    var $49 = ($48 | 0) == 0;
+    if ($49) {
+      label = 20;
+      break;
+    } else {
+      label = 19;
+      break;
+    }
+   case 19:
+    var $51 = HEAP32[$4 >> 2];
+    var $52 = HEAP32[$10 >> 2];
+    var $53 = _AnalyzeSamples($51, $6, $7, $_, $52);
+    var $54 = ($53 | 0) == 0;
+    if ($54) {
+      var $_0 = -6;
+      label = 21;
+      break;
+    } else {
+      label = 20;
+      break;
+    }
+   case 20:
+    var $55 = ($_ | 0) == 0;
+    if ($55) {
+      var $_0 = $minimum;
+      label = 21;
+      break;
+    } else {
+      var $mp3_in_039 = 0;
+      label = 4;
+      break;
+    }
+   case 21:
+    var $_0;
+    STACKTOP = __stackBase__;
+    return $_0;
+  }
+}
+_do_gain_analysis["X"] = 1;
+function _init_bit_stream_w($gfc) {
+  HEAP32[$gfc + 52128 >> 2] = 0;
+  HEAP32[$gfc + 52124 >> 2] = 0;
+  HEAP32[$gfc + 39836 >> 2] = 0;
+  HEAP32[$gfc + 284 >> 2] = _malloc(147456);
+  HEAP32[$gfc + 288 >> 2] = 147456;
+  HEAP32[$gfc + 296 >> 2] = -1;
+  HEAP32[$gfc + 300 >> 2] = 0;
+  HEAP32[$gfc + 292 >> 2] = 0;
+  return;
+}
+function _putbits2($gfc, $val, $j) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = $gfc + 284 | 0;
+    var $2 = ($j | 0) > 0;
+    if ($2) {
+      label = 3;
+      break;
+    } else {
+      label = 9;
+      break;
+    }
+   case 3:
+    var $3 = $gfc + 300 | 0;
+    var $4 = $gfc + 296 | 0;
+    var $5 = $gfc + 52128 | 0;
+    var $6 = $gfc + 292 | 0;
+    var $7 = $1 | 0;
+    var $8 = $gfc + 296 | 0;
+    var $9 = $1 | 0;
+    var $10 = $gfc + 292 | 0;
+    var $_024 = $j;
+    label = 4;
+    break;
+   case 4:
+    var $_024;
+    var $12 = HEAP32[$3 >> 2];
+    var $13 = ($12 | 0) == 0;
+    if ($13) {
+      label = 5;
+      break;
+    } else {
+      label = 8;
+      break;
+    }
+   case 5:
+    HEAP32[$3 >> 2] = 8;
+    var $15 = HEAP32[$4 >> 2];
+    var $16 = $15 + 1 | 0;
+    HEAP32[$4 >> 2] = $16;
+    var $17 = HEAP32[$5 >> 2];
+    var $18 = $gfc + 39836 + $17 * 48 | 0;
+    var $19 = HEAP32[$18 >> 2];
+    var $20 = HEAP32[$6 >> 2];
+    var $21 = ($19 | 0) == ($20 | 0);
+    if ($21) {
+      label = 6;
+      break;
+    } else {
+      label = 7;
+      break;
+    }
+   case 6:
+    _putheader_bits($gfc);
+    label = 7;
+    break;
+   case 7:
+    var $24 = HEAP32[$4 >> 2];
+    var $25 = HEAP32[$7 >> 2];
+    var $26 = $25 + $24 | 0;
+    HEAP8[$26] = 0;
+    label = 8;
+    break;
+   case 8:
+    var $28 = HEAP32[$3 >> 2];
+    var $29 = ($_024 | 0) < ($28 | 0);
+    var $_0_ = $29 ? $_024 : $28;
+    var $30 = $_024 - $_0_ | 0;
+    var $31 = $28 - $_0_ | 0;
+    HEAP32[$3 >> 2] = $31;
+    var $32 = $val >> $30;
+    var $33 = $32 << $31;
+    var $34 = HEAP32[$8 >> 2];
+    var $35 = HEAP32[$9 >> 2];
+    var $36 = $35 + $34 | 0;
+    var $37 = HEAP8[$36];
+    var $38 = $37 & 255;
+    var $39 = $33 | $38;
+    var $40 = $39 & 255;
+    HEAP8[$36] = $40;
+    var $41 = HEAP32[$10 >> 2];
+    var $42 = $41 + $_0_ | 0;
+    HEAP32[$10 >> 2] = $42;
+    var $43 = ($30 | 0) > 0;
+    if ($43) {
+      var $_024 = $30;
+      label = 4;
+      break;
+    } else {
+      label = 9;
+      break;
+    }
+   case 9:
+    return;
+  }
+}
+_putbits2["X"] = 1;
+function _ShortHuffmancodebits($gfc, $gi) {
+  var $3 = HEAP32[$gfc + 21464 >> 2] * 3 & -1;
+  var $4 = $gi + 4772 | 0;
+  var $5 = HEAP32[$4 >> 2];
+  var $_ = ($3 | 0) > ($5 | 0) ? $5 : $3;
+  var $9 = _Huffmancode($gfc, HEAP32[$gi + 4796 >> 2], 0, $_, $gi);
+  return _Huffmancode($gfc, HEAP32[$gi + 4800 >> 2], $_, HEAP32[$4 >> 2], $gi) + $9 | 0;
+}
+function _LongHuffmancodebits($gfc, $gi) {
+  var $2 = HEAP32[$gi + 4772 >> 2];
+  var $4 = HEAP32[$gi + 4824 >> 2];
+  var $7 = HEAP32[$gfc + 21360 + ($4 + 1 << 2) >> 2];
+  var $13 = HEAP32[$gfc + 21360 + ($4 + 2 + HEAP32[$gi + 4828 >> 2] << 2) >> 2];
+  var $_ = ($7 | 0) > ($2 | 0) ? $2 : $7;
+  var $region2Start_0 = ($13 | 0) > ($2 | 0) ? $2 : $13;
+  var $18 = _Huffmancode($gfc, HEAP32[$gi + 4796 >> 2], 0, $_, $gi);
+  var $22 = _Huffmancode($gfc, HEAP32[$gi + 4800 >> 2], $_, $region2Start_0, $gi) + $18 | 0;
+  return $22 + _Huffmancode($gfc, HEAP32[$gi + 4804 >> 2], $region2Start_0, $2, $gi) | 0;
+}
+function _huffman_coder_count1($gfc, $gi) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = $gi + 4840 | 0;
+    var $2 = HEAP32[$1 >> 2];
+    var $3 = $2 + 32 | 0;
+    var $4 = $gi + 4772 | 0;
+    var $5 = HEAP32[$4 >> 2];
+    var $6 = $gi + 4776 | 0;
+    var $7 = HEAP32[$6 >> 2];
+    var $8 = $7 - $5 | 0;
+    var $9 = ($8 | 0) > 3;
+    if ($9) {
+      label = 3;
+      break;
+    } else {
+      var $bits_0_lcssa = 0;
+      label = 17;
+      break;
+    }
+   case 3:
+    var $10 = ($8 | 0) / 4 & -1;
+    var $11 = $gi + ($5 << 2) | 0;
+    var $12 = $gi + 2304 + ($5 << 2) | 0;
+    var $13 = 5327264 + ($3 << 4) | 0;
+    var $14 = HEAP32[$13 >> 2];
+    var $15 = 5327268 + ($3 << 4) | 0;
+    var $16 = HEAP32[$15 >> 2];
+    var $i_036 = $10;
+    var $bits_037 = 0;
+    var $ix_038 = $12;
+    var $xr_039 = $11;
+    label = 4;
+    break;
+   case 4:
+    var $xr_039;
+    var $ix_038;
+    var $bits_037;
+    var $i_036;
+    var $18 = HEAP32[$ix_038 >> 2];
+    var $19 = ($18 | 0) == 0;
+    if ($19) {
+      var $p_0 = 0;
+      var $huffbits_0 = 0;
+      label = 7;
+      break;
+    } else {
+      label = 5;
+      break;
+    }
+   case 5:
+    var $21 = HEAPF32[$xr_039 >> 2];
+    var $22 = $21 < 0;
+    if ($22) {
+      label = 6;
+      break;
+    } else {
+      var $p_0 = 8;
+      var $huffbits_0 = 0;
+      label = 7;
+      break;
+    }
+   case 6:
+    var $p_0 = 8;
+    var $huffbits_0 = 1;
+    label = 7;
+    break;
+   case 7:
+    var $huffbits_0;
+    var $p_0;
+    var $25 = $ix_038 + 4 | 0;
+    var $26 = HEAP32[$25 >> 2];
+    var $27 = ($26 | 0) == 0;
+    if ($27) {
+      var $p_1 = $p_0;
+      var $huffbits_1 = $huffbits_0;
+      label = 10;
+      break;
+    } else {
+      label = 8;
+      break;
+    }
+   case 8:
+    var $29 = $p_0 | 4;
+    var $30 = $huffbits_0 << 1;
+    var $31 = $xr_039 + 4 | 0;
+    var $32 = HEAPF32[$31 >> 2];
+    var $33 = $32 < 0;
+    if ($33) {
+      label = 9;
+      break;
+    } else {
+      var $p_1 = $29;
+      var $huffbits_1 = $30;
+      label = 10;
+      break;
+    }
+   case 9:
+    var $35 = $30 | 1;
+    var $p_1 = $29;
+    var $huffbits_1 = $35;
+    label = 10;
+    break;
+   case 10:
+    var $huffbits_1;
+    var $p_1;
+    var $37 = $ix_038 + 8 | 0;
+    var $38 = HEAP32[$37 >> 2];
+    var $39 = ($38 | 0) == 0;
+    if ($39) {
+      var $p_2 = $p_1;
+      var $huffbits_2 = $huffbits_1;
+      label = 13;
+      break;
+    } else {
+      label = 11;
+      break;
+    }
+   case 11:
+    var $41 = $p_1 + 2 | 0;
+    var $42 = $huffbits_1 << 1;
+    var $43 = $xr_039 + 8 | 0;
+    var $44 = HEAPF32[$43 >> 2];
+    var $45 = $44 < 0;
+    if ($45) {
+      label = 12;
+      break;
+    } else {
+      var $p_2 = $41;
+      var $huffbits_2 = $42;
+      label = 13;
+      break;
+    }
+   case 12:
+    var $47 = $42 | 1;
+    var $p_2 = $41;
+    var $huffbits_2 = $47;
+    label = 13;
+    break;
+   case 13:
+    var $huffbits_2;
+    var $p_2;
+    var $49 = $ix_038 + 12 | 0;
+    var $50 = HEAP32[$49 >> 2];
+    var $51 = ($50 | 0) == 0;
+    if ($51) {
+      var $p_3 = $p_2;
+      var $huffbits_3 = $huffbits_2;
+      label = 16;
+      break;
+    } else {
+      label = 14;
+      break;
+    }
+   case 14:
+    var $53 = $p_2 + 1 | 0;
+    var $54 = $huffbits_2 << 1;
+    var $55 = $xr_039 + 12 | 0;
+    var $56 = HEAPF32[$55 >> 2];
+    var $57 = $56 < 0;
+    if ($57) {
+      label = 15;
+      break;
+    } else {
+      var $p_3 = $53;
+      var $huffbits_3 = $54;
+      label = 16;
+      break;
+    }
+   case 15:
+    var $59 = $54 | 1;
+    var $p_3 = $53;
+    var $huffbits_3 = $59;
+    label = 16;
+    break;
+   case 16:
+    var $huffbits_3;
+    var $p_3;
+    var $61 = $ix_038 + 16 | 0;
+    var $62 = $xr_039 + 16 | 0;
+    var $63 = $14 + ($p_3 << 1) | 0;
+    var $64 = HEAP16[$63 >> 1];
+    var $65 = $64 & 65535;
+    var $66 = $65 + $huffbits_3 | 0;
+    var $67 = $16 + $p_3 | 0;
+    var $68 = HEAP8[$67];
+    var $69 = $68 & 255;
+    _putbits2($gfc, $66, $69);
+    var $70 = $16 + $p_3 | 0;
+    var $71 = HEAP8[$70];
+    var $72 = $71 & 255;
+    var $73 = $72 + $bits_037 | 0;
+    var $74 = $i_036 - 1 | 0;
+    var $75 = ($74 | 0) > 0;
+    if ($75) {
+      var $i_036 = $74;
+      var $bits_037 = $73;
+      var $ix_038 = $61;
+      var $xr_039 = $62;
+      label = 4;
+      break;
+    } else {
+      var $bits_0_lcssa = $73;
+      label = 17;
+      break;
+    }
+   case 17:
+    var $bits_0_lcssa;
+    return $bits_0_lcssa;
+  }
+}
+_huffman_coder_count1["X"] = 1;
+function _Huffmancode($gfc, $tableindex, $start, $end, $gi) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = 5327256 + ($tableindex << 4) | 0;
+    var $2 = HEAP32[$1 >> 2];
+    var $3 = ($tableindex | 0) != 0;
+    var $4 = ($start | 0) < ($end | 0);
+    var $or_cond = $3 & $4;
+    if ($or_cond) {
+      label = 3;
+      break;
+    } else {
+      var $_0 = 0;
+      label = 14;
+      break;
+    }
+   case 3:
+    var $5 = HEAP32[$1 >> 2];
+    var $6 = $tableindex >>> 0 > 15;
+    var $7 = $2 & 65535;
+    var $8 = 5327268 + ($tableindex << 4) | 0;
+    var $9 = HEAP32[$8 >> 2];
+    var $10 = 5327264 + ($tableindex << 4) | 0;
+    var $11 = HEAP32[$10 >> 2];
+    var $bits_055 = 0;
+    var $i_056 = $start;
+    label = 4;
+    break;
+   case 4:
+    var $i_056;
+    var $bits_055;
+    var $13 = $gi + 2304 + ($i_056 << 2) | 0;
+    var $14 = HEAP32[$13 >> 2];
+    var $15 = $i_056 + 1 | 0;
+    var $16 = $gi + 2304 + ($15 << 2) | 0;
+    var $17 = HEAP32[$16 >> 2];
+    var $18 = ($14 | 0) == 0;
+    if ($18) {
+      var $ext_1 = 0;
+      var $cbits_0 = 0;
+      label = 6;
+      break;
+    } else {
+      label = 5;
+      break;
+    }
+   case 5:
+    var $20 = $gi + ($i_056 << 2) | 0;
+    var $21 = HEAPF32[$20 >> 2];
+    var $22 = $21 < 0;
+    var $ext_0 = $22 & 1;
+    var $ext_1 = $ext_0;
+    var $cbits_0 = -1;
+    label = 6;
+    break;
+   case 6:
+    var $cbits_0;
+    var $ext_1;
+    if ($6) {
+      label = 7;
+      break;
+    } else {
+      var $x1_1 = $14;
+      var $ext_4 = $ext_1;
+      var $xlen_0 = $5;
+      var $xbits_2 = 0;
+      label = 11;
+      break;
+    }
+   case 7:
+    var $25 = $14 >>> 0 > 14;
+    if ($25) {
+      label = 8;
+      break;
+    } else {
+      var $x1_0 = $14;
+      var $ext_2 = $ext_1;
+      var $xbits_0 = 0;
+      label = 9;
+      break;
+    }
+   case 8:
+    var $27 = $14 << 1;
+    var $28 = $27 + 131042 | 0;
+    var $29 = $28 & 131070;
+    var $30 = $ext_1 | $29;
+    var $x1_0 = 15;
+    var $ext_2 = $30;
+    var $xbits_0 = $7;
+    label = 9;
+    break;
+   case 9:
+    var $xbits_0;
+    var $ext_2;
+    var $x1_0;
+    var $32 = $17 >>> 0 > 14;
+    if ($32) {
+      label = 10;
+      break;
+    } else {
+      var $x1_1 = $x1_0;
+      var $ext_4 = $ext_2;
+      var $xlen_0 = 16;
+      var $xbits_2 = $xbits_0;
+      label = 11;
+      break;
+    }
+   case 10:
+    var $33 = $17 + 65521 | 0;
+    var $34 = $ext_2 << $2;
+    var $35 = $33 & 65535;
+    var $36 = $34 | $35;
+    var $37 = $xbits_0 & 65535;
+    var $38 = $37 + $2 | 0;
+    var $39 = $38 & 65535;
+    var $xbits_246 = $39;
+    var $xlen_048 = 16;
+    var $ext_450 = $36;
+    var $x1_151 = $x1_0;
+    var $x2_153 = 15;
+    label = 12;
+    break;
+   case 11:
+    var $xbits_2;
+    var $xlen_0;
+    var $ext_4;
+    var $x1_1;
+    var $41 = ($17 | 0) == 0;
+    if ($41) {
+      var $ext_6 = $ext_4;
+      var $cbits_1 = $cbits_0;
+      var $xbits_247 = $xbits_2;
+      var $xlen_049 = $xlen_0;
+      var $x1_152 = $x1_1;
+      var $x2_154 = 0;
+      label = 13;
+      break;
+    } else {
+      var $xbits_246 = $xbits_2;
+      var $xlen_048 = $xlen_0;
+      var $ext_450 = $ext_4;
+      var $x1_151 = $x1_1;
+      var $x2_153 = $17;
+      label = 12;
+      break;
+    }
+   case 12:
+    var $x2_153;
+    var $x1_151;
+    var $ext_450;
+    var $xlen_048;
+    var $xbits_246;
+    var $43 = $ext_450 << 1;
+    var $44 = $gi + ($15 << 2) | 0;
+    var $45 = HEAPF32[$44 >> 2];
+    var $46 = $45 < 0;
+    var $47 = $46 & 1;
+    var $ext_5 = $47 | $43;
+    var $48 = $cbits_0 - 1 & 65535;
+    var $ext_6 = $ext_5;
+    var $cbits_1 = $48;
+    var $xbits_247 = $xbits_246;
+    var $xlen_049 = $xlen_048;
+    var $x1_152 = $x1_151;
+    var $x2_154 = $x2_153;
+    label = 13;
+    break;
+   case 13:
+    var $x2_154;
+    var $x1_152;
+    var $xlen_049;
+    var $xbits_247;
+    var $cbits_1;
+    var $ext_6;
+    var $50 = $xlen_049 * $x1_152 & -1;
+    var $51 = $50 + $x2_154 | 0;
+    var $52 = $xbits_247 - $cbits_1 & 65535;
+    var $53 = $9 + $51 | 0;
+    var $54 = HEAP8[$53];
+    var $55 = $54 & 255;
+    var $56 = $55 + $cbits_1 & 65535;
+    var $57 = $11 + ($51 << 1) | 0;
+    var $58 = HEAP16[$57 >> 1];
+    var $59 = $58 & 65535;
+    var $60 = $56 << 16 >> 16;
+    _putbits2($gfc, $59, $60);
+    var $61 = $52 & 65535;
+    _putbits2($gfc, $ext_6, $61);
+    var $62 = $61 + $bits_055 | 0;
+    var $63 = $62 + $60 | 0;
+    var $64 = $i_056 + 2 | 0;
+    var $65 = ($64 | 0) < ($end | 0);
+    if ($65) {
+      var $bits_055 = $63;
+      var $i_056 = $64;
+      label = 4;
+      break;
+    } else {
+      var $_0 = $63;
+      label = 14;
+      break;
+    }
+   case 14:
+    var $_0;
+    return $_0;
+  }
+}
+_Huffmancode["X"] = 1;
+function _putheader_bits($gfc) {
+  var $1 = $gfc + 296 | 0;
+  var $6 = $gfc + 52128 | 0;
+  var $9 = $gfc + 24 | 0;
+  _memcpy(HEAP32[$gfc + 284 >> 2] + HEAP32[$1 >> 2] | 0, $gfc + 39836 + HEAP32[$6 >> 2] * 48 + 8 | 0, HEAP32[$9 >> 2]);
+  HEAP32[$1 >> 2] = HEAP32[$1 >> 2] + HEAP32[$9 >> 2] | 0;
+  var $16 = $gfc + 292 | 0;
+  HEAP32[$16 >> 2] = HEAP32[$16 >> 2] + (HEAP32[$9 >> 2] << 3) | 0;
+  HEAP32[$6 >> 2] = HEAP32[$6 >> 2] + 1 & 255;
+  return;
+}
+function _adjust_ATH($gfc) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = $gfc + 85792 | 0;
+    var $2 = HEAP32[$1 >> 2];
+    var $3 = $2 | 0;
+    var $4 = HEAP32[$3 >> 2];
+    var $5 = ($4 | 0) == 0;
+    if ($5) {
+      label = 3;
+      break;
+    } else {
+      label = 4;
+      break;
+    }
+   case 3:
+    var $7 = $2 + 8 | 0;
+    HEAPF32[$7 >> 2] = 1;
+    label = 22;
+    break;
+   case 4:
+    var $9 = $gfc + 27804 | 0;
+    var $10 = HEAPF32[$9 >> 2];
+    var $11 = $gfc + 27812 | 0;
+    var $12 = HEAPF32[$11 >> 2];
+    var $13 = $gfc + 72 | 0;
+    var $14 = HEAP32[$13 >> 2];
+    var $15 = ($14 | 0) == 2;
+    if ($15) {
+      label = 5;
+      break;
+    } else {
+      var $_pn43 = $12;
+      var $_pn = $10;
+      label = 6;
+      break;
+    }
+   case 5:
+    var $17 = $gfc + 27808 | 0;
+    var $18 = HEAPF32[$17 >> 2];
+    var $19 = $gfc + 27816 | 0;
+    var $20 = HEAPF32[$19 >> 2];
+    var $_pn43 = $20;
+    var $_pn = $18;
+    label = 6;
+    break;
+   case 6:
+    var $_pn;
+    var $_pn43;
+    var $gr2_max_0 = $12 + $_pn43;
+    var $max_pow_0 = $10 + $_pn;
+    var $22 = $gfc + 76 | 0;
+    var $23 = HEAP32[$22 >> 2];
+    var $24 = ($23 | 0) == 2;
+    if ($24) {
+      label = 7;
+      break;
+    } else {
+      var $max_pow_1 = $max_pow_0;
+      label = 8;
+      break;
+    }
+   case 7:
+    var $26 = $max_pow_0 > $gr2_max_0;
+    var $27 = $26 ? $max_pow_0 : $gr2_max_0;
+    var $max_pow_1 = $27;
+    label = 8;
+    break;
+   case 8:
+    var $max_pow_1;
+    var $29 = $max_pow_1 * .5;
+    var $30 = HEAP32[$1 >> 2];
+    var $31 = $30 + 4 | 0;
+    var $32 = HEAPF32[$31 >> 2];
+    var $33 = $29 * $32;
+    var $34 = $33 > .03125;
+    if ($34) {
+      label = 9;
+      break;
+    } else {
+      label = 14;
+      break;
+    }
+   case 9:
+    var $36 = $30 + 8 | 0;
+    var $37 = HEAPF32[$36 >> 2];
+    var $38 = $37 < 1;
+    if ($38) {
+      label = 11;
+      break;
+    } else {
+      label = 10;
+      break;
+    }
+   case 10:
+    HEAPF32[$36 >> 2] = 1;
+    label = 13;
+    break;
+   case 11:
+    var $41 = $30 + 12 | 0;
+    var $42 = HEAPF32[$41 >> 2];
+    var $43 = $37 < $42;
+    if ($43) {
+      label = 12;
+      break;
+    } else {
+      label = 13;
+      break;
+    }
+   case 12:
+    HEAPF32[$36 >> 2] = $42;
+    label = 13;
+    break;
+   case 13:
+    var $46 = HEAP32[$1 >> 2];
+    var $47 = $46 + 12 | 0;
+    HEAPF32[$47 >> 2] = 1;
+    label = 22;
+    break;
+   case 14:
+    var $49 = $33;
+    var $50 = $49 * 31.98;
+    var $51 = $50 + 625e-6;
+    var $52 = $51;
+    var $53 = $30 + 8 | 0;
+    var $54 = HEAPF32[$53 >> 2];
+    var $55 = $54 < $52;
+    if ($55) {
+      label = 17;
+      break;
+    } else {
+      label = 15;
+      break;
+    }
+   case 15:
+    var $57 = $52;
+    var $58 = $57 * .075;
+    var $59 = $58 + .925;
+    var $60 = $54;
+    var $61 = $59 * $60;
+    var $62 = $61;
+    HEAPF32[$53 >> 2] = $62;
+    var $63 = HEAP32[$1 >> 2];
+    var $64 = $63 + 8 | 0;
+    var $65 = HEAPF32[$64 >> 2];
+    var $66 = $65 < $52;
+    if ($66) {
+      label = 16;
+      break;
+    } else {
+      label = 21;
+      break;
+    }
+   case 16:
+    HEAPF32[$64 >> 2] = $52;
+    label = 21;
+    break;
+   case 17:
+    var $69 = $30 + 12 | 0;
+    var $70 = HEAPF32[$69 >> 2];
+    var $71 = $70 < $52;
+    if ($71) {
+      label = 19;
+      break;
+    } else {
+      label = 18;
+      break;
+    }
+   case 18:
+    HEAPF32[$53 >> 2] = $52;
+    label = 21;
+    break;
+   case 19:
+    var $74 = $54 < $70;
+    if ($74) {
+      label = 20;
+      break;
+    } else {
+      label = 21;
+      break;
+    }
+   case 20:
+    HEAPF32[$53 >> 2] = $70;
+    label = 21;
+    break;
+   case 21:
+    var $77 = HEAP32[$1 >> 2];
+    var $78 = $77 + 12 | 0;
+    HEAPF32[$78 >> 2] = $52;
+    label = 22;
+    break;
+   case 22:
+    return;
+  }
+}
+_adjust_ATH["X"] = 1;
+function _updateStats($gfc) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = $gfc + 84740 | 0;
+    var $2 = HEAP32[$1 >> 2];
+    var $3 = $gfc + 84036 + $2 * 20 + 16 | 0;
+    var $4 = HEAP32[$3 >> 2];
+    var $5 = $4 + 1 | 0;
+    HEAP32[$3 >> 2] = $5;
+    var $6 = $gfc + 84352 | 0;
+    var $7 = HEAP32[$6 >> 2];
+    var $8 = $7 + 1 | 0;
+    HEAP32[$6 >> 2] = $8;
+    var $9 = $gfc + 72 | 0;
+    var $10 = HEAP32[$9 >> 2];
+    var $11 = ($10 | 0) == 2;
+    if ($11) {
+      label = 3;
+      break;
+    } else {
+      label = 4;
+      break;
+    }
+   case 3:
+    var $13 = $gfc + 84752 | 0;
+    var $14 = HEAP32[$13 >> 2];
+    var $15 = HEAP32[$1 >> 2];
+    var $16 = $gfc + 84036 + $15 * 20 + ($14 << 2) | 0;
+    var $17 = HEAP32[$16 >> 2];
+    var $18 = $17 + 1 | 0;
+    HEAP32[$16 >> 2] = $18;
+    var $19 = HEAP32[$13 >> 2];
+    var $20 = $gfc + 84336 + ($19 << 2) | 0;
+    var $21 = HEAP32[$20 >> 2];
+    var $22 = $21 + 1 | 0;
+    HEAP32[$20 >> 2] = $22;
+    label = 4;
+    break;
+   case 4:
+    var $23 = $gfc + 76 | 0;
+    var $24 = HEAP32[$23 >> 2];
+    var $25 = ($24 | 0) > 0;
+    if ($25) {
+      label = 5;
+      break;
+    } else {
+      label = 9;
+      break;
+    }
+   case 5:
+    var $26 = $gfc + 84736 | 0;
+    var $gr_028 = 0;
+    label = 6;
+    break;
+   case 6:
+    var $gr_028;
+    var $27 = HEAP32[$9 >> 2];
+    var $28 = ($27 | 0) > 0;
+    if ($28) {
+      var $ch_026 = 0;
+      label = 7;
+      break;
+    } else {
+      label = 8;
+      break;
+    }
+   case 7:
+    var $ch_026;
+    var $29 = $gfc + 304 + $gr_028 * 10504 + $ch_026 * 5252 + 4788 | 0;
+    var $30 = HEAP32[$29 >> 2];
+    var $31 = $gfc + 304 + $gr_028 * 10504 + $ch_026 * 5252 + 4792 | 0;
+    var $32 = HEAP32[$31 >> 2];
+    var $33 = ($32 | 0) == 0;
+    var $_ = $33 ? $30 : 4;
+    var $34 = HEAP32[$1 >> 2];
+    var $35 = $gfc + 84356 + $34 * 24 + ($_ << 2) | 0;
+    var $36 = HEAP32[$35 >> 2];
+    var $37 = $36 + 1 | 0;
+    HEAP32[$35 >> 2] = $37;
+    var $38 = HEAP32[$1 >> 2];
+    var $39 = $gfc + 84356 + $38 * 24 + 20 | 0;
+    var $40 = HEAP32[$39 >> 2];
+    var $41 = $40 + 1 | 0;
+    HEAP32[$39 >> 2] = $41;
+    var $42 = $gfc + 84716 + ($_ << 2) | 0;
+    var $43 = HEAP32[$42 >> 2];
+    var $44 = $43 + 1 | 0;
+    HEAP32[$42 >> 2] = $44;
+    var $45 = HEAP32[$26 >> 2];
+    var $46 = $45 + 1 | 0;
+    HEAP32[$26 >> 2] = $46;
+    var $47 = $ch_026 + 1 | 0;
+    var $48 = HEAP32[$9 >> 2];
+    var $49 = ($47 | 0) < ($48 | 0);
+    if ($49) {
+      var $ch_026 = $47;
+      label = 7;
+      break;
+    } else {
+      label = 8;
+      break;
+    }
+   case 8:
+    var $50 = $gr_028 + 1 | 0;
+    var $51 = HEAP32[$23 >> 2];
+    var $52 = ($50 | 0) < ($51 | 0);
+    if ($52) {
+      var $gr_028 = $50;
+      label = 6;
+      break;
+    } else {
+      label = 9;
+      break;
+    }
+   case 9:
+    return;
+  }
+}
+_updateStats["X"] = 1;
+function _lame_encode_mp3_frame($gfc, $inbuf_l, $inbuf_r, $mp3buf, $mp3buf_size) {
+  var label = 0;
+  var __stackBase__ = STACKTOP;
+  STACKTOP = STACKTOP + 4e3 | 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $masking_LR = __stackBase__;
+    var $masking_MS = __stackBase__ + 1952;
+    var $inbuf = __stackBase__ + 3904;
+    var $tot_ener = __stackBase__ + 3912;
+    var $ms_ener_ratio = __stackBase__ + 3944;
+    var $pe = __stackBase__ + 3952;
+    var $pe_MS = __stackBase__ + 3968;
+    var $bufp = __stackBase__ + 3984;
+    var $blocktype = __stackBase__ + 3992;
+    var $1 = $ms_ener_ratio;
+    var $$etemp$0$0 = 1056964608;
+    var $$etemp$0$1 = 1056964608;
+    var $st$12$0 = $1 | 0;
+    HEAP32[$st$12$0 >> 2] = $$etemp$0$0;
+    var $st$12$1 = $1 + 4 | 0;
+    HEAP32[$st$12$1 >> 2] = $$etemp$0$1;
+    var $2 = $pe;
+    HEAP32[$2 >> 2] = 0;
+    HEAP32[$2 + 4 >> 2] = 0;
+    HEAP32[$2 + 8 >> 2] = 0;
+    HEAP32[$2 + 12 >> 2] = 0;
+    var $3 = $pe_MS;
+    HEAP32[$3 >> 2] = 0;
+    HEAP32[$3 + 4 >> 2] = 0;
+    HEAP32[$3 + 8 >> 2] = 0;
+    HEAP32[$3 + 12 >> 2] = 0;
+    var $4 = $inbuf | 0;
+    HEAP32[$4 >> 2] = $inbuf_l;
+    var $5 = $inbuf + 4 | 0;
+    HEAP32[$5 >> 2] = $inbuf_r;
+    var $6 = $gfc + 4 | 0;
+    var $7 = HEAP32[$6 >> 2];
+    var $8 = ($7 | 0) == 0;
+    if ($8) {
+      label = 3;
+      break;
+    } else {
+      label = 4;
+      break;
+    }
+   case 3:
+    _lame_encode_frame_init($gfc, $4);
+    label = 4;
+    break;
+   case 4:
+    var $11 = $gfc + 84748 | 0;
+    HEAP32[$11 >> 2] = 0;
+    var $12 = $gfc + 39828 | 0;
+    var $13 = HEAP32[$12 >> 2];
+    var $14 = $gfc + 39832 | 0;
+    var $15 = HEAP32[$14 >> 2];
+    var $16 = $15 - $13 | 0;
+    HEAP32[$14 >> 2] = $16;
+    var $17 = ($16 | 0) < 0;
+    if ($17) {
+      label = 5;
+      break;
+    } else {
+      label = 6;
+      break;
+    }
+   case 5:
+    var $19 = $gfc + 64 | 0;
+    var $20 = HEAP32[$19 >> 2];
+    var $21 = $20 + $16 | 0;
+    HEAP32[$14 >> 2] = $21;
+    HEAP32[$11 >> 2] = 1;
+    label = 6;
+    break;
+   case 6:
+    var $23 = $bufp;
+    var $$etemp$1$0 = 0;
+    var $$etemp$1$1 = 0;
+    var $st$3$0 = $23 | 0;
+    HEAP32[$st$3$0 >> 2] = $$etemp$1$0;
+    var $st$3$1 = $23 + 4 | 0;
+    HEAP32[$st$3$1 >> 2] = $$etemp$1$1;
+    var $24 = $gfc + 76 | 0;
+    var $25 = HEAP32[$24 >> 2];
+    var $26 = ($25 | 0) > 0;
+    if ($26) {
+      label = 7;
+      break;
+    } else {
+      label = 17;
+      break;
+    }
+   case 7:
+    var $27 = $gfc + 72 | 0;
+    var $28 = $bufp | 0;
+    var $29 = $masking_LR | 0;
+    var $30 = $masking_MS | 0;
+    var $31 = $blocktype | 0;
+    var $32 = $gfc + 180 | 0;
+    var $gr_0240 = 0;
+    label = 8;
+    break;
+   case 8:
+    var $gr_0240;
+    var $33 = HEAP32[$27 >> 2];
+    var $34 = ($33 | 0) > 0;
+    if ($34) {
+      label = 9;
+      break;
+    } else {
+      label = 11;
+      break;
+    }
+   case 9:
+    var $35 = $gr_0240 * 576 & -1;
+    var $36 = $35 + 304 | 0;
+    var $37 = HEAP32[$27 >> 2];
+    var $ch_0231 = 0;
+    label = 10;
+    break;
+   case 10:
+    var $ch_0231;
+    var $39 = $inbuf + ($ch_0231 << 2) | 0;
+    var $40 = HEAP32[$39 >> 2];
+    var $41 = $40 + ($36 << 2) | 0;
+    var $42 = $bufp + ($ch_0231 << 2) | 0;
+    HEAP32[$42 >> 2] = $41;
+    var $43 = $ch_0231 + 1 | 0;
+    var $44 = ($43 | 0) < ($37 | 0);
+    if ($44) {
+      var $ch_0231 = $43;
+      label = 10;
+      break;
+    } else {
+      label = 11;
+      break;
+    }
+   case 11:
+    var $45 = $pe + ($gr_0240 << 3) | 0;
+    var $46 = $pe_MS + ($gr_0240 << 3) | 0;
+    var $47 = $tot_ener + ($gr_0240 << 4) | 0;
+    var $48 = _L3psycho_anal_vbr($gfc, $28, $gr_0240, $29, $30, $45, $46, $47, $31);
+    var $49 = HEAP32[$32 >> 2];
+    var $50 = ($49 | 0) == 1;
+    if ($50) {
+      label = 12;
+      break;
+    } else {
+      label = 14;
+      break;
+    }
+   case 12:
+    var $52 = $tot_ener + ($gr_0240 << 4) + 8 | 0;
+    var $53 = HEAPF32[$52 >> 2];
+    var $54 = $tot_ener + ($gr_0240 << 4) + 12 | 0;
+    var $55 = HEAPF32[$54 >> 2];
+    var $56 = $53 + $55;
+    var $57 = $ms_ener_ratio + ($gr_0240 << 2) | 0;
+    HEAPF32[$57 >> 2] = $56;
+    var $58 = $56 > 0;
+    if ($58) {
+      label = 13;
+      break;
+    } else {
+      label = 14;
+      break;
+    }
+   case 13:
+    var $60 = HEAPF32[$54 >> 2];
+    var $61 = $60 / $56;
+    HEAPF32[$57 >> 2] = $61;
+    label = 14;
+    break;
+   case 14:
+    var $62 = HEAP32[$27 >> 2];
+    var $63 = ($62 | 0) > 0;
+    if ($63) {
+      var $ch_1236 = 0;
+      label = 15;
+      break;
+    } else {
+      label = 16;
+      break;
+    }
+   case 15:
+    var $ch_1236;
+    var $64 = $blocktype + ($ch_1236 << 2) | 0;
+    var $65 = HEAP32[$64 >> 2];
+    var $66 = $gfc + 304 + $gr_0240 * 10504 + $ch_1236 * 5252 + 4788 | 0;
+    HEAP32[$66 >> 2] = $65;
+    var $67 = $gfc + 304 + $gr_0240 * 10504 + $ch_1236 * 5252 + 4792 | 0;
+    HEAP32[$67 >> 2] = 0;
+    var $68 = $ch_1236 + 1 | 0;
+    var $69 = HEAP32[$27 >> 2];
+    var $70 = ($68 | 0) < ($69 | 0);
+    if ($70) {
+      var $ch_1236 = $68;
+      label = 15;
+      break;
+    } else {
+      label = 16;
+      break;
+    }
+   case 16:
+    var $71 = $gr_0240 + 1 | 0;
+    var $72 = HEAP32[$24 >> 2];
+    var $73 = ($71 | 0) < ($72 | 0);
+    if ($73) {
+      var $gr_0240 = $71;
+      label = 8;
+      break;
+    } else {
+      label = 17;
+      break;
+    }
+   case 17:
+    _adjust_ATH($gfc);
+    var $74 = HEAP32[$4 >> 2];
+    var $75 = HEAP32[$5 >> 2];
+    _mdct_sub48($gfc, $74, $75);
+    var $76 = $gfc + 84752 | 0;
+    HEAP32[$76 >> 2] = 0;
+    var $77 = $gfc + 80 | 0;
+    var $78 = HEAP32[$77 >> 2];
+    var $79 = ($78 | 0) == 0;
+    if ($79) {
+      label = 19;
+      break;
+    } else {
+      label = 18;
+      break;
+    }
+   case 18:
+    HEAP32[$76 >> 2] = 2;
+    label = 30;
+    break;
+   case 19:
+    var $82 = $gfc + 180 | 0;
+    var $83 = HEAP32[$82 >> 2];
+    var $84 = ($83 | 0) == 1;
+    if ($84) {
+      label = 20;
+      break;
+    } else {
+      label = 30;
+      break;
+    }
+   case 20:
+    var $85 = HEAP32[$24 >> 2];
+    var $86 = ($85 | 0) > 0;
+    if ($86) {
+      label = 21;
+      break;
+    } else {
+      var $_lcssa252 = $85;
+      label = 27;
+      break;
+    }
+   case 21:
+    var $87 = $gfc + 72 | 0;
+    var $88 = HEAP32[$87 >> 2];
+    var $89 = ($88 | 0) > 0;
+    var $90 = HEAP32[$24 >> 2];
+    var $gr_1221 = 0;
+    var $sum_pe_MS_0223 = 0;
+    var $sum_pe_LR_0224 = 0;
+    label = 22;
+    break;
+   case 22:
+    var $sum_pe_LR_0224;
+    var $sum_pe_MS_0223;
+    var $gr_1221;
+    if ($89) {
+      label = 23;
+      break;
+    } else {
+      var $sum_pe_MS_1_lcssa = $sum_pe_MS_0223;
+      var $sum_pe_LR_1_lcssa = $sum_pe_LR_0224;
+      label = 25;
+      break;
+    }
+   case 23:
+    var $91 = HEAP32[$87 >> 2];
+    var $ch_2213 = 0;
+    var $sum_pe_MS_1214 = $sum_pe_MS_0223;
+    var $sum_pe_LR_1215 = $sum_pe_LR_0224;
+    label = 24;
+    break;
+   case 24:
+    var $sum_pe_LR_1215;
+    var $sum_pe_MS_1214;
+    var $ch_2213;
+    var $93 = $pe_MS + ($gr_1221 << 3) + ($ch_2213 << 2) | 0;
+    var $94 = HEAPF32[$93 >> 2];
+    var $95 = $sum_pe_MS_1214 + $94;
+    var $96 = $pe + ($gr_1221 << 3) + ($ch_2213 << 2) | 0;
+    var $97 = HEAPF32[$96 >> 2];
+    var $98 = $sum_pe_LR_1215 + $97;
+    var $99 = $ch_2213 + 1 | 0;
+    var $100 = ($99 | 0) < ($91 | 0);
+    if ($100) {
+      var $ch_2213 = $99;
+      var $sum_pe_MS_1214 = $95;
+      var $sum_pe_LR_1215 = $98;
+      label = 24;
+      break;
+    } else {
+      var $sum_pe_MS_1_lcssa = $95;
+      var $sum_pe_LR_1_lcssa = $98;
+      label = 25;
+      break;
+    }
+   case 25:
+    var $sum_pe_LR_1_lcssa;
+    var $sum_pe_MS_1_lcssa;
+    var $101 = $gr_1221 + 1 | 0;
+    var $102 = ($101 | 0) < ($90 | 0);
+    if ($102) {
+      var $gr_1221 = $101;
+      var $sum_pe_MS_0223 = $sum_pe_MS_1_lcssa;
+      var $sum_pe_LR_0224 = $sum_pe_LR_1_lcssa;
+      label = 22;
+      break;
+    } else {
+      label = 26;
+      break;
+    }
+   case 26:
+    var $103 = $sum_pe_MS_1_lcssa > $sum_pe_LR_1_lcssa;
+    if ($103) {
+      label = 30;
+      break;
+    } else {
+      var $_lcssa252 = $90;
+      label = 27;
+      break;
+    }
+   case 27:
+    var $_lcssa252;
+    var $104 = $_lcssa252 - 1 | 0;
+    var $105 = $gfc + 5092 | 0;
+    var $106 = HEAP32[$105 >> 2];
+    var $107 = $gfc + 10344 | 0;
+    var $108 = HEAP32[$107 >> 2];
+    var $109 = ($106 | 0) == ($108 | 0);
+    if ($109) {
+      label = 28;
+      break;
+    } else {
+      label = 30;
+      break;
+    }
+   case 28:
+    var $111 = $gfc + 304 + $104 * 10504 + 4788 | 0;
+    var $112 = HEAP32[$111 >> 2];
+    var $113 = $gfc + 304 + $104 * 10504 + 10040 | 0;
+    var $114 = HEAP32[$113 >> 2];
+    var $115 = ($112 | 0) == ($114 | 0);
+    if ($115) {
+      label = 29;
+      break;
+    } else {
+      label = 30;
+      break;
+    }
+   case 29:
+    HEAP32[$76 >> 2] = 2;
+    label = 30;
+    break;
+   case 30:
+    var $118 = HEAP32[$76 >> 2];
+    var $119 = ($118 | 0) == 2;
+    var $masking_MS_sink = $119 ? $masking_MS : $masking_LR;
+    var $pe_MS_sink = $119 ? $pe_MS : $pe;
+    var $120 = $masking_MS_sink | 0;
+    var $121 = $pe_MS_sink | 0;
+    var $122 = $gfc + 140 | 0;
+    var $123 = HEAP32[$122 >> 2];
+    var $124 = ($123 | 0) == 0;
+    if ($124) {
+      label = 40;
+      break;
+    } else {
+      label = 31;
+      break;
+    }
+   case 31:
+    var $126 = $gfc + 85800 | 0;
+    var $127 = HEAP32[$126 >> 2];
+    var $128 = ($127 | 0) == 0;
+    if ($128) {
+      label = 40;
+      break;
+    } else {
+      label = 32;
+      break;
+    }
+   case 32:
+    var $129 = HEAP32[$24 >> 2];
+    var $130 = ($129 | 0) > 0;
+    if ($130) {
+      label = 33;
+      break;
+    } else {
+      label = 40;
+      break;
+    }
+   case 33:
+    var $131 = $gfc + 72 | 0;
+    var $gr_2210 = 0;
+    label = 34;
+    break;
+   case 34:
+    var $gr_2210;
+    var $132 = HEAP32[$131 >> 2];
+    var $133 = ($132 | 0) > 0;
+    if ($133) {
+      label = 35;
+      break;
+    } else {
+      label = 39;
+      break;
+    }
+   case 35:
+    var $134 = $ms_ener_ratio + ($gr_2210 << 2) | 0;
+    var $ch_3205 = 0;
+    label = 36;
+    break;
+   case 36:
+    var $ch_3205;
+    var $136 = HEAP32[$126 >> 2];
+    var $137 = $136 + 90900 + ($gr_2210 << 3) | 0;
+    HEAPF64[tempDoublePtr >> 3] = 0, HEAP32[$137 >> 2] = HEAP32[tempDoublePtr >> 2], HEAP32[$137 + 4 >> 2] = HEAP32[tempDoublePtr + 4 >> 2];
+    var $138 = HEAPF32[$134 >> 2];
+    var $139 = $138;
+    var $140 = HEAP32[$126 >> 2];
+    var $141 = $140 + 90916 + ($gr_2210 << 3) | 0;
+    HEAPF64[tempDoublePtr >> 3] = $139, HEAP32[$141 >> 2] = HEAP32[tempDoublePtr >> 2], HEAP32[$141 + 4 >> 2] = HEAP32[tempDoublePtr + 4 >> 2];
+    var $142 = $gfc + 304 + $gr_2210 * 10504 + $ch_3205 * 5252 + 4788 | 0;
+    var $143 = HEAP32[$142 >> 2];
+    var $144 = HEAP32[$126 >> 2];
+    var $145 = $144 + 203284 + ($gr_2210 << 3) + ($ch_3205 << 2) | 0;
+    HEAP32[$145 >> 2] = $143;
+    var $146 = $pe_MS_sink + ($gr_2210 << 3) + ($ch_3205 << 2) | 0;
+    var $147 = HEAPF32[$146 >> 2];
+    var $148 = $147;
+    var $149 = HEAP32[$126 >> 2];
+    var $150 = $149 + 189236 + ($gr_2210 << 5) + ($ch_3205 << 3) | 0;
+    HEAPF64[tempDoublePtr >> 3] = $148, HEAP32[$150 >> 2] = HEAP32[tempDoublePtr >> 2], HEAP32[$150 + 4 >> 2] = HEAP32[tempDoublePtr + 4 >> 2];
+    var $151 = HEAP32[$126 >> 2];
+    var $152 = $151 + 54036 + $gr_2210 * 9216 + $ch_3205 * 4608 | 0;
+    var $153 = $152;
+    var $154 = $gfc + 304 + $gr_2210 * 10504 + $ch_3205 * 5252 | 0;
+    var $155 = $154;
+    for (var $$src = $155 >> 2, $$dest = $153 >> 2, $$stop = $$src + 576; $$src < $$stop; $$src++, $$dest++) {
+      HEAP32[$$dest] = HEAP32[$$src];
+    }
+    var $156 = HEAP32[$76 >> 2];
+    var $157 = ($156 | 0) == 2;
+    if ($157) {
+      label = 37;
+      break;
+    } else {
+      label = 38;
+      break;
+    }
+   case 37:
+    var $159 = $ch_3205 + 2 | 0;
+    var $160 = HEAP32[$126 >> 2];
+    var $161 = $160 + 197140 + ($gr_2210 << 5) + ($159 << 3) | 0;
+    var $162 = (HEAP32[tempDoublePtr >> 2] = HEAP32[$161 >> 2], HEAP32[tempDoublePtr + 4 >> 2] = HEAP32[$161 + 4 >> 2], HEAPF64[tempDoublePtr >> 3]);
+    var $163 = $160 + 197140 + ($gr_2210 << 5) + ($ch_3205 << 3) | 0;
+    HEAPF64[tempDoublePtr >> 3] = $162, HEAP32[$163 >> 2] = HEAP32[tempDoublePtr >> 2], HEAP32[$163 + 4 >> 2] = HEAP32[tempDoublePtr + 4 >> 2];
+    var $164 = HEAP32[$126 >> 2];
+    var $165 = $164 + 123700 + ($gr_2210 << 15) + ($ch_3205 << 13) | 0;
+    var $166 = $165;
+    var $167 = $164 + 123700 + ($gr_2210 << 15) + ($159 << 13) | 0;
+    var $168 = $167;
+    for (var $$src = $168 >> 2, $$dest = $166 >> 2, $$stop = $$src + 2048; $$src < $$stop; $$src++, $$dest++) {
+      HEAP32[$$dest] = HEAP32[$$src];
+    }
+    label = 38;
+    break;
+   case 38:
+    var $170 = $ch_3205 + 1 | 0;
+    var $171 = HEAP32[$131 >> 2];
+    var $172 = ($170 | 0) < ($171 | 0);
+    if ($172) {
+      var $ch_3205 = $170;
+      label = 36;
+      break;
+    } else {
+      label = 39;
+      break;
+    }
+   case 39:
+    var $173 = $gr_2210 + 1 | 0;
+    var $174 = HEAP32[$24 >> 2];
+    var $175 = ($173 | 0) < ($174 | 0);
+    if ($175) {
+      var $gr_2210 = $173;
+      label = 34;
+      break;
+    } else {
+      label = 40;
+      break;
+    }
+   case 40:
+    var $176 = $gfc + 104 | 0;
+    var $177 = HEAP32[$176 >> 2];
+    if (($177 | 0) == 0 | ($177 | 0) == 3) {
+      label = 42;
+      break;
+    } else {
+      label = 53;
+      break;
+    }
+   case 41:
+    var $178 = $gfc + 72 | 0;
+    var $179 = HEAP32[$178 >> 2];
+    var $180 = ($179 | 0) > 0;
+    var $181 = HEAP32[$24 >> 2];
+    var $gr_3197 = 0;
+    var $f_0199 = 0;
+    label = 43;
+    break;
+   case 42:
+    var $182 = $gfc + 39756 | 0;
+    var $183 = HEAPF32[$182 >> 2];
+    var $184 = $gfc + 39752 | 0;
+    HEAPF32[$184 >> 2] = $183;
+    var $185 = $gfc + 39760 | 0;
+    var $186 = HEAPF32[$185 >> 2];
+    var $187 = $gfc + 39756 | 0;
+    HEAPF32[$187 >> 2] = $186;
+    var $188 = $gfc + 39764 | 0;
+    var $189 = HEAPF32[$188 >> 2];
+    var $190 = $gfc + 39760 | 0;
+    HEAPF32[$190 >> 2] = $189;
+    var $191 = $gfc + 39768 | 0;
+    var $192 = HEAPF32[$191 >> 2];
+    var $193 = $gfc + 39764 | 0;
+    HEAPF32[$193 >> 2] = $192;
+    var $194 = $gfc + 39772 | 0;
+    var $195 = HEAPF32[$194 >> 2];
+    var $196 = $gfc + 39768 | 0;
+    HEAPF32[$196 >> 2] = $195;
+    var $197 = $gfc + 39776 | 0;
+    var $198 = HEAPF32[$197 >> 2];
+    var $199 = $gfc + 39772 | 0;
+    HEAPF32[$199 >> 2] = $198;
+    var $200 = $gfc + 39780 | 0;
+    var $201 = HEAPF32[$200 >> 2];
+    var $202 = $gfc + 39776 | 0;
+    HEAPF32[$202 >> 2] = $201;
+    var $203 = $gfc + 39784 | 0;
+    var $204 = HEAPF32[$203 >> 2];
+    var $205 = $gfc + 39780 | 0;
+    HEAPF32[$205 >> 2] = $204;
+    var $206 = $gfc + 39788 | 0;
+    var $207 = HEAPF32[$206 >> 2];
+    var $208 = $gfc + 39784 | 0;
+    HEAPF32[$208 >> 2] = $207;
+    var $209 = $gfc + 39792 | 0;
+    var $210 = HEAPF32[$209 >> 2];
+    var $211 = $gfc + 39788 | 0;
+    HEAPF32[$211 >> 2] = $210;
+    var $212 = $gfc + 39796 | 0;
+    var $213 = HEAPF32[$212 >> 2];
+    var $214 = $gfc + 39792 | 0;
+    HEAPF32[$214 >> 2] = $213;
+    var $215 = $gfc + 39800 | 0;
+    var $216 = HEAPF32[$215 >> 2];
+    var $217 = $gfc + 39796 | 0;
+    HEAPF32[$217 >> 2] = $216;
+    var $218 = $gfc + 39804 | 0;
+    var $219 = HEAPF32[$218 >> 2];
+    var $220 = $gfc + 39800 | 0;
+    HEAPF32[$220 >> 2] = $219;
+    var $221 = $gfc + 39808 | 0;
+    var $222 = HEAPF32[$221 >> 2];
+    var $223 = $gfc + 39804 | 0;
+    HEAPF32[$223 >> 2] = $222;
+    var $224 = $gfc + 39812 | 0;
+    var $225 = HEAPF32[$224 >> 2];
+    var $226 = $gfc + 39808 | 0;
+    HEAPF32[$226 >> 2] = $225;
+    var $227 = $gfc + 39816 | 0;
+    var $228 = HEAPF32[$227 >> 2];
+    var $229 = $gfc + 39812 | 0;
+    HEAPF32[$229 >> 2] = $228;
+    var $230 = $gfc + 39820 | 0;
+    var $231 = HEAPF32[$230 >> 2];
+    var $232 = $gfc + 39816 | 0;
+    HEAPF32[$232 >> 2] = $231;
+    var $233 = $gfc + 39824 | 0;
+    var $234 = HEAPF32[$233 >> 2];
+    var $235 = $gfc + 39820 | 0;
+    HEAPF32[$235 >> 2] = $234;
+    var $236 = HEAP32[$24 >> 2];
+    var $237 = ($236 | 0) > 0;
+    if ($237) {
+      label = 41;
+      break;
+    } else {
+      var $f_0_lcssa = 0;
+      label = 47;
+      break;
+    }
+   case 43:
+    var $f_0199;
+    var $gr_3197;
+    if ($180) {
+      label = 44;
+      break;
+    } else {
+      var $f_1_lcssa = $f_0199;
+      label = 46;
+      break;
+    }
+   case 44:
+    var $238 = HEAP32[$178 >> 2];
+    var $ch_4192 = 0;
+    var $f_1193 = $f_0199;
+    label = 45;
+    break;
+   case 45:
+    var $f_1193;
+    var $ch_4192;
+    var $240 = $pe_MS_sink + ($gr_3197 << 3) + ($ch_4192 << 2) | 0;
+    var $241 = HEAPF32[$240 >> 2];
+    var $242 = $f_1193 + $241;
+    var $243 = $ch_4192 + 1 | 0;
+    var $244 = ($243 | 0) < ($238 | 0);
+    if ($244) {
+      var $ch_4192 = $243;
+      var $f_1193 = $242;
+      label = 45;
+      break;
+    } else {
+      var $f_1_lcssa = $242;
+      label = 46;
+      break;
+    }
+   case 46:
+    var $f_1_lcssa;
+    var $245 = $gr_3197 + 1 | 0;
+    var $246 = ($245 | 0) < ($181 | 0);
+    if ($246) {
+      var $gr_3197 = $245;
+      var $f_0199 = $f_1_lcssa;
+      label = 43;
+      break;
+    } else {
+      var $f_0_lcssa = $f_1_lcssa;
+      label = 47;
+      break;
+    }
+   case 47:
+    var $f_0_lcssa;
+    var $248 = $gfc + 39824 | 0;
+    HEAPF32[$248 >> 2] = $f_0_lcssa;
+    var $249 = $gfc + 39788 | 0;
+    var $250 = HEAPF32[$249 >> 2];
+    var $251 = $gfc + 39752 | 0;
+    var $252 = HEAPF32[$251 >> 2];
+    var $253 = $252 + $f_0_lcssa;
+    var $254 = $253 * -.10394349694252014;
+    var $255 = $250 + $254;
+    var $256 = $gfc + 39756 | 0;
+    var $257 = HEAPF32[$256 >> 2];
+    var $258 = $gfc + 39820 | 0;
+    var $259 = HEAPF32[$258 >> 2];
+    var $260 = $257 + $259;
+    var $261 = $260 * -.18920649588108063;
+    var $262 = $255 + $261;
+    var $263 = $gfc + 39760 | 0;
+    var $264 = HEAPF32[$263 >> 2];
+    var $265 = $gfc + 39816 | 0;
+    var $266 = HEAPF32[$265 >> 2];
+    var $267 = $264 + $266;
+    var $268 = $267 * -.21623599529266357;
+    var $269 = $262 + $268;
+    var $270 = $gfc + 39764 | 0;
+    var $271 = HEAPF32[$270 >> 2];
+    var $272 = $gfc + 39812 | 0;
+    var $273 = HEAPF32[$272 >> 2];
+    var $274 = $271 + $273;
+    var $275 = $274 * -.1559150069952011;
+    var $276 = $269 + $275;
+    var $277 = $gfc + 39768 | 0;
+    var $278 = HEAPF32[$277 >> 2];
+    var $279 = $gfc + 39808 | 0;
+    var $280 = HEAPF32[$279 >> 2];
+    var $281 = $278 + $280;
+    var $282 = $281 * 3.8980449615198e-17;
+    var $283 = $276 + $282;
+    var $284 = $gfc + 39772 | 0;
+    var $285 = HEAPF32[$284 >> 2];
+    var $286 = $gfc + 39804 | 0;
+    var $287 = HEAPF32[$286 >> 2];
+    var $288 = $285 + $287;
+    var $289 = $288 * .23387250304222107;
+    var $290 = $283 + $289;
+    var $291 = $gfc + 39776 | 0;
+    var $292 = HEAPF32[$291 >> 2];
+    var $293 = $gfc + 39800 | 0;
+    var $294 = HEAPF32[$293 >> 2];
+    var $295 = $292 + $294;
+    var $296 = $295 * .5045499801635742;
+    var $297 = $290 + $296;
+    var $298 = $gfc + 39780 | 0;
+    var $299 = HEAPF32[$298 >> 2];
+    var $300 = $gfc + 39796 | 0;
+    var $301 = HEAPF32[$300 >> 2];
+    var $302 = $299 + $301;
+    var $303 = $302 * .7568249702453613;
+    var $304 = $297 + $303;
+    var $305 = $gfc + 39784 | 0;
+    var $306 = HEAPF32[$305 >> 2];
+    var $307 = $gfc + 39792 | 0;
+    var $308 = HEAPF32[$307 >> 2];
+    var $309 = $306 + $308;
+    var $310 = $309 * .9354900121688843;
+    var $311 = $304 + $310;
+    var $312 = HEAP32[$24 >> 2];
+    var $313 = $312 * 3350 & -1;
+    var $314 = $gfc + 72 | 0;
+    var $315 = HEAP32[$314 >> 2];
+    var $316 = $313 * $315 & -1;
+    var $317 = $316 | 0;
+    var $318 = $317 / $311;
+    var $319 = HEAP32[$24 >> 2];
+    var $320 = ($319 | 0) > 0;
+    if ($320) {
+      label = 48;
+      break;
+    } else {
+      label = 53;
+      break;
+    }
+   case 48:
+    var $321 = HEAP32[$314 >> 2];
+    var $322 = ($321 | 0) > 0;
+    var $323 = HEAP32[$24 >> 2];
+    var $gr_4187 = 0;
+    label = 49;
+    break;
+   case 49:
+    var $gr_4187;
+    if ($322) {
+      label = 50;
+      break;
+    } else {
+      label = 52;
+      break;
+    }
+   case 50:
+    var $324 = HEAP32[$314 >> 2];
+    var $ch_5184 = 0;
+    label = 51;
+    break;
+   case 51:
+    var $ch_5184;
+    var $326 = $pe_MS_sink + ($gr_4187 << 3) + ($ch_5184 << 2) | 0;
+    var $327 = HEAPF32[$326 >> 2];
+    var $328 = $318 * $327;
+    HEAPF32[$326 >> 2] = $328;
+    var $329 = $ch_5184 + 1 | 0;
+    var $330 = ($329 | 0) < ($324 | 0);
+    if ($330) {
+      var $ch_5184 = $329;
+      label = 51;
+      break;
+    } else {
+      label = 52;
+      break;
+    }
+   case 52:
+    var $331 = $gr_4187 + 1 | 0;
+    var $332 = ($331 | 0) < ($323 | 0);
+    if ($332) {
+      var $gr_4187 = $331;
+      label = 49;
+      break;
+    } else {
+      label = 53;
+      break;
+    }
+   case 53:
+    var $333 = $gfc + 85808 | 0;
+    var $334 = HEAP32[$333 >> 2];
+    var $335 = $ms_ener_ratio | 0;
+    FUNCTION_TABLE[$334]($gfc, $121, $335, $120);
+    var $336 = _format_bitstream($gfc);
+    var $337 = _copy_buffer($gfc, $mp3buf, $mp3buf_size, 1);
+    var $338 = $gfc + 156 | 0;
+    var $339 = HEAP32[$338 >> 2];
+    var $340 = ($339 | 0) == 0;
+    if ($340) {
+      label = 55;
+      break;
+    } else {
+      label = 54;
+      break;
+    }
+   case 54:
+    _AddVbrFrame($gfc);
+    label = 55;
+    break;
+   case 55:
+    var $343 = HEAP32[$122 >> 2];
+    var $344 = ($343 | 0) == 0;
+    if ($344) {
+      label = 64;
+      break;
+    } else {
+      label = 56;
+      break;
+    }
+   case 56:
+    var $346 = $gfc + 85800 | 0;
+    var $347 = HEAP32[$346 >> 2];
+    var $348 = ($347 | 0) == 0;
+    if ($348) {
+      label = 64;
+      break;
+    } else {
+      label = 57;
+      break;
+    }
+   case 57:
+    var $350 = HEAP32[$24 >> 2];
+    var $351 = $350 * 576 & -1;
+    var $352 = $gfc + 72 | 0;
+    var $353 = HEAP32[$352 >> 2];
+    var $354 = ($353 | 0) > 0;
+    if ($354) {
+      var $ch_6182 = 0;
+      label = 58;
+      break;
+    } else {
+      label = 63;
+      break;
+    }
+   case 58:
+    var $ch_6182;
+    var $j_0180 = 0;
+    label = 59;
+    break;
+   case 59:
+    var $j_0180;
+    var $356 = $j_0180 + $351 | 0;
+    var $357 = HEAP32[$346 >> 2];
+    var $358 = $357 + 20 + $ch_6182 * 12800 + ($356 << 3) | 0;
+    var $359 = (HEAP32[tempDoublePtr >> 2] = HEAP32[$358 >> 2], HEAP32[tempDoublePtr + 4 >> 2] = HEAP32[$358 + 4 >> 2], HEAPF64[tempDoublePtr >> 3]);
+    var $360 = $357 + 20 + $ch_6182 * 12800 + ($j_0180 << 3) | 0;
+    HEAPF64[tempDoublePtr >> 3] = $359, HEAP32[$360 >> 2] = HEAP32[tempDoublePtr >> 2], HEAP32[$360 + 4 >> 2] = HEAP32[tempDoublePtr + 4 >> 2];
+    var $361 = $j_0180 + 1 | 0;
+    var $exitcond = ($361 | 0) == 272;
+    if ($exitcond) {
+      label = 60;
+      break;
+    } else {
+      var $j_0180 = $361;
+      label = 59;
+      break;
+    }
+   case 60:
+    var $362 = $inbuf + ($ch_6182 << 2) | 0;
+    var $363 = HEAP32[$362 >> 2];
+    var $j_1181 = 272;
+    label = 61;
+    break;
+   case 61:
+    var $j_1181;
+    var $365 = $j_1181 - 272 | 0;
+    var $366 = $363 + ($365 << 2) | 0;
+    var $367 = HEAPF32[$366 >> 2];
+    var $368 = $367;
+    var $369 = HEAP32[$346 >> 2];
+    var $370 = $369 + 20 + $ch_6182 * 12800 + ($j_1181 << 3) | 0;
+    HEAPF64[tempDoublePtr >> 3] = $368, HEAP32[$370 >> 2] = HEAP32[tempDoublePtr >> 2], HEAP32[$370 + 4 >> 2] = HEAP32[tempDoublePtr + 4 >> 2];
+    var $371 = $j_1181 + 1 | 0;
+    var $exitcond244 = ($371 | 0) == 1600;
+    if ($exitcond244) {
+      label = 62;
+      break;
+    } else {
+      var $j_1181 = $371;
+      label = 61;
+      break;
+    }
+   case 62:
+    var $373 = $ch_6182 + 1 | 0;
+    var $374 = HEAP32[$352 >> 2];
+    var $375 = ($373 | 0) < ($374 | 0);
+    if ($375) {
+      var $ch_6182 = $373;
+      label = 58;
+      break;
+    } else {
+      label = 63;
+      break;
+    }
+   case 63:
+    var $376 = $gfc + 84904 | 0;
+    HEAPF32[$376 >> 2] = 1;
+    _set_frame_pinfo($gfc, $120);
+    label = 64;
+    break;
+   case 64:
+    var $378 = $gfc + 84744 | 0;
+    var $379 = HEAP32[$378 >> 2];
+    var $380 = $379 + 1 | 0;
+    HEAP32[$378 >> 2] = $380;
+    _updateStats($gfc);
+    STACKTOP = __stackBase__;
+    return $337;
+  }
+}
+_lame_encode_mp3_frame["X"] = 1;
+function _lame_encode_frame_init($gfc, $inbuf) {
+  var label = 0;
+  var __stackBase__ = STACKTOP;
+  STACKTOP = STACKTOP + 16112 | 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $primebuff0 = __stackBase__;
+    var $primebuff1 = __stackBase__ + 8056;
+    var $1 = $gfc + 4 | 0;
+    var $2 = HEAP32[$1 >> 2];
+    var $3 = ($2 | 0) == 0;
+    if ($3) {
+      label = 3;
+      break;
+    } else {
+      label = 19;
+      break;
+    }
+   case 3:
+    var $5 = $gfc + 76 | 0;
+    var $6 = HEAP32[$5 >> 2];
+    var $7 = $6 * 576 & -1;
+    HEAP32[$1 >> 2] = 1;
+    var $8 = $primebuff0;
+    for (var $$dest = $8 >> 2, $$stop = $$dest + 2014; $$dest < $$stop; $$dest++) {
+      HEAP32[$$dest] = 0;
+    }
+    var $9 = $primebuff1;
+    for (var $$dest = $9 >> 2, $$stop = $$dest + 2014; $$dest < $$stop; $$dest++) {
+      HEAP32[$$dest] = 0;
+    }
+    var $10 = HEAP32[$5 >> 2];
+    var $11 = $10 * 576 & -1;
+    var $12 = $11 + 862 | 0;
+    var $13 = ($12 | 0) > 0;
+    if ($13) {
+      label = 4;
+      break;
+    } else {
+      var $20 = $10;
+      label = 6;
+      break;
+    }
+   case 4:
+    var $14 = $gfc + 72 | 0;
+    var $15 = HEAP32[$5 >> 2];
+    var $16 = $15 * 576 & -1;
+    var $17 = $16 + 862 | 0;
+    var $18 = $gfc + 72 | 0;
+    var $19 = $inbuf + 4 | 0;
+    var $i_029 = 0;
+    var $j_030 = 0;
+    label = 8;
+    break;
+   case 5:
+    var $_pr = HEAP32[$5 >> 2];
+    var $20 = $_pr;
+    label = 6;
+    break;
+   case 6:
+    var $20;
+    var $21 = ($20 | 0) > 0;
+    if ($21) {
+      label = 7;
+      break;
+    } else {
+      label = 18;
+      break;
+    }
+   case 7:
+    var $22 = $gfc + 72 | 0;
+    var $gr_026 = 0;
+    label = 15;
+    break;
+   case 8:
+    var $j_030;
+    var $i_029;
+    var $24 = ($i_029 | 0) < ($7 | 0);
+    if ($24) {
+      label = 9;
+      break;
+    } else {
+      label = 11;
+      break;
+    }
+   case 9:
+    var $26 = $primebuff0 + ($i_029 << 2) | 0;
+    HEAPF32[$26 >> 2] = 0;
+    var $27 = HEAP32[$14 >> 2];
+    var $28 = ($27 | 0) == 2;
+    if ($28) {
+      label = 10;
+      break;
+    } else {
+      var $j_1 = $j_030;
+      label = 14;
+      break;
+    }
+   case 10:
+    var $30 = $primebuff1 + ($i_029 << 2) | 0;
+    HEAPF32[$30 >> 2] = 0;
+    var $j_1 = $j_030;
+    label = 14;
+    break;
+   case 11:
+    var $32 = HEAP32[$inbuf >> 2];
+    var $33 = $32 + ($j_030 << 2) | 0;
+    var $34 = HEAPF32[$33 >> 2];
+    var $35 = $primebuff0 + ($i_029 << 2) | 0;
+    HEAPF32[$35 >> 2] = $34;
+    var $36 = HEAP32[$18 >> 2];
+    var $37 = ($36 | 0) == 2;
+    if ($37) {
+      label = 12;
+      break;
+    } else {
+      label = 13;
+      break;
+    }
+   case 12:
+    var $39 = HEAP32[$19 >> 2];
+    var $40 = $39 + ($j_030 << 2) | 0;
+    var $41 = HEAPF32[$40 >> 2];
+    var $42 = $primebuff1 + ($i_029 << 2) | 0;
+    HEAPF32[$42 >> 2] = $41;
+    label = 13;
+    break;
+   case 13:
+    var $44 = $j_030 + 1 | 0;
+    var $j_1 = $44;
+    label = 14;
+    break;
+   case 14:
+    var $j_1;
+    var $46 = $i_029 + 1 | 0;
+    var $47 = ($46 | 0) < ($17 | 0);
+    if ($47) {
+      var $i_029 = $46;
+      var $j_030 = $j_1;
+      label = 8;
+      break;
+    } else {
+      label = 5;
+      break;
+    }
+   case 15:
+    var $gr_026;
+    var $48 = HEAP32[$22 >> 2];
+    var $49 = ($48 | 0) > 0;
+    if ($49) {
+      var $ch_024 = 0;
+      label = 16;
+      break;
+    } else {
+      label = 17;
+      break;
+    }
+   case 16:
+    var $ch_024;
+    var $50 = $gfc + 304 + $gr_026 * 10504 + $ch_024 * 5252 + 4788 | 0;
+    HEAP32[$50 >> 2] = 2;
+    var $51 = $ch_024 + 1 | 0;
+    var $52 = HEAP32[$22 >> 2];
+    var $53 = ($51 | 0) < ($52 | 0);
+    if ($53) {
+      var $ch_024 = $51;
+      label = 16;
+      break;
+    } else {
+      label = 17;
+      break;
+    }
+   case 17:
+    var $54 = $gr_026 + 1 | 0;
+    var $55 = HEAP32[$5 >> 2];
+    var $56 = ($54 | 0) < ($55 | 0);
+    if ($56) {
+      var $gr_026 = $54;
+      label = 15;
+      break;
+    } else {
+      label = 18;
+      break;
+    }
+   case 18:
+    var $57 = $primebuff0 | 0;
+    var $58 = $primebuff1 | 0;
+    _mdct_sub48($gfc, $57, $58);
+    label = 19;
+    break;
+   case 19:
+    STACKTOP = __stackBase__;
+    return;
+  }
+}
+_lame_encode_frame_init["X"] = 1;
+function _fht($fz, $n) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = $n << 1;
+    var $2 = $fz + ($1 << 2) | 0;
+    var $tri_0 = 5348652;
+    var $k4_0 = 4;
+    label = 3;
+    break;
+   case 3:
+    var $k4_0;
+    var $tri_0;
+    var $4 = $k4_0 >> 1;
+    var $5 = $k4_0 << 1;
+    var $6 = $5 + $k4_0 | 0;
+    var $7 = $k4_0 << 2;
+    var $8 = $fz + ($4 << 2) | 0;
+    var $fi_0 = $fz;
+    var $gi_0 = $8;
+    label = 4;
+    break;
+   case 4:
+    var $gi_0;
+    var $fi_0;
+    var $10 = HEAPF32[$fi_0 >> 2];
+    var $11 = $fi_0 + ($k4_0 << 2) | 0;
+    var $12 = HEAPF32[$11 >> 2];
+    var $13 = $10 - $12;
+    var $14 = $10 + $12;
+    var $15 = $fi_0 + ($5 << 2) | 0;
+    var $16 = HEAPF32[$15 >> 2];
+    var $17 = $fi_0 + ($6 << 2) | 0;
+    var $18 = HEAPF32[$17 >> 2];
+    var $19 = $16 - $18;
+    var $20 = $16 + $18;
+    var $21 = $14 - $20;
+    HEAPF32[$15 >> 2] = $21;
+    var $22 = $14 + $20;
+    HEAPF32[$fi_0 >> 2] = $22;
+    var $23 = $13 - $19;
+    HEAPF32[$17 >> 2] = $23;
+    var $24 = $13 + $19;
+    HEAPF32[$11 >> 2] = $24;
+    var $25 = HEAPF32[$gi_0 >> 2];
+    var $26 = $gi_0 + ($k4_0 << 2) | 0;
+    var $27 = HEAPF32[$26 >> 2];
+    var $28 = $25 - $27;
+    var $29 = $25 + $27;
+    var $30 = $gi_0 + ($6 << 2) | 0;
+    var $31 = HEAPF32[$30 >> 2];
+    var $32 = $31;
+    var $33 = $32 * 1.4142135623730951;
+    var $34 = $33;
+    var $35 = $gi_0 + ($5 << 2) | 0;
+    var $36 = HEAPF32[$35 >> 2];
+    var $37 = $36;
+    var $38 = $37 * 1.4142135623730951;
+    var $39 = $38;
+    var $40 = $29 - $39;
+    HEAPF32[$35 >> 2] = $40;
+    var $41 = $29 + $39;
+    HEAPF32[$gi_0 >> 2] = $41;
+    var $42 = $28 - $34;
+    HEAPF32[$30 >> 2] = $42;
+    var $43 = $28 + $34;
+    HEAPF32[$26 >> 2] = $43;
+    var $44 = $gi_0 + ($7 << 2) | 0;
+    var $45 = $fi_0 + ($7 << 2) | 0;
+    var $46 = $45 >>> 0 < $2 >>> 0;
+    if ($46) {
+      var $fi_0 = $45;
+      var $gi_0 = $44;
+      label = 4;
+      break;
+    } else {
+      label = 5;
+      break;
+    }
+   case 5:
+    var $48 = $tri_0 + 4 | 0;
+    var $49 = ($k4_0 | 0) > 2;
+    if ($49) {
+      label = 6;
+      break;
+    } else {
+      label = 10;
+      break;
+    }
+   case 6:
+    var $50 = HEAPF32[$48 >> 2];
+    var $51 = HEAPF32[$tri_0 >> 2];
+    var $i_0166 = 1;
+    var $c1_0167 = $51;
+    var $s1_0168 = $50;
+    label = 7;
+    break;
+   case 7:
+    var $s1_0168;
+    var $c1_0167;
+    var $i_0166;
+    var $53 = $s1_0168 * 2;
+    var $54 = $s1_0168 * $53;
+    var $55 = 1 - $54;
+    var $56 = $c1_0167 * $53;
+    var $57 = $fz + ($i_0166 << 2) | 0;
+    var $_sum = $k4_0 - $i_0166 | 0;
+    var $58 = $fz + ($_sum << 2) | 0;
+    var $fi_1 = $57;
+    var $gi_1 = $58;
+    label = 8;
+    break;
+   case 8:
+    var $gi_1;
+    var $fi_1;
+    var $60 = $fi_1 + ($k4_0 << 2) | 0;
+    var $61 = HEAPF32[$60 >> 2];
+    var $62 = $56 * $61;
+    var $63 = $gi_1 + ($k4_0 << 2) | 0;
+    var $64 = HEAPF32[$63 >> 2];
+    var $65 = $55 * $64;
+    var $66 = $62 - $65;
+    var $67 = $55 * $61;
+    var $68 = $56 * $64;
+    var $69 = $67 + $68;
+    var $70 = HEAPF32[$fi_1 >> 2];
+    var $71 = $70 - $69;
+    var $72 = $70 + $69;
+    var $73 = HEAPF32[$gi_1 >> 2];
+    var $74 = $73 - $66;
+    var $75 = $73 + $66;
+    var $76 = $fi_1 + ($6 << 2) | 0;
+    var $77 = HEAPF32[$76 >> 2];
+    var $78 = $56 * $77;
+    var $79 = $gi_1 + ($6 << 2) | 0;
+    var $80 = HEAPF32[$79 >> 2];
+    var $81 = $55 * $80;
+    var $82 = $78 - $81;
+    var $83 = $55 * $77;
+    var $84 = $56 * $80;
+    var $85 = $83 + $84;
+    var $86 = $fi_1 + ($5 << 2) | 0;
+    var $87 = HEAPF32[$86 >> 2];
+    var $88 = $87 - $85;
+    var $89 = $87 + $85;
+    var $90 = $gi_1 + ($5 << 2) | 0;
+    var $91 = HEAPF32[$90 >> 2];
+    var $92 = $91 - $82;
+    var $93 = $91 + $82;
+    var $94 = $s1_0168 * $89;
+    var $95 = $c1_0167 * $92;
+    var $96 = $94 - $95;
+    var $97 = $c1_0167 * $89;
+    var $98 = $s1_0168 * $92;
+    var $99 = $97 + $98;
+    var $100 = $72 - $99;
+    HEAPF32[$86 >> 2] = $100;
+    var $101 = $72 + $99;
+    HEAPF32[$fi_1 >> 2] = $101;
+    var $102 = $74 - $96;
+    HEAPF32[$79 >> 2] = $102;
+    var $103 = $74 + $96;
+    HEAPF32[$63 >> 2] = $103;
+    var $104 = $c1_0167 * $93;
+    var $105 = $s1_0168 * $88;
+    var $106 = $104 - $105;
+    var $107 = $s1_0168 * $93;
+    var $108 = $c1_0167 * $88;
+    var $109 = $107 + $108;
+    var $110 = $75 - $109;
+    HEAPF32[$90 >> 2] = $110;
+    var $111 = $75 + $109;
+    HEAPF32[$gi_1 >> 2] = $111;
+    var $112 = $71 - $106;
+    HEAPF32[$76 >> 2] = $112;
+    var $113 = $71 + $106;
+    HEAPF32[$60 >> 2] = $113;
+    var $114 = $gi_1 + ($7 << 2) | 0;
+    var $115 = $fi_1 + ($7 << 2) | 0;
+    var $116 = $115 >>> 0 < $2 >>> 0;
+    if ($116) {
+      var $fi_1 = $115;
+      var $gi_1 = $114;
+      label = 8;
+      break;
+    } else {
+      label = 9;
+      break;
+    }
+   case 9:
+    var $118 = HEAPF32[$tri_0 >> 2];
+    var $119 = $c1_0167 * $118;
+    var $120 = HEAPF32[$48 >> 2];
+    var $121 = $s1_0168 * $120;
+    var $122 = $119 - $121;
+    var $123 = $c1_0167 * $120;
+    var $124 = $s1_0168 * $118;
+    var $125 = $124 + $123;
+    var $126 = $i_0166 + 1 | 0;
+    var $127 = ($126 | 0) < ($4 | 0);
+    if ($127) {
+      var $i_0166 = $126;
+      var $c1_0167 = $122;
+      var $s1_0168 = $125;
+      label = 7;
+      break;
+    } else {
+      label = 10;
+      break;
+    }
+   case 10:
+    var $128 = $tri_0 + 8 | 0;
+    var $129 = ($7 | 0) < ($1 | 0);
+    if ($129) {
+      var $tri_0 = $128;
+      var $k4_0 = $7;
+      label = 3;
+      break;
+    } else {
+      label = 11;
+      break;
+    }
+   case 11:
+    return;
+  }
+}
+_fht["X"] = 1;
+function _fft_short($gfc, $x_real, $chn, $buffer) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = $buffer + ($chn << 2) | 0;
+    var $2 = $gfc + 85816 | 0;
+    var $b_080 = 0;
+    var $indvars_iv = $x_real;
+    label = 3;
+    break;
+   case 3:
+    var $indvars_iv;
+    var $b_080;
+    var $4 = $x_real + ($b_080 << 10) + 512 | 0;
+    var $5 = $b_080 + 1 | 0;
+    var $sext = $5 * 12582912 & -1;
+    var $6 = $sext >> 16;
+    var $j_0 = 31;
+    var $x_0 = $4;
+    label = 4;
+    break;
+   case 4:
+    var $x_0;
+    var $j_0;
+    var $8 = $j_0 << 2;
+    var $9 = $8 + 5256844 | 0;
+    var $10 = HEAP8[$9];
+    var $11 = $10 & 255;
+    var $12 = 5242880 + ($11 << 2) | 0;
+    var $13 = HEAPF32[$12 >> 2];
+    var $14 = $11 + $6 | 0;
+    var $15 = HEAP32[$1 >> 2];
+    var $16 = $15 + ($14 << 2) | 0;
+    var $17 = HEAPF32[$16 >> 2];
+    var $18 = $13 * $17;
+    var $19 = 127 - $11 | 0;
+    var $20 = 5242880 + ($19 << 2) | 0;
+    var $21 = HEAPF32[$20 >> 2];
+    var $22 = $14 + 128 | 0;
+    var $23 = $15 + ($22 << 2) | 0;
+    var $24 = HEAPF32[$23 >> 2];
+    var $25 = $21 * $24;
+    var $26 = $18 - $25;
+    var $27 = $18 + $25;
+    var $28 = $11 + 64 | 0;
+    var $29 = 5242880 + ($28 << 2) | 0;
+    var $30 = HEAPF32[$29 >> 2];
+    var $31 = $14 + 64 | 0;
+    var $32 = $15 + ($31 << 2) | 0;
+    var $33 = HEAPF32[$32 >> 2];
+    var $34 = $30 * $33;
+    var $35 = 63 - $11 | 0;
+    var $36 = 5242880 + ($35 << 2) | 0;
+    var $37 = HEAPF32[$36 >> 2];
+    var $38 = $14 + 192 | 0;
+    var $39 = $15 + ($38 << 2) | 0;
+    var $40 = HEAPF32[$39 >> 2];
+    var $41 = $37 * $40;
+    var $42 = $34 - $41;
+    var $43 = $34 + $41;
+    var $44 = $x_0 - 16 | 0;
+    var $45 = $27 + $43;
+    HEAPF32[$44 >> 2] = $45;
+    var $46 = $27 - $43;
+    var $47 = $x_0 - 8 | 0;
+    HEAPF32[$47 >> 2] = $46;
+    var $48 = $26 + $42;
+    var $49 = $x_0 - 12 | 0;
+    HEAPF32[$49 >> 2] = $48;
+    var $50 = $26 - $42;
+    var $51 = $x_0 - 4 | 0;
+    HEAPF32[$51 >> 2] = $50;
+    var $52 = $11 + 1 | 0;
+    var $53 = 5242880 + ($52 << 2) | 0;
+    var $54 = HEAPF32[$53 >> 2];
+    var $55 = $14 + 1 | 0;
+    var $56 = HEAP32[$1 >> 2];
+    var $57 = $56 + ($55 << 2) | 0;
+    var $58 = HEAPF32[$57 >> 2];
+    var $59 = $54 * $58;
+    var $60 = 126 - $11 | 0;
+    var $61 = 5242880 + ($60 << 2) | 0;
+    var $62 = HEAPF32[$61 >> 2];
+    var $63 = $14 + 129 | 0;
+    var $64 = $56 + ($63 << 2) | 0;
+    var $65 = HEAPF32[$64 >> 2];
+    var $66 = $62 * $65;
+    var $67 = $59 - $66;
+    var $68 = $59 + $66;
+    var $69 = $11 + 65 | 0;
+    var $70 = 5242880 + ($69 << 2) | 0;
+    var $71 = HEAPF32[$70 >> 2];
+    var $72 = $14 + 65 | 0;
+    var $73 = $56 + ($72 << 2) | 0;
+    var $74 = HEAPF32[$73 >> 2];
+    var $75 = $71 * $74;
+    var $76 = 62 - $11 | 0;
+    var $77 = 5242880 + ($76 << 2) | 0;
+    var $78 = HEAPF32[$77 >> 2];
+    var $79 = $14 + 193 | 0;
+    var $80 = $56 + ($79 << 2) | 0;
+    var $81 = HEAPF32[$80 >> 2];
+    var $82 = $78 * $81;
+    var $83 = $75 - $82;
+    var $84 = $75 + $82;
+    var $85 = $68 + $84;
+    var $86 = $x_0 + 496 | 0;
+    HEAPF32[$86 >> 2] = $85;
+    var $87 = $68 - $84;
+    var $88 = $x_0 + 504 | 0;
+    HEAPF32[$88 >> 2] = $87;
+    var $89 = $67 + $83;
+    var $90 = $x_0 + 500 | 0;
+    HEAPF32[$90 >> 2] = $89;
+    var $91 = $67 - $83;
+    var $92 = $x_0 + 508 | 0;
+    HEAPF32[$92 >> 2] = $91;
+    var $93 = $j_0 - 1 | 0;
+    var $94 = ($j_0 | 0) > 0;
+    if ($94) {
+      var $j_0 = $93;
+      var $x_0 = $44;
+      label = 4;
+      break;
+    } else {
+      label = 5;
+      break;
+    }
+   case 5:
+    var $indvars_iv81 = $indvars_iv | 0;
+    var $96 = HEAP32[$2 >> 2];
+    FUNCTION_TABLE[$96]($indvars_iv81, 128);
+    var $scevgep = $indvars_iv + 1024 | 0;
+    var $97 = $scevgep;
+    var $exitcond = ($5 | 0) == 3;
+    if ($exitcond) {
+      label = 6;
+      break;
+    } else {
+      var $b_080 = $5;
+      var $indvars_iv = $97;
+      label = 3;
+      break;
+    }
+   case 6:
+    return;
+  }
+}
+_fft_short["X"] = 1;
+function _fft_long($gfc, $x, $chn, $buffer) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = $x + 2048 | 0;
+    var $2 = $buffer + ($chn << 2) | 0;
+    var $_0 = $1;
+    var $jj_0 = 127;
+    label = 3;
+    break;
+   case 3:
+    var $jj_0;
+    var $_0;
+    var $4 = $jj_0 + 5256844 | 0;
+    var $5 = HEAP8[$4];
+    var $6 = $5 & 255;
+    var $7 = 5243392 + ($6 << 2) | 0;
+    var $8 = HEAPF32[$7 >> 2];
+    var $9 = HEAP32[$2 >> 2];
+    var $10 = $9 + ($6 << 2) | 0;
+    var $11 = HEAPF32[$10 >> 2];
+    var $12 = $8 * $11;
+    var $13 = $6 | 512;
+    var $14 = 5243392 + ($13 << 2) | 0;
+    var $15 = HEAPF32[$14 >> 2];
+    var $16 = $9 + ($13 << 2) | 0;
+    var $17 = HEAPF32[$16 >> 2];
+    var $18 = $15 * $17;
+    var $19 = $12 - $18;
+    var $20 = $12 + $18;
+    var $21 = $6 | 256;
+    var $22 = 5243392 + ($21 << 2) | 0;
+    var $23 = HEAPF32[$22 >> 2];
+    var $24 = $9 + ($21 << 2) | 0;
+    var $25 = HEAPF32[$24 >> 2];
+    var $26 = $23 * $25;
+    var $27 = $6 | 768;
+    var $28 = 5243392 + ($27 << 2) | 0;
+    var $29 = HEAPF32[$28 >> 2];
+    var $30 = $9 + ($27 << 2) | 0;
+    var $31 = HEAPF32[$30 >> 2];
+    var $32 = $29 * $31;
+    var $33 = $26 - $32;
+    var $34 = $26 + $32;
+    var $35 = $_0 - 16 | 0;
+    var $36 = $20 + $34;
+    HEAPF32[$35 >> 2] = $36;
+    var $37 = $20 - $34;
+    var $38 = $_0 - 8 | 0;
+    HEAPF32[$38 >> 2] = $37;
+    var $39 = $19 + $33;
+    var $40 = $_0 - 12 | 0;
+    HEAPF32[$40 >> 2] = $39;
+    var $41 = $19 - $33;
+    var $42 = $_0 - 4 | 0;
+    HEAPF32[$42 >> 2] = $41;
+    var $43 = $6 + 1 | 0;
+    var $44 = 5243392 + ($43 << 2) | 0;
+    var $45 = HEAPF32[$44 >> 2];
+    var $46 = HEAP32[$2 >> 2];
+    var $47 = $46 + ($43 << 2) | 0;
+    var $48 = HEAPF32[$47 >> 2];
+    var $49 = $45 * $48;
+    var $50 = $6 + 513 | 0;
+    var $51 = 5243392 + ($50 << 2) | 0;
+    var $52 = HEAPF32[$51 >> 2];
+    var $53 = $46 + ($50 << 2) | 0;
+    var $54 = HEAPF32[$53 >> 2];
+    var $55 = $52 * $54;
+    var $56 = $49 - $55;
+    var $57 = $49 + $55;
+    var $58 = $6 + 257 | 0;
+    var $59 = 5243392 + ($58 << 2) | 0;
+    var $60 = HEAPF32[$59 >> 2];
+    var $61 = $46 + ($58 << 2) | 0;
+    var $62 = HEAPF32[$61 >> 2];
+    var $63 = $60 * $62;
+    var $64 = $6 + 769 | 0;
+    var $65 = 5243392 + ($64 << 2) | 0;
+    var $66 = HEAPF32[$65 >> 2];
+    var $67 = $46 + ($64 << 2) | 0;
+    var $68 = HEAPF32[$67 >> 2];
+    var $69 = $66 * $68;
+    var $70 = $63 - $69;
+    var $71 = $63 + $69;
+    var $72 = $57 + $71;
+    var $73 = $_0 + 2032 | 0;
+    HEAPF32[$73 >> 2] = $72;
+    var $74 = $57 - $71;
+    var $75 = $_0 + 2040 | 0;
+    HEAPF32[$75 >> 2] = $74;
+    var $76 = $56 + $70;
+    var $77 = $_0 + 2036 | 0;
+    HEAPF32[$77 >> 2] = $76;
+    var $78 = $56 - $70;
+    var $79 = $_0 + 2044 | 0;
+    HEAPF32[$79 >> 2] = $78;
+    var $80 = $jj_0 - 1 | 0;
+    var $81 = ($jj_0 | 0) > 0;
+    if ($81) {
+      var $_0 = $35;
+      var $jj_0 = $80;
+      label = 3;
+      break;
+    } else {
+      label = 4;
+      break;
+    }
+   case 4:
+    var $83 = $gfc + 85816 | 0;
+    var $84 = HEAP32[$83 >> 2];
+    FUNCTION_TABLE[$84]($x, 512);
+    return;
+  }
+}
+_fft_long["X"] = 1;
+function _init_fft($gfc) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $i_010 = 0;
+    label = 3;
+    break;
+   case 3:
+    var $i_010;
+    var $2 = $i_010 | 0;
+    var $3 = $2 + .5;
+    var $4 = $3 * 6.283185307179586;
+    var $5 = $4 * .0009765625;
+    var $6 = Math.cos($5);
+    var $7 = $6 * .5;
+    var $8 = .42 - $7;
+    var $9 = $3 * 12.566370614359172;
+    var $10 = $9 * .0009765625;
+    var $11 = Math.cos($10);
+    var $12 = $11 * .08;
+    var $13 = $8 + $12;
+    var $14 = $13;
+    var $15 = 5243392 + ($i_010 << 2) | 0;
+    HEAPF32[$15 >> 2] = $14;
+    var $16 = $i_010 + 1 | 0;
+    var $exitcond11 = ($16 | 0) == 1024;
+    if ($exitcond11) {
+      var $i_19 = 0;
+      label = 4;
+      break;
+    } else {
+      var $i_010 = $16;
+      label = 3;
+      break;
+    }
+   case 4:
+    var $i_19;
+    var $17 = $i_19 | 0;
+    var $18 = $17 + .5;
+    var $19 = $18 * 6.283185307179586;
+    var $20 = $19 * .00390625;
+    var $21 = Math.cos($20);
+    var $22 = 1 - $21;
+    var $23 = $22 * .5;
+    var $24 = $23;
+    var $25 = 5242880 + ($i_19 << 2) | 0;
+    HEAPF32[$25 >> 2] = $24;
+    var $26 = $i_19 + 1 | 0;
+    var $exitcond = ($26 | 0) == 128;
+    if ($exitcond) {
+      label = 5;
+      break;
+    } else {
+      var $i_19 = $26;
+      label = 4;
+      break;
+    }
+   case 5:
+    var $28 = $gfc + 85816 | 0;
+    HEAP32[$28 >> 2] = 50;
+    return;
+  }
+}
+function _InitGainAnalysis($rgData, $samplefreq) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = _ResetSampleFrequency($rgData, $samplefreq);
+    var $2 = ($1 | 0) == 1;
+    if ($2) {
+      label = 3;
+      break;
+    } else {
+      var $_0 = 0;
+      label = 4;
+      break;
+    }
+   case 3:
+    var $4 = $rgData + 40 | 0;
+    var $5 = $rgData + 80 | 0;
+    HEAP32[$5 >> 2] = $4;
+    var $6 = $rgData + 19420 | 0;
+    var $7 = $rgData + 19460 | 0;
+    HEAP32[$7 >> 2] = $6;
+    var $8 = $rgData + 124 | 0;
+    var $9 = $rgData + 9728 | 0;
+    HEAP32[$9 >> 2] = $8;
+    var $10 = $rgData + 19504 | 0;
+    var $11 = $rgData + 29108 | 0;
+    HEAP32[$11 >> 2] = $10;
+    var $12 = $rgData + 9772 | 0;
+    var $13 = $rgData + 19376 | 0;
+    HEAP32[$13 >> 2] = $12;
+    var $14 = $rgData + 29152 | 0;
+    var $15 = $rgData + 38756 | 0;
+    HEAP32[$15 >> 2] = $14;
+    var $16 = $rgData + 86792 | 0;
+    var $17 = $16;
+    for (var $$dest = $17 >> 2, $$stop = $$dest + 12e3; $$dest < $$stop; $$dest++) {
+      HEAP32[$$dest] = 0;
+    }
+    var $_0 = 1;
+    label = 4;
+    break;
+   case 4:
+    var $_0;
+    return $_0;
+  }
+}
+function _ResetSampleFrequency($rgData, $samplefreq) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = $rgData + 29112 | 0;
+    var $2 = $rgData + 19464 | 0;
+    var $3 = $rgData + 19380 | 0;
+    var $4 = $rgData + 9732 | 0;
+    var $5 = $rgData + 84 | 0;
+    var $6 = $rgData;
+    for (var $$dest = $6 >> 2, $$stop = $$dest + 10; $$dest < $$stop; $$dest++) {
+      HEAP32[$$dest] = 0;
+    }
+    var $7 = $5;
+    for (var $$dest = $7 >> 2, $$stop = $$dest + 10; $$dest < $$stop; $$dest++) {
+      HEAP32[$$dest] = 0;
+    }
+    var $8 = $4;
+    for (var $$dest = $8 >> 2, $$stop = $$dest + 10; $$dest < $$stop; $$dest++) {
+      HEAP32[$$dest] = 0;
+    }
+    var $9 = $3;
+    for (var $$dest = $9 >> 2, $$stop = $$dest + 10; $$dest < $$stop; $$dest++) {
+      HEAP32[$$dest] = 0;
+    }
+    var $10 = $2;
+    for (var $$dest = $10 >> 2, $$stop = $$dest + 10; $$dest < $$stop; $$dest++) {
+      HEAP32[$$dest] = 0;
+    }
+    var $11 = $1;
+    for (var $$dest = $11 >> 2, $$stop = $$dest + 10; $$dest < $$stop; $$dest++) {
+      HEAP32[$$dest] = 0;
+    }
+    if (($samplefreq | 0) == 48e3) {
+      label = 3;
+      break;
+    } else if (($samplefreq | 0) == 44100) {
+      label = 4;
+      break;
+    } else if (($samplefreq | 0) == 32e3) {
+      label = 5;
+      break;
+    } else if (($samplefreq | 0) == 24e3) {
+      label = 6;
+      break;
+    } else if (($samplefreq | 0) == 22050) {
+      label = 7;
+      break;
+    } else if (($samplefreq | 0) == 16e3) {
+      label = 8;
+      break;
+    } else if (($samplefreq | 0) == 12e3) {
+      label = 9;
+      break;
+    } else if (($samplefreq | 0) == 11025) {
+      label = 10;
+      break;
+    } else if (($samplefreq | 0) == 8e3) {
+      label = 11;
+      break;
+    } else {
+      var $_0 = 0;
+      label = 13;
+      break;
+    }
+   case 3:
+    var $13 = $rgData + 38784 | 0;
+    HEAP32[$13 >> 2] = 0;
+    label = 12;
+    break;
+   case 4:
+    var $15 = $rgData + 38784 | 0;
+    HEAP32[$15 >> 2] = 1;
+    label = 12;
+    break;
+   case 5:
+    var $17 = $rgData + 38784 | 0;
+    HEAP32[$17 >> 2] = 2;
+    label = 12;
+    break;
+   case 6:
+    var $19 = $rgData + 38784 | 0;
+    HEAP32[$19 >> 2] = 3;
+    label = 12;
+    break;
+   case 7:
+    var $21 = $rgData + 38784 | 0;
+    HEAP32[$21 >> 2] = 4;
+    label = 12;
+    break;
+   case 8:
+    var $23 = $rgData + 38784 | 0;
+    HEAP32[$23 >> 2] = 5;
+    label = 12;
+    break;
+   case 9:
+    var $25 = $rgData + 38784 | 0;
+    HEAP32[$25 >> 2] = 6;
+    label = 12;
+    break;
+   case 10:
+    var $27 = $rgData + 38784 | 0;
+    HEAP32[$27 >> 2] = 7;
+    label = 12;
+    break;
+   case 11:
+    var $29 = $rgData + 38784 | 0;
+    HEAP32[$29 >> 2] = 8;
+    label = 12;
+    break;
+   case 12:
+    var $31 = $samplefreq + 19 | 0;
+    var $32 = ($31 | 0) / 20 & -1;
+    var $33 = $rgData + 38760 | 0;
+    HEAP32[$33 >> 2] = $32;
+    var $34 = $rgData + 38764 | 0;
+    var $35 = $rgData + 38792 | 0;
+    var $36 = $35;
+    for (var $$dest = $36 >> 2, $$stop = $$dest + 12e3; $$dest < $$stop; $$dest++) {
+      HEAP32[$$dest] = 0;
+    }
+    var $37 = $34;
+    HEAP32[$37 >> 2] = 0;
+    HEAP32[$37 + 4 >> 2] = 0;
+    HEAP32[$37 + 8 >> 2] = 0;
+    HEAP32[$37 + 12 >> 2] = 0;
+    HEAP32[$37 + 16 >> 2] = 0;
+    var $_0 = 1;
+    label = 13;
+    break;
+   case 13:
+    var $_0;
+    return $_0;
+  }
+}
+_ResetSampleFrequency["X"] = 1;
+function _AnalyzeSamples($rgData, $left_samples, $right_samples, $num_samples, $num_channels) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = ($num_samples | 0) == 0;
+    if ($1) {
+      var $_0 = 1;
+      label = 27;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 3:
+    if (($num_channels | 0) == 1) {
+      label = 4;
+      break;
+    } else if (($num_channels | 0) == 2) {
+      var $_0134 = $right_samples;
+      label = 5;
+      break;
+    } else {
+      var $_0 = 0;
+      label = 27;
+      break;
+    }
+   case 4:
+    var $_0134 = $left_samples;
+    label = 5;
+    break;
+   case 5:
+    var $_0134;
+    var $5 = $num_samples >>> 0 < 10;
+    var $6 = $rgData + 40 | 0;
+    var $7 = $6;
+    var $8 = $left_samples;
+    if ($5) {
+      label = 6;
+      break;
+    } else {
+      label = 7;
+      break;
+    }
+   case 6:
+    var $10 = $num_samples << 2;
+    _memcpy($7, $8, $10);
+    var $11 = $rgData + 19420 | 0;
+    var $12 = $11;
+    var $13 = $_0134;
+    _memcpy($12, $13, $10);
+    label = 8;
+    break;
+   case 7:
+    for (var $$src = $8 >> 2, $$dest = $7 >> 2, $$stop = $$src + 10; $$src < $$stop; $$src++, $$dest++) {
+      HEAP32[$$dest] = HEAP32[$$src];
+    }
+    var $15 = $rgData + 19420 | 0;
+    var $16 = $15;
+    var $17 = $_0134;
+    for (var $$src = $17 >> 2, $$dest = $16 >> 2, $$stop = $$src + 10; $$src < $$stop; $$src++, $$dest++) {
+      HEAP32[$$dest] = HEAP32[$$src];
+    }
+    label = 8;
+    break;
+   case 8:
+    var $18 = $rgData + 38760 | 0;
+    var $19 = $rgData + 38764 | 0;
+    var $20 = $rgData + 80 | 0;
+    var $21 = $rgData + 19460 | 0;
+    var $22 = $rgData + 9728 | 0;
+    var $23 = $rgData + 38784 | 0;
+    var $24 = $rgData + 29108 | 0;
+    var $25 = $rgData + 19376 | 0;
+    var $26 = $rgData + 38756 | 0;
+    var $27 = $rgData + 38768 | 0;
+    var $28 = $rgData + 38776 | 0;
+    var $29 = $rgData + 9732 | 0;
+    var $30 = $29;
+    var $31 = $rgData + 29112 | 0;
+    var $32 = $31;
+    var $33 = $rgData + 84 | 0;
+    var $34 = $33;
+    var $35 = $rgData + 19464 | 0;
+    var $36 = $35;
+    var $37 = $rgData + 38768 | 0;
+    var $38 = $rgData + 38776 | 0;
+    var $39 = $rgData + 38768 | 0;
+    var $40 = $rgData + 38776 | 0;
+    var $cursamplepos_0 = 0;
+    var $batchsamples_0 = $num_samples;
+    label = 9;
+    break;
+   case 9:
+    var $batchsamples_0;
+    var $cursamplepos_0;
+    var $42 = ($batchsamples_0 | 0) > 0;
+    if ($42) {
+      label = 10;
+      break;
+    } else {
+      label = 24;
+      break;
+    }
+   case 10:
+    var $44 = HEAP32[$18 >> 2];
+    var $45 = HEAP32[$19 >> 2];
+    var $46 = $44 - $45 | 0;
+    var $47 = ($batchsamples_0 | 0) > ($46 | 0);
+    var $_batchsamples_0 = $47 ? $46 : $batchsamples_0;
+    var $48 = ($cursamplepos_0 | 0) < 10;
+    if ($48) {
+      label = 11;
+      break;
+    } else {
+      var $cursamples_0 = $_batchsamples_0;
+      var $_0134_pn = $_0134;
+      var $left_samples_pn = $left_samples;
+      label = 12;
+      break;
+    }
+   case 11:
+    var $50 = HEAP32[$20 >> 2];
+    var $51 = HEAP32[$21 >> 2];
+    var $52 = 10 - $cursamplepos_0 | 0;
+    var $53 = ($_batchsamples_0 | 0) > ($52 | 0);
+    var $__batchsamples_0 = $53 ? $52 : $_batchsamples_0;
+    var $cursamples_0 = $__batchsamples_0;
+    var $_0134_pn = $51;
+    var $left_samples_pn = $50;
+    label = 12;
+    break;
+   case 12:
+    var $left_samples_pn;
+    var $_0134_pn;
+    var $cursamples_0;
+    var $curright_0 = $_0134_pn + ($cursamplepos_0 << 2) | 0;
+    var $curleft_0 = $left_samples_pn + ($cursamplepos_0 << 2) | 0;
+    var $55 = HEAP32[$22 >> 2];
+    var $56 = HEAP32[$19 >> 2];
+    var $57 = $55 + ($56 << 2) | 0;
+    var $58 = HEAP32[$23 >> 2];
+    var $59 = 5388128 + $58 * 84 | 0;
+    _filterYule($curleft_0, $57, $cursamples_0, $59);
+    var $60 = HEAP32[$24 >> 2];
+    var $61 = HEAP32[$19 >> 2];
+    var $62 = $60 + ($61 << 2) | 0;
+    var $63 = HEAP32[$23 >> 2];
+    var $64 = 5388128 + $63 * 84 | 0;
+    _filterYule($curright_0, $62, $cursamples_0, $64);
+    var $65 = HEAP32[$22 >> 2];
+    var $66 = HEAP32[$19 >> 2];
+    var $67 = $65 + ($66 << 2) | 0;
+    var $68 = HEAP32[$25 >> 2];
+    var $69 = $68 + ($66 << 2) | 0;
+    var $70 = HEAP32[$23 >> 2];
+    var $71 = 5388884 + $70 * 20 | 0;
+    _filterButter($67, $69, $cursamples_0, $71);
+    var $72 = HEAP32[$24 >> 2];
+    var $73 = HEAP32[$19 >> 2];
+    var $74 = $72 + ($73 << 2) | 0;
+    var $75 = HEAP32[$26 >> 2];
+    var $76 = $75 + ($73 << 2) | 0;
+    var $77 = HEAP32[$23 >> 2];
+    var $78 = 5388884 + $77 * 20 | 0;
+    _filterButter($74, $76, $cursamples_0, $78);
+    var $79 = HEAP32[$25 >> 2];
+    var $80 = HEAP32[$19 >> 2];
+    var $81 = $79 + ($80 << 2) | 0;
+    var $82 = HEAP32[$26 >> 2];
+    var $83 = $82 + ($80 << 2) | 0;
+    var $84 = ($cursamples_0 | 0) % 8;
+    var $85 = ($84 | 0) == 0;
+    if ($85) {
+      var $curleft_1_lcssa = $81;
+      var $curright_1_lcssa = $83;
+      label = 16;
+      break;
+    } else {
+      label = 13;
+      break;
+    }
+   case 13:
+    var $86 = $80 + $84 | 0;
+    var $scevgep = $82 + ($86 << 2) | 0;
+    var $curleft_1138 = $81;
+    var $curright_1139 = $83;
+    var $i_0140 = $84;
+    label = 14;
+    break;
+   case 14:
+    var $i_0140;
+    var $curright_1139;
+    var $curleft_1138;
+    var $88 = $i_0140 - 1 | 0;
+    var $89 = $curleft_1138 + 4 | 0;
+    var $90 = HEAPF32[$curleft_1138 >> 2];
+    var $91 = $90;
+    var $92 = _fsqr($91);
+    var $93 = (HEAP32[tempDoublePtr >> 2] = HEAP32[$39 >> 2], HEAP32[tempDoublePtr + 4 >> 2] = HEAP32[$39 + 4 >> 2], HEAPF64[tempDoublePtr >> 3]);
+    var $94 = $92 + $93;
+    HEAPF64[tempDoublePtr >> 3] = $94, HEAP32[$39 >> 2] = HEAP32[tempDoublePtr >> 2], HEAP32[$39 + 4 >> 2] = HEAP32[tempDoublePtr + 4 >> 2];
+    var $95 = $curright_1139 + 4 | 0;
+    var $96 = HEAPF32[$curright_1139 >> 2];
+    var $97 = $96;
+    var $98 = _fsqr($97);
+    var $99 = (HEAP32[tempDoublePtr >> 2] = HEAP32[$40 >> 2], HEAP32[tempDoublePtr + 4 >> 2] = HEAP32[$40 + 4 >> 2], HEAPF64[tempDoublePtr >> 3]);
+    var $100 = $98 + $99;
+    HEAPF64[tempDoublePtr >> 3] = $100, HEAP32[$40 >> 2] = HEAP32[tempDoublePtr >> 2], HEAP32[$40 + 4 >> 2] = HEAP32[tempDoublePtr + 4 >> 2];
+    var $101 = ($88 | 0) == 0;
+    if ($101) {
+      label = 15;
+      break;
+    } else {
+      var $curleft_1138 = $89;
+      var $curright_1139 = $95;
+      var $i_0140 = $88;
+      label = 14;
+      break;
+    }
+   case 15:
+    var $scevgep149 = $79 + ($86 << 2) | 0;
+    var $curleft_1_lcssa = $scevgep149;
+    var $curright_1_lcssa = $scevgep;
+    label = 16;
+    break;
+   case 16:
+    var $curright_1_lcssa;
+    var $curleft_1_lcssa;
+    var $cursamples_0_off = $cursamples_0 + 7 | 0;
+    var $103 = $cursamples_0_off >>> 0 < 15;
+    if ($103) {
+      label = 19;
+      break;
+    } else {
+      label = 17;
+      break;
+    }
+   case 17:
+    var $104 = ($cursamples_0 | 0) / 8 & -1;
+    var $curleft_2142 = $curleft_1_lcssa;
+    var $curright_2143 = $curright_1_lcssa;
+    var $i_1144 = $104;
+    label = 18;
+    break;
+   case 18:
+    var $i_1144;
+    var $curright_2143;
+    var $curleft_2142;
+    var $106 = $i_1144 - 1 | 0;
+    var $107 = HEAPF32[$curleft_2142 >> 2];
+    var $108 = $107;
+    var $109 = _fsqr($108);
+    var $110 = $curleft_2142 + 4 | 0;
+    var $111 = HEAPF32[$110 >> 2];
+    var $112 = $111;
+    var $113 = _fsqr($112);
+    var $114 = $109 + $113;
+    var $115 = $curleft_2142 + 8 | 0;
+    var $116 = HEAPF32[$115 >> 2];
+    var $117 = $116;
+    var $118 = _fsqr($117);
+    var $119 = $114 + $118;
+    var $120 = $curleft_2142 + 12 | 0;
+    var $121 = HEAPF32[$120 >> 2];
+    var $122 = $121;
+    var $123 = _fsqr($122);
+    var $124 = $119 + $123;
+    var $125 = $curleft_2142 + 16 | 0;
+    var $126 = HEAPF32[$125 >> 2];
+    var $127 = $126;
+    var $128 = _fsqr($127);
+    var $129 = $124 + $128;
+    var $130 = $curleft_2142 + 20 | 0;
+    var $131 = HEAPF32[$130 >> 2];
+    var $132 = $131;
+    var $133 = _fsqr($132);
+    var $134 = $129 + $133;
+    var $135 = $curleft_2142 + 24 | 0;
+    var $136 = HEAPF32[$135 >> 2];
+    var $137 = $136;
+    var $138 = _fsqr($137);
+    var $139 = $134 + $138;
+    var $140 = $curleft_2142 + 28 | 0;
+    var $141 = HEAPF32[$140 >> 2];
+    var $142 = $141;
+    var $143 = _fsqr($142);
+    var $144 = $139 + $143;
+    var $145 = (HEAP32[tempDoublePtr >> 2] = HEAP32[$37 >> 2], HEAP32[tempDoublePtr + 4 >> 2] = HEAP32[$37 + 4 >> 2], HEAPF64[tempDoublePtr >> 3]);
+    var $146 = $145 + $144;
+    HEAPF64[tempDoublePtr >> 3] = $146, HEAP32[$37 >> 2] = HEAP32[tempDoublePtr >> 2], HEAP32[$37 + 4 >> 2] = HEAP32[tempDoublePtr + 4 >> 2];
+    var $147 = $curleft_2142 + 32 | 0;
+    var $148 = HEAPF32[$curright_2143 >> 2];
+    var $149 = $148;
+    var $150 = _fsqr($149);
+    var $151 = $curright_2143 + 4 | 0;
+    var $152 = HEAPF32[$151 >> 2];
+    var $153 = $152;
+    var $154 = _fsqr($153);
+    var $155 = $150 + $154;
+    var $156 = $curright_2143 + 8 | 0;
+    var $157 = HEAPF32[$156 >> 2];
+    var $158 = $157;
+    var $159 = _fsqr($158);
+    var $160 = $155 + $159;
+    var $161 = $curright_2143 + 12 | 0;
+    var $162 = HEAPF32[$161 >> 2];
+    var $163 = $162;
+    var $164 = _fsqr($163);
+    var $165 = $160 + $164;
+    var $166 = $curright_2143 + 16 | 0;
+    var $167 = HEAPF32[$166 >> 2];
+    var $168 = $167;
+    var $169 = _fsqr($168);
+    var $170 = $165 + $169;
+    var $171 = $curright_2143 + 20 | 0;
+    var $172 = HEAPF32[$171 >> 2];
+    var $173 = $172;
+    var $174 = _fsqr($173);
+    var $175 = $170 + $174;
+    var $176 = $curright_2143 + 24 | 0;
+    var $177 = HEAPF32[$176 >> 2];
+    var $178 = $177;
+    var $179 = _fsqr($178);
+    var $180 = $175 + $179;
+    var $181 = $curright_2143 + 28 | 0;
+    var $182 = HEAPF32[$181 >> 2];
+    var $183 = $182;
+    var $184 = _fsqr($183);
+    var $185 = $180 + $184;
+    var $186 = (HEAP32[tempDoublePtr >> 2] = HEAP32[$38 >> 2], HEAP32[tempDoublePtr + 4 >> 2] = HEAP32[$38 + 4 >> 2], HEAPF64[tempDoublePtr >> 3]);
+    var $187 = $186 + $185;
+    HEAPF64[tempDoublePtr >> 3] = $187, HEAP32[$38 >> 2] = HEAP32[tempDoublePtr >> 2], HEAP32[$38 + 4 >> 2] = HEAP32[tempDoublePtr + 4 >> 2];
+    var $188 = $curright_2143 + 32 | 0;
+    var $189 = ($106 | 0) == 0;
+    if ($189) {
+      label = 19;
+      break;
+    } else {
+      var $curleft_2142 = $147;
+      var $curright_2143 = $188;
+      var $i_1144 = $106;
+      label = 18;
+      break;
+    }
+   case 19:
+    var $190 = $batchsamples_0 - $cursamples_0 | 0;
+    var $191 = $cursamples_0 + $cursamplepos_0 | 0;
+    var $192 = HEAP32[$19 >> 2];
+    var $193 = $192 + $cursamples_0 | 0;
+    HEAP32[$19 >> 2] = $193;
+    var $194 = HEAP32[$18 >> 2];
+    var $195 = ($193 | 0) == ($194 | 0);
+    if ($195) {
+      label = 20;
+      break;
+    } else {
+      label = 23;
+      break;
+    }
+   case 20:
+    var $197 = (HEAP32[tempDoublePtr >> 2] = HEAP32[$27 >> 2], HEAP32[tempDoublePtr + 4 >> 2] = HEAP32[$27 + 4 >> 2], HEAPF64[tempDoublePtr >> 3]);
+    var $198 = (HEAP32[tempDoublePtr >> 2] = HEAP32[$28 >> 2], HEAP32[tempDoublePtr + 4 >> 2] = HEAP32[$28 + 4 >> 2], HEAPF64[tempDoublePtr >> 3]);
+    var $199 = $197 + $198;
+    var $200 = $193 | 0;
+    var $201 = $199 / $200;
+    var $202 = $201 * .5;
+    var $203 = $202 + 1e-37;
+    var $204 = _log10($203);
+    var $205 = $204 * 1e3;
+    var $206 = $205 > 0;
+    if ($206) {
+      label = 21;
+      break;
+    } else {
+      var $210 = 0;
+      label = 22;
+      break;
+    }
+   case 21:
+    var $208 = $205 >= 0 ? Math.floor($205) : Math.ceil($205);
+    var $210 = $208;
+    label = 22;
+    break;
+   case 22:
+    var $210;
+    var $211 = $210 >>> 0 > 11999;
+    var $_ = $211 ? 11999 : $210;
+    var $212 = $rgData + 38792 + ($_ << 2) | 0;
+    var $213 = HEAP32[$212 >> 2];
+    var $214 = $213 + 1 | 0;
+    HEAP32[$212 >> 2] = $214;
+    var $215 = $27;
+    HEAP32[$215 >> 2] = 0;
+    HEAP32[$215 + 4 >> 2] = 0;
+    HEAP32[$215 + 8 >> 2] = 0;
+    HEAP32[$215 + 12 >> 2] = 0;
+    var $216 = HEAP32[$19 >> 2];
+    var $217 = $rgData + 9732 + ($216 << 2) | 0;
+    var $218 = $217;
+    _memmove($30, $218, 40, 4, 0);
+    var $219 = HEAP32[$19 >> 2];
+    var $220 = $rgData + 29112 + ($219 << 2) | 0;
+    var $221 = $220;
+    _memmove($32, $221, 40, 4, 0);
+    var $222 = HEAP32[$19 >> 2];
+    var $223 = $rgData + 84 + ($222 << 2) | 0;
+    var $224 = $223;
+    _memmove($34, $224, 40, 4, 0);
+    var $225 = HEAP32[$19 >> 2];
+    var $226 = $rgData + 19464 + ($225 << 2) | 0;
+    var $227 = $226;
+    _memmove($36, $227, 40, 4, 0);
+    HEAP32[$19 >> 2] = 0;
+    label = 23;
+    break;
+   case 23:
+    var $229 = HEAP32[$19 >> 2];
+    var $230 = HEAP32[$18 >> 2];
+    var $231 = ($229 | 0) > ($230 | 0);
+    if ($231) {
+      var $_0 = 0;
+      label = 27;
+      break;
+    } else {
+      var $cursamplepos_0 = $191;
+      var $batchsamples_0 = $190;
+      label = 9;
+      break;
+    }
+   case 24:
+    var $233 = $rgData;
+    if ($5) {
+      label = 25;
+      break;
+    } else {
+      label = 26;
+      break;
+    }
+   case 25:
+    var $235 = $rgData + ($num_samples << 2) | 0;
+    var $236 = $235;
+    var $237 = 10 - $num_samples | 0;
+    var $238 = $237 << 2;
+    _memmove($233, $236, $238, 4, 0);
+    var $239 = $rgData + 19380 | 0;
+    var $240 = $239;
+    var $241 = $rgData + 19380 + ($num_samples << 2) | 0;
+    var $242 = $241;
+    _memmove($240, $242, $238, 4, 0);
+    var $243 = $rgData + ($237 << 2) | 0;
+    var $244 = $243;
+    var $245 = $num_samples << 2;
+    _memcpy($244, $8, $245);
+    var $246 = $rgData + 19380 + ($237 << 2) | 0;
+    var $247 = $246;
+    var $248 = $_0134;
+    _memcpy($247, $248, $245);
+    var $_0 = 1;
+    label = 27;
+    break;
+   case 26:
+    var $_sum = $num_samples - 10 | 0;
+    var $250 = $left_samples + ($_sum << 2) | 0;
+    var $251 = $250;
+    for (var $$src = $251 >> 2, $$dest = $233 >> 2, $$stop = $$src + 10; $$src < $$stop; $$src++, $$dest++) {
+      HEAP32[$$dest] = HEAP32[$$src];
+    }
+    var $252 = $rgData + 19380 | 0;
+    var $253 = $252;
+    var $254 = $_0134 + ($_sum << 2) | 0;
+    var $255 = $254;
+    for (var $$src = $255 >> 2, $$dest = $253 >> 2, $$stop = $$src + 10; $$src < $$stop; $$src++, $$dest++) {
+      HEAP32[$$dest] = HEAP32[$$src];
+    }
+    var $_0 = 1;
+    label = 27;
+    break;
+   case 27:
+    var $_0;
+    return $_0;
+  }
+}
+_AnalyzeSamples["X"] = 1;
+function _hasUcs2ByteOrderMarker($bom) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    if ($bom << 16 >> 16 == -2 | $bom << 16 >> 16 == -257) {
+      var $_0 = 1;
+      label = 4;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 3:
+    var $_0 = 0;
+    label = 4;
+    break;
+   case 4:
+    var $_0;
+    return $_0;
+  }
+}
+function _fsqr($d) {
+  return $d * $d;
+}
+function _filterYule($input, $output, $nSamples, $kernel) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = ($nSamples | 0) == 0;
+    if ($1) {
+      label = 5;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 3:
+    var $2 = $kernel + 4 | 0;
+    var $3 = $kernel + 8 | 0;
+    var $4 = $kernel + 12 | 0;
+    var $5 = $kernel + 16 | 0;
+    var $6 = $kernel + 20 | 0;
+    var $7 = $kernel + 24 | 0;
+    var $8 = $kernel + 28 | 0;
+    var $9 = $kernel + 32 | 0;
+    var $10 = $kernel + 36 | 0;
+    var $11 = $kernel + 40 | 0;
+    var $12 = $kernel + 44 | 0;
+    var $13 = $kernel + 48 | 0;
+    var $14 = $kernel + 52 | 0;
+    var $15 = $kernel + 56 | 0;
+    var $16 = $kernel + 60 | 0;
+    var $17 = $kernel + 64 | 0;
+    var $18 = $kernel + 68 | 0;
+    var $19 = $kernel + 72 | 0;
+    var $20 = $kernel + 76 | 0;
+    var $21 = $kernel + 80 | 0;
+    var $_04748 = $output;
+    var $_04649 = $nSamples;
+    var $_050 = $input;
+    label = 4;
+    break;
+   case 4:
+    var $_050;
+    var $_04649;
+    var $_04748;
+    var $23 = $_04649 - 1 | 0;
+    var $24 = HEAPF32[$_050 >> 2];
+    var $25 = HEAPF32[$kernel >> 2];
+    var $26 = $24 * $25;
+    var $27 = $26;
+    var $28 = $27 + 1e-10;
+    var $29 = $_04748 - 4 | 0;
+    var $30 = HEAPF32[$29 >> 2];
+    var $31 = HEAPF32[$2 >> 2];
+    var $32 = $30 * $31;
+    var $33 = $32;
+    var $34 = $28 - $33;
+    var $35 = $_050 - 4 | 0;
+    var $36 = HEAPF32[$35 >> 2];
+    var $37 = HEAPF32[$3 >> 2];
+    var $38 = $36 * $37;
+    var $39 = $38;
+    var $40 = $34 + $39;
+    var $41 = $_04748 - 8 | 0;
+    var $42 = HEAPF32[$41 >> 2];
+    var $43 = HEAPF32[$4 >> 2];
+    var $44 = $42 * $43;
+    var $45 = $44;
+    var $46 = $40 - $45;
+    var $47 = $_050 - 8 | 0;
+    var $48 = HEAPF32[$47 >> 2];
+    var $49 = HEAPF32[$5 >> 2];
+    var $50 = $48 * $49;
+    var $51 = $50;
+    var $52 = $46 + $51;
+    var $53 = $_04748 - 12 | 0;
+    var $54 = HEAPF32[$53 >> 2];
+    var $55 = HEAPF32[$6 >> 2];
+    var $56 = $54 * $55;
+    var $57 = $56;
+    var $58 = $52 - $57;
+    var $59 = $_050 - 12 | 0;
+    var $60 = HEAPF32[$59 >> 2];
+    var $61 = HEAPF32[$7 >> 2];
+    var $62 = $60 * $61;
+    var $63 = $62;
+    var $64 = $58 + $63;
+    var $65 = $_04748 - 16 | 0;
+    var $66 = HEAPF32[$65 >> 2];
+    var $67 = HEAPF32[$8 >> 2];
+    var $68 = $66 * $67;
+    var $69 = $68;
+    var $70 = $64 - $69;
+    var $71 = $_050 - 16 | 0;
+    var $72 = HEAPF32[$71 >> 2];
+    var $73 = HEAPF32[$9 >> 2];
+    var $74 = $72 * $73;
+    var $75 = $74;
+    var $76 = $70 + $75;
+    var $77 = $_04748 - 20 | 0;
+    var $78 = HEAPF32[$77 >> 2];
+    var $79 = HEAPF32[$10 >> 2];
+    var $80 = $78 * $79;
+    var $81 = $80;
+    var $82 = $76 - $81;
+    var $83 = $_050 - 20 | 0;
+    var $84 = HEAPF32[$83 >> 2];
+    var $85 = HEAPF32[$11 >> 2];
+    var $86 = $84 * $85;
+    var $87 = $86;
+    var $88 = $82 + $87;
+    var $89 = $_04748 - 24 | 0;
+    var $90 = HEAPF32[$89 >> 2];
+    var $91 = HEAPF32[$12 >> 2];
+    var $92 = $90 * $91;
+    var $93 = $92;
+    var $94 = $88 - $93;
+    var $95 = $_050 - 24 | 0;
+    var $96 = HEAPF32[$95 >> 2];
+    var $97 = HEAPF32[$13 >> 2];
+    var $98 = $96 * $97;
+    var $99 = $98;
+    var $100 = $94 + $99;
+    var $101 = $_04748 - 28 | 0;
+    var $102 = HEAPF32[$101 >> 2];
+    var $103 = HEAPF32[$14 >> 2];
+    var $104 = $102 * $103;
+    var $105 = $104;
+    var $106 = $100 - $105;
+    var $107 = $_050 - 28 | 0;
+    var $108 = HEAPF32[$107 >> 2];
+    var $109 = HEAPF32[$15 >> 2];
+    var $110 = $108 * $109;
+    var $111 = $110;
+    var $112 = $106 + $111;
+    var $113 = $_04748 - 32 | 0;
+    var $114 = HEAPF32[$113 >> 2];
+    var $115 = HEAPF32[$16 >> 2];
+    var $116 = $114 * $115;
+    var $117 = $116;
+    var $118 = $112 - $117;
+    var $119 = $_050 - 32 | 0;
+    var $120 = HEAPF32[$119 >> 2];
+    var $121 = HEAPF32[$17 >> 2];
+    var $122 = $120 * $121;
+    var $123 = $122;
+    var $124 = $118 + $123;
+    var $125 = $_04748 - 36 | 0;
+    var $126 = HEAPF32[$125 >> 2];
+    var $127 = HEAPF32[$18 >> 2];
+    var $128 = $126 * $127;
+    var $129 = $128;
+    var $130 = $124 - $129;
+    var $131 = $_050 - 36 | 0;
+    var $132 = HEAPF32[$131 >> 2];
+    var $133 = HEAPF32[$19 >> 2];
+    var $134 = $132 * $133;
+    var $135 = $134;
+    var $136 = $130 + $135;
+    var $137 = $_04748 - 40 | 0;
+    var $138 = HEAPF32[$137 >> 2];
+    var $139 = HEAPF32[$20 >> 2];
+    var $140 = $138 * $139;
+    var $141 = $140;
+    var $142 = $136 - $141;
+    var $143 = $_050 - 40 | 0;
+    var $144 = HEAPF32[$143 >> 2];
+    var $145 = HEAPF32[$21 >> 2];
+    var $146 = $144 * $145;
+    var $147 = $146;
+    var $148 = $142 + $147;
+    var $149 = $148;
+    HEAPF32[$_04748 >> 2] = $149;
+    var $150 = $_04748 + 4 | 0;
+    var $151 = $_050 + 4 | 0;
+    var $152 = ($23 | 0) == 0;
+    if ($152) {
+      label = 5;
+      break;
+    } else {
+      var $_04748 = $150;
+      var $_04649 = $23;
+      var $_050 = $151;
+      label = 4;
+      break;
+    }
+   case 5:
+    return;
+  }
+}
+_filterYule["X"] = 1;
+function _filterButter($input, $output, $nSamples, $kernel) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = ($nSamples | 0) == 0;
+    if ($1) {
+      label = 5;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 3:
+    var $2 = $kernel + 4 | 0;
+    var $3 = $kernel + 8 | 0;
+    var $4 = $kernel + 12 | 0;
+    var $5 = $kernel + 16 | 0;
+    var $_01516 = $output;
+    var $_01417 = $nSamples;
+    var $_018 = $input;
+    label = 4;
+    break;
+   case 4:
+    var $_018;
+    var $_01417;
+    var $_01516;
+    var $7 = $_01417 - 1 | 0;
+    var $8 = HEAPF32[$_018 >> 2];
+    var $9 = HEAPF32[$kernel >> 2];
+    var $10 = $8 * $9;
+    var $11 = $_01516 - 4 | 0;
+    var $12 = HEAPF32[$11 >> 2];
+    var $13 = HEAPF32[$2 >> 2];
+    var $14 = $12 * $13;
+    var $15 = $10 - $14;
+    var $16 = $_018 - 4 | 0;
+    var $17 = HEAPF32[$16 >> 2];
+    var $18 = HEAPF32[$3 >> 2];
+    var $19 = $17 * $18;
+    var $20 = $15 + $19;
+    var $21 = $_01516 - 8 | 0;
+    var $22 = HEAPF32[$21 >> 2];
+    var $23 = HEAPF32[$4 >> 2];
+    var $24 = $22 * $23;
+    var $25 = $20 - $24;
+    var $26 = $_018 - 8 | 0;
+    var $27 = HEAPF32[$26 >> 2];
+    var $28 = HEAPF32[$5 >> 2];
+    var $29 = $27 * $28;
+    var $30 = $25 + $29;
+    HEAPF32[$_01516 >> 2] = $30;
+    var $31 = $_01516 + 4 | 0;
+    var $32 = $_018 + 4 | 0;
+    var $33 = ($7 | 0) == 0;
+    if ($33) {
+      label = 5;
+      break;
+    } else {
+      var $_01516 = $31;
+      var $_01417 = $7;
+      var $_018 = $32;
+      label = 4;
+      break;
+    }
+   case 5:
+    return;
+  }
+}
+function _id3tag_add_v2($gfp) {
+  var $3 = HEAP32[$gfp + 288 >> 2] + 85692 | 0;
+  HEAP32[$3 >> 2] = HEAP32[$3 >> 2] & -7 | 2;
+  return;
+}
+function _id3tag_v1_only($gfp) {
+  var $3 = HEAP32[$gfp + 288 >> 2] + 85692 | 0;
+  HEAP32[$3 >> 2] = HEAP32[$3 >> 2] & -15 | 4;
+  return;
+}
+function _id3tag_v2_only($gfp) {
+  var $3 = HEAP32[$gfp + 288 >> 2] + 85692 | 0;
+  HEAP32[$3 >> 2] = HEAP32[$3 >> 2] & -13 | 8;
+  return;
+}
+function _id3tag_space_v1($gfp) {
+  var $3 = HEAP32[$gfp + 288 >> 2] + 85692 | 0;
+  HEAP32[$3 >> 2] = HEAP32[$3 >> 2] & -25 | 16;
+  return;
+}
+function _id3tag_set_pad($gfp, $n) {
+  var $2 = HEAP32[$gfp + 288 >> 2];
+  var $3 = $2 + 85692 | 0;
+  HEAP32[$3 >> 2] = HEAP32[$3 >> 2] & -39 | 34;
+  HEAP32[$2 + 85732 >> 2] = $n;
+  return;
+}
+function _toID3v2TagId($s) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = ($s | 0) == 0;
+    if ($1) {
+      var $_0 = 0;
+      label = 6;
+      break;
+    } else {
+      var $i_0 = 0;
+      var $x_0 = 0;
+      label = 3;
+      break;
+    }
+   case 3:
+    var $x_0;
+    var $i_0;
+    var $2 = $i_0 >>> 0 < 4;
+    if ($2) {
+      label = 4;
+      break;
+    } else {
+      var $_0 = $x_0;
+      label = 6;
+      break;
+    }
+   case 4:
+    var $4 = $s + $i_0 | 0;
+    var $5 = HEAP8[$4];
+    var $6 = $5 << 24 >> 24 == 0;
+    if ($6) {
+      var $_0 = $x_0;
+      label = 6;
+      break;
+    } else {
+      label = 5;
+      break;
+    }
+   case 5:
+    var $8 = $5 & 255;
+    var $9 = $x_0 << 8;
+    var $10 = $8 | $9;
+    var $_off = $5 - 65 & 255;
+    var $11 = ($_off & 255) > 25;
+    var $_off14 = $5 - 48 & 255;
+    var $12 = ($_off14 & 255) > 9;
+    var $or_cond = $11 & $12;
+    var $13 = $i_0 + 1 | 0;
+    if ($or_cond) {
+      var $_0 = 0;
+      label = 6;
+      break;
+    } else {
+      var $i_0 = $13;
+      var $x_0 = $10;
+      label = 3;
+      break;
+    }
+   case 6:
+    var $_0;
+    return $_0;
+  }
+}
+function _GetTitleGain($rgData) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = $rgData + 38792 | 0;
+    var $2 = _analyzeResult($1);
+    var $i_026 = 0;
+    label = 3;
+    break;
+   case 3:
+    var $i_026;
+    var $4 = $rgData + 38792 + ($i_026 << 2) | 0;
+    var $5 = HEAP32[$4 >> 2];
+    var $6 = $rgData + 86792 + ($i_026 << 2) | 0;
+    var $7 = HEAP32[$6 >> 2];
+    var $8 = $7 + $5 | 0;
+    HEAP32[$6 >> 2] = $8;
+    HEAP32[$4 >> 2] = 0;
+    var $9 = $i_026 + 1 | 0;
+    var $exitcond = ($9 | 0) == 12e3;
+    if ($exitcond) {
+      label = 4;
+      break;
+    } else {
+      var $i_026 = $9;
+      label = 3;
+      break;
+    }
+   case 4:
+    var $10 = $rgData + 29112 | 0;
+    var $11 = $rgData + 19464 | 0;
+    var $12 = $rgData + 19380 | 0;
+    var $13 = $rgData + 9732 | 0;
+    var $14 = $rgData + 84 | 0;
+    var $15 = $rgData + 38764 | 0;
+    var $16 = $rgData;
+    for (var $$dest = $16 >> 2, $$stop = $$dest + 10; $$dest < $$stop; $$dest++) {
+      HEAP32[$$dest] = 0;
+    }
+    var $17 = $14;
+    for (var $$dest = $17 >> 2, $$stop = $$dest + 10; $$dest < $$stop; $$dest++) {
+      HEAP32[$$dest] = 0;
+    }
+    var $18 = $13;
+    for (var $$dest = $18 >> 2, $$stop = $$dest + 10; $$dest < $$stop; $$dest++) {
+      HEAP32[$$dest] = 0;
+    }
+    var $19 = $12;
+    for (var $$dest = $19 >> 2, $$stop = $$dest + 10; $$dest < $$stop; $$dest++) {
+      HEAP32[$$dest] = 0;
+    }
+    var $20 = $11;
+    for (var $$dest = $20 >> 2, $$stop = $$dest + 10; $$dest < $$stop; $$dest++) {
+      HEAP32[$$dest] = 0;
+    }
+    var $21 = $10;
+    for (var $$dest = $21 >> 2, $$stop = $$dest + 10; $$dest < $$stop; $$dest++) {
+      HEAP32[$$dest] = 0;
+    }
+    var $22 = $15;
+    HEAP32[$22 >> 2] = 0;
+    HEAP32[$22 + 4 >> 2] = 0;
+    HEAP32[$22 + 8 >> 2] = 0;
+    HEAP32[$22 + 12 >> 2] = 0;
+    HEAP32[$22 + 16 >> 2] = 0;
+    return $2;
+  }
+}
+function _analyzeResult($Array) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $elems_01 = 0;
+    var $i_02 = 0;
+    label = 3;
+    break;
+   case 3:
+    var $i_02;
+    var $elems_01;
+    var $2 = $Array + ($i_02 << 2) | 0;
+    var $3 = HEAP32[$2 >> 2];
+    var $4 = $3 + $elems_01 | 0;
+    var $5 = $i_02 + 1 | 0;
+    var $exitcond = ($5 | 0) == 12e3;
+    if ($exitcond) {
+      label = 4;
+      break;
+    } else {
+      var $elems_01 = $4;
+      var $i_02 = $5;
+      label = 3;
+      break;
+    }
+   case 4:
+    var $7 = ($4 | 0) == 0;
+    if ($7) {
+      var $_0 = -24601;
+      label = 9;
+      break;
+    } else {
+      label = 5;
+      break;
+    }
+   case 5:
+    var $9 = $4 >>> 0;
+    var $10 = $9 * .050000000000000044;
+    var $11 = Math.ceil($10);
+    var $12 = $11 >= 0 ? Math.floor($11) : Math.ceil($11);
+    var $i_1 = 12e3;
+    var $sum_0 = 0;
+    label = 6;
+    break;
+   case 6:
+    var $sum_0;
+    var $i_1;
+    var $14 = $i_1 - 1 | 0;
+    var $15 = ($i_1 | 0) == 0;
+    if ($15) {
+      label = 8;
+      break;
+    } else {
+      label = 7;
+      break;
+    }
+   case 7:
+    var $17 = $Array + ($14 << 2) | 0;
+    var $18 = HEAP32[$17 >> 2];
+    var $19 = $18 + $sum_0 | 0;
+    var $20 = $19 >>> 0 < $12 >>> 0;
+    if ($20) {
+      var $i_1 = $14;
+      var $sum_0 = $19;
+      label = 6;
+      break;
+    } else {
+      label = 8;
+      break;
+    }
+   case 8:
+    var $22 = $14 >>> 0;
+    var $23 = $22 / 100;
+    var $24 = 64.81999969482422 - $23;
+    var $_0 = $24;
+    label = 9;
+    break;
+   case 9:
+    var $_0;
+    return $_0;
+  }
+}
+function _id3tag_genre_list($handler, $cookie) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = ($handler | 0) == 0;
+    if ($1) {
+      label = 4;
+      break;
+    } else {
+      var $i_07 = 0;
+      label = 3;
+      break;
+    }
+   case 3:
+    var $i_07;
+    var $2 = 5345800 + ($i_07 << 2) | 0;
+    var $3 = HEAP32[$2 >> 2];
+    var $4 = 5345208 + ($3 << 2) | 0;
+    var $5 = HEAP32[$4 >> 2];
+    FUNCTION_TABLE[$handler]($3, $5, $cookie);
+    var $6 = $i_07 + 1 | 0;
+    var $exitcond = ($6 | 0) == 148;
+    if ($exitcond) {
+      label = 4;
+      break;
+    } else {
+      var $i_07 = $6;
+      label = 3;
+      break;
+    }
+   case 4:
+    return;
+  }
+}
+function _id3tag_init($gfp) {
+  var $2 = HEAP32[$gfp + 288 >> 2];
+  _free_id3tag($2);
+  var $4 = $2 + 85692 | 0;
+  for (var $$dest = $4 >> 2, $$stop = $$dest + 14; $$dest < $$stop; $$dest++) {
+    HEAP32[$$dest] = 0;
+  }
+  HEAP32[$2 + 85720 >> 2] = 255;
+  HEAP32[$2 + 85732 >> 2] = 128;
+  _id3v2AddLameVersion($gfp);
+  return;
+}
+function _id3v2AddLameVersion($gfp) {
+  var __stackBase__ = STACKTOP;
+  STACKTOP = STACKTOP + 1024 | 0;
+  var $1 = __stackBase__ | 0;
+  _sprintf($1, 5382860, (tempInt = STACKTOP, STACKTOP = STACKTOP + 12 | 0, HEAP32[tempInt >> 2] = 5383868, HEAP32[tempInt + 4 >> 2] = 5384648, HEAP32[tempInt + 8 >> 2] = 5384668, tempInt));
+  _copyV1ToV2($gfp, 1414746949, $1);
+  STACKTOP = __stackBase__;
+  return;
+}
+function _id3tag_pad_v2($gfp) {
+  _id3tag_set_pad($gfp, 128);
+  return;
+}
+function _id3tag_set_albumart($gfp, $image, $size) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = $gfp + 288 | 0;
+    var $2 = HEAP32[$1 >> 2];
+    var $3 = $size >>> 0 > 2;
+    if ($3) {
+      label = 3;
+      break;
+    } else {
+      var $_0 = -1;
+      label = 15;
+      break;
+    }
+   case 3:
+    var $5 = HEAP8[$image];
+    var $6 = $5 << 24 >> 24 == -1;
+    if ($6) {
+      label = 4;
+      break;
+    } else {
+      label = 5;
+      break;
+    }
+   case 4:
+    var $8 = $image + 1 | 0;
+    var $9 = HEAP8[$8];
+    var $10 = $9 << 24 >> 24 == -40;
+    if ($10) {
+      var $mimetype_0 = 1;
+      label = 10;
+      break;
+    } else {
+      label = 5;
+      break;
+    }
+   case 5:
+    var $12 = $size >>> 0 > 4;
+    if ($12) {
+      label = 6;
+      break;
+    } else {
+      var $_0 = -1;
+      label = 15;
+      break;
+    }
+   case 6:
+    var $14 = HEAP8[$image];
+    var $15 = $14 << 24 >> 24 == -119;
+    if ($15) {
+      label = 7;
+      break;
+    } else {
+      label = 9;
+      break;
+    }
+   case 7:
+    var $17 = $image + 1 | 0;
+    var $18 = _strncmp($17, 5383312, 3);
+    var $19 = ($18 | 0) == 0;
+    if ($19) {
+      var $mimetype_0 = 2;
+      label = 10;
+      break;
+    } else {
+      label = 8;
+      break;
+    }
+   case 8:
+    if ($12) {
+      label = 9;
+      break;
+    } else {
+      var $_0 = -1;
+      label = 15;
+      break;
+    }
+   case 9:
+    var $21 = _strncmp($image, 5386088, 4);
+    var $22 = ($21 | 0) == 0;
+    if ($22) {
+      var $mimetype_0 = 3;
+      label = 10;
+      break;
+    } else {
+      var $_0 = -1;
+      label = 15;
+      break;
+    }
+   case 10:
+    var $mimetype_0;
+    var $24 = $2 + 85724 | 0;
+    var $25 = HEAP32[$24 >> 2];
+    var $26 = ($25 | 0) == 0;
+    if ($26) {
+      label = 12;
+      break;
+    } else {
+      label = 11;
+      break;
+    }
+   case 11:
+    _free($25);
+    HEAP32[$24 >> 2] = 0;
+    var $28 = $2 + 85728 | 0;
+    HEAP32[$28 >> 2] = 0;
+    var $29 = $2 + 85736 | 0;
+    HEAP32[$29 >> 2] = 0;
+    label = 12;
+    break;
+   case 12:
+    var $31 = ($size | 0) == 0;
+    if ($31) {
+      var $_0 = 0;
+      label = 15;
+      break;
+    } else {
+      label = 13;
+      break;
+    }
+   case 13:
+    var $33 = _calloc($size, 1);
+    HEAP32[$24 >> 2] = $33;
+    var $34 = ($33 | 0) == 0;
+    if ($34) {
+      var $_0 = 0;
+      label = 15;
+      break;
+    } else {
+      label = 14;
+      break;
+    }
+   case 14:
+    _memcpy($33, $image, $size);
+    var $36 = $2 + 85728 | 0;
+    HEAP32[$36 >> 2] = $size;
+    var $37 = $2 + 85736 | 0;
+    HEAP32[$37 >> 2] = $mimetype_0;
+    var $38 = $2 + 85692 | 0;
+    var $39 = HEAP32[$38 >> 2];
+    var $40 = $39 | 1;
+    HEAP32[$38 >> 2] = $40;
+    _id3tag_add_v2($gfp);
+    var $_0 = 0;
+    label = 15;
+    break;
+   case 15:
+    var $_0;
+    return $_0;
+  }
+}
+_id3tag_set_albumart["X"] = 1;
+function _id3tag_set_textinfo_utf16($gfp, $id, $text) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = _toID3v2TagId($id);
+    var $2 = ($1 | 0) == 0;
+    if ($2) {
+      var $_0 = -1;
+      label = 14;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 3:
+    var $4 = ($text | 0) == 0;
+    if ($4) {
+      var $_0 = 0;
+      label = 14;
+      break;
+    } else {
+      label = 4;
+      break;
+    }
+   case 4:
+    var $6 = HEAP16[$text >> 1];
+    var $7 = _hasUcs2ByteOrderMarker($6);
+    var $8 = ($7 | 0) == 0;
+    if ($8) {
+      var $_0 = -3;
+      label = 14;
+      break;
+    } else {
+      label = 5;
+      break;
+    }
+   case 5:
+    if (($1 | 0) == 1465407576 | ($1 | 0) == 1415075928 | ($1 | 0) == 1129270605) {
+      label = 6;
+      break;
+    } else if (($1 | 0) == 1413697358) {
+      label = 7;
+      break;
+    } else if (($1 | 0) == 1346589524) {
+      label = 8;
+      break;
+    } else if (($1 | 0) == 1431520594) {
+      label = 9;
+      break;
+    } else if (($1 | 0) == 1464223044) {
+      label = 10;
+      break;
+    } else {
+      label = 11;
+      break;
+    }
+   case 6:
+    var $11 = _id3tag_set_userinfo_ucs2($gfp, $1, $text);
+    var $_0 = $11;
+    label = 14;
+    break;
+   case 7:
+    var $13 = _id3tag_set_genre_utf16($gfp, $text);
+    var $_0 = $13;
+    label = 14;
+    break;
+   case 8:
+    var $15 = _id3v2_add_ucs2($gfp, $1, 0, 0, $text);
+    var $_0 = $15;
+    label = 14;
+    break;
+   case 9:
+    var $17 = _id3v2_add_ucs2($gfp, $1, 5385684, $text, 0);
+    var $_0 = $17;
+    label = 14;
+    break;
+   case 10:
+    var $19 = _id3v2_add_ucs2($gfp, $1, 0, $text, 0);
+    var $_0 = $19;
+    label = 14;
+    break;
+   case 11:
+    var $21 = _isFrameIdMatching($1, 1409286144);
+    var $22 = ($21 | 0) == 0;
+    if ($22) {
+      label = 12;
+      break;
+    } else {
+      label = 13;
+      break;
+    }
+   case 12:
+    var $24 = _isFrameIdMatching($1, 1459617792);
+    var $25 = ($24 | 0) == 0;
+    if ($25) {
+      var $_0 = -255;
+      label = 14;
+      break;
+    } else {
+      label = 13;
+      break;
+    }
+   case 13:
+    var $27 = _id3v2_add_ucs2($gfp, $1, 0, 0, $text);
+    var $_0 = $27;
+    label = 14;
+    break;
+   case 14:
+    var $_0;
+    return $_0;
+  }
+}
+function _id3tag_set_userinfo_ucs2($gfp, $id, $fieldvalue) {
+  var label = 0;
+  var __stackBase__ = STACKTOP;
+  STACKTOP = STACKTOP + 8 | 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $dsc = __stackBase__;
+    var $val = __stackBase__ + 4;
+    var $1 = _fromLatin1Char($fieldvalue);
+    var $2 = _local_ucs2_pos($fieldvalue, $1);
+    var $3 = ($2 | 0) > -1;
+    if ($3) {
+      label = 3;
+      break;
+    } else {
+      var $rc_0 = -7;
+      label = 4;
+      break;
+    }
+   case 3:
+    var $5 = _local_ucs2_strlen($fieldvalue);
+    HEAP32[$dsc >> 2] = 0;
+    HEAP32[$val >> 2] = 0;
+    _local_ucs2_substr($dsc, $fieldvalue, 0, $2);
+    var $6 = $2 + 1 | 0;
+    _local_ucs2_substr($val, $fieldvalue, $6, $5);
+    var $7 = HEAP32[$dsc >> 2];
+    var $8 = HEAP32[$val >> 2];
+    var $9 = _id3v2_add_ucs2($gfp, $id, 5385684, $7, $8);
+    var $10 = HEAP32[$dsc >> 2];
+    var $11 = $10;
+    _free($11);
+    var $12 = HEAP32[$val >> 2];
+    var $13 = $12;
+    _free($13);
+    var $rc_0 = $9;
+    label = 4;
+    break;
+   case 4:
+    var $rc_0;
+    STACKTOP = __stackBase__;
+    return $rc_0;
+  }
+}
+function _id3tag_set_genre_utf16($gfp, $text) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = $gfp + 288 | 0;
+    var $2 = HEAP32[$1 >> 2];
+    var $3 = ($text | 0) == 0;
+    if ($3) {
+      var $_0 = -3;
+      label = 10;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 3:
+    var $5 = HEAP16[$text >> 1];
+    var $6 = _hasUcs2ByteOrderMarker($5);
+    var $7 = ($6 | 0) == 0;
+    if ($7) {
+      var $_0 = -3;
+      label = 10;
+      break;
+    } else {
+      label = 4;
+      break;
+    }
+   case 4:
+    var $9 = _maybeLatin1($text);
+    var $10 = ($9 | 0) == 0;
+    if ($10) {
+      label = 8;
+      break;
+    } else {
+      label = 5;
+      break;
+    }
+   case 5:
+    var $12 = _local_strdup_utf16_to_latin1($text);
+    var $13 = _lookupGenre($12);
+    _free($12);
+    var $14 = ($13 | 0) == -1;
+    if ($14) {
+      var $_0 = -1;
+      label = 10;
+      break;
+    } else {
+      label = 6;
+      break;
+    }
+   case 6:
+    var $16 = ($13 | 0) > -1;
+    if ($16) {
+      label = 7;
+      break;
+    } else {
+      label = 8;
+      break;
+    }
+   case 7:
+    var $18 = $2 + 85692 | 0;
+    var $19 = HEAP32[$18 >> 2];
+    var $20 = $19 | 1;
+    HEAP32[$18 >> 2] = $20;
+    var $21 = $2 + 85720 | 0;
+    HEAP32[$21 >> 2] = $13;
+    var $22 = 5345208 + ($13 << 2) | 0;
+    var $23 = HEAP32[$22 >> 2];
+    _copyV1ToV2($gfp, 1413697358, $23);
+    var $_0 = 0;
+    label = 10;
+    break;
+   case 8:
+    var $25 = _id3v2_add_ucs2($gfp, 1413697358, 0, 0, $text);
+    var $26 = ($25 | 0) == 0;
+    if ($26) {
+      label = 9;
+      break;
+    } else {
+      var $_0 = $25;
+      label = 10;
+      break;
+    }
+   case 9:
+    var $28 = $2 + 85692 | 0;
+    var $29 = HEAP32[$28 >> 2];
+    var $30 = $29 | 1;
+    HEAP32[$28 >> 2] = $30;
+    var $31 = $2 + 85720 | 0;
+    HEAP32[$31 >> 2] = 12;
+    var $_0 = 0;
+    label = 10;
+    break;
+   case 10:
+    var $_0;
+    return $_0;
+  }
+}
+function _id3v2_add_ucs2($gfp, $frame_id, $lang, $desc, $text) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = ($gfp | 0) == 0;
+    if ($1) {
+      var $_0 = -255;
+      label = 13;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 3:
+    var $3 = $gfp + 288 | 0;
+    var $4 = HEAP32[$3 >> 2];
+    var $5 = ($4 | 0) == 0;
+    if ($5) {
+      var $_0 = -255;
+      label = 13;
+      break;
+    } else {
+      label = 4;
+      break;
+    }
+   case 4:
+    var $7 = $4 + 85692 | 0;
+    var $8 = _findNode($7, $frame_id, 0);
+    var $9 = _isMultiFrame($frame_id);
+    var $10 = ($9 | 0) == 0;
+    if ($10) {
+      var $node_1 = $8;
+      label = 9;
+      break;
+    } else {
+      label = 5;
+      break;
+    }
+   case 5:
+    var $11 = ($8 | 0) == 0;
+    if ($11) {
+      label = 10;
+      break;
+    } else {
+      var $node_032 = $8;
+      label = 6;
+      break;
+    }
+   case 6:
+    var $node_032;
+    var $12 = $node_032 + 8 | 0;
+    var $13 = _isSameLang($12, $lang);
+    var $14 = ($13 | 0) == 0;
+    if ($14) {
+      label = 8;
+      break;
+    } else {
+      label = 7;
+      break;
+    }
+   case 7:
+    var $16 = _isSameDescriptorUcs2($node_032, $desc);
+    var $17 = ($16 | 0) == 0;
+    if ($17) {
+      label = 8;
+      break;
+    } else {
+      var $node_1 = $node_032;
+      label = 9;
+      break;
+    }
+   case 8:
+    var $19 = _findNode($7, $frame_id, $node_032);
+    var $20 = ($19 | 0) == 0;
+    if ($20) {
+      label = 10;
+      break;
+    } else {
+      var $node_032 = $19;
+      label = 6;
+      break;
+    }
+   case 9:
+    var $node_1;
+    var $21 = ($node_1 | 0) == 0;
+    if ($21) {
+      label = 10;
+      break;
+    } else {
+      var $node_2 = $node_1;
+      label = 12;
+      break;
+    }
+   case 10:
+    var $22 = _calloc(1, 36);
+    var $23 = $22;
+    var $24 = ($22 | 0) == 0;
+    if ($24) {
+      var $_0 = -254;
+      label = 13;
+      break;
+    } else {
+      label = 11;
+      break;
+    }
+   case 11:
+    _appendNode($7, $23);
+    var $node_2 = $23;
+    label = 12;
+    break;
+   case 12:
+    var $node_2;
+    var $27 = $node_2 + 4 | 0;
+    HEAP32[$27 >> 2] = $frame_id;
+    var $28 = $node_2 + 8 | 0;
+    _setLang($28, $lang);
+    var $29 = $node_2 + 12 | 0;
+    var $30 = $29;
+    var $31 = _local_ucs2_strdup($30, $desc);
+    var $32 = $node_2 + 16 | 0;
+    HEAP32[$32 >> 2] = $31;
+    var $33 = $node_2 + 20 | 0;
+    HEAP32[$33 >> 2] = 1;
+    var $34 = $node_2 + 24 | 0;
+    var $35 = $34;
+    var $36 = _local_ucs2_strdup($35, $text);
+    var $37 = $node_2 + 28 | 0;
+    HEAP32[$37 >> 2] = $36;
+    var $38 = $node_2 + 32 | 0;
+    HEAP32[$38 >> 2] = 1;
+    var $39 = $7 | 0;
+    var $40 = HEAP32[$39 >> 2];
+    var $41 = $40 | 3;
+    HEAP32[$39 >> 2] = $41;
+    var $_0 = 0;
+    label = 13;
+    break;
+   case 13:
+    var $_0;
+    return $_0;
+  }
+}
+_id3v2_add_ucs2["X"] = 1;
+function _isFrameIdMatching($id, $mask) {
+  return (_frame_id_matches($id, $mask) | 0) == 0 & 1;
+}
+function _id3tag_set_textinfo_ucs2($gfp, $id, $text) {
+  return _id3tag_set_textinfo_utf16($gfp, $id, $text);
+}
+function _id3tag_set_textinfo_latin1($gfp, $id, $text) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = _toID3v2TagId($id);
+    var $2 = ($1 | 0) == 0;
+    if ($2) {
+      var $_0 = -1;
+      label = 13;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 3:
+    var $4 = ($text | 0) == 0;
+    if ($4) {
+      var $_0 = 0;
+      label = 13;
+      break;
+    } else {
+      label = 4;
+      break;
+    }
+   case 4:
+    if (($1 | 0) == 1465407576 | ($1 | 0) == 1415075928 | ($1 | 0) == 1129270605) {
+      label = 5;
+      break;
+    } else if (($1 | 0) == 1413697358) {
+      label = 6;
+      break;
+    } else if (($1 | 0) == 1346589524) {
+      label = 7;
+      break;
+    } else if (($1 | 0) == 1431520594) {
+      label = 8;
+      break;
+    } else if (($1 | 0) == 1464223044) {
+      label = 9;
+      break;
+    } else {
+      label = 10;
+      break;
+    }
+   case 5:
+    var $7 = _id3tag_set_userinfo_latin1($gfp, $1, $text);
+    var $_0 = $7;
+    label = 13;
+    break;
+   case 6:
+    var $9 = _id3tag_set_genre($gfp, $text);
+    var $_0 = $9;
+    label = 13;
+    break;
+   case 7:
+    var $11 = _id3v2_add_latin1($gfp, $1, 0, 0, $text);
+    var $_0 = $11;
+    label = 13;
+    break;
+   case 8:
+    var $13 = _id3v2_add_latin1($gfp, $1, 5385684, $text, 0);
+    var $_0 = $13;
+    label = 13;
+    break;
+   case 9:
+    var $15 = _id3v2_add_latin1($gfp, $1, 0, $text, 0);
+    var $_0 = $15;
+    label = 13;
+    break;
+   case 10:
+    var $17 = _isFrameIdMatching($1, 1409286144);
+    var $18 = ($17 | 0) == 0;
+    if ($18) {
+      label = 11;
+      break;
+    } else {
+      label = 12;
+      break;
+    }
+   case 11:
+    var $20 = _isFrameIdMatching($1, 1459617792);
+    var $21 = ($20 | 0) == 0;
+    if ($21) {
+      var $_0 = -255;
+      label = 13;
+      break;
+    } else {
+      label = 12;
+      break;
+    }
+   case 12:
+    var $23 = _id3v2_add_latin1($gfp, $1, 0, 0, $text);
+    var $_0 = $23;
+    label = 13;
+    break;
+   case 13:
+    var $_0;
+    return $_0;
+  }
+}
+function _id3tag_set_userinfo_latin1($gfp, $id, $fieldvalue) {
+  var label = 0;
+  var __stackBase__ = STACKTOP;
+  STACKTOP = STACKTOP + 4 | 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $dup = __stackBase__;
+    var $1 = _local_char_pos($fieldvalue);
+    var $2 = ($1 | 0) > -1;
+    if ($2) {
+      label = 3;
+      break;
+    } else {
+      var $rc_0 = -7;
+      label = 4;
+      break;
+    }
+   case 3:
+    HEAP32[$dup >> 2] = 0;
+    var $4 = _local_strdup($dup, $fieldvalue);
+    var $5 = HEAP32[$dup >> 2];
+    var $6 = $5 + $1 | 0;
+    HEAP8[$6] = 0;
+    var $7 = HEAP32[$dup >> 2];
+    var $_sum = $1 + 1 | 0;
+    var $8 = $7 + $_sum | 0;
+    var $9 = _id3v2_add_latin1($gfp, $id, 5385684, $7, $8);
+    var $10 = HEAP32[$dup >> 2];
+    _free($10);
+    var $rc_0 = $9;
+    label = 4;
+    break;
+   case 4:
+    var $rc_0;
+    STACKTOP = __stackBase__;
+    return $rc_0;
+  }
+}
+function _id3tag_set_genre($gfp, $genre) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = $gfp + 288 | 0;
+    var $2 = HEAP32[$1 >> 2];
+    var $3 = ($genre | 0) == 0;
+    if ($3) {
+      var $_0 = 0;
+      label = 9;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 3:
+    var $5 = HEAP8[$genre];
+    var $6 = $5 << 24 >> 24 == 0;
+    if ($6) {
+      var $_0 = 0;
+      label = 9;
+      break;
+    } else {
+      label = 4;
+      break;
+    }
+   case 4:
+    var $8 = _lookupGenre($genre);
+    var $9 = ($8 | 0) == -1;
+    if ($9) {
+      var $_0 = -1;
+      label = 9;
+      break;
+    } else {
+      label = 5;
+      break;
+    }
+   case 5:
+    var $11 = $2 + 85692 | 0;
+    var $12 = HEAP32[$11 >> 2];
+    var $13 = $12 | 1;
+    HEAP32[$11 >> 2] = $13;
+    var $14 = ($8 | 0) > -1;
+    var $15 = $2 + 85720 | 0;
+    if ($14) {
+      label = 6;
+      break;
+    } else {
+      label = 7;
+      break;
+    }
+   case 6:
+    HEAP32[$15 >> 2] = $8;
+    var $17 = 5345208 + ($8 << 2) | 0;
+    var $18 = HEAP32[$17 >> 2];
+    var $_014 = $18;
+    label = 8;
+    break;
+   case 7:
+    HEAP32[$15 >> 2] = 12;
+    var $20 = HEAP32[$11 >> 2];
+    var $21 = $20 | 2;
+    HEAP32[$11 >> 2] = $21;
+    var $_014 = $genre;
+    label = 8;
+    break;
+   case 8:
+    var $_014;
+    _copyV1ToV2($gfp, 1413697358, $_014);
+    var $_0 = 0;
+    label = 9;
+    break;
+   case 9:
+    var $_0;
+    return $_0;
+  }
+}
+function _id3v2_add_latin1($gfp, $frame_id, $lang, $desc, $text) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = ($gfp | 0) == 0;
+    if ($1) {
+      var $_0 = -255;
+      label = 13;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 3:
+    var $3 = $gfp + 288 | 0;
+    var $4 = HEAP32[$3 >> 2];
+    var $5 = ($4 | 0) == 0;
+    if ($5) {
+      var $_0 = -255;
+      label = 13;
+      break;
+    } else {
+      label = 4;
+      break;
+    }
+   case 4:
+    var $7 = $4 + 85692 | 0;
+    var $8 = _findNode($7, $frame_id, 0);
+    var $9 = _isMultiFrame($frame_id);
+    var $10 = ($9 | 0) == 0;
+    if ($10) {
+      var $node_1 = $8;
+      label = 9;
+      break;
+    } else {
+      label = 5;
+      break;
+    }
+   case 5:
+    var $11 = ($8 | 0) == 0;
+    if ($11) {
+      label = 10;
+      break;
+    } else {
+      var $node_032 = $8;
+      label = 6;
+      break;
+    }
+   case 6:
+    var $node_032;
+    var $12 = $node_032 + 8 | 0;
+    var $13 = _isSameLang($12, $lang);
+    var $14 = ($13 | 0) == 0;
+    if ($14) {
+      label = 8;
+      break;
+    } else {
+      label = 7;
+      break;
+    }
+   case 7:
+    var $16 = _isSameDescriptor($node_032, $desc);
+    var $17 = ($16 | 0) == 0;
+    if ($17) {
+      label = 8;
+      break;
+    } else {
+      var $node_1 = $node_032;
+      label = 9;
+      break;
+    }
+   case 8:
+    var $19 = _findNode($7, $frame_id, $node_032);
+    var $20 = ($19 | 0) == 0;
+    if ($20) {
+      label = 10;
+      break;
+    } else {
+      var $node_032 = $19;
+      label = 6;
+      break;
+    }
+   case 9:
+    var $node_1;
+    var $21 = ($node_1 | 0) == 0;
+    if ($21) {
+      label = 10;
+      break;
+    } else {
+      var $node_2 = $node_1;
+      label = 12;
+      break;
+    }
+   case 10:
+    var $22 = _calloc(1, 36);
+    var $23 = $22;
+    var $24 = ($22 | 0) == 0;
+    if ($24) {
+      var $_0 = -254;
+      label = 13;
+      break;
+    } else {
+      label = 11;
+      break;
+    }
+   case 11:
+    _appendNode($7, $23);
+    var $node_2 = $23;
+    label = 12;
+    break;
+   case 12:
+    var $node_2;
+    var $27 = $node_2 + 4 | 0;
+    HEAP32[$27 >> 2] = $frame_id;
+    var $28 = $node_2 + 8 | 0;
+    _setLang($28, $lang);
+    var $29 = $node_2 + 12 | 0;
+    var $30 = _local_strdup($29, $desc);
+    var $31 = $node_2 + 16 | 0;
+    HEAP32[$31 >> 2] = $30;
+    var $32 = $node_2 + 20 | 0;
+    HEAP32[$32 >> 2] = 0;
+    var $33 = $node_2 + 24 | 0;
+    var $34 = _local_strdup($33, $text);
+    var $35 = $node_2 + 28 | 0;
+    HEAP32[$35 >> 2] = $34;
+    var $36 = $node_2 + 32 | 0;
+    HEAP32[$36 >> 2] = 0;
+    var $37 = $7 | 0;
+    var $38 = HEAP32[$37 >> 2];
+    var $39 = $38 | 3;
+    HEAP32[$37 >> 2] = $39;
+    var $_0 = 0;
+    label = 13;
+    break;
+   case 13:
+    var $_0;
+    return $_0;
+  }
+}
+_id3v2_add_latin1["X"] = 1;
+function _id3tag_set_comment_latin1($gfp, $lang, $desc, $text) {
+  return _id3v2_add_latin1($gfp, 1129270605, $lang, $desc, $text);
+}
+function _id3tag_set_comment_utf16($gfp, $lang, $desc, $text) {
+  return _id3v2_add_ucs2($gfp, 1129270605, $lang, $desc, $text);
+}
+function _id3tag_set_comment_ucs2($gfp, $lang, $desc, $text) {
+  return _id3tag_set_comment_utf16($gfp, $lang, $desc, $text);
+}
+function _local_ucs2_strlen($s) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = ($s | 0) == 0;
+    if ($1) {
+      var $n_1 = 0;
+      label = 5;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 3:
+    var $2 = HEAP16[$s >> 1];
+    var $3 = $2 << 16 >> 16 == 0;
+    if ($3) {
+      var $n_1 = 0;
+      label = 5;
+      break;
+    } else {
+      var $_03 = $s;
+      var $n_04 = 0;
+      label = 4;
+      break;
+    }
+   case 4:
+    var $n_04;
+    var $_03;
+    var $4 = $_03 + 2 | 0;
+    var $5 = $n_04 + 1 | 0;
+    var $6 = HEAP16[$4 >> 1];
+    var $7 = $6 << 16 >> 16 == 0;
+    if ($7) {
+      var $n_1 = $5;
+      label = 5;
+      break;
+    } else {
+      var $_03 = $4;
+      var $n_04 = $5;
+      label = 4;
+      break;
+    }
+   case 5:
+    var $n_1;
+    return $n_1;
+  }
+}
+function _test_tag_spec_flags($gfc, $tst) {
+  return (HEAP32[$gfc + 85692 >> 2] & $tst | 0) != 0 & 1;
+}
+function _sizeOfCommentNode($node) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = ($node | 0) == 0;
+    if ($1) {
+      var $n_1 = 0;
+      label = 9;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 3:
+    var $3 = $node + 20 | 0;
+    var $4 = HEAP32[$3 >> 2];
+    var $cond = ($4 | 0) == 1;
+    var $5 = $node + 16 | 0;
+    var $6 = HEAP32[$5 >> 2];
+    if ($cond) {
+      label = 5;
+      break;
+    } else {
+      label = 4;
+      break;
+    }
+   case 4:
+    var $8 = $6 + 15 | 0;
+    var $n_0 = $8;
+    label = 6;
+    break;
+   case 5:
+    var $10 = $6 << 1;
+    var $11 = $10 + 16 | 0;
+    var $n_0 = $11;
+    label = 6;
+    break;
+   case 6:
+    var $n_0;
+    var $13 = $node + 32 | 0;
+    var $14 = HEAP32[$13 >> 2];
+    var $cond1 = ($14 | 0) == 1;
+    var $15 = $node + 28 | 0;
+    var $16 = HEAP32[$15 >> 2];
+    if ($cond1) {
+      label = 8;
+      break;
+    } else {
+      label = 7;
+      break;
+    }
+   case 7:
+    var $18 = $16 + $n_0 | 0;
+    var $n_1 = $18;
+    label = 9;
+    break;
+   case 8:
+    var $20 = $16 << 1;
+    var $21 = $20 + $n_0 | 0;
+    var $n_1 = $21;
+    label = 9;
+    break;
+   case 9:
+    var $n_1;
+    return $n_1;
+  }
+}
+function _id3tag_set_title($gfp, $title) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = ($gfp | 0) == 0;
+    if ($1) {
+      label = 6;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 3:
+    var $3 = $gfp + 288 | 0;
+    var $4 = HEAP32[$3 >> 2];
+    var $5 = ($4 | 0) == 0;
+    var $6 = ($title | 0) == 0;
+    var $or_cond = $5 | $6;
+    if ($or_cond) {
+      label = 6;
+      break;
+    } else {
+      label = 4;
+      break;
+    }
+   case 4:
+    var $8 = HEAP8[$title];
+    var $9 = $8 << 24 >> 24 == 0;
+    if ($9) {
+      label = 6;
+      break;
+    } else {
+      label = 5;
+      break;
+    }
+   case 5:
+    var $11 = $4 + 85700 | 0;
+    var $12 = _local_strdup($11, $title);
+    var $13 = $4 + 85692 | 0;
+    var $14 = HEAP32[$13 >> 2];
+    var $15 = $14 | 1;
+    HEAP32[$13 >> 2] = $15;
+    _copyV1ToV2($gfp, 1414091826, $title);
+    label = 6;
+    break;
+   case 6:
+    return;
+  }
+}
+function _local_strdup($dst, $src) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = ($dst | 0) == 0;
+    if ($1) {
+      var $_0 = 0;
+      label = 8;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 3:
+    var $3 = HEAP32[$dst >> 2];
+    _free($3);
+    HEAP32[$dst >> 2] = 0;
+    var $4 = ($src | 0) == 0;
+    if ($4) {
+      var $_0 = 0;
+      label = 8;
+      break;
+    } else {
+      var $n_0 = 0;
+      label = 4;
+      break;
+    }
+   case 4:
+    var $n_0;
+    var $5 = $src + $n_0 | 0;
+    var $6 = HEAP8[$5];
+    var $7 = $6 << 24 >> 24 == 0;
+    var $8 = $n_0 + 1 | 0;
+    if ($7) {
+      label = 5;
+      break;
+    } else {
+      var $n_0 = $8;
+      label = 4;
+      break;
+    }
+   case 5:
+    var $10 = ($n_0 | 0) == 0;
+    if ($10) {
+      var $_0 = 0;
+      label = 8;
+      break;
+    } else {
+      label = 6;
+      break;
+    }
+   case 6:
+    var $12 = $n_0 + 1 | 0;
+    var $13 = _calloc($12, 1);
+    HEAP32[$dst >> 2] = $13;
+    var $14 = ($13 | 0) == 0;
+    if ($14) {
+      var $_0 = 0;
+      label = 8;
+      break;
+    } else {
+      label = 7;
+      break;
+    }
+   case 7:
+    _memcpy($13, $src, $n_0);
+    var $16 = HEAP32[$dst >> 2];
+    var $17 = $16 + $n_0 | 0;
+    HEAP8[$17] = 0;
+    var $_0 = $n_0;
+    label = 8;
+    break;
+   case 8:
+    var $_0;
+    return $_0;
+  }
+}
+function _copyV1ToV2($gfp, $frame_id, $s) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = ($gfp | 0) == 0;
+    if ($1) {
+      label = 5;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 3:
+    var $3 = $gfp + 288 | 0;
+    var $4 = HEAP32[$3 >> 2];
+    var $5 = ($4 | 0) == 0;
+    if ($5) {
+      label = 5;
+      break;
+    } else {
+      label = 4;
+      break;
+    }
+   case 4:
+    var $7 = $4 + 85692 | 0;
+    var $8 = HEAP32[$7 >> 2];
+    var $9 = _id3v2_add_latin1($gfp, $frame_id, 5385684, 0, $s);
+    HEAP32[$7 >> 2] = $8;
+    label = 5;
+    break;
+   case 5:
+    return;
+  }
+}
+function _id3tag_set_artist($gfp, $artist) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = ($gfp | 0) == 0;
+    if ($1) {
+      label = 6;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 3:
+    var $3 = $gfp + 288 | 0;
+    var $4 = HEAP32[$3 >> 2];
+    var $5 = ($4 | 0) == 0;
+    var $6 = ($artist | 0) == 0;
+    var $or_cond = $5 | $6;
+    if ($or_cond) {
+      label = 6;
+      break;
+    } else {
+      label = 4;
+      break;
+    }
+   case 4:
+    var $8 = HEAP8[$artist];
+    var $9 = $8 << 24 >> 24 == 0;
+    if ($9) {
+      label = 6;
+      break;
+    } else {
+      label = 5;
+      break;
+    }
+   case 5:
+    var $11 = $4 + 85704 | 0;
+    var $12 = _local_strdup($11, $artist);
+    var $13 = $4 + 85692 | 0;
+    var $14 = HEAP32[$13 >> 2];
+    var $15 = $14 | 1;
+    HEAP32[$13 >> 2] = $15;
+    _copyV1ToV2($gfp, 1414546737, $artist);
+    label = 6;
+    break;
+   case 6:
+    return;
+  }
+}
+function _id3tag_set_album($gfp, $album) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = ($gfp | 0) == 0;
+    if ($1) {
+      label = 6;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 3:
+    var $3 = $gfp + 288 | 0;
+    var $4 = HEAP32[$3 >> 2];
+    var $5 = ($4 | 0) == 0;
+    var $6 = ($album | 0) == 0;
+    var $or_cond = $5 | $6;
+    if ($or_cond) {
+      label = 6;
+      break;
+    } else {
+      label = 4;
+      break;
+    }
+   case 4:
+    var $8 = HEAP8[$album];
+    var $9 = $8 << 24 >> 24 == 0;
+    if ($9) {
+      label = 6;
+      break;
+    } else {
+      label = 5;
+      break;
+    }
+   case 5:
+    var $11 = $4 + 85708 | 0;
+    var $12 = _local_strdup($11, $album);
+    var $13 = $4 + 85692 | 0;
+    var $14 = HEAP32[$13 >> 2];
+    var $15 = $14 | 1;
+    HEAP32[$13 >> 2] = $15;
+    _copyV1ToV2($gfp, 1413565506, $album);
+    label = 6;
+    break;
+   case 6:
+    return;
+  }
+}
+function _id3tag_set_year($gfp, $year) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = ($gfp | 0) == 0;
+    if ($1) {
+      label = 8;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 3:
+    var $3 = $gfp + 288 | 0;
+    var $4 = HEAP32[$3 >> 2];
+    var $5 = ($4 | 0) == 0;
+    var $6 = ($year | 0) == 0;
+    var $or_cond = $5 | $6;
+    if ($or_cond) {
+      label = 8;
+      break;
+    } else {
+      label = 4;
+      break;
+    }
+   case 4:
+    var $8 = HEAP8[$year];
+    var $9 = $8 << 24 >> 24 == 0;
+    if ($9) {
+      label = 8;
+      break;
+    } else {
+      label = 5;
+      break;
+    }
+   case 5:
+    var $11 = _atoi($year);
+    var $12 = ($11 | 0) < 0;
+    var $_ = $12 ? 0 : $11;
+    var $13 = ($_ | 0) > 9999;
+    var $num_1 = $13 ? 9999 : $_;
+    var $14 = ($num_1 | 0) == 0;
+    if ($14) {
+      label = 7;
+      break;
+    } else {
+      label = 6;
+      break;
+    }
+   case 6:
+    var $16 = $4 + 85696 | 0;
+    HEAP32[$16 >> 2] = $num_1;
+    var $17 = $4 + 85692 | 0;
+    var $18 = HEAP32[$17 >> 2];
+    var $19 = $18 | 1;
+    HEAP32[$17 >> 2] = $19;
+    label = 7;
+    break;
+   case 7:
+    _copyV1ToV2($gfp, 1415136594, $year);
+    label = 8;
+    break;
+   case 8:
+    return;
+  }
+}
+function _id3tag_set_comment($gfp, $comment) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = ($gfp | 0) == 0;
+    if ($1) {
+      label = 6;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 3:
+    var $3 = $gfp + 288 | 0;
+    var $4 = HEAP32[$3 >> 2];
+    var $5 = ($4 | 0) == 0;
+    var $6 = ($comment | 0) == 0;
+    var $or_cond = $5 | $6;
+    if ($or_cond) {
+      label = 6;
+      break;
+    } else {
+      label = 4;
+      break;
+    }
+   case 4:
+    var $8 = HEAP8[$comment];
+    var $9 = $8 << 24 >> 24 == 0;
+    if ($9) {
+      label = 6;
+      break;
+    } else {
+      label = 5;
+      break;
+    }
+   case 5:
+    var $11 = $4 + 85712 | 0;
+    var $12 = _local_strdup($11, $comment);
+    var $13 = $4 + 85692 | 0;
+    var $14 = HEAP32[$13 >> 2];
+    var $15 = $14 | 1;
+    HEAP32[$13 >> 2] = $15;
+    var $16 = _id3v2_add_latin1($gfp, 1129270605, 5385684, 5385260, $comment);
+    HEAP32[$13 >> 2] = $15;
+    label = 6;
+    break;
+   case 6:
+    return;
+  }
+}
+function _id3tag_set_track($gfp, $track) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = ($gfp | 0) == 0;
+    if ($1) {
+      var $ret_1 = 0;
+      label = 13;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 3:
+    var $3 = $gfp + 288 | 0;
+    var $4 = HEAP32[$3 >> 2];
+    var $5 = ($4 | 0) == 0;
+    var $6 = ($track | 0) == 0;
+    var $or_cond = $5 | $6;
+    if ($or_cond) {
+      var $ret_1 = 0;
+      label = 13;
+      break;
+    } else {
+      label = 4;
+      break;
+    }
+   case 4:
+    var $8 = HEAP8[$track];
+    var $9 = $8 << 24 >> 24 == 0;
+    if ($9) {
+      var $ret_1 = 0;
+      label = 13;
+      break;
+    } else {
+      label = 5;
+      break;
+    }
+   case 5:
+    var $11 = _atoi($track);
+    var $_off = $11 - 1 | 0;
+    var $12 = $_off >>> 0 > 254;
+    if ($12) {
+      label = 6;
+      break;
+    } else {
+      label = 7;
+      break;
+    }
+   case 6:
+    var $13 = $4 + 85692 | 0;
+    var $14 = HEAP32[$13 >> 2];
+    var $15 = $14 | 3;
+    HEAP32[$13 >> 2] = $15;
+    var $ret_019 = -1;
+    label = 9;
+    break;
+   case 7:
+    var $17 = ($11 | 0) == 0;
+    if ($17) {
+      var $ret_019 = 0;
+      label = 9;
+      break;
+    } else {
+      label = 8;
+      break;
+    }
+   case 8:
+    var $19 = $4 + 85716 | 0;
+    HEAP32[$19 >> 2] = $11;
+    var $20 = $4 + 85692 | 0;
+    var $21 = HEAP32[$20 >> 2];
+    var $22 = $21 | 1;
+    HEAP32[$20 >> 2] = $22;
+    var $ret_019 = 0;
+    label = 9;
+    break;
+   case 9:
+    var $ret_019;
+    var $24 = _strchr($track, 47);
+    var $25 = ($24 | 0) == 0;
+    if ($25) {
+      label = 12;
+      break;
+    } else {
+      label = 10;
+      break;
+    }
+   case 10:
+    var $27 = HEAP8[$24];
+    var $28 = $27 << 24 >> 24 == 0;
+    if ($28) {
+      label = 12;
+      break;
+    } else {
+      label = 11;
+      break;
+    }
+   case 11:
+    var $30 = $4 + 85692 | 0;
+    var $31 = HEAP32[$30 >> 2];
+    var $32 = $31 | 3;
+    HEAP32[$30 >> 2] = $32;
+    label = 12;
+    break;
+   case 12:
+    _copyV1ToV2($gfp, 1414677323, $track);
+    var $ret_1 = $ret_019;
+    label = 13;
+    break;
+   case 13:
+    var $ret_1;
+    return $ret_1;
+  }
+}
+function _lookupGenre($genre) {
+  var label = 0;
+  var __stackBase__ = STACKTOP;
+  STACKTOP = STACKTOP + 4 | 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $str = __stackBase__;
+    var $1 = _strtol($genre, $str, 10);
+    var $2 = HEAP32[$str >> 2];
+    var $3 = HEAP8[$2];
+    var $4 = $3 << 24 >> 24 == 0;
+    if ($4) {
+      label = 5;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 3:
+    var $6 = _searchGenre($genre);
+    var $7 = ($6 | 0) == 148;
+    if ($7) {
+      label = 4;
+      break;
+    } else {
+      var $num_1 = $6;
+      label = 6;
+      break;
+    }
+   case 4:
+    var $9 = _sloppySearchGenre($genre);
+    var $10 = ($9 | 0) == 148;
+    if ($10) {
+      var $_0 = -2;
+      label = 7;
+      break;
+    } else {
+      var $num_1 = $9;
+      label = 6;
+      break;
+    }
+   case 5:
+    var $12 = $1 >>> 0 > 147;
+    if ($12) {
+      var $_0 = -1;
+      label = 7;
+      break;
+    } else {
+      var $num_1 = $1;
+      label = 6;
+      break;
+    }
+   case 6:
+    var $num_1;
+    var $_0 = $num_1;
+    label = 7;
+    break;
+   case 7:
+    var $_0;
+    STACKTOP = __stackBase__;
+    return $_0;
+  }
+}
+function _id3tag_set_fieldvalue($gfp, $fieldvalue) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = ($fieldvalue | 0) == 0;
+    if ($1) {
+      var $_0 = 0;
+      label = 7;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 3:
+    var $3 = HEAP8[$fieldvalue];
+    var $4 = $3 << 24 >> 24 == 0;
+    if ($4) {
+      var $_0 = 0;
+      label = 7;
+      break;
+    } else {
+      label = 4;
+      break;
+    }
+   case 4:
+    var $6 = _strlen($fieldvalue);
+    var $7 = $6 >>> 0 < 5;
+    if ($7) {
+      var $_0 = -1;
+      label = 7;
+      break;
+    } else {
+      label = 5;
+      break;
+    }
+   case 5:
+    var $9 = $fieldvalue + 4 | 0;
+    var $10 = HEAP8[$9];
+    var $11 = $10 << 24 >> 24 == 61;
+    if ($11) {
+      label = 6;
+      break;
+    } else {
+      var $_0 = -1;
+      label = 7;
+      break;
+    }
+   case 6:
+    var $13 = $fieldvalue + 5 | 0;
+    var $14 = _id3tag_set_textinfo_latin1($gfp, $fieldvalue, $13);
+    var $_0 = $14;
+    label = 7;
+    break;
+   case 7:
+    var $_0;
+    return $_0;
+  }
+}
+function _id3tag_set_fieldvalue_utf16($gfp, $fieldvalue) {
+  var label = 0;
+  var __stackBase__ = STACKTOP;
+  STACKTOP = STACKTOP + 12 | 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $fid = __stackBase__;
+    var $txt = __stackBase__ + 8;
+    var $1 = ($fieldvalue | 0) == 0;
+    if ($1) {
+      var $_0 = -1;
+      label = 8;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 3:
+    var $3 = HEAP16[$fieldvalue >> 1];
+    var $4 = $3 << 16 >> 16 == 0;
+    if ($4) {
+      var $_0 = -1;
+      label = 8;
+      break;
+    } else {
+      label = 4;
+      break;
+    }
+   case 4:
+    var $6 = _hasUcs2ByteOrderMarker($3);
+    var $7 = _fromLatin1Char($fieldvalue);
+    var $8 = $fid | 0;
+    HEAP8[$8] = 0;
+    HEAP8[$8 + 1] = 0;
+    HEAP8[$8 + 2] = 0;
+    HEAP8[$8 + 3] = 0;
+    HEAP8[$8 + 4] = 0;
+    var $9 = _toID3v2TagId_ucs2($fieldvalue);
+    var $10 = _local_ucs2_strlen($fieldvalue);
+    var $11 = $6 + 5 | 0;
+    var $12 = $10 >>> 0 < $11 >>> 0;
+    if ($12) {
+      var $_0 = -1;
+      label = 8;
+      break;
+    } else {
+      label = 5;
+      break;
+    }
+   case 5:
+    var $14 = $6 + 4 | 0;
+    var $15 = $fieldvalue + ($14 << 1) | 0;
+    var $16 = HEAP16[$15 >> 1];
+    var $17 = $16 << 16 >> 16 == $7 << 16 >> 16;
+    if ($17) {
+      label = 6;
+      break;
+    } else {
+      var $_0 = -1;
+      label = 8;
+      break;
+    }
+   case 6:
+    var $19 = $9 >>> 24;
+    var $20 = $19 & 255;
+    HEAP8[$8] = $20;
+    var $21 = $9 >>> 16;
+    var $22 = $21 & 255;
+    var $23 = $fid + 1 | 0;
+    HEAP8[$23] = $22;
+    var $24 = $9 >>> 8;
+    var $25 = $24 & 255;
+    var $26 = $fid + 2 | 0;
+    HEAP8[$26] = $25;
+    var $27 = $9 & 255;
+    var $28 = $fid + 3 | 0;
+    HEAP8[$28] = $27;
+    var $29 = ($9 | 0) == 0;
+    if ($29) {
+      var $_0 = -1;
+      label = 8;
+      break;
+    } else {
+      label = 7;
+      break;
+    }
+   case 7:
+    HEAP32[$txt >> 2] = 0;
+    var $31 = _local_ucs2_strlen($fieldvalue);
+    _local_ucs2_substr($txt, $fieldvalue, $11, $31);
+    var $32 = HEAP32[$txt >> 2];
+    var $33 = _id3tag_set_textinfo_utf16($gfp, $8, $32);
+    var $34 = HEAP32[$txt >> 2];
+    var $35 = $34;
+    _free($35);
+    var $_0 = $33;
+    label = 8;
+    break;
+   case 8:
+    var $_0;
+    STACKTOP = __stackBase__;
+    return $_0;
+  }
+}
+function _fromLatin1Char($s) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = HEAP16[$s >> 1];
+    var $2 = $1 << 16 >> 16 == -2;
+    if ($2) {
+      label = 3;
+      break;
+    } else {
+      var $_0 = 61;
+      label = 4;
+      break;
+    }
+   case 3:
+    var $4 = _swap_bytes(61);
+    var $_0 = $4;
+    label = 4;
+    break;
+   case 4:
+    var $_0;
+    return $_0;
+  }
+}
+function _toID3v2TagId_ucs2($s) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = ($s | 0) == 0;
+    if ($1) {
+      var $_0 = 0;
+      label = 6;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 3:
+    var $3 = HEAP16[$s >> 1];
+    var $4 = _hasUcs2ByteOrderMarker($3);
+    var $5 = ($4 | 0) == 0;
+    var $6 = $s + 2 | 0;
+    var $s_ = $5 ? $s : $6;
+    var $7 = HEAP16[$s_ >> 1];
+    var $8 = $7 << 16 >> 16 == 0;
+    if ($8) {
+      var $_0 = 0;
+      label = 6;
+      break;
+    } else {
+      label = 4;
+      break;
+    }
+   case 4:
+    var $10 = _toLittleEndian($3, $7);
+    var $_off = $10 - 65 & 65535;
+    var $11 = ($_off & 65535) > 25;
+    var $_off18 = $10 - 48 & 65535;
+    var $12 = ($_off18 & 65535) > 9;
+    var $or_cond = $11 & $12;
+    if ($or_cond) {
+      var $_0 = 0;
+      label = 6;
+      break;
+    } else {
+      label = 5;
+      break;
+    }
+   case 5:
+    var $14 = $10 & 65535;
+    var $15 = $s_ + 2 | 0;
+    var $16 = HEAP16[$15 >> 1];
+    var $17 = $16 << 16 >> 16 == 0;
+    if ($17) {
+      var $_0 = $14;
+      label = 6;
+      break;
+    } else {
+      label = 7;
+      break;
+    }
+   case 6:
+    var $_0;
+    return $_0;
+   case 7:
+    var $19 = _toLittleEndian($3, $16);
+    var $_off_1 = $19 - 65 & 65535;
+    var $20 = ($_off_1 & 65535) > 25;
+    var $_off18_1 = $19 - 48 & 65535;
+    var $21 = ($_off18_1 & 65535) > 9;
+    var $or_cond_1 = $20 & $21;
+    if ($or_cond_1) {
+      var $_0 = 0;
+      label = 6;
+      break;
+    } else {
+      label = 8;
+      break;
+    }
+   case 8:
+    var $23 = $19 & 65535;
+    var $24 = $14 << 8;
+    var $25 = $23 | $24;
+    var $26 = $s_ + 4 | 0;
+    var $27 = HEAP16[$26 >> 1];
+    var $28 = $27 << 16 >> 16 == 0;
+    if ($28) {
+      var $_0 = $25;
+      label = 6;
+      break;
+    } else {
+      label = 9;
+      break;
+    }
+   case 9:
+    var $30 = _toLittleEndian($3, $27);
+    var $_off_2 = $30 - 65 & 65535;
+    var $31 = ($_off_2 & 65535) > 25;
+    var $_off18_2 = $30 - 48 & 65535;
+    var $32 = ($_off18_2 & 65535) > 9;
+    var $or_cond_2 = $31 & $32;
+    if ($or_cond_2) {
+      var $_0 = 0;
+      label = 6;
+      break;
+    } else {
+      label = 10;
+      break;
+    }
+   case 10:
+    var $34 = $30 & 65535;
+    var $35 = $25 << 8;
+    var $36 = $34 | $35;
+    var $37 = $s_ + 6 | 0;
+    var $38 = HEAP16[$37 >> 1];
+    var $39 = $38 << 16 >> 16 == 0;
+    if ($39) {
+      var $_0 = $36;
+      label = 6;
+      break;
+    } else {
+      label = 11;
+      break;
+    }
+   case 11:
+    var $41 = _toLittleEndian($3, $38);
+    var $_off_3 = $41 - 65 & 65535;
+    var $42 = ($_off_3 & 65535) > 25;
+    var $_off18_3 = $41 - 48 & 65535;
+    var $43 = ($_off18_3 & 65535) > 9;
+    var $or_cond_3 = $42 & $43;
+    if ($or_cond_3) {
+      var $_0 = 0;
+      label = 6;
+      break;
+    } else {
+      label = 12;
+      break;
+    }
+   case 12:
+    var $45 = $41 & 65535;
+    var $46 = $36 << 8;
+    var $47 = $45 | $46;
+    var $_0 = $47;
+    label = 6;
+    break;
+  }
+}
+_toID3v2TagId_ucs2["X"] = 1;
+function _local_ucs2_substr($dst, $src, $start, $end) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = $start >>> 0 < $end >>> 0;
+    if ($1) {
+      label = 3;
+      break;
+    } else {
+      var $5 = 2;
+      label = 4;
+      break;
+    }
+   case 3:
+    var $3 = 2 - $start | 0;
+    var $phitmp = $3 + $end | 0;
+    var $5 = $phitmp;
+    label = 4;
+    break;
+   case 4:
+    var $5;
+    var $6 = _calloc($5, 2);
+    var $7 = $6;
+    HEAP32[$dst >> 2] = $7;
+    var $8 = ($6 | 0) == 0;
+    var $9 = ($src | 0) == 0;
+    var $or_cond = $8 | $9;
+    if ($or_cond) {
+      label = 11;
+      break;
+    } else {
+      label = 5;
+      break;
+    }
+   case 5:
+    var $11 = HEAP16[$src >> 1];
+    var $12 = _hasUcs2ByteOrderMarker($11);
+    var $13 = ($12 | 0) == 0;
+    if ($13) {
+      var $n_0_ph = 0;
+      var $_022_ph = $start;
+      label = 7;
+      break;
+    } else {
+      label = 6;
+      break;
+    }
+   case 6:
+    HEAP16[$7 >> 1] = $11;
+    var $15 = ($start | 0) == 0;
+    var $16 = $15 & 1;
+    var $_start = $16 + $start | 0;
+    var $n_0_ph = 1;
+    var $_022_ph = $_start;
+    label = 7;
+    break;
+   case 7:
+    var $_022_ph;
+    var $n_0_ph;
+    var $17 = $_022_ph >>> 0 < $end >>> 0;
+    if ($17) {
+      label = 8;
+      break;
+    } else {
+      var $n_0_lcssa = $n_0_ph;
+      label = 10;
+      break;
+    }
+   case 8:
+    var $18 = $n_0_ph + $end | 0;
+    var $19 = $18 - $_022_ph | 0;
+    var $_0221 = $_022_ph;
+    var $n_02 = $n_0_ph;
+    label = 9;
+    break;
+   case 9:
+    var $n_02;
+    var $_0221;
+    var $21 = $_0221 + 1 | 0;
+    var $22 = $src + ($_0221 << 1) | 0;
+    var $23 = HEAP16[$22 >> 1];
+    var $24 = $n_02 + 1 | 0;
+    var $25 = $7 + ($n_02 << 1) | 0;
+    HEAP16[$25 >> 1] = $23;
+    var $exitcond = ($24 | 0) == ($19 | 0);
+    if ($exitcond) {
+      var $n_0_lcssa = $19;
+      label = 10;
+      break;
+    } else {
+      var $_0221 = $21;
+      var $n_02 = $24;
+      label = 9;
+      break;
+    }
+   case 10:
+    var $n_0_lcssa;
+    var $26 = $7 + ($n_0_lcssa << 1) | 0;
+    HEAP16[$26 >> 1] = 0;
+    label = 11;
+    break;
+   case 11:
+    return;
+  }
+}
+function _id3tag_set_fieldvalue_ucs2($gfp, $fieldvalue) {
+  return _id3tag_set_fieldvalue_utf16($gfp, $fieldvalue);
+}
+function _lame_get_id3v2_tag($gfp, $buffer, $size) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = ($gfp | 0) == 0;
+    if ($1) {
+      var $_0 = 0;
+      label = 44;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 3:
+    var $3 = $gfp + 288 | 0;
+    var $4 = HEAP32[$3 >> 2];
+    var $5 = ($4 | 0) == 0;
+    if ($5) {
+      var $_0 = 0;
+      label = 44;
+      break;
+    } else {
+      label = 4;
+      break;
+    }
+   case 4:
+    var $7 = _test_tag_spec_flags($4, 4);
+    var $8 = ($7 | 0) == 0;
+    if ($8) {
+      label = 5;
+      break;
+    } else {
+      var $_0 = 0;
+      label = 44;
+      break;
+    }
+   case 5:
+    var $10 = _test_tag_spec_flags($4, 10);
+    var $11 = $4 + 85700 | 0;
+    var $12 = HEAP32[$11 >> 2];
+    var $13 = ($12 | 0) == 0;
+    if ($13) {
+      var $17 = 0;
+      label = 7;
+      break;
+    } else {
+      label = 6;
+      break;
+    }
+   case 6:
+    var $15 = _strlen($12);
+    var $17 = $15;
+    label = 7;
+    break;
+   case 7:
+    var $17;
+    var $18 = $4 + 85704 | 0;
+    var $19 = HEAP32[$18 >> 2];
+    var $20 = ($19 | 0) == 0;
+    if ($20) {
+      var $24 = 0;
+      label = 9;
+      break;
+    } else {
+      label = 8;
+      break;
+    }
+   case 8:
+    var $22 = _strlen($19);
+    var $24 = $22;
+    label = 9;
+    break;
+   case 9:
+    var $24;
+    var $25 = $4 + 85708 | 0;
+    var $26 = HEAP32[$25 >> 2];
+    var $27 = ($26 | 0) == 0;
+    if ($27) {
+      var $31 = 0;
+      label = 11;
+      break;
+    } else {
+      label = 10;
+      break;
+    }
+   case 10:
+    var $29 = _strlen($26);
+    var $31 = $29;
+    label = 11;
+    break;
+   case 11:
+    var $31;
+    var $32 = $4 + 85712 | 0;
+    var $33 = HEAP32[$32 >> 2];
+    var $34 = ($33 | 0) == 0;
+    if ($34) {
+      var $38 = 0;
+      label = 13;
+      break;
+    } else {
+      label = 12;
+      break;
+    }
+   case 12:
+    var $36 = _strlen($33);
+    var $38 = $36;
+    label = 13;
+    break;
+   case 13:
+    var $38;
+    var $39 = $17 >>> 0 > 30;
+    var $40 = $24 >>> 0 > 30;
+    var $or_cond = $39 | $40;
+    var $41 = $31 >>> 0 > 30;
+    var $or_cond78 = $or_cond | $41;
+    var $42 = $38 >>> 0 > 30;
+    var $or_cond79 = $or_cond78 | $42;
+    if ($or_cond79) {
+      label = 15;
+      break;
+    } else {
+      label = 14;
+      break;
+    }
+   case 14:
+    var $44 = $4 + 85716 | 0;
+    var $45 = HEAP32[$44 >> 2];
+    var $notlhs = ($45 | 0) == 0;
+    var $notrhs = $38 >>> 0 < 29;
+    var $or_cond80_not = $notrhs | $notlhs;
+    var $46 = ($10 | 0) == 0;
+    var $or_cond84 = $or_cond80_not & $46;
+    if ($or_cond84) {
+      var $_0 = 0;
+      label = 44;
+      break;
+    } else {
+      label = 15;
+      break;
+    }
+   case 15:
+    var $47 = $gfp + 4 | 0;
+    var $48 = HEAP32[$47 >> 2];
+    var $49 = ($48 | 0) == -1;
+    if ($49) {
+      label = 17;
+      break;
+    } else {
+      label = 16;
+      break;
+    }
+   case 16:
+    var $51 = $48 >>> 0;
+    _id3v2AddAudioDuration($gfp, $51);
+    label = 17;
+    break;
+   case 17:
+    var $53 = $4 + 85724 | 0;
+    var $54 = HEAP32[$53 >> 2];
+    var $55 = ($54 | 0) == 0;
+    if ($55) {
+      var $albumart_mime_1 = 0;
+      var $tag_size_0 = 10;
+      label = 23;
+      break;
+    } else {
+      label = 18;
+      break;
+    }
+   case 18:
+    var $57 = $4 + 85728 | 0;
+    var $58 = HEAP32[$57 >> 2];
+    var $59 = ($58 | 0) == 0;
+    if ($59) {
+      var $albumart_mime_1 = 0;
+      var $tag_size_0 = 10;
+      label = 23;
+      break;
+    } else {
+      label = 19;
+      break;
+    }
+   case 19:
+    var $61 = $4 + 85736 | 0;
+    var $62 = HEAP32[$61 >> 2];
+    if (($62 | 0) == 2) {
+      label = 20;
+      break;
+    } else if (($62 | 0) == 3) {
+      label = 21;
+      break;
+    } else if (($62 | 0) == 1) {
+      var $albumart_mime_0_ph = 5384896;
+      label = 22;
+      break;
+    } else {
+      var $albumart_mime_1 = 0;
+      var $tag_size_0 = 10;
+      label = 23;
+      break;
+    }
+   case 20:
+    var $albumart_mime_0_ph = 5384376;
+    label = 22;
+    break;
+   case 21:
+    var $albumart_mime_0_ph = 5383996;
+    label = 22;
+    break;
+   case 22:
+    var $albumart_mime_0_ph;
+    var $66 = _strlen($albumart_mime_0_ph);
+    var $67 = HEAP32[$57 >> 2];
+    var $68 = $66 + 24 | 0;
+    var $69 = $68 + $67 | 0;
+    var $albumart_mime_1 = $albumart_mime_0_ph;
+    var $tag_size_0 = $69;
+    label = 23;
+    break;
+   case 23:
+    var $tag_size_0;
+    var $albumart_mime_1;
+    var $70 = $4 + 85740 | 0;
+    var $71 = HEAP32[$70 >> 2];
+    var $72 = ($71 | 0) == 0;
+    if ($72) {
+      var $tag_size_3 = $tag_size_0;
+      label = 30;
+      break;
+    } else {
+      var $tag_size_189 = $tag_size_0;
+      var $node_090 = $71;
+      label = 24;
+      break;
+    }
+   case 24:
+    var $node_090;
+    var $tag_size_189;
+    var $73 = $node_090 + 4 | 0;
+    var $74 = HEAP32[$73 >> 2];
+    if (($74 | 0) == 1129270605 | ($74 | 0) == 1431520594) {
+      label = 25;
+      break;
+    } else {
+      label = 26;
+      break;
+    }
+   case 25:
+    var $76 = _sizeOfCommentNode($node_090);
+    var $_pn = $76;
+    label = 29;
+    break;
+   case 26:
+    var $78 = _isFrameIdMatching($74, 1459617792);
+    var $79 = ($78 | 0) == 0;
+    if ($79) {
+      label = 28;
+      break;
+    } else {
+      label = 27;
+      break;
+    }
+   case 27:
+    var $81 = _sizeOfWxxxNode($node_090);
+    var $_pn = $81;
+    label = 29;
+    break;
+   case 28:
+    var $83 = _sizeOfNode($node_090);
+    var $_pn = $83;
+    label = 29;
+    break;
+   case 29:
+    var $_pn;
+    var $tag_size_2 = $_pn + $tag_size_189 | 0;
+    var $85 = $node_090 | 0;
+    var $86 = HEAP32[$85 >> 2];
+    var $87 = ($86 | 0) == 0;
+    if ($87) {
+      var $tag_size_3 = $tag_size_2;
+      label = 30;
+      break;
+    } else {
+      var $tag_size_189 = $tag_size_2;
+      var $node_090 = $86;
+      label = 24;
+      break;
+    }
+   case 30:
+    var $tag_size_3;
+    var $88 = _test_tag_spec_flags($4, 32);
+    var $89 = ($88 | 0) == 0;
+    if ($89) {
+      var $tag_size_4 = $tag_size_3;
+      label = 32;
+      break;
+    } else {
+      label = 31;
+      break;
+    }
+   case 31:
+    var $91 = $4 + 85732 | 0;
+    var $92 = HEAP32[$91 >> 2];
+    var $93 = $92 + $tag_size_3 | 0;
+    var $tag_size_4 = $93;
+    label = 32;
+    break;
+   case 32:
+    var $tag_size_4;
+    var $95 = $tag_size_4 >>> 0 > $size >>> 0;
+    if ($95) {
+      var $_0 = $tag_size_4;
+      label = 44;
+      break;
+    } else {
+      label = 33;
+      break;
+    }
+   case 33:
+    var $97 = ($buffer | 0) == 0;
+    if ($97) {
+      var $_0 = 0;
+      label = 44;
+      break;
+    } else {
+      label = 34;
+      break;
+    }
+   case 34:
+    var $99 = $buffer + 1 | 0;
+    HEAP8[$buffer] = 73;
+    var $100 = $buffer + 2 | 0;
+    HEAP8[$99] = 68;
+    var $101 = $buffer + 3 | 0;
+    HEAP8[$100] = 51;
+    var $102 = $buffer + 4 | 0;
+    HEAP8[$101] = 3;
+    var $103 = $buffer + 5 | 0;
+    HEAP8[$102] = 0;
+    var $104 = $buffer + 6 | 0;
+    HEAP8[$103] = 0;
+    var $105 = $tag_size_4 - 10 | 0;
+    var $106 = $105 >>> 21;
+    var $_tr = $106 & 255;
+    var $107 = $_tr & 127;
+    var $108 = $buffer + 7 | 0;
+    HEAP8[$104] = $107;
+    var $109 = $105 >>> 14;
+    var $_tr75 = $109 & 255;
+    var $110 = $_tr75 & 127;
+    var $111 = $buffer + 8 | 0;
+    HEAP8[$108] = $110;
+    var $112 = $105 >>> 7;
+    var $_tr76 = $112 & 255;
+    var $113 = $_tr76 & 127;
+    var $114 = $buffer + 9 | 0;
+    HEAP8[$111] = $113;
+    var $_tr77 = $105 & 255;
+    var $115 = $_tr77 & 127;
+    var $116 = $buffer + 10 | 0;
+    HEAP8[$114] = $115;
+    var $117 = HEAP32[$70 >> 2];
+    var $118 = ($117 | 0) == 0;
+    if ($118) {
+      var $p_2 = $116;
+      label = 41;
+      break;
+    } else {
+      var $p_085 = $116;
+      var $node2_086 = $117;
+      label = 35;
+      break;
+    }
+   case 35:
+    var $node2_086;
+    var $p_085;
+    var $119 = $node2_086 + 4 | 0;
+    var $120 = HEAP32[$119 >> 2];
+    if (($120 | 0) == 1129270605 | ($120 | 0) == 1431520594) {
+      label = 36;
+      break;
+    } else {
+      label = 37;
+      break;
+    }
+   case 36:
+    var $122 = _set_frame_comment($p_085, $node2_086);
+    var $p_1 = $122;
+    label = 40;
+    break;
+   case 37:
+    var $124 = _isFrameIdMatching($120, 1459617792);
+    var $125 = ($124 | 0) == 0;
+    if ($125) {
+      label = 39;
+      break;
+    } else {
+      label = 38;
+      break;
+    }
+   case 38:
+    var $127 = _set_frame_wxxx($p_085, $node2_086);
+    var $p_1 = $127;
+    label = 40;
+    break;
+   case 39:
+    var $129 = _set_frame_custom2($p_085, $node2_086);
+    var $p_1 = $129;
+    label = 40;
+    break;
+   case 40:
+    var $p_1;
+    var $131 = $node2_086 | 0;
+    var $132 = HEAP32[$131 >> 2];
+    var $133 = ($132 | 0) == 0;
+    if ($133) {
+      var $p_2 = $p_1;
+      label = 41;
+      break;
+    } else {
+      var $p_085 = $p_1;
+      var $node2_086 = $132;
+      label = 35;
+      break;
+    }
+   case 41:
+    var $p_2;
+    var $134 = ($albumart_mime_1 | 0) == 0;
+    if ($134) {
+      var $p_3 = $p_2;
+      label = 43;
+      break;
+    } else {
+      label = 42;
+      break;
+    }
+   case 42:
+    var $136 = HEAP32[$53 >> 2];
+    var $137 = $4 + 85728 | 0;
+    var $138 = HEAP32[$137 >> 2];
+    var $139 = _set_frame_apic($p_2, $albumart_mime_1, $136, $138);
+    var $p_3 = $139;
+    label = 43;
+    break;
+   case 43:
+    var $p_3;
+    var $141 = $p_3;
+    var $142 = $buffer;
+    var $143 = $tag_size_4 + $142 | 0;
+    var $144 = $143 - $141 | 0;
+    _memset($p_3, 0, $144);
+    var $_0 = $tag_size_4;
+    label = 44;
+    break;
+   case 44:
+    var $_0;
+    return $_0;
+  }
+}
+_lame_get_id3v2_tag["X"] = 1;
+function _id3v2AddAudioDuration($gfp, $ms) {
+  var label = 0;
+  var __stackBase__ = STACKTOP;
+  STACKTOP = STACKTOP + 1024 | 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $buffer = __stackBase__;
+    var $1 = $gfp + 288 | 0;
+    var $2 = HEAP32[$1 >> 2];
+    var $3 = $ms * 1e3;
+    var $4 = $2 + 60 | 0;
+    var $5 = HEAP32[$4 >> 2];
+    var $6 = $5 | 0;
+    var $7 = $3 / $6;
+    var $8 = $7 > 4294967295;
+    if ($8) {
+      var $playlength_ms_0 = -1;
+      label = 5;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 3:
+    var $10 = $7 < 0;
+    if ($10) {
+      var $playlength_ms_0 = 0;
+      label = 5;
+      break;
+    } else {
+      label = 4;
+      break;
+    }
+   case 4:
+    var $12 = $7 >= 0 ? Math.floor($7) : Math.ceil($7);
+    var $playlength_ms_0 = $12;
+    label = 5;
+    break;
+   case 5:
+    var $playlength_ms_0;
+    var $14 = $buffer | 0;
+    var $15 = _sprintf($14, 5383208, (tempInt = STACKTOP, STACKTOP = STACKTOP + 4 | 0, HEAP32[tempInt >> 2] = $playlength_ms_0, tempInt));
+    _copyV1ToV2($gfp, 1414284622, $14);
+    STACKTOP = __stackBase__;
+    return;
+  }
+}
+function _isMultiFrame($frame_id) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    if (($frame_id | 0) == 1415075928 | ($frame_id | 0) == 1465407576 | ($frame_id | 0) == 1129270605 | ($frame_id | 0) == 1398361172 | ($frame_id | 0) == 1095780675 | ($frame_id | 0) == 1195724610 | ($frame_id | 0) == 1346588244 | ($frame_id | 0) == 1095061059 | ($frame_id | 0) == 1279872587 | ($frame_id | 0) == 1162756946 | ($frame_id | 0) == 1196575044 | ($frame_id | 0) == 1347570006) {
+      var $_0 = 1;
+      label = 4;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 3:
+    var $_0 = 0;
+    label = 4;
+    break;
+   case 4:
+    var $_0;
+    return $_0;
+  }
+}
+function _sizeOfWxxxNode($node) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = ($node | 0) == 0;
+    if ($1) {
+      var $n_1 = 0;
+      label = 11;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 3:
+    var $3 = $node + 16 | 0;
+    var $4 = HEAP32[$3 >> 2];
+    var $5 = ($4 | 0) == 0;
+    if ($5) {
+      var $n_0 = 10;
+      label = 7;
+      break;
+    } else {
+      label = 4;
+      break;
+    }
+   case 4:
+    var $7 = $node + 20 | 0;
+    var $8 = HEAP32[$7 >> 2];
+    var $cond = ($8 | 0) == 1;
+    if ($cond) {
+      label = 6;
+      break;
+    } else {
+      label = 5;
+      break;
+    }
+   case 5:
+    var $10 = $4 + 12 | 0;
+    var $n_0 = $10;
+    label = 7;
+    break;
+   case 6:
+    var $12 = $4 << 1;
+    var $13 = $12 + 13 | 0;
+    var $n_0 = $13;
+    label = 7;
+    break;
+   case 7:
+    var $n_0;
+    var $15 = $node + 28 | 0;
+    var $16 = HEAP32[$15 >> 2];
+    var $17 = ($16 | 0) == 0;
+    if ($17) {
+      var $n_1 = $n_0;
+      label = 11;
+      break;
+    } else {
+      label = 8;
+      break;
+    }
+   case 8:
+    var $19 = $node + 32 | 0;
+    var $20 = HEAP32[$19 >> 2];
+    var $cond1 = ($20 | 0) == 1;
+    if ($cond1) {
+      label = 10;
+      break;
+    } else {
+      label = 9;
+      break;
+    }
+   case 9:
+    var $22 = $16 + $n_0 | 0;
+    var $n_1 = $22;
+    label = 11;
+    break;
+   case 10:
+    var $24 = $n_0 - 1 | 0;
+    var $25 = $24 + $16 | 0;
+    var $n_1 = $25;
+    label = 11;
+    break;
+   case 11:
+    var $n_1;
+    return $n_1;
+  }
+}
+function _sizeOfNode($node) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = ($node | 0) == 0;
+    if ($1) {
+      var $n_2 = 0;
+      label = 8;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 3:
+    var $3 = $node + 32 | 0;
+    var $4 = HEAP32[$3 >> 2];
+    var $cond = ($4 | 0) == 1;
+    var $5 = $node + 16 | 0;
+    var $6 = HEAP32[$5 >> 2];
+    var $7 = ($6 | 0) != 0;
+    if ($cond) {
+      label = 5;
+      break;
+    } else {
+      label = 4;
+      break;
+    }
+   case 4:
+    var $9 = $6 + 12 | 0;
+    var $_ = $7 ? $9 : 11;
+    var $10 = $node + 28 | 0;
+    var $11 = HEAP32[$10 >> 2];
+    var $12 = $11 + $_ | 0;
+    var $n_2 = $12;
+    label = 8;
+    break;
+   case 5:
+    if ($7) {
+      label = 6;
+      break;
+    } else {
+      var $n_1 = 11;
+      label = 7;
+      break;
+    }
+   case 6:
+    var $15 = $6 << 1;
+    var $16 = $15 + 13 | 0;
+    var $n_1 = $16;
+    label = 7;
+    break;
+   case 7:
+    var $n_1;
+    var $18 = $node + 28 | 0;
+    var $19 = HEAP32[$18 >> 2];
+    var $20 = $19 << 1;
+    var $21 = $20 + $n_1 | 0;
+    var $n_2 = $21;
+    label = 8;
+    break;
+   case 8:
+    var $n_2;
+    return $n_2;
+  }
+}
+function _set_text_field($field, $text, $size, $pad) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = ($size | 0) == 0;
+    if ($1) {
+      var $_0_lcssa = $field;
+      label = 9;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 3:
+    var $2 = $pad & 255;
+    var $_09_ph14 = $text;
+    var $_0_ph15 = $field;
+    var $_in = $size;
+    label = 4;
+    break;
+   case 4:
+    var $_in;
+    var $_0_ph15;
+    var $_09_ph14;
+    var $3 = ($_09_ph14 | 0) == 0;
+    var $_012 = $_0_ph15;
+    var $_in17 = $_in;
+    label = 5;
+    break;
+   case 5:
+    var $_in17;
+    var $_012;
+    var $5 = $_in17 - 1 | 0;
+    if ($3) {
+      label = 8;
+      break;
+    } else {
+      label = 6;
+      break;
+    }
+   case 6:
+    var $7 = HEAP8[$_09_ph14];
+    var $8 = $7 << 24 >> 24 == 0;
+    if ($8) {
+      label = 8;
+      break;
+    } else {
+      label = 7;
+      break;
+    }
+   case 7:
+    var $9 = $_09_ph14 + 1 | 0;
+    var $10 = $_012 + 1 | 0;
+    HEAP8[$_012] = $7;
+    var $11 = ($5 | 0) == 0;
+    if ($11) {
+      var $_0_lcssa = $10;
+      label = 9;
+      break;
+    } else {
+      var $_09_ph14 = $9;
+      var $_0_ph15 = $10;
+      var $_in = $5;
+      label = 4;
+      break;
+    }
+   case 8:
+    var $13 = $_012 + 1 | 0;
+    HEAP8[$_012] = $2;
+    var $14 = ($5 | 0) == 0;
+    if ($14) {
+      var $_0_lcssa = $13;
+      label = 9;
+      break;
+    } else {
+      var $_012 = $13;
+      var $_in17 = $5;
+      label = 5;
+      break;
+    }
+   case 9:
+    var $_0_lcssa;
+    return $_0_lcssa;
+  }
+}
+function _set_4_byte_value($bytes, $value) {
+  HEAP8[$bytes + 3 | 0] = $value & 255;
+  HEAP8[$bytes + 2 | 0] = $value >>> 8 & 255;
+  HEAP8[$bytes + 1 | 0] = $value >>> 16 & 255;
+  HEAP8[$bytes] = $value >>> 24 & 255;
+  return $bytes + 4 | 0;
+}
+function _writeChars($frame, $str, $n) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = ($n | 0) == 0;
+    if ($1) {
+      var $_05_lcssa = $frame;
+      label = 5;
+      break;
+    } else {
+      var $_056 = $frame;
+      var $_047 = $str;
+      var $_08 = $n;
+      label = 3;
+      break;
+    }
+   case 3:
+    var $_08;
+    var $_047;
+    var $_056;
+    var $2 = $_08 - 1 | 0;
+    var $3 = $_047 + 1 | 0;
+    var $4 = HEAP8[$_047];
+    var $5 = $_056 + 1 | 0;
+    HEAP8[$_056] = $4;
+    var $6 = ($2 | 0) == 0;
+    if ($6) {
+      label = 4;
+      break;
+    } else {
+      var $_056 = $5;
+      var $_047 = $3;
+      var $_08 = $2;
+      label = 3;
+      break;
+    }
+   case 4:
+    var $scevgep = $frame + $n | 0;
+    var $_05_lcssa = $scevgep;
+    label = 5;
+    break;
+   case 5:
+    var $_05_lcssa;
+    return $_05_lcssa;
+  }
+}
+function _findNode($tag, $frame_id, $last) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = ($last | 0) == 0;
+    var $2 = $last | 0;
+    var $3 = $tag + 48 | 0;
+    var $_in = $1 ? $3 : $2;
+    var $node_0_in = $_in;
+    label = 3;
+    break;
+   case 3:
+    var $node_0_in;
+    var $node_0 = HEAP32[$node_0_in >> 2];
+    var $5 = ($node_0 | 0) == 0;
+    if ($5) {
+      var $_0 = 0;
+      label = 5;
+      break;
+    } else {
+      label = 4;
+      break;
+    }
+   case 4:
+    var $7 = $node_0 + 4 | 0;
+    var $8 = HEAP32[$7 >> 2];
+    var $9 = ($8 | 0) == ($frame_id | 0);
+    var $10 = $node_0 | 0;
+    if ($9) {
+      var $_0 = $node_0;
+      label = 5;
+      break;
+    } else {
+      var $node_0_in = $10;
+      label = 3;
+      break;
+    }
+   case 5:
+    var $_0;
+    return $_0;
+  }
+}
+function _set_frame_comment($frame, $node) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = _sizeOfCommentNode($node);
+    var $2 = $1 >>> 0 > 10;
+    if ($2) {
+      label = 3;
+      break;
+    } else {
+      var $_1 = $frame;
+      label = 9;
+      break;
+    }
+   case 3:
+    var $4 = $node + 4 | 0;
+    var $5 = HEAP32[$4 >> 2];
+    var $6 = _set_4_byte_value($frame, $5);
+    var $7 = $1 - 10 | 0;
+    var $8 = _set_4_byte_value($6, $7);
+    var $9 = $8 + 1 | 0;
+    HEAP8[$8] = 0;
+    var $10 = $8 + 2 | 0;
+    HEAP8[$9] = 0;
+    var $11 = $node + 24 | 0;
+    var $12 = $node + 32 | 0;
+    var $13 = HEAP32[$12 >> 2];
+    var $14 = ($13 | 0) == 1;
+    var $15 = $14 & 1;
+    var $16 = $8 + 3 | 0;
+    HEAP8[$10] = $15;
+    var $17 = $node + 8 | 0;
+    var $18 = HEAP8[$17];
+    var $19 = $8 + 4 | 0;
+    HEAP8[$16] = $18;
+    var $20 = $node + 9 | 0;
+    var $21 = HEAP8[$20];
+    var $22 = $8 + 5 | 0;
+    HEAP8[$19] = $21;
+    var $23 = $node + 10 | 0;
+    var $24 = HEAP8[$23];
+    var $25 = $8 + 6 | 0;
+    HEAP8[$22] = $24;
+    var $26 = $node + 12 | 0;
+    var $27 = $node + 20 | 0;
+    var $28 = HEAP32[$27 >> 2];
+    var $29 = ($28 | 0) == 1;
+    if ($29) {
+      label = 5;
+      break;
+    } else {
+      label = 4;
+      break;
+    }
+   case 4:
+    var $31 = $26 | 0;
+    var $32 = HEAP32[$31 >> 2];
+    var $33 = $node + 16 | 0;
+    var $34 = HEAP32[$33 >> 2];
+    var $35 = _writeChars($25, $32, $34);
+    var $36 = $35 + 1 | 0;
+    HEAP8[$35] = 0;
+    var $_0 = $36;
+    label = 6;
+    break;
+   case 5:
+    var $38 = $26;
+    var $39 = HEAP32[$38 >> 2];
+    var $40 = $node + 16 | 0;
+    var $41 = HEAP32[$40 >> 2];
+    var $42 = _writeUcs2s($25, $39, $41);
+    var $43 = $42 + 1 | 0;
+    HEAP8[$42] = 0;
+    var $44 = $42 + 2 | 0;
+    HEAP8[$43] = 0;
+    var $_0 = $44;
+    label = 6;
+    break;
+   case 6:
+    var $_0;
+    var $46 = HEAP32[$12 >> 2];
+    var $47 = ($46 | 0) == 1;
+    if ($47) {
+      label = 8;
+      break;
+    } else {
+      label = 7;
+      break;
+    }
+   case 7:
+    var $49 = $11 | 0;
+    var $50 = HEAP32[$49 >> 2];
+    var $51 = $node + 28 | 0;
+    var $52 = HEAP32[$51 >> 2];
+    var $53 = _writeChars($_0, $50, $52);
+    var $_1 = $53;
+    label = 9;
+    break;
+   case 8:
+    var $55 = $11;
+    var $56 = HEAP32[$55 >> 2];
+    var $57 = $node + 28 | 0;
+    var $58 = HEAP32[$57 >> 2];
+    var $59 = _writeUcs2s($_0, $56, $58);
+    var $_1 = $59;
+    label = 9;
+    break;
+   case 9:
+    var $_1;
+    return $_1;
+  }
+}
+_set_frame_comment["X"] = 1;
+function _set_frame_wxxx($frame, $node) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = _sizeOfWxxxNode($node);
+    var $2 = $1 >>> 0 > 10;
+    if ($2) {
+      label = 3;
+      break;
+    } else {
+      var $_1 = $frame;
+      label = 10;
+      break;
+    }
+   case 3:
+    var $4 = $node + 4 | 0;
+    var $5 = HEAP32[$4 >> 2];
+    var $6 = _set_4_byte_value($frame, $5);
+    var $7 = $1 - 10 | 0;
+    var $8 = _set_4_byte_value($6, $7);
+    var $9 = $8 + 1 | 0;
+    HEAP8[$8] = 0;
+    var $10 = $8 + 2 | 0;
+    HEAP8[$9] = 0;
+    var $11 = $node + 16 | 0;
+    var $12 = HEAP32[$11 >> 2];
+    var $13 = ($12 | 0) == 0;
+    if ($13) {
+      var $_0 = $10;
+      label = 7;
+      break;
+    } else {
+      label = 4;
+      break;
+    }
+   case 4:
+    var $15 = $node + 20 | 0;
+    var $16 = HEAP32[$15 >> 2];
+    var $17 = ($16 | 0) == 1;
+    var $18 = $17 & 1;
+    var $19 = $8 + 3 | 0;
+    HEAP8[$10] = $18;
+    var $20 = HEAP32[$15 >> 2];
+    var $21 = ($20 | 0) == 1;
+    var $22 = $node + 12 | 0;
+    if ($21) {
+      label = 6;
+      break;
+    } else {
+      label = 5;
+      break;
+    }
+   case 5:
+    var $24 = $22 | 0;
+    var $25 = HEAP32[$24 >> 2];
+    var $26 = HEAP32[$11 >> 2];
+    var $27 = _writeChars($19, $25, $26);
+    var $28 = $27 + 1 | 0;
+    HEAP8[$27] = 0;
+    var $_0 = $28;
+    label = 7;
+    break;
+   case 6:
+    var $30 = $22;
+    var $31 = HEAP32[$30 >> 2];
+    var $32 = HEAP32[$11 >> 2];
+    var $33 = _writeUcs2s($19, $31, $32);
+    var $34 = $33 + 1 | 0;
+    HEAP8[$33] = 0;
+    var $35 = $33 + 2 | 0;
+    HEAP8[$34] = 0;
+    var $_0 = $35;
+    label = 7;
+    break;
+   case 7:
+    var $_0;
+    var $37 = $node + 24 | 0;
+    var $38 = $node + 32 | 0;
+    var $39 = HEAP32[$38 >> 2];
+    var $40 = ($39 | 0) == 1;
+    if ($40) {
+      label = 9;
+      break;
+    } else {
+      label = 8;
+      break;
+    }
+   case 8:
+    var $42 = $37 | 0;
+    var $43 = HEAP32[$42 >> 2];
+    var $44 = $node + 28 | 0;
+    var $45 = HEAP32[$44 >> 2];
+    var $46 = _writeChars($_0, $43, $45);
+    var $_1 = $46;
+    label = 10;
+    break;
+   case 9:
+    var $48 = $37;
+    var $49 = HEAP32[$48 >> 2];
+    var $50 = $node + 28 | 0;
+    var $51 = HEAP32[$50 >> 2];
+    var $52 = _writeLoBytes($_0, $49, $51);
+    var $_1 = $52;
+    label = 10;
+    break;
+   case 10:
+    var $_1;
+    return $_1;
+  }
+}
+_set_frame_wxxx["X"] = 1;
+function _set_frame_custom2($frame, $node) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = _sizeOfNode($node);
+    var $2 = $1 >>> 0 > 10;
+    if ($2) {
+      label = 3;
+      break;
+    } else {
+      var $_1 = $frame;
+      label = 10;
+      break;
+    }
+   case 3:
+    var $4 = $node + 4 | 0;
+    var $5 = HEAP32[$4 >> 2];
+    var $6 = _set_4_byte_value($frame, $5);
+    var $7 = $1 - 10 | 0;
+    var $8 = _set_4_byte_value($6, $7);
+    var $9 = $8 + 1 | 0;
+    HEAP8[$8] = 0;
+    var $10 = $8 + 2 | 0;
+    HEAP8[$9] = 0;
+    var $11 = $node + 24 | 0;
+    var $12 = $node + 32 | 0;
+    var $13 = HEAP32[$12 >> 2];
+    var $14 = ($13 | 0) == 1;
+    var $15 = $14 & 1;
+    var $16 = $8 + 3 | 0;
+    HEAP8[$10] = $15;
+    var $17 = $node + 16 | 0;
+    var $18 = HEAP32[$17 >> 2];
+    var $19 = ($18 | 0) == 0;
+    if ($19) {
+      var $_0 = $16;
+      label = 7;
+      break;
+    } else {
+      label = 4;
+      break;
+    }
+   case 4:
+    var $21 = $node + 20 | 0;
+    var $22 = HEAP32[$21 >> 2];
+    var $23 = ($22 | 0) == 1;
+    var $24 = $node + 12 | 0;
+    if ($23) {
+      label = 6;
+      break;
+    } else {
+      label = 5;
+      break;
+    }
+   case 5:
+    var $26 = $24 | 0;
+    var $27 = HEAP32[$26 >> 2];
+    var $28 = _writeChars($16, $27, $18);
+    var $29 = $28 + 1 | 0;
+    HEAP8[$28] = 0;
+    var $_0 = $29;
+    label = 7;
+    break;
+   case 6:
+    var $31 = $24;
+    var $32 = HEAP32[$31 >> 2];
+    var $33 = _writeUcs2s($16, $32, $18);
+    var $34 = $33 + 1 | 0;
+    HEAP8[$33] = 0;
+    var $35 = $33 + 2 | 0;
+    HEAP8[$34] = 0;
+    var $_0 = $35;
+    label = 7;
+    break;
+   case 7:
+    var $_0;
+    var $37 = HEAP32[$12 >> 2];
+    var $38 = ($37 | 0) == 1;
+    if ($38) {
+      label = 9;
+      break;
+    } else {
+      label = 8;
+      break;
+    }
+   case 8:
+    var $40 = $11 | 0;
+    var $41 = HEAP32[$40 >> 2];
+    var $42 = $node + 28 | 0;
+    var $43 = HEAP32[$42 >> 2];
+    var $44 = _writeChars($_0, $41, $43);
+    var $_1 = $44;
+    label = 10;
+    break;
+   case 9:
+    var $46 = $11;
+    var $47 = HEAP32[$46 >> 2];
+    var $48 = $node + 28 | 0;
+    var $49 = HEAP32[$48 >> 2];
+    var $50 = _writeUcs2s($_0, $47, $49);
+    var $_1 = $50;
+    label = 10;
+    break;
+   case 10:
+    var $_1;
+    return $_1;
+  }
+}
+_set_frame_custom2["X"] = 1;
+function _set_frame_apic($frame, $mimetype, $data, $size) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = ($mimetype | 0) == 0;
+    var $2 = ($data | 0) == 0;
+    var $or_cond = $1 | $2;
+    var $3 = ($size | 0) == 0;
+    var $or_cond23 = $or_cond | $3;
+    if ($or_cond23) {
+      var $_2 = $frame;
+      label = 9;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 3:
+    var $5 = _set_4_byte_value($frame, 1095780675);
+    var $6 = _strlen($mimetype);
+    var $7 = $size + 4 | 0;
+    var $8 = $7 + $6 | 0;
+    var $9 = _set_4_byte_value($5, $8);
+    var $10 = $9 + 1 | 0;
+    HEAP8[$9] = 0;
+    var $11 = $9 + 2 | 0;
+    HEAP8[$10] = 0;
+    var $12 = $9 + 3 | 0;
+    HEAP8[$11] = 0;
+    var $13 = HEAP8[$mimetype];
+    var $14 = $13 << 24 >> 24 == 0;
+    if ($14) {
+      var $_022_lcssa = $12;
+      label = 5;
+      break;
+    } else {
+      var $_02227 = $12;
+      var $_02128 = $mimetype;
+      var $15 = $13;
+      label = 4;
+      break;
+    }
+   case 4:
+    var $15;
+    var $_02128;
+    var $_02227;
+    var $16 = $_02128 + 1 | 0;
+    var $17 = $_02227 + 1 | 0;
+    HEAP8[$_02227] = $15;
+    var $18 = HEAP8[$16];
+    var $19 = $18 << 24 >> 24 == 0;
+    if ($19) {
+      var $_022_lcssa = $17;
+      label = 5;
+      break;
+    } else {
+      var $_02227 = $17;
+      var $_02128 = $16;
+      var $15 = $18;
+      label = 4;
+      break;
+    }
+   case 5:
+    var $_022_lcssa;
+    var $20 = $_022_lcssa + 1 | 0;
+    HEAP8[$_022_lcssa] = 0;
+    var $21 = $_022_lcssa + 2 | 0;
+    HEAP8[$20] = 0;
+    var $22 = $_022_lcssa + 3 | 0;
+    HEAP8[$21] = 0;
+    var $23 = ($size | 0) == 0;
+    if ($23) {
+      var $_2 = $22;
+      label = 9;
+      break;
+    } else {
+      label = 6;
+      break;
+    }
+   case 6:
+    var $24 = $size + 3 | 0;
+    var $_124 = $22;
+    var $_02025 = $data;
+    var $_026 = $size;
+    label = 7;
+    break;
+   case 7:
+    var $_026;
+    var $_02025;
+    var $_124;
+    var $26 = $_026 - 1 | 0;
+    var $27 = $_02025 + 1 | 0;
+    var $28 = HEAP8[$_02025];
+    var $29 = $_124 + 1 | 0;
+    HEAP8[$_124] = $28;
+    var $30 = ($26 | 0) == 0;
+    if ($30) {
+      label = 8;
+      break;
+    } else {
+      var $_124 = $29;
+      var $_02025 = $27;
+      var $_026 = $26;
+      label = 7;
+      break;
+    }
+   case 8:
+    var $scevgep = $_022_lcssa + $24 | 0;
+    var $_2 = $scevgep;
+    label = 9;
+    break;
+   case 9:
+    var $_2;
+    return $_2;
+  }
+}
+_set_frame_apic["X"] = 1;
+function _id3tag_write_v2($gfp) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = $gfp + 288 | 0;
+    var $2 = HEAP32[$1 >> 2];
+    var $3 = _test_tag_spec_flags($2, 4);
+    var $4 = ($3 | 0) == 0;
+    if ($4) {
+      label = 3;
+      break;
+    } else {
+      var $_0 = 0;
+      label = 10;
+      break;
+    }
+   case 3:
+    var $6 = _test_tag_spec_flags($2, 1);
+    var $7 = ($6 | 0) == 0;
+    if ($7) {
+      var $_0 = 0;
+      label = 10;
+      break;
+    } else {
+      label = 4;
+      break;
+    }
+   case 4:
+    var $9 = _lame_get_id3v2_tag($gfp, 0, 0);
+    var $10 = _calloc($9, 1);
+    var $11 = ($10 | 0) == 0;
+    if ($11) {
+      var $_0 = -1;
+      label = 10;
+      break;
+    } else {
+      label = 5;
+      break;
+    }
+   case 5:
+    var $13 = _lame_get_id3v2_tag($gfp, $10, $9);
+    var $14 = $13 >>> 0 > $9 >>> 0;
+    if ($14) {
+      label = 7;
+      break;
+    } else {
+      label = 6;
+      break;
+    }
+   case 6:
+    var $15 = ($13 | 0) == 0;
+    if ($15) {
+      label = 9;
+      break;
+    } else {
+      var $i_016 = 0;
+      label = 8;
+      break;
+    }
+   case 7:
+    _free($10);
+    var $_0 = -1;
+    label = 10;
+    break;
+   case 8:
+    var $i_016;
+    var $17 = $10 + $i_016 | 0;
+    var $18 = HEAP8[$17];
+    _add_dummy_byte($2, $18, 1);
+    var $19 = $i_016 + 1 | 0;
+    var $exitcond = ($19 | 0) == ($13 | 0);
+    if ($exitcond) {
+      label = 9;
+      break;
+    } else {
+      var $i_016 = $19;
+      label = 8;
+      break;
+    }
+   case 9:
+    _free($10);
+    var $_0 = $13;
+    label = 10;
+    break;
+   case 10:
+    var $_0;
+    return $_0;
+  }
+}
+function _lame_get_id3v1_tag($gfp, $buffer, $size) {
+  var label = 0;
+  var __stackBase__ = STACKTOP;
+  STACKTOP = STACKTOP + 8 | 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $year = __stackBase__;
+    var $1 = ($gfp | 0) == 0;
+    if ($1) {
+      var $_0 = 0;
+      label = 10;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 3:
+    var $3 = $size >>> 0 < 128;
+    if ($3) {
+      var $_0 = 128;
+      label = 10;
+      break;
+    } else {
+      label = 4;
+      break;
+    }
+   case 4:
+    var $5 = $gfp + 288 | 0;
+    var $6 = HEAP32[$5 >> 2];
+    var $7 = ($6 | 0) == 0;
+    var $8 = ($buffer | 0) == 0;
+    var $or_cond = $7 | $8;
+    if ($or_cond) {
+      var $_0 = 0;
+      label = 10;
+      break;
+    } else {
+      label = 5;
+      break;
+    }
+   case 5:
+    var $10 = _test_tag_spec_flags($6, 8);
+    var $11 = ($10 | 0) == 0;
+    if ($11) {
+      label = 6;
+      break;
+    } else {
+      var $_0 = 0;
+      label = 10;
+      break;
+    }
+   case 6:
+    var $13 = _test_tag_spec_flags($6, 1);
+    var $14 = ($13 | 0) == 0;
+    if ($14) {
+      var $_0 = 0;
+      label = 10;
+      break;
+    } else {
+      label = 7;
+      break;
+    }
+   case 7:
+    var $16 = _test_tag_spec_flags($6, 16);
+    var $17 = ($16 | 0) != 0;
+    var $18 = $17 ? 32 : 0;
+    var $19 = $buffer + 1 | 0;
+    HEAP8[$buffer] = 84;
+    var $20 = $buffer + 2 | 0;
+    HEAP8[$19] = 65;
+    var $21 = $buffer + 3 | 0;
+    HEAP8[$20] = 71;
+    var $22 = $6 + 85700 | 0;
+    var $23 = HEAP32[$22 >> 2];
+    var $24 = _set_text_field($21, $23, 30, $18);
+    var $25 = $6 + 85704 | 0;
+    var $26 = HEAP32[$25 >> 2];
+    var $27 = _set_text_field($24, $26, 30, $18);
+    var $28 = $6 + 85708 | 0;
+    var $29 = HEAP32[$28 >> 2];
+    var $30 = _set_text_field($27, $29, 30, $18);
+    var $31 = $year | 0;
+    var $32 = $6 + 85696 | 0;
+    var $33 = HEAP32[$32 >> 2];
+    var $34 = _sprintf($31, 5383568, (tempInt = STACKTOP, STACKTOP = STACKTOP + 4 | 0, HEAP32[tempInt >> 2] = $33, tempInt));
+    var $35 = HEAP32[$32 >> 2];
+    var $36 = ($35 | 0) != 0;
+    var $37 = $36 ? $31 : 0;
+    var $38 = _set_text_field($30, $37, 4, $18);
+    var $39 = $6 + 85712 | 0;
+    var $40 = HEAP32[$39 >> 2];
+    var $41 = $6 + 85716 | 0;
+    var $42 = HEAP32[$41 >> 2];
+    var $43 = ($42 | 0) != 0;
+    var $44 = $43 ? 28 : 30;
+    var $45 = _set_text_field($38, $40, $44, $18);
+    var $46 = HEAP32[$41 >> 2];
+    var $47 = ($46 | 0) == 0;
+    if ($47) {
+      var $p_0 = $45;
+      label = 9;
+      break;
+    } else {
+      label = 8;
+      break;
+    }
+   case 8:
+    var $49 = $45 + 1 | 0;
+    HEAP8[$45] = 0;
+    var $50 = HEAP32[$41 >> 2];
+    var $51 = $50 & 255;
+    var $52 = $45 + 2 | 0;
+    HEAP8[$49] = $51;
+    var $p_0 = $52;
+    label = 9;
+    break;
+   case 9:
+    var $p_0;
+    var $54 = $6 + 85720 | 0;
+    var $55 = HEAP32[$54 >> 2];
+    var $56 = $55 & 255;
+    HEAP8[$p_0] = $56;
+    var $_0 = 128;
+    label = 10;
+    break;
+   case 10:
+    var $_0;
+    STACKTOP = __stackBase__;
+    return $_0;
+  }
+}
+_lame_get_id3v1_tag["X"] = 1;
+function _id3tag_write_v1($gfp) {
+  var label = 0;
+  var __stackBase__ = STACKTOP;
+  STACKTOP = STACKTOP + 128 | 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $tag = __stackBase__;
+    var $1 = $gfp + 288 | 0;
+    var $2 = HEAP32[$1 >> 2];
+    var $3 = $tag | 0;
+    var $4 = _lame_get_id3v1_tag($gfp, $3, 128);
+    var $5 = $4 >>> 0 > 128;
+    var $6 = ($4 | 0) == 0;
+    var $or_cond = $5 | $6;
+    if ($or_cond) {
+      var $_0 = 0;
+      label = 4;
+      break;
+    } else {
+      var $i_08 = 0;
+      label = 3;
+      break;
+    }
+   case 3:
+    var $i_08;
+    var $7 = $tag + $i_08 | 0;
+    var $8 = HEAP8[$7];
+    _add_dummy_byte($2, $8, 1);
+    var $9 = $i_08 + 1 | 0;
+    var $exitcond = ($9 | 0) == ($4 | 0);
+    if ($exitcond) {
+      var $_0 = $4;
+      label = 4;
+      break;
+    } else {
+      var $i_08 = $9;
+      label = 3;
+      break;
+    }
+   case 4:
+    var $_0;
+    STACKTOP = __stackBase__;
+    return $_0;
+  }
+}
+function _writeUcs2s($frame, $str, $n) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = ($n | 0) == 0;
+    if ($1) {
+      var $_1 = $frame;
+      label = 6;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 3:
+    var $2 = HEAP16[$str >> 1];
+    var $3 = $n << 1;
+    var $_0910 = $n;
+    var $_0811 = $str;
+    var $_012 = $frame;
+    label = 4;
+    break;
+   case 4:
+    var $_012;
+    var $_0811;
+    var $_0910;
+    var $5 = $_0910 - 1 | 0;
+    var $6 = $_0811 + 2 | 0;
+    var $7 = HEAP16[$_0811 >> 1];
+    var $8 = _toLittleEndian($2, $7);
+    var $9 = $8 & 255;
+    var $10 = $_012 + 1 | 0;
+    HEAP8[$_012] = $9;
+    var $11 = ($8 & 65535) >>> 8;
+    var $12 = $11 & 255;
+    var $13 = $_012 + 2 | 0;
+    HEAP8[$10] = $12;
+    var $14 = ($5 | 0) == 0;
+    if ($14) {
+      label = 5;
+      break;
+    } else {
+      var $_0910 = $5;
+      var $_0811 = $6;
+      var $_012 = $13;
+      label = 4;
+      break;
+    }
+   case 5:
+    var $scevgep = $frame + $3 | 0;
+    var $_1 = $scevgep;
+    label = 6;
+    break;
+   case 6:
+    var $_1;
+    return $_1;
+  }
+}
+function _toLittleEndian($bom, $c) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = $bom << 16 >> 16 == -2;
+    if ($1) {
+      label = 3;
+      break;
+    } else {
+      var $_0 = $c;
+      label = 4;
+      break;
+    }
+   case 3:
+    var $3 = _swap_bytes($c);
+    var $_0 = $3;
+    label = 4;
+    break;
+   case 4:
+    var $_0;
+    return $_0;
+  }
+}
+function _swap_bytes($w) {
+  return _llvm_bswap_i16($w);
+}
+function _writeLoBytes($frame, $str, $n) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = ($n | 0) == 0;
+    if ($1) {
+      var $_1 = $frame;
+      label = 8;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 3:
+    var $3 = HEAP16[$str >> 1];
+    var $4 = _hasUcs2ByteOrderMarker($3);
+    var $5 = ($4 | 0) == 0;
+    if ($5) {
+      var $_012_ph = $str;
+      var $_013_ph = $n;
+      label = 5;
+      break;
+    } else {
+      label = 4;
+      break;
+    }
+   case 4:
+    var $7 = $str + 2 | 0;
+    var $8 = $n - 1 | 0;
+    var $_012_ph = $7;
+    var $_013_ph = $8;
+    label = 5;
+    break;
+   case 5:
+    var $_013_ph;
+    var $_012_ph;
+    var $9 = ($_013_ph | 0) == 0;
+    if ($9) {
+      var $_1 = $frame;
+      label = 8;
+      break;
+    } else {
+      var $_01214 = $_012_ph;
+      var $_015 = $frame;
+      var $_in = $_013_ph;
+      label = 6;
+      break;
+    }
+   case 6:
+    var $_in;
+    var $_015;
+    var $_01214;
+    var $10 = $_in - 1 | 0;
+    var $11 = $_01214 + 2 | 0;
+    var $12 = HEAP16[$_01214 >> 1];
+    var $13 = _toLittleEndian($3, $12);
+    var $_off = $13 - 32 & 65535;
+    var $14 = ($_off & 65535) > 223;
+    var $15 = $13 & 255;
+    var $storemerge = $14 ? 32 : $15;
+    var $_0_be = $_015 + 1 | 0;
+    HEAP8[$_015] = $storemerge;
+    var $16 = ($10 | 0) == 0;
+    if ($16) {
+      label = 7;
+      break;
+    } else {
+      var $_01214 = $11;
+      var $_015 = $_0_be;
+      var $_in = $10;
+      label = 6;
+      break;
+    }
+   case 7:
+    var $scevgep = $frame + $_013_ph | 0;
+    var $_1 = $scevgep;
+    label = 8;
+    break;
+   case 8:
+    var $_1;
+    return $_1;
+  }
+}
+function _searchGenre($genre) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $i_0 = 0;
+    label = 3;
+    break;
+   case 3:
+    var $i_0;
+    var $2 = ($i_0 | 0) < 148;
+    if ($2) {
+      label = 4;
+      break;
+    } else {
+      var $_0 = 148;
+      label = 5;
+      break;
+    }
+   case 4:
+    var $4 = 5345208 + ($i_0 << 2) | 0;
+    var $5 = HEAP32[$4 >> 2];
+    var $6 = _local_strcasecmp($genre, $5);
+    var $7 = ($6 | 0) == 0;
+    var $8 = $i_0 + 1 | 0;
+    if ($7) {
+      var $_0 = $i_0;
+      label = 5;
+      break;
+    } else {
+      var $i_0 = $8;
+      label = 3;
+      break;
+    }
+   case 5:
+    var $_0;
+    return $_0;
+  }
+}
+function _sloppySearchGenre($genre) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $i_0 = 0;
+    label = 3;
+    break;
+   case 3:
+    var $i_0;
+    var $2 = ($i_0 | 0) < 148;
+    if ($2) {
+      label = 4;
+      break;
+    } else {
+      var $_0 = 148;
+      label = 5;
+      break;
+    }
+   case 4:
+    var $4 = 5345208 + ($i_0 << 2) | 0;
+    var $5 = HEAP32[$4 >> 2];
+    var $6 = _sloppyCompared($genre, $5);
+    var $7 = ($6 | 0) == 0;
+    var $8 = $i_0 + 1 | 0;
+    if ($7) {
+      var $i_0 = $8;
+      label = 3;
+      break;
+    } else {
+      var $_0 = $i_0;
+      label = 5;
+      break;
+    }
+   case 5:
+    var $_0;
+    return $_0;
+  }
+}
+function _sloppyCompared($p, $q) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = _nextUpperAlpha($p, 0);
+    var $2 = _nextUpperAlpha($q, 0);
+    var $3 = HEAP8[$1];
+    var $4 = $3 << 24 >> 24;
+    var $5 = _toupper($4);
+    var $6 = HEAP8[$2];
+    var $7 = $6 << 24 >> 24;
+    var $8 = _toupper($7);
+    var $sext20 = $5 << 24;
+    var $9 = $sext20 >> 24;
+    var $sext1721 = $8 << 24;
+    var $10 = $sext1721 >> 24;
+    var $11 = ($9 | 0) == ($10 | 0);
+    if ($11) {
+      var $_01522 = $1;
+      var $_023 = $2;
+      var $cq_024_in = $8;
+      var $cp_025_in = $5;
+      var $12 = $9;
+      label = 3;
+      break;
+    } else {
+      var $_016 = 0;
+      label = 8;
+      break;
+    }
+   case 3:
+    var $12;
+    var $cp_025_in;
+    var $cq_024_in;
+    var $_023;
+    var $_01522;
+    var $cq_024 = $cq_024_in & 255;
+    var $cp_025 = $cp_025_in & 255;
+    var $13 = ($12 | 0) == 0;
+    if ($13) {
+      var $_016 = 1;
+      label = 8;
+      break;
+    } else {
+      label = 4;
+      break;
+    }
+   case 4:
+    var $15 = $_01522 + 1 | 0;
+    var $16 = HEAP8[$15];
+    var $17 = $16 << 24 >> 24 == 46;
+    if ($17) {
+      var $_1 = $_023;
+      label = 5;
+      break;
+    } else {
+      var $_2 = $_023;
+      label = 7;
+      break;
+    }
+   case 5:
+    var $_1;
+    var $18 = HEAP8[$_1];
+    var $19 = $18 << 24 >> 24 == 0;
+    if ($19) {
+      var $_2 = $_1;
+      label = 7;
+      break;
+    } else {
+      label = 6;
+      break;
+    }
+   case 6:
+    var $21 = $_1 + 1 | 0;
+    var $22 = $18 << 24 >> 24 == 32;
+    if ($22) {
+      var $_2 = $21;
+      label = 7;
+      break;
+    } else {
+      var $_1 = $21;
+      label = 5;
+      break;
+    }
+   case 7:
+    var $_2;
+    var $23 = _nextUpperAlpha($_01522, $cp_025);
+    var $24 = _nextUpperAlpha($_2, $cq_024);
+    var $25 = HEAP8[$23];
+    var $26 = $25 << 24 >> 24;
+    var $27 = _toupper($26);
+    var $28 = HEAP8[$24];
+    var $29 = $28 << 24 >> 24;
+    var $30 = _toupper($29);
+    var $sext = $27 << 24;
+    var $31 = $sext >> 24;
+    var $sext17 = $30 << 24;
+    var $32 = $sext17 >> 24;
+    var $33 = ($31 | 0) == ($32 | 0);
+    if ($33) {
+      var $_01522 = $23;
+      var $_023 = $24;
+      var $cq_024_in = $30;
+      var $cp_025_in = $27;
+      var $12 = $31;
+      label = 3;
+      break;
+    } else {
+      var $_016 = 0;
+      label = 8;
+      break;
+    }
+   case 8:
+    var $_016;
+    return $_016;
+  }
+}
+_sloppyCompared["X"] = 1;
+function _nextUpperAlpha($p, $x) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = HEAP8[$p];
+    var $2 = $1 << 24 >> 24;
+    var $3 = _toupper($2);
+    var $4 = HEAP8[$p];
+    var $5 = $4 << 24 >> 24 == 0;
+    if ($5) {
+      var $_09_lcssa = $p;
+      label = 6;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 3:
+    var $6 = $x << 24 >> 24;
+    var $_0910 = $p;
+    var $c_0_in11 = $3;
+    label = 4;
+    break;
+   case 4:
+    var $c_0_in11;
+    var $_0910;
+    var $sext = $c_0_in11 << 24;
+    var $sext_off = $sext - 1073741825 | 0;
+    var $8 = $sext_off >>> 0 > 452984830;
+    var $9 = $sext >> 24;
+    var $10 = ($9 | 0) == ($6 | 0);
+    var $or_cond = $8 | $10;
+    if ($or_cond) {
+      label = 5;
+      break;
+    } else {
+      var $_09_lcssa = $_0910;
+      label = 6;
+      break;
+    }
+   case 5:
+    var $12 = $_0910 + 1 | 0;
+    var $13 = HEAP8[$12];
+    var $14 = $13 << 24 >> 24;
+    var $15 = _toupper($14);
+    var $16 = HEAP8[$12];
+    var $17 = $16 << 24 >> 24 == 0;
+    if ($17) {
+      var $_09_lcssa = $12;
+      label = 6;
+      break;
+    } else {
+      var $_0910 = $12;
+      var $c_0_in11 = $15;
+      label = 4;
+      break;
+    }
+   case 6:
+    var $_09_lcssa;
+    return $_09_lcssa;
+  }
+}
+function _local_strcasecmp($s1, $s2) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $_0 = $s1;
+    var $_07 = $s2;
+    label = 3;
+    break;
+   case 3:
+    var $_07;
+    var $_0;
+    var $2 = HEAP8[$_0];
+    var $3 = $2 << 24 >> 24;
+    var $4 = _tolower($3);
+    var $5 = $4 & 255;
+    var $6 = HEAP8[$_07];
+    var $7 = $6 << 24 >> 24;
+    var $8 = _tolower($7);
+    var $9 = $5 << 24 >> 24 == 0;
+    if ($9) {
+      label = 5;
+      break;
+    } else {
+      label = 4;
+      break;
+    }
+   case 4:
+    var $11 = $_0 + 1 | 0;
+    var $12 = $_07 + 1 | 0;
+    var $13 = $8 ^ $4;
+    var $14 = $13 & 255;
+    var $15 = ($14 | 0) == 0;
+    if ($15) {
+      var $_0 = $11;
+      var $_07 = $12;
+      label = 3;
+      break;
+    } else {
+      label = 5;
+      break;
+    }
+   case 5:
+    var $17 = $4 & 255;
+    var $18 = $8 & 255;
+    var $19 = $17 - $18 | 0;
+    return $19;
+  }
+}
+function _frame_id_matches($id, $mask) {
+  var $1 = $mask & 255;
+  var $2 = $id & 255;
+  var $6 = $mask & 65280;
+  var $7 = $id & 65280;
+  var $11 = $mask & 16711680;
+  var $12 = $id & 16711680;
+  var $16 = $mask & -16777216;
+  var $17 = $id & -16777216;
+  return (($16 | 0) == 0 | ($16 | 0) == ($17 | 0) ? 0 : $17) | ((($11 | 0) == 0 | ($11 | 0) == ($12 | 0) ? 0 : $12) | ((($6 | 0) == 0 | ($6 | 0) == ($7 | 0) ? 0 : $7) | (($1 | 0) == 0 | ($1 | 0) == ($2 | 0) ? 0 : $2)));
+}
+function _isSameDescriptor($node, $dsc) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = $node + 20 | 0;
+    var $2 = HEAP32[$1 >> 2];
+    var $3 = ($2 | 0) == 1;
+    if ($3) {
+      label = 3;
+      break;
+    } else {
+      label = 4;
+      break;
+    }
+   case 3:
+    var $5 = $node + 16 | 0;
+    var $6 = HEAP32[$5 >> 2];
+    var $7 = ($6 | 0) == 0;
+    if ($7) {
+      label = 4;
+      break;
+    } else {
+      var $_0 = 0;
+      label = 7;
+      break;
+    }
+   case 4:
+    var $8 = $node + 12 | 0;
+    var $9 = $node + 16 | 0;
+    var $10 = HEAP32[$9 >> 2];
+    var $11 = ($dsc | 0) == 0;
+    var $i_0 = 0;
+    label = 5;
+    break;
+   case 5:
+    var $i_0;
+    var $_not = $i_0 >>> 0 >= $10 >>> 0;
+    var $brmerge = $_not | $11;
+    var $_mux = $_not & 1;
+    if ($brmerge) {
+      var $_0 = $_mux;
+      label = 7;
+      break;
+    } else {
+      label = 6;
+      break;
+    }
+   case 6:
+    var $14 = HEAP32[$8 >> 2];
+    var $15 = $14 + $i_0 | 0;
+    var $16 = HEAP8[$15];
+    var $17 = $dsc + $i_0 | 0;
+    var $18 = HEAP8[$17];
+    var $19 = $16 << 24 >> 24 == $18 << 24 >> 24;
+    var $20 = $i_0 + 1 | 0;
+    if ($19) {
+      var $i_0 = $20;
+      label = 5;
+      break;
+    } else {
+      var $_0 = 0;
+      label = 7;
+      break;
+    }
+   case 7:
+    var $_0;
+    return $_0;
+  }
+}
+function _appendNode($tag, $node) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = $tag + 52 | 0;
+    var $2 = HEAP32[$1 >> 2];
+    var $3 = ($2 | 0) == 0;
+    if ($3) {
+      label = 4;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 3:
+    var $5 = $tag + 48 | 0;
+    var $6 = HEAP32[$5 >> 2];
+    var $7 = ($6 | 0) == 0;
+    if ($7) {
+      label = 4;
+      break;
+    } else {
+      label = 5;
+      break;
+    }
+   case 4:
+    var $9 = $tag + 48 | 0;
+    HEAP32[$9 >> 2] = $node;
+    label = 6;
+    break;
+   case 5:
+    var $11 = $2 | 0;
+    HEAP32[$11 >> 2] = $node;
+    label = 6;
+    break;
+   case 6:
+    HEAP32[$1 >> 2] = $node;
+    return;
+  }
+}
+function _local_char_pos($str) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = ($str | 0) == 0;
+    if ($1) {
+      var $_0 = -1;
+      label = 6;
+      break;
+    } else {
+      var $i_02 = 0;
+      label = 3;
+      break;
+    }
+   case 3:
+    var $i_02;
+    var $2 = $str + $i_02 | 0;
+    var $3 = HEAP8[$2];
+    if ($3 << 24 >> 24 == 61) {
+      label = 5;
+      break;
+    } else if ($3 << 24 >> 24 == 0) {
+      var $_0 = -1;
+      label = 6;
+      break;
+    } else {
+      label = 4;
+      break;
+    }
+   case 4:
+    var $5 = $i_02 + 1 | 0;
+    var $i_02 = $5;
+    label = 3;
+    break;
+   case 5:
+    var $_0 = $i_02;
+    label = 6;
+    break;
+   case 6:
+    var $_0;
+    return $_0;
+  }
+}
+function _isSameDescriptorUcs2($node, $dsc) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = $node + 12 | 0;
+    var $2 = $node + 20 | 0;
+    var $3 = HEAP32[$2 >> 2];
+    var $4 = ($3 | 0) == 1;
+    if ($4) {
+      label = 4;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 3:
+    var $6 = $node + 16 | 0;
+    var $7 = HEAP32[$6 >> 2];
+    var $8 = ($7 | 0) == 0;
+    if ($8) {
+      label = 4;
+      break;
+    } else {
+      var $_0 = 0;
+      label = 7;
+      break;
+    }
+   case 4:
+    var $9 = $1;
+    var $10 = $node + 16 | 0;
+    var $11 = HEAP32[$10 >> 2];
+    var $12 = ($dsc | 0) == 0;
+    var $i_0 = 0;
+    label = 5;
+    break;
+   case 5:
+    var $i_0;
+    var $_not = $i_0 >>> 0 >= $11 >>> 0;
+    var $brmerge = $_not | $12;
+    var $_mux = $_not & 1;
+    if ($brmerge) {
+      var $_0 = $_mux;
+      label = 7;
+      break;
+    } else {
+      label = 6;
+      break;
+    }
+   case 6:
+    var $15 = HEAP32[$9 >> 2];
+    var $16 = $15 + ($i_0 << 1) | 0;
+    var $17 = HEAP16[$16 >> 1];
+    var $18 = $dsc + ($i_0 << 1) | 0;
+    var $19 = HEAP16[$18 >> 1];
+    var $20 = $17 << 16 >> 16 == $19 << 16 >> 16;
+    var $21 = $i_0 + 1 | 0;
+    if ($20) {
+      var $i_0 = $21;
+      label = 5;
+      break;
+    } else {
+      var $_0 = 0;
+      label = 7;
+      break;
+    }
+   case 7:
+    var $_0;
+    return $_0;
+  }
+}
+function _local_ucs2_pos($str, $c) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = ($str | 0) == 0;
+    var $i_0 = 0;
+    label = 3;
+    break;
+   case 3:
+    var $i_0;
+    if ($1) {
+      var $_0 = -1;
+      label = 6;
+      break;
+    } else {
+      label = 4;
+      break;
+    }
+   case 4:
+    var $4 = $str + ($i_0 << 1) | 0;
+    var $5 = HEAP16[$4 >> 1];
+    var $6 = $5 << 16 >> 16 == 0;
+    if ($6) {
+      var $_0 = -1;
+      label = 6;
+      break;
+    } else {
+      label = 5;
+      break;
+    }
+   case 5:
+    var $8 = $5 << 16 >> 16 == $c << 16 >> 16;
+    var $9 = $i_0 + 1 | 0;
+    if ($8) {
+      var $_0 = $i_0;
+      label = 6;
+      break;
+    } else {
+      var $i_0 = $9;
+      label = 3;
+      break;
+    }
+   case 6:
+    var $_0;
+    return $_0;
+  }
+}
+function _is_lame_global_flags_valid($gfp) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = ($gfp | 0) == 0;
+    if ($1) {
+      var $_0 = 0;
+      label = 4;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 3:
+    var $3 = $gfp | 0;
+    var $4 = HEAP32[$3 >> 2];
+    var $5 = ($4 | 0) == -487877;
+    var $_ = $5 & 1;
+    var $_0 = $_;
+    label = 4;
+    break;
+   case 4:
+    var $_0;
+    return $_0;
+  }
+}
+function _is_lame_internal_flags_valid($gfc) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = ($gfc | 0) == 0;
+    if ($1) {
+      var $_0 = 0;
+      label = 4;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 3:
+    var $3 = $gfc | 0;
+    var $4 = HEAP32[$3 >> 2];
+    var $5 = ($4 | 0) == -487877;
+    var $_ = $5 & 1;
+    var $_0 = $_;
+    label = 4;
+    break;
+   case 4:
+    var $_0;
+    return $_0;
+  }
+}
+function _isSameLang($l1, $l2) {
+  var label = 0;
+  var __stackBase__ = STACKTOP;
+  STACKTOP = STACKTOP + 4 | 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $d = __stackBase__;
+    var $1 = $d | 0;
+    _setLang($1, $l2);
+    var $i_0 = 0;
+    label = 3;
+    break;
+   case 3:
+    var $i_0;
+    var $3 = ($i_0 | 0) < 3;
+    if ($3) {
+      label = 4;
+      break;
+    } else {
+      var $_0 = 1;
+      label = 5;
+      break;
+    }
+   case 4:
+    var $5 = $l1 + $i_0 | 0;
+    var $6 = HEAP8[$5];
+    var $7 = $6 << 24 >> 24;
+    var $8 = _tolower($7);
+    var $9 = $d + $i_0 | 0;
+    var $10 = HEAP8[$9];
+    var $11 = $10 << 24 >> 24;
+    var $12 = _tolower($11);
+    var $sext = $8 << 24;
+    var $13 = ($sext | 0) < 536870912;
+    var $sext8 = $12 << 24;
+    var $14 = ($sext8 | 0) < 536870912;
+    var $_op = $8 << 24;
+    var $sext9 = $13 ? 536870912 : $_op;
+    var $_op11 = $12 << 24;
+    var $sext10 = $14 ? 536870912 : $_op11;
+    var $15 = ($sext9 | 0) == ($sext10 | 0);
+    var $16 = $i_0 + 1 | 0;
+    if ($15) {
+      var $i_0 = $16;
+      label = 3;
+      break;
+    } else {
+      var $_0 = 0;
+      label = 5;
+      break;
+    }
+   case 5:
+    var $_0;
+    STACKTOP = __stackBase__;
+    return $_0;
+  }
+}
+function _setLang($dst, $src) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = ($src | 0) == 0;
+    if ($1) {
+      label = 4;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 3:
+    var $3 = HEAP8[$src];
+    var $4 = $3 << 24 >> 24 == 0;
+    if ($4) {
+      label = 4;
+      break;
+    } else {
+      var $i_018 = 0;
+      var $9 = $3;
+      label = 7;
+      break;
+    }
+   case 4:
+    HEAP8[$dst] = 88;
+    var $6 = $dst + 1 | 0;
+    HEAP8[$6] = 88;
+    var $7 = $dst + 2 | 0;
+    HEAP8[$7] = 88;
+    label = 10;
+    break;
+   case 5:
+    var $i_0_lcssa;
+    var $8 = ($i_0_lcssa | 0) < 3;
+    if ($8) {
+      label = 9;
+      break;
+    } else {
+      label = 10;
+      break;
+    }
+   case 6:
+    var $_pr = HEAP8[$src];
+    var $i_018 = $15;
+    var $9 = $_pr;
+    label = 7;
+    break;
+   case 7:
+    var $9;
+    var $i_018;
+    var $10 = $9 << 24 >> 24 == 0;
+    if ($10) {
+      var $i_0_lcssa = $i_018;
+      label = 5;
+      break;
+    } else {
+      label = 8;
+      break;
+    }
+   case 8:
+    var $12 = $src + $i_018 | 0;
+    var $13 = HEAP8[$12];
+    var $14 = $dst + $i_018 | 0;
+    HEAP8[$14] = $13;
+    var $15 = $i_018 + 1 | 0;
+    var $16 = ($15 | 0) > 2;
+    var $or_cond = $16 | $1;
+    if ($or_cond) {
+      var $i_0_lcssa = $15;
+      label = 5;
+      break;
+    } else {
+      label = 6;
+      break;
+    }
+   case 9:
+    var $scevgep = $dst + $i_0_lcssa | 0;
+    var $17 = 3 - $i_0_lcssa | 0;
+    _memset($scevgep, 32, $17);
+    label = 10;
+    break;
+   case 10:
+    return;
+  }
+}
+function _local_ucs2_strdup($dst, $src) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = ($dst | 0) == 0;
+    if ($1) {
+      var $_0 = 0;
+      label = 8;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 3:
+    var $3 = HEAP32[$dst >> 2];
+    var $4 = $3;
+    _free($4);
+    HEAP32[$dst >> 2] = 0;
+    var $5 = ($src | 0) == 0;
+    if ($5) {
+      var $_0 = 0;
+      label = 8;
+      break;
+    } else {
+      var $n_0 = 0;
+      label = 4;
+      break;
+    }
+   case 4:
+    var $n_0;
+    var $6 = $src + ($n_0 << 1) | 0;
+    var $7 = HEAP16[$6 >> 1];
+    var $8 = $7 << 16 >> 16 == 0;
+    var $9 = $n_0 + 1 | 0;
+    if ($8) {
+      label = 5;
+      break;
+    } else {
+      var $n_0 = $9;
+      label = 4;
+      break;
+    }
+   case 5:
+    var $11 = ($n_0 | 0) == 0;
+    if ($11) {
+      var $_0 = 0;
+      label = 8;
+      break;
+    } else {
+      label = 6;
+      break;
+    }
+   case 6:
+    var $13 = $n_0 + 1 | 0;
+    var $14 = _calloc($13, 2);
+    var $15 = $14;
+    HEAP32[$dst >> 2] = $15;
+    var $16 = ($14 | 0) == 0;
+    if ($16) {
+      var $_0 = 0;
+      label = 8;
+      break;
+    } else {
+      label = 7;
+      break;
+    }
+   case 7:
+    var $18 = $src;
+    var $19 = $n_0 << 1;
+    _memcpy($14, $18, $19);
+    var $20 = HEAP32[$dst >> 2];
+    var $21 = $20 + ($n_0 << 1) | 0;
+    HEAP16[$21 >> 1] = 0;
+    var $_0 = $n_0;
+    label = 8;
+    break;
+   case 8:
+    var $_0;
+    return $_0;
+  }
+}
+function _maybeLatin1($text) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = ($text | 0) == 0;
+    if ($1) {
+      var $_0 = 1;
+      label = 6;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 3:
+    var $3 = HEAP16[$text >> 1];
+    var $text_pn = $text;
+    label = 4;
+    break;
+   case 4:
+    var $text_pn;
+    var $_05 = $text_pn + 2 | 0;
+    var $5 = HEAP16[$_05 >> 1];
+    var $6 = $5 << 16 >> 16 == 0;
+    if ($6) {
+      var $_0 = 1;
+      label = 6;
+      break;
+    } else {
+      label = 5;
+      break;
+    }
+   case 5:
+    var $8 = _toLittleEndian($3, $5);
+    var $9 = ($8 & 65535) > 254;
+    if ($9) {
+      var $_0 = 0;
+      label = 6;
+      break;
+    } else {
+      var $text_pn = $_05;
+      label = 4;
+      break;
+    }
+   case 6:
+    var $_0;
+    return $_0;
+  }
+}
+function _local_strdup_utf16_to_latin1($utf16) {
+  var $1 = _local_ucs2_strlen($utf16);
+  var $3 = _calloc($1 + 1 | 0, 1);
+  _writeLoBytes($3, $utf16, $1);
+  return $3;
+}
+function _lame_init_params($gfp) {
+  var label = 0;
+  var __stackBase__ = STACKTOP;
+  STACKTOP = STACKTOP + 8 | 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $lowpass = __stackBase__;
+    var $1 = $gfp + 288 | 0;
+    var $2 = HEAP32[$1 >> 2];
+    var $3 = $2 + 16 | 0;
+    var $4 = $2 | 0;
+    HEAP32[$4 >> 2] = 0;
+    var $5 = $gfp + 180 | 0;
+    var $6 = HEAP32[$5 >> 2];
+    var $7 = $2 + 124 | 0;
+    HEAP32[$7 >> 2] = $6;
+    var $8 = $gfp + 32 | 0;
+    var $9 = HEAP32[$8 >> 2];
+    var $10 = $2 + 140 | 0;
+    HEAP32[$10 >> 2] = $9;
+    var $11 = ($9 | 0) == 0;
+    if ($11) {
+      label = 4;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 3:
+    var $13 = $gfp + 36 | 0;
+    HEAP32[$13 >> 2] = 0;
+    label = 4;
+    break;
+   case 4:
+    var $15 = $2 + 85800 | 0;
+    var $16 = HEAP32[$15 >> 2];
+    var $17 = ($16 | 0) == 0;
+    if ($17) {
+      label = 6;
+      break;
+    } else {
+      label = 5;
+      break;
+    }
+   case 5:
+    var $19 = $gfp + 36 | 0;
+    HEAP32[$19 >> 2] = 0;
+    label = 6;
+    break;
+   case 6:
+    var $21 = $gfp + 272 | 0;
+    var $22 = HEAP32[$21 >> 2];
+    var $23 = $2 + 85824 | 0;
+    HEAP32[$23 >> 2] = $22;
+    var $24 = $gfp + 276 | 0;
+    var $25 = HEAP32[$24 >> 2];
+    var $26 = $2 + 85828 | 0;
+    HEAP32[$26 >> 2] = $25;
+    var $27 = $gfp + 280 | 0;
+    var $28 = HEAP32[$27 >> 2];
+    var $29 = $2 + 85832 | 0;
+    HEAP32[$29 >> 2] = $28;
+    var $30 = $2 + 85752 | 0;
+    var $31 = $30;
+    var $32 = HEAP32[$31 >> 2];
+    var $33 = $32 & -3;
+    HEAP32[$31 >> 2] = $33;
+    var $34 = $2 + 85752 | 0;
+    var $35 = $34;
+    var $36 = HEAP32[$35 >> 2];
+    var $37 = $36 & -2;
+    HEAP32[$35 >> 2] = $37;
+    var $38 = $2 + 85752 | 0;
+    var $39 = $38;
+    var $40 = HEAP32[$39 >> 2];
+    var $storemerge608 = $40 & -13;
+    HEAP32[$39 >> 2] = $storemerge608;
+    var $41 = $2 + 85792 | 0;
+    var $42 = HEAP32[$41 >> 2];
+    var $43 = ($42 | 0) == 0;
+    if ($43) {
+      label = 7;
+      break;
+    } else {
+      label = 8;
+      break;
+    }
+   case 7:
+    var $45 = _calloc(1, 2772);
+    var $46 = $45;
+    HEAP32[$41 >> 2] = $46;
+    var $47 = ($45 | 0) == 0;
+    if ($47) {
+      var $_0 = -2;
+      label = 202;
+      break;
+    } else {
+      label = 8;
+      break;
+    }
+   case 8:
+    var $48 = $2 + 85672 | 0;
+    var $49 = HEAP32[$48 >> 2];
+    var $50 = ($49 | 0) == 0;
+    if ($50) {
+      label = 9;
+      break;
+    } else {
+      label = 11;
+      break;
+    }
+   case 9:
+    var $52 = _calloc(1, 134792);
+    var $53 = $52;
+    HEAP32[$48 >> 2] = $53;
+    var $54 = ($52 | 0) == 0;
+    if ($54) {
+      label = 10;
+      break;
+    } else {
+      label = 11;
+      break;
+    }
+   case 10:
+    _freegfc($2);
+    HEAP32[$1 >> 2] = 0;
+    var $_0 = -2;
+    label = 202;
+    break;
+   case 11:
+    var $56 = $gfp + 120 | 0;
+    var $57 = HEAP32[$56 >> 2];
+    var $58 = $2 + 160 | 0;
+    HEAP32[$58 >> 2] = $57;
+    var $59 = $gfp + 104 | 0;
+    var $60 = HEAP32[$59 >> 2];
+    var $61 = $2 + 164 | 0;
+    HEAP32[$61 >> 2] = $60;
+    var $62 = $gfp + 108 | 0;
+    var $63 = HEAP32[$62 >> 2];
+    var $64 = $2 + 168 | 0;
+    HEAP32[$64 >> 2] = $63;
+    var $65 = $gfp + 112 | 0;
+    var $66 = HEAP32[$65 >> 2];
+    var $67 = $2 + 172 | 0;
+    HEAP32[$67 >> 2] = $66;
+    var $68 = $gfp + 116 | 0;
+    var $69 = HEAP32[$68 >> 2];
+    var $70 = $2 + 176 | 0;
+    HEAP32[$70 >> 2] = $69;
+    var $71 = $gfp + 8 | 0;
+    var $72 = HEAP32[$71 >> 2];
+    var $73 = $2 + 68 | 0;
+    HEAP32[$73 >> 2] = $72;
+    var $74 = ($72 | 0) == 1;
+    if ($74) {
+      label = 12;
+      break;
+    } else {
+      label = 13;
+      break;
+    }
+   case 12:
+    var $76 = $gfp + 48 | 0;
+    HEAP32[$76 >> 2] = 3;
+    label = 13;
+    break;
+   case 13:
+    var $78 = $gfp + 48 | 0;
+    var $79 = HEAP32[$78 >> 2];
+    var $80 = ($79 | 0) == 3;
+    var $81 = $80 ? 1 : 2;
+    var $82 = $2 + 72 | 0;
+    HEAP32[$82 >> 2] = $81;
+    var $83 = HEAP32[$78 >> 2];
+    var $84 = ($83 | 0) == 3;
+    if ($84) {
+      label = 14;
+      break;
+    } else {
+      label = 15;
+      break;
+    }
+   case 14:
+    var $86 = $gfp + 52 | 0;
+    HEAP32[$86 >> 2] = 0;
+    label = 15;
+    break;
+   case 15:
+    var $88 = $gfp + 52 | 0;
+    var $89 = HEAP32[$88 >> 2];
+    var $90 = $2 + 80 | 0;
+    HEAP32[$90 >> 2] = $89;
+    var $91 = $gfp + 156 | 0;
+    var $92 = HEAP32[$91 >> 2];
+    var $93 = ($92 | 0) == 0;
+    if ($93) {
+      label = 16;
+      break;
+    } else {
+      var $104 = $92;
+      label = 20;
+      break;
+    }
+   case 16:
+    var $95 = $gfp + 168 | 0;
+    var $96 = HEAP32[$95 >> 2];
+    var $97 = ($96 | 0) == 128;
+    if ($97) {
+      label = 19;
+      break;
+    } else {
+      label = 17;
+      break;
+    }
+   case 17:
+    var $99 = $gfp + 96 | 0;
+    var $100 = HEAP32[$99 >> 2];
+    var $101 = ($100 | 0) == 0;
+    if ($101) {
+      label = 18;
+      break;
+    } else {
+      label = 19;
+      break;
+    }
+   case 18:
+    HEAP32[$99 >> 2] = $96;
+    label = 19;
+    break;
+   case 19:
+    var $_pr = HEAP32[$91 >> 2];
+    var $104 = $_pr;
+    label = 20;
+    break;
+   case 20:
+    var $104;
+    if (($104 | 0) == 0 | ($104 | 0) == 4 | ($104 | 0) == 1) {
+      label = 22;
+      break;
+    } else {
+      label = 21;
+      break;
+    }
+   case 21:
+    var $106 = $gfp + 56 | 0;
+    HEAP32[$106 >> 2] = 0;
+    label = 22;
+    break;
+   case 22:
+    var $108 = $gfp + 56 | 0;
+    var $109 = HEAP32[$108 >> 2];
+    var $110 = $2 + 152 | 0;
+    HEAP32[$110 >> 2] = $109;
+    var $111 = HEAP32[$91 >> 2];
+    var $112 = ($111 | 0) == 0;
+    if ($112) {
+      label = 23;
+      break;
+    } else {
+      label = 34;
+      break;
+    }
+   case 23:
+    var $114 = $gfp + 96 | 0;
+    var $115 = HEAP32[$114 >> 2];
+    var $116 = ($115 | 0) == 0;
+    if ($116) {
+      label = 24;
+      break;
+    } else {
+      label = 28;
+      break;
+    }
+   case 24:
+    var $118 = $gfp + 100 | 0;
+    var $119 = HEAPF32[$118 >> 2];
+    var $120 = $119 == 0;
+    if ($120) {
+      label = 26;
+      break;
+    } else {
+      label = 25;
+      break;
+    }
+   case 25:
+    var $fabsf = Math.abs($119);
+    var $122 = $fabsf;
+    var $123 = $122 * 9.999999974752427e-7;
+    var $124 = $122 > $123;
+    if ($124) {
+      label = 28;
+      break;
+    } else {
+      label = 27;
+      break;
+    }
+   case 26:
+    var $126 = $119 == 0;
+    if ($126) {
+      label = 27;
+      break;
+    } else {
+      label = 28;
+      break;
+    }
+   case 27:
+    HEAPF32[$118 >> 2] = 11.024999618530273;
+    label = 28;
+    break;
+   case 28:
+    var $_pr596 = HEAP32[$91 >> 2];
+    var $129 = ($_pr596 | 0) == 0;
+    if ($129) {
+      label = 29;
+      break;
+    } else {
+      label = 34;
+      break;
+    }
+   case 29:
+    var $131 = $gfp + 100 | 0;
+    var $132 = HEAPF32[$131 >> 2];
+    var $133 = $132 > 0;
+    if ($133) {
+      label = 30;
+      break;
+    } else {
+      label = 34;
+      break;
+    }
+   case 30:
+    var $135 = $gfp + 16 | 0;
+    var $136 = HEAP32[$135 >> 2];
+    var $137 = ($136 | 0) == 0;
+    if ($137) {
+      label = 31;
+      break;
+    } else {
+      label = 32;
+      break;
+    }
+   case 31:
+    var $139 = $gfp + 12 | 0;
+    var $140 = HEAP32[$139 >> 2];
+    var $141 = $140 | 0;
+    var $142 = $141 * .97;
+    var $143 = $142 & -1;
+    var $144 = _map2MP3Frequency($143);
+    HEAP32[$135 >> 2] = $144;
+    label = 32;
+    break;
+   case 32:
+    var $146 = HEAP32[$135 >> 2];
+    var $147 = $146 << 4;
+    var $148 = HEAP32[$82 >> 2];
+    var $149 = $147 * $148 & -1;
+    var $150 = $149 | 0;
+    var $151 = HEAPF32[$131 >> 2];
+    var $152 = $151;
+    var $153 = $152 * 1e3;
+    var $154 = $150 / $153;
+    var $155 = $154 & -1;
+    var $156 = $gfp + 96 | 0;
+    HEAP32[$156 >> 2] = $155;
+    var $157 = HEAP32[$135 >> 2];
+    var $158 = $3 | 0;
+    var $159 = _SmpFrqIndex($157, $158);
+    var $160 = $2 + 20 | 0;
+    HEAP32[$160 >> 2] = $159;
+    var $161 = HEAP32[$110 >> 2];
+    var $162 = ($161 | 0) == 0;
+    if ($162) {
+      label = 33;
+      break;
+    } else {
+      label = 34;
+      break;
+    }
+   case 33:
+    var $164 = HEAP32[$156 >> 2];
+    var $165 = HEAP32[$158 >> 2];
+    var $166 = HEAP32[$135 >> 2];
+    var $167 = _FindNearestBitrate($164, $165, $166);
+    HEAP32[$156 >> 2] = $167;
+    label = 34;
+    break;
+   case 34:
+    var $168 = $gfp + 16 | 0;
+    var $169 = HEAP32[$168 >> 2];
+    var $170 = ($169 | 0) == 0;
+    if ($170) {
+      label = 41;
+      break;
+    } else {
+      label = 35;
+      break;
+    }
+   case 35:
+    var $172 = ($169 | 0) < 16e3;
+    if ($172) {
+      label = 36;
+      break;
+    } else {
+      label = 37;
+      break;
+    }
+   case 36:
+    var $174 = $gfp + 168 | 0;
+    var $175 = HEAP32[$174 >> 2];
+    var $176 = ($175 | 0) > 8;
+    var $_ = $176 ? $175 : 8;
+    var $177 = ($_ | 0) < 64;
+    var $178 = $177 ? $_ : 64;
+    HEAP32[$174 >> 2] = $178;
+    label = 40;
+    break;
+   case 37:
+    var $180 = ($169 | 0) < 32e3;
+    var $181 = $gfp + 168 | 0;
+    var $182 = HEAP32[$181 >> 2];
+    if ($180) {
+      label = 38;
+      break;
+    } else {
+      label = 39;
+      break;
+    }
+   case 38:
+    var $184 = ($182 | 0) > 8;
+    var $_587 = $184 ? $182 : 8;
+    var $185 = ($_587 | 0) < 160;
+    var $186 = $185 ? $_587 : 160;
+    HEAP32[$181 >> 2] = $186;
+    label = 40;
+    break;
+   case 39:
+    var $188 = ($182 | 0) > 32;
+    var $_588 = $188 ? $182 : 32;
+    var $189 = ($_588 | 0) < 320;
+    var $190 = $189 ? $_588 : 320;
+    HEAP32[$181 >> 2] = $190;
+    label = 40;
+    break;
+   case 40:
+    var $_pr599 = HEAP32[$168 >> 2];
+    var $192 = ($_pr599 | 0) == 0;
+    if ($192) {
+      label = 41;
+      break;
+    } else {
+      label = 52;
+      break;
+    }
+   case 41:
+    var $193 = HEAP32[$91 >> 2];
+    if (($193 | 0) == 1 | ($193 | 0) == 4) {
+      label = 42;
+      break;
+    } else {
+      label = 52;
+      break;
+    }
+   case 42:
+    var $195 = $gfp + 164 | 0;
+    var $196 = HEAP32[$195 >> 2];
+    var $197 = $196 | 0;
+    var $198 = $gfp + 160 | 0;
+    var $199 = HEAPF32[$198 >> 2];
+    var $200 = $197 + $199;
+    var $201 = $gfp + 12 | 0;
+    var $i_0620 = 2;
+    label = 43;
+    break;
+   case 43:
+    var $i_0620;
+    var $203 = HEAP32[$201 >> 2];
+    var $204 = 5317672 + $i_0620 * 24 | 0;
+    var $205 = HEAP32[$204 >> 2];
+    var $206 = ($203 | 0) == ($205 | 0);
+    if ($206) {
+      label = 44;
+      break;
+    } else {
+      label = 46;
+      break;
+    }
+   case 44:
+    var $208 = 5317676 + $i_0620 * 24 | 0;
+    var $209 = HEAPF32[$208 >> 2];
+    var $210 = $200 < $209;
+    if ($210) {
+      label = 45;
+      break;
+    } else {
+      label = 46;
+      break;
+    }
+   case 45:
+    var $212 = $200 / $209;
+    var $213 = $212;
+    var $214 = 5317684 + $i_0620 * 24 | 0;
+    var $215 = HEAPF32[$214 >> 2];
+    var $216 = $215;
+    var $217 = $213 * $216;
+    var $218 = $217 & -1;
+    HEAP32[$195 >> 2] = $218;
+    var $219 = $218 | 0;
+    var $220 = $217 - $219;
+    var $221 = $220;
+    HEAPF32[$198 >> 2] = $221;
+    label = 46;
+    break;
+   case 46:
+    var $223 = HEAP32[$201 >> 2];
+    var $224 = HEAP32[$204 >> 2];
+    var $225 = ($223 | 0) < ($224 | 0);
+    if ($225) {
+      label = 51;
+      break;
+    } else {
+      label = 47;
+      break;
+    }
+   case 47:
+    var $227 = 5317676 + $i_0620 * 24 | 0;
+    var $228 = HEAPF32[$227 >> 2];
+    var $229 = $228 > $200;
+    if ($229) {
+      label = 51;
+      break;
+    } else {
+      label = 48;
+      break;
+    }
+   case 48:
+    var $231 = 5317680 + $i_0620 * 24 | 0;
+    var $232 = HEAPF32[$231 >> 2];
+    var $233 = $200 < $232;
+    if ($233) {
+      label = 49;
+      break;
+    } else {
+      label = 51;
+      break;
+    }
+   case 49:
+    var $235 = $232 - $228;
+    var $236 = 5317688 + $i_0620 * 24 | 0;
+    var $237 = HEAPF32[$236 >> 2];
+    var $238 = 5317684 + $i_0620 * 24 | 0;
+    var $239 = HEAPF32[$238 >> 2];
+    var $240 = $237 - $239;
+    var $241 = $200 - $228;
+    var $242 = $241 * $240;
+    var $243 = $242 / $235;
+    var $244 = $239 + $243;
+    var $245 = $244;
+    var $246 = $244 & -1;
+    HEAP32[$195 >> 2] = $246;
+    var $247 = $246 | 0;
+    var $248 = $245 - $247;
+    var $249 = $248;
+    HEAPF32[$198 >> 2] = $249;
+    var $250 = HEAP32[$204 >> 2];
+    HEAP32[$168 >> 2] = $250;
+    var $251 = $gfp + 184 | 0;
+    var $252 = HEAP32[$251 >> 2];
+    var $253 = ($252 | 0) == 0;
+    if ($253) {
+      label = 50;
+      break;
+    } else {
+      label = 52;
+      break;
+    }
+   case 50:
+    HEAP32[$251 >> 2] = -1;
+    label = 52;
+    break;
+   case 51:
+    var $256 = $i_0620 + 1 | 0;
+    var $257 = ($256 | 0) < 9;
+    if ($257) {
+      var $i_0620 = $256;
+      label = 43;
+      break;
+    } else {
+      label = 52;
+      break;
+    }
+   case 52:
+    var $258 = $gfp + 184 | 0;
+    var $259 = HEAP32[$258 >> 2];
+    var $260 = ($259 | 0) == 0;
+    if ($260) {
+      label = 53;
+      break;
+    } else {
+      label = 69;
+      break;
+    }
+   case 53:
+    HEAPF64[tempDoublePtr >> 3] = 16e3, HEAP32[$lowpass >> 2] = HEAP32[tempDoublePtr >> 2], HEAP32[$lowpass + 4 >> 2] = HEAP32[tempDoublePtr + 4 >> 2];
+    var $262 = HEAP32[$91 >> 2];
+    if (($262 | 0) == 0) {
+      label = 54;
+      break;
+    } else if (($262 | 0) == 3) {
+      label = 55;
+      break;
+    } else if (($262 | 0) == 2) {
+      label = 56;
+      break;
+    } else if (($262 | 0) == 4 | ($262 | 0) == 1) {
+      label = 59;
+      break;
+    } else {
+      label = 62;
+      break;
+    }
+   case 54:
+    var $264 = $gfp + 96 | 0;
+    var $265 = HEAP32[$264 >> 2];
+    _optimum_bandwidth($lowpass, $265);
+    label = 65;
+    break;
+   case 55:
+    var $267 = $gfp + 168 | 0;
+    var $268 = HEAP32[$267 >> 2];
+    _optimum_bandwidth($lowpass, $268);
+    label = 65;
+    break;
+   case 56:
+    var $270 = $gfp + 164 | 0;
+    var $271 = HEAP32[$270 >> 2];
+    var $272 = $271 >>> 0 < 10;
+    if ($272) {
+      label = 57;
+      break;
+    } else {
+      label = 58;
+      break;
+    }
+   case 57:
+    var $274 = 5317628 + ($271 << 2) | 0;
+    var $275 = HEAP32[$274 >> 2];
+    var $276 = $275 | 0;
+    var $277 = $271 + 1 | 0;
+    var $278 = 5317628 + ($277 << 2) | 0;
+    var $279 = HEAP32[$278 >> 2];
+    var $280 = $279 | 0;
+    var $281 = $gfp + 160 | 0;
+    var $282 = HEAPF32[$281 >> 2];
+    var $283 = $282;
+    var $284 = _linear_int($276, $280, $283);
+    HEAPF64[tempDoublePtr >> 3] = $284, HEAP32[$lowpass >> 2] = HEAP32[tempDoublePtr >> 2], HEAP32[$lowpass + 4 >> 2] = HEAP32[tempDoublePtr + 4 >> 2];
+    label = 65;
+    break;
+   case 58:
+    HEAPF64[tempDoublePtr >> 3] = 19500, HEAP32[$lowpass >> 2] = HEAP32[tempDoublePtr >> 2], HEAP32[$lowpass + 4 >> 2] = HEAP32[tempDoublePtr + 4 >> 2];
+    label = 65;
+    break;
+   case 59:
+    var $287 = $gfp + 164 | 0;
+    var $288 = HEAP32[$287 >> 2];
+    var $289 = $288 >>> 0 < 10;
+    if ($289) {
+      label = 60;
+      break;
+    } else {
+      label = 61;
+      break;
+    }
+   case 60:
+    var $291 = 5317584 + ($288 << 2) | 0;
+    var $292 = HEAP32[$291 >> 2];
+    var $293 = $292 | 0;
+    var $294 = $288 + 1 | 0;
+    var $295 = 5317584 + ($294 << 2) | 0;
+    var $296 = HEAP32[$295 >> 2];
+    var $297 = $296 | 0;
+    var $298 = $gfp + 160 | 0;
+    var $299 = HEAPF32[$298 >> 2];
+    var $300 = $299;
+    var $301 = _linear_int($293, $297, $300);
+    HEAPF64[tempDoublePtr >> 3] = $301, HEAP32[$lowpass >> 2] = HEAP32[tempDoublePtr >> 2], HEAP32[$lowpass + 4 >> 2] = HEAP32[tempDoublePtr + 4 >> 2];
+    label = 65;
+    break;
+   case 61:
+    HEAPF64[tempDoublePtr >> 3] = 21500, HEAP32[$lowpass >> 2] = HEAP32[tempDoublePtr >> 2], HEAP32[$lowpass + 4 >> 2] = HEAP32[tempDoublePtr + 4 >> 2];
+    label = 65;
+    break;
+   case 62:
+    var $304 = $gfp + 164 | 0;
+    var $305 = HEAP32[$304 >> 2];
+    var $306 = $305 >>> 0 < 10;
+    if ($306) {
+      label = 63;
+      break;
+    } else {
+      label = 64;
+      break;
+    }
+   case 63:
+    var $308 = 5317540 + ($305 << 2) | 0;
+    var $309 = HEAP32[$308 >> 2];
+    var $310 = $309 | 0;
+    var $311 = $305 + 1 | 0;
+    var $312 = 5317540 + ($311 << 2) | 0;
+    var $313 = HEAP32[$312 >> 2];
+    var $314 = $313 | 0;
+    var $315 = $gfp + 160 | 0;
+    var $316 = HEAPF32[$315 >> 2];
+    var $317 = $316;
+    var $318 = _linear_int($310, $314, $317);
+    HEAPF64[tempDoublePtr >> 3] = $318, HEAP32[$lowpass >> 2] = HEAP32[tempDoublePtr >> 2], HEAP32[$lowpass + 4 >> 2] = HEAP32[tempDoublePtr + 4 >> 2];
+    label = 65;
+    break;
+   case 64:
+    HEAPF64[tempDoublePtr >> 3] = 19500, HEAP32[$lowpass >> 2] = HEAP32[tempDoublePtr >> 2], HEAP32[$lowpass + 4 >> 2] = HEAP32[tempDoublePtr + 4 >> 2];
+    label = 65;
+    break;
+   case 65:
+    var $321 = HEAP32[$78 >> 2];
+    var $322 = ($321 | 0) == 3;
+    if ($322) {
+      label = 66;
+      break;
+    } else {
+      label = 68;
+      break;
+    }
+   case 66:
+    var $324 = HEAP32[$91 >> 2];
+    if (($324 | 0) == 0 | ($324 | 0) == 3) {
+      label = 67;
+      break;
+    } else {
+      label = 68;
+      break;
+    }
+   case 67:
+    var $326 = (HEAP32[tempDoublePtr >> 2] = HEAP32[$lowpass >> 2], HEAP32[tempDoublePtr + 4 >> 2] = HEAP32[$lowpass + 4 >> 2], HEAPF64[tempDoublePtr >> 3]);
+    var $327 = $326 * 1.5;
+    HEAPF64[tempDoublePtr >> 3] = $327, HEAP32[$lowpass >> 2] = HEAP32[tempDoublePtr >> 2], HEAP32[$lowpass + 4 >> 2] = HEAP32[tempDoublePtr + 4 >> 2];
+    label = 68;
+    break;
+   case 68:
+    var $329 = (HEAP32[tempDoublePtr >> 2] = HEAP32[$lowpass >> 2], HEAP32[tempDoublePtr + 4 >> 2] = HEAP32[$lowpass + 4 >> 2], HEAPF64[tempDoublePtr >> 3]);
+    var $330 = $329 & -1;
+    HEAP32[$258 >> 2] = $330;
+    label = 69;
+    break;
+   case 69:
+    var $332 = HEAP32[$168 >> 2];
+    var $333 = ($332 | 0) == 0;
+    if ($333) {
+      label = 70;
+      break;
+    } else {
+      label = 73;
+      break;
+    }
+   case 70:
+    var $335 = HEAP32[$258 >> 2];
+    var $336 = $335 << 1;
+    var $337 = $gfp + 12 | 0;
+    var $338 = HEAP32[$337 >> 2];
+    var $339 = ($336 | 0) > ($338 | 0);
+    if ($339) {
+      label = 71;
+      break;
+    } else {
+      label = 72;
+      break;
+    }
+   case 71:
+    var $341 = ($338 | 0) / 2 & -1;
+    HEAP32[$258 >> 2] = $341;
+    label = 72;
+    break;
+   case 72:
+    var $343 = HEAP32[$258 >> 2];
+    var $344 = HEAP32[$337 >> 2];
+    var $345 = _optimum_samplefreq($343, $344);
+    HEAP32[$168 >> 2] = $345;
+    label = 73;
+    break;
+   case 73:
+    var $347 = HEAP32[$91 >> 2];
+    if (($347 | 0) == 1 | ($347 | 0) == 4) {
+      label = 74;
+      break;
+    } else {
+      label = 75;
+      break;
+    }
+   case 74:
+    var $349 = HEAP32[$258 >> 2];
+    var $350 = ($349 | 0) > 24e3;
+    var $_591 = $350 ? 24e3 : $349;
+    var $storemerge = $_591;
+    label = 76;
+    break;
+   case 75:
+    var $352 = HEAP32[$258 >> 2];
+    var $353 = ($352 | 0) > 20500;
+    var $_592 = $353 ? 20500 : $352;
+    var $storemerge = $_592;
+    label = 76;
+    break;
+   case 76:
+    var $storemerge;
+    var $355 = HEAP32[$168 >> 2];
+    var $356 = ($355 | 0) / 2 & -1;
+    var $357 = ($356 | 0) < ($storemerge | 0);
+    var $_storemerge = $357 ? $356 : $storemerge;
+    HEAP32[$258 >> 2] = $_storemerge;
+    var $358 = HEAP32[$91 >> 2];
+    var $359 = ($358 | 0) == 0;
+    if ($359) {
+      label = 77;
+      break;
+    } else {
+      var $374 = $358;
+      label = 78;
+      break;
+    }
+   case 77:
+    var $361 = HEAP32[$168 >> 2];
+    var $362 = $361 << 4;
+    var $363 = HEAP32[$82 >> 2];
+    var $364 = $362 * $363 & -1;
+    var $365 = $364 | 0;
+    var $366 = $gfp + 96 | 0;
+    var $367 = HEAP32[$366 >> 2];
+    var $368 = $367 | 0;
+    var $369 = $368 * 1e3;
+    var $370 = $365 / $369;
+    var $371 = $370;
+    var $372 = $gfp + 100 | 0;
+    HEAPF32[$372 >> 2] = $371;
+    var $_pr601 = HEAP32[$91 >> 2];
+    var $374 = $_pr601;
+    label = 78;
+    break;
+   case 78:
+    var $374;
+    var $375 = ($374 | 0) == 3;
+    if ($375) {
+      label = 79;
+      break;
+    } else {
+      label = 80;
+      break;
+    }
+   case 79:
+    var $377 = HEAP32[$168 >> 2];
+    var $378 = $377 << 4;
+    var $379 = HEAP32[$82 >> 2];
+    var $380 = $378 * $379 & -1;
+    var $381 = $380 | 0;
+    var $382 = $gfp + 168 | 0;
+    var $383 = HEAP32[$382 >> 2];
+    var $384 = $383 | 0;
+    var $385 = $384 * 1e3;
+    var $386 = $381 / $385;
+    var $387 = $386;
+    var $388 = $gfp + 100 | 0;
+    HEAPF32[$388 >> 2] = $387;
+    label = 80;
+    break;
+   case 80:
+    var $390 = $gfp + 36 | 0;
+    var $391 = HEAP32[$390 >> 2];
+    var $392 = ($391 | 0) == 0;
+    if ($392) {
+      label = 81;
+      break;
+    } else {
+      label = 82;
+      break;
+    }
+   case 81:
+    var $394 = $gfp + 60 | 0;
+    HEAP32[$394 >> 2] = 0;
+    var $395 = $gfp + 64 | 0;
+    HEAP32[$395 >> 2] = 0;
+    var $396 = $2 + 132 | 0;
+    HEAP32[$396 >> 2] = 0;
+    label = 82;
+    break;
+   case 82:
+    var $398 = $gfp + 60 | 0;
+    var $399 = HEAP32[$398 >> 2];
+    var $400 = $2 + 128 | 0;
+    HEAP32[$400 >> 2] = $399;
+    var $401 = $gfp + 64 | 0;
+    var $402 = HEAP32[$401 >> 2];
+    var $403 = $2 + 136 | 0;
+    HEAP32[$403 >> 2] = $402;
+    var $404 = ($402 | 0) == 0;
+    if ($404) {
+      label = 84;
+      break;
+    } else {
+      label = 83;
+      break;
+    }
+   case 83:
+    var $406 = $2 + 132 | 0;
+    HEAP32[$406 >> 2] = 1;
+    label = 84;
+    break;
+   case 84:
+    var $408 = HEAP32[$400 >> 2];
+    var $409 = ($408 | 0) == 0;
+    if ($409) {
+      label = 87;
+      break;
+    } else {
+      label = 85;
+      break;
+    }
+   case 85:
+    var $411 = HEAP32[$48 >> 2];
+    var $412 = HEAP32[$168 >> 2];
+    var $413 = _InitGainAnalysis($411, $412);
+    var $414 = ($413 | 0) == 0;
+    if ($414) {
+      label = 86;
+      break;
+    } else {
+      label = 87;
+      break;
+    }
+   case 86:
+    _freegfc($2);
+    HEAP32[$1 >> 2] = 0;
+    var $_0 = -6;
+    label = 202;
+    break;
+   case 87:
+    var $417 = HEAP32[$403 >> 2];
+    var $418 = ($417 | 0) == 0;
+    if ($418) {
+      label = 92;
+      break;
+    } else {
+      label = 88;
+      break;
+    }
+   case 88:
+    var $420 = $gfp + 40 | 0;
+    var $421 = HEAP32[$420 >> 2];
+    var $422 = ($421 | 0) == 0;
+    if ($422) {
+      label = 89;
+      break;
+    } else {
+      label = 92;
+      break;
+    }
+   case 89:
+    var $424 = $2 + 85804 | 0;
+    var $425 = HEAP32[$424 >> 2];
+    var $426 = ($425 | 0) == 0;
+    if ($426) {
+      label = 91;
+      break;
+    } else {
+      label = 90;
+      break;
+    }
+   case 90:
+    var $428 = _hip_decode_exit($425);
+    label = 91;
+    break;
+   case 91:
+    var $430 = _hip_decode_init();
+    HEAP32[$424 >> 2] = $430;
+    var $431 = HEAP32[$27 >> 2];
+    _hip_set_errorf($430, $431);
+    var $432 = HEAP32[$424 >> 2];
+    var $433 = HEAP32[$24 >> 2];
+    _hip_set_debugf($432, $433);
+    var $434 = HEAP32[$424 >> 2];
+    var $435 = HEAP32[$21 >> 2];
+    _hip_set_msgf($434, $435);
+    label = 92;
+    break;
+   case 92:
+    var $437 = $gfp + 128 | 0;
+    var $438 = HEAP32[$437 >> 2];
+    var $439 = $2 + 144 | 0;
+    HEAP32[$439 >> 2] = $438;
+    var $440 = HEAP32[$258 >> 2];
+    var $441 = $2 + 52 | 0;
+    HEAP32[$441 >> 2] = $440;
+    var $442 = $gfp + 188 | 0;
+    var $443 = HEAP32[$442 >> 2];
+    var $444 = $2 + 56 | 0;
+    HEAP32[$444 >> 2] = $443;
+    var $445 = $gfp + 12 | 0;
+    var $446 = HEAP32[$445 >> 2];
+    var $447 = $2 + 60 | 0;
+    HEAP32[$447 >> 2] = $446;
+    var $448 = HEAP32[$168 >> 2];
+    var $449 = $2 + 64 | 0;
+    HEAP32[$449 >> 2] = $448;
+    var $450 = ($448 | 0) < 24001;
+    var $451 = $450 ? 1 : 2;
+    var $452 = $2 + 76 | 0;
+    HEAP32[$452 >> 2] = $451;
+    var $453 = $2 + 84756 | 0;
+    HEAP32[$453 >> 2] = 576;
+    var $454 = HEAP32[$91 >> 2];
+    if (($454 | 0) == 1 | ($454 | 0) == 2 | ($454 | 0) == 4) {
+      label = 93;
+      break;
+    } else if (($454 | 0) == 3) {
+      label = 94;
+      break;
+    } else {
+      label = 95;
+      break;
+    }
+   case 93:
+    var $456 = $gfp + 164 | 0;
+    var $457 = HEAP32[$456 >> 2];
+    var $458 = 5317888 + ($457 << 2) | 0;
+    var $459 = HEAPF32[$458 >> 2];
+    var $460 = $gfp + 100 | 0;
+    HEAPF32[$460 >> 2] = $459;
+    label = 96;
+    break;
+   case 94:
+    var $462 = HEAP32[$449 >> 2];
+    var $463 = $462 << 4;
+    var $464 = HEAP32[$82 >> 2];
+    var $465 = $463 * $464 & -1;
+    var $466 = $465 | 0;
+    var $467 = $gfp + 168 | 0;
+    var $468 = HEAP32[$467 >> 2];
+    var $469 = $468 | 0;
+    var $470 = $469 * 1e3;
+    var $471 = $466 / $470;
+    var $472 = $471;
+    var $473 = $gfp + 100 | 0;
+    HEAPF32[$473 >> 2] = $472;
+    label = 96;
+    break;
+   case 95:
+    var $475 = HEAP32[$449 >> 2];
+    var $476 = $475 << 4;
+    var $477 = HEAP32[$82 >> 2];
+    var $478 = $476 * $477 & -1;
+    var $479 = $478 | 0;
+    var $480 = $gfp + 96 | 0;
+    var $481 = HEAP32[$480 >> 2];
+    var $482 = $481 | 0;
+    var $483 = $482 * 1e3;
+    var $484 = $479 / $483;
+    var $485 = $484;
+    var $486 = $gfp + 100 | 0;
+    HEAPF32[$486 >> 2] = $485;
+    label = 96;
+    break;
+   case 96:
+    var $488 = HEAP32[$78 >> 2];
+    var $489 = ($488 | 0) == 4;
+    if ($489) {
+      label = 97;
+      break;
+    } else {
+      label = 98;
+      break;
+    }
+   case 97:
+    HEAP32[$78 >> 2] = 1;
+    label = 98;
+    break;
+   case 98:
+    var $492 = HEAP32[$78 >> 2];
+    var $493 = $2 + 180 | 0;
+    HEAP32[$493 >> 2] = $492;
+    var $494 = HEAP32[$444 >> 2];
+    var $495 = ($494 | 0) > 0;
+    if ($495) {
+      label = 99;
+      break;
+    } else {
+      label = 103;
+      break;
+    }
+   case 99:
+    var $497 = $494 | 0;
+    var $498 = $497 * 2;
+    var $499 = $498;
+    var $500 = $2 + 256 | 0;
+    HEAPF32[$500 >> 2] = $499;
+    var $501 = $gfp + 196 | 0;
+    var $502 = HEAP32[$501 >> 2];
+    var $503 = ($502 | 0) > -1;
+    var $504 = HEAP32[$444 >> 2];
+    if ($503) {
+      label = 100;
+      break;
+    } else {
+      label = 101;
+      break;
+    }
+   case 100:
+    var $506 = $504 + $502 | 0;
+    var $507 = $506 | 0;
+    var $508 = $507 * 2;
+    var $509 = $508;
+    var $510 = $2 + 260 | 0;
+    HEAPF32[$510 >> 2] = $509;
+    label = 102;
+    break;
+   case 101:
+    var $512 = $504 | 0;
+    var $513 = $512 * 2;
+    var $514 = $513;
+    var $515 = $2 + 260 | 0;
+    HEAPF32[$515 >> 2] = $514;
+    label = 102;
+    break;
+   case 102:
+    var $517 = HEAP32[$449 >> 2];
+    var $518 = $517 | 0;
+    var $519 = HEAPF32[$500 >> 2];
+    var $520 = $519 / $518;
+    HEAPF32[$500 >> 2] = $520;
+    var $521 = HEAP32[$449 >> 2];
+    var $522 = $521 | 0;
+    var $523 = $2 + 260 | 0;
+    var $524 = HEAPF32[$523 >> 2];
+    var $525 = $524 / $522;
+    HEAPF32[$523 >> 2] = $525;
+    label = 104;
+    break;
+   case 103:
+    var $527 = $2 + 256 | 0;
+    HEAPF32[$527 >> 2] = 0;
+    var $528 = $2 + 260 | 0;
+    HEAPF32[$528 >> 2] = 0;
+    label = 104;
+    break;
+   case 104:
+    var $530 = $2 + 248 | 0;
+    HEAPF32[$530 >> 2] = 0;
+    var $531 = $2 + 252 | 0;
+    HEAPF32[$531 >> 2] = 0;
+    var $532 = HEAP32[$441 >> 2];
+    var $533 = ($532 | 0) > 0;
+    if ($533) {
+      label = 105;
+      break;
+    } else {
+      label = 111;
+      break;
+    }
+   case 105:
+    var $535 = HEAP32[$449 >> 2];
+    var $536 = ($535 | 0) / 2 & -1;
+    var $537 = ($532 | 0) < ($536 | 0);
+    if ($537) {
+      label = 106;
+      break;
+    } else {
+      label = 111;
+      break;
+    }
+   case 106:
+    var $539 = $532 | 0;
+    var $540 = $539 * 2;
+    var $541 = $540;
+    HEAPF32[$531 >> 2] = $541;
+    var $542 = $gfp + 192 | 0;
+    var $543 = HEAP32[$542 >> 2];
+    var $544 = ($543 | 0) > -1;
+    var $545 = HEAP32[$441 >> 2];
+    if ($544) {
+      label = 107;
+      break;
+    } else {
+      label = 109;
+      break;
+    }
+   case 107:
+    var $547 = $545 - $543 | 0;
+    var $548 = $547 | 0;
+    var $549 = $548 * 2;
+    var $550 = $549;
+    HEAPF32[$530 >> 2] = $550;
+    var $551 = $550 < 0;
+    if ($551) {
+      label = 108;
+      break;
+    } else {
+      label = 110;
+      break;
+    }
+   case 108:
+    HEAPF32[$530 >> 2] = 0;
+    label = 110;
+    break;
+   case 109:
+    var $554 = $545 | 0;
+    var $555 = $554 * 2;
+    var $556 = $555;
+    HEAPF32[$530 >> 2] = $556;
+    label = 110;
+    break;
+   case 110:
+    var $558 = HEAP32[$449 >> 2];
+    var $559 = $558 | 0;
+    var $560 = HEAPF32[$530 >> 2];
+    var $561 = $560 / $559;
+    HEAPF32[$530 >> 2] = $561;
+    var $562 = HEAP32[$449 >> 2];
+    var $563 = $562 | 0;
+    var $564 = HEAPF32[$531 >> 2];
+    var $565 = $564 / $563;
+    HEAPF32[$531 >> 2] = $565;
+    label = 111;
+    break;
+   case 111:
+    _lame_init_params_ppflt($2);
+    var $567 = HEAP32[$449 >> 2];
+    var $568 = $3 | 0;
+    var $569 = _SmpFrqIndex($567, $568);
+    var $570 = $2 + 20 | 0;
+    HEAP32[$570 >> 2] = $569;
+    var $571 = ($569 | 0) < 0;
+    if ($571) {
+      label = 112;
+      break;
+    } else {
+      label = 113;
+      break;
+    }
+   case 112:
+    _freegfc($2);
+    HEAP32[$1 >> 2] = 0;
+    var $_0 = -1;
+    label = 202;
+    break;
+   case 113:
+    var $574 = HEAP32[$91 >> 2];
+    var $575 = ($574 | 0) == 0;
+    if ($575) {
+      label = 114;
+      break;
+    } else {
+      label = 118;
+      break;
+    }
+   case 114:
+    var $577 = HEAP32[$110 >> 2];
+    var $578 = ($577 | 0) == 0;
+    if ($578) {
+      label = 116;
+      break;
+    } else {
+      label = 115;
+      break;
+    }
+   case 115:
+    var $580 = $2 + 84740 | 0;
+    HEAP32[$580 >> 2] = 0;
+    label = 119;
+    break;
+   case 116:
+    var $582 = $gfp + 96 | 0;
+    var $583 = HEAP32[$582 >> 2];
+    var $584 = HEAP32[$568 >> 2];
+    var $585 = HEAP32[$449 >> 2];
+    var $586 = _FindNearestBitrate($583, $584, $585);
+    HEAP32[$582 >> 2] = $586;
+    var $587 = HEAP32[$568 >> 2];
+    var $588 = HEAP32[$449 >> 2];
+    var $589 = _BitrateIndex($586, $587, $588);
+    var $590 = $2 + 84740 | 0;
+    HEAP32[$590 >> 2] = $589;
+    var $591 = ($589 | 0) < 1;
+    if ($591) {
+      label = 117;
+      break;
+    } else {
+      label = 119;
+      break;
+    }
+   case 117:
+    _freegfc($2);
+    HEAP32[$1 >> 2] = 0;
+    var $_0 = -1;
+    label = 202;
+    break;
+   case 118:
+    var $594 = $2 + 84740 | 0;
+    HEAP32[$594 >> 2] = 1;
+    label = 119;
+    break;
+   case 119:
+    _init_bit_stream_w($2);
+    var $596 = HEAP32[$570 >> 2];
+    var $597 = HEAP32[$568 >> 2];
+    var $598 = $597 * 3 & -1;
+    var $599 = $598 + $596 | 0;
+    var $600 = HEAP32[$449 >> 2];
+    var $601 = ($600 | 0) < 16e3;
+    var $602 = $601 & 1;
+    var $603 = -$602 | 0;
+    var $604 = $603 & 6;
+    var $605 = $599 + $604 | 0;
+    var $i_1616 = 0;
+    label = 120;
+    break;
+   case 120:
+    var $i_1616;
+    var $607 = 5254748 + $605 * 204 + ($i_1616 << 2) | 0;
+    var $608 = HEAP32[$607 >> 2];
+    var $609 = $2 + 21360 + ($i_1616 << 2) | 0;
+    HEAP32[$609 >> 2] = $608;
+    var $610 = $i_1616 + 1 | 0;
+    var $exitcond625 = ($610 | 0) == 23;
+    if ($exitcond625) {
+      label = 121;
+      break;
+    } else {
+      var $i_1616 = $610;
+      label = 120;
+      break;
+    }
+   case 121:
+    var $612 = $2 + 21448 | 0;
+    var $613 = $2 + 21444 | 0;
+    var $614 = HEAP32[$613 >> 2];
+    var $615 = $2 + 21508 | 0;
+    HEAP32[$615 >> 2] = $614;
+    var $616 = HEAP32[$612 >> 2];
+    var $617 = HEAP32[$613 >> 2];
+    var $618 = $616 - $617 | 0;
+    var $619 = ($618 | 0) / 6 & -1;
+    var $620 = $619 + $617 | 0;
+    var $621 = $2 + 21512 | 0;
+    HEAP32[$621 >> 2] = $620;
+    var $622 = HEAP32[$612 >> 2];
+    var $623 = HEAP32[$613 >> 2];
+    var $624 = $622 - $623 | 0;
+    var $625 = ($624 | 0) / 6 & -1;
+    var $626 = $625 << 1;
+    var $627 = $626 + $623 | 0;
+    var $628 = $2 + 21516 | 0;
+    HEAP32[$628 >> 2] = $627;
+    var $629 = HEAP32[$612 >> 2];
+    var $630 = HEAP32[$613 >> 2];
+    var $631 = $629 - $630 | 0;
+    var $632 = ($631 | 0) / 6 & -1;
+    var $633 = $632 * 3 & -1;
+    var $634 = $633 + $630 | 0;
+    var $635 = $2 + 21520 | 0;
+    HEAP32[$635 >> 2] = $634;
+    var $636 = HEAP32[$612 >> 2];
+    var $637 = HEAP32[$613 >> 2];
+    var $638 = $636 - $637 | 0;
+    var $639 = ($638 | 0) / 6 & -1;
+    var $640 = $639 << 2;
+    var $641 = $640 + $637 | 0;
+    var $642 = $2 + 21524 | 0;
+    HEAP32[$642 >> 2] = $641;
+    var $643 = HEAP32[$612 >> 2];
+    var $644 = HEAP32[$613 >> 2];
+    var $645 = $643 - $644 | 0;
+    var $646 = ($645 | 0) / 6 & -1;
+    var $647 = $646 * 5 & -1;
+    var $648 = $647 + $644 | 0;
+    var $649 = $2 + 21528 | 0;
+    HEAP32[$649 >> 2] = $648;
+    var $650 = $2 + 21532 | 0;
+    HEAP32[$650 >> 2] = 576;
+    var $651 = 5254840 + $605 * 204 | 0;
+    var $652 = HEAP32[$651 >> 2];
+    var $653 = $2 + 21452 | 0;
+    HEAP32[$653 >> 2] = $652;
+    var $654 = 5254844 + $605 * 204 | 0;
+    var $655 = HEAP32[$654 >> 2];
+    var $656 = $2 + 21456 | 0;
+    HEAP32[$656 >> 2] = $655;
+    var $657 = 5254848 + $605 * 204 | 0;
+    var $658 = HEAP32[$657 >> 2];
+    var $659 = $2 + 21460 | 0;
+    HEAP32[$659 >> 2] = $658;
+    var $660 = 5254852 + $605 * 204 | 0;
+    var $661 = HEAP32[$660 >> 2];
+    var $662 = $2 + 21464 | 0;
+    HEAP32[$662 >> 2] = $661;
+    var $663 = 5254856 + $605 * 204 | 0;
+    var $664 = HEAP32[$663 >> 2];
+    var $665 = $2 + 21468 | 0;
+    HEAP32[$665 >> 2] = $664;
+    var $666 = 5254860 + $605 * 204 | 0;
+    var $667 = HEAP32[$666 >> 2];
+    var $668 = $2 + 21472 | 0;
+    HEAP32[$668 >> 2] = $667;
+    var $669 = 5254864 + $605 * 204 | 0;
+    var $670 = HEAP32[$669 >> 2];
+    var $671 = $2 + 21476 | 0;
+    HEAP32[$671 >> 2] = $670;
+    var $672 = 5254868 + $605 * 204 | 0;
+    var $673 = HEAP32[$672 >> 2];
+    var $674 = $2 + 21480 | 0;
+    HEAP32[$674 >> 2] = $673;
+    var $675 = 5254872 + $605 * 204 | 0;
+    var $676 = HEAP32[$675 >> 2];
+    var $677 = $2 + 21484 | 0;
+    HEAP32[$677 >> 2] = $676;
+    var $678 = 5254876 + $605 * 204 | 0;
+    var $679 = HEAP32[$678 >> 2];
+    var $680 = $2 + 21488 | 0;
+    HEAP32[$680 >> 2] = $679;
+    var $681 = 5254880 + $605 * 204 | 0;
+    var $682 = HEAP32[$681 >> 2];
+    var $683 = $2 + 21492 | 0;
+    HEAP32[$683 >> 2] = $682;
+    var $684 = 5254884 + $605 * 204 | 0;
+    var $685 = HEAP32[$684 >> 2];
+    var $686 = $2 + 21496 | 0;
+    HEAP32[$686 >> 2] = $685;
+    var $687 = 5254888 + $605 * 204 | 0;
+    var $688 = HEAP32[$687 >> 2];
+    var $689 = $2 + 21500 | 0;
+    HEAP32[$689 >> 2] = $688;
+    var $690 = 5254892 + $605 * 204 | 0;
+    var $691 = HEAP32[$690 >> 2];
+    var $692 = $2 + 21504 | 0;
+    HEAP32[$692 >> 2] = $691;
+    var $693 = $2 + 21504 | 0;
+    var $694 = $2 + 21500 | 0;
+    var $695 = HEAP32[$694 >> 2];
+    var $696 = $2 + 21536 | 0;
+    HEAP32[$696 >> 2] = $695;
+    var $697 = HEAP32[$693 >> 2];
+    var $698 = HEAP32[$694 >> 2];
+    var $699 = $697 - $698 | 0;
+    var $700 = ($699 | 0) / 6 & -1;
+    var $701 = $700 + $698 | 0;
+    var $702 = $2 + 21540 | 0;
+    HEAP32[$702 >> 2] = $701;
+    var $703 = HEAP32[$693 >> 2];
+    var $704 = HEAP32[$694 >> 2];
+    var $705 = $703 - $704 | 0;
+    var $706 = ($705 | 0) / 6 & -1;
+    var $707 = $706 << 1;
+    var $708 = $707 + $704 | 0;
+    var $709 = $2 + 21544 | 0;
+    HEAP32[$709 >> 2] = $708;
+    var $710 = HEAP32[$693 >> 2];
+    var $711 = HEAP32[$694 >> 2];
+    var $712 = $710 - $711 | 0;
+    var $713 = ($712 | 0) / 6 & -1;
+    var $714 = $713 * 3 & -1;
+    var $715 = $714 + $711 | 0;
+    var $716 = $2 + 21548 | 0;
+    HEAP32[$716 >> 2] = $715;
+    var $717 = HEAP32[$693 >> 2];
+    var $718 = HEAP32[$694 >> 2];
+    var $719 = $717 - $718 | 0;
+    var $720 = ($719 | 0) / 6 & -1;
+    var $721 = $720 << 2;
+    var $722 = $721 + $718 | 0;
+    var $723 = $2 + 21552 | 0;
+    HEAP32[$723 >> 2] = $722;
+    var $724 = HEAP32[$693 >> 2];
+    var $725 = HEAP32[$694 >> 2];
+    var $726 = $724 - $725 | 0;
+    var $727 = ($726 | 0) / 6 & -1;
+    var $728 = $727 * 5 & -1;
+    var $729 = $728 + $725 | 0;
+    var $730 = $2 + 21556 | 0;
+    HEAP32[$730 >> 2] = $729;
+    var $731 = $2 + 21560 | 0;
+    HEAP32[$731 >> 2] = 192;
+    var $732 = HEAP32[$452 >> 2];
+    var $733 = ($732 | 0) == 2;
+    var $734 = HEAP32[$82 >> 2];
+    var $735 = ($734 | 0) == 1;
+    if ($733) {
+      label = 122;
+      break;
+    } else {
+      label = 123;
+      break;
+    }
+   case 122:
+    var $737 = $735 ? 21 : 36;
+    var $738 = $2 + 24 | 0;
+    HEAP32[$738 >> 2] = $737;
+    label = 124;
+    break;
+   case 123:
+    var $740 = $735 ? 13 : 21;
+    var $741 = $2 + 24 | 0;
+    HEAP32[$741 >> 2] = $740;
+    label = 124;
+    break;
+   case 124:
+    var $743 = HEAP32[$58 >> 2];
+    var $744 = ($743 | 0) == 0;
+    if ($744) {
+      label = 126;
+      break;
+    } else {
+      label = 125;
+      break;
+    }
+   case 125:
+    var $746 = $2 + 24 | 0;
+    var $747 = HEAP32[$746 >> 2];
+    var $748 = $747 + 2 | 0;
+    HEAP32[$746 >> 2] = $748;
+    label = 126;
+    break;
+   case 126:
+    HEAP32[$4 >> 2] = -487877;
+    var $k_0611 = 0;
+    label = 127;
+    break;
+   case 127:
+    var $k_0611;
+    var $751 = HEAP32[$452 >> 2];
+    var $752 = $751 * 700 & -1;
+    var $753 = HEAP32[$82 >> 2];
+    var $754 = $752 * $753 & -1;
+    var $755 = $754 | 0;
+    var $756 = $2 + 39752 + ($k_0611 << 2) | 0;
+    HEAPF32[$756 >> 2] = $755;
+    var $757 = $k_0611 + 1 | 0;
+    var $exitcond = ($757 | 0) == 19;
+    if ($exitcond) {
+      label = 128;
+      break;
+    } else {
+      var $k_0611 = $757;
+      label = 127;
+      break;
+    }
+   case 128:
+    var $759 = $gfp + 220 | 0;
+    var $760 = HEAP32[$759 >> 2];
+    var $761 = ($760 | 0) == -1;
+    if ($761) {
+      label = 129;
+      break;
+    } else {
+      label = 130;
+      break;
+    }
+   case 129:
+    HEAP32[$759 >> 2] = 4;
+    label = 130;
+    break;
+   case 130:
+    var $764 = HEAP32[$91 >> 2];
+    if (($764 | 0) == 1 | ($764 | 0) == 4) {
+      label = 131;
+      break;
+    } else if (($764 | 0) == 2) {
+      label = 145;
+      break;
+    } else {
+      label = 153;
+      break;
+    }
+   case 131:
+    var $766 = $gfp + 124 | 0;
+    var $767 = HEAP32[$766 >> 2];
+    var $768 = ($767 | 0) < 0;
+    if ($768) {
+      label = 132;
+      break;
+    } else {
+      label = 133;
+      break;
+    }
+   case 132:
+    HEAP32[$766 >> 2] = 2;
+    label = 133;
+    break;
+   case 133:
+    var $771 = $gfp + 244 | 0;
+    var $772 = HEAP32[$771 >> 2];
+    var $773 = ($772 | 0) < 0;
+    if ($773) {
+      label = 134;
+      break;
+    } else {
+      label = 135;
+      break;
+    }
+   case 134:
+    HEAP32[$771 >> 2] = 0;
+    label = 135;
+    break;
+   case 135:
+    var $776 = $gfp + 164 | 0;
+    var $777 = HEAP32[$776 >> 2];
+    var $778 = $777 * -10 & -1;
+    var $779 = $778 + 500 | 0;
+    var $780 = _apply_preset($gfp, $779, 0);
+    var $781 = $gfp + 44 | 0;
+    var $782 = HEAP32[$781 >> 2];
+    var $783 = ($782 | 0) < 0;
+    if ($783) {
+      label = 136;
+      break;
+    } else {
+      label = 137;
+      break;
+    }
+   case 136:
+    HEAP32[$781 >> 2] = 3;
+    label = 138;
+    break;
+   case 137:
+    var $785 = ($782 | 0) < 5;
+    if ($785) {
+      label = 138;
+      break;
+    } else {
+      label = 139;
+      break;
+    }
+   case 138:
+    HEAP32[$781 >> 2] = 0;
+    label = 141;
+    break;
+   case 139:
+    var $_pr604 = HEAP32[$781 >> 2];
+    var $787 = ($_pr604 | 0) > 7;
+    if ($787) {
+      label = 140;
+      break;
+    } else {
+      label = 141;
+      break;
+    }
+   case 140:
+    HEAP32[$781 >> 2] = 7;
+    label = 141;
+    break;
+   case 141:
+    var $790 = $gfp + 140 | 0;
+    var $791 = HEAP32[$790 >> 2];
+    var $792 = ($791 | 0) == 0;
+    if ($792) {
+      label = 143;
+      break;
+    } else {
+      label = 142;
+      break;
+    }
+   case 142:
+    var $794 = $2 + 85088 | 0;
+    HEAP32[$794 >> 2] = 0;
+    label = 144;
+    break;
+   case 143:
+    var $796 = HEAP32[$449 >> 2];
+    var $797 = ($796 | 0) > 44e3;
+    var $798 = $797 & 1;
+    var $799 = $2 + 85088 | 0;
+    HEAP32[$799 >> 2] = $798;
+    label = 144;
+    break;
+   case 144:
+    var $801 = $2 + 85808 | 0;
+    HEAP32[$801 >> 2] = 20;
+    label = 160;
+    break;
+   case 145:
+    var $803 = $gfp + 164 | 0;
+    var $804 = HEAP32[$803 >> 2];
+    var $805 = $804 * -10 & -1;
+    var $806 = $805 + 500 | 0;
+    var $807 = _apply_preset($gfp, $806, 0);
+    var $808 = $gfp + 140 | 0;
+    var $809 = HEAP32[$808 >> 2];
+    var $810 = ($809 | 0) == 0;
+    if ($810) {
+      label = 147;
+      break;
+    } else {
+      label = 146;
+      break;
+    }
+   case 146:
+    var $812 = $2 + 85088 | 0;
+    HEAP32[$812 >> 2] = 0;
+    label = 148;
+    break;
+   case 147:
+    var $814 = HEAP32[$449 >> 2];
+    var $815 = ($814 | 0) > 44e3;
+    var $816 = $815 & 1;
+    var $817 = $2 + 85088 | 0;
+    HEAP32[$817 >> 2] = $816;
+    label = 148;
+    break;
+   case 148:
+    var $819 = $gfp + 44 | 0;
+    var $820 = HEAP32[$819 >> 2];
+    var $821 = ($820 | 0) > 6;
+    if ($821) {
+      label = 149;
+      break;
+    } else {
+      label = 150;
+      break;
+    }
+   case 149:
+    HEAP32[$819 >> 2] = 6;
+    label = 152;
+    break;
+   case 150:
+    var $823 = ($820 | 0) < 0;
+    if ($823) {
+      label = 151;
+      break;
+    } else {
+      label = 152;
+      break;
+    }
+   case 151:
+    HEAP32[$819 >> 2] = 3;
+    label = 152;
+    break;
+   case 152:
+    var $826 = $2 + 85808 | 0;
+    HEAP32[$826 >> 2] = 14;
+    label = 160;
+    break;
+   case 153:
+    var $828 = $2 + 85088 | 0;
+    HEAP32[$828 >> 2] = 0;
+    var $829 = $gfp + 44 | 0;
+    var $830 = HEAP32[$829 >> 2];
+    var $831 = ($830 | 0) < 0;
+    if ($831) {
+      label = 154;
+      break;
+    } else {
+      label = 155;
+      break;
+    }
+   case 154:
+    HEAP32[$829 >> 2] = 3;
+    label = 155;
+    break;
+   case 155:
+    var $834 = HEAP32[$91 >> 2];
+    var $835 = ($834 | 0) == 0;
+    if ($835) {
+      label = 156;
+      break;
+    } else {
+      label = 157;
+      break;
+    }
+   case 156:
+    var $837 = $gfp + 96 | 0;
+    var $838 = HEAP32[$837 >> 2];
+    var $839 = _lame_set_VBR_mean_bitrate_kbps($gfp, $838);
+    label = 157;
+    break;
+   case 157:
+    var $841 = $gfp + 168 | 0;
+    var $842 = HEAP32[$841 >> 2];
+    var $843 = _apply_preset($gfp, $842, 0);
+    HEAP32[$91 >> 2] = $834;
+    var $844 = $2 + 85808 | 0;
+    if ($835) {
+      label = 158;
+      break;
+    } else {
+      label = 159;
+      break;
+    }
+   case 158:
+    HEAP32[$844 >> 2] = 26;
+    label = 160;
+    break;
+   case 159:
+    HEAP32[$844 >> 2] = 4;
+    label = 160;
+    break;
+   case 160:
+    var $848 = $gfp + 200 | 0;
+    var $849 = HEAPF32[$848 >> 2];
+    var $850 = $2 + 84908 | 0;
+    HEAPF32[$850 >> 2] = $849;
+    var $851 = $gfp + 204 | 0;
+    var $852 = HEAPF32[$851 >> 2];
+    var $853 = $2 + 84912 | 0;
+    HEAPF32[$853 >> 2] = $852;
+    var $854 = $gfp + 256 | 0;
+    var $855 = HEAP32[$854 >> 2];
+    var $856 = ($855 | 0) == 0;
+    if ($856) {
+      label = 162;
+      break;
+    } else {
+      label = 161;
+      break;
+    }
+   case 161:
+    var $858 = $gfp + 260 | 0;
+    var $859 = HEAPF32[$858 >> 2];
+    var $860 = HEAPF32[$850 >> 2];
+    var $861 = $859 + $860;
+    HEAPF32[$850 >> 2] = $861;
+    var $862 = HEAPF32[$858 >> 2];
+    var $863 = HEAPF32[$853 >> 2];
+    var $864 = $862 + $863;
+    HEAPF32[$853 >> 2] = $864;
+    label = 162;
+    break;
+   case 162:
+    var $866 = HEAP32[$91 >> 2];
+    var $867 = ($866 | 0) == 0;
+    if ($867) {
+      label = 170;
+      break;
+    } else {
+      label = 163;
+      break;
+    }
+   case 163:
+    var $869 = $2 + 112 | 0;
+    HEAP32[$869 >> 2] = 1;
+    var $870 = $2 + 116 | 0;
+    HEAP32[$870 >> 2] = 14;
+    var $871 = HEAP32[$449 >> 2];
+    var $872 = ($871 | 0) < 16e3;
+    if ($872) {
+      label = 164;
+      break;
+    } else {
+      label = 165;
+      break;
+    }
+   case 164:
+    HEAP32[$870 >> 2] = 8;
+    label = 165;
+    break;
+   case 165:
+    var $875 = $gfp + 172 | 0;
+    var $876 = HEAP32[$875 >> 2];
+    var $877 = ($876 | 0) == 0;
+    if ($877) {
+      label = 167;
+      break;
+    } else {
+      label = 166;
+      break;
+    }
+   case 166:
+    var $879 = HEAP32[$568 >> 2];
+    var $880 = HEAP32[$449 >> 2];
+    var $881 = _FindNearestBitrate($876, $879, $880);
+    HEAP32[$875 >> 2] = $881;
+    var $882 = HEAP32[$568 >> 2];
+    var $883 = HEAP32[$449 >> 2];
+    var $884 = _BitrateIndex($881, $882, $883);
+    HEAP32[$869 >> 2] = $884;
+    var $885 = ($884 | 0) < 0;
+    if ($885) {
+      var $_0 = -1;
+      label = 202;
+      break;
+    } else {
+      label = 167;
+      break;
+    }
+   case 167:
+    var $887 = $gfp + 176 | 0;
+    var $888 = HEAP32[$887 >> 2];
+    var $889 = ($888 | 0) == 0;
+    if ($889) {
+      label = 169;
+      break;
+    } else {
+      label = 168;
+      break;
+    }
+   case 168:
+    var $891 = HEAP32[$568 >> 2];
+    var $892 = HEAP32[$449 >> 2];
+    var $893 = _FindNearestBitrate($888, $891, $892);
+    HEAP32[$887 >> 2] = $893;
+    var $894 = HEAP32[$568 >> 2];
+    var $895 = HEAP32[$449 >> 2];
+    var $896 = _BitrateIndex($893, $894, $895);
+    HEAP32[$870 >> 2] = $896;
+    var $897 = ($896 | 0) < 0;
+    if ($897) {
+      var $_0 = -1;
+      label = 202;
+      break;
+    } else {
+      label = 169;
+      break;
+    }
+   case 169:
+    var $899 = HEAP32[$869 >> 2];
+    var $900 = HEAP32[$568 >> 2];
+    var $901 = 5348684 + ($900 << 6) + ($899 << 2) | 0;
+    var $902 = HEAP32[$901 >> 2];
+    HEAP32[$875 >> 2] = $902;
+    var $903 = HEAP32[$870 >> 2];
+    var $904 = HEAP32[$568 >> 2];
+    var $905 = 5348684 + ($904 << 6) + ($903 << 2) | 0;
+    var $906 = HEAP32[$905 >> 2];
+    HEAP32[$887 >> 2] = $906;
+    var $907 = HEAP32[$870 >> 2];
+    var $908 = HEAP32[$568 >> 2];
+    var $909 = 5348684 + ($908 << 6) + ($907 << 2) | 0;
+    var $910 = HEAP32[$909 >> 2];
+    var $911 = $gfp + 168 | 0;
+    var $912 = HEAP32[$911 >> 2];
+    var $913 = ($910 | 0) < ($912 | 0);
+    var $_593 = $913 ? $910 : $912;
+    HEAP32[$911 >> 2] = $_593;
+    var $914 = HEAP32[$869 >> 2];
+    var $915 = HEAP32[$568 >> 2];
+    var $916 = 5348684 + ($915 << 6) + ($914 << 2) | 0;
+    var $917 = HEAP32[$916 >> 2];
+    var $918 = ($917 | 0) > ($_593 | 0);
+    var $919 = $918 ? $917 : $_593;
+    HEAP32[$911 >> 2] = $919;
+    label = 170;
+    break;
+   case 170:
+    var $921 = $gfp + 152 | 0;
+    var $922 = HEAP32[$921 >> 2];
+    var $923 = $2 + 100 | 0;
+    HEAP32[$923 >> 2] = $922;
+    var $924 = HEAP32[$390 >> 2];
+    var $925 = $2 + 156 | 0;
+    HEAP32[$925 >> 2] = $924;
+    var $926 = HEAP32[$91 >> 2];
+    var $927 = $2 + 104 | 0;
+    HEAP32[$927 >> 2] = $926;
+    var $928 = $gfp + 80 | 0;
+    var $929 = HEAP32[$928 >> 2];
+    var $930 = $2 + 85092 | 0;
+    HEAP32[$930 >> 2] = $929;
+    var $931 = $gfp + 84 | 0;
+    var $932 = HEAP32[$931 >> 2];
+    var $933 = $2 + 28 | 0;
+    HEAP32[$933 >> 2] = $932;
+    var $934 = $gfp + 88 | 0;
+    var $935 = HEAP32[$934 >> 2];
+    var $936 = $2 + 32 | 0;
+    HEAP32[$936 >> 2] = $935;
+    var $937 = $gfp + 92 | 0;
+    var $938 = HEAP32[$937 >> 2];
+    var $939 = $2 + 36 | 0;
+    HEAP32[$939 >> 2] = $938;
+    var $940 = $gfp + 96 | 0;
+    var $941 = HEAP32[$940 >> 2];
+    var $942 = $2 + 120 | 0;
+    HEAP32[$942 >> 2] = $941;
+    var $943 = $gfp + 168 | 0;
+    var $944 = HEAP32[$943 >> 2];
+    var $945 = $2 + 108 | 0;
+    HEAP32[$945 >> 2] = $944;
+    var $946 = $gfp + 100 | 0;
+    var $947 = HEAPF32[$946 >> 2];
+    var $948 = $2 + 244 | 0;
+    HEAPF32[$948 >> 2] = $947;
+    _lame_init_qval($gfp);
+    var $949 = $gfp + 232 | 0;
+    var $950 = HEAP32[$949 >> 2];
+    var $951 = ($950 | 0) < 0;
+    var $952 = HEAP32[$41 >> 2];
+    var $953 = $952 | 0;
+    var $_610 = $951 ? 3 : $950;
+    HEAP32[$953 >> 2] = $_610;
+    var $954 = $gfp + 236 | 0;
+    var $955 = HEAPF32[$954 >> 2];
+    var $956 = $955;
+    var $957 = $956 / -10;
+    var $958 = Math.pow(10, $957);
+    var $959 = $958;
+    var $960 = HEAP32[$41 >> 2];
+    var $961 = $960 + 4 | 0;
+    HEAPF32[$961 >> 2] = $959;
+    var $962 = $gfp + 240 | 0;
+    var $963 = HEAP32[$962 >> 2];
+    if (($963 | 0) == -1) {
+      label = 171;
+      break;
+    } else if (($963 | 0) == 0) {
+      label = 172;
+      break;
+    } else {
+      label = 174;
+      break;
+    }
+   case 171:
+    HEAP32[$962 >> 2] = 0;
+    label = 172;
+    break;
+   case 172:
+    var $965 = HEAP32[$493 >> 2];
+    var $switch = $965 >>> 0 < 2;
+    if ($switch) {
+      label = 173;
+      break;
+    } else {
+      label = 174;
+      break;
+    }
+   case 173:
+    HEAP32[$962 >> 2] = 1;
+    label = 174;
+    break;
+   case 174:
+    var $968 = HEAP32[$962 >> 2];
+    var $969 = $2 + 184 | 0;
+    HEAP32[$969 >> 2] = $968;
+    var $970 = _lame_get_quant_comp($gfp);
+    var $971 = ($970 | 0) < 0;
+    if ($971) {
+      label = 175;
+      break;
+    } else {
+      label = 176;
+      break;
+    }
+   case 175:
+    var $973 = _lame_set_quant_comp($gfp, 1);
+    label = 176;
+    break;
+   case 176:
+    var $975 = _lame_get_quant_comp_short($gfp);
+    var $976 = ($975 | 0) < 0;
+    if ($976) {
+      label = 177;
+      break;
+    } else {
+      label = 178;
+      break;
+    }
+   case 177:
+    var $978 = _lame_set_quant_comp_short($gfp, 0);
+    label = 178;
+    break;
+   case 178:
+    var $980 = _lame_get_msfix($gfp);
+    var $981 = $980 < 0;
+    if ($981) {
+      label = 179;
+      break;
+    } else {
+      label = 180;
+      break;
+    }
+   case 179:
+    _lame_set_msfix($gfp, 0);
+    label = 180;
+    break;
+   case 180:
+    var $984 = _lame_get_exp_nspsytune($gfp);
+    var $985 = $984 | 1;
+    var $986 = _lame_set_exp_nspsytune($gfp, $985);
+    var $987 = HEAP32[$759 >> 2];
+    var $988 = ($987 | 0) < 0;
+    if ($988) {
+      label = 181;
+      break;
+    } else {
+      label = 182;
+      break;
+    }
+   case 181:
+    HEAP32[$759 >> 2] = 4;
+    label = 182;
+    break;
+   case 182:
+    var $991 = $gfp + 224 | 0;
+    var $992 = HEAPF32[$991 >> 2];
+    var $993 = $992 < 0;
+    if ($993) {
+      label = 183;
+      break;
+    } else {
+      label = 184;
+      break;
+    }
+   case 183:
+    HEAPF32[$991 >> 2] = 4;
+    label = 184;
+    break;
+   case 184:
+    var $996 = $gfp + 248 | 0;
+    var $997 = HEAPF32[$996 >> 2];
+    var $998 = $997 < 0;
+    if ($998) {
+      label = 185;
+      break;
+    } else {
+      label = 186;
+      break;
+    }
+   case 185:
+    HEAPF32[$996 >> 2] = 0;
+    label = 186;
+    break;
+   case 186:
+    var $1001 = $gfp + 244 | 0;
+    var $1002 = HEAP32[$1001 >> 2];
+    var $1003 = ($1002 | 0) < 0;
+    if ($1003) {
+      label = 187;
+      break;
+    } else {
+      label = 188;
+      break;
+    }
+   case 187:
+    HEAP32[$1001 >> 2] = 1;
+    label = 188;
+    break;
+   case 188:
+    var $1006 = HEAPF32[$996 >> 2];
+    var $1007 = $2 + 188 | 0;
+    HEAPF32[$1007 >> 2] = $1006;
+    var $1008 = $gfp + 252 | 0;
+    var $1009 = HEAPF32[$1008 >> 2];
+    var $1010 = $2 + 192 | 0;
+    HEAPF32[$1010 >> 2] = $1009;
+    var $1011 = $gfp + 228 | 0;
+    var $1012 = HEAPF32[$1011 >> 2];
+    var $1013 = -$1012;
+    var $1014 = $2 + 196 | 0;
+    HEAPF32[$1014 >> 2] = $1013;
+    var $1015 = $1013 * .10000000149011612;
+    var $1016 = Math.pow(10, $1015);
+    var $1017 = $2 + 200 | 0;
+    HEAPF32[$1017 >> 2] = $1016;
+    var $1018 = HEAPF32[$991 >> 2];
+    var $1019 = $2 + 204 | 0;
+    HEAPF32[$1019 >> 2] = $1018;
+    var $1020 = HEAP32[$759 >> 2];
+    var $1021 = $2 + 208 | 0;
+    HEAP32[$1021 >> 2] = $1020;
+    var $1022 = $gfp + 208 | 0;
+    var $1023 = HEAP32[$1022 >> 2];
+    var $1024 = $2 + 212 | 0;
+    HEAP32[$1024 >> 2] = $1023;
+    var $1025 = $gfp + 212 | 0;
+    var $1026 = HEAP32[$1025 >> 2];
+    var $1027 = $2 + 216 | 0;
+    HEAP32[$1027 >> 2] = $1026;
+    var $1028 = $gfp + 216 | 0;
+    var $1029 = HEAP32[$1028 >> 2];
+    var $1030 = $2 + 220 | 0;
+    HEAP32[$1030 >> 2] = $1029;
+    var $1031 = $gfp + 132 | 0;
+    var $1032 = HEAP32[$1031 >> 2];
+    var $1033 = $2 + 84 | 0;
+    HEAP32[$1033 >> 2] = $1032;
+    var $1034 = $gfp + 136 | 0;
+    var $1035 = HEAP32[$1034 >> 2];
+    var $1036 = $2 + 88 | 0;
+    HEAP32[$1036 >> 2] = $1035;
+    var $1037 = HEAP32[$1001 >> 2];
+    var $1038 = $2 + 92 | 0;
+    HEAP32[$1038 >> 2] = $1037;
+    var $1039 = $gfp + 148 | 0;
+    var $1040 = HEAP32[$1039 >> 2];
+    var $1041 = $1040 & 2;
+    var $1042 = $2 + 96 | 0;
+    HEAP32[$1042 >> 2] = $1041;
+    var $1043 = HEAP32[$1039 >> 2];
+    var $1044 = $1043 >>> 2;
+    var $1045 = $1044 & 63;
+    var $1046 = $1045 | 0;
+    var $1047 = $2 + 232 | 0;
+    var $1048 = $1046 < 32;
+    if ($1048) {
+      var $storemerge586 = $1046;
+      label = 190;
+      break;
+    } else {
+      label = 189;
+      break;
+    }
+   case 189:
+    var $1050 = $1046 - 64;
+    var $storemerge586 = $1050;
+    label = 190;
+    break;
+   case 190:
+    var $storemerge586;
+    var $1052 = $storemerge586 * .25;
+    HEAPF32[$1047 >> 2] = $1052;
+    var $1053 = HEAP32[$1039 >> 2];
+    var $1054 = $1053 >>> 8;
+    var $1055 = $1054 & 63;
+    var $1056 = $1055 | 0;
+    var $1057 = $2 + 228 | 0;
+    var $1058 = $1056 < 32;
+    if ($1058) {
+      var $storemerge585 = $1056;
+      label = 192;
+      break;
+    } else {
+      label = 191;
+      break;
+    }
+   case 191:
+    var $1060 = $1056 - 64;
+    var $storemerge585 = $1060;
+    label = 192;
+    break;
+   case 192:
+    var $storemerge585;
+    var $1062 = $storemerge585 * .25;
+    HEAPF32[$1057 >> 2] = $1062;
+    var $1063 = HEAP32[$1039 >> 2];
+    var $1064 = $1063 >>> 14;
+    var $1065 = $1064 & 63;
+    var $1066 = $1065 | 0;
+    var $1067 = $2 + 236 | 0;
+    var $1068 = $1066 < 32;
+    if ($1068) {
+      var $storemerge584 = $1066;
+      label = 194;
+      break;
+    } else {
+      label = 193;
+      break;
+    }
+   case 193:
+    var $1070 = $1066 - 64;
+    var $storemerge584 = $1070;
+    label = 194;
+    break;
+   case 194:
+    var $storemerge584;
+    var $1072 = $storemerge584 * .25;
+    HEAPF32[$1067 >> 2] = $1072;
+    var $1073 = HEAP32[$1039 >> 2];
+    var $1074 = $1073 >>> 20;
+    var $1075 = $1074 & 63;
+    var $1076 = $1075 | 0;
+    var $1077 = $2 + 240 | 0;
+    var $1078 = $1076 < 32;
+    if ($1078) {
+      var $storemerge583 = $1076;
+      label = 196;
+      break;
+    } else {
+      label = 195;
+      break;
+    }
+   case 195:
+    var $1080 = $1076 - 64;
+    var $storemerge583 = $1080;
+    label = 196;
+    break;
+   case 196:
+    var $storemerge583;
+    var $1082 = $storemerge583 * .25;
+    var $1083 = HEAPF32[$1067 >> 2];
+    var $1084 = $1082 + $1083;
+    HEAPF32[$1077 >> 2] = $1084;
+    var $1085 = $gfp + 20 | 0;
+    var $1086 = HEAPF32[$1085 >> 2];
+    var $1087 = 0;
+    var $1088 = $gfp + 24 | 0;
+    var $1089 = HEAPF32[$1088 >> 2];
+    var $1090 = $1086 * $1089;
+    var $1091 = $1087 * $1089;
+    var $1092 = $gfp + 28 | 0;
+    var $1093 = HEAPF32[$1092 >> 2];
+    var $1094 = $1087 * $1093;
+    var $1095 = $1086 * $1093;
+    var $1096 = HEAP32[$73 >> 2];
+    var $1097 = ($1096 | 0) == 2;
+    if ($1097) {
+      label = 197;
+      break;
+    } else {
+      var $m10_sroa_0_0 = $1090;
+      var $m10_sroa_1_0 = $1091;
+      var $m10_sroa_2_0 = $1094;
+      var $m10_sroa_3_0 = $1095;
+      label = 199;
+      break;
+    }
+   case 197:
+    var $1099 = HEAP32[$82 >> 2];
+    var $1100 = ($1099 | 0) == 1;
+    if ($1100) {
+      label = 198;
+      break;
+    } else {
+      var $m10_sroa_0_0 = $1090;
+      var $m10_sroa_1_0 = $1091;
+      var $m10_sroa_2_0 = $1094;
+      var $m10_sroa_3_0 = $1095;
+      label = 199;
+      break;
+    }
+   case 198:
+    var $1102 = $1090 + $1094;
+    var $1103 = $1102 * .5;
+    var $1104 = $1091 + $1095;
+    var $1105 = $1104 * .5;
+    var $m10_sroa_0_0 = $1103;
+    var $m10_sroa_1_0 = $1105;
+    var $m10_sroa_2_0 = 0;
+    var $m10_sroa_3_0 = 0;
+    label = 199;
+    break;
+   case 199:
+    var $m10_sroa_3_0;
+    var $m10_sroa_2_0;
+    var $m10_sroa_1_0;
+    var $m10_sroa_0_0;
+    var $1107 = $2 + 264 | 0;
+    HEAPF32[$1107 >> 2] = $m10_sroa_0_0;
+    var $1108 = $2 + 268 | 0;
+    HEAPF32[$1108 >> 2] = $m10_sroa_1_0;
+    var $1109 = $2 + 272 | 0;
+    HEAPF32[$1109 >> 2] = $m10_sroa_2_0;
+    var $1110 = $2 + 276 | 0;
+    HEAPF32[$1110 >> 2] = $m10_sroa_3_0;
+    var $1111 = $2 + 39828 | 0;
+    HEAP32[$1111 >> 2] = 0;
+    var $1112 = $2 + 39832 | 0;
+    HEAP32[$1112 >> 2] = 0;
+    var $1113 = HEAP32[$927 >> 2];
+    var $1114 = ($1113 | 0) == 0;
+    if ($1114) {
+      label = 200;
+      break;
+    } else {
+      label = 201;
+      break;
+    }
+   case 200:
+    var $1116 = HEAP32[$568 >> 2];
+    var $1117 = $1116 * 72e3 & -1;
+    var $1118 = $1117 + 72e3 | 0;
+    var $1119 = HEAP32[$942 >> 2];
+    var $1120 = $1118 * $1119 & -1;
+    var $1121 = HEAP32[$449 >> 2];
+    var $1122 = ($1120 | 0) % ($1121 | 0);
+    HEAP32[$1111 >> 2] = $1122;
+    HEAP32[$1112 >> 2] = $1122;
+    label = 201;
+    break;
+   case 201:
+    var $1124 = _lame_init_bitstream($gfp);
+    _iteration_init($2);
+    var $1125 = _psymodel_init($gfp);
+    var $1126 = $gfp + 124 | 0;
+    var $1127 = HEAP32[$1126 >> 2];
+    var $1128 = _get_max_frame_buffer_size_by_constraint($3, $1127);
+    var $1129 = $2 + 148 | 0;
+    HEAP32[$1129 >> 2] = $1128;
+    var $_0 = 0;
+    label = 202;
+    break;
+   case 202:
+    var $_0;
+    STACKTOP = __stackBase__;
+    return $_0;
+  }
+}
+_lame_init_params["X"] = 1;
+function _linear_int($a, $b, $m) {
+  return ($b - $a) * $m + $a;
+}
+function _optimum_samplefreq($lowpassfreq, $input_samplefreq) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = ($input_samplefreq | 0) > 47999;
+    if ($1) {
+      var $suggested_samplefreq_0 = 48e3;
+      label = 11;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 3:
+    var $3 = ($input_samplefreq | 0) > 44099;
+    if ($3) {
+      var $suggested_samplefreq_0 = 44100;
+      label = 11;
+      break;
+    } else {
+      label = 4;
+      break;
+    }
+   case 4:
+    var $5 = ($input_samplefreq | 0) > 31999;
+    if ($5) {
+      var $suggested_samplefreq_0 = 32e3;
+      label = 11;
+      break;
+    } else {
+      label = 5;
+      break;
+    }
+   case 5:
+    var $7 = ($input_samplefreq | 0) > 23999;
+    if ($7) {
+      var $suggested_samplefreq_0 = 24e3;
+      label = 11;
+      break;
+    } else {
+      label = 6;
+      break;
+    }
+   case 6:
+    var $9 = ($input_samplefreq | 0) > 22049;
+    if ($9) {
+      var $suggested_samplefreq_0 = 22050;
+      label = 11;
+      break;
+    } else {
+      label = 7;
+      break;
+    }
+   case 7:
+    var $11 = ($input_samplefreq | 0) > 15999;
+    if ($11) {
+      var $suggested_samplefreq_0 = 16e3;
+      label = 11;
+      break;
+    } else {
+      label = 8;
+      break;
+    }
+   case 8:
+    var $13 = ($input_samplefreq | 0) > 11999;
+    if ($13) {
+      var $suggested_samplefreq_0 = 12e3;
+      label = 11;
+      break;
+    } else {
+      label = 9;
+      break;
+    }
+   case 9:
+    var $15 = ($input_samplefreq | 0) > 11024;
+    if ($15) {
+      var $suggested_samplefreq_0 = 11025;
+      label = 11;
+      break;
+    } else {
+      label = 10;
+      break;
+    }
+   case 10:
+    var $17 = ($input_samplefreq | 0) > 7999;
+    var $_ = $17 ? 8e3 : 44100;
+    var $suggested_samplefreq_0 = $_;
+    label = 11;
+    break;
+   case 11:
+    var $suggested_samplefreq_0;
+    var $19 = ($lowpassfreq | 0) == -1;
+    if ($19) {
+      var $_0 = $suggested_samplefreq_0;
+      label = 21;
+      break;
+    } else {
+      label = 12;
+      break;
+    }
+   case 12:
+    var $21 = ($lowpassfreq | 0) < 15961;
+    var $_suggested_samplefreq_0 = $21 ? 44100 : $suggested_samplefreq_0;
+    var $22 = ($lowpassfreq | 0) < 15251;
+    var $suggested_samplefreq_2 = $22 ? 32e3 : $_suggested_samplefreq_0;
+    var $23 = ($lowpassfreq | 0) < 11221;
+    var $_suggested_samplefreq_2 = $23 ? 24e3 : $suggested_samplefreq_2;
+    var $24 = ($lowpassfreq | 0) < 9971;
+    var $suggested_samplefreq_4 = $24 ? 22050 : $_suggested_samplefreq_2;
+    var $25 = ($lowpassfreq | 0) < 7231;
+    var $_suggested_samplefreq_4 = $25 ? 16e3 : $suggested_samplefreq_4;
+    var $26 = ($lowpassfreq | 0) < 5421;
+    var $suggested_samplefreq_6 = $26 ? 12e3 : $_suggested_samplefreq_4;
+    var $27 = ($lowpassfreq | 0) < 4511;
+    var $_suggested_samplefreq_6 = $27 ? 11025 : $suggested_samplefreq_6;
+    var $28 = ($lowpassfreq | 0) < 3971;
+    var $suggested_samplefreq_8 = $28 ? 8e3 : $_suggested_samplefreq_6;
+    var $29 = ($suggested_samplefreq_8 | 0) > ($input_samplefreq | 0);
+    if ($29) {
+      label = 13;
+      break;
+    } else {
+      var $_0 = $suggested_samplefreq_8;
+      label = 21;
+      break;
+    }
+   case 13:
+    var $31 = ($input_samplefreq | 0) > 44100;
+    if ($31) {
+      var $_0 = 48e3;
+      label = 21;
+      break;
+    } else {
+      label = 14;
+      break;
+    }
+   case 14:
+    var $33 = ($input_samplefreq | 0) > 32e3;
+    if ($33) {
+      var $_0 = 44100;
+      label = 21;
+      break;
+    } else {
+      label = 15;
+      break;
+    }
+   case 15:
+    var $35 = ($input_samplefreq | 0) > 24e3;
+    if ($35) {
+      var $_0 = 32e3;
+      label = 21;
+      break;
+    } else {
+      label = 16;
+      break;
+    }
+   case 16:
+    var $37 = ($input_samplefreq | 0) > 22050;
+    if ($37) {
+      var $_0 = 24e3;
+      label = 21;
+      break;
+    } else {
+      label = 17;
+      break;
+    }
+   case 17:
+    var $39 = ($input_samplefreq | 0) > 16e3;
+    if ($39) {
+      var $_0 = 22050;
+      label = 21;
+      break;
+    } else {
+      label = 18;
+      break;
+    }
+   case 18:
+    var $41 = ($input_samplefreq | 0) > 12e3;
+    if ($41) {
+      var $_0 = 16e3;
+      label = 21;
+      break;
+    } else {
+      label = 19;
+      break;
+    }
+   case 19:
+    var $43 = ($input_samplefreq | 0) > 11025;
+    if ($43) {
+      var $_0 = 12e3;
+      label = 21;
+      break;
+    } else {
+      label = 20;
+      break;
+    }
+   case 20:
+    var $45 = ($input_samplefreq | 0) > 8e3;
+    var $_30 = $45 ? 11025 : 8e3;
+    var $_0 = $_30;
+    label = 21;
+    break;
+   case 21:
+    var $_0;
+    return $_0;
+  }
+}
+_optimum_samplefreq["X"] = 1;
+function _optimum_bandwidth($lowerlimit, $bitrate) {
+  var $5 = HEAP32[5291696 + (_nearestBitrateFullIndex($bitrate & 65535) << 3) >> 2] | 0;
+  HEAPF64[tempDoublePtr >> 3] = $5, HEAP32[$lowerlimit >> 2] = HEAP32[tempDoublePtr >> 2], HEAP32[$lowerlimit + 4 >> 2] = HEAP32[tempDoublePtr + 4 >> 2];
+  return;
+}
+function _lame_init_params_ppflt($gfc) {
+  var label = 0;
+  var __stackBase__ = STACKTOP;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = $gfc + 248 | 0;
+    var $2 = HEAPF32[$1 >> 2];
+    var $3 = $2 > 0;
+    if ($3) {
+      label = 3;
+      break;
+    } else {
+      label = 11;
+      break;
+    }
+   case 3:
+    var $4 = $gfc + 252 | 0;
+    var $5 = HEAPF32[$4 >> 2];
+    var $6 = HEAPF32[$1 >> 2];
+    var $band_073 = 0;
+    var $minband_074 = 999;
+    var $lowpass_band_075 = 32;
+    label = 4;
+    break;
+   case 4:
+    var $lowpass_band_075;
+    var $minband_074;
+    var $band_073;
+    var $8 = $band_073 | 0;
+    var $9 = $8 / 31;
+    var $10 = $9;
+    var $11 = $10 < $5;
+    if ($11) {
+      var $lowpass_band_1 = $lowpass_band_075;
+      label = 6;
+      break;
+    } else {
+      label = 5;
+      break;
+    }
+   case 5:
+    var $13 = ($lowpass_band_075 | 0) < ($band_073 | 0);
+    var $14 = $13 ? $lowpass_band_075 : $band_073;
+    var $lowpass_band_1 = $14;
+    label = 6;
+    break;
+   case 6:
+    var $lowpass_band_1;
+    var $16 = $6 < $10;
+    if ($16) {
+      label = 7;
+      break;
+    } else {
+      var $minband_1 = $minband_074;
+      label = 9;
+      break;
+    }
+   case 7:
+    var $18 = HEAPF32[$4 >> 2];
+    var $19 = $10 < $18;
+    if ($19) {
+      label = 8;
+      break;
+    } else {
+      var $minband_1 = $minband_074;
+      label = 9;
+      break;
+    }
+   case 8:
+    var $21 = ($minband_074 | 0) < ($band_073 | 0);
+    var $22 = $21 ? $minband_074 : $band_073;
+    var $minband_1 = $22;
+    label = 9;
+    break;
+   case 9:
+    var $minband_1;
+    var $24 = $band_073 + 1 | 0;
+    var $exitcond77 = ($24 | 0) == 32;
+    if ($exitcond77) {
+      label = 10;
+      break;
+    } else {
+      var $band_073 = $24;
+      var $minband_074 = $minband_1;
+      var $lowpass_band_075 = $lowpass_band_1;
+      label = 4;
+      break;
+    }
+   case 10:
+    var $26 = ($minband_1 | 0) == 999;
+    var $lowpass_band_0_minband_0 = $26 ? $lowpass_band_1 : $minband_1;
+    var $storemerge_in_in_in = $lowpass_band_0_minband_0 | 0;
+    var $storemerge_in_in = $storemerge_in_in_in - .75;
+    var $storemerge_in = $storemerge_in_in / 31;
+    var $storemerge = $storemerge_in;
+    HEAPF32[$1 >> 2] = $storemerge;
+    var $27 = $lowpass_band_1 | 0;
+    var $28 = $27 / 31;
+    var $29 = $28;
+    var $30 = $gfc + 252 | 0;
+    HEAPF32[$30 >> 2] = $29;
+    label = 11;
+    break;
+   case 11:
+    var $32 = $gfc + 260 | 0;
+    var $33 = HEAPF32[$32 >> 2];
+    var $34 = $33 > 0;
+    var $35 = $33;
+    var $36 = $35 < .021774193548387097;
+    var $or_cond = $34 & $36;
+    if ($or_cond) {
+      label = 12;
+      break;
+    } else {
+      var $40 = $33;
+      label = 13;
+      break;
+    }
+   case 12:
+    var $38 = $gfc + 256 | 0;
+    HEAPF32[$38 >> 2] = 0;
+    HEAPF32[$32 >> 2] = 0;
+    _lame_msgf($gfc, 5382660, (tempInt = STACKTOP, STACKTOP = STACKTOP + 1 | 0, STACKTOP = STACKTOP + 3 >> 2 << 2, HEAP32[tempInt >> 2] = 0, tempInt));
+    var $_pr = HEAPF32[$32 >> 2];
+    var $40 = $_pr;
+    label = 13;
+    break;
+   case 13:
+    var $40;
+    var $41 = $40 > 0;
+    if ($41) {
+      label = 14;
+      break;
+    } else {
+      label = 24;
+      break;
+    }
+   case 14:
+    var $42 = $gfc + 256 | 0;
+    var $43 = HEAPF32[$42 >> 2];
+    var $band_169 = 0;
+    var $maxband_070 = -1;
+    var $highpass_band_071 = -1;
+    label = 15;
+    break;
+   case 15:
+    var $highpass_band_071;
+    var $maxband_070;
+    var $band_169;
+    var $45 = $band_169 | 0;
+    var $46 = $45 / 31;
+    var $47 = $46;
+    var $48 = $47 > $43;
+    if ($48) {
+      var $highpass_band_1 = $highpass_band_071;
+      label = 17;
+      break;
+    } else {
+      label = 16;
+      break;
+    }
+   case 16:
+    var $50 = ($highpass_band_071 | 0) > ($band_169 | 0);
+    var $51 = $50 ? $highpass_band_071 : $band_169;
+    var $highpass_band_1 = $51;
+    label = 17;
+    break;
+   case 17:
+    var $highpass_band_1;
+    var $53 = $43 < $47;
+    if ($53) {
+      label = 18;
+      break;
+    } else {
+      var $maxband_1 = $maxband_070;
+      label = 20;
+      break;
+    }
+   case 18:
+    var $55 = HEAPF32[$32 >> 2];
+    var $56 = $47 < $55;
+    if ($56) {
+      label = 19;
+      break;
+    } else {
+      var $maxband_1 = $maxband_070;
+      label = 20;
+      break;
+    }
+   case 19:
+    var $58 = ($maxband_070 | 0) > ($band_169 | 0);
+    var $59 = $58 ? $maxband_070 : $band_169;
+    var $maxband_1 = $59;
+    label = 20;
+    break;
+   case 20:
+    var $maxband_1;
+    var $61 = $band_169 + 1 | 0;
+    var $exitcond76 = ($61 | 0) == 32;
+    if ($exitcond76) {
+      label = 21;
+      break;
+    } else {
+      var $band_169 = $61;
+      var $maxband_070 = $maxband_1;
+      var $highpass_band_071 = $highpass_band_1;
+      label = 15;
+      break;
+    }
+   case 21:
+    var $63 = $highpass_band_1 | 0;
+    var $64 = $63 / 31;
+    var $65 = $64;
+    var $66 = $gfc + 256 | 0;
+    HEAPF32[$66 >> 2] = $65;
+    var $67 = ($maxband_1 | 0) == -1;
+    if ($67) {
+      label = 22;
+      break;
+    } else {
+      label = 23;
+      break;
+    }
+   case 22:
+    var $69 = $63 + .75;
+    var $70 = $69 / 31;
+    var $71 = $70;
+    HEAPF32[$32 >> 2] = $71;
+    label = 24;
+    break;
+   case 23:
+    var $73 = $maxband_1 | 0;
+    var $74 = $73 + .75;
+    var $75 = $74 / 31;
+    var $76 = $75;
+    HEAPF32[$32 >> 2] = $76;
+    label = 24;
+    break;
+   case 24:
+    var $77 = $gfc + 256 | 0;
+    var $78 = $gfc + 252 | 0;
+    var $band_267 = 0;
+    label = 25;
+    break;
+   case 25:
+    var $band_267;
+    var $80 = $band_267 | 0;
+    var $81 = $80 / 31;
+    var $82 = HEAPF32[$32 >> 2];
+    var $83 = HEAPF32[$77 >> 2];
+    var $84 = $82 > $83;
+    if ($84) {
+      label = 26;
+      break;
+    } else {
+      var $fc1_0 = 1;
+      label = 27;
+      break;
+    }
+   case 26:
+    var $86 = $82 - $81;
+    var $87 = $86;
+    var $88 = $82 - $83;
+    var $89 = $88;
+    var $90 = $89 + 1e-20;
+    var $91 = $87 / $90;
+    var $92 = $91;
+    var $93 = _filter_coef($92);
+    var $fc1_0 = $93;
+    label = 27;
+    break;
+   case 27:
+    var $fc1_0;
+    var $95 = HEAPF32[$78 >> 2];
+    var $96 = HEAPF32[$1 >> 2];
+    var $97 = $95 > $96;
+    if ($97) {
+      label = 28;
+      break;
+    } else {
+      var $fc2_0 = 1;
+      label = 29;
+      break;
+    }
+   case 28:
+    var $99 = $81 - $96;
+    var $100 = $99;
+    var $101 = $95 - $96;
+    var $102 = $101;
+    var $103 = $102 + 1e-20;
+    var $104 = $100 / $103;
+    var $105 = $104;
+    var $106 = _filter_coef($105);
+    var $fc2_0 = $106;
+    label = 29;
+    break;
+   case 29:
+    var $fc2_0;
+    var $108 = $fc1_0 * $fc2_0;
+    var $109 = $gfc + 37036 + ($band_267 << 2) | 0;
+    HEAPF32[$109 >> 2] = $108;
+    var $110 = $band_267 + 1 | 0;
+    var $exitcond = ($110 | 0) == 32;
+    if ($exitcond) {
+      label = 30;
+      break;
+    } else {
+      var $band_267 = $110;
+      label = 25;
+      break;
+    }
+   case 30:
+    STACKTOP = __stackBase__;
+    return;
+  }
+}
+_lame_init_params_ppflt["X"] = 1;
+function _lame_init_qval($gfp) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = $gfp + 288 | 0;
+    var $2 = HEAP32[$1 >> 2];
+    var $3 = $gfp + 44 | 0;
+    var $4 = HEAP32[$3 >> 2];
+    if (($4 | 0) == 8) {
+      label = 4;
+      break;
+    } else if (($4 | 0) == 7) {
+      label = 5;
+      break;
+    } else if (($4 | 0) == 6) {
+      label = 7;
+      break;
+    } else if (($4 | 0) == 5) {
+      label = 12;
+      break;
+    } else if (($4 | 0) == 4) {
+      label = 17;
+      break;
+    } else if (($4 | 0) == 3) {
+      label = 22;
+      break;
+    } else if (($4 | 0) == 2) {
+      label = 27;
+      break;
+    } else if (($4 | 0) == 1) {
+      label = 34;
+      break;
+    } else if (($4 | 0) == 0) {
+      label = 41;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 3:
+    var $6 = $2 + 28 | 0;
+    HEAP32[$6 >> 2] = 0;
+    var $7 = $2 + 36 | 0;
+    var $8 = $7;
+    HEAP32[$8 >> 2] = 0;
+    HEAP32[$8 + 4 >> 2] = 0;
+    HEAP32[$8 + 8 >> 2] = 0;
+    HEAP32[$8 + 12 >> 2] = 0;
+    label = 48;
+    break;
+   case 4:
+    HEAP32[$3 >> 2] = 7;
+    label = 5;
+    break;
+   case 5:
+    var $11 = $2 + 28 | 0;
+    HEAP32[$11 >> 2] = 0;
+    var $12 = $2 + 36 | 0;
+    var $13 = $2 + 48 | 0;
+    var $14 = $gfp + 156 | 0;
+    var $15 = $12;
+    HEAP32[$15 >> 2] = 0;
+    HEAP32[$15 + 4 >> 2] = 0;
+    HEAP32[$15 + 8 >> 2] = 0;
+    HEAP32[$15 + 12 >> 2] = 0;
+    var $16 = HEAP32[$14 >> 2];
+    if (($16 | 0) == 1 | ($16 | 0) == 4) {
+      label = 6;
+      break;
+    } else {
+      label = 48;
+      break;
+    }
+   case 6:
+    HEAP32[$13 >> 2] = -1;
+    label = 48;
+    break;
+   case 7:
+    var $19 = $2 + 28 | 0;
+    var $20 = HEAP32[$19 >> 2];
+    var $21 = ($20 | 0) == 0;
+    if ($21) {
+      label = 8;
+      break;
+    } else {
+      label = 9;
+      break;
+    }
+   case 8:
+    HEAP32[$19 >> 2] = 1;
+    label = 9;
+    break;
+   case 9:
+    var $24 = $2 + 40 | 0;
+    HEAP32[$24 >> 2] = 0;
+    var $25 = $2 + 44 | 0;
+    HEAP32[$25 >> 2] = 0;
+    var $26 = $2 + 32 | 0;
+    var $27 = HEAP32[$26 >> 2];
+    var $28 = ($27 | 0) == -1;
+    if ($28) {
+      label = 10;
+      break;
+    } else {
+      label = 11;
+      break;
+    }
+   case 10:
+    HEAP32[$26 >> 2] = 1;
+    label = 11;
+    break;
+   case 11:
+    var $31 = $2 + 36 | 0;
+    HEAP32[$31 >> 2] = 0;
+    var $32 = $2 + 48 | 0;
+    HEAP32[$32 >> 2] = 0;
+    label = 48;
+    break;
+   case 12:
+    var $34 = $2 + 28 | 0;
+    var $35 = HEAP32[$34 >> 2];
+    var $36 = ($35 | 0) == 0;
+    if ($36) {
+      label = 13;
+      break;
+    } else {
+      label = 14;
+      break;
+    }
+   case 13:
+    HEAP32[$34 >> 2] = 1;
+    label = 14;
+    break;
+   case 14:
+    var $39 = $2 + 40 | 0;
+    HEAP32[$39 >> 2] = 0;
+    var $40 = $2 + 44 | 0;
+    HEAP32[$40 >> 2] = 0;
+    var $41 = $2 + 32 | 0;
+    var $42 = HEAP32[$41 >> 2];
+    var $43 = ($42 | 0) == -1;
+    if ($43) {
+      label = 15;
+      break;
+    } else {
+      label = 16;
+      break;
+    }
+   case 15:
+    HEAP32[$41 >> 2] = 1;
+    label = 16;
+    break;
+   case 16:
+    var $46 = $2 + 36 | 0;
+    HEAP32[$46 >> 2] = 0;
+    var $47 = $2 + 48 | 0;
+    HEAP32[$47 >> 2] = 0;
+    label = 48;
+    break;
+   case 17:
+    var $49 = $2 + 28 | 0;
+    var $50 = HEAP32[$49 >> 2];
+    var $51 = ($50 | 0) == 0;
+    if ($51) {
+      label = 18;
+      break;
+    } else {
+      label = 19;
+      break;
+    }
+   case 18:
+    HEAP32[$49 >> 2] = 1;
+    label = 19;
+    break;
+   case 19:
+    var $54 = $2 + 40 | 0;
+    HEAP32[$54 >> 2] = 0;
+    var $55 = $2 + 44 | 0;
+    HEAP32[$55 >> 2] = 0;
+    var $56 = $2 + 32 | 0;
+    var $57 = HEAP32[$56 >> 2];
+    var $58 = ($57 | 0) == -1;
+    if ($58) {
+      label = 20;
+      break;
+    } else {
+      label = 21;
+      break;
+    }
+   case 20:
+    HEAP32[$56 >> 2] = 1;
+    label = 21;
+    break;
+   case 21:
+    var $61 = $2 + 36 | 0;
+    HEAP32[$61 >> 2] = 1;
+    var $62 = $2 + 48 | 0;
+    HEAP32[$62 >> 2] = 0;
+    label = 48;
+    break;
+   case 22:
+    var $64 = $2 + 28 | 0;
+    var $65 = HEAP32[$64 >> 2];
+    var $66 = ($65 | 0) == 0;
+    if ($66) {
+      label = 23;
+      break;
+    } else {
+      label = 24;
+      break;
+    }
+   case 23:
+    HEAP32[$64 >> 2] = 1;
+    label = 24;
+    break;
+   case 24:
+    var $69 = $2 + 40 | 0;
+    HEAP32[$69 >> 2] = 1;
+    var $70 = $2 + 44 | 0;
+    HEAP32[$70 >> 2] = 1;
+    var $71 = $2 + 32 | 0;
+    var $72 = HEAP32[$71 >> 2];
+    var $73 = ($72 | 0) == -1;
+    if ($73) {
+      label = 25;
+      break;
+    } else {
+      label = 26;
+      break;
+    }
+   case 25:
+    HEAP32[$71 >> 2] = 1;
+    label = 26;
+    break;
+   case 26:
+    var $76 = $2 + 36 | 0;
+    HEAP32[$76 >> 2] = 1;
+    var $77 = $2 + 48 | 0;
+    HEAP32[$77 >> 2] = 0;
+    label = 48;
+    break;
+   case 27:
+    var $79 = $2 + 28 | 0;
+    var $80 = HEAP32[$79 >> 2];
+    var $81 = ($80 | 0) == 0;
+    if ($81) {
+      label = 28;
+      break;
+    } else {
+      label = 29;
+      break;
+    }
+   case 28:
+    HEAP32[$79 >> 2] = 1;
+    label = 29;
+    break;
+   case 29:
+    var $84 = $2 + 85092 | 0;
+    var $85 = HEAP32[$84 >> 2];
+    var $86 = ($85 | 0) == 0;
+    if ($86) {
+      label = 30;
+      break;
+    } else {
+      label = 31;
+      break;
+    }
+   case 30:
+    HEAP32[$84 >> 2] = 2;
+    label = 31;
+    break;
+   case 31:
+    var $89 = $2 + 40 | 0;
+    HEAP32[$89 >> 2] = 1;
+    var $90 = $2 + 44 | 0;
+    HEAP32[$90 >> 2] = 1;
+    var $91 = $2 + 32 | 0;
+    var $92 = HEAP32[$91 >> 2];
+    var $93 = ($92 | 0) == -1;
+    if ($93) {
+      label = 32;
+      break;
+    } else {
+      label = 33;
+      break;
+    }
+   case 32:
+    HEAP32[$91 >> 2] = 1;
+    label = 33;
+    break;
+   case 33:
+    var $96 = $2 + 36 | 0;
+    HEAP32[$96 >> 2] = 1;
+    var $97 = $2 + 48 | 0;
+    HEAP32[$97 >> 2] = 0;
+    label = 48;
+    break;
+   case 34:
+    var $99 = $2 + 28 | 0;
+    var $100 = HEAP32[$99 >> 2];
+    var $101 = ($100 | 0) == 0;
+    if ($101) {
+      label = 35;
+      break;
+    } else {
+      label = 36;
+      break;
+    }
+   case 35:
+    HEAP32[$99 >> 2] = 1;
+    label = 36;
+    break;
+   case 36:
+    var $104 = $2 + 85092 | 0;
+    var $105 = HEAP32[$104 >> 2];
+    var $106 = ($105 | 0) == 0;
+    if ($106) {
+      label = 37;
+      break;
+    } else {
+      label = 38;
+      break;
+    }
+   case 37:
+    HEAP32[$104 >> 2] = 2;
+    label = 38;
+    break;
+   case 38:
+    var $109 = $2 + 40 | 0;
+    HEAP32[$109 >> 2] = 2;
+    var $110 = $2 + 44 | 0;
+    HEAP32[$110 >> 2] = 1;
+    var $111 = $2 + 32 | 0;
+    var $112 = HEAP32[$111 >> 2];
+    var $113 = ($112 | 0) == -1;
+    if ($113) {
+      label = 39;
+      break;
+    } else {
+      label = 40;
+      break;
+    }
+   case 39:
+    HEAP32[$111 >> 2] = 1;
+    label = 40;
+    break;
+   case 40:
+    var $116 = $2 + 36 | 0;
+    HEAP32[$116 >> 2] = 1;
+    var $117 = $2 + 48 | 0;
+    HEAP32[$117 >> 2] = 0;
+    label = 48;
+    break;
+   case 41:
+    var $119 = $2 + 28 | 0;
+    var $120 = HEAP32[$119 >> 2];
+    var $121 = ($120 | 0) == 0;
+    if ($121) {
+      label = 42;
+      break;
+    } else {
+      label = 43;
+      break;
+    }
+   case 42:
+    HEAP32[$119 >> 2] = 1;
+    label = 43;
+    break;
+   case 43:
+    var $124 = $2 + 85092 | 0;
+    var $125 = HEAP32[$124 >> 2];
+    var $126 = ($125 | 0) == 0;
+    if ($126) {
+      label = 44;
+      break;
+    } else {
+      label = 45;
+      break;
+    }
+   case 44:
+    HEAP32[$124 >> 2] = 2;
+    label = 45;
+    break;
+   case 45:
+    var $129 = $2 + 40 | 0;
+    HEAP32[$129 >> 2] = 2;
+    var $130 = $2 + 44 | 0;
+    HEAP32[$130 >> 2] = 1;
+    var $131 = $2 + 32 | 0;
+    var $132 = HEAP32[$131 >> 2];
+    var $133 = ($132 | 0) == -1;
+    if ($133) {
+      label = 46;
+      break;
+    } else {
+      label = 47;
+      break;
+    }
+   case 46:
+    HEAP32[$131 >> 2] = 1;
+    label = 47;
+    break;
+   case 47:
+    var $136 = $2 + 36 | 0;
+    HEAP32[$136 >> 2] = 1;
+    var $137 = $2 + 48 | 0;
+    HEAP32[$137 >> 2] = 1;
+    label = 48;
+    break;
+   case 48:
+    return;
+  }
+}
+_lame_init_qval["X"] = 1;
+function _lame_init_bitstream($gfp) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = _is_lame_global_flags_valid($gfp);
+    var $2 = ($1 | 0) == 0;
+    if ($2) {
+      var $_0 = -3;
+      label = 8;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 3:
+    var $4 = $gfp + 288 | 0;
+    var $5 = HEAP32[$4 >> 2];
+    var $6 = ($5 | 0) == 0;
+    if ($6) {
+      var $_0 = -3;
+      label = 8;
+      break;
+    } else {
+      label = 4;
+      break;
+    }
+   case 4:
+    var $8 = $5 + 84036 | 0;
+    var $9 = $5 + 84744 | 0;
+    HEAP32[$9 >> 2] = 0;
+    var $10 = $gfp + 68 | 0;
+    var $11 = HEAP32[$10 >> 2];
+    var $12 = ($11 | 0) == 0;
+    if ($12) {
+      label = 6;
+      break;
+    } else {
+      label = 5;
+      break;
+    }
+   case 5:
+    var $14 = _id3tag_write_v2($gfp);
+    label = 6;
+    break;
+   case 6:
+    var $16 = $5 + 85680 | 0;
+    HEAPF32[$16 >> 2] = 0;
+    var $17 = $5 + 156 | 0;
+    var $18 = $8;
+    for (var $$dest = $18 >> 2, $$stop = $$dest + 176; $$dest < $$stop; $$dest++) {
+      HEAP32[$$dest] = 0;
+    }
+    var $19 = HEAP32[$17 >> 2];
+    var $20 = ($19 | 0) == 0;
+    if ($20) {
+      var $_0 = 0;
+      label = 8;
+      break;
+    } else {
+      label = 7;
+      break;
+    }
+   case 7:
+    var $22 = _InitVbrTag($gfp);
+    var $_0 = 0;
+    label = 8;
+    break;
+   case 8:
+    var $_0;
+    return $_0;
+  }
+}
+function _lame_print_config($gfp) {
+  var label = 0;
+  var __stackBase__ = STACKTOP;
+  STACKTOP = STACKTOP + 256 | 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $text = __stackBase__;
+    var $1 = $gfp + 288 | 0;
+    var $2 = HEAP32[$1 >> 2];
+    var $3 = $2 + 16 | 0;
+    var $4 = $2 + 64 | 0;
+    var $5 = HEAP32[$4 >> 2];
+    var $6 = $5 | 0;
+    var $7 = $2 + 60 | 0;
+    var $8 = HEAP32[$7 >> 2];
+    var $9 = $8 | 0;
+    _lame_msgf($2, 5386292, (tempInt = STACKTOP, STACKTOP = STACKTOP + 12 | 0, HEAP32[tempInt >> 2] = 5384648, HEAP32[tempInt + 4 >> 2] = 5383868, HEAP32[tempInt + 8 >> 2] = 5384668, tempInt));
+    var $10 = $2 + 85752 | 0;
+    var $11 = $10;
+    var $12 = HEAP32[$11 >> 2];
+    var $13 = $12 & 15;
+    var $14 = ($13 | 0) == 0;
+    if ($14) {
+      label = 12;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 3:
+    var $16 = $text | 0;
+    _memset($16, 0, 256);
+    var $17 = HEAP32[$11 >> 2];
+    var $18 = $17 & 1;
+    var $19 = ($18 | 0) == 0;
+    if ($19) {
+      label = 5;
+      break;
+    } else {
+      label = 4;
+      break;
+    }
+   case 4:
+    _concatSep($16, 5384372);
+    label = 5;
+    break;
+   case 5:
+    var $22 = HEAP32[$11 >> 2];
+    var $23 = $22 & 2;
+    var $24 = ($23 | 0) == 0;
+    if ($24) {
+      label = 7;
+      break;
+    } else {
+      label = 6;
+      break;
+    }
+   case 6:
+    _concatSep($16, 5383560);
+    label = 7;
+    break;
+   case 7:
+    var $27 = HEAP32[$11 >> 2];
+    var $28 = $27 & 4;
+    var $29 = ($28 | 0) == 0;
+    if ($29) {
+      label = 9;
+      break;
+    } else {
+      label = 8;
+      break;
+    }
+   case 8:
+    _concatSep($16, 5382740);
+    label = 9;
+    break;
+   case 9:
+    var $32 = HEAP32[$11 >> 2];
+    var $33 = $32 & 8;
+    var $34 = ($33 | 0) == 0;
+    if ($34) {
+      label = 11;
+      break;
+    } else {
+      label = 10;
+      break;
+    }
+   case 10:
+    _concatSep($16, 5387212);
+    label = 11;
+    break;
+   case 11:
+    _lame_msgf($2, 5387076, (tempInt = STACKTOP, STACKTOP = STACKTOP + 4 | 0, HEAP32[tempInt >> 2] = $16, tempInt));
+    label = 12;
+    break;
+   case 12:
+    var $38 = $2 + 68 | 0;
+    var $39 = HEAP32[$38 >> 2];
+    var $40 = ($39 | 0) == 2;
+    if ($40) {
+      label = 13;
+      break;
+    } else {
+      label = 15;
+      break;
+    }
+   case 13:
+    var $42 = $2 + 72 | 0;
+    var $43 = HEAP32[$42 >> 2];
+    var $44 = ($43 | 0) == 1;
+    if ($44) {
+      label = 14;
+      break;
+    } else {
+      label = 15;
+      break;
+    }
+   case 14:
+    _lame_msgf($2, 5386892, (tempInt = STACKTOP, STACKTOP = STACKTOP + 1 | 0, STACKTOP = STACKTOP + 3 >> 2 << 2, HEAP32[tempInt >> 2] = 0, tempInt));
+    label = 15;
+    break;
+   case 15:
+    var $47 = _isResamplingNecessary($3);
+    var $48 = ($47 | 0) == 0;
+    if ($48) {
+      label = 17;
+      break;
+    } else {
+      label = 16;
+      break;
+    }
+   case 16:
+    var $50 = $9 * .001;
+    var $51 = $6 * .001;
+    _lame_msgf($2, 5386732, (tempInt = STACKTOP, STACKTOP = STACKTOP + 16 | 0, HEAPF64[tempDoublePtr >> 3] = $50, HEAP32[tempInt >> 2] = HEAP32[tempDoublePtr >> 2], HEAP32[tempInt + 4 >> 2] = HEAP32[tempDoublePtr + 4 >> 2], HEAPF64[tempDoublePtr >> 3] = $51, HEAP32[tempInt + 8 >> 2] = HEAP32[tempDoublePtr >> 2], HEAP32[tempInt + 12 >> 2] = HEAP32[tempDoublePtr + 4 >> 2], tempInt));
+    label = 17;
+    break;
+   case 17:
+    var $53 = $2 + 260 | 0;
+    var $54 = HEAPF32[$53 >> 2];
+    var $55 = $54 > 0;
+    if ($55) {
+      label = 18;
+      break;
+    } else {
+      label = 19;
+      break;
+    }
+   case 18:
+    var $57 = $54;
+    var $58 = $2 + 256 | 0;
+    var $59 = HEAPF32[$58 >> 2];
+    var $60 = $59;
+    var $61 = $60 * .5;
+    var $62 = $6 * $61;
+    var $63 = $57 * .5;
+    var $64 = $6 * $63;
+    _lame_msgf($2, 5386392, (tempInt = STACKTOP, STACKTOP = STACKTOP + 16 | 0, HEAPF64[tempDoublePtr >> 3] = $62, HEAP32[tempInt >> 2] = HEAP32[tempDoublePtr >> 2], HEAP32[tempInt + 4 >> 2] = HEAP32[tempDoublePtr + 4 >> 2], HEAPF64[tempDoublePtr >> 3] = $64, HEAP32[tempInt + 8 >> 2] = HEAP32[tempDoublePtr >> 2], HEAP32[tempInt + 12 >> 2] = HEAP32[tempDoublePtr + 4 >> 2], tempInt));
+    label = 19;
+    break;
+   case 19:
+    var $66 = $2 + 248 | 0;
+    var $67 = HEAPF32[$66 >> 2];
+    var $68 = $67 > 0;
+    if ($68) {
+      label = 21;
+      break;
+    } else {
+      label = 20;
+      break;
+    }
+   case 20:
+    var $70 = $2 + 252 | 0;
+    var $71 = HEAPF32[$70 >> 2];
+    var $72 = $71 > 0;
+    if ($72) {
+      label = 21;
+      break;
+    } else {
+      label = 22;
+      break;
+    }
+   case 21:
+    var $74 = HEAPF32[$66 >> 2];
+    var $75 = $74;
+    var $76 = $75 * .5;
+    var $77 = $6 * $76;
+    var $78 = $2 + 252 | 0;
+    var $79 = HEAPF32[$78 >> 2];
+    var $80 = $79;
+    var $81 = $80 * .5;
+    var $82 = $6 * $81;
+    _lame_msgf($2, 5386212, (tempInt = STACKTOP, STACKTOP = STACKTOP + 16 | 0, HEAPF64[tempDoublePtr >> 3] = $77, HEAP32[tempInt >> 2] = HEAP32[tempDoublePtr >> 2], HEAP32[tempInt + 4 >> 2] = HEAP32[tempDoublePtr + 4 >> 2], HEAPF64[tempDoublePtr >> 3] = $82, HEAP32[tempInt + 8 >> 2] = HEAP32[tempDoublePtr >> 2], HEAP32[tempInt + 12 >> 2] = HEAP32[tempDoublePtr + 4 >> 2], tempInt));
+    label = 23;
+    break;
+   case 22:
+    _lame_msgf($2, 5386168, (tempInt = STACKTOP, STACKTOP = STACKTOP + 1 | 0, STACKTOP = STACKTOP + 3 >> 2 << 2, HEAP32[tempInt >> 2] = 0, tempInt));
+    label = 23;
+    break;
+   case 23:
+    var $85 = $2 + 152 | 0;
+    var $86 = HEAP32[$85 >> 2];
+    var $87 = ($86 | 0) == 0;
+    if ($87) {
+      label = 26;
+      break;
+    } else {
+      label = 24;
+      break;
+    }
+   case 24:
+    _lame_msgf($2, 5386096, (tempInt = STACKTOP, STACKTOP = STACKTOP + 1 | 0, STACKTOP = STACKTOP + 3 >> 2 << 2, HEAP32[tempInt >> 2] = 0, tempInt));
+    var $89 = $2 + 120 | 0;
+    var $90 = HEAP32[$89 >> 2];
+    var $91 = ($90 | 0) > 320;
+    if ($91) {
+      label = 25;
+      break;
+    } else {
+      label = 26;
+      break;
+    }
+   case 25:
+    _lame_msgf($2, 5385988, (tempInt = STACKTOP, STACKTOP = STACKTOP + 1 | 0, STACKTOP = STACKTOP + 3 >> 2 << 2, HEAP32[tempInt >> 2] = 0, tempInt));
+    label = 26;
+    break;
+   case 26:
+    STACKTOP = __stackBase__;
+    return;
+  }
+}
+_lame_print_config["X"] = 1;
+function _concatSep($dest, $str) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = HEAP8[$dest];
+    var $2 = $1 << 24 >> 24 == 0;
+    if ($2) {
+      label = 4;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 3:
+    var $strlen = _strlen($dest);
+    var $endptr = $dest + $strlen | 0;
+    HEAP8[$endptr] = HEAP8[5384892];
+    HEAP8[$endptr + 1] = HEAP8[5384893];
+    HEAP8[$endptr + 2] = HEAP8[5384894];
+    label = 4;
+    break;
+   case 4:
+    var $5 = _strcat($dest, $str);
+    return;
+  }
+}
+function _calcNeeded($cfg) {
+  return (HEAP32[$cfg + 60 >> 2] * 576 & -1) + 752 | 0;
+}
+function _lame_print_internals($gfp) {
+  var label = 0;
+  var __stackBase__ = STACKTOP;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = $gfp + 288 | 0;
+    var $2 = HEAP32[$1 >> 2];
+    _lame_msgf($2, 5385672, (tempInt = STACKTOP, STACKTOP = STACKTOP + 1 | 0, STACKTOP = STACKTOP + 3 >> 2 << 2, HEAP32[tempInt >> 2] = 0, tempInt));
+    var $3 = $gfp + 20 | 0;
+    var $4 = HEAPF32[$3 >> 2];
+    var $5 = $4;
+    _lame_msgf($2, 5385648, (tempInt = STACKTOP, STACKTOP = STACKTOP + 8 | 0, HEAPF64[tempDoublePtr >> 3] = $5, HEAP32[tempInt >> 2] = HEAP32[tempDoublePtr >> 2], HEAP32[tempInt + 4 >> 2] = HEAP32[tempDoublePtr + 4 >> 2], tempInt));
+    var $6 = $gfp + 24 | 0;
+    var $7 = HEAPF32[$6 >> 2];
+    var $8 = $7;
+    _lame_msgf($2, 5385612, (tempInt = STACKTOP, STACKTOP = STACKTOP + 8 | 0, HEAPF64[tempDoublePtr >> 3] = $8, HEAP32[tempInt >> 2] = HEAP32[tempDoublePtr >> 2], HEAP32[tempInt + 4 >> 2] = HEAP32[tempDoublePtr + 4 >> 2], tempInt));
+    var $9 = $gfp + 28 | 0;
+    var $10 = HEAPF32[$9 >> 2];
+    var $11 = $10;
+    _lame_msgf($2, 5385580, (tempInt = STACKTOP, STACKTOP = STACKTOP + 8 | 0, HEAPF64[tempDoublePtr >> 3] = $11, HEAP32[tempInt >> 2] = HEAP32[tempDoublePtr >> 2], HEAP32[tempInt + 4 >> 2] = HEAP32[tempDoublePtr + 4 >> 2], tempInt));
+    var $12 = $2 + 36 | 0;
+    var $13 = HEAP32[$12 >> 2];
+    if (($13 | 0) == 1) {
+      label = 3;
+      break;
+    } else if (($13 | 0) == 2) {
+      label = 4;
+      break;
+    } else {
+      var $pc_0 = 5385528;
+      label = 5;
+      break;
+    }
+   case 3:
+    var $pc_0 = 5385504;
+    label = 5;
+    break;
+   case 4:
+    var $pc_0 = 5385412;
+    label = 5;
+    break;
+   case 5:
+    var $pc_0;
+    _lame_msgf($2, 5385380, (tempInt = STACKTOP, STACKTOP = STACKTOP + 4 | 0, HEAP32[tempInt >> 2] = $pc_0, tempInt));
+    var $17 = $gfp + 140 | 0;
+    var $18 = HEAP32[$17 >> 2];
+    _lame_msgf($2, 5385352, (tempInt = STACKTOP, STACKTOP = STACKTOP + 4 | 0, HEAP32[tempInt >> 2] = $18, tempInt));
+    _lame_msgf($2, 5385276, (tempInt = STACKTOP, STACKTOP = STACKTOP + 1 | 0, STACKTOP = STACKTOP + 3 >> 2 << 2, HEAP32[tempInt >> 2] = 0, tempInt));
+    _lame_msgf($2, 5385240, (tempInt = STACKTOP, STACKTOP = STACKTOP + 1 | 0, STACKTOP = STACKTOP + 3 >> 2 << 2, HEAP32[tempInt >> 2] = 0, tempInt));
+    var $19 = $2 + 16 | 0;
+    var $20 = HEAP32[$19 >> 2];
+    if (($20 | 0) == 1) {
+      label = 6;
+      break;
+    } else if (($20 | 0) == 2) {
+      label = 7;
+      break;
+    } else if (($20 | 0) == 0) {
+      var $pc_1 = 5385232;
+      label = 9;
+      break;
+    } else {
+      label = 8;
+      break;
+    }
+   case 6:
+    var $pc_1 = 5385216;
+    label = 9;
+    break;
+   case 7:
+    var $pc_1 = 5385204;
+    label = 9;
+    break;
+   case 8:
+    var $pc_1 = 5385168;
+    label = 9;
+    break;
+   case 9:
+    var $pc_1;
+    _lame_msgf($2, 5385136, (tempInt = STACKTOP, STACKTOP = STACKTOP + 4 | 0, HEAP32[tempInt >> 2] = $pc_1, tempInt));
+    var $25 = $2 + 180 | 0;
+    var $26 = HEAP32[$25 >> 2];
+    if (($26 | 0) == 0) {
+      label = 10;
+      break;
+    } else if (($26 | 0) == 2) {
+      label = 11;
+      break;
+    } else if (($26 | 0) == 3) {
+      label = 12;
+      break;
+    } else if (($26 | 0) == 4) {
+      label = 13;
+      break;
+    } else if (($26 | 0) == 1) {
+      var $pc_2 = 5385112;
+      label = 15;
+      break;
+    } else {
+      label = 14;
+      break;
+    }
+   case 10:
+    var $pc_2 = 5385092;
+    label = 15;
+    break;
+   case 11:
+    var $pc_2 = 5385028;
+    label = 15;
+    break;
+   case 12:
+    var $pc_2 = 5384932;
+    label = 15;
+    break;
+   case 13:
+    var $pc_2 = 5384908;
+    label = 15;
+    break;
+   case 14:
+    var $pc_2 = 5384868;
+    label = 15;
+    break;
+   case 15:
+    var $pc_2;
+    var $33 = $2 + 72 | 0;
+    var $34 = HEAP32[$33 >> 2];
+    _lame_msgf($2, 5384836, (tempInt = STACKTOP, STACKTOP = STACKTOP + 8 | 0, HEAP32[tempInt >> 2] = $34, HEAP32[tempInt + 4 >> 2] = $pc_2, tempInt));
+    var $35 = $2 + 104 | 0;
+    var $36 = HEAP32[$35 >> 2];
+    var $cond = ($36 | 0) == 0;
+    var $_ = $cond ? 5384728 : 5384656;
+    _lame_msgf($2, 5384624, (tempInt = STACKTOP, STACKTOP = STACKTOP + 4 | 0, HEAP32[tempInt >> 2] = $_, tempInt));
+    var $37 = HEAP32[$35 >> 2];
+    var $38 = ($37 | 0) == 4;
+    if ($38) {
+      var $pc_490 = 5384604;
+      label = 21;
+      break;
+    } else {
+      label = 16;
+      break;
+    }
+   case 16:
+    var $40 = $2 + 152 | 0;
+    var $41 = HEAP32[$40 >> 2];
+    var $42 = ($41 | 0) == 0;
+    var $_88 = $42 ? 5385696 : 5384548;
+    var $_pr = HEAP32[$35 >> 2];
+    if (($_pr | 0) == 0) {
+      label = 17;
+      break;
+    } else if (($_pr | 0) == 3) {
+      label = 18;
+      break;
+    } else if (($_pr | 0) == 2) {
+      label = 19;
+      break;
+    } else if (($_pr | 0) == 1) {
+      label = 20;
+      break;
+    } else if (($_pr | 0) == 4) {
+      var $pc_490 = $_88;
+      label = 21;
+      break;
+    } else {
+      label = 22;
+      break;
+    }
+   case 17:
+    _lame_msgf($2, 5384512, (tempInt = STACKTOP, STACKTOP = STACKTOP + 4 | 0, HEAP32[tempInt >> 2] = $_88, tempInt));
+    label = 23;
+    break;
+   case 18:
+    _lame_msgf($2, 5384440, (tempInt = STACKTOP, STACKTOP = STACKTOP + 4 | 0, HEAP32[tempInt >> 2] = $_88, tempInt));
+    label = 23;
+    break;
+   case 19:
+    _lame_msgf($2, 5384388, (tempInt = STACKTOP, STACKTOP = STACKTOP + 4 | 0, HEAP32[tempInt >> 2] = $_88, tempInt));
+    label = 23;
+    break;
+   case 20:
+    _lame_msgf($2, 5384332, (tempInt = STACKTOP, STACKTOP = STACKTOP + 4 | 0, HEAP32[tempInt >> 2] = $_88, tempInt));
+    label = 23;
+    break;
+   case 21:
+    var $pc_490;
+    _lame_msgf($2, 5384288, (tempInt = STACKTOP, STACKTOP = STACKTOP + 4 | 0, HEAP32[tempInt >> 2] = $pc_490, tempInt));
+    label = 23;
+    break;
+   case 22:
+    _lame_msgf($2, 5384248, (tempInt = STACKTOP, STACKTOP = STACKTOP + 1 | 0, STACKTOP = STACKTOP + 3 >> 2 << 2, HEAP32[tempInt >> 2] = 0, tempInt));
+    label = 23;
+    break;
+   case 23:
+    var $49 = $2 + 156 | 0;
+    var $50 = HEAP32[$49 >> 2];
+    var $51 = ($50 | 0) == 0;
+    if ($51) {
+      label = 25;
+      break;
+    } else {
+      label = 24;
+      break;
+    }
+   case 24:
+    _lame_msgf($2, 5384216, (tempInt = STACKTOP, STACKTOP = STACKTOP + 1 | 0, STACKTOP = STACKTOP + 3 >> 2 << 2, HEAP32[tempInt >> 2] = 0, tempInt));
+    label = 25;
+    break;
+   case 25:
+    _lame_msgf($2, 5385276, (tempInt = STACKTOP, STACKTOP = STACKTOP + 1 | 0, STACKTOP = STACKTOP + 3 >> 2 << 2, HEAP32[tempInt >> 2] = 0, tempInt));
+    _lame_msgf($2, 5384184, (tempInt = STACKTOP, STACKTOP = STACKTOP + 1 | 0, STACKTOP = STACKTOP + 3 >> 2 << 2, HEAP32[tempInt >> 2] = 0, tempInt));
+    var $54 = $2 + 184 | 0;
+    var $55 = HEAP32[$54 >> 2];
+    if (($55 | 0) == 0) {
+      label = 26;
+      break;
+    } else if (($55 | 0) == 1) {
+      label = 27;
+      break;
+    } else if (($55 | 0) == 2) {
+      label = 28;
+      break;
+    } else if (($55 | 0) == 3) {
+      label = 29;
+      break;
+    } else {
+      var $pc_5 = 5385168;
+      label = 30;
+      break;
+    }
+   case 26:
+    var $pc_5 = 5384156;
+    label = 30;
+    break;
+   case 27:
+    var $pc_5 = 5384120;
+    label = 30;
+    break;
+   case 28:
+    var $pc_5 = 5384100;
+    label = 30;
+    break;
+   case 29:
+    var $pc_5 = 5384048;
+    label = 30;
+    break;
+   case 30:
+    var $pc_5;
+    _lame_msgf($2, 5384008, (tempInt = STACKTOP, STACKTOP = STACKTOP + 4 | 0, HEAP32[tempInt >> 2] = $pc_5, tempInt));
+    var $61 = $2 + 32 | 0;
+    var $62 = HEAP32[$61 >> 2];
+    _lame_msgf($2, 5383956, (tempInt = STACKTOP, STACKTOP = STACKTOP + 4 | 0, HEAP32[tempInt >> 2] = $62, tempInt));
+    var $63 = $2 + 84908 | 0;
+    var $64 = HEAPF32[$63 >> 2];
+    var $65 = $64;
+    _lame_msgf($2, 5383920, (tempInt = STACKTOP, STACKTOP = STACKTOP + 8 | 0, HEAPF64[tempDoublePtr >> 3] = $65, HEAP32[tempInt >> 2] = HEAP32[tempDoublePtr >> 2], HEAP32[tempInt + 4 >> 2] = HEAP32[tempDoublePtr + 4 >> 2], tempInt));
+    var $66 = $2 + 84912 | 0;
+    var $67 = HEAPF32[$66 >> 2];
+    var $68 = $67;
+    _lame_msgf($2, 5383876, (tempInt = STACKTOP, STACKTOP = STACKTOP + 8 | 0, HEAPF64[tempDoublePtr >> 3] = $68, HEAP32[tempInt >> 2] = HEAP32[tempDoublePtr >> 2], HEAP32[tempInt + 4 >> 2] = HEAP32[tempDoublePtr + 4 >> 2], tempInt));
+    var $69 = $2 + 84 | 0;
+    var $70 = HEAP32[$69 >> 2];
+    _lame_msgf($2, 5383824, (tempInt = STACKTOP, STACKTOP = STACKTOP + 4 | 0, HEAP32[tempInt >> 2] = $70, tempInt));
+    var $71 = $2 + 88 | 0;
+    var $72 = HEAP32[$71 >> 2];
+    _lame_msgf($2, 5383780, (tempInt = STACKTOP, STACKTOP = STACKTOP + 4 | 0, HEAP32[tempInt >> 2] = $72, tempInt));
+    var $73 = $2 + 28 | 0;
+    var $74 = HEAP32[$73 >> 2];
+    _lame_msgf($2, 5383744, (tempInt = STACKTOP, STACKTOP = STACKTOP + 4 | 0, HEAP32[tempInt >> 2] = $74, tempInt));
+    var $75 = $2 + 40 | 0;
+    var $76 = HEAP32[$75 >> 2];
+    _lame_msgf($2, 5383712, (tempInt = STACKTOP, STACKTOP = STACKTOP + 4 | 0, HEAP32[tempInt >> 2] = $76, tempInt));
+    var $77 = $2 + 44 | 0;
+    var $78 = HEAP32[$77 >> 2];
+    _lame_msgf($2, 5383684, (tempInt = STACKTOP, STACKTOP = STACKTOP + 4 | 0, HEAP32[tempInt >> 2] = $78, tempInt));
+    var $79 = $2 + 216 | 0;
+    var $80 = HEAP32[$79 >> 2];
+    var $81 = ($80 | 0) == 0;
+    var $_89 = $81 ? 5383616 : 5383572;
+    var $82 = $2 + 212 | 0;
+    var $83 = HEAP32[$82 >> 2];
+    var $84 = ($83 | 0) == 0;
+    var $pc_7 = $84 ? $_89 : 5383524;
+    var $85 = $2 + 220 | 0;
+    var $86 = HEAP32[$85 >> 2];
+    var $87 = ($86 | 0) == 0;
+    var $pc_7_ = $87 ? $pc_7 : 5383500;
+    _lame_msgf($2, 5383480, (tempInt = STACKTOP, STACKTOP = STACKTOP + 4 | 0, HEAP32[tempInt >> 2] = $pc_7_, tempInt));
+    var $88 = $2 + 208 | 0;
+    var $89 = HEAP32[$88 >> 2];
+    _lame_msgf($2, 5383452, (tempInt = STACKTOP, STACKTOP = STACKTOP + 4 | 0, HEAP32[tempInt >> 2] = $89, tempInt));
+    var $90 = $2 + 204 | 0;
+    var $91 = HEAPF32[$90 >> 2];
+    var $92 = $91;
+    _lame_msgf($2, 5383424, (tempInt = STACKTOP, STACKTOP = STACKTOP + 12 | 0, HEAPF64[tempDoublePtr >> 3] = $92, HEAP32[tempInt >> 2] = HEAP32[tempDoublePtr >> 2], HEAP32[tempInt + 4 >> 2] = HEAP32[tempDoublePtr + 4 >> 2], HEAP32[tempInt + 8 >> 2] = 5383392, tempInt));
+    var $93 = $2 + 196 | 0;
+    var $94 = HEAPF32[$93 >> 2];
+    var $95 = $94;
+    _lame_msgf($2, 5383348, (tempInt = STACKTOP, STACKTOP = STACKTOP + 8 | 0, HEAPF64[tempDoublePtr >> 3] = $95, HEAP32[tempInt >> 2] = HEAP32[tempDoublePtr >> 2], HEAP32[tempInt + 4 >> 2] = HEAP32[tempDoublePtr + 4 >> 2], tempInt));
+    var $96 = $2 + 85792 | 0;
+    var $97 = HEAP32[$96 >> 2];
+    var $98 = $97 | 0;
+    var $99 = HEAP32[$98 >> 2];
+    _lame_msgf($2, 5383316, (tempInt = STACKTOP, STACKTOP = STACKTOP + 4 | 0, HEAP32[tempInt >> 2] = $99, tempInt));
+    var $100 = HEAP32[$96 >> 2];
+    var $101 = $100 + 4 | 0;
+    var $102 = HEAPF32[$101 >> 2];
+    var $103 = $102;
+    _lame_msgf($2, 5383264, (tempInt = STACKTOP, STACKTOP = STACKTOP + 8 | 0, HEAPF64[tempDoublePtr >> 3] = $103, HEAP32[tempInt >> 2] = HEAP32[tempDoublePtr >> 2], HEAP32[tempInt + 4 >> 2] = HEAP32[tempDoublePtr + 4 >> 2], tempInt));
+    _lame_msgf($2, 5383212, (tempInt = STACKTOP, STACKTOP = STACKTOP + 1 | 0, STACKTOP = STACKTOP + 3 >> 2 << 2, HEAP32[tempInt >> 2] = 0, tempInt));
+    var $104 = $2 + 84764 | 0;
+    var $105 = HEAPF32[$104 >> 2];
+    var $106 = $105;
+    var $107 = _log10($106);
+    var $108 = $107 * 10;
+    var $109 = $2 + 84792 | 0;
+    var $110 = HEAPF32[$109 >> 2];
+    var $111 = $110;
+    var $112 = _log10($111);
+    var $113 = $112 * 10;
+    var $114 = $2 + 84820 | 0;
+    var $115 = HEAPF32[$114 >> 2];
+    var $116 = $115;
+    var $117 = _log10($116);
+    var $118 = $117 * 10;
+    var $119 = $2 + 84848 | 0;
+    var $120 = HEAPF32[$119 >> 2];
+    var $121 = $120;
+    var $122 = _log10($121);
+    var $123 = $122 * 10;
+    _lame_msgf($2, 5383128, (tempInt = STACKTOP, STACKTOP = STACKTOP + 32 | 0, HEAPF64[tempDoublePtr >> 3] = $108, HEAP32[tempInt >> 2] = HEAP32[tempDoublePtr >> 2], HEAP32[tempInt + 4 >> 2] = HEAP32[tempDoublePtr + 4 >> 2], HEAPF64[tempDoublePtr >> 3] = $113, HEAP32[tempInt + 8 >> 2] = HEAP32[tempDoublePtr >> 2], HEAP32[tempInt + 12 >> 2] = HEAP32[tempDoublePtr + 4 >> 2], HEAPF64[tempDoublePtr >> 3] = $118, HEAP32[tempInt + 16 >> 2] = HEAP32[tempDoublePtr >> 2], HEAP32[tempInt + 20 >> 2] = HEAP32[tempDoublePtr + 4 >> 2], HEAPF64[tempDoublePtr >> 3] = $123, HEAP32[tempInt + 24 >> 2] = HEAP32[tempDoublePtr >> 2], HEAP32[tempInt + 28 >> 2] = HEAP32[tempDoublePtr + 4 >> 2], tempInt));
+    var $124 = $2 + 92 | 0;
+    var $125 = HEAP32[$124 >> 2];
+    var $126 = ($125 | 0) != 0;
+    var $127 = $126 ? 5383116 : 5383100;
+    _lame_msgf($2, 5383052, (tempInt = STACKTOP, STACKTOP = STACKTOP + 4 | 0, HEAP32[tempInt >> 2] = $127, tempInt));
+    var $128 = $2 + 188 | 0;
+    var $129 = HEAPF32[$128 >> 2];
+    var $130 = $129;
+    _lame_msgf($2, 5383008, (tempInt = STACKTOP, STACKTOP = STACKTOP + 8 | 0, HEAPF64[tempDoublePtr >> 3] = $130, HEAP32[tempInt >> 2] = HEAP32[tempDoublePtr >> 2], HEAP32[tempInt + 4 >> 2] = HEAP32[tempDoublePtr + 4 >> 2], tempInt));
+    _lame_msgf($2, 5385276, (tempInt = STACKTOP, STACKTOP = STACKTOP + 1 | 0, STACKTOP = STACKTOP + 3 >> 2 << 2, HEAP32[tempInt >> 2] = 0, tempInt));
+    _lame_msgf($2, 5382996, (tempInt = STACKTOP, STACKTOP = STACKTOP + 1 | 0, STACKTOP = STACKTOP + 3 >> 2 << 2, HEAP32[tempInt >> 2] = 0, tempInt));
+    STACKTOP = __stackBase__;
+    return;
+  }
+}
+_lame_print_internals["X"] = 1;
+function _lame_encode_buffer($gfp, $pcm_l, $pcm_r, $nsamples, $mp3buf, $mp3buf_size) {
+  return _lame_encode_buffer_template($gfp, $pcm_l, $pcm_r, $nsamples, $mp3buf, $mp3buf_size, 0, 1, 1);
+}
+function _lame_encode_buffer_template($gfp, $buffer_l, $buffer_r, $nsamples, $mp3buf, $mp3buf_size, $pcm_type, $aa, $norm) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = _is_lame_global_flags_valid($gfp);
+    var $2 = ($1 | 0) == 0;
+    if ($2) {
+      var $_0 = -3;
+      label = 12;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 3:
+    var $4 = $gfp + 288 | 0;
+    var $5 = HEAP32[$4 >> 2];
+    var $6 = _is_lame_internal_flags_valid($5);
+    var $7 = ($6 | 0) == 0;
+    if ($7) {
+      var $_0 = -3;
+      label = 12;
+      break;
+    } else {
+      label = 4;
+      break;
+    }
+   case 4:
+    var $9 = ($nsamples | 0) == 0;
+    if ($9) {
+      var $_0 = 0;
+      label = 12;
+      break;
+    } else {
+      label = 5;
+      break;
+    }
+   case 5:
+    var $11 = _update_inbuffer_size($5, $nsamples);
+    var $12 = ($11 | 0) == 0;
+    if ($12) {
+      label = 6;
+      break;
+    } else {
+      var $_0 = -2;
+      label = 12;
+      break;
+    }
+   case 6:
+    var $14 = $5 + 68 | 0;
+    var $15 = HEAP32[$14 >> 2];
+    var $16 = ($15 | 0) > 1;
+    var $17 = ($buffer_l | 0) == 0;
+    if ($16) {
+      label = 7;
+      break;
+    } else {
+      label = 9;
+      break;
+    }
+   case 7:
+    var $19 = ($buffer_r | 0) == 0;
+    var $or_cond = $17 | $19;
+    if ($or_cond) {
+      var $_0 = 0;
+      label = 12;
+      break;
+    } else {
+      label = 8;
+      break;
+    }
+   case 8:
+    _lame_copy_inbuffer($5, $buffer_l, $buffer_r, $nsamples, $pcm_type, $aa, $norm);
+    label = 11;
+    break;
+   case 9:
+    if ($17) {
+      var $_0 = 0;
+      label = 12;
+      break;
+    } else {
+      label = 10;
+      break;
+    }
+   case 10:
+    _lame_copy_inbuffer($5, $buffer_l, $buffer_l, $nsamples, $pcm_type, $aa, $norm);
+    label = 11;
+    break;
+   case 11:
+    var $24 = _lame_encode_buffer_sample_t($5, $nsamples, $mp3buf, $mp3buf_size);
+    var $_0 = $24;
+    label = 12;
+    break;
+   case 12:
+    var $_0;
+    return $_0;
+  }
+}
+function _lame_encode_buffer_float($gfp, $pcm_l, $pcm_r, $nsamples, $mp3buf, $mp3buf_size) {
+  return _lame_encode_buffer_template($gfp, $pcm_l, $pcm_r, $nsamples, $mp3buf, $mp3buf_size, 3, 1, 1);
+}
+function _lame_encode_buffer_ieee_float($gfp, $pcm_l, $pcm_r, $nsamples, $mp3buf, $mp3buf_size) {
+  return _lame_encode_buffer_template($gfp, $pcm_l, $pcm_r, $nsamples, $mp3buf, $mp3buf_size, 3, 1, 32767);
+}
+function _lame_encode_buffer_interleaved_ieee_float($gfp, $pcm, $nsamples, $mp3buf, $mp3buf_size) {
+  return _lame_encode_buffer_template($gfp, $pcm, $pcm + 4 | 0, $nsamples, $mp3buf, $mp3buf_size, 3, 2, 32767);
+}
+function _lame_encode_buffer_ieee_double($gfp, $pcm_l, $pcm_r, $nsamples, $mp3buf, $mp3buf_size) {
+  return _lame_encode_buffer_template($gfp, $pcm_l, $pcm_r, $nsamples, $mp3buf, $mp3buf_size, 4, 1, 32767);
+}
+function _lame_encode_buffer_interleaved_ieee_double($gfp, $pcm, $nsamples, $mp3buf, $mp3buf_size) {
+  return _lame_encode_buffer_template($gfp, $pcm, $pcm + 8 | 0, $nsamples, $mp3buf, $mp3buf_size, 4, 2, 32767);
+}
+function _lame_encode_buffer_int($gfp, $pcm_l, $pcm_r, $nsamples, $mp3buf, $mp3buf_size) {
+  return _lame_encode_buffer_template($gfp, $pcm_l, $pcm_r, $nsamples, $mp3buf, $mp3buf_size, 1, 1, 152587890625e-16);
+}
+function _lame_encode_buffer_long2($gfp, $pcm_l, $pcm_r, $nsamples, $mp3buf, $mp3buf_size) {
+  return _lame_encode_buffer_template($gfp, $pcm_l, $pcm_r, $nsamples, $mp3buf, $mp3buf_size, 2, 1, 152587890625e-16);
+}
+function _lame_encode_buffer_long($gfp, $pcm_l, $pcm_r, $nsamples, $mp3buf, $mp3buf_size) {
+  return _lame_encode_buffer_template($gfp, $pcm_l, $pcm_r, $nsamples, $mp3buf, $mp3buf_size, 2, 1, 1);
+}
+function _lame_encode_buffer_interleaved($gfp, $pcm, $nsamples, $mp3buf, $mp3buf_size) {
+  return _lame_encode_buffer_template($gfp, $pcm, $pcm + 2 | 0, $nsamples, $mp3buf, $mp3buf_size, 0, 2, 1);
+}
+function _lame_encode_flush_nogap($gfp, $mp3buffer, $mp3buffer_size) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = _is_lame_global_flags_valid($gfp);
+    var $2 = ($1 | 0) == 0;
+    if ($2) {
+      var $rc_0 = -3;
+      label = 5;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 3:
+    var $4 = $gfp + 288 | 0;
+    var $5 = HEAP32[$4 >> 2];
+    var $6 = _is_lame_internal_flags_valid($5);
+    var $7 = ($6 | 0) == 0;
+    if ($7) {
+      var $rc_0 = -3;
+      label = 5;
+      break;
+    } else {
+      label = 4;
+      break;
+    }
+   case 4:
+    _flush_bitstream($5);
+    var $9 = _copy_buffer($5, $mp3buffer, $mp3buffer_size, 1);
+    _save_gain_values($5);
+    var $rc_0 = $9;
+    label = 5;
+    break;
+   case 5:
+    var $rc_0;
+    return $rc_0;
+  }
+}
+function _save_gain_values($gfc) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = $gfc + 85676 | 0;
+    var $2 = $gfc + 128 | 0;
+    var $3 = HEAP32[$2 >> 2];
+    var $4 = ($3 | 0) == 0;
+    if ($4) {
+      label = 8;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 3:
+    var $6 = $gfc + 85672 | 0;
+    var $7 = HEAP32[$6 >> 2];
+    var $8 = _GetTitleGain($7);
+    var $9 = $8;
+    var $fabsf = Math.abs($8);
+    var $10 = $fabsf > 24601;
+    var $11 = $8 + 24601;
+    var $fabsf13 = Math.abs($11);
+    var $12 = $fabsf13;
+    if ($10) {
+      label = 4;
+      break;
+    } else {
+      label = 5;
+      break;
+    }
+   case 4:
+    var $14 = $fabsf;
+    var $15 = $14 * 9.999999974752427e-7;
+    var $16 = $12 > $15;
+    if ($16) {
+      label = 6;
+      break;
+    } else {
+      label = 7;
+      break;
+    }
+   case 5:
+    var $18 = $12 > .024600999937888446;
+    if ($18) {
+      label = 6;
+      break;
+    } else {
+      label = 7;
+      break;
+    }
+   case 6:
+    var $20 = $9 * 10;
+    var $21 = $20 + .5;
+    var $22 = Math.floor($21);
+    var $23 = $22 & -1;
+    var $24 = $gfc + 85684 | 0;
+    HEAP32[$24 >> 2] = $23;
+    label = 8;
+    break;
+   case 7:
+    var $26 = $gfc + 85684 | 0;
+    HEAP32[$26 >> 2] = 0;
+    label = 8;
+    break;
+   case 8:
+    var $28 = $gfc + 132 | 0;
+    var $29 = HEAP32[$28 >> 2];
+    var $30 = ($29 | 0) == 0;
+    if ($30) {
+      label = 12;
+      break;
+    } else {
+      label = 9;
+      break;
+    }
+   case 9:
+    var $32 = $gfc + 85680 | 0;
+    var $33 = HEAPF32[$32 >> 2];
+    var $34 = $33;
+    var $35 = $34 / 32767;
+    var $36 = _log10($35);
+    var $37 = $36 * 20;
+    var $38 = $37 * 10;
+    var $39 = Math.ceil($38);
+    var $40 = $39 & -1;
+    var $41 = $gfc + 85688 | 0;
+    HEAP32[$41 >> 2] = $40;
+    var $42 = ($40 | 0) > 0;
+    if ($42) {
+      label = 10;
+      break;
+    } else {
+      label = 11;
+      break;
+    }
+   case 10:
+    var $44 = HEAPF32[$32 >> 2];
+    var $45 = 32767 / $44;
+    var $46 = $45 * 100;
+    var $floorf = Math.floor($46);
+    var $47 = $floorf / 100;
+    var $48 = $1 | 0;
+    HEAPF32[$48 >> 2] = $47;
+    label = 12;
+    break;
+   case 11:
+    var $50 = $1 | 0;
+    HEAPF32[$50 >> 2] = -1;
+    label = 12;
+    break;
+   case 12:
+    return;
+  }
+}
+_save_gain_values["X"] = 1;
+function _lame_encode_flush($gfp, $mp3buffer, $mp3buffer_size) {
+  var label = 0;
+  var __stackBase__ = STACKTOP;
+  STACKTOP = STACKTOP + 4608 | 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $buffer = __stackBase__;
+    var $1 = _is_lame_global_flags_valid($gfp);
+    var $2 = ($1 | 0) == 0;
+    if ($2) {
+      var $_0 = -3;
+      label = 15;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 3:
+    var $4 = $gfp + 288 | 0;
+    var $5 = HEAP32[$4 >> 2];
+    var $6 = _is_lame_internal_flags_valid($5);
+    var $7 = ($6 | 0) == 0;
+    if ($7) {
+      var $_0 = -3;
+      label = 15;
+      break;
+    } else {
+      label = 4;
+      break;
+    }
+   case 4:
+    var $9 = $5 + 16 | 0;
+    var $10 = $5 + 84028 | 0;
+    var $11 = HEAP32[$10 >> 2];
+    var $12 = ($11 | 0) < 1;
+    if ($12) {
+      var $_0 = 0;
+      label = 15;
+      break;
+    } else {
+      label = 5;
+      break;
+    }
+   case 5:
+    var $14 = $5 + 76 | 0;
+    var $15 = HEAP32[$14 >> 2];
+    var $16 = $15 * 576 & -1;
+    var $17 = _calcNeeded($9);
+    var $18 = $11 - 1152 | 0;
+    var $19 = $buffer;
+    _memset($19, 0, 4608);
+    var $20 = _isResamplingNecessary($9);
+    var $21 = ($20 | 0) == 0;
+    if ($21) {
+      var $resample_ratio_0 = 1;
+      var $samples_to_encode_0 = $18;
+      label = 7;
+      break;
+    } else {
+      label = 6;
+      break;
+    }
+   case 6:
+    var $23 = $5 + 60 | 0;
+    var $24 = HEAP32[$23 >> 2];
+    var $25 = $24 | 0;
+    var $26 = $5 + 64 | 0;
+    var $27 = HEAP32[$26 >> 2];
+    var $28 = $27 | 0;
+    var $29 = $25 / $28;
+    var $30 = 16 / $29;
+    var $31 = $18 | 0;
+    var $32 = $31 + $30;
+    var $33 = $32 & -1;
+    var $resample_ratio_0 = $29;
+    var $samples_to_encode_0 = $33;
+    label = 7;
+    break;
+   case 7:
+    var $samples_to_encode_0;
+    var $resample_ratio_0;
+    var $35 = ($samples_to_encode_0 | 0) % ($16 | 0);
+    var $36 = $16 - $35 | 0;
+    var $37 = ($36 | 0) < 576;
+    var $38 = $37 ? $16 : 0;
+    var $end_padding_0 = $38 + $36 | 0;
+    var $39 = $5 + 84760 | 0;
+    HEAP32[$39 >> 2] = $end_padding_0;
+    var $40 = $end_padding_0 + $samples_to_encode_0 | 0;
+    var $41 = ($40 | 0) / ($16 | 0) & -1;
+    var $42 = ($41 | 0) > 0;
+    if ($42) {
+      label = 9;
+      break;
+    } else {
+      label = 8;
+      break;
+    }
+   case 8:
+    HEAP32[$10 >> 2] = 0;
+    var $_063_lcssa75 = $mp3buffer;
+    var $mp3count_0_lcssa76 = 0;
+    label = 12;
+    break;
+   case 9:
+    var $43 = $5 + 84744 | 0;
+    var $44 = $5 + 84032 | 0;
+    var $45 = ($mp3buffer_size | 0) == 0;
+    var $46 = $buffer | 0;
+    var $47 = $buffer + 2304 | 0;
+    var $frames_left_068 = $41;
+    var $mp3count_069 = 0;
+    var $_06370 = $mp3buffer;
+    label = 10;
+    break;
+   case 10:
+    var $_06370;
+    var $mp3count_069;
+    var $frames_left_068;
+    var $49 = HEAP32[$43 >> 2];
+    var $50 = HEAP32[$44 >> 2];
+    var $51 = $17 - $50 | 0;
+    var $52 = $51 | 0;
+    var $53 = $resample_ratio_0 * $52;
+    var $54 = $53 & -1;
+    var $55 = ($54 | 0) > 1152;
+    var $_ = $55 ? 1152 : $54;
+    var $56 = ($_ | 0) < 1;
+    var $bunch_1 = $56 ? 1 : $_;
+    var $57 = $mp3buffer_size - $mp3count_069 | 0;
+    var $_64 = $45 ? 0 : $57;
+    var $58 = _lame_encode_buffer($gfp, $46, $47, $bunch_1, $_06370, $_64);
+    var $59 = $_06370 + $58 | 0;
+    var $60 = $58 + $mp3count_069 | 0;
+    var $61 = HEAP32[$43 >> 2];
+    var $62 = ($49 | 0) != ($61 | 0);
+    var $63 = $62 & 1;
+    var $64 = $frames_left_068 - $63 | 0;
+    var $65 = ($64 | 0) > 0;
+    var $66 = ($58 | 0) > -1;
+    var $or_cond = $65 & $66;
+    if ($or_cond) {
+      var $frames_left_068 = $64;
+      var $mp3count_069 = $60;
+      var $_06370 = $59;
+      label = 10;
+      break;
+    } else {
+      label = 11;
+      break;
+    }
+   case 11:
+    HEAP32[$10 >> 2] = 0;
+    var $67 = ($58 | 0) < 0;
+    if ($67) {
+      var $_0 = $58;
+      label = 15;
+      break;
+    } else {
+      var $_063_lcssa75 = $59;
+      var $mp3count_0_lcssa76 = $60;
+      label = 12;
+      break;
+    }
+   case 12:
+    var $mp3count_0_lcssa76;
+    var $_063_lcssa75;
+    var $69 = $mp3buffer_size - $mp3count_0_lcssa76 | 0;
+    var $70 = ($mp3buffer_size | 0) == 0;
+    var $_65 = $70 ? 0 : $69;
+    _flush_bitstream($5);
+    var $71 = _copy_buffer($5, $_063_lcssa75, $_65, 1);
+    _save_gain_values($5);
+    var $72 = ($71 | 0) < 0;
+    if ($72) {
+      var $_0 = $71;
+      label = 15;
+      break;
+    } else {
+      label = 13;
+      break;
+    }
+   case 13:
+    var $74 = $71 + $mp3count_0_lcssa76 | 0;
+    var $75 = $gfp + 68 | 0;
+    var $76 = HEAP32[$75 >> 2];
+    var $77 = ($76 | 0) == 0;
+    if ($77) {
+      var $_0 = $74;
+      label = 15;
+      break;
+    } else {
+      label = 14;
+      break;
+    }
+   case 14:
+    var $79 = $mp3buffer_size - $74 | 0;
+    var $_66 = $70 ? 0 : $79;
+    var $80 = $_063_lcssa75 + $71 | 0;
+    var $81 = _id3tag_write_v1($gfp);
+    var $82 = _copy_buffer($5, $80, $_66, 0);
+    var $83 = ($82 | 0) < 0;
+    var $84 = $83 ? 0 : $74;
+    var $_67 = $84 + $82 | 0;
+    STACKTOP = __stackBase__;
+    return $_67;
+   case 15:
+    var $_0;
+    STACKTOP = __stackBase__;
+    return $_0;
+  }
+}
+_lame_encode_flush["X"] = 1;
+function _lame_close($gfp) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = ($gfp | 0) == 0;
+    if ($1) {
+      var $ret_1 = 0;
+      label = 8;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 3:
+    var $3 = $gfp | 0;
+    var $4 = HEAP32[$3 >> 2];
+    var $5 = ($4 | 0) == -487877;
+    if ($5) {
+      label = 4;
+      break;
+    } else {
+      var $ret_1 = 0;
+      label = 8;
+      break;
+    }
+   case 4:
+    var $7 = $gfp + 288 | 0;
+    var $8 = HEAP32[$7 >> 2];
+    HEAP32[$3 >> 2] = 0;
+    var $9 = ($8 | 0) == 0;
+    if ($9) {
+      var $ret_013 = -3;
+      label = 6;
+      break;
+    } else {
+      label = 5;
+      break;
+    }
+   case 5:
+    var $10 = $8 | 0;
+    var $11 = HEAP32[$10 >> 2];
+    var $12 = ($11 | 0) == -487877;
+    var $_ = $12 ? 0 : -3;
+    var $13 = $8 | 0;
+    HEAP32[$13 >> 2] = 0;
+    _freegfc($8);
+    HEAP32[$7 >> 2] = 0;
+    var $ret_013 = $_;
+    label = 6;
+    break;
+   case 6:
+    var $ret_013;
+    var $14 = $gfp + 284 | 0;
+    var $15 = HEAP32[$14 >> 2];
+    var $16 = ($15 | 0) == 0;
+    if ($16) {
+      var $ret_1 = $ret_013;
+      label = 8;
+      break;
+    } else {
+      label = 7;
+      break;
+    }
+   case 7:
+    HEAP32[$14 >> 2] = 0;
+    var $18 = $gfp;
+    _free($18);
+    var $ret_1 = $ret_013;
+    label = 8;
+    break;
+   case 8:
+    var $ret_1;
+    return $ret_1;
+  }
+}
+function _lame_encode_finish($gfp, $mp3buffer, $mp3buffer_size) {
+  var $1 = _lame_encode_flush($gfp, $mp3buffer, $mp3buffer_size);
+  _lame_close($gfp);
+  return $1;
+}
+function _lame_mp3_tags_fid($gfp, $fpStream) {
+  var label = 0;
+  var __stackBase__ = STACKTOP;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = _is_lame_global_flags_valid($gfp);
+    var $2 = ($1 | 0) == 0;
+    if ($2) {
+      label = 10;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 3:
+    var $4 = $gfp + 288 | 0;
+    var $5 = HEAP32[$4 >> 2];
+    var $6 = _is_lame_internal_flags_valid($5);
+    var $7 = ($6 | 0) == 0;
+    if ($7) {
+      label = 10;
+      break;
+    } else {
+      label = 4;
+      break;
+    }
+   case 4:
+    var $9 = $5 + 156 | 0;
+    var $10 = HEAP32[$9 >> 2];
+    var $11 = ($10 | 0) == 0;
+    var $12 = ($fpStream | 0) == 0;
+    var $or_cond = $11 | $12;
+    if ($or_cond) {
+      label = 10;
+      break;
+    } else {
+      label = 5;
+      break;
+    }
+   case 5:
+    var $14 = _fseek($fpStream, 0, 0);
+    var $15 = ($14 | 0) == 0;
+    if ($15) {
+      label = 6;
+      break;
+    } else {
+      label = 10;
+      break;
+    }
+   case 6:
+    var $17 = _PutVbrTag($gfp, $fpStream);
+    if (($17 | 0) == -1) {
+      label = 7;
+      break;
+    } else if (($17 | 0) == -2) {
+      label = 8;
+      break;
+    } else if (($17 | 0) == -3) {
+      label = 9;
+      break;
+    } else {
+      label = 10;
+      break;
+    }
+   case 7:
+    _lame_errorf($5, 5382952, (tempInt = STACKTOP, STACKTOP = STACKTOP + 1 | 0, STACKTOP = STACKTOP + 3 >> 2 << 2, HEAP32[tempInt >> 2] = 0, tempInt));
+    label = 10;
+    break;
+   case 8:
+    _lame_errorf($5, 5382884, (tempInt = STACKTOP, STACKTOP = STACKTOP + 1 | 0, STACKTOP = STACKTOP + 3 >> 2 << 2, HEAP32[tempInt >> 2] = 0, tempInt));
+    label = 10;
+    break;
+   case 9:
+    _lame_errorf($5, 5382792, (tempInt = STACKTOP, STACKTOP = STACKTOP + 1 | 0, STACKTOP = STACKTOP + 3 >> 2 << 2, HEAP32[tempInt >> 2] = 0, tempInt));
+    label = 10;
+    break;
+   case 10:
+    STACKTOP = __stackBase__;
+    return;
+  }
+}
+function _lame_init() {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    _init_log_table();
+    var $1 = _calloc(1, 304);
+    var $2 = $1;
+    var $3 = ($1 | 0) == 0;
+    if ($3) {
+      var $_0 = 0;
+      label = 6;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 3:
+    var $5 = _lame_init_old($2);
+    var $6 = ($5 | 0) == 0;
+    if ($6) {
+      label = 5;
+      break;
+    } else {
+      label = 4;
+      break;
+    }
+   case 4:
+    _free($1);
+    var $_0 = 0;
+    label = 6;
+    break;
+   case 5:
+    var $9 = $1 + 284 | 0;
+    var $10 = $9;
+    HEAP32[$10 >> 2] = 1;
+    var $_0 = $2;
+    label = 6;
+    break;
+   case 6:
+    var $_0;
+    return $_0;
+  }
+}
+function _lame_init_old($gfp) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = $gfp;
+    for (var $$dest = $1 >> 2, $$stop = $$dest + 76; $$dest < $$stop; $$dest++) {
+      HEAP32[$$dest] = 0;
+    }
+    var $2 = $gfp | 0;
+    HEAP32[$2 >> 2] = -487877;
+    var $3 = _calloc(1, 85836);
+    var $4 = $3;
+    var $5 = $gfp + 288 | 0;
+    HEAP32[$5 >> 2] = $4;
+    var $6 = ($3 | 0) == 0;
+    if ($6) {
+      var $_0 = -1;
+      label = 4;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 3:
+    var $8 = $gfp + 124 | 0;
+    HEAP32[$8 >> 2] = 2;
+    var $9 = $gfp + 48 | 0;
+    HEAP32[$9 >> 2] = 4;
+    var $10 = $gfp + 108 | 0;
+    HEAP32[$10 >> 2] = 1;
+    var $11 = $gfp + 12 | 0;
+    HEAP32[$11 >> 2] = 44100;
+    var $12 = $gfp + 8 | 0;
+    HEAP32[$12 >> 2] = 2;
+    var $13 = $gfp + 4 | 0;
+    HEAP32[$13 >> 2] = -1;
+    var $14 = $gfp + 36 | 0;
+    HEAP32[$14 >> 2] = 1;
+    var $15 = $gfp + 44 | 0;
+    HEAP32[$15 >> 2] = -1;
+    var $16 = $gfp + 240 | 0;
+    HEAP32[$16 >> 2] = -1;
+    var $17 = $gfp + 88 | 0;
+    HEAP32[$17 >> 2] = -1;
+    var $18 = $gfp + 184 | 0;
+    HEAP32[$18 >> 2] = 0;
+    var $19 = $gfp + 188 | 0;
+    HEAP32[$19 >> 2] = 0;
+    var $20 = $gfp + 192 | 0;
+    HEAP32[$20 >> 2] = -1;
+    var $21 = $gfp + 196 | 0;
+    HEAP32[$21 >> 2] = -1;
+    var $22 = $gfp + 156 | 0;
+    HEAP32[$22 >> 2] = 0;
+    var $23 = $gfp + 164 | 0;
+    HEAP32[$23 >> 2] = 4;
+    var $24 = $gfp + 224 | 0;
+    HEAPF32[$24 >> 2] = -1;
+    var $25 = $gfp + 168 | 0;
+    HEAP32[$25 >> 2] = 128;
+    var $26 = $gfp + 172 | 0;
+    HEAP32[$26 >> 2] = 0;
+    var $27 = $gfp + 176 | 0;
+    HEAP32[$27 >> 2] = 0;
+    var $28 = $gfp + 180 | 0;
+    HEAP32[$28 >> 2] = 0;
+    var $29 = $3 + 112 | 0;
+    var $30 = $29;
+    HEAP32[$30 >> 2] = 1;
+    var $31 = $3 + 116 | 0;
+    var $32 = $31;
+    HEAP32[$32 >> 2] = 13;
+    var $33 = $gfp + 132 | 0;
+    HEAP32[$33 >> 2] = -1;
+    var $34 = $gfp + 136 | 0;
+    HEAP32[$34 >> 2] = -1;
+    var $35 = $gfp + 252 | 0;
+    HEAPF32[$35 >> 2] = -1;
+    var $36 = $3 + 84916 | 0;
+    var $37 = $36;
+    HEAP32[$37 >> 2] = 180;
+    var $38 = $3 + 84920 | 0;
+    var $39 = $38;
+    HEAP32[$39 >> 2] = 180;
+    var $40 = $3 + 84924 | 0;
+    var $41 = $40;
+    HEAP32[$41 >> 2] = 4;
+    var $42 = $3 + 84928 | 0;
+    var $43 = $42;
+    HEAP32[$43 >> 2] = 4;
+    var $44 = $3 + 84904 | 0;
+    var $45 = $44;
+    HEAPF32[$45 >> 2] = 1;
+    var $46 = $gfp + 264 | 0;
+    HEAPF32[$46 >> 2] = -1;
+    var $47 = $gfp + 268 | 0;
+    HEAPF32[$47 >> 2] = -1;
+    var $48 = $gfp + 20 | 0;
+    HEAPF32[$48 >> 2] = 1;
+    var $49 = $gfp + 24 | 0;
+    HEAPF32[$49 >> 2] = 1;
+    var $50 = $gfp + 28 | 0;
+    HEAPF32[$50 >> 2] = 1;
+    var $51 = $gfp + 232 | 0;
+    HEAP32[$51 >> 2] = -1;
+    var $52 = $gfp + 220 | 0;
+    HEAP32[$52 >> 2] = -1;
+    var $53 = $gfp + 236 | 0;
+    HEAPF32[$53 >> 2] = 0;
+    var $54 = $gfp + 244 | 0;
+    HEAP32[$54 >> 2] = -1;
+    var $55 = $gfp + 248 | 0;
+    HEAPF32[$55 >> 2] = -1;
+    var $56 = $3 + 84028 | 0;
+    var $57 = $56;
+    HEAP32[$57 >> 2] = 1728;
+    var $58 = $3 + 84760 | 0;
+    var $59 = $58;
+    HEAP32[$59 >> 2] = 0;
+    var $60 = $3 + 84032 | 0;
+    var $61 = $60;
+    HEAP32[$61 >> 2] = 528;
+    var $62 = $gfp + 60 | 0;
+    HEAP32[$62 >> 2] = 0;
+    var $63 = $gfp + 64 | 0;
+    HEAP32[$63 >> 2] = 0;
+    var $64 = $3 + 136 | 0;
+    var $65 = $64;
+    HEAP32[$65 >> 2] = 0;
+    var $66 = $3 + 128 | 0;
+    var $67 = $66;
+    HEAP32[$67 >> 2] = 0;
+    var $68 = $3 + 132 | 0;
+    var $69 = $68;
+    HEAP32[$69 >> 2] = 0;
+    var $70 = $3 + 85676 | 0;
+    var $71 = $3 + 85684 | 0;
+    var $72 = $71;
+    HEAP32[$72 >> 2] = 0;
+    var $73 = $3 + 85688 | 0;
+    var $74 = $73;
+    HEAP32[$74 >> 2] = 0;
+    var $75 = $70;
+    HEAPF32[$75 >> 2] = -1;
+    var $76 = $gfp + 292 | 0;
+    HEAP32[$76 >> 2] = 1;
+    var $77 = $gfp + 296 | 0;
+    HEAP32[$77 >> 2] = 1;
+    var $78 = $gfp + 300 | 0;
+    HEAP32[$78 >> 2] = 1;
+    var $79 = $gfp + 152 | 0;
+    HEAP32[$79 >> 2] = 0;
+    var $80 = $gfp + 68 | 0;
+    HEAP32[$80 >> 2] = 1;
+    var $81 = $gfp + 276 | 0;
+    HEAP32[$81 >> 2] = 52;
+    var $82 = $gfp + 280 | 0;
+    HEAP32[$82 >> 2] = 52;
+    var $83 = $gfp + 272 | 0;
+    HEAP32[$83 >> 2] = 52;
+    var $_0 = 0;
+    label = 4;
+    break;
+   case 4:
+    var $_0;
+    return $_0;
+  }
+}
+_lame_init_old["X"] = 1;
+function _lame_copy_inbuffer($gfc, $l, $r, $nsamples, $pcm_type, $jump, $s) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = $gfc + 52148 | 0;
+    var $2 = HEAP32[$1 >> 2];
+    var $3 = $gfc + 52152 | 0;
+    var $4 = HEAP32[$3 >> 2];
+    var $5 = $gfc + 264 | 0;
+    var $6 = HEAPF32[$5 >> 2];
+    var $7 = $6 * $s;
+    var $8 = $gfc + 268 | 0;
+    var $9 = HEAPF32[$8 >> 2];
+    var $10 = $9 * $s;
+    var $11 = $gfc + 272 | 0;
+    var $12 = HEAPF32[$11 >> 2];
+    var $13 = $12 * $s;
+    var $14 = $gfc + 276 | 0;
+    var $15 = HEAPF32[$14 >> 2];
+    var $16 = $15 * $s;
+    if (($pcm_type | 0) == 0) {
+      label = 3;
+      break;
+    } else if (($pcm_type | 0) == 1) {
+      label = 6;
+      break;
+    } else if (($pcm_type | 0) == 2) {
+      label = 9;
+      break;
+    } else if (($pcm_type | 0) == 3) {
+      label = 12;
+      break;
+    } else if (($pcm_type | 0) == 4) {
+      label = 15;
+      break;
+    } else {
+      label = 18;
+      break;
+    }
+   case 3:
+    var $18 = ($nsamples | 0) > 0;
+    if ($18) {
+      label = 4;
+      break;
+    } else {
+      label = 18;
+      break;
+    }
+   case 4:
+    var $19 = $r;
+    var $20 = $l;
+    var $i_095 = 0;
+    var $br_096 = $19;
+    var $bl_097 = $20;
+    label = 5;
+    break;
+   case 5:
+    var $bl_097;
+    var $br_096;
+    var $i_095;
+    var $22 = HEAP16[$bl_097 >> 1];
+    var $23 = $22 << 16 >> 16;
+    var $24 = HEAP16[$br_096 >> 1];
+    var $25 = $24 << 16 >> 16;
+    var $26 = $7 * $23;
+    var $27 = $10 * $25;
+    var $28 = $26 + $27;
+    var $29 = $13 * $23;
+    var $30 = $16 * $25;
+    var $31 = $29 + $30;
+    var $32 = $2 + ($i_095 << 2) | 0;
+    HEAPF32[$32 >> 2] = $28;
+    var $33 = $4 + ($i_095 << 2) | 0;
+    HEAPF32[$33 >> 2] = $31;
+    var $34 = $bl_097 + ($jump << 1) | 0;
+    var $35 = $br_096 + ($jump << 1) | 0;
+    var $36 = $i_095 + 1 | 0;
+    var $exitcond = ($36 | 0) == ($nsamples | 0);
+    if ($exitcond) {
+      label = 18;
+      break;
+    } else {
+      var $i_095 = $36;
+      var $br_096 = $35;
+      var $bl_097 = $34;
+      label = 5;
+      break;
+    }
+   case 6:
+    var $38 = ($nsamples | 0) > 0;
+    if ($38) {
+      label = 7;
+      break;
+    } else {
+      label = 18;
+      break;
+    }
+   case 7:
+    var $39 = $r;
+    var $40 = $l;
+    var $i3_099 = 0;
+    var $br2_0100 = $39;
+    var $bl1_0101 = $40;
+    label = 8;
+    break;
+   case 8:
+    var $bl1_0101;
+    var $br2_0100;
+    var $i3_099;
+    var $42 = HEAP32[$bl1_0101 >> 2];
+    var $43 = $42 | 0;
+    var $44 = HEAP32[$br2_0100 >> 2];
+    var $45 = $44 | 0;
+    var $46 = $7 * $43;
+    var $47 = $10 * $45;
+    var $48 = $46 + $47;
+    var $49 = $13 * $43;
+    var $50 = $16 * $45;
+    var $51 = $49 + $50;
+    var $52 = $2 + ($i3_099 << 2) | 0;
+    HEAPF32[$52 >> 2] = $48;
+    var $53 = $4 + ($i3_099 << 2) | 0;
+    HEAPF32[$53 >> 2] = $51;
+    var $54 = $bl1_0101 + ($jump << 2) | 0;
+    var $55 = $br2_0100 + ($jump << 2) | 0;
+    var $56 = $i3_099 + 1 | 0;
+    var $exitcond118 = ($56 | 0) == ($nsamples | 0);
+    if ($exitcond118) {
+      label = 18;
+      break;
+    } else {
+      var $i3_099 = $56;
+      var $br2_0100 = $55;
+      var $bl1_0101 = $54;
+      label = 8;
+      break;
+    }
+   case 9:
+    var $58 = ($nsamples | 0) > 0;
+    if ($58) {
+      label = 10;
+      break;
+    } else {
+      label = 18;
+      break;
+    }
+   case 10:
+    var $59 = $r;
+    var $60 = $l;
+    var $i10_0104 = 0;
+    var $br9_0105 = $59;
+    var $bl8_0106 = $60;
+    label = 11;
+    break;
+   case 11:
+    var $bl8_0106;
+    var $br9_0105;
+    var $i10_0104;
+    var $62 = HEAP32[$bl8_0106 >> 2];
+    var $63 = $62 | 0;
+    var $64 = HEAP32[$br9_0105 >> 2];
+    var $65 = $64 | 0;
+    var $66 = $7 * $63;
+    var $67 = $10 * $65;
+    var $68 = $66 + $67;
+    var $69 = $13 * $63;
+    var $70 = $16 * $65;
+    var $71 = $69 + $70;
+    var $72 = $2 + ($i10_0104 << 2) | 0;
+    HEAPF32[$72 >> 2] = $68;
+    var $73 = $4 + ($i10_0104 << 2) | 0;
+    HEAPF32[$73 >> 2] = $71;
+    var $74 = $bl8_0106 + ($jump << 2) | 0;
+    var $75 = $br9_0105 + ($jump << 2) | 0;
+    var $76 = $i10_0104 + 1 | 0;
+    var $exitcond119 = ($76 | 0) == ($nsamples | 0);
+    if ($exitcond119) {
+      label = 18;
+      break;
+    } else {
+      var $i10_0104 = $76;
+      var $br9_0105 = $75;
+      var $bl8_0106 = $74;
+      label = 11;
+      break;
+    }
+   case 12:
+    var $78 = ($nsamples | 0) > 0;
+    if ($78) {
+      label = 13;
+      break;
+    } else {
+      label = 18;
+      break;
+    }
+   case 13:
+    var $79 = $r;
+    var $80 = $l;
+    var $bl15_0109 = $80;
+    var $br16_0110 = $79;
+    var $i17_0111 = 0;
+    label = 14;
+    break;
+   case 14:
+    var $i17_0111;
+    var $br16_0110;
+    var $bl15_0109;
+    var $82 = HEAPF32[$bl15_0109 >> 2];
+    var $83 = HEAPF32[$br16_0110 >> 2];
+    var $84 = $7 * $82;
+    var $85 = $10 * $83;
+    var $86 = $84 + $85;
+    var $87 = $13 * $82;
+    var $88 = $16 * $83;
+    var $89 = $87 + $88;
+    var $90 = $2 + ($i17_0111 << 2) | 0;
+    HEAPF32[$90 >> 2] = $86;
+    var $91 = $4 + ($i17_0111 << 2) | 0;
+    HEAPF32[$91 >> 2] = $89;
+    var $92 = $bl15_0109 + ($jump << 2) | 0;
+    var $93 = $br16_0110 + ($jump << 2) | 0;
+    var $94 = $i17_0111 + 1 | 0;
+    var $exitcond120 = ($94 | 0) == ($nsamples | 0);
+    if ($exitcond120) {
+      label = 18;
+      break;
+    } else {
+      var $bl15_0109 = $92;
+      var $br16_0110 = $93;
+      var $i17_0111 = $94;
+      label = 14;
+      break;
+    }
+   case 15:
+    var $96 = ($nsamples | 0) > 0;
+    if ($96) {
+      label = 16;
+      break;
+    } else {
+      label = 18;
+      break;
+    }
+   case 16:
+    var $97 = $r;
+    var $98 = $l;
+    var $bl22_0114 = $98;
+    var $br23_0115 = $97;
+    var $i24_0116 = 0;
+    label = 17;
+    break;
+   case 17:
+    var $i24_0116;
+    var $br23_0115;
+    var $bl22_0114;
+    var $100 = (HEAP32[tempDoublePtr >> 2] = HEAP32[$bl22_0114 >> 2], HEAP32[tempDoublePtr + 4 >> 2] = HEAP32[$bl22_0114 + 4 >> 2], HEAPF64[tempDoublePtr >> 3]);
+    var $101 = $100;
+    var $102 = (HEAP32[tempDoublePtr >> 2] = HEAP32[$br23_0115 >> 2], HEAP32[tempDoublePtr + 4 >> 2] = HEAP32[$br23_0115 + 4 >> 2], HEAPF64[tempDoublePtr >> 3]);
+    var $103 = $102;
+    var $104 = $7 * $101;
+    var $105 = $10 * $103;
+    var $106 = $104 + $105;
+    var $107 = $13 * $101;
+    var $108 = $16 * $103;
+    var $109 = $107 + $108;
+    var $110 = $2 + ($i24_0116 << 2) | 0;
+    HEAPF32[$110 >> 2] = $106;
+    var $111 = $4 + ($i24_0116 << 2) | 0;
+    HEAPF32[$111 >> 2] = $109;
+    var $112 = $bl22_0114 + ($jump << 3) | 0;
+    var $113 = $br23_0115 + ($jump << 3) | 0;
+    var $114 = $i24_0116 + 1 | 0;
+    var $exitcond121 = ($114 | 0) == ($nsamples | 0);
+    if ($exitcond121) {
+      label = 18;
+      break;
+    } else {
+      var $bl22_0114 = $112;
+      var $br23_0115 = $113;
+      var $i24_0116 = $114;
+      label = 17;
+      break;
+    }
+   case 18:
+    return;
+  }
+}
+_lame_copy_inbuffer["X"] = 1;
+function _lame_bitrate_kbps($gfp, $bitrate_kbps) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $bitrate_kbps17 = $bitrate_kbps;
+    var $1 = _is_lame_global_flags_valid($gfp);
+    var $2 = ($1 | 0) == 0;
+    if ($2) {
+      label = 7;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 3:
+    var $4 = $gfp + 288 | 0;
+    var $5 = HEAP32[$4 >> 2];
+    var $6 = _is_lame_internal_flags_valid($5);
+    var $7 = ($6 | 0) == 0;
+    if ($7) {
+      label = 7;
+      break;
+    } else {
+      label = 4;
+      break;
+    }
+   case 4:
+    var $9 = $5 + 152 | 0;
+    var $10 = HEAP32[$9 >> 2];
+    var $11 = ($10 | 0) == 0;
+    if ($11) {
+      label = 6;
+      break;
+    } else {
+      label = 5;
+      break;
+    }
+   case 5:
+    for (var $$dest = $bitrate_kbps17 >> 2, $$stop = $$dest + 14; $$dest < $$stop; $$dest++) {
+      HEAP32[$$dest] = -1;
+    }
+    var $13 = $5 + 120 | 0;
+    var $14 = HEAP32[$13 >> 2];
+    HEAP32[$bitrate_kbps >> 2] = $14;
+    label = 7;
+    break;
+   case 6:
+    var $15 = $5 + 16 | 0;
+    var $16 = HEAP32[$15 >> 2];
+    var $17 = 5348688 + ($16 << 6) | 0;
+    var $18 = HEAP32[$17 >> 2];
+    HEAP32[$bitrate_kbps >> 2] = $18;
+    var $19 = HEAP32[$15 >> 2];
+    var $20 = 5348692 + ($19 << 6) | 0;
+    var $21 = HEAP32[$20 >> 2];
+    var $22 = $bitrate_kbps + 4 | 0;
+    HEAP32[$22 >> 2] = $21;
+    var $23 = HEAP32[$15 >> 2];
+    var $24 = 5348696 + ($23 << 6) | 0;
+    var $25 = HEAP32[$24 >> 2];
+    var $26 = $bitrate_kbps + 8 | 0;
+    HEAP32[$26 >> 2] = $25;
+    var $27 = HEAP32[$15 >> 2];
+    var $28 = 5348700 + ($27 << 6) | 0;
+    var $29 = HEAP32[$28 >> 2];
+    var $30 = $bitrate_kbps + 12 | 0;
+    HEAP32[$30 >> 2] = $29;
+    var $31 = HEAP32[$15 >> 2];
+    var $32 = 5348704 + ($31 << 6) | 0;
+    var $33 = HEAP32[$32 >> 2];
+    var $34 = $bitrate_kbps + 16 | 0;
+    HEAP32[$34 >> 2] = $33;
+    var $35 = HEAP32[$15 >> 2];
+    var $36 = 5348708 + ($35 << 6) | 0;
+    var $37 = HEAP32[$36 >> 2];
+    var $38 = $bitrate_kbps + 20 | 0;
+    HEAP32[$38 >> 2] = $37;
+    var $39 = HEAP32[$15 >> 2];
+    var $40 = 5348712 + ($39 << 6) | 0;
+    var $41 = HEAP32[$40 >> 2];
+    var $42 = $bitrate_kbps + 24 | 0;
+    HEAP32[$42 >> 2] = $41;
+    var $43 = HEAP32[$15 >> 2];
+    var $44 = 5348716 + ($43 << 6) | 0;
+    var $45 = HEAP32[$44 >> 2];
+    var $46 = $bitrate_kbps + 28 | 0;
+    HEAP32[$46 >> 2] = $45;
+    var $47 = HEAP32[$15 >> 2];
+    var $48 = 5348720 + ($47 << 6) | 0;
+    var $49 = HEAP32[$48 >> 2];
+    var $50 = $bitrate_kbps + 32 | 0;
+    HEAP32[$50 >> 2] = $49;
+    var $51 = HEAP32[$15 >> 2];
+    var $52 = 5348724 + ($51 << 6) | 0;
+    var $53 = HEAP32[$52 >> 2];
+    var $54 = $bitrate_kbps + 36 | 0;
+    HEAP32[$54 >> 2] = $53;
+    var $55 = HEAP32[$15 >> 2];
+    var $56 = 5348728 + ($55 << 6) | 0;
+    var $57 = HEAP32[$56 >> 2];
+    var $58 = $bitrate_kbps + 40 | 0;
+    HEAP32[$58 >> 2] = $57;
+    var $59 = HEAP32[$15 >> 2];
+    var $60 = 5348732 + ($59 << 6) | 0;
+    var $61 = HEAP32[$60 >> 2];
+    var $62 = $bitrate_kbps + 44 | 0;
+    HEAP32[$62 >> 2] = $61;
+    var $63 = HEAP32[$15 >> 2];
+    var $64 = 5348736 + ($63 << 6) | 0;
+    var $65 = HEAP32[$64 >> 2];
+    var $66 = $bitrate_kbps + 48 | 0;
+    HEAP32[$66 >> 2] = $65;
+    var $67 = HEAP32[$15 >> 2];
+    var $68 = 5348740 + ($67 << 6) | 0;
+    var $69 = HEAP32[$68 >> 2];
+    var $70 = $bitrate_kbps + 52 | 0;
+    HEAP32[$70 >> 2] = $69;
+    label = 7;
+    break;
+   case 7:
+    return;
+  }
+}
+_lame_bitrate_kbps["X"] = 1;
+function _lame_bitrate_hist($gfp, $bitrate_count) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $bitrate_count17 = $bitrate_count;
+    var $1 = _is_lame_global_flags_valid($gfp);
+    var $2 = ($1 | 0) == 0;
+    if ($2) {
+      label = 7;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 3:
+    var $4 = $gfp + 288 | 0;
+    var $5 = HEAP32[$4 >> 2];
+    var $6 = _is_lame_internal_flags_valid($5);
+    var $7 = ($6 | 0) == 0;
+    if ($7) {
+      label = 7;
+      break;
+    } else {
+      label = 4;
+      break;
+    }
+   case 4:
+    var $9 = $5 + 152 | 0;
+    var $10 = HEAP32[$9 >> 2];
+    var $11 = ($10 | 0) == 0;
+    if ($11) {
+      label = 6;
+      break;
+    } else {
+      label = 5;
+      break;
+    }
+   case 5:
+    for (var $$dest = $bitrate_count17 >> 2, $$stop = $$dest + 14; $$dest < $$stop; $$dest++) {
+      HEAP32[$$dest] = 0;
+    }
+    var $13 = $5 + 84052 | 0;
+    var $14 = HEAP32[$13 >> 2];
+    HEAP32[$bitrate_count >> 2] = $14;
+    label = 7;
+    break;
+   case 6:
+    var $15 = $5 + 84072 | 0;
+    var $16 = HEAP32[$15 >> 2];
+    HEAP32[$bitrate_count >> 2] = $16;
+    var $17 = $5 + 84092 | 0;
+    var $18 = HEAP32[$17 >> 2];
+    var $19 = $bitrate_count + 4 | 0;
+    HEAP32[$19 >> 2] = $18;
+    var $20 = $5 + 84112 | 0;
+    var $21 = HEAP32[$20 >> 2];
+    var $22 = $bitrate_count + 8 | 0;
+    HEAP32[$22 >> 2] = $21;
+    var $23 = $5 + 84132 | 0;
+    var $24 = HEAP32[$23 >> 2];
+    var $25 = $bitrate_count + 12 | 0;
+    HEAP32[$25 >> 2] = $24;
+    var $26 = $5 + 84152 | 0;
+    var $27 = HEAP32[$26 >> 2];
+    var $28 = $bitrate_count + 16 | 0;
+    HEAP32[$28 >> 2] = $27;
+    var $29 = $5 + 84172 | 0;
+    var $30 = HEAP32[$29 >> 2];
+    var $31 = $bitrate_count + 20 | 0;
+    HEAP32[$31 >> 2] = $30;
+    var $32 = $5 + 84192 | 0;
+    var $33 = HEAP32[$32 >> 2];
+    var $34 = $bitrate_count + 24 | 0;
+    HEAP32[$34 >> 2] = $33;
+    var $35 = $5 + 84212 | 0;
+    var $36 = HEAP32[$35 >> 2];
+    var $37 = $bitrate_count + 28 | 0;
+    HEAP32[$37 >> 2] = $36;
+    var $38 = $5 + 84232 | 0;
+    var $39 = HEAP32[$38 >> 2];
+    var $40 = $bitrate_count + 32 | 0;
+    HEAP32[$40 >> 2] = $39;
+    var $41 = $5 + 84252 | 0;
+    var $42 = HEAP32[$41 >> 2];
+    var $43 = $bitrate_count + 36 | 0;
+    HEAP32[$43 >> 2] = $42;
+    var $44 = $5 + 84272 | 0;
+    var $45 = HEAP32[$44 >> 2];
+    var $46 = $bitrate_count + 40 | 0;
+    HEAP32[$46 >> 2] = $45;
+    var $47 = $5 + 84292 | 0;
+    var $48 = HEAP32[$47 >> 2];
+    var $49 = $bitrate_count + 44 | 0;
+    HEAP32[$49 >> 2] = $48;
+    var $50 = $5 + 84312 | 0;
+    var $51 = HEAP32[$50 >> 2];
+    var $52 = $bitrate_count + 48 | 0;
+    HEAP32[$52 >> 2] = $51;
+    var $53 = $5 + 84332 | 0;
+    var $54 = HEAP32[$53 >> 2];
+    var $55 = $bitrate_count + 52 | 0;
+    HEAP32[$55 >> 2] = $54;
+    label = 7;
+    break;
+   case 7:
+    return;
+  }
+}
+_lame_bitrate_hist["X"] = 1;
+function _lame_stereo_mode_hist($gfp, $stmode_count) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = _is_lame_global_flags_valid($gfp);
+    var $2 = ($1 | 0) == 0;
+    if ($2) {
+      label = 5;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 3:
+    var $4 = $gfp + 288 | 0;
+    var $5 = HEAP32[$4 >> 2];
+    var $6 = _is_lame_internal_flags_valid($5);
+    var $7 = ($6 | 0) == 0;
+    if ($7) {
+      label = 5;
+      break;
+    } else {
+      label = 4;
+      break;
+    }
+   case 4:
+    var $8 = $5 + 84336 | 0;
+    var $9 = HEAP32[$8 >> 2];
+    HEAP32[$stmode_count >> 2] = $9;
+    var $10 = $5 + 84340 | 0;
+    var $11 = HEAP32[$10 >> 2];
+    var $12 = $stmode_count + 4 | 0;
+    HEAP32[$12 >> 2] = $11;
+    var $13 = $5 + 84344 | 0;
+    var $14 = HEAP32[$13 >> 2];
+    var $15 = $stmode_count + 8 | 0;
+    HEAP32[$15 >> 2] = $14;
+    var $16 = $5 + 84348 | 0;
+    var $17 = HEAP32[$16 >> 2];
+    var $18 = $stmode_count + 12 | 0;
+    HEAP32[$18 >> 2] = $17;
+    label = 5;
+    break;
+   case 5:
+    return;
+  }
+}
+function _lame_bitrate_stereo_mode_hist($gfp, $bitrate_stmode_count) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $bitrate_stmode_count41 = $bitrate_stmode_count;
+    var $1 = _is_lame_global_flags_valid($gfp);
+    var $2 = ($1 | 0) == 0;
+    if ($2) {
+      label = 7;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 3:
+    var $4 = $gfp + 288 | 0;
+    var $5 = HEAP32[$4 >> 2];
+    var $6 = _is_lame_internal_flags_valid($5);
+    var $7 = ($6 | 0) == 0;
+    if ($7) {
+      label = 7;
+      break;
+    } else {
+      label = 4;
+      break;
+    }
+   case 4:
+    var $9 = $5 + 152 | 0;
+    var $10 = HEAP32[$9 >> 2];
+    var $11 = ($10 | 0) == 0;
+    if ($11) {
+      var $j_127 = 0;
+      label = 6;
+      break;
+    } else {
+      label = 5;
+      break;
+    }
+   case 5:
+    for (var $$dest = $bitrate_stmode_count41 >> 2, $$stop = $$dest + 56; $$dest < $$stop; $$dest++) {
+      HEAP32[$$dest] = 0;
+    }
+    var $12 = $5 + 84036 | 0;
+    var $13 = HEAP32[$12 >> 2];
+    var $14 = $bitrate_stmode_count | 0;
+    HEAP32[$14 >> 2] = $13;
+    var $15 = $5 + 84040 | 0;
+    var $16 = HEAP32[$15 >> 2];
+    var $17 = $bitrate_stmode_count + 4 | 0;
+    HEAP32[$17 >> 2] = $16;
+    var $18 = $5 + 84044 | 0;
+    var $19 = HEAP32[$18 >> 2];
+    var $20 = $bitrate_stmode_count + 8 | 0;
+    HEAP32[$20 >> 2] = $19;
+    var $21 = $5 + 84048 | 0;
+    var $22 = HEAP32[$21 >> 2];
+    var $23 = $bitrate_stmode_count + 12 | 0;
+    HEAP32[$23 >> 2] = $22;
+    label = 7;
+    break;
+   case 6:
+    var $j_127;
+    var $24 = $j_127 + 1 | 0;
+    var $25 = $5 + 84036 + $24 * 20 | 0;
+    var $26 = HEAP32[$25 >> 2];
+    var $27 = $bitrate_stmode_count + ($j_127 << 4) | 0;
+    HEAP32[$27 >> 2] = $26;
+    var $28 = $5 + 84036 + $24 * 20 + 4 | 0;
+    var $29 = HEAP32[$28 >> 2];
+    var $30 = $bitrate_stmode_count + ($j_127 << 4) + 4 | 0;
+    HEAP32[$30 >> 2] = $29;
+    var $31 = $5 + 84036 + $24 * 20 + 8 | 0;
+    var $32 = HEAP32[$31 >> 2];
+    var $33 = $bitrate_stmode_count + ($j_127 << 4) + 8 | 0;
+    HEAP32[$33 >> 2] = $32;
+    var $34 = $5 + 84036 + $24 * 20 + 12 | 0;
+    var $35 = HEAP32[$34 >> 2];
+    var $36 = $bitrate_stmode_count + ($j_127 << 4) + 12 | 0;
+    HEAP32[$36 >> 2] = $35;
+    var $exitcond = ($24 | 0) == 14;
+    if ($exitcond) {
+      label = 7;
+      break;
+    } else {
+      var $j_127 = $24;
+      label = 6;
+      break;
+    }
+   case 7:
+    return;
+  }
+}
+_lame_bitrate_stereo_mode_hist["X"] = 1;
+function _lame_block_type_hist($gfp, $btype_count) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = _is_lame_global_flags_valid($gfp);
+    var $2 = ($1 | 0) == 0;
+    if ($2) {
+      label = 5;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 3:
+    var $4 = $gfp + 288 | 0;
+    var $5 = HEAP32[$4 >> 2];
+    var $6 = _is_lame_internal_flags_valid($5);
+    var $7 = ($6 | 0) == 0;
+    if ($7) {
+      label = 5;
+      break;
+    } else {
+      label = 4;
+      break;
+    }
+   case 4:
+    var $8 = $5 + 84716 | 0;
+    var $9 = HEAP32[$8 >> 2];
+    HEAP32[$btype_count >> 2] = $9;
+    var $10 = $5 + 84720 | 0;
+    var $11 = HEAP32[$10 >> 2];
+    var $12 = $btype_count + 4 | 0;
+    HEAP32[$12 >> 2] = $11;
+    var $13 = $5 + 84724 | 0;
+    var $14 = HEAP32[$13 >> 2];
+    var $15 = $btype_count + 8 | 0;
+    HEAP32[$15 >> 2] = $14;
+    var $16 = $5 + 84728 | 0;
+    var $17 = HEAP32[$16 >> 2];
+    var $18 = $btype_count + 12 | 0;
+    HEAP32[$18 >> 2] = $17;
+    var $19 = $5 + 84732 | 0;
+    var $20 = HEAP32[$19 >> 2];
+    var $21 = $btype_count + 16 | 0;
+    HEAP32[$21 >> 2] = $20;
+    var $22 = $5 + 84736 | 0;
+    var $23 = HEAP32[$22 >> 2];
+    var $24 = $btype_count + 20 | 0;
+    HEAP32[$24 >> 2] = $23;
+    label = 5;
+    break;
+   case 5:
+    return;
+  }
+}
+function _lame_bitrate_block_type_hist($gfp, $bitrate_btype_count) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $bitrate_btype_count41 = $bitrate_btype_count;
+    var $1 = _is_lame_global_flags_valid($gfp);
+    var $2 = ($1 | 0) == 0;
+    if ($2) {
+      label = 7;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 3:
+    var $4 = $gfp + 288 | 0;
+    var $5 = HEAP32[$4 >> 2];
+    var $6 = _is_lame_internal_flags_valid($5);
+    var $7 = ($6 | 0) == 0;
+    if ($7) {
+      label = 7;
+      break;
+    } else {
+      label = 4;
+      break;
+    }
+   case 4:
+    var $9 = $5 + 152 | 0;
+    var $10 = HEAP32[$9 >> 2];
+    var $11 = ($10 | 0) == 0;
+    if ($11) {
+      var $j_127 = 0;
+      label = 6;
+      break;
+    } else {
+      label = 5;
+      break;
+    }
+   case 5:
+    for (var $$dest = $bitrate_btype_count41 >> 2, $$stop = $$dest + 84; $$dest < $$stop; $$dest++) {
+      HEAP32[$$dest] = 0;
+    }
+    var $12 = $5 + 84356 | 0;
+    var $13 = HEAP32[$12 >> 2];
+    var $14 = $bitrate_btype_count | 0;
+    HEAP32[$14 >> 2] = $13;
+    var $15 = $5 + 84360 | 0;
+    var $16 = HEAP32[$15 >> 2];
+    var $17 = $bitrate_btype_count + 4 | 0;
+    HEAP32[$17 >> 2] = $16;
+    var $18 = $5 + 84364 | 0;
+    var $19 = HEAP32[$18 >> 2];
+    var $20 = $bitrate_btype_count + 8 | 0;
+    HEAP32[$20 >> 2] = $19;
+    var $21 = $5 + 84368 | 0;
+    var $22 = HEAP32[$21 >> 2];
+    var $23 = $bitrate_btype_count + 12 | 0;
+    HEAP32[$23 >> 2] = $22;
+    var $24 = $5 + 84372 | 0;
+    var $25 = HEAP32[$24 >> 2];
+    var $26 = $bitrate_btype_count + 16 | 0;
+    HEAP32[$26 >> 2] = $25;
+    var $27 = $5 + 84376 | 0;
+    var $28 = HEAP32[$27 >> 2];
+    var $29 = $bitrate_btype_count + 20 | 0;
+    HEAP32[$29 >> 2] = $28;
+    label = 7;
+    break;
+   case 6:
+    var $j_127;
+    var $30 = $j_127 + 1 | 0;
+    var $31 = $5 + 84356 + $30 * 24 | 0;
+    var $32 = HEAP32[$31 >> 2];
+    var $33 = $bitrate_btype_count + $j_127 * 24 | 0;
+    HEAP32[$33 >> 2] = $32;
+    var $34 = $5 + 84356 + $30 * 24 + 4 | 0;
+    var $35 = HEAP32[$34 >> 2];
+    var $36 = $bitrate_btype_count + $j_127 * 24 + 4 | 0;
+    HEAP32[$36 >> 2] = $35;
+    var $37 = $5 + 84356 + $30 * 24 + 8 | 0;
+    var $38 = HEAP32[$37 >> 2];
+    var $39 = $bitrate_btype_count + $j_127 * 24 + 8 | 0;
+    HEAP32[$39 >> 2] = $38;
+    var $40 = $5 + 84356 + $30 * 24 + 12 | 0;
+    var $41 = HEAP32[$40 >> 2];
+    var $42 = $bitrate_btype_count + $j_127 * 24 + 12 | 0;
+    HEAP32[$42 >> 2] = $41;
+    var $43 = $5 + 84356 + $30 * 24 + 16 | 0;
+    var $44 = HEAP32[$43 >> 2];
+    var $45 = $bitrate_btype_count + $j_127 * 24 + 16 | 0;
+    HEAP32[$45 >> 2] = $44;
+    var $46 = $5 + 84356 + $30 * 24 + 20 | 0;
+    var $47 = HEAP32[$46 >> 2];
+    var $48 = $bitrate_btype_count + $j_127 * 24 + 20 | 0;
+    HEAP32[$48 >> 2] = $47;
+    var $exitcond = ($30 | 0) == 14;
+    if ($exitcond) {
+      label = 7;
+      break;
+    } else {
+      var $j_127 = $30;
+      label = 6;
+      break;
+    }
+   case 7:
+    return;
+  }
+}
+_lame_bitrate_block_type_hist["X"] = 1;
+function _update_inbuffer_size($gfc, $nsamples) {
+  var label = 0;
+  var __stackBase__ = STACKTOP;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = $gfc + 52148 | 0;
+    var $2 = HEAP32[$1 >> 2];
+    var $3 = ($2 | 0) == 0;
+    if ($3) {
+      label = 6;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 3:
+    var $5 = $gfc + 52144 | 0;
+    var $6 = HEAP32[$5 >> 2];
+    var $7 = ($6 | 0) < ($nsamples | 0);
+    if ($7) {
+      label = 4;
+      break;
+    } else {
+      label = 9;
+      break;
+    }
+   case 4:
+    var $_pr = HEAP32[$1 >> 2];
+    var $9 = ($_pr | 0) == 0;
+    if ($9) {
+      label = 6;
+      break;
+    } else {
+      label = 5;
+      break;
+    }
+   case 5:
+    var $11 = $_pr;
+    _free($11);
+    label = 6;
+    break;
+   case 6:
+    var $12 = $gfc + 52152 | 0;
+    var $13 = HEAP32[$12 >> 2];
+    var $14 = ($13 | 0) == 0;
+    if ($14) {
+      label = 8;
+      break;
+    } else {
+      label = 7;
+      break;
+    }
+   case 7:
+    var $16 = $13;
+    _free($16);
+    label = 8;
+    break;
+   case 8:
+    var $18 = _calloc($nsamples, 4);
+    var $19 = $18;
+    HEAP32[$1 >> 2] = $19;
+    var $20 = _calloc($nsamples, 4);
+    var $21 = $20;
+    HEAP32[$12 >> 2] = $21;
+    var $22 = $gfc + 52144 | 0;
+    HEAP32[$22 >> 2] = $nsamples;
+    label = 9;
+    break;
+   case 9:
+    var $24 = HEAP32[$1 >> 2];
+    var $25 = ($24 | 0) == 0;
+    if ($25) {
+      label = 13;
+      break;
+    } else {
+      label = 10;
+      break;
+    }
+   case 10:
+    var $27 = $gfc + 52152 | 0;
+    var $28 = HEAP32[$27 >> 2];
+    var $29 = ($28 | 0) == 0;
+    if ($29) {
+      label = 11;
+      break;
+    } else {
+      var $_0 = 0;
+      label = 16;
+      break;
+    }
+   case 11:
+    var $_pr24 = HEAP32[$1 >> 2];
+    var $31 = ($_pr24 | 0) == 0;
+    if ($31) {
+      label = 13;
+      break;
+    } else {
+      label = 12;
+      break;
+    }
+   case 12:
+    var $33 = $_pr24;
+    _free($33);
+    label = 13;
+    break;
+   case 13:
+    var $34 = $gfc + 52152 | 0;
+    var $35 = HEAP32[$34 >> 2];
+    var $36 = ($35 | 0) == 0;
+    if ($36) {
+      label = 15;
+      break;
+    } else {
+      label = 14;
+      break;
+    }
+   case 14:
+    var $38 = $35;
+    _free($38);
+    label = 15;
+    break;
+   case 15:
+    HEAP32[$1 >> 2] = 0;
+    HEAP32[$34 >> 2] = 0;
+    var $40 = $gfc + 52144 | 0;
+    HEAP32[$40 >> 2] = 0;
+    _lame_errorf($gfc, 5382744, (tempInt = STACKTOP, STACKTOP = STACKTOP + 1 | 0, STACKTOP = STACKTOP + 3 >> 2 << 2, HEAP32[tempInt >> 2] = 0, tempInt));
+    var $_0 = -2;
+    label = 16;
+    break;
+   case 16:
+    var $_0;
+    STACKTOP = __stackBase__;
+    return $_0;
+  }
+}
+_update_inbuffer_size["X"] = 1;
+function _lame_encode_buffer_sample_t($gfc, $nsamples, $mp3buf, $mp3buf_size) {
+  var label = 0;
+  var __stackBase__ = STACKTOP;
+  STACKTOP = STACKTOP + 24 | 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $mfbuf = __stackBase__;
+    var $in_buffer_ptr = __stackBase__ + 8;
+    var $n_in = __stackBase__ + 16;
+    var $n_out = __stackBase__ + 20;
+    var $1 = $gfc + 16 | 0;
+    var $2 = $gfc + 76 | 0;
+    var $3 = HEAP32[$2 >> 2];
+    var $4 = $3 * 576 & -1;
+    var $5 = $gfc | 0;
+    var $6 = HEAP32[$5 >> 2];
+    var $7 = ($6 | 0) == -487877;
+    if ($7) {
+      label = 3;
+      break;
+    } else {
+      var $_0 = -3;
+      label = 22;
+      break;
+    }
+   case 3:
+    var $9 = ($nsamples | 0) == 0;
+    if ($9) {
+      var $_0 = 0;
+      label = 22;
+      break;
+    } else {
+      label = 4;
+      break;
+    }
+   case 4:
+    var $11 = _copy_buffer($gfc, $mp3buf, $mp3buf_size, 0);
+    var $12 = ($11 | 0) < 0;
+    if ($12) {
+      var $_0 = $11;
+      label = 22;
+      break;
+    } else {
+      label = 5;
+      break;
+    }
+   case 5:
+    var $14 = $mp3buf + $11 | 0;
+    var $15 = $gfc + 52148 | 0;
+    var $16 = HEAP32[$15 >> 2];
+    var $17 = $gfc + 52152 | 0;
+    var $18 = HEAP32[$17 >> 2];
+    var $19 = _calcNeeded($1);
+    var $20 = $gfc + 52156 | 0;
+    var $21 = $mfbuf | 0;
+    HEAP32[$21 >> 2] = $20;
+    var $22 = $gfc + 68092 | 0;
+    var $23 = $mfbuf + 4 | 0;
+    HEAP32[$23 >> 2] = $22;
+    var $24 = $in_buffer_ptr | 0;
+    var $25 = $in_buffer_ptr + 4 | 0;
+    var $26 = $gfc + 128 | 0;
+    var $27 = $gfc + 72 | 0;
+    var $28 = $gfc + 84032 | 0;
+    var $29 = $gfc + 84028 | 0;
+    var $30 = $gfc + 136 | 0;
+    var $31 = $gfc + 85672 | 0;
+    var $32 = $gfc + 84032 | 0;
+    var $33 = $gfc + 72 | 0;
+    var $34 = ($mp3buf_size | 0) == 0;
+    var $in_buffer_sroa_0_0_ph = $16;
+    var $in_buffer_sroa_1_0_ph = $18;
+    var $_055_ph = $nsamples;
+    var $_056_ph = $14;
+    var $mp3size_0_ph = $11;
+    label = 6;
+    break;
+   case 6:
+    var $mp3size_0_ph;
+    var $_056_ph;
+    var $_055_ph;
+    var $in_buffer_sroa_1_0_ph;
+    var $in_buffer_sroa_0_0_ph;
+    var $in_buffer_sroa_0_0 = $in_buffer_sroa_0_0_ph;
+    var $in_buffer_sroa_1_0 = $in_buffer_sroa_1_0_ph;
+    var $_055 = $_055_ph;
+    label = 7;
+    break;
+   case 7:
+    var $_055;
+    var $in_buffer_sroa_1_0;
+    var $in_buffer_sroa_0_0;
+    var $36 = ($_055 | 0) > 0;
+    if ($36) {
+      label = 8;
+      break;
+    } else {
+      var $_0 = $mp3size_0_ph;
+      label = 22;
+      break;
+    }
+   case 8:
+    HEAP32[$n_in >> 2] = 0;
+    HEAP32[$n_out >> 2] = 0;
+    HEAP32[$24 >> 2] = $in_buffer_sroa_0_0;
+    HEAP32[$25 >> 2] = $in_buffer_sroa_1_0;
+    _fill_buffer($gfc, $21, $24, $_055, $n_in, $n_out);
+    var $38 = HEAP32[$26 >> 2];
+    var $39 = ($38 | 0) == 0;
+    if ($39) {
+      label = 11;
+      break;
+    } else {
+      label = 9;
+      break;
+    }
+   case 9:
+    var $41 = HEAP32[$30 >> 2];
+    var $42 = ($41 | 0) == 0;
+    if ($42) {
+      label = 10;
+      break;
+    } else {
+      label = 11;
+      break;
+    }
+   case 10:
+    var $44 = HEAP32[$31 >> 2];
+    var $45 = HEAP32[$32 >> 2];
+    var $46 = HEAP32[$21 >> 2];
+    var $47 = $46 + ($45 << 2) | 0;
+    var $48 = HEAP32[$23 >> 2];
+    var $49 = $48 + ($45 << 2) | 0;
+    var $50 = HEAP32[$n_out >> 2];
+    var $51 = HEAP32[$33 >> 2];
+    var $52 = _AnalyzeSamples($44, $47, $49, $50, $51);
+    var $53 = ($52 | 0) == 0;
+    if ($53) {
+      var $_0 = -6;
+      label = 22;
+      break;
+    } else {
+      label = 11;
+      break;
+    }
+   case 11:
+    var $55 = HEAP32[$n_in >> 2];
+    var $56 = $_055 - $55 | 0;
+    var $57 = $in_buffer_sroa_0_0 + ($55 << 2) | 0;
+    var $58 = HEAP32[$27 >> 2];
+    var $59 = ($58 | 0) == 2;
+    if ($59) {
+      label = 12;
+      break;
+    } else {
+      var $in_buffer_sroa_1_1 = $in_buffer_sroa_1_0;
+      label = 13;
+      break;
+    }
+   case 12:
+    var $61 = $in_buffer_sroa_1_0 + ($55 << 2) | 0;
+    var $in_buffer_sroa_1_1 = $61;
+    label = 13;
+    break;
+   case 13:
+    var $in_buffer_sroa_1_1;
+    var $63 = HEAP32[$n_out >> 2];
+    var $64 = HEAP32[$28 >> 2];
+    var $65 = $64 + $63 | 0;
+    HEAP32[$28 >> 2] = $65;
+    var $66 = HEAP32[$29 >> 2];
+    var $67 = ($66 | 0) < 1;
+    if ($67) {
+      label = 14;
+      break;
+    } else {
+      label = 15;
+      break;
+    }
+   case 14:
+    HEAP32[$29 >> 2] = 1728;
+    label = 15;
+    break;
+   case 15:
+    var $70 = HEAP32[$n_out >> 2];
+    var $71 = HEAP32[$29 >> 2];
+    var $72 = $71 + $70 | 0;
+    HEAP32[$29 >> 2] = $72;
+    var $73 = HEAP32[$28 >> 2];
+    var $74 = ($73 | 0) < ($19 | 0);
+    if ($74) {
+      var $in_buffer_sroa_0_0 = $57;
+      var $in_buffer_sroa_1_0 = $in_buffer_sroa_1_1;
+      var $_055 = $56;
+      label = 7;
+      break;
+    } else {
+      label = 16;
+      break;
+    }
+   case 16:
+    var $76 = $mp3buf_size - $mp3size_0_ph | 0;
+    var $_ = $34 ? 0 : $76;
+    var $77 = HEAP32[$21 >> 2];
+    var $78 = HEAP32[$23 >> 2];
+    var $79 = _lame_encode_mp3_frame($gfc, $77, $78, $_056_ph, $_);
+    var $80 = ($79 | 0) < 0;
+    if ($80) {
+      var $_0 = $79;
+      label = 22;
+      break;
+    } else {
+      label = 17;
+      break;
+    }
+   case 17:
+    var $82 = $_056_ph + $79 | 0;
+    var $83 = $79 + $mp3size_0_ph | 0;
+    var $84 = HEAP32[$28 >> 2];
+    var $85 = $84 - $4 | 0;
+    HEAP32[$28 >> 2] = $85;
+    var $86 = HEAP32[$29 >> 2];
+    var $87 = $86 - $4 | 0;
+    HEAP32[$29 >> 2] = $87;
+    var $88 = HEAP32[$27 >> 2];
+    var $89 = ($88 | 0) > 0;
+    if ($89) {
+      var $ch_058 = 0;
+      label = 18;
+      break;
+    } else {
+      var $in_buffer_sroa_0_0_ph = $57;
+      var $in_buffer_sroa_1_0_ph = $in_buffer_sroa_1_1;
+      var $_055_ph = $56;
+      var $_056_ph = $82;
+      var $mp3size_0_ph = $83;
+      label = 6;
+      break;
+    }
+   case 18:
+    var $ch_058;
+    var $90 = HEAP32[$28 >> 2];
+    var $91 = ($90 | 0) > 0;
+    if ($91) {
+      label = 19;
+      break;
+    } else {
+      label = 21;
+      break;
+    }
+   case 19:
+    var $92 = $mfbuf + ($ch_058 << 2) | 0;
+    var $93 = HEAP32[$92 >> 2];
+    var $i_057 = 0;
+    label = 20;
+    break;
+   case 20:
+    var $i_057;
+    var $95 = $i_057 + $4 | 0;
+    var $96 = $93 + ($95 << 2) | 0;
+    var $97 = HEAPF32[$96 >> 2];
+    var $98 = $93 + ($i_057 << 2) | 0;
+    HEAPF32[$98 >> 2] = $97;
+    var $99 = $i_057 + 1 | 0;
+    var $100 = HEAP32[$28 >> 2];
+    var $101 = ($99 | 0) < ($100 | 0);
+    if ($101) {
+      var $i_057 = $99;
+      label = 20;
+      break;
+    } else {
+      label = 21;
+      break;
+    }
+   case 21:
+    var $102 = $ch_058 + 1 | 0;
+    var $103 = HEAP32[$27 >> 2];
+    var $104 = ($102 | 0) < ($103 | 0);
+    if ($104) {
+      var $ch_058 = $102;
+      label = 18;
+      break;
+    } else {
+      var $in_buffer_sroa_0_0_ph = $57;
+      var $in_buffer_sroa_1_0_ph = $in_buffer_sroa_1_1;
+      var $_055_ph = $56;
+      var $_056_ph = $82;
+      var $mp3size_0_ph = $83;
+      label = 6;
+      break;
+    }
+   case 22:
+    var $_0;
+    STACKTOP = __stackBase__;
+    return $_0;
+  }
+}
+_lame_encode_buffer_sample_t["X"] = 1;
+function _filter_coef($x) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = $x;
+    var $2 = $x > 1;
+    if ($2) {
+      var $_0 = 0;
+      label = 5;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 3:
+    var $4 = $x > 0;
+    if ($4) {
+      label = 4;
+      break;
+    } else {
+      var $_0 = 1;
+      label = 5;
+      break;
+    }
+   case 4:
+    var $6 = $1 * 1.5707963267948966;
+    var $7 = Math.cos($6);
+    var $8 = $7;
+    var $_0 = $8;
+    label = 5;
+    break;
+   case 5:
+    var $_0;
+    return $_0;
+  }
+}
+function _lame_decode_exit() {
+  _ExitMP3(5292272);
+  return 0;
+}
+function _lame_decode_init() {
+  _InitMP3(5292272);
+  return 0;
+}
+function _lame_decode1_headersB($buffer, $len, $pcm_l, $pcm_r, $mp3data, $enc_delay, $enc_padding) {
+  return _decode1_headersB_clipchoice(5292272, $buffer, $len, $pcm_l, $pcm_r, $mp3data, $enc_delay, $enc_padding, 5317972, 8192, 2, 46);
+}
+function _hip_set_pinfo($hip, $pinfo) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = ($hip | 0) == 0;
+    if ($1) {
+      label = 4;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 3:
+    var $3 = $hip + 21984 | 0;
+    HEAP32[$3 >> 2] = $pinfo;
+    label = 4;
+    break;
+   case 4:
+    return;
+  }
+}
+function _hip_set_errorf($hip, $func) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = ($hip | 0) == 0;
+    if ($1) {
+      label = 4;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 3:
+    var $3 = $hip + 21996 | 0;
+    HEAP32[$3 >> 2] = $func;
+    label = 4;
+    break;
+   case 4:
+    return;
+  }
+}
+function _hip_set_debugf($hip, $func) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = ($hip | 0) == 0;
+    if ($1) {
+      label = 4;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 3:
+    var $3 = $hip + 21992 | 0;
+    HEAP32[$3 >> 2] = $func;
+    label = 4;
+    break;
+   case 4:
+    return;
+  }
+}
+function _hip_set_msgf($hip, $func) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = ($hip | 0) == 0;
+    if ($1) {
+      label = 4;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 3:
+    var $3 = $hip + 21988 | 0;
+    HEAP32[$3 >> 2] = $func;
+    label = 4;
+    break;
+   case 4:
+    return;
+  }
+}
+function _decode1_headersB_clipchoice($pmp, $buffer, $len, $pcm_l_raw, $pcm_r_raw, $mp3data, $enc_delay, $enc_padding, $p, $psize, $decoded_sample_size, $decodeMP3_ptr) {
+  var label = 0;
+  var __stackBase__ = STACKTOP;
+  STACKTOP = STACKTOP + 4 | 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $processed_bytes = __stackBase__;
+    var $1 = $mp3data | 0;
+    HEAP32[$1 >> 2] = 0;
+    var $2 = FUNCTION_TABLE[$decodeMP3_ptr]($pmp, $buffer, $len, $p, $psize, $processed_bytes);
+    var $3 = $pmp + 24 | 0;
+    var $4 = HEAP32[$3 >> 2];
+    var $5 = ($4 | 0) == 0;
+    if ($5) {
+      label = 3;
+      break;
+    } else {
+      label = 5;
+      break;
+    }
+   case 3:
+    var $7 = $pmp + 60 | 0;
+    var $8 = HEAP32[$7 >> 2];
+    var $9 = ($8 | 0) > 0;
+    if ($9) {
+      label = 5;
+      break;
+    } else {
+      label = 4;
+      break;
+    }
+   case 4:
+    var $11 = $pmp + 48 | 0;
+    var $12 = HEAP32[$11 >> 2];
+    var $13 = ($12 | 0) > 0;
+    if ($13) {
+      label = 5;
+      break;
+    } else {
+      label = 12;
+      break;
+    }
+   case 5:
+    HEAP32[$1 >> 2] = 1;
+    var $15 = $pmp + 68 | 0;
+    var $16 = HEAP32[$15 >> 2];
+    var $17 = $mp3data + 4 | 0;
+    HEAP32[$17 >> 2] = $16;
+    var $18 = $pmp + 100 | 0;
+    var $19 = HEAP32[$18 >> 2];
+    var $20 = _freqs + ($19 << 2) | 0;
+    var $21 = HEAP32[$20 >> 2];
+    var $22 = $mp3data + 8 | 0;
+    HEAP32[$22 >> 2] = $21;
+    var $23 = $pmp + 112 | 0;
+    var $24 = HEAP32[$23 >> 2];
+    var $25 = $mp3data + 16 | 0;
+    HEAP32[$25 >> 2] = $24;
+    var $26 = $pmp + 116 | 0;
+    var $27 = HEAP32[$26 >> 2];
+    var $28 = $mp3data + 20 | 0;
+    HEAP32[$28 >> 2] = $27;
+    var $29 = $pmp + 88 | 0;
+    var $30 = HEAP32[$29 >> 2];
+    var $31 = $pmp + 76 | 0;
+    var $32 = HEAP32[$31 >> 2];
+    var $33 = 5347532 + ($32 << 4) + ($30 << 2) | 0;
+    var $34 = HEAP32[$33 >> 2];
+    var $35 = $mp3data + 24 | 0;
+    HEAP32[$35 >> 2] = $34;
+    var $36 = $pmp + 60 | 0;
+    var $37 = HEAP32[$36 >> 2];
+    var $38 = ($37 | 0) > 0;
+    if ($38) {
+      label = 6;
+      break;
+    } else {
+      label = 7;
+      break;
+    }
+   case 6:
+    var $40 = $37 << 3;
+    var $41 = $40 + 32 | 0;
+    var $42 = HEAP32[$22 >> 2];
+    var $43 = $42 * $41 & -1;
+    var $44 = $43 | 0;
+    var $45 = $34 | 0;
+    var $46 = $45 * 1e3;
+    var $47 = $44 / $46;
+    var $48 = $47 + .5;
+    var $49 = $48 & -1;
+    var $50 = $mp3data + 12 | 0;
+    HEAP32[$50 >> 2] = $49;
+    label = 10;
+    break;
+   case 7:
+    var $52 = $pmp + 48 | 0;
+    var $53 = HEAP32[$52 >> 2];
+    var $54 = ($53 | 0) > 0;
+    if ($54) {
+      label = 8;
+      break;
+    } else {
+      label = 9;
+      break;
+    }
+   case 8:
+    var $56 = $53 << 3;
+    var $57 = $56 + 32 | 0;
+    var $58 = HEAP32[$22 >> 2];
+    var $59 = $58 * $57 & -1;
+    var $60 = $59 | 0;
+    var $61 = $34 | 0;
+    var $62 = $61 * 1e3;
+    var $63 = $60 / $62;
+    var $64 = $63 + .5;
+    var $65 = $64 & -1;
+    var $66 = $mp3data + 12 | 0;
+    HEAP32[$66 >> 2] = $65;
+    label = 10;
+    break;
+   case 9:
+    var $68 = $pmp + 96 | 0;
+    var $69 = HEAP32[$68 >> 2];
+    var $70 = HEAP32[$29 >> 2];
+    var $71 = $70 - 1 | 0;
+    var $72 = HEAP32[$31 >> 2];
+    var $73 = _tabsel_123 + $72 * 192 + ($71 << 6) + ($69 << 2) | 0;
+    var $74 = HEAP32[$73 >> 2];
+    var $75 = $mp3data + 12 | 0;
+    HEAP32[$75 >> 2] = $74;
+    label = 10;
+    break;
+   case 10:
+    var $77 = $pmp + 12 | 0;
+    var $78 = HEAP32[$77 >> 2];
+    var $79 = ($78 | 0) > 0;
+    if ($79) {
+      label = 11;
+      break;
+    } else {
+      label = 12;
+      break;
+    }
+   case 11:
+    var $81 = $mp3data + 32 | 0;
+    HEAP32[$81 >> 2] = $78;
+    var $82 = HEAP32[$35 >> 2];
+    var $83 = HEAP32[$77 >> 2];
+    var $84 = $83 * $82 & -1;
+    var $85 = $mp3data + 28 | 0;
+    HEAP32[$85 >> 2] = $84;
+    var $86 = $pmp + 16 | 0;
+    var $87 = HEAP32[$86 >> 2];
+    HEAP32[$enc_delay >> 2] = $87;
+    var $88 = $pmp + 20 | 0;
+    var $89 = HEAP32[$88 >> 2];
+    HEAP32[$enc_padding >> 2] = $89;
+    label = 12;
+    break;
+   case 12:
+    if (($2 | 0) == 0) {
+      label = 13;
+      break;
+    } else if (($2 | 0) == -1) {
+      label = 28;
+      break;
+    } else if (($2 | 0) == 1) {
+      var $processed_samples_0 = 0;
+      label = 30;
+      break;
+    } else {
+      label = 29;
+      break;
+    }
+   case 13:
+    var $92 = $pmp + 68 | 0;
+    var $93 = HEAP32[$92 >> 2];
+    if (($93 | 0) == 1) {
+      label = 14;
+      break;
+    } else if (($93 | 0) == 2) {
+      label = 21;
+      break;
+    } else {
+      var $processed_samples_0 = -1;
+      label = 30;
+      break;
+    }
+   case 14:
+    var $95 = HEAP32[$processed_bytes >> 2];
+    var $96 = ($95 | 0) / ($decoded_sample_size | 0) & -1;
+    var $97 = ($decoded_sample_size | 0) == 2;
+    var $98 = ($96 | 0) > 0;
+    if ($97) {
+      label = 15;
+      break;
+    } else {
+      label = 18;
+      break;
+    }
+   case 15:
+    if ($98) {
+      label = 16;
+      break;
+    } else {
+      var $processed_samples_0 = $96;
+      label = 30;
+      break;
+    }
+   case 16:
+    var $100 = $p;
+    var $101 = $pcm_l_raw;
+    var $i_070 = 0;
+    var $pcm_l_071 = $101;
+    var $p_samples_072 = $100;
+    label = 17;
+    break;
+   case 17:
+    var $p_samples_072;
+    var $pcm_l_071;
+    var $i_070;
+    var $103 = $p_samples_072 + 2 | 0;
+    var $104 = HEAP16[$p_samples_072 >> 1];
+    var $105 = $pcm_l_071 + 2 | 0;
+    HEAP16[$pcm_l_071 >> 1] = $104;
+    var $106 = $i_070 + 1 | 0;
+    var $exitcond = ($106 | 0) == ($96 | 0);
+    if ($exitcond) {
+      var $processed_samples_0 = $96;
+      label = 30;
+      break;
+    } else {
+      var $i_070 = $106;
+      var $pcm_l_071 = $105;
+      var $p_samples_072 = $103;
+      label = 17;
+      break;
+    }
+   case 18:
+    if ($98) {
+      label = 19;
+      break;
+    } else {
+      var $processed_samples_0 = $96;
+      label = 30;
+      break;
+    }
+   case 19:
+    var $108 = $p;
+    var $109 = $pcm_l_raw;
+    var $i_174 = 0;
+    var $pcm_l1_075 = $109;
+    var $p_samples2_076 = $108;
+    label = 20;
+    break;
+   case 20:
+    var $p_samples2_076;
+    var $pcm_l1_075;
+    var $i_174;
+    var $111 = $p_samples2_076 + 4 | 0;
+    var $112 = HEAPF32[$p_samples2_076 >> 2];
+    var $113 = $pcm_l1_075 + 4 | 0;
+    HEAPF32[$pcm_l1_075 >> 2] = $112;
+    var $114 = $i_174 + 1 | 0;
+    var $exitcond90 = ($114 | 0) == ($96 | 0);
+    if ($exitcond90) {
+      var $processed_samples_0 = $96;
+      label = 30;
+      break;
+    } else {
+      var $i_174 = $114;
+      var $pcm_l1_075 = $113;
+      var $p_samples2_076 = $111;
+      label = 20;
+      break;
+    }
+   case 21:
+    var $116 = HEAP32[$processed_bytes >> 2];
+    var $117 = ($116 | 0) / ($decoded_sample_size | 0) & -1;
+    var $118 = $117 >> 1;
+    var $119 = ($decoded_sample_size | 0) == 2;
+    var $120 = ($118 | 0) > 0;
+    if ($119) {
+      label = 22;
+      break;
+    } else {
+      label = 25;
+      break;
+    }
+   case 22:
+    if ($120) {
+      label = 23;
+      break;
+    } else {
+      var $processed_samples_0 = $118;
+      label = 30;
+      break;
+    }
+   case 23:
+    var $122 = $p;
+    var $123 = $pcm_r_raw;
+    var $124 = $pcm_l_raw;
+    var $i_279 = 0;
+    var $pcm_l3_080 = $124;
+    var $pcm_r_081 = $123;
+    var $p_samples4_082 = $122;
+    label = 24;
+    break;
+   case 24:
+    var $p_samples4_082;
+    var $pcm_r_081;
+    var $pcm_l3_080;
+    var $i_279;
+    var $126 = $p_samples4_082 + 2 | 0;
+    var $127 = HEAP16[$p_samples4_082 >> 1];
+    var $128 = $pcm_l3_080 + 2 | 0;
+    HEAP16[$pcm_l3_080 >> 1] = $127;
+    var $129 = $p_samples4_082 + 4 | 0;
+    var $130 = HEAP16[$126 >> 1];
+    var $131 = $pcm_r_081 + 2 | 0;
+    HEAP16[$pcm_r_081 >> 1] = $130;
+    var $132 = $i_279 + 1 | 0;
+    var $exitcond91 = ($132 | 0) == ($118 | 0);
+    if ($exitcond91) {
+      var $processed_samples_0 = $118;
+      label = 30;
+      break;
+    } else {
+      var $i_279 = $132;
+      var $pcm_l3_080 = $128;
+      var $pcm_r_081 = $131;
+      var $p_samples4_082 = $129;
+      label = 24;
+      break;
+    }
+   case 25:
+    if ($120) {
+      label = 26;
+      break;
+    } else {
+      var $processed_samples_0 = $118;
+      label = 30;
+      break;
+    }
+   case 26:
+    var $134 = $p;
+    var $135 = $pcm_r_raw;
+    var $136 = $pcm_l_raw;
+    var $i_385 = 0;
+    var $pcm_l5_086 = $136;
+    var $pcm_r6_087 = $135;
+    var $p_samples7_088 = $134;
+    label = 27;
+    break;
+   case 27:
+    var $p_samples7_088;
+    var $pcm_r6_087;
+    var $pcm_l5_086;
+    var $i_385;
+    var $138 = $p_samples7_088 + 4 | 0;
+    var $139 = HEAPF32[$p_samples7_088 >> 2];
+    var $140 = $pcm_l5_086 + 4 | 0;
+    HEAPF32[$pcm_l5_086 >> 2] = $139;
+    var $141 = $p_samples7_088 + 8 | 0;
+    var $142 = HEAPF32[$138 >> 2];
+    var $143 = $pcm_r6_087 + 4 | 0;
+    HEAPF32[$pcm_r6_087 >> 2] = $142;
+    var $144 = $i_385 + 1 | 0;
+    var $exitcond92 = ($144 | 0) == ($118 | 0);
+    if ($exitcond92) {
+      var $processed_samples_0 = $118;
+      label = 30;
+      break;
+    } else {
+      var $i_385 = $144;
+      var $pcm_l5_086 = $140;
+      var $pcm_r6_087 = $143;
+      var $p_samples7_088 = $141;
+      label = 27;
+      break;
+    }
+   case 28:
+    var $processed_samples_0 = -1;
+    label = 30;
+    break;
+   case 29:
+    var $processed_samples_0 = -1;
+    label = 30;
+    break;
+   case 30:
+    var $processed_samples_0;
+    STACKTOP = __stackBase__;
+    return $processed_samples_0;
+  }
+}
+_decode1_headersB_clipchoice["X"] = 1;
+function _lame_decode1_headers($buffer, $len, $pcm_l, $pcm_r, $mp3data) {
+  var __stackBase__ = STACKTOP;
+  STACKTOP = STACKTOP + 8 | 0;
+  var $1 = _lame_decode1_headersB($buffer, $len, $pcm_l, $pcm_r, $mp3data, __stackBase__, __stackBase__ + 4);
+  STACKTOP = __stackBase__;
+  return $1;
+}
+function _lame_decode1($buffer, $len, $pcm_l, $pcm_r) {
+  var __stackBase__ = STACKTOP;
+  STACKTOP = STACKTOP + 40 | 0;
+  var $1 = _lame_decode1_headers($buffer, $len, $pcm_l, $pcm_r, __stackBase__);
+  STACKTOP = __stackBase__;
+  return $1;
+}
+function _lame_decode_headers($buffer, $len, $pcm_l, $pcm_r, $mp3data) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $totsize_0 = 0;
+    var $_010 = $len;
+    label = 3;
+    break;
+   case 3:
+    var $_010;
+    var $totsize_0;
+    var $2 = $pcm_l + ($totsize_0 << 1) | 0;
+    var $3 = $pcm_r + ($totsize_0 << 1) | 0;
+    var $4 = _lame_decode1_headers($buffer, $_010, $2, $3, $mp3data);
+    if (($4 | 0) == -1) {
+      label = 5;
+      break;
+    } else if (($4 | 0) == 0) {
+      var $_0 = $totsize_0;
+      label = 6;
+      break;
+    } else {
+      label = 4;
+      break;
+    }
+   case 4:
+    var $6 = $4 + $totsize_0 | 0;
+    var $totsize_0 = $6;
+    var $_010 = 0;
+    label = 3;
+    break;
+   case 5:
+    var $_0 = -1;
+    label = 6;
+    break;
+   case 6:
+    var $_0;
+    return $_0;
+  }
+}
+function _lame_decode($buffer, $len, $pcm_l, $pcm_r) {
+  var __stackBase__ = STACKTOP;
+  STACKTOP = STACKTOP + 40 | 0;
+  var $1 = _lame_decode_headers($buffer, $len, $pcm_l, $pcm_r, __stackBase__);
+  STACKTOP = __stackBase__;
+  return $1;
+}
+function _hip_decode_init() {
+  var $2 = _calloc(1, 22e3);
+  _InitMP3($2);
+  return $2;
+}
+function _hip_decode_exit($hip) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = ($hip | 0) == 0;
+    if ($1) {
+      label = 4;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 3:
+    _ExitMP3($hip);
+    var $3 = $hip;
+    _free($3);
+    label = 4;
+    break;
+   case 4:
+    return 0;
+  }
+}
+function _hip_decode1_unclipped($hip, $buffer, $len, $pcm_l, $pcm_r) {
+  var label = 0;
+  var __stackBase__ = STACKTOP;
+  STACKTOP = STACKTOP + 48 | 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $mp3data = __stackBase__;
+    var $enc_delay = __stackBase__ + 40;
+    var $enc_padding = __stackBase__ + 44;
+    var $1 = ($hip | 0) == 0;
+    if ($1) {
+      var $_0 = 0;
+      label = 4;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 3:
+    var $3 = $pcm_l;
+    var $4 = $pcm_r;
+    var $5 = _decode1_headersB_clipchoice($hip, $buffer, $len, $3, $4, $mp3data, $enc_delay, $enc_padding, 5327800, 9216, 4, 42);
+    var $_0 = $5;
+    label = 4;
+    break;
+   case 4:
+    var $_0;
+    STACKTOP = __stackBase__;
+    return $_0;
+  }
+}
+function _hip_decode1_headers($hip, $buffer, $len, $pcm_l, $pcm_r, $mp3data) {
+  var __stackBase__ = STACKTOP;
+  STACKTOP = STACKTOP + 8 | 0;
+  var $1 = _hip_decode1_headersB($hip, $buffer, $len, $pcm_l, $pcm_r, $mp3data, __stackBase__, __stackBase__ + 4);
+  STACKTOP = __stackBase__;
+  return $1;
+}
+function _hip_decode1_headersB($hip, $buffer, $len, $pcm_l, $pcm_r, $mp3data, $enc_delay, $enc_padding) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = ($hip | 0) == 0;
+    if ($1) {
+      var $_0 = -1;
+      label = 4;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 3:
+    var $3 = $pcm_l;
+    var $4 = $pcm_r;
+    var $5 = _decode1_headersB_clipchoice($hip, $buffer, $len, $3, $4, $mp3data, $enc_delay, $enc_padding, 5337016, 8192, 2, 46);
+    var $_0 = $5;
+    label = 4;
+    break;
+   case 4:
+    var $_0;
+    return $_0;
+  }
+}
+function _hip_decode1($hip, $buffer, $len, $pcm_l, $pcm_r) {
+  var __stackBase__ = STACKTOP;
+  STACKTOP = STACKTOP + 40 | 0;
+  var $1 = _hip_decode1_headers($hip, $buffer, $len, $pcm_l, $pcm_r, __stackBase__);
+  STACKTOP = __stackBase__;
+  return $1;
+}
+function _hip_decode_headers($hip, $buffer, $len, $pcm_l, $pcm_r, $mp3data) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $totsize_0 = 0;
+    var $_011 = $len;
+    label = 3;
+    break;
+   case 3:
+    var $_011;
+    var $totsize_0;
+    var $2 = $pcm_l + ($totsize_0 << 1) | 0;
+    var $3 = $pcm_r + ($totsize_0 << 1) | 0;
+    var $4 = _hip_decode1_headers($hip, $buffer, $_011, $2, $3, $mp3data);
+    if (($4 | 0) == -1) {
+      label = 5;
+      break;
+    } else if (($4 | 0) == 0) {
+      var $_0 = $totsize_0;
+      label = 6;
+      break;
+    } else {
+      label = 4;
+      break;
+    }
+   case 4:
+    var $6 = $4 + $totsize_0 | 0;
+    var $totsize_0 = $6;
+    var $_011 = 0;
+    label = 3;
+    break;
+   case 5:
+    var $_0 = -1;
+    label = 6;
+    break;
+   case 6:
+    var $_0;
+    return $_0;
+  }
+}
+function _hip_decode($hip, $buffer, $len, $pcm_l, $pcm_r) {
+  var __stackBase__ = STACKTOP;
+  STACKTOP = STACKTOP + 40 | 0;
+  var $1 = _hip_decode_headers($hip, $buffer, $len, $pcm_l, $pcm_r, __stackBase__);
+  STACKTOP = __stackBase__;
+  return $1;
+}
+function _mdct_sub48($gfc, $w0, $w1) {
+  var label = 0;
+  var __stackBase__ = STACKTOP;
+  STACKTOP = STACKTOP + 72 | 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $work = __stackBase__;
+    var $1 = $gfc + 72 | 0;
+    var $2 = HEAP32[$1 >> 2];
+    var $3 = ($2 | 0) > 0;
+    if ($3) {
+      label = 3;
+      break;
+    } else {
+      label = 26;
+      break;
+    }
+   case 3:
+    var $4 = $gfc + 76 | 0;
+    var $5 = $work | 0;
+    var $w0_pn172 = $w0;
+    var $ch_0173 = 0;
+    label = 4;
+    break;
+   case 4:
+    var $ch_0173;
+    var $w0_pn172;
+    var $7 = HEAP32[$4 >> 2];
+    var $8 = ($7 | 0) > 0;
+    if ($8) {
+      label = 5;
+      break;
+    } else {
+      label = 25;
+      break;
+    }
+   case 5:
+    var $wk_0 = $w0_pn172 + 1144 | 0;
+    var $wk_1170 = $wk_0;
+    var $gr_0171 = 0;
+    label = 6;
+    break;
+   case 6:
+    var $gr_0171;
+    var $wk_1170;
+    var $10 = 1 - $gr_0171 | 0;
+    var $11 = $gfc + 27820 + $ch_0173 * 4608 + $10 * 2304 | 0;
+    var $samp_0155 = $11;
+    var $wk_2156 = $wk_1170;
+    var $k_0157 = 0;
+    label = 7;
+    break;
+   case 7:
+    var $k_0157;
+    var $wk_2156;
+    var $samp_0155;
+    _window_subband($wk_2156, $samp_0155);
+    var $13 = $wk_2156 + 128 | 0;
+    var $14 = $samp_0155 + 128 | 0;
+    _window_subband($13, $14);
+    var $15 = $samp_0155 + 256 | 0;
+    var $16 = $samp_0155 + 132 | 0;
+    var $17 = HEAPF32[$16 >> 2];
+    var $18 = $17 * -1;
+    HEAPF32[$16 >> 2] = $18;
+    var $19 = $samp_0155 + 140 | 0;
+    var $20 = HEAPF32[$19 >> 2];
+    var $21 = $20 * -1;
+    HEAPF32[$19 >> 2] = $21;
+    var $22 = $samp_0155 + 148 | 0;
+    var $23 = HEAPF32[$22 >> 2];
+    var $24 = $23 * -1;
+    HEAPF32[$22 >> 2] = $24;
+    var $25 = $samp_0155 + 156 | 0;
+    var $26 = HEAPF32[$25 >> 2];
+    var $27 = $26 * -1;
+    HEAPF32[$25 >> 2] = $27;
+    var $28 = $samp_0155 + 164 | 0;
+    var $29 = HEAPF32[$28 >> 2];
+    var $30 = $29 * -1;
+    HEAPF32[$28 >> 2] = $30;
+    var $31 = $samp_0155 + 172 | 0;
+    var $32 = HEAPF32[$31 >> 2];
+    var $33 = $32 * -1;
+    HEAPF32[$31 >> 2] = $33;
+    var $34 = $samp_0155 + 180 | 0;
+    var $35 = HEAPF32[$34 >> 2];
+    var $36 = $35 * -1;
+    HEAPF32[$34 >> 2] = $36;
+    var $37 = $samp_0155 + 188 | 0;
+    var $38 = HEAPF32[$37 >> 2];
+    var $39 = $38 * -1;
+    HEAPF32[$37 >> 2] = $39;
+    var $40 = $samp_0155 + 196 | 0;
+    var $41 = HEAPF32[$40 >> 2];
+    var $42 = $41 * -1;
+    HEAPF32[$40 >> 2] = $42;
+    var $43 = $samp_0155 + 204 | 0;
+    var $44 = HEAPF32[$43 >> 2];
+    var $45 = $44 * -1;
+    HEAPF32[$43 >> 2] = $45;
+    var $46 = $samp_0155 + 212 | 0;
+    var $47 = HEAPF32[$46 >> 2];
+    var $48 = $47 * -1;
+    HEAPF32[$46 >> 2] = $48;
+    var $49 = $samp_0155 + 220 | 0;
+    var $50 = HEAPF32[$49 >> 2];
+    var $51 = $50 * -1;
+    HEAPF32[$49 >> 2] = $51;
+    var $52 = $samp_0155 + 228 | 0;
+    var $53 = HEAPF32[$52 >> 2];
+    var $54 = $53 * -1;
+    HEAPF32[$52 >> 2] = $54;
+    var $55 = $samp_0155 + 236 | 0;
+    var $56 = HEAPF32[$55 >> 2];
+    var $57 = $56 * -1;
+    HEAPF32[$55 >> 2] = $57;
+    var $58 = $samp_0155 + 244 | 0;
+    var $59 = HEAPF32[$58 >> 2];
+    var $60 = $59 * -1;
+    HEAPF32[$58 >> 2] = $60;
+    var $61 = $samp_0155 + 252 | 0;
+    var $62 = HEAPF32[$61 >> 2];
+    var $63 = $62 * -1;
+    HEAPF32[$61 >> 2] = $63;
+    var $64 = $wk_2156 + 256 | 0;
+    var $65 = $k_0157 + 1 | 0;
+    var $exitcond = ($65 | 0) == 9;
+    if ($exitcond) {
+      label = 8;
+      break;
+    } else {
+      var $samp_0155 = $15;
+      var $wk_2156 = $64;
+      var $k_0157 = $65;
+      label = 7;
+      break;
+    }
+   case 8:
+    var $66 = $gfc + 304 + $gr_0171 * 10504 + $ch_0173 * 5252 | 0;
+    var $67 = $gfc + 304 + $gr_0171 * 10504 + $ch_0173 * 5252 + 4788 | 0;
+    var $68 = $gfc + 304 + $gr_0171 * 10504 + $ch_0173 * 5252 + 4792 | 0;
+    var $mdct_enc_0167 = $66;
+    var $band_1169 = 0;
+    label = 9;
+    break;
+   case 9:
+    var $band_1169;
+    var $mdct_enc_0167;
+    var $70 = HEAP32[$67 >> 2];
+    var $71 = 5291564 + ($band_1169 << 2) | 0;
+    var $72 = HEAP32[$71 >> 2];
+    var $73 = HEAP32[$68 >> 2];
+    var $74 = ($73 | 0) != 0;
+    var $75 = ($band_1169 | 0) < 2;
+    var $or_cond = $74 & $75;
+    var $type_0 = $or_cond ? 0 : $70;
+    var $76 = $gfc + 37036 + ($band_1169 << 2) | 0;
+    var $77 = HEAPF32[$76 >> 2];
+    var $78 = $77;
+    var $79 = $78 < 1e-12;
+    if ($79) {
+      label = 10;
+      break;
+    } else {
+      label = 11;
+      break;
+    }
+   case 10:
+    var $81 = $mdct_enc_0167;
+    for (var $$dest = $81 >> 2, $$stop = $$dest + 18; $$dest < $$stop; $$dest++) {
+      HEAP32[$$dest] = 0;
+    }
+    label = 19;
+    break;
+   case 11:
+    var $83 = $77 < 1;
+    if ($83) {
+      var $k_1159 = 0;
+      label = 12;
+      break;
+    } else {
+      label = 13;
+      break;
+    }
+   case 12:
+    var $k_1159;
+    var $84 = HEAPF32[$76 >> 2];
+    var $85 = $k_1159 << 5;
+    var $_sum151 = $85 + $72 | 0;
+    var $86 = $gfc + 27820 + $ch_0173 * 4608 + $10 * 2304 + ($_sum151 << 2) | 0;
+    var $87 = HEAPF32[$86 >> 2];
+    var $88 = $84 * $87;
+    HEAPF32[$86 >> 2] = $88;
+    var $89 = $k_1159 + 1 | 0;
+    var $exitcond179 = ($89 | 0) == 18;
+    if ($exitcond179) {
+      label = 13;
+      break;
+    } else {
+      var $k_1159 = $89;
+      label = 12;
+      break;
+    }
+   case 13:
+    var $90 = ($type_0 | 0) == 2;
+    if ($90) {
+      label = 14;
+      break;
+    } else {
+      var $k_3161 = -9;
+      label = 17;
+      break;
+    }
+   case 14:
+    var $91 = $72 + 288 | 0;
+    var $92 = $72 + 480 | 0;
+    var $k_2163 = -3;
+    label = 15;
+    break;
+   case 15:
+    var $k_2163;
+    var $94 = $k_2163 + 3 | 0;
+    var $95 = 5247776 + ($94 << 2) | 0;
+    var $96 = HEAPF32[$95 >> 2];
+    var $97 = $k_2163 << 5;
+    var $_sum143 = $91 + $97 | 0;
+    var $98 = $gfc + 27820 + $ch_0173 * 4608 + $gr_0171 * 2304 + ($_sum143 << 2) | 0;
+    var $99 = HEAPF32[$98 >> 2];
+    var $100 = $96 * $99;
+    var $101 = 8 - $k_2163 | 0;
+    var $102 = $101 << 5;
+    var $_sum144 = $102 + $72 | 0;
+    var $103 = $gfc + 27820 + $ch_0173 * 4608 + $gr_0171 * 2304 + ($_sum144 << 2) | 0;
+    var $104 = HEAPF32[$103 >> 2];
+    var $105 = $100 - $104;
+    var $106 = $k_2163 * 3 & -1;
+    var $107 = $106 + 9 | 0;
+    var $108 = $mdct_enc_0167 + ($107 << 2) | 0;
+    HEAPF32[$108 >> 2] = $105;
+    var $109 = 14 - $k_2163 | 0;
+    var $110 = $109 << 5;
+    var $_sum145 = $110 + $72 | 0;
+    var $111 = $gfc + 27820 + $ch_0173 * 4608 + $gr_0171 * 2304 + ($_sum145 << 2) | 0;
+    var $112 = HEAPF32[$111 >> 2];
+    var $113 = $96 * $112;
+    var $_sum146 = $92 + $97 | 0;
+    var $114 = $gfc + 27820 + $ch_0173 * 4608 + $gr_0171 * 2304 + ($_sum146 << 2) | 0;
+    var $115 = HEAPF32[$114 >> 2];
+    var $116 = $113 + $115;
+    var $117 = $106 + 18 | 0;
+    var $118 = $mdct_enc_0167 + ($117 << 2) | 0;
+    HEAPF32[$118 >> 2] = $116;
+    var $119 = HEAPF32[$114 >> 2];
+    var $120 = $96 * $119;
+    var $121 = HEAPF32[$111 >> 2];
+    var $122 = $120 - $121;
+    var $123 = $106 + 10 | 0;
+    var $124 = $mdct_enc_0167 + ($123 << 2) | 0;
+    HEAPF32[$124 >> 2] = $122;
+    var $125 = 2 - $k_2163 | 0;
+    var $126 = $125 << 5;
+    var $_sum147 = $126 + $72 | 0;
+    var $127 = $gfc + 27820 + $ch_0173 * 4608 + $10 * 2304 + ($_sum147 << 2) | 0;
+    var $128 = HEAPF32[$127 >> 2];
+    var $129 = $96 * $128;
+    var $130 = $94 << 5;
+    var $_sum148 = $130 + $72 | 0;
+    var $131 = $gfc + 27820 + $ch_0173 * 4608 + $10 * 2304 + ($_sum148 << 2) | 0;
+    var $132 = HEAPF32[$131 >> 2];
+    var $133 = $129 + $132;
+    var $134 = $106 + 19 | 0;
+    var $135 = $mdct_enc_0167 + ($134 << 2) | 0;
+    HEAPF32[$135 >> 2] = $133;
+    var $136 = HEAPF32[$131 >> 2];
+    var $137 = $96 * $136;
+    var $138 = HEAPF32[$127 >> 2];
+    var $139 = $137 - $138;
+    var $140 = $106 + 11 | 0;
+    var $141 = $mdct_enc_0167 + ($140 << 2) | 0;
+    HEAPF32[$141 >> 2] = $139;
+    var $142 = $gfc + 27820 + $ch_0173 * 4608 + $10 * 2304 + ($_sum144 << 2) | 0;
+    var $143 = HEAPF32[$142 >> 2];
+    var $144 = $96 * $143;
+    var $145 = $gfc + 27820 + $ch_0173 * 4608 + $10 * 2304 + ($_sum143 << 2) | 0;
+    var $146 = HEAPF32[$145 >> 2];
+    var $147 = $144 + $146;
+    var $148 = $106 + 20 | 0;
+    var $149 = $mdct_enc_0167 + ($148 << 2) | 0;
+    HEAPF32[$149 >> 2] = $147;
+    var $150 = $k_2163 + 1 | 0;
+    var $exitcond181 = ($150 | 0) == 0;
+    if ($exitcond181) {
+      label = 16;
+      break;
+    } else {
+      var $k_2163 = $150;
+      label = 15;
+      break;
+    }
+   case 16:
+    _mdct_short($mdct_enc_0167);
+    label = 19;
+    break;
+   case 17:
+    var $k_3161;
+    var $152 = $k_3161 + 27 | 0;
+    var $153 = 5247488 + $type_0 * 144 + ($152 << 2) | 0;
+    var $154 = HEAPF32[$153 >> 2];
+    var $155 = $k_3161 + 9 | 0;
+    var $156 = $155 << 5;
+    var $_sum138 = $156 + $72 | 0;
+    var $157 = $gfc + 27820 + $ch_0173 * 4608 + $10 * 2304 + ($_sum138 << 2) | 0;
+    var $158 = HEAPF32[$157 >> 2];
+    var $159 = $154 * $158;
+    var $160 = $k_3161 + 36 | 0;
+    var $161 = 5247488 + $type_0 * 144 + ($160 << 2) | 0;
+    var $162 = HEAPF32[$161 >> 2];
+    var $163 = 8 - $k_3161 | 0;
+    var $164 = $163 << 5;
+    var $_sum139 = $164 + $72 | 0;
+    var $165 = $gfc + 27820 + $ch_0173 * 4608 + $10 * 2304 + ($_sum139 << 2) | 0;
+    var $166 = HEAPF32[$165 >> 2];
+    var $167 = $162 * $166;
+    var $168 = $159 + $167;
+    var $169 = 5247488 + $type_0 * 144 + ($155 << 2) | 0;
+    var $170 = HEAPF32[$169 >> 2];
+    var $171 = $gfc + 27820 + $ch_0173 * 4608 + $gr_0171 * 2304 + ($_sum138 << 2) | 0;
+    var $172 = HEAPF32[$171 >> 2];
+    var $173 = $170 * $172;
+    var $174 = $k_3161 + 18 | 0;
+    var $175 = 5247488 + $type_0 * 144 + ($174 << 2) | 0;
+    var $176 = HEAPF32[$175 >> 2];
+    var $177 = $gfc + 27820 + $ch_0173 * 4608 + $gr_0171 * 2304 + ($_sum139 << 2) | 0;
+    var $178 = HEAPF32[$177 >> 2];
+    var $179 = $176 * $178;
+    var $180 = $173 - $179;
+    var $_sum142 = $k_3161 + 12 | 0;
+    var $181 = 5247776 + ($_sum142 << 2) | 0;
+    var $182 = HEAPF32[$181 >> 2];
+    var $183 = $182 * $180;
+    var $184 = $168 - $183;
+    var $185 = $work + ($155 << 2) | 0;
+    HEAPF32[$185 >> 2] = $184;
+    var $186 = HEAPF32[$181 >> 2];
+    var $187 = $168 * $186;
+    var $188 = $180 + $187;
+    var $189 = $work + ($174 << 2) | 0;
+    HEAPF32[$189 >> 2] = $188;
+    var $190 = $k_3161 + 1 | 0;
+    var $exitcond180 = ($190 | 0) == 0;
+    if ($exitcond180) {
+      label = 18;
+      break;
+    } else {
+      var $k_3161 = $190;
+      label = 17;
+      break;
+    }
+   case 18:
+    _mdct_long($mdct_enc_0167, $5);
+    label = 19;
+    break;
+   case 19:
+    var $193 = ($type_0 | 0) == 2;
+    var $194 = ($band_1169 | 0) == 0;
+    var $or_cond153 = $193 | $194;
+    if ($or_cond153) {
+      label = 21;
+      break;
+    } else {
+      var $k_4166 = 7;
+      label = 20;
+      break;
+    }
+   case 20:
+    var $k_4166;
+    var $195 = $mdct_enc_0167 + ($k_4166 << 2) | 0;
+    var $196 = HEAPF32[$195 >> 2];
+    var $_sum = $k_4166 + 20 | 0;
+    var $197 = 5247776 + ($_sum << 2) | 0;
+    var $198 = HEAPF32[$197 >> 2];
+    var $199 = $196 * $198;
+    var $200 = $k_4166 ^ -1;
+    var $201 = $mdct_enc_0167 + ($200 << 2) | 0;
+    var $202 = HEAPF32[$201 >> 2];
+    var $_sum137 = $k_4166 + 28 | 0;
+    var $203 = 5247776 + ($_sum137 << 2) | 0;
+    var $204 = HEAPF32[$203 >> 2];
+    var $205 = $202 * $204;
+    var $206 = $199 + $205;
+    var $207 = $196 * $204;
+    var $208 = $198 * $202;
+    var $209 = $207 - $208;
+    HEAPF32[$201 >> 2] = $206;
+    HEAPF32[$195 >> 2] = $209;
+    var $210 = $k_4166 - 1 | 0;
+    var $211 = ($k_4166 | 0) > 0;
+    if ($211) {
+      var $k_4166 = $210;
+      label = 20;
+      break;
+    } else {
+      label = 21;
+      break;
+    }
+   case 21:
+    var $212 = $band_1169 + 1 | 0;
+    var $213 = $mdct_enc_0167 + 72 | 0;
+    var $exitcond182 = ($212 | 0) == 32;
+    if ($exitcond182) {
+      label = 22;
+      break;
+    } else {
+      var $mdct_enc_0167 = $213;
+      var $band_1169 = $212;
+      label = 9;
+      break;
+    }
+   case 22:
+    var $scevgep = $wk_1170 + 2304 | 0;
+    var $215 = $gr_0171 + 1 | 0;
+    var $216 = HEAP32[$4 >> 2];
+    var $217 = ($215 | 0) < ($216 | 0);
+    if ($217) {
+      var $wk_1170 = $scevgep;
+      var $gr_0171 = $215;
+      label = 6;
+      break;
+    } else {
+      label = 23;
+      break;
+    }
+   case 23:
+    var $218 = ($216 | 0) == 1;
+    if ($218) {
+      label = 24;
+      break;
+    } else {
+      label = 25;
+      break;
+    }
+   case 24:
+    var $220 = $gfc + 27820 + $ch_0173 * 4608 | 0;
+    var $221 = $220;
+    var $222 = $gfc + 27820 + $ch_0173 * 4608 + 2304 | 0;
+    var $223 = $222;
+    for (var $$src = $223 >> 2, $$dest = $221 >> 2, $$stop = $$src + 576; $$src < $$stop; $$src++, $$dest++) {
+      HEAP32[$$dest] = HEAP32[$$src];
+    }
+    label = 25;
+    break;
+   case 25:
+    var $224 = $ch_0173 + 1 | 0;
+    var $225 = HEAP32[$1 >> 2];
+    var $226 = ($224 | 0) < ($225 | 0);
+    if ($226) {
+      var $w0_pn172 = $w1;
+      var $ch_0173 = $224;
+      label = 4;
+      break;
+    } else {
+      label = 26;
+      break;
+    }
+   case 26:
+    STACKTOP = __stackBase__;
+    return;
+  }
+}
+_mdct_sub48["X"] = 1;
+function _window_subband($x1, $a) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = $x1 - 248 | 0;
+    var $x2_0713 = $1;
+    var $wp_0714 = 5346432;
+    var $i_0715 = -15;
+    var $_0716 = $x1;
+    label = 3;
+    break;
+   case 3:
+    var $_0716;
+    var $i_0715;
+    var $wp_0714;
+    var $x2_0713;
+    var $3 = $wp_0714 - 40 | 0;
+    var $4 = HEAPF32[$3 >> 2];
+    var $5 = $x2_0713 - 896 | 0;
+    var $6 = HEAPF32[$5 >> 2];
+    var $7 = $4 * $6;
+    var $8 = $_0716 + 896 | 0;
+    var $9 = HEAPF32[$8 >> 2];
+    var $10 = $4 * $9;
+    var $11 = $wp_0714 - 36 | 0;
+    var $12 = HEAPF32[$11 >> 2];
+    var $13 = $x2_0713 - 640 | 0;
+    var $14 = HEAPF32[$13 >> 2];
+    var $15 = $12 * $14;
+    var $16 = $7 + $15;
+    var $17 = $_0716 + 640 | 0;
+    var $18 = HEAPF32[$17 >> 2];
+    var $19 = $12 * $18;
+    var $20 = $10 + $19;
+    var $21 = $wp_0714 - 32 | 0;
+    var $22 = HEAPF32[$21 >> 2];
+    var $23 = $x2_0713 - 384 | 0;
+    var $24 = HEAPF32[$23 >> 2];
+    var $25 = $22 * $24;
+    var $26 = $16 + $25;
+    var $27 = $_0716 + 384 | 0;
+    var $28 = HEAPF32[$27 >> 2];
+    var $29 = $22 * $28;
+    var $30 = $20 + $29;
+    var $31 = $wp_0714 - 28 | 0;
+    var $32 = HEAPF32[$31 >> 2];
+    var $33 = $x2_0713 - 128 | 0;
+    var $34 = HEAPF32[$33 >> 2];
+    var $35 = $32 * $34;
+    var $36 = $26 + $35;
+    var $37 = $_0716 + 128 | 0;
+    var $38 = HEAPF32[$37 >> 2];
+    var $39 = $32 * $38;
+    var $40 = $30 + $39;
+    var $41 = $wp_0714 - 24 | 0;
+    var $42 = HEAPF32[$41 >> 2];
+    var $43 = $x2_0713 + 128 | 0;
+    var $44 = HEAPF32[$43 >> 2];
+    var $45 = $42 * $44;
+    var $46 = $36 + $45;
+    var $47 = $_0716 - 128 | 0;
+    var $48 = HEAPF32[$47 >> 2];
+    var $49 = $42 * $48;
+    var $50 = $40 + $49;
+    var $51 = $wp_0714 - 20 | 0;
+    var $52 = HEAPF32[$51 >> 2];
+    var $53 = $x2_0713 + 384 | 0;
+    var $54 = HEAPF32[$53 >> 2];
+    var $55 = $52 * $54;
+    var $56 = $46 + $55;
+    var $57 = $_0716 - 384 | 0;
+    var $58 = HEAPF32[$57 >> 2];
+    var $59 = $52 * $58;
+    var $60 = $50 + $59;
+    var $61 = $wp_0714 - 16 | 0;
+    var $62 = HEAPF32[$61 >> 2];
+    var $63 = $x2_0713 + 640 | 0;
+    var $64 = HEAPF32[$63 >> 2];
+    var $65 = $62 * $64;
+    var $66 = $56 + $65;
+    var $67 = $_0716 - 640 | 0;
+    var $68 = HEAPF32[$67 >> 2];
+    var $69 = $62 * $68;
+    var $70 = $60 + $69;
+    var $71 = $wp_0714 - 12 | 0;
+    var $72 = HEAPF32[$71 >> 2];
+    var $73 = $x2_0713 + 896 | 0;
+    var $74 = HEAPF32[$73 >> 2];
+    var $75 = $72 * $74;
+    var $76 = $66 + $75;
+    var $77 = $_0716 - 896 | 0;
+    var $78 = HEAPF32[$77 >> 2];
+    var $79 = $72 * $78;
+    var $80 = $70 + $79;
+    var $81 = $wp_0714 - 8 | 0;
+    var $82 = HEAPF32[$81 >> 2];
+    var $83 = $_0716 - 1024 | 0;
+    var $84 = HEAPF32[$83 >> 2];
+    var $85 = $82 * $84;
+    var $86 = $76 + $85;
+    var $87 = $x2_0713 + 1024 | 0;
+    var $88 = HEAPF32[$87 >> 2];
+    var $89 = $82 * $88;
+    var $90 = $80 - $89;
+    var $91 = $wp_0714 - 4 | 0;
+    var $92 = HEAPF32[$91 >> 2];
+    var $93 = $_0716 - 768 | 0;
+    var $94 = HEAPF32[$93 >> 2];
+    var $95 = $92 * $94;
+    var $96 = $86 + $95;
+    var $97 = $x2_0713 + 768 | 0;
+    var $98 = HEAPF32[$97 >> 2];
+    var $99 = $92 * $98;
+    var $100 = $90 - $99;
+    var $101 = HEAPF32[$wp_0714 >> 2];
+    var $102 = $_0716 - 512 | 0;
+    var $103 = HEAPF32[$102 >> 2];
+    var $104 = $101 * $103;
+    var $105 = $96 + $104;
+    var $106 = $x2_0713 + 512 | 0;
+    var $107 = HEAPF32[$106 >> 2];
+    var $108 = $101 * $107;
+    var $109 = $100 - $108;
+    var $110 = $wp_0714 + 4 | 0;
+    var $111 = HEAPF32[$110 >> 2];
+    var $112 = $_0716 - 256 | 0;
+    var $113 = HEAPF32[$112 >> 2];
+    var $114 = $111 * $113;
+    var $115 = $105 + $114;
+    var $116 = $x2_0713 + 256 | 0;
+    var $117 = HEAPF32[$116 >> 2];
+    var $118 = $111 * $117;
+    var $119 = $109 - $118;
+    var $120 = $wp_0714 + 8 | 0;
+    var $121 = HEAPF32[$120 >> 2];
+    var $122 = HEAPF32[$_0716 >> 2];
+    var $123 = $121 * $122;
+    var $124 = $115 + $123;
+    var $125 = HEAPF32[$x2_0713 >> 2];
+    var $126 = $121 * $125;
+    var $127 = $119 - $126;
+    var $128 = $wp_0714 + 12 | 0;
+    var $129 = HEAPF32[$128 >> 2];
+    var $130 = $_0716 + 256 | 0;
+    var $131 = HEAPF32[$130 >> 2];
+    var $132 = $129 * $131;
+    var $133 = $124 + $132;
+    var $134 = $x2_0713 - 256 | 0;
+    var $135 = HEAPF32[$134 >> 2];
+    var $136 = $129 * $135;
+    var $137 = $127 - $136;
+    var $138 = $wp_0714 + 16 | 0;
+    var $139 = HEAPF32[$138 >> 2];
+    var $140 = $_0716 + 512 | 0;
+    var $141 = HEAPF32[$140 >> 2];
+    var $142 = $139 * $141;
+    var $143 = $133 + $142;
+    var $144 = $x2_0713 - 512 | 0;
+    var $145 = HEAPF32[$144 >> 2];
+    var $146 = $139 * $145;
+    var $147 = $137 - $146;
+    var $148 = $wp_0714 + 20 | 0;
+    var $149 = HEAPF32[$148 >> 2];
+    var $150 = $_0716 + 768 | 0;
+    var $151 = HEAPF32[$150 >> 2];
+    var $152 = $149 * $151;
+    var $153 = $143 + $152;
+    var $154 = $x2_0713 - 768 | 0;
+    var $155 = HEAPF32[$154 >> 2];
+    var $156 = $149 * $155;
+    var $157 = $147 - $156;
+    var $158 = $wp_0714 + 24 | 0;
+    var $159 = HEAPF32[$158 >> 2];
+    var $160 = $153 * $159;
+    var $161 = $157 - $160;
+    var $162 = $157 + $160;
+    var $163 = $i_0715 << 1;
+    var $164 = $163 + 30 | 0;
+    var $165 = $a + ($164 << 2) | 0;
+    HEAPF32[$165 >> 2] = $162;
+    var $166 = $wp_0714 + 28 | 0;
+    var $167 = HEAPF32[$166 >> 2];
+    var $168 = $167 * $161;
+    var $169 = $163 + 31 | 0;
+    var $170 = $a + ($169 << 2) | 0;
+    HEAPF32[$170 >> 2] = $168;
+    var $171 = $wp_0714 + 72 | 0;
+    var $172 = $_0716 - 4 | 0;
+    var $173 = $x2_0713 + 4 | 0;
+    var $174 = $i_0715 + 1 | 0;
+    var $exitcond = ($174 | 0) == 0;
+    if ($exitcond) {
+      label = 4;
+      break;
+    } else {
+      var $x2_0713 = $173;
+      var $wp_0714 = $171;
+      var $i_0715 = $174;
+      var $_0716 = $172;
+      label = 3;
+      break;
+    }
+   case 4:
+    var $176 = $x1 - 124 | 0;
+    var $177 = HEAPF32[$176 >> 2];
+    var $178 = $177 * 10612.802734375;
+    var $179 = $x1 - 188 | 0;
+    var $180 = HEAPF32[$179 >> 2];
+    var $181 = $180 * 12804.7978515625;
+    var $182 = $x1 - 252 | 0;
+    var $183 = HEAPF32[$182 >> 2];
+    var $184 = $x1 + 4 | 0;
+    var $185 = HEAPF32[$184 >> 2];
+    var $186 = $183 - $185;
+    var $187 = $186 * 5302.158203125;
+    var $188 = $178 + $187;
+    var $189 = $x1 - 444 | 0;
+    var $190 = HEAPF32[$189 >> 2];
+    var $191 = $190 * 1945.5516357421875;
+    var $192 = $181 + $191;
+    var $193 = $x1 - 380 | 0;
+    var $194 = HEAPF32[$193 >> 2];
+    var $195 = $x1 + 132 | 0;
+    var $196 = HEAPF32[$195 >> 2];
+    var $197 = $194 + $196;
+    var $198 = $197 * 929.7763061523438;
+    var $199 = $188 + $198;
+    var $200 = $x1 - 700 | 0;
+    var $201 = HEAPF32[$200 >> 2];
+    var $202 = $201 * 313.42449951171875;
+    var $203 = $192 + $202;
+    var $204 = $x1 - 508 | 0;
+    var $205 = HEAPF32[$204 >> 2];
+    var $206 = $x1 + 260 | 0;
+    var $207 = HEAPF32[$206 >> 2];
+    var $208 = $205 - $207;
+    var $209 = $208 * 728.8010864257812;
+    var $210 = $199 + $209;
+    var $211 = $x1 - 956 | 0;
+    var $212 = HEAPF32[$211 >> 2];
+    var $213 = $212 * 20.801593780517578;
+    var $214 = $203 + $213;
+    var $215 = $x1 - 636 | 0;
+    var $216 = HEAPF32[$215 >> 2];
+    var $217 = $x1 + 388 | 0;
+    var $218 = HEAPF32[$217 >> 2];
+    var $219 = $216 + $218;
+    var $220 = $219 * 288.09765625;
+    var $221 = $210 + $220;
+    var $222 = $x1 + 68 | 0;
+    var $223 = HEAPF32[$222 >> 2];
+    var $224 = $223 * 1995.1556396484375;
+    var $225 = $214 - $224;
+    var $226 = $x1 - 764 | 0;
+    var $227 = HEAPF32[$226 >> 2];
+    var $228 = $x1 + 516 | 0;
+    var $229 = HEAPF32[$228 >> 2];
+    var $230 = $227 - $229;
+    var $231 = $230 * 64.91738891601562;
+    var $232 = $221 + $231;
+    var $233 = $x1 + 324 | 0;
+    var $234 = HEAPF32[$233 >> 2];
+    var $235 = $234 * 9.000839233398438;
+    var $236 = $225 - $235;
+    var $237 = $x1 - 892 | 0;
+    var $238 = HEAPF32[$237 >> 2];
+    var $239 = $x1 + 644 | 0;
+    var $240 = HEAPF32[$239 >> 2];
+    var $241 = $238 + $240;
+    var $242 = $241 * 30.125003814697266;
+    var $243 = $232 + $242;
+    var $244 = $x1 + 580 | 0;
+    var $245 = HEAPF32[$244 >> 2];
+    var $246 = $245 * -29.202180862426758;
+    var $247 = $236 - $246;
+    var $248 = $x1 - 1020 | 0;
+    var $249 = HEAPF32[$248 >> 2];
+    var $250 = $x1 + 772 | 0;
+    var $251 = HEAPF32[$250 >> 2];
+    var $252 = $249 - $251;
+    var $253 = $252 * 4.101456642150879;
+    var $254 = $243 + $253;
+    var $255 = $x1 + 836 | 0;
+    var $256 = HEAPF32[$255 >> 2];
+    var $257 = $247 - $256;
+    var $258 = $257 - $254;
+    var $259 = $257 + $254;
+    var $260 = $a + 56 | 0;
+    var $261 = HEAPF32[$260 >> 2];
+    var $262 = $a + 60 | 0;
+    var $263 = HEAPF32[$262 >> 2];
+    var $264 = $263 - $261;
+    var $265 = $261 + $259;
+    var $266 = $a + 124 | 0;
+    HEAPF32[$266 >> 2] = $265;
+    var $267 = $258 + $264;
+    var $268 = $a + 120 | 0;
+    HEAPF32[$268 >> 2] = $267;
+    var $269 = $258 - $264;
+    HEAPF32[$262 >> 2] = $269;
+    var $270 = $259 - $261;
+    HEAPF32[$260 >> 2] = $270;
+    var $271 = $a + 112 | 0;
+    var $272 = HEAPF32[$271 >> 2];
+    var $273 = HEAPF32[$a >> 2];
+    var $274 = $272 - $273;
+    var $275 = $272 + $273;
+    HEAPF32[$a >> 2] = $275;
+    var $276 = $274 * 1.9615705013275146;
+    HEAPF32[$271 >> 2] = $276;
+    var $277 = $a + 116 | 0;
+    var $278 = HEAPF32[$277 >> 2];
+    var $279 = $a + 4 | 0;
+    var $280 = HEAPF32[$279 >> 2];
+    var $281 = $278 - $280;
+    var $282 = $278 + $280;
+    HEAPF32[$279 >> 2] = $282;
+    var $283 = $281 * 1.9615705013275146;
+    HEAPF32[$277 >> 2] = $283;
+    var $284 = $a + 104 | 0;
+    var $285 = HEAPF32[$284 >> 2];
+    var $286 = $a + 8 | 0;
+    var $287 = HEAPF32[$286 >> 2];
+    var $288 = $285 - $287;
+    var $289 = $285 + $287;
+    HEAPF32[$286 >> 2] = $289;
+    var $290 = $288 * 1.8477590084075928;
+    HEAPF32[$284 >> 2] = $290;
+    var $291 = $a + 108 | 0;
+    var $292 = HEAPF32[$291 >> 2];
+    var $293 = $a + 12 | 0;
+    var $294 = HEAPF32[$293 >> 2];
+    var $295 = $292 - $294;
+    var $296 = $292 + $294;
+    HEAPF32[$293 >> 2] = $296;
+    var $297 = $295 * 1.8477590084075928;
+    HEAPF32[$291 >> 2] = $297;
+    var $298 = $a + 96 | 0;
+    var $299 = HEAPF32[$298 >> 2];
+    var $300 = $a + 16 | 0;
+    var $301 = HEAPF32[$300 >> 2];
+    var $302 = $299 - $301;
+    var $303 = $299 + $301;
+    HEAPF32[$300 >> 2] = $303;
+    var $304 = $302 * 1.662939190864563;
+    HEAPF32[$298 >> 2] = $304;
+    var $305 = $a + 100 | 0;
+    var $306 = HEAPF32[$305 >> 2];
+    var $307 = $a + 20 | 0;
+    var $308 = HEAPF32[$307 >> 2];
+    var $309 = $306 - $308;
+    var $310 = $306 + $308;
+    HEAPF32[$307 >> 2] = $310;
+    var $311 = $309 * 1.662939190864563;
+    HEAPF32[$305 >> 2] = $311;
+    var $312 = $a + 88 | 0;
+    var $313 = HEAPF32[$312 >> 2];
+    var $314 = $a + 24 | 0;
+    var $315 = HEAPF32[$314 >> 2];
+    var $316 = $313 - $315;
+    var $317 = $313 + $315;
+    HEAPF32[$314 >> 2] = $317;
+    var $318 = $316;
+    var $319 = $318 * 1.4142135623730951;
+    var $320 = $319;
+    HEAPF32[$312 >> 2] = $320;
+    var $321 = $a + 92 | 0;
+    var $322 = HEAPF32[$321 >> 2];
+    var $323 = $a + 28 | 0;
+    var $324 = HEAPF32[$323 >> 2];
+    var $325 = $322 - $324;
+    var $326 = $322 + $324;
+    HEAPF32[$323 >> 2] = $326;
+    var $327 = $325;
+    var $328 = $327 * 1.4142135623730951;
+    var $329 = $326;
+    var $330 = $328 - $329;
+    var $331 = $330;
+    HEAPF32[$321 >> 2] = $331;
+    var $332 = HEAPF32[$314 >> 2];
+    var $333 = HEAPF32[$323 >> 2];
+    var $334 = $333 - $332;
+    HEAPF32[$323 >> 2] = $334;
+    var $335 = HEAPF32[$312 >> 2];
+    var $336 = $335 - $334;
+    HEAPF32[$312 >> 2] = $336;
+    var $337 = HEAPF32[$321 >> 2];
+    var $338 = $337 - $336;
+    HEAPF32[$321 >> 2] = $338;
+    var $339 = HEAPF32[$314 >> 2];
+    var $340 = HEAPF32[$266 >> 2];
+    var $341 = $340 - $339;
+    HEAPF32[$314 >> 2] = $341;
+    var $342 = HEAPF32[$266 >> 2];
+    var $343 = $339 + $342;
+    HEAPF32[$266 >> 2] = $343;
+    var $344 = HEAPF32[$323 >> 2];
+    var $345 = HEAPF32[$268 >> 2];
+    var $346 = $345 - $344;
+    HEAPF32[$323 >> 2] = $346;
+    var $347 = HEAPF32[$268 >> 2];
+    var $348 = $344 + $347;
+    HEAPF32[$268 >> 2] = $348;
+    var $349 = HEAPF32[$312 >> 2];
+    var $350 = HEAPF32[$262 >> 2];
+    var $351 = $350 - $349;
+    HEAPF32[$312 >> 2] = $351;
+    var $352 = HEAPF32[$262 >> 2];
+    var $353 = $349 + $352;
+    HEAPF32[$262 >> 2] = $353;
+    var $354 = HEAPF32[$321 >> 2];
+    var $355 = HEAPF32[$260 >> 2];
+    var $356 = $355 - $354;
+    HEAPF32[$321 >> 2] = $356;
+    var $357 = HEAPF32[$260 >> 2];
+    var $358 = $354 + $357;
+    HEAPF32[$260 >> 2] = $358;
+    var $359 = $a + 80 | 0;
+    var $360 = HEAPF32[$359 >> 2];
+    var $361 = $a + 32 | 0;
+    var $362 = HEAPF32[$361 >> 2];
+    var $363 = $360 - $362;
+    var $364 = $360 + $362;
+    HEAPF32[$361 >> 2] = $364;
+    var $365 = $363 * 1.111140489578247;
+    HEAPF32[$359 >> 2] = $365;
+    var $366 = $a + 84 | 0;
+    var $367 = HEAPF32[$366 >> 2];
+    var $368 = $a + 36 | 0;
+    var $369 = HEAPF32[$368 >> 2];
+    var $370 = $367 - $369;
+    var $371 = $367 + $369;
+    HEAPF32[$368 >> 2] = $371;
+    var $372 = $370 * 1.111140489578247;
+    HEAPF32[$366 >> 2] = $372;
+    var $373 = $a + 72 | 0;
+    var $374 = HEAPF32[$373 >> 2];
+    var $375 = $a + 40 | 0;
+    var $376 = HEAPF32[$375 >> 2];
+    var $377 = $374 - $376;
+    var $378 = $374 + $376;
+    HEAPF32[$375 >> 2] = $378;
+    var $379 = $377 * .7653668522834778;
+    HEAPF32[$373 >> 2] = $379;
+    var $380 = $a + 76 | 0;
+    var $381 = HEAPF32[$380 >> 2];
+    var $382 = $a + 44 | 0;
+    var $383 = HEAPF32[$382 >> 2];
+    var $384 = $381 - $383;
+    var $385 = $381 + $383;
+    HEAPF32[$382 >> 2] = $385;
+    var $386 = $384 * .7653668522834778;
+    HEAPF32[$380 >> 2] = $386;
+    var $387 = $a + 64 | 0;
+    var $388 = HEAPF32[$387 >> 2];
+    var $389 = $a + 48 | 0;
+    var $390 = HEAPF32[$389 >> 2];
+    var $391 = $388 - $390;
+    var $392 = $388 + $390;
+    HEAPF32[$389 >> 2] = $392;
+    var $393 = $391 * .39018064737319946;
+    HEAPF32[$387 >> 2] = $393;
+    var $394 = $a + 68 | 0;
+    var $395 = HEAPF32[$394 >> 2];
+    var $396 = $a + 52 | 0;
+    var $397 = HEAPF32[$396 >> 2];
+    var $398 = $395 - $397;
+    var $399 = $395 + $397;
+    HEAPF32[$396 >> 2] = $399;
+    var $400 = $398 * .39018064737319946;
+    HEAPF32[$394 >> 2] = $400;
+    var $401 = HEAPF32[$359 >> 2];
+    var $402 = HEAPF32[$298 >> 2];
+    var $403 = $402 - $401;
+    var $404 = $401 + $402;
+    HEAPF32[$359 >> 2] = $404;
+    var $405 = $403 * .7653668522834778;
+    HEAPF32[$298 >> 2] = $405;
+    var $406 = HEAPF32[$366 >> 2];
+    var $407 = HEAPF32[$305 >> 2];
+    var $408 = $407 - $406;
+    var $409 = $406 + $407;
+    HEAPF32[$366 >> 2] = $409;
+    var $410 = $408 * .7653668522834778;
+    HEAPF32[$305 >> 2] = $410;
+    var $411 = HEAPF32[$300 >> 2];
+    var $412 = HEAPF32[$361 >> 2];
+    var $413 = $411 - $412;
+    var $414 = $411 + $412;
+    HEAPF32[$300 >> 2] = $414;
+    var $415 = $413 * .7653668522834778;
+    HEAPF32[$361 >> 2] = $415;
+    var $416 = HEAPF32[$307 >> 2];
+    var $417 = HEAPF32[$368 >> 2];
+    var $418 = $416 - $417;
+    var $419 = $416 + $417;
+    HEAPF32[$307 >> 2] = $419;
+    var $420 = $418 * .7653668522834778;
+    HEAPF32[$368 >> 2] = $420;
+    var $421 = HEAPF32[$a >> 2];
+    var $422 = HEAPF32[$389 >> 2];
+    var $423 = $421 - $422;
+    var $424 = $421 + $422;
+    HEAPF32[$a >> 2] = $424;
+    var $425 = $423 * 1.8477590084075928;
+    HEAPF32[$389 >> 2] = $425;
+    var $426 = HEAPF32[$279 >> 2];
+    var $427 = HEAPF32[$396 >> 2];
+    var $428 = $426 - $427;
+    var $429 = $426 + $427;
+    HEAPF32[$279 >> 2] = $429;
+    var $430 = $428 * 1.8477590084075928;
+    HEAPF32[$396 >> 2] = $430;
+    var $431 = HEAPF32[$387 >> 2];
+    var $432 = HEAPF32[$271 >> 2];
+    var $433 = $431 - $432;
+    var $434 = $431 + $432;
+    HEAPF32[$387 >> 2] = $434;
+    var $435 = $433 * 1.8477590084075928;
+    HEAPF32[$271 >> 2] = $435;
+    var $436 = HEAPF32[$394 >> 2];
+    var $437 = HEAPF32[$277 >> 2];
+    var $438 = $437 - $436;
+    var $439 = $436 + $437;
+    HEAPF32[$394 >> 2] = $439;
+    var $440 = $438 * 1.8477590084075928;
+    HEAPF32[$277 >> 2] = $440;
+    var $441 = HEAPF32[$286 >> 2];
+    var $442 = HEAPF32[$375 >> 2];
+    var $443 = $441 - $442;
+    var $444 = $443;
+    var $445 = $444 * 1.4142135623730951;
+    var $446 = $445;
+    var $447 = $441 + $442;
+    HEAPF32[$286 >> 2] = $447;
+    HEAPF32[$375 >> 2] = $446;
+    var $448 = HEAPF32[$293 >> 2];
+    var $449 = HEAPF32[$382 >> 2];
+    var $450 = $448 - $449;
+    var $451 = $450;
+    var $452 = $451 * 1.4142135623730951;
+    var $453 = $452;
+    var $454 = $448 + $449;
+    HEAPF32[$293 >> 2] = $454;
+    HEAPF32[$382 >> 2] = $453;
+    var $455 = HEAPF32[$373 >> 2];
+    var $456 = HEAPF32[$284 >> 2];
+    var $457 = $456 - $455;
+    var $458 = $457;
+    var $459 = $458 * 1.4142135623730951;
+    var $460 = $459;
+    var $461 = $455 + $456;
+    HEAPF32[$373 >> 2] = $461;
+    var $462 = $460 - $461;
+    HEAPF32[$284 >> 2] = $462;
+    var $463 = HEAPF32[$380 >> 2];
+    var $464 = HEAPF32[$291 >> 2];
+    var $465 = $464 - $463;
+    var $466 = $465;
+    var $467 = $466 * 1.4142135623730951;
+    var $468 = $467;
+    var $469 = $463 + $464;
+    HEAPF32[$380 >> 2] = $469;
+    var $470 = $468 - $469;
+    HEAPF32[$291 >> 2] = $470;
+    var $471 = HEAPF32[$286 >> 2];
+    var $472 = HEAPF32[$293 >> 2];
+    var $473 = HEAPF32[$380 >> 2];
+    var $474 = $473 - $472;
+    HEAPF32[$380 >> 2] = $474;
+    var $475 = HEAPF32[$293 >> 2];
+    var $476 = $475 - $471;
+    HEAPF32[$293 >> 2] = $476;
+    var $477 = HEAPF32[$266 >> 2];
+    var $478 = $477 - $471;
+    HEAPF32[$286 >> 2] = $478;
+    var $479 = HEAPF32[$266 >> 2];
+    var $480 = $471 + $479;
+    HEAPF32[$266 >> 2] = $480;
+    var $481 = HEAPF32[$293 >> 2];
+    var $482 = HEAPF32[$380 >> 2];
+    var $483 = HEAPF32[$382 >> 2];
+    var $484 = $483 - $482;
+    HEAPF32[$382 >> 2] = $484;
+    var $485 = HEAPF32[$373 >> 2];
+    var $486 = $485 - $481;
+    HEAPF32[$373 >> 2] = $486;
+    var $487 = HEAPF32[$268 >> 2];
+    var $488 = $487 - $481;
+    HEAPF32[$293 >> 2] = $488;
+    var $489 = HEAPF32[$268 >> 2];
+    var $490 = $481 + $489;
+    HEAPF32[$268 >> 2] = $490;
+    var $491 = HEAPF32[$373 >> 2];
+    var $492 = HEAPF32[$382 >> 2];
+    var $493 = HEAPF32[$291 >> 2];
+    var $494 = $493 - $492;
+    HEAPF32[$291 >> 2] = $494;
+    var $495 = HEAPF32[$380 >> 2];
+    var $496 = $495 - $491;
+    HEAPF32[$380 >> 2] = $496;
+    var $497 = HEAPF32[$262 >> 2];
+    var $498 = $497 - $491;
+    HEAPF32[$373 >> 2] = $498;
+    var $499 = HEAPF32[$262 >> 2];
+    var $500 = $491 + $499;
+    HEAPF32[$262 >> 2] = $500;
+    var $501 = HEAPF32[$380 >> 2];
+    var $502 = HEAPF32[$375 >> 2];
+    var $503 = $502 - $501;
+    HEAPF32[$375 >> 2] = $503;
+    var $504 = HEAPF32[$260 >> 2];
+    var $505 = $504 - $501;
+    HEAPF32[$380 >> 2] = $505;
+    var $506 = HEAPF32[$260 >> 2];
+    var $507 = $501 + $506;
+    HEAPF32[$260 >> 2] = $507;
+    var $508 = HEAPF32[$375 >> 2];
+    var $509 = HEAPF32[$382 >> 2];
+    var $510 = $509 - $508;
+    HEAPF32[$382 >> 2] = $510;
+    var $511 = HEAPF32[$321 >> 2];
+    var $512 = $511 - $508;
+    HEAPF32[$375 >> 2] = $512;
+    var $513 = HEAPF32[$321 >> 2];
+    var $514 = $508 + $513;
+    HEAPF32[$321 >> 2] = $514;
+    var $515 = HEAPF32[$382 >> 2];
+    var $516 = HEAPF32[$284 >> 2];
+    var $517 = $516 - $515;
+    HEAPF32[$284 >> 2] = $517;
+    var $518 = HEAPF32[$312 >> 2];
+    var $519 = $518 - $515;
+    HEAPF32[$382 >> 2] = $519;
+    var $520 = HEAPF32[$312 >> 2];
+    var $521 = $515 + $520;
+    HEAPF32[$312 >> 2] = $521;
+    var $522 = HEAPF32[$284 >> 2];
+    var $523 = HEAPF32[$291 >> 2];
+    var $524 = $523 - $522;
+    HEAPF32[$291 >> 2] = $524;
+    var $525 = HEAPF32[$323 >> 2];
+    var $526 = $525 - $522;
+    HEAPF32[$284 >> 2] = $526;
+    var $527 = HEAPF32[$323 >> 2];
+    var $528 = $522 + $527;
+    HEAPF32[$323 >> 2] = $528;
+    var $529 = HEAPF32[$291 >> 2];
+    var $530 = HEAPF32[$314 >> 2];
+    var $531 = $530 - $529;
+    HEAPF32[$291 >> 2] = $531;
+    var $532 = HEAPF32[$314 >> 2];
+    var $533 = $529 + $532;
+    HEAPF32[$314 >> 2] = $533;
+    var $534 = HEAPF32[$a >> 2];
+    var $535 = HEAPF32[$300 >> 2];
+    var $536 = $534 - $535;
+    var $537 = $536;
+    var $538 = $537 * 1.4142135623730951;
+    var $539 = $538;
+    var $540 = $534 + $535;
+    HEAPF32[$a >> 2] = $540;
+    HEAPF32[$300 >> 2] = $539;
+    var $541 = HEAPF32[$279 >> 2];
+    var $542 = HEAPF32[$307 >> 2];
+    var $543 = $541 - $542;
+    var $544 = $543;
+    var $545 = $544 * 1.4142135623730951;
+    var $546 = $545;
+    var $547 = $541 + $542;
+    HEAPF32[$279 >> 2] = $547;
+    HEAPF32[$307 >> 2] = $546;
+    var $548 = HEAPF32[$387 >> 2];
+    var $549 = HEAPF32[$359 >> 2];
+    var $550 = $548 - $549;
+    var $551 = $550;
+    var $552 = $551 * 1.4142135623730951;
+    var $553 = $552;
+    var $554 = $548 + $549;
+    HEAPF32[$387 >> 2] = $554;
+    HEAPF32[$359 >> 2] = $553;
+    var $555 = HEAPF32[$394 >> 2];
+    var $556 = HEAPF32[$366 >> 2];
+    var $557 = $555 - $556;
+    var $558 = $557;
+    var $559 = $558 * 1.4142135623730951;
+    var $560 = $559;
+    var $561 = $555 + $556;
+    HEAPF32[$394 >> 2] = $561;
+    HEAPF32[$366 >> 2] = $560;
+    var $562 = HEAPF32[$361 >> 2];
+    var $563 = HEAPF32[$389 >> 2];
+    var $564 = $562 - $563;
+    var $565 = $564;
+    var $566 = $565 * -1.4142135623730951;
+    var $567 = $566;
+    var $568 = $562 + $563;
+    HEAPF32[$361 >> 2] = $568;
+    var $569 = $567 - $568;
+    HEAPF32[$389 >> 2] = $569;
+    var $570 = HEAPF32[$368 >> 2];
+    var $571 = HEAPF32[$396 >> 2];
+    var $572 = $570 - $571;
+    var $573 = $572;
+    var $574 = $573 * -1.4142135623730951;
+    var $575 = $574;
+    var $576 = $570 + $571;
+    HEAPF32[$368 >> 2] = $576;
+    var $577 = $575 - $576;
+    HEAPF32[$396 >> 2] = $577;
+    var $578 = HEAPF32[$305 >> 2];
+    var $579 = HEAPF32[$277 >> 2];
+    var $580 = $578 - $579;
+    var $581 = $580;
+    var $582 = $581 * -1.4142135623730951;
+    var $583 = $582;
+    var $584 = $578 + $579;
+    HEAPF32[$305 >> 2] = $584;
+    var $585 = $583 - $584;
+    HEAPF32[$277 >> 2] = $585;
+    var $586 = HEAPF32[$298 >> 2];
+    var $587 = HEAPF32[$271 >> 2];
+    var $588 = $586 + $587;
+    var $589 = $588;
+    var $590 = $589 * -1.4142135623730951;
+    var $591 = $590;
+    var $592 = $586 - $587;
+    HEAPF32[$298 >> 2] = $592;
+    var $593 = $591 - $592;
+    HEAPF32[$271 >> 2] = $593;
+    var $594 = HEAPF32[$298 >> 2];
+    var $595 = HEAPF32[$387 >> 2];
+    var $596 = $594 - $595;
+    HEAPF32[$298 >> 2] = $596;
+    var $597 = HEAPF32[$359 >> 2];
+    var $598 = $597 - $596;
+    HEAPF32[$359 >> 2] = $598;
+    var $599 = HEAPF32[$271 >> 2];
+    var $600 = $599 - $598;
+    HEAPF32[$271 >> 2] = $600;
+    var $601 = HEAPF32[$305 >> 2];
+    var $602 = HEAPF32[$394 >> 2];
+    var $603 = $601 - $602;
+    HEAPF32[$305 >> 2] = $603;
+    var $604 = HEAPF32[$366 >> 2];
+    var $605 = $604 - $603;
+    HEAPF32[$366 >> 2] = $605;
+    var $606 = HEAPF32[$277 >> 2];
+    var $607 = $606 - $605;
+    HEAPF32[$277 >> 2] = $607;
+    var $608 = HEAPF32[$394 >> 2];
+    var $609 = HEAPF32[$279 >> 2];
+    var $610 = $608 - $609;
+    HEAPF32[$394 >> 2] = $610;
+    var $611 = HEAPF32[$368 >> 2];
+    var $612 = $611 - $610;
+    HEAPF32[$368 >> 2] = $612;
+    var $613 = HEAPF32[$305 >> 2];
+    var $614 = $613 - $612;
+    HEAPF32[$305 >> 2] = $614;
+    var $615 = HEAPF32[$307 >> 2];
+    var $616 = $615 - $614;
+    HEAPF32[$307 >> 2] = $616;
+    var $617 = HEAPF32[$366 >> 2];
+    var $618 = $617 - $616;
+    HEAPF32[$366 >> 2] = $618;
+    var $619 = HEAPF32[$396 >> 2];
+    var $620 = $619 - $618;
+    HEAPF32[$396 >> 2] = $620;
+    var $621 = HEAPF32[$277 >> 2];
+    var $622 = $621 - $620;
+    HEAPF32[$277 >> 2] = $622;
+    var $623 = HEAPF32[$279 >> 2];
+    var $624 = HEAPF32[$a >> 2];
+    var $625 = $623 - $624;
+    HEAPF32[$279 >> 2] = $625;
+    var $626 = HEAPF32[$387 >> 2];
+    var $627 = $626 - $625;
+    HEAPF32[$387 >> 2] = $627;
+    var $628 = HEAPF32[$394 >> 2];
+    var $629 = $628 - $627;
+    HEAPF32[$394 >> 2] = $629;
+    var $630 = HEAPF32[$361 >> 2];
+    var $631 = $630 - $629;
+    HEAPF32[$361 >> 2] = $631;
+    var $632 = HEAPF32[$368 >> 2];
+    var $633 = $632 - $631;
+    HEAPF32[$368 >> 2] = $633;
+    var $634 = HEAPF32[$298 >> 2];
+    var $635 = $634 - $633;
+    HEAPF32[$298 >> 2] = $635;
+    var $636 = HEAPF32[$305 >> 2];
+    var $637 = $636 - $635;
+    HEAPF32[$305 >> 2] = $637;
+    var $638 = HEAPF32[$300 >> 2];
+    var $639 = $638 - $637;
+    HEAPF32[$300 >> 2] = $639;
+    var $640 = HEAPF32[$307 >> 2];
+    var $641 = $640 - $639;
+    HEAPF32[$307 >> 2] = $641;
+    var $642 = HEAPF32[$359 >> 2];
+    var $643 = $642 - $641;
+    HEAPF32[$359 >> 2] = $643;
+    var $644 = HEAPF32[$366 >> 2];
+    var $645 = $644 - $643;
+    HEAPF32[$366 >> 2] = $645;
+    var $646 = HEAPF32[$389 >> 2];
+    var $647 = $646 - $645;
+    HEAPF32[$389 >> 2] = $647;
+    var $648 = HEAPF32[$396 >> 2];
+    var $649 = $648 - $647;
+    HEAPF32[$396 >> 2] = $649;
+    var $650 = HEAPF32[$271 >> 2];
+    var $651 = $650 - $649;
+    HEAPF32[$271 >> 2] = $651;
+    var $652 = HEAPF32[$277 >> 2];
+    var $653 = $652 - $651;
+    HEAPF32[$277 >> 2] = $653;
+    var $654 = HEAPF32[$a >> 2];
+    var $655 = HEAPF32[$266 >> 2];
+    var $656 = $654 + $655;
+    HEAPF32[$a >> 2] = $656;
+    var $657 = HEAPF32[$266 >> 2];
+    var $658 = $657 - $654;
+    HEAPF32[$266 >> 2] = $658;
+    var $659 = HEAPF32[$279 >> 2];
+    var $660 = HEAPF32[$268 >> 2];
+    var $661 = $659 + $660;
+    HEAPF32[$279 >> 2] = $661;
+    var $662 = HEAPF32[$268 >> 2];
+    var $663 = $662 - $659;
+    HEAPF32[$268 >> 2] = $663;
+    var $664 = HEAPF32[$387 >> 2];
+    var $665 = HEAPF32[$262 >> 2];
+    var $666 = $664 + $665;
+    HEAPF32[$387 >> 2] = $666;
+    var $667 = HEAPF32[$262 >> 2];
+    var $668 = $667 - $664;
+    HEAPF32[$262 >> 2] = $668;
+    var $669 = HEAPF32[$394 >> 2];
+    var $670 = HEAPF32[$260 >> 2];
+    var $671 = $669 + $670;
+    HEAPF32[$394 >> 2] = $671;
+    var $672 = HEAPF32[$260 >> 2];
+    var $673 = $672 - $669;
+    HEAPF32[$260 >> 2] = $673;
+    var $674 = HEAPF32[$361 >> 2];
+    var $675 = HEAPF32[$321 >> 2];
+    var $676 = $674 + $675;
+    HEAPF32[$361 >> 2] = $676;
+    var $677 = HEAPF32[$321 >> 2];
+    var $678 = $677 - $674;
+    HEAPF32[$321 >> 2] = $678;
+    var $679 = HEAPF32[$368 >> 2];
+    var $680 = HEAPF32[$312 >> 2];
+    var $681 = $679 + $680;
+    HEAPF32[$368 >> 2] = $681;
+    var $682 = HEAPF32[$312 >> 2];
+    var $683 = $682 - $679;
+    HEAPF32[$312 >> 2] = $683;
+    var $684 = HEAPF32[$298 >> 2];
+    var $685 = HEAPF32[$323 >> 2];
+    var $686 = $684 + $685;
+    HEAPF32[$298 >> 2] = $686;
+    var $687 = HEAPF32[$323 >> 2];
+    var $688 = $687 - $684;
+    HEAPF32[$323 >> 2] = $688;
+    var $689 = HEAPF32[$305 >> 2];
+    var $690 = HEAPF32[$314 >> 2];
+    var $691 = $689 + $690;
+    HEAPF32[$305 >> 2] = $691;
+    var $692 = HEAPF32[$314 >> 2];
+    var $693 = $692 - $689;
+    HEAPF32[$314 >> 2] = $693;
+    var $694 = HEAPF32[$300 >> 2];
+    var $695 = HEAPF32[$291 >> 2];
+    var $696 = $694 + $695;
+    HEAPF32[$300 >> 2] = $696;
+    var $697 = HEAPF32[$291 >> 2];
+    var $698 = $697 - $694;
+    HEAPF32[$291 >> 2] = $698;
+    var $699 = HEAPF32[$307 >> 2];
+    var $700 = HEAPF32[$284 >> 2];
+    var $701 = $699 + $700;
+    HEAPF32[$307 >> 2] = $701;
+    var $702 = HEAPF32[$284 >> 2];
+    var $703 = $702 - $699;
+    HEAPF32[$284 >> 2] = $703;
+    var $704 = HEAPF32[$359 >> 2];
+    var $705 = HEAPF32[$382 >> 2];
+    var $706 = $704 + $705;
+    HEAPF32[$359 >> 2] = $706;
+    var $707 = HEAPF32[$382 >> 2];
+    var $708 = $707 - $704;
+    HEAPF32[$382 >> 2] = $708;
+    var $709 = HEAPF32[$366 >> 2];
+    var $710 = HEAPF32[$375 >> 2];
+    var $711 = $709 + $710;
+    HEAPF32[$366 >> 2] = $711;
+    var $712 = HEAPF32[$375 >> 2];
+    var $713 = $712 - $709;
+    HEAPF32[$375 >> 2] = $713;
+    var $714 = HEAPF32[$389 >> 2];
+    var $715 = HEAPF32[$380 >> 2];
+    var $716 = $714 + $715;
+    HEAPF32[$389 >> 2] = $716;
+    var $717 = HEAPF32[$380 >> 2];
+    var $718 = $717 - $714;
+    HEAPF32[$380 >> 2] = $718;
+    var $719 = HEAPF32[$396 >> 2];
+    var $720 = HEAPF32[$373 >> 2];
+    var $721 = $719 + $720;
+    HEAPF32[$396 >> 2] = $721;
+    var $722 = HEAPF32[$373 >> 2];
+    var $723 = $722 - $719;
+    HEAPF32[$373 >> 2] = $723;
+    var $724 = HEAPF32[$271 >> 2];
+    var $725 = HEAPF32[$293 >> 2];
+    var $726 = $724 + $725;
+    HEAPF32[$271 >> 2] = $726;
+    var $727 = HEAPF32[$293 >> 2];
+    var $728 = $727 - $724;
+    HEAPF32[$293 >> 2] = $728;
+    var $729 = HEAPF32[$277 >> 2];
+    var $730 = HEAPF32[$286 >> 2];
+    var $731 = $729 + $730;
+    HEAPF32[$277 >> 2] = $731;
+    var $732 = HEAPF32[$286 >> 2];
+    var $733 = $732 - $729;
+    HEAPF32[$286 >> 2] = $733;
+    return;
+  }
+}
+_window_subband["X"] = 1;
+function _get_vbr_preset($v) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    if (($v | 0) == 4 | ($v | 0) == 1) {
+      var $_0 = 5248892;
+      label = 4;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 3:
+    var $_0 = 5248144;
+    label = 4;
+    break;
+   case 4:
+    var $_0;
+    return $_0;
+  }
+}
+function _min_int($a) {
+  return ($a | 0) < 320 ? $a : 320;
+}
+function _max_int($a) {
+  return ($a | 0) > 8 ? $a : 8;
+}
+function _mdct_short($inout) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $l_040 = 0;
+    var $_041 = $inout;
+    label = 3;
+    break;
+   case 3:
+    var $_041;
+    var $l_040;
+    var $2 = $_041 + 24 | 0;
+    var $3 = HEAPF32[$2 >> 2];
+    var $4 = $3 * .13165250420570374;
+    var $5 = $_041 + 60 | 0;
+    var $6 = HEAPF32[$5 >> 2];
+    var $7 = $4 - $6;
+    var $8 = HEAPF32[$_041 >> 2];
+    var $9 = $8 * .7673270106315613;
+    var $10 = $_041 + 36 | 0;
+    var $11 = HEAPF32[$10 >> 2];
+    var $12 = $9 - $11;
+    var $13 = $7 + $12;
+    var $14 = $7 - $12;
+    var $15 = $6 * .13165250420570374;
+    var $16 = $3 + $15;
+    var $17 = $11 * .7673270106315613;
+    var $18 = $8 + $17;
+    var $19 = $16 + $18;
+    var $20 = $18 - $16;
+    var $21 = $_041 + 12 | 0;
+    var $22 = HEAPF32[$21 >> 2];
+    var $23 = $22 * .4142135679721832;
+    var $24 = $_041 + 48 | 0;
+    var $25 = HEAPF32[$24 >> 2];
+    var $26 = $23 - $25;
+    var $27 = $26;
+    var $28 = $27 * 2.069978111953089e-11;
+    var $29 = $28;
+    var $30 = $25 * .4142135679721832;
+    var $31 = $22 + $30;
+    var $32 = $31;
+    var $33 = $32 * 2.069978111953089e-11;
+    var $34 = $33;
+    var $35 = $13;
+    var $36 = $35 * 1.90752519173728e-11;
+    var $37 = $29;
+    var $38 = $36 + $37;
+    var $39 = $38;
+    HEAPF32[$_041 >> 2] = $39;
+    var $40 = -$19;
+    var $41 = $40;
+    var $42 = $41 * 1.90752519173728e-11;
+    var $43 = $34;
+    var $44 = $42 + $43;
+    var $45 = $44;
+    HEAPF32[$5 >> 2] = $45;
+    var $46 = $14;
+    var $47 = $46 * .8660254037844387;
+    var $48 = $47 * 1.907525191737281e-11;
+    var $49 = $48;
+    var $50 = $19;
+    var $51 = $50 * .5;
+    var $52 = $51 * 1.907525191737281e-11;
+    var $53 = $52 + $43;
+    var $54 = $53;
+    var $55 = $49 - $54;
+    HEAPF32[$21 >> 2] = $55;
+    var $56 = $49 + $54;
+    HEAPF32[$2 >> 2] = $56;
+    var $57 = $35 * .5;
+    var $58 = $57 * 1.907525191737281e-11;
+    var $59 = $58 - $37;
+    var $60 = $59;
+    var $61 = $20;
+    var $62 = $61 * .8660254037844387;
+    var $63 = $62 * 1.907525191737281e-11;
+    var $64 = $63;
+    var $65 = $64 + $60;
+    HEAPF32[$10 >> 2] = $65;
+    var $66 = $60 - $64;
+    HEAPF32[$24 >> 2] = $66;
+    var $67 = $_041 + 4 | 0;
+    var $68 = $l_040 + 1 | 0;
+    var $exitcond = ($68 | 0) == 3;
+    if ($exitcond) {
+      label = 4;
+      break;
+    } else {
+      var $l_040 = $68;
+      var $_041 = $67;
+      label = 3;
+      break;
+    }
+   case 4:
+    return;
+  }
+}
+_mdct_short["X"] = 1;
+function _mdct_long($out, $in) {
+  var $1 = $in + 68 | 0;
+  var $3 = $in + 36 | 0;
+  var $5 = HEAPF32[$1 >> 2] - HEAPF32[$3 >> 2];
+  var $6 = $in + 60 | 0;
+  var $8 = $in + 44 | 0;
+  var $10 = HEAPF32[$6 >> 2] - HEAPF32[$8 >> 2];
+  var $11 = $in + 56 | 0;
+  var $13 = $in + 48 | 0;
+  var $15 = HEAPF32[$11 >> 2] - HEAPF32[$13 >> 2];
+  var $17 = $in + 32 | 0;
+  var $19 = HEAPF32[$in >> 2] + HEAPF32[$17 >> 2];
+  var $20 = $in + 4 | 0;
+  var $22 = $in + 28 | 0;
+  var $24 = HEAPF32[$20 >> 2] + HEAPF32[$22 >> 2];
+  var $25 = $in + 8 | 0;
+  var $27 = $in + 24 | 0;
+  var $29 = HEAPF32[$25 >> 2] + HEAPF32[$27 >> 2];
+  var $30 = $in + 12 | 0;
+  var $32 = $in + 20 | 0;
+  var $34 = HEAPF32[$30 >> 2] + HEAPF32[$32 >> 2];
+  var $36 = $19 + $29 - $34;
+  var $37 = $in + 16 | 0;
+  HEAPF32[$out + 68 >> 2] = $36 - ($24 - HEAPF32[$37 >> 2]);
+  var $45 = $36 * .5 + ($24 - HEAPF32[$37 >> 2]);
+  var $48 = ($5 - $10 - $15) * .8660253882408142;
+  HEAPF32[$out + 20 >> 2] = $48 + $45;
+  HEAPF32[$out + 24 >> 2] = $48 - $45;
+  var $53 = $in + 64 | 0;
+  var $55 = $in + 40 | 0;
+  var $58 = (HEAPF32[$53 >> 2] - HEAPF32[$55 >> 2]) * .8660253882408142;
+  var $61 = $24 * .5 + HEAPF32[$37 >> 2];
+  var $67 = $15 * .3420201539993286 + ($10 * .6427876353263855 + ($5 * .9848077297210693 + $58));
+  var $73 = $34 * .9396926164627075 + ($19 * .1736481785774231 + $61 - $29 * -.7660444378852844);
+  HEAPF32[$out + 4 >> 2] = $67 + $73;
+  HEAPF32[$out + 8 >> 2] = $67 - $73;
+  var $83 = $15 * .9848077297210693 + ($5 * .6427876353263855 - $58 - $10 * .3420201539993286);
+  var $89 = $34 * -.1736481785774231 + ($19 * .7660444378852844 + $61 - $29 * .9396926164627075);
+  HEAPF32[$out + 36 >> 2] = $83 + $89;
+  HEAPF32[$out + 40 >> 2] = $83 - $89;
+  var $99 = $10 * .9848077297210693 + ($5 * .3420201539993286 - $58) - $15 * .6427876353263855;
+  var $105 = $29 * -.1736481785774231 + ($19 * .9396926164627075 - $61) - $34 * -.7660444378852844;
+  HEAPF32[$out + 52 >> 2] = $99 + $105;
+  HEAPF32[$out + 56 >> 2] = $99 - $105;
+  var $112 = HEAPF32[$17 >> 2] - HEAPF32[$in >> 2];
+  var $115 = HEAPF32[$27 >> 2] - HEAPF32[$25 >> 2];
+  var $118 = HEAPF32[$32 >> 2] - HEAPF32[$30 >> 2];
+  var $121 = HEAPF32[$1 >> 2] + HEAPF32[$3 >> 2];
+  var $124 = HEAPF32[$53 >> 2] + HEAPF32[$55 >> 2];
+  var $127 = HEAPF32[$6 >> 2] + HEAPF32[$8 >> 2];
+  var $130 = HEAPF32[$11 >> 2] + HEAPF32[$13 >> 2];
+  var $132 = $121 + $127 + $130;
+  var $133 = $in + 52 | 0;
+  HEAPF32[$out >> 2] = $132 + ($124 + HEAPF32[$133 >> 2]);
+  var $140 = $132 * .5 - ($124 + HEAPF32[$133 >> 2]);
+  var $143 = ($112 - $115 + $118) * .8660253882408142;
+  HEAPF32[$out + 44 >> 2] = $143 + $140;
+  HEAPF32[$out + 48 >> 2] = $140 - $143;
+  var $151 = (HEAPF32[$22 >> 2] - HEAPF32[$20 >> 2]) * .8660253882408142;
+  var $154 = HEAPF32[$133 >> 2] - $124 * .5;
+  var $160 = $130 * -.7660444378852844 + ($127 * -.1736481785774231 + ($121 * .9396926164627075 - $154));
+  var $166 = $118 * .6427876353263855 + ($115 * .9848077297210693 + ($112 * .3420201539993286 + $151));
+  HEAPF32[$out + 12 >> 2] = $160 + $166;
+  HEAPF32[$out + 16 >> 2] = $160 - $166;
+  var $176 = $121 * .7660444378852844 + $154 - $127 * .9396926164627075 - $130 * -.1736481785774231;
+  var $182 = $112 * .6427876353263855 + $151 - $115 * .3420201539993286 - $118 * .9848077297210693;
+  HEAPF32[$out + 28 >> 2] = $176 + $182;
+  HEAPF32[$out + 32 >> 2] = $176 - $182;
+  var $192 = $121 * .1736481785774231 + $154 - $127 * -.7660444378852844 - $130 * .9396926164627075;
+  var $198 = $115 * .6427876353263855 + ($112 * .9848077297210693 - $151) - $118 * .3420201539993286;
+  HEAPF32[$out + 60 >> 2] = $192 + $198;
+  HEAPF32[$out + 64 >> 2] = $192 - $198;
+  return;
+}
+_mdct_long["X"] = 1;
+function _apply_preset($gfp, $preset, $enforce) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    if (($preset | 0) == 1e3) {
+      label = 3;
+      break;
+    } else if (($preset | 0) == 1006 | ($preset | 0) == 1007) {
+      label = 4;
+      break;
+    } else if (($preset | 0) == 1001 | ($preset | 0) == 1004) {
+      label = 5;
+      break;
+    } else if (($preset | 0) == 1002 | ($preset | 0) == 1005) {
+      label = 6;
+      break;
+    } else if (($preset | 0) == 1003) {
+      label = 7;
+      break;
+    } else {
+      label = 8;
+      break;
+    }
+   case 3:
+    var $1 = _lame_set_VBR($gfp, 4);
+    var $2 = $gfp + 152 | 0;
+    HEAP32[$2 >> 2] = 470;
+    label = 15;
+    break;
+   case 4:
+    var $3 = _lame_set_VBR($gfp, 4);
+    var $4 = $gfp + 152 | 0;
+    HEAP32[$4 >> 2] = 460;
+    label = 14;
+    break;
+   case 5:
+    var $5 = _lame_set_VBR($gfp, 4);
+    var $6 = $gfp + 152 | 0;
+    HEAP32[$6 >> 2] = 480;
+    label = 16;
+    break;
+   case 6:
+    var $7 = _lame_set_VBR($gfp, 4);
+    var $8 = $gfp + 152 | 0;
+    HEAP32[$8 >> 2] = 500;
+    label = 18;
+    break;
+   case 7:
+    var $10 = $gfp + 152 | 0;
+    HEAP32[$10 >> 2] = 320;
+    var $11 = _apply_abr_preset($gfp, 320, $enforce);
+    var $12 = _lame_set_VBR($gfp, 0);
+    var $_0 = 320;
+    label = 22;
+    break;
+   case 8:
+    var $14 = $gfp + 152 | 0;
+    HEAP32[$14 >> 2] = $preset;
+    if (($preset | 0) == 410) {
+      label = 9;
+      break;
+    } else if (($preset | 0) == 420) {
+      label = 10;
+      break;
+    } else if (($preset | 0) == 430) {
+      label = 11;
+      break;
+    } else if (($preset | 0) == 440) {
+      label = 12;
+      break;
+    } else if (($preset | 0) == 450) {
+      label = 13;
+      break;
+    } else if (($preset | 0) == 460) {
+      label = 14;
+      break;
+    } else if (($preset | 0) == 470) {
+      label = 15;
+      break;
+    } else if (($preset | 0) == 480) {
+      label = 16;
+      break;
+    } else if (($preset | 0) == 490) {
+      label = 17;
+      break;
+    } else if (($preset | 0) == 500) {
+      label = 18;
+      break;
+    } else {
+      label = 19;
+      break;
+    }
+   case 9:
+    _apply_vbr_preset($gfp, 9, $enforce);
+    var $_0 = 410;
+    label = 22;
+    break;
+   case 10:
+    _apply_vbr_preset($gfp, 8, $enforce);
+    var $_0 = 420;
+    label = 22;
+    break;
+   case 11:
+    _apply_vbr_preset($gfp, 7, $enforce);
+    var $_0 = 430;
+    label = 22;
+    break;
+   case 12:
+    _apply_vbr_preset($gfp, 6, $enforce);
+    var $_0 = 440;
+    label = 22;
+    break;
+   case 13:
+    _apply_vbr_preset($gfp, 5, $enforce);
+    var $_0 = 450;
+    label = 22;
+    break;
+   case 14:
+    _apply_vbr_preset($gfp, 4, $enforce);
+    var $_0 = 460;
+    label = 22;
+    break;
+   case 15:
+    _apply_vbr_preset($gfp, 3, $enforce);
+    var $_0 = 470;
+    label = 22;
+    break;
+   case 16:
+    _apply_vbr_preset($gfp, 2, $enforce);
+    var $_0 = 480;
+    label = 22;
+    break;
+   case 17:
+    _apply_vbr_preset($gfp, 1, $enforce);
+    var $_0 = 490;
+    label = 22;
+    break;
+   case 18:
+    _apply_vbr_preset($gfp, 0, $enforce);
+    var $_0 = 500;
+    label = 22;
+    break;
+   case 19:
+    var $_053_off = $preset - 8 | 0;
+    var $26 = $_053_off >>> 0 < 313;
+    if ($26) {
+      label = 20;
+      break;
+    } else {
+      label = 21;
+      break;
+    }
+   case 20:
+    var $28 = _apply_abr_preset($gfp, $preset, $enforce);
+    var $_0 = $28;
+    label = 22;
+    break;
+   case 21:
+    HEAP32[$14 >> 2] = 0;
+    var $_0 = $preset;
+    label = 22;
+    break;
+   case 22:
+    var $_0;
+    return $_0;
+  }
+}
+_apply_preset["X"] = 1;
+function _apply_abr_preset($gfp, $preset, $enforce) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = $preset & 65535;
+    var $2 = _nearestBitrateFullIndex($1);
+    var $3 = _lame_set_VBR($gfp, 3);
+    var $4 = _lame_set_VBR_mean_bitrate_kbps($gfp, $preset);
+    var $5 = _lame_get_VBR_mean_bitrate_kbps($gfp);
+    var $6 = _min_int($5);
+    var $7 = _lame_set_VBR_mean_bitrate_kbps($gfp, $6);
+    var $8 = _lame_get_VBR_mean_bitrate_kbps($gfp);
+    var $9 = _max_int($8);
+    var $10 = _lame_set_VBR_mean_bitrate_kbps($gfp, $9);
+    var $11 = _lame_get_VBR_mean_bitrate_kbps($gfp);
+    var $12 = _lame_set_brate($gfp, $11);
+    var $13 = $2 - 12 | 0;
+    var $14 = $13 >>> 0 < 5;
+    if ($14) {
+      label = 3;
+      break;
+    } else {
+      label = 4;
+      break;
+    }
+   case 3:
+    var $16 = _lame_get_exp_nspsytune($gfp);
+    var $17 = $16 | 2;
+    var $18 = _lame_set_exp_nspsytune($gfp, $17);
+    label = 4;
+    break;
+   case 4:
+    var $20 = $2 >>> 0 < 13;
+    if ($20) {
+      label = 5;
+      break;
+    } else {
+      label = 6;
+      break;
+    }
+   case 5:
+    var $22 = _lame_set_sfscale($gfp, 1);
+    label = 6;
+    break;
+   case 6:
+    var $24 = ($enforce | 0) != 0;
+    if ($24) {
+      label = 15;
+      break;
+    } else {
+      label = 7;
+      break;
+    }
+   case 7:
+    var $26 = _lame_get_quant_comp($gfp);
+    var $27 = ($26 | 0) == -1;
+    if ($27) {
+      label = 8;
+      break;
+    } else {
+      label = 9;
+      break;
+    }
+   case 8:
+    var $29 = 5348880 + $2 * 52 | 0;
+    var $30 = HEAP32[$29 >> 2];
+    var $31 = _lame_set_quant_comp($gfp, $30);
+    label = 9;
+    break;
+   case 9:
+    var $33 = _lame_get_quant_comp_short($gfp);
+    var $34 = ($33 | 0) == -1;
+    if ($34) {
+      label = 10;
+      break;
+    } else {
+      label = 11;
+      break;
+    }
+   case 10:
+    var $36 = 5348884 + $2 * 52 | 0;
+    var $37 = HEAP32[$36 >> 2];
+    var $38 = _lame_set_quant_comp_short($gfp, $37);
+    label = 11;
+    break;
+   case 11:
+    var $40 = _lame_get_msfix($gfp);
+    var $41 = $40 + 1;
+    var $42 = $41 == 0;
+    if ($42) {
+      label = 12;
+      break;
+    } else {
+      label = 13;
+      break;
+    }
+   case 12:
+    var $44 = 5348892 + $2 * 52 | 0;
+    var $45 = HEAPF32[$44 >> 2];
+    var $46 = $45;
+    _lame_set_msfix($gfp, $46);
+    label = 13;
+    break;
+   case 13:
+    var $48 = _lame_get_short_threshold_lrm($gfp);
+    var $49 = $48 + 1;
+    var $50 = $49 == 0;
+    if ($50) {
+      label = 14;
+      break;
+    } else {
+      label = 16;
+      break;
+    }
+   case 14:
+    var $52 = 5348896 + $2 * 52 | 0;
+    var $53 = HEAPF32[$52 >> 2];
+    var $54 = _lame_set_short_threshold_lrm($gfp, $53);
+    label = 16;
+    break;
+   case 15:
+    var $56 = 5348880 + $2 * 52 | 0;
+    var $57 = HEAP32[$56 >> 2];
+    var $58 = _lame_set_quant_comp($gfp, $57);
+    var $59 = 5348884 + $2 * 52 | 0;
+    var $60 = HEAP32[$59 >> 2];
+    var $61 = _lame_set_quant_comp_short($gfp, $60);
+    var $62 = 5348892 + $2 * 52 | 0;
+    var $63 = HEAPF32[$62 >> 2];
+    var $64 = $63;
+    _lame_set_msfix($gfp, $64);
+    var $65 = 5348896 + $2 * 52 | 0;
+    var $66 = HEAPF32[$65 >> 2];
+    var $67 = _lame_set_short_threshold_lrm($gfp, $66);
+    var $68 = 5348900 + $2 * 52 | 0;
+    var $69 = HEAPF32[$68 >> 2];
+    var $70 = _lame_set_short_threshold_s($gfp, $69);
+    label = 18;
+    break;
+   case 16:
+    var $72 = _lame_get_short_threshold_s($gfp);
+    var $73 = $72 + 1;
+    var $74 = $73 == 0;
+    if ($74) {
+      label = 17;
+      break;
+    } else {
+      label = 18;
+      break;
+    }
+   case 17:
+    var $76 = 5348900 + $2 * 52 | 0;
+    var $77 = HEAPF32[$76 >> 2];
+    var $78 = _lame_set_short_threshold_s($gfp, $77);
+    label = 18;
+    break;
+   case 18:
+    var $80 = _lame_get_scale($gfp);
+    var $81 = 5348904 + $2 * 52 | 0;
+    var $82 = HEAPF32[$81 >> 2];
+    var $83 = $80 * $82;
+    var $84 = _lame_set_scale($gfp, $83);
+    if ($24) {
+      label = 27;
+      break;
+    } else {
+      label = 19;
+      break;
+    }
+   case 19:
+    var $86 = _lame_get_maskingadjust($gfp);
+    var $87 = $86 == 0;
+    if ($87) {
+      label = 20;
+      break;
+    } else {
+      label = 21;
+      break;
+    }
+   case 20:
+    var $89 = 5348908 + $2 * 52 | 0;
+    var $90 = HEAPF32[$89 >> 2];
+    var $91 = _lame_set_maskingadjust($gfp, $90);
+    label = 21;
+    break;
+   case 21:
+    var $93 = _lame_get_maskingadjust_short($gfp);
+    var $94 = $93 == 0;
+    if ($94) {
+      label = 22;
+      break;
+    } else {
+      label = 23;
+      break;
+    }
+   case 22:
+    var $96 = 5348908 + $2 * 52 | 0;
+    var $97 = HEAPF32[$96 >> 2];
+    var $98 = $97;
+    var $99 = $98 * 1.1;
+    var $100 = $99;
+    var $101 = _lame_set_maskingadjust_short($gfp, $100);
+    label = 23;
+    break;
+   case 23:
+    var $103 = _lame_get_ATHlower($gfp);
+    var $104 = $103 == 0;
+    if ($104) {
+      label = 24;
+      break;
+    } else {
+      label = 25;
+      break;
+    }
+   case 24:
+    var $106 = 5348912 + $2 * 52 | 0;
+    var $107 = HEAPF32[$106 >> 2];
+    var $108 = _lame_set_ATHlower($gfp, $107);
+    label = 25;
+    break;
+   case 25:
+    var $110 = _lame_get_ATHcurve($gfp);
+    var $111 = $110 + 1;
+    var $112 = $111 == 0;
+    if ($112) {
+      label = 26;
+      break;
+    } else {
+      label = 28;
+      break;
+    }
+   case 26:
+    var $114 = 5348916 + $2 * 52 | 0;
+    var $115 = HEAPF32[$114 >> 2];
+    var $116 = _lame_set_ATHcurve($gfp, $115);
+    label = 28;
+    break;
+   case 27:
+    var $118 = 5348908 + $2 * 52 | 0;
+    var $119 = HEAPF32[$118 >> 2];
+    var $120 = _lame_set_maskingadjust($gfp, $119);
+    var $121 = 5348908 + $2 * 52 | 0;
+    var $122 = HEAPF32[$121 >> 2];
+    var $123 = $122;
+    var $124 = $123 * 1.1;
+    var $125 = $124;
+    var $126 = _lame_set_maskingadjust_short($gfp, $125);
+    var $127 = 5348912 + $2 * 52 | 0;
+    var $128 = HEAPF32[$127 >> 2];
+    var $129 = _lame_set_ATHlower($gfp, $128);
+    var $130 = 5348916 + $2 * 52 | 0;
+    var $131 = HEAPF32[$130 >> 2];
+    var $132 = _lame_set_ATHcurve($gfp, $131);
+    var $133 = 5348920 + $2 * 52 | 0;
+    var $134 = HEAPF32[$133 >> 2];
+    var $135 = _lame_set_interChRatio($gfp, $134);
+    label = 30;
+    break;
+   case 28:
+    var $137 = _lame_get_interChRatio($gfp);
+    var $138 = $137 + 1;
+    var $139 = $138 == 0;
+    if ($139) {
+      label = 29;
+      break;
+    } else {
+      label = 30;
+      break;
+    }
+   case 29:
+    var $141 = 5348920 + $2 * 52 | 0;
+    var $142 = HEAPF32[$141 >> 2];
+    var $143 = _lame_set_interChRatio($gfp, $142);
+    label = 30;
+    break;
+   case 30:
+    var $145 = 5348876 + $2 * 52 | 0;
+    var $146 = HEAP32[$145 >> 2];
+    var $147 = $146 | 0;
+    var $148 = $147 / 320;
+    var $149 = $148 * 5;
+    var $150 = $149;
+    var $151 = $gfp + 288 | 0;
+    var $152 = HEAP32[$151 >> 2];
+    var $153 = $152 + 280 | 0;
+    HEAPF32[$153 >> 2] = $150;
+    return $preset;
+  }
+}
+_apply_abr_preset["X"] = 1;
+function _apply_vbr_preset($gfp, $a, $enforce) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = _lame_get_VBR($gfp);
+    var $2 = _get_vbr_preset($1);
+    var $3 = $gfp + 160 | 0;
+    var $4 = HEAPF32[$3 >> 2];
+    var $p_sroa_0_0__idx = $2 + $a * 68 | 0;
+    var $p_sroa_0_0_copyload = HEAP32[$p_sroa_0_0__idx >> 2];
+    var $p_sroa_1_4__idx112 = $2 + $a * 68 + 4 | 0;
+    var $p_sroa_1_4_copyload = HEAP32[$p_sroa_1_4__idx112 >> 2];
+    var $p_sroa_2_8__idx115 = $2 + $a * 68 + 8 | 0;
+    var $p_sroa_2_8_copyload = HEAP32[$p_sroa_2_8__idx115 >> 2];
+    var $p_sroa_3_12__idx118 = $2 + $a * 68 + 12 | 0;
+    var $p_sroa_3_12_copyload = HEAP32[$p_sroa_3_12__idx118 >> 2];
+    var $p_sroa_4_16__idx122 = $2 + $a * 68 + 16 | 0;
+    var $p_sroa_4_16_copyload = HEAPF32[$p_sroa_4_16__idx122 >> 2];
+    var $p_sroa_5_20__idx126 = $2 + $a * 68 + 20 | 0;
+    var $p_sroa_5_20_copyload = HEAPF32[$p_sroa_5_20__idx126 >> 2];
+    var $p_sroa_6_24__idx130 = $2 + $a * 68 + 24 | 0;
+    var $p_sroa_6_24_copyload = HEAPF32[$p_sroa_6_24__idx130 >> 2];
+    var $p_sroa_7_28__idx134 = $2 + $a * 68 + 28 | 0;
+    var $p_sroa_7_28_copyload = HEAPF32[$p_sroa_7_28__idx134 >> 2];
+    var $p_sroa_8_32__idx138 = $2 + $a * 68 + 32 | 0;
+    var $p_sroa_8_32_copyload = HEAPF32[$p_sroa_8_32__idx138 >> 2];
+    var $p_sroa_9_36__idx142 = $2 + $a * 68 + 36 | 0;
+    var $p_sroa_9_36_copyload = HEAPF32[$p_sroa_9_36__idx142 >> 2];
+    var $p_sroa_10_40__idx146 = $2 + $a * 68 + 40 | 0;
+    var $p_sroa_10_40_copyload = HEAPF32[$p_sroa_10_40__idx146 >> 2];
+    var $p_sroa_11_44__idx151 = $2 + $a * 68 + 44 | 0;
+    var $p_sroa_11_44_copyload = HEAPF32[$p_sroa_11_44__idx151 >> 2];
+    var $p_sroa_12_48__idx153 = $2 + $a * 68 + 48 | 0;
+    var $p_sroa_12_48_copyload = HEAP32[$p_sroa_12_48__idx153 >> 2];
+    var $p_sroa_13_52__idx157 = $2 + $a * 68 + 52 | 0;
+    var $p_sroa_13_52_copyload = HEAP32[$p_sroa_13_52__idx157 >> 2];
+    var $p_sroa_14_56__idx161 = $2 + $a * 68 + 56 | 0;
+    var $p_sroa_14_56_copyload = HEAPF32[$p_sroa_14_56__idx161 >> 2];
+    var $p_sroa_15_60__idx164 = $2 + $a * 68 + 60 | 0;
+    var $p_sroa_15_60_copyload = HEAPF32[$p_sroa_15_60__idx164 >> 2];
+    var $p_sroa_16_64__idx167 = $2 + $a * 68 + 64 | 0;
+    var $p_sroa_16_64_copyload = HEAPF32[$p_sroa_16_64__idx167 >> 2];
+    var $5 = $a + 1 | 0;
+    var $q_sroa_1_16__idx32 = $2 + $5 * 68 + 16 | 0;
+    var $q_sroa_1_16_copyload = HEAPF32[$q_sroa_1_16__idx32 >> 2];
+    var $q_sroa_2_20__idx33 = $2 + $5 * 68 + 20 | 0;
+    var $q_sroa_2_20_copyload = HEAPF32[$q_sroa_2_20__idx33 >> 2];
+    var $q_sroa_3_24__idx34 = $2 + $5 * 68 + 24 | 0;
+    var $q_sroa_3_24_copyload = HEAPF32[$q_sroa_3_24__idx34 >> 2];
+    var $q_sroa_4_28__idx35 = $2 + $5 * 68 + 28 | 0;
+    var $q_sroa_4_28_copyload = HEAPF32[$q_sroa_4_28__idx35 >> 2];
+    var $q_sroa_5_32__idx36 = $2 + $5 * 68 + 32 | 0;
+    var $q_sroa_5_32_copyload = HEAPF32[$q_sroa_5_32__idx36 >> 2];
+    var $q_sroa_6_36__idx37 = $2 + $5 * 68 + 36 | 0;
+    var $q_sroa_6_36_copyload = HEAPF32[$q_sroa_6_36__idx37 >> 2];
+    var $q_sroa_7_40__idx38 = $2 + $5 * 68 + 40 | 0;
+    var $q_sroa_7_40_copyload = HEAPF32[$q_sroa_7_40__idx38 >> 2];
+    var $q_sroa_8_44__idx39 = $2 + $5 * 68 + 44 | 0;
+    var $q_sroa_8_44_copyload = HEAPF32[$q_sroa_8_44__idx39 >> 2];
+    var $q_sroa_10_52__idx41 = $2 + $5 * 68 + 52 | 0;
+    var $q_sroa_10_52_copyload = HEAP32[$q_sroa_10_52__idx41 >> 2];
+    var $q_sroa_11_56__idx42 = $2 + $5 * 68 + 56 | 0;
+    var $q_sroa_11_56_copyload = HEAPF32[$q_sroa_11_56__idx42 >> 2];
+    var $q_sroa_12_60__idx43 = $2 + $5 * 68 + 60 | 0;
+    var $q_sroa_12_60_copyload = HEAPF32[$q_sroa_12_60__idx43 >> 2];
+    var $q_sroa_13_64__idx44 = $2 + $5 * 68 + 64 | 0;
+    var $q_sroa_13_64_copyload = HEAPF32[$q_sroa_13_64__idx44 >> 2];
+    var $6 = $q_sroa_1_16_copyload - $p_sroa_4_16_copyload;
+    var $7 = $4 * $6;
+    var $8 = $p_sroa_4_16_copyload + $7;
+    var $9 = $q_sroa_2_20_copyload - $p_sroa_5_20_copyload;
+    var $10 = $4 * $9;
+    var $11 = $p_sroa_5_20_copyload + $10;
+    var $12 = $q_sroa_3_24_copyload - $p_sroa_6_24_copyload;
+    var $13 = $4 * $12;
+    var $14 = $p_sroa_6_24_copyload + $13;
+    var $15 = $q_sroa_4_28_copyload - $p_sroa_7_28_copyload;
+    var $16 = $4 * $15;
+    var $17 = $p_sroa_7_28_copyload + $16;
+    var $18 = $q_sroa_5_32_copyload - $p_sroa_8_32_copyload;
+    var $19 = $4 * $18;
+    var $20 = $p_sroa_8_32_copyload + $19;
+    var $21 = $q_sroa_6_36_copyload - $p_sroa_9_36_copyload;
+    var $22 = $4 * $21;
+    var $23 = $p_sroa_9_36_copyload + $22;
+    var $24 = $q_sroa_7_40_copyload - $p_sroa_10_40_copyload;
+    var $25 = $4 * $24;
+    var $26 = $p_sroa_10_40_copyload + $25;
+    var $27 = $q_sroa_8_44_copyload - $p_sroa_11_44_copyload;
+    var $28 = $4 * $27;
+    var $29 = $p_sroa_11_44_copyload + $28;
+    var $30 = $p_sroa_13_52_copyload | 0;
+    var $31 = $q_sroa_10_52_copyload - $p_sroa_13_52_copyload | 0;
+    var $32 = $31 | 0;
+    var $33 = $4 * $32;
+    var $34 = $30 + $33;
+    var $35 = $34 & -1;
+    var $36 = $q_sroa_11_56_copyload - $p_sroa_14_56_copyload;
+    var $37 = $4 * $36;
+    var $38 = $p_sroa_14_56_copyload + $37;
+    var $39 = $q_sroa_12_60_copyload - $p_sroa_15_60_copyload;
+    var $40 = $4 * $39;
+    var $41 = $p_sroa_15_60_copyload + $40;
+    var $42 = $q_sroa_13_64_copyload - $p_sroa_16_64_copyload;
+    var $43 = $4 * $42;
+    var $44 = $p_sroa_16_64_copyload + $43;
+    var $45 = _lame_set_VBR_q($gfp, $p_sroa_0_0_copyload);
+    var $46 = ($enforce | 0) != 0;
+    if ($46) {
+      label = 5;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 3:
+    var $48 = _lame_get_quant_comp($gfp);
+    var $49 = ($48 | 0) == -1;
+    if ($49) {
+      label = 4;
+      break;
+    } else {
+      label = 6;
+      break;
+    }
+   case 4:
+    var $51 = _lame_set_quant_comp($gfp, $p_sroa_1_4_copyload);
+    label = 6;
+    break;
+   case 5:
+    var $53 = _lame_set_quant_comp($gfp, $p_sroa_1_4_copyload);
+    var $54 = _lame_set_quant_comp_short($gfp, $p_sroa_2_8_copyload);
+    label = 8;
+    break;
+   case 6:
+    var $56 = _lame_get_quant_comp_short($gfp);
+    var $57 = ($56 | 0) == -1;
+    if ($57) {
+      label = 7;
+      break;
+    } else {
+      label = 8;
+      break;
+    }
+   case 7:
+    var $59 = _lame_set_quant_comp_short($gfp, $p_sroa_2_8_copyload);
+    label = 8;
+    break;
+   case 8:
+    var $61 = ($p_sroa_3_12_copyload | 0) == 0;
+    if ($61) {
+      label = 10;
+      break;
+    } else {
+      label = 9;
+      break;
+    }
+   case 9:
+    var $63 = _lame_set_experimentalY($gfp, $p_sroa_3_12_copyload);
+    label = 10;
+    break;
+   case 10:
+    if ($46) {
+      label = 17;
+      break;
+    } else {
+      label = 11;
+      break;
+    }
+   case 11:
+    var $66 = _lame_get_short_threshold_lrm($gfp);
+    var $67 = $66 + 1;
+    var $68 = $67 == 0;
+    if ($68) {
+      label = 12;
+      break;
+    } else {
+      label = 13;
+      break;
+    }
+   case 12:
+    var $70 = _lame_set_short_threshold_lrm($gfp, $8);
+    label = 13;
+    break;
+   case 13:
+    var $72 = _lame_get_short_threshold_s($gfp);
+    var $73 = $72 + 1;
+    var $74 = $73 == 0;
+    if ($74) {
+      label = 14;
+      break;
+    } else {
+      label = 15;
+      break;
+    }
+   case 14:
+    var $76 = _lame_set_short_threshold_s($gfp, $11);
+    label = 15;
+    break;
+   case 15:
+    var $78 = _lame_get_maskingadjust($gfp);
+    var $79 = $78 == 0;
+    if ($79) {
+      label = 16;
+      break;
+    } else {
+      label = 18;
+      break;
+    }
+   case 16:
+    var $81 = _lame_set_maskingadjust($gfp, $14);
+    label = 18;
+    break;
+   case 17:
+    var $83 = _lame_set_short_threshold_lrm($gfp, $8);
+    var $84 = _lame_set_short_threshold_s($gfp, $11);
+    var $85 = _lame_set_maskingadjust($gfp, $14);
+    var $86 = _lame_set_maskingadjust_short($gfp, $17);
+    label = 20;
+    break;
+   case 18:
+    var $88 = _lame_get_maskingadjust_short($gfp);
+    var $89 = $88 == 0;
+    if ($89) {
+      label = 19;
+      break;
+    } else {
+      label = 20;
+      break;
+    }
+   case 19:
+    var $91 = _lame_set_maskingadjust_short($gfp, $17);
+    label = 20;
+    break;
+   case 20:
+    var $93 = _lame_get_VBR($gfp);
+    if (($93 | 0) == 1 | ($93 | 0) == 4) {
+      label = 21;
+      break;
+    } else {
+      label = 22;
+      break;
+    }
+   case 21:
+    var $95 = _lame_set_ATHtype($gfp, 5);
+    label = 22;
+    break;
+   case 22:
+    if ($46) {
+      label = 27;
+      break;
+    } else {
+      label = 23;
+      break;
+    }
+   case 23:
+    var $98 = _lame_get_ATHlower($gfp);
+    var $99 = $98 == 0;
+    if ($99) {
+      label = 24;
+      break;
+    } else {
+      label = 25;
+      break;
+    }
+   case 24:
+    var $101 = _lame_set_ATHlower($gfp, $20);
+    label = 25;
+    break;
+   case 25:
+    var $103 = _lame_get_ATHcurve($gfp);
+    var $104 = $103 + 1;
+    var $105 = $104 == 0;
+    if ($105) {
+      label = 26;
+      break;
+    } else {
+      label = 28;
+      break;
+    }
+   case 26:
+    var $107 = _lame_set_ATHcurve($gfp, $23);
+    label = 28;
+    break;
+   case 27:
+    var $109 = _lame_set_ATHlower($gfp, $20);
+    var $110 = _lame_set_ATHcurve($gfp, $23);
+    var $111 = _lame_set_athaa_sensitivity($gfp, $26);
+    label = 30;
+    break;
+   case 28:
+    var $113 = _lame_get_athaa_sensitivity($gfp);
+    var $114 = $113 == 0;
+    if ($114) {
+      label = 29;
+      break;
+    } else {
+      label = 30;
+      break;
+    }
+   case 29:
+    var $116 = _lame_set_athaa_sensitivity($gfp, $26);
+    label = 30;
+    break;
+   case 30:
+    var $118 = $29 > 0;
+    if ($118) {
+      label = 31;
+      break;
+    } else {
+      label = 35;
+      break;
+    }
+   case 31:
+    if ($46) {
+      label = 32;
+      break;
+    } else {
+      label = 33;
+      break;
+    }
+   case 32:
+    var $121 = _lame_set_interChRatio($gfp, $29);
+    label = 35;
+    break;
+   case 33:
+    var $123 = _lame_get_interChRatio($gfp);
+    var $124 = $123 + 1;
+    var $125 = $124 == 0;
+    if ($125) {
+      label = 34;
+      break;
+    } else {
+      label = 35;
+      break;
+    }
+   case 34:
+    var $127 = _lame_set_interChRatio($gfp, $29);
+    label = 35;
+    break;
+   case 35:
+    var $129 = ($p_sroa_12_48_copyload | 0) > 0;
+    if ($129) {
+      label = 36;
+      break;
+    } else {
+      label = 37;
+      break;
+    }
+   case 36:
+    var $131 = _lame_get_exp_nspsytune($gfp);
+    var $132 = $131 | 2;
+    var $133 = _lame_set_exp_nspsytune($gfp, $132);
+    label = 37;
+    break;
+   case 37:
+    var $135 = ($35 | 0) > 0;
+    if ($135) {
+      label = 38;
+      break;
+    } else {
+      label = 40;
+      break;
+    }
+   case 38:
+    var $137 = _lame_get_exp_nspsytune($gfp);
+    var $138 = $137 & 66060288;
+    var $139 = ($138 | 0) == 0;
+    if ($139) {
+      label = 39;
+      break;
+    } else {
+      label = 40;
+      break;
+    }
+   case 39:
+    var $141 = $35 << 20;
+    var $142 = $137 | $141;
+    var $143 = _lame_set_exp_nspsytune($gfp, $142);
+    label = 40;
+    break;
+   case 40:
+    if ($46) {
+      label = 43;
+      break;
+    } else {
+      label = 41;
+      break;
+    }
+   case 41:
+    var $146 = _lame_get_msfix($gfp);
+    var $147 = $146 + 1;
+    var $148 = $147 == 0;
+    if ($148) {
+      label = 42;
+      break;
+    } else {
+      label = 44;
+      break;
+    }
+   case 42:
+    var $150 = $38;
+    _lame_set_msfix($gfp, $150);
+    label = 44;
+    break;
+   case 43:
+    var $152 = $38;
+    _lame_set_msfix($gfp, $152);
+    label = 45;
+    break;
+   case 44:
+    var $154 = $gfp + 164 | 0;
+    HEAP32[$154 >> 2] = $a;
+    HEAPF32[$3 >> 2] = $4;
+    label = 45;
+    break;
+   case 45:
+    var $156 = $gfp + 288 | 0;
+    var $157 = HEAP32[$156 >> 2];
+    var $158 = $157 + 280 | 0;
+    HEAPF32[$158 >> 2] = $41;
+    var $159 = HEAP32[$156 >> 2];
+    var $160 = $159 + 224 | 0;
+    HEAPF32[$160 >> 2] = $44;
+    return;
+  }
+}
+_apply_vbr_preset["X"] = 1;
+function _L3psycho_anal_vbr($gfc, $buffer, $gr_out, $masking_ratio, $masking_MS_ratio, $percep_entropy, $percep_MS_entropy, $energy, $blocktype_d) {
+  var label = 0;
+  var __stackBase__ = STACKTOP;
+  STACKTOP = STACKTOP + 21092 | 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $last_thm = __stackBase__;
+    var $fftenergy = __stackBase__ + 976;
+    var $fftenergy_s = __stackBase__ + 3028;
+    var $wsamp_L = __stackBase__ + 4576;
+    var $wsamp_S = __stackBase__ + 12768;
+    var $eb = __stackBase__ + 18912;
+    var $thr = __stackBase__ + 19936;
+    var $sub_short_factor = __stackBase__ + 20960;
+    var $ns_attacks = __stackBase__ + 21008;
+    var $uselongblock = __stackBase__ + 21072;
+    var $new_thmm = __stackBase__ + 21080;
+    var $new_thmm209 = $new_thmm;
+    var $1 = $gfc + 16 | 0;
+    var $2 = $gfc + 21564 | 0;
+    var $3 = $gfc + 85796 | 0;
+    var $4 = HEAP32[$3 >> 2];
+    var $5 = $gfc + 140 | 0;
+    var $6 = HEAP32[$5 >> 2];
+    var $7 = ($6 | 0) == 0;
+    if ($7) {
+      var $12 = 0;
+      label = 4;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 3:
+    var $9 = $gfc + 85800 | 0;
+    var $10 = HEAP32[$9 >> 2];
+    var $12 = $10;
+    label = 4;
+    break;
+   case 4:
+    var $12;
+    var $13 = $gfc + 192 | 0;
+    var $14 = HEAPF32[$13 >> 2];
+    var $15 = $14 > 0;
+    if ($15) {
+      label = 5;
+      break;
+    } else {
+      var $25 = 1;
+      label = 6;
+      break;
+    }
+   case 5:
+    var $17 = $gfc + 200 | 0;
+    var $18 = HEAPF32[$17 >> 2];
+    var $19 = $gfc + 85792 | 0;
+    var $20 = HEAP32[$19 >> 2];
+    var $21 = $20 + 8 | 0;
+    var $22 = HEAPF32[$21 >> 2];
+    var $23 = $18 * $22;
+    var $25 = $23;
+    label = 6;
+    break;
+   case 6:
+    var $25;
+    var $26 = $eb | 0;
+    var $27 = $fftenergy_s | 0;
+    var $28 = $ns_attacks;
+    for (var $$dest = $28 >> 2, $$stop = $$dest + 16; $$dest < $$stop; $$dest++) {
+      HEAP32[$$dest] = 0;
+    }
+    var $29 = $gfc + 180 | 0;
+    var $30 = HEAP32[$29 >> 2];
+    var $31 = ($30 | 0) == 1;
+    if ($31) {
+      var $36 = 4;
+      label = 8;
+      break;
+    } else {
+      label = 7;
+      break;
+    }
+   case 7:
+    var $33 = $gfc + 72 | 0;
+    var $34 = HEAP32[$33 >> 2];
+    var $36 = $34;
+    label = 8;
+    break;
+   case 8:
+    var $36;
+    var $37 = $last_thm;
+    var $38 = $gfc + 25660 | 0;
+    var $39 = $38;
+    for (var $$src = $39 >> 2, $$dest = $37 >> 2, $$stop = $$src + 244; $$src < $$stop; $$src++, $$dest++) {
+      HEAP32[$$dest] = HEAP32[$$src];
+    }
+    var $40 = $sub_short_factor | 0;
+    var $41 = $ns_attacks | 0;
+    var $42 = $uselongblock | 0;
+    _vbrpsy_attack_detection($gfc, $buffer, $gr_out, $masking_ratio, $masking_MS_ratio, $energy, $40, $41, $42);
+    _vbrpsy_compute_block_type($1, $42);
+    var $43 = ($36 | 0) > 0;
+    if ($43) {
+      label = 9;
+      break;
+    } else {
+      label = 11;
+      break;
+    }
+   case 9:
+    var $44 = $fftenergy | 0;
+    var $chn_0201 = 0;
+    label = 10;
+    break;
+   case 10:
+    var $chn_0201;
+    var $46 = $chn_0201 & 1;
+    var $47 = $wsamp_L + ($46 << 12) | 0;
+    _vbrpsy_compute_fft_l($gfc, $buffer, $chn_0201, $gr_out, $44, $47);
+    _vbrpsy_compute_loudness_approximation_l($gfc, $gr_out, $chn_0201, $44);
+    var $48 = $eb + ($chn_0201 << 8) | 0;
+    var $49 = $thr + ($chn_0201 << 8) | 0;
+    _vbrpsy_compute_masking_l($gfc, $44, $48, $49, $chn_0201);
+    var $50 = $chn_0201 + 1 | 0;
+    var $exitcond216 = ($50 | 0) == ($36 | 0);
+    if ($exitcond216) {
+      label = 11;
+      break;
+    } else {
+      var $chn_0201 = $50;
+      label = 10;
+      break;
+    }
+   case 11:
+    var $51 = HEAP32[$29 >> 2];
+    var $52 = ($51 | 0) == 1;
+    if ($52) {
+      label = 12;
+      break;
+    } else {
+      label = 14;
+      break;
+    }
+   case 12:
+    var $54 = HEAP32[$42 >> 2];
+    var $55 = $uselongblock + 4 | 0;
+    var $56 = HEAP32[$55 >> 2];
+    var $57 = $56 + $54 | 0;
+    var $58 = ($57 | 0) == 2;
+    if ($58) {
+      label = 13;
+      break;
+    } else {
+      label = 14;
+      break;
+    }
+   case 13:
+    var $60 = $thr | 0;
+    var $61 = $4 + 768 | 0;
+    var $62 = $gfc + 85792 | 0;
+    var $63 = HEAP32[$62 >> 2];
+    var $64 = $63 + 212 | 0;
+    var $65 = HEAPF32[$13 >> 2];
+    var $66 = $4 + 2148 | 0;
+    var $67 = HEAP32[$66 >> 2];
+    _vbrpsy_compute_MS_thresholds($26, $60, $61, $64, $25, $65, $67);
+    label = 14;
+    break;
+   case 14:
+    var $68 = ($36 | 0) > 0;
+    if ($68) {
+      var $chn_1198 = 0;
+      label = 15;
+      break;
+    } else {
+      label = 16;
+      break;
+    }
+   case 15:
+    var $chn_1198;
+    var $69 = $eb + ($chn_1198 << 8) | 0;
+    var $70 = $thr + ($chn_1198 << 8) | 0;
+    _convert_partition2scalefac_l($gfc, $69, $70, $chn_1198);
+    _convert_partition2scalefac_l_to_s($gfc, $69, $70, $chn_1198);
+    var $71 = $chn_1198 + 1 | 0;
+    var $exitcond215 = ($71 | 0) == ($36 | 0);
+    if ($exitcond215) {
+      label = 16;
+      break;
+    } else {
+      var $chn_1198 = $71;
+      label = 15;
+      break;
+    }
+   case 16:
+    var $72 = HEAP32[$3 >> 2];
+    var $73 = $72 + 6500 | 0;
+    var $74 = HEAP32[$73 >> 2];
+    var $75 = ($36 | 0) > 0;
+    var $76 = HEAP32[$42 >> 2];
+    var $77 = $uselongblock + 4 | 0;
+    var $78 = HEAP32[$77 >> 2];
+    var $79 = -$78 | 0;
+    var $80 = $thr | 0;
+    var $81 = $4 + 2928 | 0;
+    var $82 = $gfc + 85792 | 0;
+    var $83 = $4 + 4308 | 0;
+    var $84 = ($36 | 0) > 0;
+    var $85 = ($74 | 0) == 0;
+    var $86 = ($74 | 0) == 0;
+    var $sblock_0196 = 0;
+    label = 17;
+    break;
+   case 17:
+    var $sblock_0196;
+    if ($75) {
+      var $chn_2189 = 0;
+      label = 20;
+      break;
+    } else {
+      label = 24;
+      break;
+    }
+   case 18:
+    var $87 = ($36 | 0) > 0;
+    if ($87) {
+      label = 19;
+      break;
+    } else {
+      label = 54;
+      break;
+    }
+   case 19:
+    var $88 = $new_thmm | 0;
+    var $chn_4187 = 0;
+    label = 31;
+    break;
+   case 20:
+    var $chn_2189;
+    var $89 = $chn_2189 & 1;
+    var $90 = $uselongblock + ($89 << 2) | 0;
+    var $91 = HEAP32[$90 >> 2];
+    var $92 = ($91 | 0) != 0;
+    var $or_cond = $92 & $86;
+    if ($or_cond) {
+      label = 21;
+      break;
+    } else {
+      label = 22;
+      break;
+    }
+   case 21:
+    _vbrpsy_skip_masking_s($gfc, $chn_2189, $sblock_0196);
+    label = 23;
+    break;
+   case 22:
+    var $95 = $wsamp_S + $89 * 3072 | 0;
+    _vbrpsy_compute_fft_s($gfc, $buffer, $chn_2189, $sblock_0196, $27, $95);
+    var $96 = $eb + ($chn_2189 << 8) | 0;
+    var $97 = $thr + ($chn_2189 << 8) | 0;
+    _vbrpsy_compute_masking_s($gfc, $27, $96, $97, $chn_2189, $sblock_0196);
+    label = 23;
+    break;
+   case 23:
+    var $99 = $chn_2189 + 1 | 0;
+    var $exitcond212 = ($99 | 0) == ($36 | 0);
+    if ($exitcond212) {
+      label = 24;
+      break;
+    } else {
+      var $chn_2189 = $99;
+      label = 20;
+      break;
+    }
+   case 24:
+    var $100 = HEAP32[$29 >> 2];
+    var $_not = ($100 | 0) != 1;
+    var $_not217 = ($76 | 0) != ($79 | 0);
+    var $brmerge = $_not | $_not217;
+    if ($brmerge) {
+      label = 26;
+      break;
+    } else {
+      label = 25;
+      break;
+    }
+   case 25:
+    var $102 = HEAP32[$82 >> 2];
+    var $103 = $102 + 468 | 0;
+    var $104 = HEAPF32[$13 >> 2];
+    var $105 = HEAP32[$83 >> 2];
+    _vbrpsy_compute_MS_thresholds($26, $80, $81, $103, $25, $104, $105);
+    label = 26;
+    break;
+   case 26:
+    if ($84) {
+      var $chn_3193 = 0;
+      label = 27;
+      break;
+    } else {
+      label = 30;
+      break;
+    }
+   case 27:
+    var $chn_3193;
+    var $106 = $chn_3193 & 1;
+    var $107 = $uselongblock + ($106 << 2) | 0;
+    var $108 = HEAP32[$107 >> 2];
+    var $109 = ($108 | 0) != 0;
+    var $or_cond172 = $109 & $85;
+    if ($or_cond172) {
+      label = 29;
+      break;
+    } else {
+      label = 28;
+      break;
+    }
+   case 28:
+    var $111 = $eb + ($chn_3193 << 8) | 0;
+    var $112 = $thr + ($chn_3193 << 8) | 0;
+    _convert_partition2scalefac_s($gfc, $111, $112, $chn_3193, $sblock_0196);
+    label = 29;
+    break;
+   case 29:
+    var $114 = $chn_3193 + 1 | 0;
+    var $exitcond213 = ($114 | 0) == ($36 | 0);
+    if ($exitcond213) {
+      label = 30;
+      break;
+    } else {
+      var $chn_3193 = $114;
+      label = 27;
+      break;
+    }
+   case 30:
+    var $115 = $sblock_0196 + 1 | 0;
+    var $exitcond214 = ($115 | 0) == 3;
+    if ($exitcond214) {
+      label = 18;
+      break;
+    } else {
+      var $sblock_0196 = $115;
+      label = 17;
+      break;
+    }
+   case 31:
+    var $chn_4187;
+    var $116 = $gfc + 27780 + ($chn_4187 << 2) | 0;
+    var $sb_0185 = 0;
+    label = 33;
+    break;
+   case 32:
+    var $117 = ($36 | 0) > 0;
+    if ($117) {
+      var $chn_5175 = 0;
+      label = 53;
+      break;
+    } else {
+      label = 54;
+      break;
+    }
+   case 33:
+    var $sb_0185;
+    var $scevgep = $gfc + 25660 + $chn_4187 * 244 + 88 + $sb_0185 * 12 | 0;
+    var $scevgep208 = $scevgep;
+    var $118 = $last_thm + $chn_4187 * 244 + 88 + $sb_0185 * 12 + 4 | 0;
+    var $119 = $last_thm + $chn_4187 * 244 + 88 + $sb_0185 * 12 + 8 | 0;
+    var $120 = $last_thm + $chn_4187 * 244 + 88 + $sb_0185 * 12 + 8 | 0;
+    var $sblock_1179 = 0;
+    label = 34;
+    break;
+   case 34:
+    var $sblock_1179;
+    var $122 = $gfc + 25660 + $chn_4187 * 244 + 88 + $sb_0185 * 12 + ($sblock_1179 << 2) | 0;
+    var $123 = HEAPF32[$122 >> 2];
+    var $124 = $123;
+    var $125 = $124 * .8;
+    var $126 = $125;
+    var $127 = ($sblock_1179 | 0) > 0;
+    if ($127) {
+      label = 35;
+      break;
+    } else {
+      var $prev_thm_0_in = $120;
+      label = 36;
+      break;
+    }
+   case 35:
+    var $129 = $sblock_1179 - 1 | 0;
+    var $130 = $new_thmm + ($129 << 2) | 0;
+    var $prev_thm_0_in = $130;
+    label = 36;
+    break;
+   case 36:
+    var $prev_thm_0_in;
+    var $prev_thm_0 = HEAPF32[$prev_thm_0_in >> 2];
+    var $132 = $ns_attacks + ($chn_4187 << 4) + ($sblock_1179 << 2) | 0;
+    var $133 = HEAP32[$132 >> 2];
+    var $134 = ($133 | 0) > 1;
+    if ($134) {
+      label = 38;
+      break;
+    } else {
+      label = 37;
+      break;
+    }
+   case 37:
+    var $136 = $sblock_1179 + 1 | 0;
+    var $137 = $ns_attacks + ($chn_4187 << 4) + ($136 << 2) | 0;
+    var $138 = HEAP32[$137 >> 2];
+    var $139 = ($138 | 0) == 1;
+    if ($139) {
+      label = 38;
+      break;
+    } else {
+      var $t1_0 = $126;
+      label = 39;
+      break;
+    }
+   case 38:
+    var $141 = _NS_INTERP($prev_thm_0, $126, .36000001430511475);
+    var $t1_0 = $141;
+    label = 39;
+    break;
+   case 39:
+    var $t1_0;
+    var $143 = $t1_0 < $126;
+    var $144 = $143 ? $t1_0 : $126;
+    var $145 = HEAP32[$132 >> 2];
+    var $146 = ($145 | 0) == 1;
+    if ($146) {
+      label = 40;
+      break;
+    } else {
+      label = 41;
+      break;
+    }
+   case 40:
+    var $148 = _NS_INTERP($prev_thm_0, $144, .18000000715255737);
+    var $t2_0 = $148;
+    label = 50;
+    break;
+   case 41:
+    var $150 = ($sblock_1179 | 0) == 0;
+    if ($150) {
+      label = 42;
+      break;
+    } else {
+      label = 43;
+      break;
+    }
+   case 42:
+    var $152 = HEAP32[$116 >> 2];
+    var $153 = ($152 | 0) == 3;
+    if ($153) {
+      label = 46;
+      break;
+    } else {
+      label = 43;
+      break;
+    }
+   case 43:
+    if ($127) {
+      label = 44;
+      break;
+    } else {
+      var $t2_0 = $126;
+      label = 50;
+      break;
+    }
+   case 44:
+    var $156 = $sblock_1179 - 1 | 0;
+    var $157 = $ns_attacks + ($chn_4187 << 4) + ($156 << 2) | 0;
+    var $158 = HEAP32[$157 >> 2];
+    var $159 = ($158 | 0) == 3;
+    if ($159) {
+      label = 45;
+      break;
+    } else {
+      var $t2_0 = $126;
+      label = 50;
+      break;
+    }
+   case 45:
+    if (($sblock_1179 | 0) == 0) {
+      label = 46;
+      break;
+    } else if (($sblock_1179 | 0) == 1) {
+      label = 47;
+      break;
+    } else if (($sblock_1179 | 0) == 2) {
+      label = 48;
+      break;
+    } else {
+      var $prev_thm_1 = $prev_thm_0;
+      label = 49;
+      break;
+    }
+   case 46:
+    var $161 = HEAPF32[$118 >> 2];
+    var $prev_thm_1 = $161;
+    label = 49;
+    break;
+   case 47:
+    var $163 = HEAPF32[$119 >> 2];
+    var $prev_thm_1 = $163;
+    label = 49;
+    break;
+   case 48:
+    var $165 = HEAPF32[$88 >> 2];
+    var $prev_thm_1 = $165;
+    label = 49;
+    break;
+   case 49:
+    var $prev_thm_1;
+    var $167 = _NS_INTERP($prev_thm_1, $144, .18000000715255737);
+    var $t2_0 = $167;
+    label = 50;
+    break;
+   case 50:
+    var $t2_0;
+    var $169 = $t2_0 < $144;
+    var $170 = $169 ? $t2_0 : $144;
+    var $171 = $sub_short_factor + $chn_4187 * 12 + ($sblock_1179 << 2) | 0;
+    var $172 = HEAPF32[$171 >> 2];
+    var $173 = $172 * $170;
+    var $174 = $new_thmm + ($sblock_1179 << 2) | 0;
+    HEAPF32[$174 >> 2] = $173;
+    var $175 = $sblock_1179 + 1 | 0;
+    var $exitcond206 = ($175 | 0) == 3;
+    if ($exitcond206) {
+      label = 51;
+      break;
+    } else {
+      var $sblock_1179 = $175;
+      label = 34;
+      break;
+    }
+   case 51:
+    HEAP32[$scevgep208 >> 2] = HEAP32[$new_thmm209 >> 2];
+    HEAP32[$scevgep208 + 4 >> 2] = HEAP32[$new_thmm209 + 4 >> 2];
+    HEAP32[$scevgep208 + 8 >> 2] = HEAP32[$new_thmm209 + 8 >> 2];
+    var $177 = $sb_0185 + 1 | 0;
+    var $exitcond210 = ($177 | 0) == 13;
+    if ($exitcond210) {
+      label = 52;
+      break;
+    } else {
+      var $sb_0185 = $177;
+      label = 33;
+      break;
+    }
+   case 52:
+    var $179 = $chn_4187 + 1 | 0;
+    var $exitcond211 = ($179 | 0) == ($36 | 0);
+    if ($exitcond211) {
+      label = 32;
+      break;
+    } else {
+      var $chn_4187 = $179;
+      label = 31;
+      break;
+    }
+   case 53:
+    var $chn_5175;
+    var $180 = $ns_attacks + ($chn_5175 << 4) + 8 | 0;
+    var $181 = HEAP32[$180 >> 2];
+    var $182 = $gfc + 27780 + ($chn_5175 << 2) | 0;
+    HEAP32[$182 >> 2] = $181;
+    var $183 = $chn_5175 + 1 | 0;
+    var $exitcond205 = ($183 | 0) == ($36 | 0);
+    if ($exitcond205) {
+      label = 54;
+      break;
+    } else {
+      var $chn_5175 = $183;
+      label = 53;
+      break;
+    }
+   case 54:
+    var $184 = $gfc + 72 | 0;
+    var $185 = HEAP32[$184 >> 2];
+    _vbrpsy_apply_block_type($2, $185, $42, $blocktype_d);
+    var $186 = ($36 | 0) > 0;
+    if ($186) {
+      label = 55;
+      break;
+    } else {
+      label = 68;
+      break;
+    }
+   case 55:
+    var $187 = $percep_MS_entropy - 8 | 0;
+    var $188 = $blocktype_d + 4 | 0;
+    var $189 = $gfc + 84904 | 0;
+    var $190 = ($12 | 0) == 0;
+    var $chn_6173 = 0;
+    label = 56;
+    break;
+   case 56:
+    var $chn_6173;
+    var $192 = ($chn_6173 | 0) > 1;
+    if ($192) {
+      label = 57;
+      break;
+    } else {
+      label = 61;
+      break;
+    }
+   case 57:
+    var $194 = HEAP32[$blocktype_d >> 2];
+    var $195 = ($194 | 0) == 2;
+    if ($195) {
+      label = 59;
+      break;
+    } else {
+      label = 58;
+      break;
+    }
+   case 58:
+    var $197 = HEAP32[$188 >> 2];
+    var $198 = ($197 | 0) == 2;
+    if ($198) {
+      label = 59;
+      break;
+    } else {
+      var $type_0 = 0;
+      label = 60;
+      break;
+    }
+   case 59:
+    var $type_0 = 2;
+    label = 60;
+    break;
+   case 60:
+    var $type_0;
+    var $201 = $chn_6173 - 2 | 0;
+    var $202 = $masking_MS_ratio + $gr_out * 976 + $201 * 488 | 0;
+    var $mr_0 = $202;
+    var $type_1 = $type_0;
+    var $ppe_0 = $187;
+    label = 62;
+    break;
+   case 61:
+    var $204 = $blocktype_d + ($chn_6173 << 2) | 0;
+    var $205 = HEAP32[$204 >> 2];
+    var $206 = $masking_ratio + $gr_out * 976 + $chn_6173 * 488 | 0;
+    var $mr_0 = $206;
+    var $type_1 = $205;
+    var $ppe_0 = $percep_entropy;
+    label = 62;
+    break;
+   case 62:
+    var $ppe_0;
+    var $type_1;
+    var $mr_0;
+    var $208 = ($type_1 | 0) == 2;
+    var $209 = HEAPF32[$189 >> 2];
+    if ($208) {
+      label = 63;
+      break;
+    } else {
+      label = 64;
+      break;
+    }
+   case 63:
+    var $211 = _pecalc_s($mr_0, $209);
+    var $212 = $ppe_0 + ($chn_6173 << 2) | 0;
+    HEAPF32[$212 >> 2] = $211;
+    label = 65;
+    break;
+   case 64:
+    var $214 = _pecalc_l($mr_0, $209);
+    var $215 = $ppe_0 + ($chn_6173 << 2) | 0;
+    HEAPF32[$215 >> 2] = $214;
+    label = 65;
+    break;
+   case 65:
+    if ($190) {
+      label = 67;
+      break;
+    } else {
+      label = 66;
+      break;
+    }
+   case 66:
+    var $218 = $ppe_0 + ($chn_6173 << 2) | 0;
+    var $219 = HEAPF32[$218 >> 2];
+    var $220 = $219;
+    var $221 = $12 + 189236 + ($gr_out << 5) + ($chn_6173 << 3) | 0;
+    HEAPF64[tempDoublePtr >> 3] = $220, HEAP32[$221 >> 2] = HEAP32[tempDoublePtr >> 2], HEAP32[$221 + 4 >> 2] = HEAP32[tempDoublePtr + 4 >> 2];
+    label = 67;
+    break;
+   case 67:
+    var $223 = $chn_6173 + 1 | 0;
+    var $exitcond = ($223 | 0) == ($36 | 0);
+    if ($exitcond) {
+      label = 68;
+      break;
+    } else {
+      var $chn_6173 = $223;
+      label = 56;
+      break;
+    }
+   case 68:
+    STACKTOP = __stackBase__;
+    return 0;
+  }
+}
+_L3psycho_anal_vbr["X"] = 1;
+function _vbrpsy_compute_block_type($cfg, $uselongblock) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = $cfg + 168 | 0;
+    var $2 = HEAP32[$1 >> 2];
+    var $3 = ($2 | 0) == 1;
+    if ($3) {
+      label = 3;
+      break;
+    } else {
+      label = 6;
+      break;
+    }
+   case 3:
+    var $5 = HEAP32[$uselongblock >> 2];
+    var $6 = ($5 | 0) == 0;
+    if ($6) {
+      label = 5;
+      break;
+    } else {
+      label = 4;
+      break;
+    }
+   case 4:
+    var $8 = $uselongblock + 4 | 0;
+    var $9 = HEAP32[$8 >> 2];
+    var $10 = ($9 | 0) == 0;
+    if ($10) {
+      label = 5;
+      break;
+    } else {
+      label = 6;
+      break;
+    }
+   case 5:
+    var $12 = $uselongblock + 4 | 0;
+    HEAP32[$12 >> 2] = 0;
+    HEAP32[$uselongblock >> 2] = 0;
+    label = 6;
+    break;
+   case 6:
+    var $13 = $cfg + 56 | 0;
+    var $14 = HEAP32[$13 >> 2];
+    var $15 = ($14 | 0) > 0;
+    if ($15) {
+      var $chn_013 = 0;
+      label = 7;
+      break;
+    } else {
+      label = 12;
+      break;
+    }
+   case 7:
+    var $chn_013;
+    var $16 = HEAP32[$1 >> 2];
+    var $17 = ($16 | 0) == 2;
+    if ($17) {
+      label = 8;
+      break;
+    } else {
+      var $21 = $16;
+      label = 9;
+      break;
+    }
+   case 8:
+    var $19 = $uselongblock + ($chn_013 << 2) | 0;
+    HEAP32[$19 >> 2] = 1;
+    var $_pr = HEAP32[$1 >> 2];
+    var $21 = $_pr;
+    label = 9;
+    break;
+   case 9:
+    var $21;
+    var $22 = ($21 | 0) == 3;
+    if ($22) {
+      label = 10;
+      break;
+    } else {
+      label = 11;
+      break;
+    }
+   case 10:
+    var $24 = $uselongblock + ($chn_013 << 2) | 0;
+    HEAP32[$24 >> 2] = 0;
+    label = 11;
+    break;
+   case 11:
+    var $26 = $chn_013 + 1 | 0;
+    var $27 = HEAP32[$13 >> 2];
+    var $28 = ($26 | 0) < ($27 | 0);
+    if ($28) {
+      var $chn_013 = $26;
+      label = 7;
+      break;
+    } else {
+      label = 12;
+      break;
+    }
+   case 12:
+    return;
+  }
+}
+function _vbrpsy_attack_detection($gfc, $buffer, $gr_out, $masking_ratio, $masking_MS_ratio, $energy, $sub_short_factor, $ns_attacks, $uselongblock) {
+  var label = 0;
+  var __stackBase__ = STACKTOP;
+  STACKTOP = STACKTOP + 4720 | 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $ns_hpfsmpl = __stackBase__;
+    var $attack_intensity = __stackBase__ + 4608;
+    var $en_subshort = __stackBase__ + 4656;
+    var $en_short = __stackBase__ + 4704;
+    var $1 = $gfc + 140 | 0;
+    var $2 = HEAP32[$1 >> 2];
+    var $3 = ($2 | 0) == 0;
+    if ($3) {
+      var $8 = 0;
+      label = 4;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 3:
+    var $5 = $gfc + 85800 | 0;
+    var $6 = HEAP32[$5 >> 2];
+    var $8 = $6;
+    label = 4;
+    break;
+   case 4:
+    var $8;
+    var $9 = $gfc + 72 | 0;
+    var $10 = HEAP32[$9 >> 2];
+    var $11 = $gfc + 180 | 0;
+    var $12 = HEAP32[$11 >> 2];
+    var $13 = ($12 | 0) == 1;
+    var $14 = $13 ? 4 : $10;
+    var $15 = $ns_hpfsmpl;
+    for (var $$dest = $15 >> 2, $$stop = $$dest + 1152; $$dest < $$stop; $$dest++) {
+      HEAP32[$$dest] = 0;
+    }
+    var $16 = ($10 | 0) > 0;
+    if ($16) {
+      label = 5;
+      break;
+    } else {
+      label = 6;
+      break;
+    }
+   case 5:
+    var $17 = ($14 | 0) > 2;
+    var $chn_0231 = 0;
+    label = 8;
+    break;
+   case 6:
+    var $18 = ($14 | 0) > 0;
+    if ($18) {
+      label = 7;
+      break;
+    } else {
+      label = 55;
+      break;
+    }
+   case 7:
+    var $19 = $en_short;
+    var $20 = $en_short | 0;
+    var $21 = ($8 | 0) == 0;
+    var $22 = $gfc + 85796 | 0;
+    var $23 = $uselongblock + 4 | 0;
+    var $24 = $attack_intensity | 0;
+    var $chn_1223 = 0;
+    label = 13;
+    break;
+   case 8:
+    var $chn_0231;
+    var $26 = $buffer + ($chn_0231 << 2) | 0;
+    var $27 = HEAP32[$26 >> 2];
+    var $i_0230 = 0;
+    label = 9;
+    break;
+   case 9:
+    var $i_0230;
+    var $_sum = $i_0230 + 407 | 0;
+    var $29 = $27 + ($_sum << 2) | 0;
+    var $30 = HEAPF32[$29 >> 2];
+    var $_sum198 = $i_0230 + 397 | 0;
+    var $31 = $27 + ($_sum198 << 2) | 0;
+    var $32 = HEAPF32[$31 >> 2];
+    var $_sum199 = $i_0230 + 418 | 0;
+    var $33 = $27 + ($_sum199 << 2) | 0;
+    var $34 = HEAPF32[$33 >> 2];
+    var $35 = $32 + $34;
+    var $36 = $35 * -1.7303260184043527e-17;
+    var $37 = $30 + $36;
+    var $_sum200 = $i_0230 + 398 | 0;
+    var $38 = $27 + ($_sum200 << 2) | 0;
+    var $39 = HEAPF32[$38 >> 2];
+    var $_sum201 = $i_0230 + 417 | 0;
+    var $40 = $27 + ($_sum201 << 2) | 0;
+    var $41 = HEAPF32[$40 >> 2];
+    var $42 = $39 + $41;
+    var $43 = $42 * -.017031719908118248;
+    var $44 = $43;
+    var $_sum198_1 = $i_0230 + 399 | 0;
+    var $45 = $27 + ($_sum198_1 << 2) | 0;
+    var $46 = HEAPF32[$45 >> 2];
+    var $_sum199_1 = $i_0230 + 416 | 0;
+    var $47 = $27 + ($_sum199_1 << 2) | 0;
+    var $48 = HEAPF32[$47 >> 2];
+    var $49 = $46 + $48;
+    var $50 = $49 * -1.3495279640235235e-17;
+    var $51 = $37 + $50;
+    var $_sum200_1 = $i_0230 + 400 | 0;
+    var $52 = $27 + ($_sum200_1 << 2) | 0;
+    var $53 = HEAPF32[$52 >> 2];
+    var $_sum201_1 = $i_0230 + 415 | 0;
+    var $54 = $27 + ($_sum201_1 << 2) | 0;
+    var $55 = HEAPF32[$54 >> 2];
+    var $56 = $53 + $55;
+    var $57 = $56 * .04180720075964928;
+    var $58 = $44 + $57;
+    var $_sum198_2 = $i_0230 + 401 | 0;
+    var $59 = $27 + ($_sum198_2 << 2) | 0;
+    var $60 = HEAPF32[$59 >> 2];
+    var $_sum199_2 = $i_0230 + 414 | 0;
+    var $61 = $27 + ($_sum199_2 << 2) | 0;
+    var $62 = HEAPF32[$61 >> 2];
+    var $63 = $60 + $62;
+    var $64 = $63 * -6.732779685849225e-17;
+    var $65 = $51 + $64;
+    var $_sum200_2 = $i_0230 + 402 | 0;
+    var $66 = $27 + ($_sum200_2 << 2) | 0;
+    var $67 = HEAPF32[$66 >> 2];
+    var $_sum201_2 = $i_0230 + 413 | 0;
+    var $68 = $27 + ($_sum201_2 << 2) | 0;
+    var $69 = HEAPF32[$68 >> 2];
+    var $70 = $67 + $69;
+    var $71 = $70 * -.08763240277767181;
+    var $72 = $58 + $71;
+    var $_sum198_3 = $i_0230 + 403 | 0;
+    var $73 = $27 + ($_sum198_3 << 2) | 0;
+    var $74 = HEAPF32[$73 >> 2];
+    var $_sum199_3 = $i_0230 + 412 | 0;
+    var $75 = $27 + ($_sum199_3 << 2) | 0;
+    var $76 = HEAPF32[$75 >> 2];
+    var $77 = $74 + $76;
+    var $78 = $77 * -3.0835000291318875e-17;
+    var $79 = $65 + $78;
+    var $_sum200_3 = $i_0230 + 404 | 0;
+    var $80 = $27 + ($_sum200_3 << 2) | 0;
+    var $81 = HEAPF32[$80 >> 2];
+    var $_sum201_3 = $i_0230 + 411 | 0;
+    var $82 = $27 + ($_sum201_3 << 2) | 0;
+    var $83 = HEAPF32[$82 >> 2];
+    var $84 = $81 + $83;
+    var $85 = $84 * .1863476037979126;
+    var $86 = $72 + $85;
+    var $_sum198_4 = $i_0230 + 405 | 0;
+    var $87 = $27 + ($_sum198_4 << 2) | 0;
+    var $88 = HEAPF32[$87 >> 2];
+    var $_sum199_4 = $i_0230 + 410 | 0;
+    var $89 = $27 + ($_sum199_4 << 2) | 0;
+    var $90 = HEAPF32[$89 >> 2];
+    var $91 = $88 + $90;
+    var $92 = $91 * -1.1044240253100168e-16;
+    var $93 = $79 + $92;
+    var $_sum200_4 = $i_0230 + 406 | 0;
+    var $94 = $27 + ($_sum200_4 << 2) | 0;
+    var $95 = HEAPF32[$94 >> 2];
+    var $_sum201_4 = $i_0230 + 409 | 0;
+    var $96 = $27 + ($_sum201_4 << 2) | 0;
+    var $97 = HEAPF32[$96 >> 2];
+    var $98 = $95 + $97;
+    var $99 = $98 * -.6276379823684692;
+    var $100 = $86 + $99;
+    var $101 = $100 + $93;
+    var $102 = $ns_hpfsmpl + $chn_0231 * 2304 + ($i_0230 << 2) | 0;
+    HEAPF32[$102 >> 2] = $101;
+    var $103 = $i_0230 + 1 | 0;
+    var $exitcond245 = ($103 | 0) == 576;
+    if ($exitcond245) {
+      label = 10;
+      break;
+    } else {
+      var $i_0230 = $103;
+      label = 9;
+      break;
+    }
+   case 10:
+    var $105 = $masking_ratio + $gr_out * 976 + $chn_0231 * 488 + 244 | 0;
+    var $106 = $gfc + 26636 + $chn_0231 * 244 | 0;
+    var $107 = $105;
+    var $108 = $106;
+    for (var $$src = $108 >> 2, $$dest = $107 >> 2, $$stop = $$src + 61; $$src < $$stop; $$src++, $$dest++) {
+      HEAP32[$$dest] = HEAP32[$$src];
+    }
+    var $109 = $masking_ratio + $gr_out * 976 + $chn_0231 * 488 | 0;
+    var $110 = $gfc + 25660 + $chn_0231 * 244 | 0;
+    var $111 = $109;
+    var $112 = $110;
+    for (var $$src = $112 >> 2, $$dest = $111 >> 2, $$stop = $$src + 61; $$src < $$stop; $$src++, $$dest++) {
+      HEAP32[$$dest] = HEAP32[$$src];
+    }
+    if ($17) {
+      label = 11;
+      break;
+    } else {
+      label = 12;
+      break;
+    }
+   case 11:
+    var $114 = $masking_MS_ratio + $gr_out * 976 + $chn_0231 * 488 + 244 | 0;
+    var $115 = $chn_0231 + 2 | 0;
+    var $116 = $gfc + 26636 + $115 * 244 | 0;
+    var $117 = $114;
+    var $118 = $116;
+    for (var $$src = $118 >> 2, $$dest = $117 >> 2, $$stop = $$src + 61; $$src < $$stop; $$src++, $$dest++) {
+      HEAP32[$$dest] = HEAP32[$$src];
+    }
+    var $119 = $masking_MS_ratio + $gr_out * 976 + $chn_0231 * 488 | 0;
+    var $120 = $gfc + 25660 + $115 * 244 | 0;
+    var $121 = $119;
+    var $122 = $120;
+    for (var $$src = $122 >> 2, $$dest = $121 >> 2, $$stop = $$src + 61; $$src < $$stop; $$src++, $$dest++) {
+      HEAP32[$$dest] = HEAP32[$$src];
+    }
+    label = 12;
+    break;
+   case 12:
+    var $124 = $chn_0231 + 1 | 0;
+    var $exitcond246 = ($124 | 0) == ($10 | 0);
+    if ($exitcond246) {
+      label = 6;
+      break;
+    } else {
+      var $chn_0231 = $124;
+      label = 8;
+      break;
+    }
+   case 13:
+    var $chn_1223;
+    HEAP32[$19 >> 2] = 0;
+    HEAP32[$19 + 4 >> 2] = 0;
+    HEAP32[$19 + 8 >> 2] = 0;
+    HEAP32[$19 + 12 >> 2] = 0;
+    var $126 = $chn_1223 & 1;
+    var $127 = $ns_hpfsmpl + $126 * 2304 | 0;
+    var $128 = ($chn_1223 | 0) == 2;
+    if ($128) {
+      var $i_1206 = 0;
+      label = 14;
+      break;
+    } else {
+      label = 15;
+      break;
+    }
+   case 14:
+    var $i_1206;
+    var $129 = $ns_hpfsmpl + ($i_1206 << 2) | 0;
+    var $130 = HEAPF32[$129 >> 2];
+    var $131 = $ns_hpfsmpl + 2304 + ($i_1206 << 2) | 0;
+    var $132 = HEAPF32[$131 >> 2];
+    var $133 = $130 + $132;
+    HEAPF32[$129 >> 2] = $133;
+    var $134 = $130 - $132;
+    HEAPF32[$131 >> 2] = $134;
+    var $135 = $i_1206 + 1 | 0;
+    var $exitcond = ($135 | 0) == 576;
+    if ($exitcond) {
+      label = 15;
+      break;
+    } else {
+      var $i_1206 = $135;
+      label = 14;
+      break;
+    }
+   case 15:
+    var $_promoted = HEAPF32[$20 >> 2];
+    var $136 = $gfc + 27636 + $chn_1223 * 36 + 24 | 0;
+    var $137 = HEAPF32[$136 >> 2];
+    var $138 = $en_subshort | 0;
+    HEAPF32[$138 >> 2] = $137;
+    var $139 = $gfc + 27636 + $chn_1223 * 36 + 16 | 0;
+    var $140 = HEAPF32[$139 >> 2];
+    var $141 = $137 / $140;
+    var $142 = $attack_intensity | 0;
+    HEAPF32[$142 >> 2] = $141;
+    var $143 = HEAPF32[$138 >> 2];
+    var $144 = $143 + $_promoted;
+    var $145 = $gfc + 27636 + $chn_1223 * 36 + 28 | 0;
+    var $146 = HEAPF32[$145 >> 2];
+    var $147 = $en_subshort + 4 | 0;
+    HEAPF32[$147 >> 2] = $146;
+    var $148 = $gfc + 27636 + $chn_1223 * 36 + 20 | 0;
+    var $149 = HEAPF32[$148 >> 2];
+    var $150 = $146 / $149;
+    var $151 = $attack_intensity + 4 | 0;
+    HEAPF32[$151 >> 2] = $150;
+    var $152 = HEAPF32[$147 >> 2];
+    var $153 = $152 + $144;
+    var $154 = $gfc + 27636 + $chn_1223 * 36 + 32 | 0;
+    var $155 = HEAPF32[$154 >> 2];
+    var $156 = $en_subshort + 8 | 0;
+    HEAPF32[$156 >> 2] = $155;
+    var $157 = $gfc + 27636 + $chn_1223 * 36 + 24 | 0;
+    var $158 = HEAPF32[$157 >> 2];
+    var $159 = $155 / $158;
+    var $160 = $attack_intensity + 8 | 0;
+    HEAPF32[$160 >> 2] = $159;
+    var $161 = HEAPF32[$156 >> 2];
+    var $162 = $161 + $153;
+    HEAPF32[$20 >> 2] = $162;
+    var $pf_0214 = $127;
+    var $i_3215 = 0;
+    label = 16;
+    break;
+   case 16:
+    var $i_3215;
+    var $pf_0214;
+    var $163 = $pf_0214 + 256 | 0;
+    var $pf_1210 = $pf_0214;
+    var $p_0211 = 1;
+    label = 17;
+    break;
+   case 17:
+    var $p_0211;
+    var $pf_1210;
+    var $165 = HEAPF32[$pf_1210 >> 2];
+    var $fabsf = Math.abs($165);
+    var $166 = $p_0211 < $fabsf;
+    var $p_1 = $166 ? $fabsf : $p_0211;
+    var $167 = $pf_1210 + 4 | 0;
+    var $168 = $167 >>> 0 < $163 >>> 0;
+    if ($168) {
+      var $pf_1210 = $167;
+      var $p_0211 = $p_1;
+      label = 17;
+      break;
+    } else {
+      label = 18;
+      break;
+    }
+   case 18:
+    var $169 = $i_3215 + 3 | 0;
+    var $170 = $en_subshort + ($169 << 2) | 0;
+    HEAPF32[$170 >> 2] = $p_1;
+    var $171 = $gfc + 27636 + $chn_1223 * 36 + ($i_3215 << 2) | 0;
+    HEAPF32[$171 >> 2] = $p_1;
+    var $172 = ($i_3215 | 0) / 3 & -1;
+    var $173 = $172 + 1 | 0;
+    var $174 = $en_short + ($173 << 2) | 0;
+    var $175 = HEAPF32[$174 >> 2];
+    var $176 = $p_1 + $175;
+    HEAPF32[$174 >> 2] = $176;
+    var $177 = $i_3215 + 1 | 0;
+    var $178 = $en_subshort + ($177 << 2) | 0;
+    var $179 = HEAPF32[$178 >> 2];
+    var $180 = $p_1 > $179;
+    if ($180) {
+      label = 19;
+      break;
+    } else {
+      label = 20;
+      break;
+    }
+   case 19:
+    var $182 = $p_1 / $179;
+    var $p_2 = $182;
+    label = 22;
+    break;
+   case 20:
+    var $184 = $p_1 * 10;
+    var $185 = $179 > $184;
+    if ($185) {
+      label = 21;
+      break;
+    } else {
+      var $p_2 = 0;
+      label = 22;
+      break;
+    }
+   case 21:
+    var $187 = $179 / $184;
+    var $p_2 = $187;
+    label = 22;
+    break;
+   case 22:
+    var $p_2;
+    var $189 = $attack_intensity + ($169 << 2) | 0;
+    HEAPF32[$189 >> 2] = $p_2;
+    var $exitcond236 = ($177 | 0) == 9;
+    if ($exitcond236) {
+      label = 23;
+      break;
+    } else {
+      var $pf_0214 = $167;
+      var $i_3215 = $177;
+      label = 16;
+      break;
+    }
+   case 23:
+    var $190 = $en_subshort + 12 | 0;
+    var $191 = HEAPF32[$190 >> 2];
+    var $192 = $en_subshort + 16 | 0;
+    var $193 = HEAPF32[$192 >> 2];
+    var $194 = $191 + $193;
+    var $195 = $en_subshort + 20 | 0;
+    var $196 = HEAPF32[$195 >> 2];
+    var $197 = $194 + $196;
+    var $198 = $196 * 6;
+    var $199 = $198 < $197;
+    if ($199) {
+      label = 24;
+      break;
+    } else {
+      var $factor_0 = 1;
+      label = 26;
+      break;
+    }
+   case 24:
+    var $201 = $193 * 6;
+    var $202 = $201 < $197;
+    if ($202) {
+      label = 25;
+      break;
+    } else {
+      var $factor_0 = .5;
+      label = 26;
+      break;
+    }
+   case 25:
+    var $factor_0 = .25;
+    label = 26;
+    break;
+   case 26:
+    var $factor_0;
+    var $205 = $sub_short_factor + $chn_1223 * 12 | 0;
+    HEAPF32[$205 >> 2] = $factor_0;
+    var $206 = $en_subshort + 24 | 0;
+    var $207 = HEAPF32[$206 >> 2];
+    var $208 = $en_subshort + 28 | 0;
+    var $209 = HEAPF32[$208 >> 2];
+    var $210 = $207 + $209;
+    var $211 = $en_subshort + 32 | 0;
+    var $212 = HEAPF32[$211 >> 2];
+    var $213 = $210 + $212;
+    var $214 = $212 * 6;
+    var $215 = $214 < $213;
+    if ($215) {
+      label = 56;
+      break;
+    } else {
+      var $factor_0_1 = 1;
+      label = 58;
+      break;
+    }
+   case 27:
+    var $217 = HEAPF32[$24 >> 2];
+    var $218 = $attack_intensity + 4 | 0;
+    var $219 = HEAPF32[$218 >> 2];
+    var $220 = $217 < $219;
+    var $x_1 = $220 ? $219 : $217;
+    var $221 = $attack_intensity + 8 | 0;
+    var $222 = HEAPF32[$221 >> 2];
+    var $223 = $x_1 < $222;
+    var $x_1_1 = $223 ? $222 : $x_1;
+    var $224 = $attack_intensity + 12 | 0;
+    var $225 = HEAPF32[$224 >> 2];
+    var $226 = $x_1_1 < $225;
+    var $x_1_2 = $226 ? $225 : $x_1_1;
+    var $227 = $attack_intensity + 16 | 0;
+    var $228 = HEAPF32[$227 >> 2];
+    var $229 = $x_1_2 < $228;
+    var $x_1_3 = $229 ? $228 : $x_1_2;
+    var $230 = $attack_intensity + 20 | 0;
+    var $231 = HEAPF32[$230 >> 2];
+    var $232 = $x_1_3 < $231;
+    var $x_1_4 = $232 ? $231 : $x_1_3;
+    var $233 = $attack_intensity + 24 | 0;
+    var $234 = HEAPF32[$233 >> 2];
+    var $235 = $x_1_4 < $234;
+    var $x_1_5 = $235 ? $234 : $x_1_4;
+    var $236 = $attack_intensity + 28 | 0;
+    var $237 = HEAPF32[$236 >> 2];
+    var $238 = $x_1_5 < $237;
+    var $x_1_6 = $238 ? $237 : $x_1_5;
+    var $239 = $attack_intensity + 32 | 0;
+    var $240 = HEAPF32[$239 >> 2];
+    var $241 = $x_1_6 < $240;
+    var $x_1_7 = $241 ? $240 : $x_1_6;
+    var $242 = $attack_intensity + 36 | 0;
+    var $243 = HEAPF32[$242 >> 2];
+    var $244 = $x_1_7 < $243;
+    var $x_1_8 = $244 ? $243 : $x_1_7;
+    var $245 = $attack_intensity + 40 | 0;
+    var $246 = HEAPF32[$245 >> 2];
+    var $247 = $x_1_8 < $246;
+    var $x_1_9 = $247 ? $246 : $x_1_8;
+    var $248 = $attack_intensity + 44 | 0;
+    var $249 = HEAPF32[$248 >> 2];
+    var $250 = $x_1_9 < $249;
+    var $x_1_10 = $250 ? $249 : $x_1_9;
+    var $251 = $8 + 197108 + ($chn_1223 << 3) | 0;
+    var $252 = (HEAP32[tempDoublePtr >> 2] = HEAP32[$251 >> 2], HEAP32[tempDoublePtr + 4 >> 2] = HEAP32[$251 + 4 >> 2], HEAPF64[tempDoublePtr >> 3]);
+    var $253 = $8 + 197140 + ($gr_out << 5) + ($chn_1223 << 3) | 0;
+    HEAPF64[tempDoublePtr >> 3] = $252, HEAP32[$253 >> 2] = HEAP32[tempDoublePtr >> 2], HEAP32[$253 + 4 >> 2] = HEAP32[tempDoublePtr + 4 >> 2];
+    var $254 = $x_1_10;
+    HEAPF64[tempDoublePtr >> 3] = $254, HEAP32[$251 >> 2] = HEAP32[tempDoublePtr >> 2], HEAP32[$251 + 4 >> 2] = HEAP32[tempDoublePtr + 4 >> 2];
+    label = 28;
+    break;
+   case 28:
+    var $256 = HEAP32[$22 >> 2];
+    var $257 = $256 + 6480 + ($chn_1223 << 2) | 0;
+    var $258 = HEAPF32[$257 >> 2];
+    var $i_6220 = 0;
+    label = 29;
+    break;
+   case 29:
+    var $i_6220;
+    var $260 = ($i_6220 | 0) / 3 & -1;
+    var $261 = $ns_attacks + ($chn_1223 << 4) + ($260 << 2) | 0;
+    var $262 = HEAP32[$261 >> 2];
+    var $263 = ($262 | 0) == 0;
+    if ($263) {
+      label = 30;
+      break;
+    } else {
+      label = 32;
+      break;
+    }
+   case 30:
+    var $265 = $attack_intensity + ($i_6220 << 2) | 0;
+    var $266 = HEAPF32[$265 >> 2];
+    var $267 = $266 > $258;
+    if ($267) {
+      label = 31;
+      break;
+    } else {
+      label = 32;
+      break;
+    }
+   case 31:
+    var $269 = ($i_6220 | 0) % 3;
+    var $270 = $269 + 1 | 0;
+    HEAP32[$261 >> 2] = $270;
+    label = 32;
+    break;
+   case 32:
+    var $272 = $i_6220 + 1 | 0;
+    var $exitcond239 = ($272 | 0) == 12;
+    if ($exitcond239) {
+      label = 33;
+      break;
+    } else {
+      var $i_6220 = $272;
+      label = 29;
+      break;
+    }
+   case 33:
+    var $274 = $ns_attacks + ($chn_1223 << 4) | 0;
+    var $275 = $en_short | 0;
+    var $276 = HEAPF32[$275 >> 2];
+    var $277 = $en_short + 4 | 0;
+    var $278 = HEAPF32[$277 >> 2];
+    var $279 = $276 > $278;
+    var $280 = $279 ? $276 : $278;
+    var $281 = $280 < 4e4;
+    var $282 = $278 * 1.7000000476837158;
+    var $283 = $276 < $282;
+    var $or_cond = $281 & $283;
+    var $284 = $276 * 1.7000000476837158;
+    var $285 = $278 < $284;
+    var $or_cond204 = $or_cond & $285;
+    if ($or_cond204) {
+      label = 34;
+      break;
+    } else {
+      label = 37;
+      break;
+    }
+   case 34:
+    var $287 = HEAP32[$274 >> 2];
+    var $288 = $ns_attacks + ($chn_1223 << 4) + 4 | 0;
+    var $289 = HEAP32[$288 >> 2];
+    var $290 = ($287 | 0) > ($289 | 0);
+    if ($290) {
+      label = 36;
+      break;
+    } else {
+      label = 35;
+      break;
+    }
+   case 35:
+    HEAP32[$274 >> 2] = 0;
+    label = 36;
+    break;
+   case 36:
+    var $293 = $ns_attacks + ($chn_1223 << 4) + 4 | 0;
+    HEAP32[$293 >> 2] = 0;
+    label = 37;
+    break;
+   case 37:
+    var $295 = $en_short + 4 | 0;
+    var $296 = HEAPF32[$295 >> 2];
+    var $297 = $en_short + 8 | 0;
+    var $298 = HEAPF32[$297 >> 2];
+    var $299 = $296 > $298;
+    var $300 = $299 ? $296 : $298;
+    var $301 = $300 < 4e4;
+    var $302 = $298 * 1.7000000476837158;
+    var $303 = $296 < $302;
+    var $or_cond_1 = $301 & $303;
+    var $304 = $296 * 1.7000000476837158;
+    var $305 = $298 < $304;
+    var $or_cond204_1 = $or_cond_1 & $305;
+    if ($or_cond204_1) {
+      label = 62;
+      break;
+    } else {
+      label = 63;
+      break;
+    }
+   case 38:
+    HEAP32[$397 >> 2] = 0;
+    var $_pr = HEAP32[$399 >> 2];
+    var $308 = $_pr;
+    label = 39;
+    break;
+   case 39:
+    var $308;
+    var $309 = ($308 | 0) == 3;
+    if ($309) {
+      label = 41;
+      break;
+    } else {
+      label = 40;
+      break;
+    }
+   case 40:
+    var $311 = HEAP32[$397 >> 2];
+    var $312 = $ns_attacks + ($chn_1223 << 4) + 4 | 0;
+    var $313 = HEAP32[$312 >> 2];
+    var $314 = $313 + $311 | 0;
+    var $315 = $ns_attacks + ($chn_1223 << 4) + 8 | 0;
+    var $316 = HEAP32[$315 >> 2];
+    var $317 = $314 + $316 | 0;
+    var $318 = $ns_attacks + ($chn_1223 << 4) + 12 | 0;
+    var $319 = HEAP32[$318 >> 2];
+    var $320 = -$319 | 0;
+    var $321 = ($317 | 0) == ($320 | 0);
+    if ($321) {
+      var $ns_uselongblock_0 = 1;
+      label = 50;
+      break;
+    } else {
+      label = 41;
+      break;
+    }
+   case 41:
+    var $323 = $ns_attacks + ($chn_1223 << 4) + 4 | 0;
+    var $324 = HEAP32[$323 >> 2];
+    var $325 = ($324 | 0) == 0;
+    if ($325) {
+      label = 44;
+      break;
+    } else {
+      label = 42;
+      break;
+    }
+   case 42:
+    var $327 = HEAP32[$397 >> 2];
+    var $328 = ($327 | 0) == 0;
+    if ($328) {
+      label = 44;
+      break;
+    } else {
+      label = 43;
+      break;
+    }
+   case 43:
+    HEAP32[$323 >> 2] = 0;
+    label = 44;
+    break;
+   case 44:
+    var $331 = $ns_attacks + ($chn_1223 << 4) + 8 | 0;
+    var $332 = HEAP32[$331 >> 2];
+    var $333 = ($332 | 0) == 0;
+    if ($333) {
+      label = 47;
+      break;
+    } else {
+      label = 45;
+      break;
+    }
+   case 45:
+    var $335 = HEAP32[$323 >> 2];
+    var $336 = ($335 | 0) == 0;
+    if ($336) {
+      label = 47;
+      break;
+    } else {
+      label = 46;
+      break;
+    }
+   case 46:
+    HEAP32[$331 >> 2] = 0;
+    label = 47;
+    break;
+   case 47:
+    var $339 = $ns_attacks + ($chn_1223 << 4) + 12 | 0;
+    var $340 = HEAP32[$339 >> 2];
+    var $341 = ($340 | 0) == 0;
+    if ($341) {
+      var $ns_uselongblock_0 = 0;
+      label = 50;
+      break;
+    } else {
+      label = 48;
+      break;
+    }
+   case 48:
+    var $343 = HEAP32[$331 >> 2];
+    var $344 = ($343 | 0) == 0;
+    if ($344) {
+      var $ns_uselongblock_0 = 0;
+      label = 50;
+      break;
+    } else {
+      label = 49;
+      break;
+    }
+   case 49:
+    HEAP32[$339 >> 2] = 0;
+    var $ns_uselongblock_0 = 0;
+    label = 50;
+    break;
+   case 50:
+    var $ns_uselongblock_0;
+    var $347 = ($chn_1223 | 0) < 2;
+    if ($347) {
+      label = 51;
+      break;
+    } else {
+      label = 52;
+      break;
+    }
+   case 51:
+    var $349 = $uselongblock + ($chn_1223 << 2) | 0;
+    HEAP32[$349 >> 2] = $ns_uselongblock_0;
+    label = 54;
+    break;
+   case 52:
+    var $351 = ($ns_uselongblock_0 | 0) == 0;
+    if ($351) {
+      label = 53;
+      break;
+    } else {
+      label = 54;
+      break;
+    }
+   case 53:
+    HEAP32[$23 >> 2] = 0;
+    HEAP32[$uselongblock >> 2] = 0;
+    label = 54;
+    break;
+   case 54:
+    var $354 = $gfc + 27620 + ($chn_1223 << 2) | 0;
+    var $355 = HEAPF32[$354 >> 2];
+    var $356 = $energy + ($chn_1223 << 2) | 0;
+    HEAPF32[$356 >> 2] = $355;
+    var $357 = $chn_1223 + 1 | 0;
+    var $exitcond241 = ($357 | 0) == ($14 | 0);
+    if ($exitcond241) {
+      label = 55;
+      break;
+    } else {
+      var $chn_1223 = $357;
+      label = 13;
+      break;
+    }
+   case 55:
+    STACKTOP = __stackBase__;
+    return;
+   case 56:
+    var $359 = $209 * 6;
+    var $360 = $359 < $213;
+    if ($360) {
+      label = 57;
+      break;
+    } else {
+      var $factor_0_1 = .5;
+      label = 58;
+      break;
+    }
+   case 57:
+    var $factor_0_1 = .25;
+    label = 58;
+    break;
+   case 58:
+    var $factor_0_1;
+    var $363 = $sub_short_factor + $chn_1223 * 12 + 4 | 0;
+    HEAPF32[$363 >> 2] = $factor_0_1;
+    var $364 = $en_subshort + 36 | 0;
+    var $365 = HEAPF32[$364 >> 2];
+    var $366 = $en_subshort + 40 | 0;
+    var $367 = HEAPF32[$366 >> 2];
+    var $368 = $365 + $367;
+    var $369 = $en_subshort + 44 | 0;
+    var $370 = HEAPF32[$369 >> 2];
+    var $371 = $368 + $370;
+    var $372 = $370 * 6;
+    var $373 = $372 < $371;
+    if ($373) {
+      label = 59;
+      break;
+    } else {
+      var $factor_0_2 = 1;
+      label = 61;
+      break;
+    }
+   case 59:
+    var $375 = $367 * 6;
+    var $376 = $375 < $371;
+    if ($376) {
+      label = 60;
+      break;
+    } else {
+      var $factor_0_2 = .5;
+      label = 61;
+      break;
+    }
+   case 60:
+    var $factor_0_2 = .25;
+    label = 61;
+    break;
+   case 61:
+    var $factor_0_2;
+    var $379 = $sub_short_factor + $chn_1223 * 12 + 8 | 0;
+    HEAPF32[$379 >> 2] = $factor_0_2;
+    if ($21) {
+      label = 28;
+      break;
+    } else {
+      label = 27;
+      break;
+    }
+   case 62:
+    var $381 = $ns_attacks + ($chn_1223 << 4) + 8 | 0;
+    HEAP32[$381 >> 2] = 0;
+    label = 63;
+    break;
+   case 63:
+    var $383 = $en_short + 8 | 0;
+    var $384 = HEAPF32[$383 >> 2];
+    var $385 = $en_short + 12 | 0;
+    var $386 = HEAPF32[$385 >> 2];
+    var $387 = $384 > $386;
+    var $388 = $387 ? $384 : $386;
+    var $389 = $388 < 4e4;
+    var $390 = $386 * 1.7000000476837158;
+    var $391 = $384 < $390;
+    var $or_cond_2 = $389 & $391;
+    var $392 = $384 * 1.7000000476837158;
+    var $393 = $386 < $392;
+    var $or_cond204_2 = $or_cond_2 & $393;
+    if ($or_cond204_2) {
+      label = 64;
+      break;
+    } else {
+      label = 65;
+      break;
+    }
+   case 64:
+    var $395 = $ns_attacks + ($chn_1223 << 4) + 12 | 0;
+    HEAP32[$395 >> 2] = 0;
+    label = 65;
+    break;
+   case 65:
+    var $397 = $ns_attacks + ($chn_1223 << 4) | 0;
+    var $398 = HEAP32[$397 >> 2];
+    var $399 = $gfc + 27780 + ($chn_1223 << 2) | 0;
+    var $400 = HEAP32[$399 >> 2];
+    var $401 = ($398 | 0) > ($400 | 0);
+    if ($401) {
+      var $308 = $400;
+      label = 39;
+      break;
+    } else {
+      label = 38;
+      break;
+    }
+  }
+}
+_vbrpsy_attack_detection["X"] = 1;
+function _vbrpsy_compute_fft_l($gfc, $buffer, $chn, $gr_out, $fftenergy, $wsamp_l) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = $gfc + 140 | 0;
+    var $2 = HEAP32[$1 >> 2];
+    var $3 = ($2 | 0) == 0;
+    if ($3) {
+      var $8 = 0;
+      label = 4;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 3:
+    var $5 = $gfc + 85800 | 0;
+    var $6 = HEAP32[$5 >> 2];
+    var $8 = $6;
+    label = 4;
+    break;
+   case 4:
+    var $8;
+    var $9 = ($chn | 0) < 2;
+    if ($9) {
+      label = 5;
+      break;
+    } else {
+      label = 6;
+      break;
+    }
+   case 5:
+    var $11 = $wsamp_l | 0;
+    _fft_long($gfc, $11, $chn, $buffer);
+    label = 8;
+    break;
+   case 6:
+    var $13 = ($chn | 0) == 2;
+    if ($13) {
+      var $j_061 = 1023;
+      label = 7;
+      break;
+    } else {
+      label = 8;
+      break;
+    }
+   case 7:
+    var $j_061;
+    var $14 = $wsamp_l + ($j_061 << 2) | 0;
+    var $15 = HEAPF32[$14 >> 2];
+    var $16 = $wsamp_l + 4096 + ($j_061 << 2) | 0;
+    var $17 = HEAPF32[$16 >> 2];
+    var $18 = $15 + $17;
+    var $19 = $18 * .7071067690849304;
+    HEAPF32[$14 >> 2] = $19;
+    var $20 = $15 - $17;
+    var $21 = $20 * .7071067690849304;
+    HEAPF32[$16 >> 2] = $21;
+    var $22 = $j_061 - 1 | 0;
+    var $23 = ($j_061 | 0) > 0;
+    if ($23) {
+      var $j_061 = $22;
+      label = 7;
+      break;
+    } else {
+      label = 8;
+      break;
+    }
+   case 8:
+    var $24 = $wsamp_l | 0;
+    var $25 = HEAPF32[$24 >> 2];
+    var $26 = $25 * $25;
+    HEAPF32[$fftenergy >> 2] = $26;
+    var $j_158 = 511;
+    label = 9;
+    break;
+   case 9:
+    var $j_158;
+    var $28 = 512 - $j_158 | 0;
+    var $29 = $wsamp_l + ($28 << 2) | 0;
+    var $30 = HEAPF32[$29 >> 2];
+    var $31 = $j_158 + 512 | 0;
+    var $32 = $wsamp_l + ($31 << 2) | 0;
+    var $33 = HEAPF32[$32 >> 2];
+    var $34 = $30 * $30;
+    var $35 = $33 * $33;
+    var $36 = $34 + $35;
+    var $37 = $36 * .5;
+    var $38 = $fftenergy + ($28 << 2) | 0;
+    HEAPF32[$38 >> 2] = $37;
+    var $39 = $j_158 - 1 | 0;
+    var $40 = ($j_158 | 0) > 0;
+    if ($40) {
+      var $j_158 = $39;
+      label = 9;
+      break;
+    } else {
+      var $j_256 = 11;
+      var $totalenergy_057 = 0;
+      label = 10;
+      break;
+    }
+   case 10:
+    var $totalenergy_057;
+    var $j_256;
+    var $41 = $fftenergy + ($j_256 << 2) | 0;
+    var $42 = HEAPF32[$41 >> 2];
+    var $43 = $totalenergy_057 + $42;
+    var $44 = $j_256 + 1 | 0;
+    var $exitcond62 = ($44 | 0) == 513;
+    if ($exitcond62) {
+      label = 11;
+      break;
+    } else {
+      var $j_256 = $44;
+      var $totalenergy_057 = $43;
+      label = 10;
+      break;
+    }
+   case 11:
+    var $46 = $gfc + 27620 + ($chn << 2) | 0;
+    HEAPF32[$46 >> 2] = $43;
+    var $47 = ($8 | 0) == 0;
+    if ($47) {
+      label = 13;
+      break;
+    } else {
+      var $j_354 = 0;
+      label = 12;
+      break;
+    }
+   case 12:
+    var $j_354;
+    var $48 = $8 + 90932 + ($chn << 13) + ($j_354 << 3) | 0;
+    var $49 = (HEAP32[tempDoublePtr >> 2] = HEAP32[$48 >> 2], HEAP32[tempDoublePtr + 4 >> 2] = HEAP32[$48 + 4 >> 2], HEAPF64[tempDoublePtr >> 3]);
+    var $50 = $8 + 123700 + ($gr_out << 15) + ($chn << 13) + ($j_354 << 3) | 0;
+    HEAPF64[tempDoublePtr >> 3] = $49, HEAP32[$50 >> 2] = HEAP32[tempDoublePtr >> 2], HEAP32[$50 + 4 >> 2] = HEAP32[tempDoublePtr + 4 >> 2];
+    var $51 = $fftenergy + ($j_354 << 2) | 0;
+    var $52 = HEAPF32[$51 >> 2];
+    var $53 = $52;
+    HEAPF64[tempDoublePtr >> 3] = $53, HEAP32[$48 >> 2] = HEAP32[tempDoublePtr >> 2], HEAP32[$48 + 4 >> 2] = HEAP32[tempDoublePtr + 4 >> 2];
+    var $54 = $j_354 + 1 | 0;
+    var $exitcond = ($54 | 0) == 513;
+    if ($exitcond) {
+      label = 13;
+      break;
+    } else {
+      var $j_354 = $54;
+      label = 12;
+      break;
+    }
+   case 13:
+    return;
+  }
+}
+_vbrpsy_compute_fft_l["X"] = 1;
+function _vbrpsy_compute_loudness_approximation_l($gfc, $gr_out, $chn, $fftenergy) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = ($chn | 0) < 2;
+    if ($1) {
+      label = 3;
+      break;
+    } else {
+      label = 4;
+      break;
+    }
+   case 3:
+    var $3 = $gfc + 27612 + ($chn << 2) | 0;
+    var $4 = HEAPF32[$3 >> 2];
+    var $5 = $gfc + 27804 + ($gr_out << 3) + ($chn << 2) | 0;
+    HEAPF32[$5 >> 2] = $4;
+    var $6 = $gfc + 85792 | 0;
+    var $7 = HEAP32[$6 >> 2];
+    var $8 = $7 + 724 | 0;
+    var $9 = _psycho_loudness_approx($fftenergy, $8);
+    HEAPF32[$3 >> 2] = $9;
+    label = 4;
+    break;
+   case 4:
+    return;
+  }
+}
+function _vbrpsy_compute_MS_thresholds($eb, $thr, $cb_mld, $ath_cb, $athlower, $msfix, $n) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = $msfix * 2;
+    var $2 = ($n | 0) > 0;
+    if ($2) {
+      label = 3;
+      break;
+    } else {
+      label = 12;
+      break;
+    }
+   case 3:
+    var $3 = $msfix > 0;
+    var $b_082 = 0;
+    label = 4;
+    break;
+   case 4:
+    var $b_082;
+    var $5 = $eb + 512 + ($b_082 << 2) | 0;
+    var $6 = HEAPF32[$5 >> 2];
+    var $7 = $eb + 768 + ($b_082 << 2) | 0;
+    var $8 = HEAPF32[$7 >> 2];
+    var $9 = $thr + ($b_082 << 2) | 0;
+    var $10 = HEAPF32[$9 >> 2];
+    var $11 = $thr + 256 + ($b_082 << 2) | 0;
+    var $12 = HEAPF32[$11 >> 2];
+    var $13 = $thr + 512 + ($b_082 << 2) | 0;
+    var $14 = HEAPF32[$13 >> 2];
+    var $15 = $thr + 768 + ($b_082 << 2) | 0;
+    var $16 = HEAPF32[$15 >> 2];
+    var $17 = $12 * 1.5800000429153442;
+    var $18 = $10 > $17;
+    var $19 = $10 * 1.5800000429153442;
+    var $20 = $12 > $19;
+    var $or_cond = $18 | $20;
+    if ($or_cond) {
+      var $rside_0 = $16;
+      var $rmid_0 = $14;
+      label = 6;
+      break;
+    } else {
+      label = 5;
+      break;
+    }
+   case 5:
+    var $22 = $cb_mld + ($b_082 << 2) | 0;
+    var $23 = HEAPF32[$22 >> 2];
+    var $24 = $8 * $23;
+    var $25 = $6 * $23;
+    var $26 = $16 < $24;
+    var $27 = $26 ? $16 : $24;
+    var $28 = $14 < $25;
+    var $29 = $28 ? $14 : $25;
+    var $30 = $14 > $27;
+    var $31 = $30 ? $14 : $27;
+    var $32 = $16 > $29;
+    var $33 = $32 ? $16 : $29;
+    var $rside_0 = $33;
+    var $rmid_0 = $31;
+    label = 6;
+    break;
+   case 6:
+    var $rmid_0;
+    var $rside_0;
+    if ($3) {
+      label = 7;
+      break;
+    } else {
+      var $rside_1 = $rside_0;
+      var $rmid_1 = $rmid_0;
+      label = 11;
+      break;
+    }
+   case 7:
+    var $36 = $ath_cb + ($b_082 << 2) | 0;
+    var $37 = HEAPF32[$36 >> 2];
+    var $38 = $37 * $athlower;
+    var $39 = $10 > $38;
+    var $40 = $39 ? $10 : $38;
+    var $41 = $12 > $38;
+    var $42 = $41 ? $12 : $38;
+    var $43 = $rmid_0 > $38;
+    var $44 = $43 ? $rmid_0 : $38;
+    var $45 = $rside_0 > $38;
+    var $46 = $45 ? $rside_0 : $38;
+    var $47 = $44 + $46;
+    var $48 = $47 > 0;
+    if ($48) {
+      label = 8;
+      break;
+    } else {
+      var $thmM_0 = $44;
+      var $thmS_0 = $46;
+      label = 10;
+      break;
+    }
+   case 8:
+    var $50 = $40 < $42;
+    var $51 = $50 ? $40 : $42;
+    var $52 = $1 * $51;
+    var $53 = $52 < $47;
+    if ($53) {
+      label = 9;
+      break;
+    } else {
+      var $thmM_0 = $44;
+      var $thmS_0 = $46;
+      label = 10;
+      break;
+    }
+   case 9:
+    var $55 = $52 / $47;
+    var $56 = $44 * $55;
+    var $57 = $46 * $55;
+    var $thmM_0 = $56;
+    var $thmS_0 = $57;
+    label = 10;
+    break;
+   case 10:
+    var $thmS_0;
+    var $thmM_0;
+    var $59 = $thmM_0 < $rmid_0;
+    var $60 = $59 ? $thmM_0 : $rmid_0;
+    var $61 = $thmS_0 < $rside_0;
+    var $62 = $61 ? $thmS_0 : $rside_0;
+    var $rside_1 = $62;
+    var $rmid_1 = $60;
+    label = 11;
+    break;
+   case 11:
+    var $rmid_1;
+    var $rside_1;
+    var $64 = $rmid_1 > $6;
+    var $rmid_2 = $64 ? $6 : $rmid_1;
+    var $65 = $rside_1 > $8;
+    var $rside_2 = $65 ? $8 : $rside_1;
+    HEAPF32[$13 >> 2] = $rmid_2;
+    HEAPF32[$15 >> 2] = $rside_2;
+    var $66 = $b_082 + 1 | 0;
+    var $exitcond = ($66 | 0) == ($n | 0);
+    if ($exitcond) {
+      label = 12;
+      break;
+    } else {
+      var $b_082 = $66;
+      label = 4;
+      break;
+    }
+   case 12:
+    return;
+  }
+}
+_vbrpsy_compute_MS_thresholds["X"] = 1;
+function _vbrpsy_skip_masking_s($gfc, $chn, $sblock) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = ($sblock | 0) == 0;
+    if ($1) {
+      label = 3;
+      break;
+    } else {
+      label = 5;
+      break;
+    }
+   case 3:
+    var $3 = $gfc + 85796 | 0;
+    var $4 = HEAP32[$3 >> 2];
+    var $5 = $4 + 4308 | 0;
+    var $6 = HEAP32[$5 >> 2];
+    var $7 = ($6 | 0) > 0;
+    if ($7) {
+      var $b_09 = 0;
+      label = 4;
+      break;
+    } else {
+      label = 5;
+      break;
+    }
+   case 4:
+    var $b_09;
+    var $8 = $gfc + 23612 + ($chn << 8) + ($b_09 << 2) | 0;
+    var $9 = HEAPF32[$8 >> 2];
+    var $10 = $gfc + 24636 + ($chn << 8) + ($b_09 << 2) | 0;
+    HEAPF32[$10 >> 2] = $9;
+    var $11 = $b_09 + 1 | 0;
+    var $exitcond = ($11 | 0) == ($6 | 0);
+    if ($exitcond) {
+      label = 5;
+      break;
+    } else {
+      var $b_09 = $11;
+      label = 4;
+      break;
+    }
+   case 5:
+    return;
+  }
+}
+function _vbrpsy_apply_block_type($psv, $nch, $uselongblock, $blocktype_d) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = ($nch | 0) > 0;
+    if ($1) {
+      var $chn_020 = 0;
+      label = 3;
+      break;
+    } else {
+      label = 10;
+      break;
+    }
+   case 3:
+    var $chn_020;
+    var $2 = $uselongblock + ($chn_020 << 2) | 0;
+    var $3 = HEAP32[$2 >> 2];
+    var $4 = ($3 | 0) == 0;
+    var $5 = $psv + 6232 + ($chn_020 << 2) | 0;
+    var $6 = HEAP32[$5 >> 2];
+    if ($4) {
+      label = 5;
+      break;
+    } else {
+      label = 4;
+      break;
+    }
+   case 4:
+    var $8 = ($6 | 0) == 2;
+    var $_ = $8 ? 3 : 0;
+    var $blocktype_0 = $_;
+    label = 9;
+    break;
+   case 5:
+    var $10 = ($6 | 0) == 0;
+    if ($10) {
+      label = 6;
+      break;
+    } else {
+      label = 7;
+      break;
+    }
+   case 6:
+    HEAP32[$5 >> 2] = 1;
+    var $blocktype_0 = 2;
+    label = 9;
+    break;
+   case 7:
+    var $_pr = HEAP32[$5 >> 2];
+    var $12 = ($_pr | 0) == 3;
+    if ($12) {
+      label = 8;
+      break;
+    } else {
+      var $blocktype_0 = 2;
+      label = 9;
+      break;
+    }
+   case 8:
+    HEAP32[$5 >> 2] = 2;
+    var $blocktype_0 = 2;
+    label = 9;
+    break;
+   case 9:
+    var $blocktype_0;
+    var $15 = HEAP32[$5 >> 2];
+    var $16 = $blocktype_d + ($chn_020 << 2) | 0;
+    HEAP32[$16 >> 2] = $15;
+    HEAP32[$5 >> 2] = $blocktype_0;
+    var $17 = $chn_020 + 1 | 0;
+    var $exitcond = ($17 | 0) == ($nch | 0);
+    if ($exitcond) {
+      label = 10;
+      break;
+    } else {
+      var $chn_020 = $17;
+      label = 3;
+      break;
+    }
+   case 10:
+    return;
+  }
+}
+function _vbrpsy_compute_masking_l($gfc, $fftenergy, $eb_l, $thr, $chn) {
+  var label = 0;
+  var __stackBase__ = STACKTOP;
+  STACKTOP = STACKTOP + 580 | 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $max = __stackBase__;
+    var $avg = __stackBase__ + 256;
+    var $mask_idx_l = __stackBase__ + 512;
+    var $1 = $gfc + 85796 | 0;
+    var $2 = HEAP32[$1 >> 2];
+    var $3 = $2 | 0;
+    var $4 = $max | 0;
+    var $5 = $avg | 0;
+    _calc_energy($3, $fftenergy, $eb_l, $4, $5);
+    var $6 = $mask_idx_l | 0;
+    _calc_mask_index_l($gfc, $4, $5, $6);
+    var $7 = $2 + 2148 | 0;
+    var $8 = HEAP32[$7 >> 2];
+    var $9 = ($8 | 0) > 0;
+    if ($9) {
+      label = 3;
+      break;
+    } else {
+      var $b_1113 = 0;
+      label = 24;
+      break;
+    }
+   case 3:
+    var $10 = $gfc + 84904 | 0;
+    var $11 = $2 + 2156 | 0;
+    var $12 = $chn & 1;
+    var $13 = $gfc + 27796 + ($12 << 2) | 0;
+    var $b_0127 = 0;
+    var $k_0128 = 0;
+    label = 5;
+    break;
+   case 4:
+    var $14 = ($134 | 0) < 64;
+    if ($14) {
+      var $b_1113 = $134;
+      label = 24;
+      break;
+    } else {
+      label = 25;
+      break;
+    }
+   case 5:
+    var $k_0128;
+    var $b_0127;
+    var $16 = $2 + ($b_0127 << 2) | 0;
+    var $17 = HEAPF32[$16 >> 2];
+    var $18 = HEAPF32[$10 >> 2];
+    var $19 = $17 * $18;
+    var $20 = $2 + 1204 + ($b_0127 << 3) | 0;
+    var $21 = HEAP32[$20 >> 2];
+    var $22 = $2 + 1204 + ($b_0127 << 3) + 4 | 0;
+    var $23 = HEAP32[$22 >> 2];
+    var $24 = $mask_idx_l + $b_0127 | 0;
+    var $25 = HEAP8[$24];
+    var $26 = $25 & 255;
+    var $27 = _mask_add_delta($26);
+    var $28 = $mask_idx_l + $21 | 0;
+    var $29 = HEAP8[$28];
+    var $30 = $29 & 255;
+    var $31 = HEAP32[$11 >> 2];
+    var $32 = $31 + ($k_0128 << 2) | 0;
+    var $33 = HEAPF32[$32 >> 2];
+    var $34 = $eb_l + ($21 << 2) | 0;
+    var $35 = HEAPF32[$34 >> 2];
+    var $36 = $33 * $35;
+    var $37 = 5249776 + ($30 << 2) | 0;
+    var $38 = HEAPF32[$37 >> 2];
+    var $39 = $36 * $38;
+    var $k_1114 = $k_0128 + 1 | 0;
+    var $kk_0115 = $21 + 1 | 0;
+    var $40 = ($kk_0115 | 0) > ($23 | 0);
+    if ($40) {
+      var $ecb_0_lcssa = $39;
+      var $dd_0_lcssa = $30;
+      var $dd_n_0_lcssa = 2;
+      var $k_1_lcssa = $k_1114;
+      label = 8;
+      break;
+    } else {
+      var $ecb_0116 = $39;
+      var $dd_0117 = $30;
+      var $dd_n_0118 = 1;
+      var $k_1119 = $k_1114;
+      var $kk_0120 = $kk_0115;
+      label = 6;
+      break;
+    }
+   case 6:
+    var $kk_0120;
+    var $k_1119;
+    var $dd_n_0118;
+    var $dd_0117;
+    var $ecb_0116;
+    var $41 = $mask_idx_l + $kk_0120 | 0;
+    var $42 = HEAP8[$41];
+    var $43 = $42 & 255;
+    var $44 = $43 + $dd_0117 | 0;
+    var $45 = $dd_n_0118 + 1 | 0;
+    var $46 = HEAP32[$11 >> 2];
+    var $47 = $46 + ($k_1119 << 2) | 0;
+    var $48 = HEAPF32[$47 >> 2];
+    var $49 = $eb_l + ($kk_0120 << 2) | 0;
+    var $50 = HEAPF32[$49 >> 2];
+    var $51 = $48 * $50;
+    var $52 = 5249776 + ($43 << 2) | 0;
+    var $53 = HEAPF32[$52 >> 2];
+    var $54 = $51 * $53;
+    var $55 = $kk_0120 - $b_0127 | 0;
+    var $56 = _vbrpsy_mask_add($ecb_0116, $54, $55, $27);
+    var $k_1 = $k_1119 + 1 | 0;
+    var $kk_0 = $kk_0120 + 1 | 0;
+    var $57 = ($kk_0 | 0) > ($23 | 0);
+    if ($57) {
+      label = 7;
+      break;
+    } else {
+      var $ecb_0116 = $56;
+      var $dd_0117 = $44;
+      var $dd_n_0118 = $45;
+      var $k_1119 = $k_1;
+      var $kk_0120 = $kk_0;
+      label = 6;
+      break;
+    }
+   case 7:
+    var $phitmp = $45 << 1;
+    var $ecb_0_lcssa = $56;
+    var $dd_0_lcssa = $44;
+    var $dd_n_0_lcssa = $phitmp;
+    var $k_1_lcssa = $k_1;
+    label = 8;
+    break;
+   case 8:
+    var $k_1_lcssa;
+    var $dd_n_0_lcssa;
+    var $dd_0_lcssa;
+    var $ecb_0_lcssa;
+    var $59 = $dd_0_lcssa << 1;
+    var $60 = $59 | 1;
+    var $61 = ($60 | 0) / ($dd_n_0_lcssa | 0) & -1;
+    var $62 = 5249776 + ($61 << 2) | 0;
+    var $63 = HEAPF32[$62 >> 2];
+    var $64 = $63 * .5;
+    var $65 = $ecb_0_lcssa * $64;
+    var $66 = HEAP32[$13 >> 2];
+    var $67 = ($66 | 0) == 2;
+    if ($67) {
+      label = 9;
+      break;
+    } else {
+      label = 12;
+      break;
+    }
+   case 9:
+    var $69 = $gfc + 21564 + ($chn << 8) + ($b_0127 << 2) | 0;
+    var $70 = HEAPF32[$69 >> 2];
+    var $71 = $70 * 2;
+    var $72 = $71 > 0;
+    if ($72) {
+      label = 10;
+      break;
+    } else {
+      label = 11;
+      break;
+    }
+   case 10:
+    var $74 = $65 < $71;
+    var $75 = $74 ? $65 : $71;
+    var $76 = $thr + ($b_0127 << 2) | 0;
+    HEAPF32[$76 >> 2] = $75;
+    label = 15;
+    break;
+   case 11:
+    var $78 = $65;
+    var $79 = $eb_l + ($b_0127 << 2) | 0;
+    var $80 = HEAPF32[$79 >> 2];
+    var $81 = $80;
+    var $82 = $81 * .3;
+    var $83 = $78 < $82;
+    var $_ = $83 ? $78 : $82;
+    var $84 = $_;
+    var $85 = $thr + ($b_0127 << 2) | 0;
+    HEAPF32[$85 >> 2] = $84;
+    label = 15;
+    break;
+   case 12:
+    var $87 = $gfc + 22588 + ($chn << 8) + ($b_0127 << 2) | 0;
+    var $88 = HEAPF32[$87 >> 2];
+    var $89 = $88 * 16;
+    var $90 = $gfc + 21564 + ($chn << 8) + ($b_0127 << 2) | 0;
+    var $91 = HEAPF32[$90 >> 2];
+    var $92 = $91 * 2;
+    var $93 = $89 > 0;
+    var $ecb_limit_2_0 = $93 ? $89 : $65;
+    var $94 = $92 > 0;
+    var $ecb_limit_1_0 = $94 ? $92 : $65;
+    var $95 = ($66 | 0) == 0;
+    if ($95) {
+      label = 13;
+      break;
+    } else {
+      var $ecb_limit1_0 = $ecb_limit_1_0;
+      label = 14;
+      break;
+    }
+   case 13:
+    var $97 = $ecb_limit_1_0 < $ecb_limit_2_0;
+    var $98 = $97 ? $ecb_limit_1_0 : $ecb_limit_2_0;
+    var $ecb_limit1_0 = $98;
+    label = 14;
+    break;
+   case 14:
+    var $ecb_limit1_0;
+    var $100 = $65 < $ecb_limit1_0;
+    var $101 = $100 ? $65 : $ecb_limit1_0;
+    var $102 = $thr + ($b_0127 << 2) | 0;
+    HEAPF32[$102 >> 2] = $101;
+    label = 15;
+    break;
+   case 15:
+    var $104 = $gfc + 21564 + ($chn << 8) + ($b_0127 << 2) | 0;
+    var $105 = HEAPF32[$104 >> 2];
+    var $106 = $gfc + 22588 + ($chn << 8) + ($b_0127 << 2) | 0;
+    HEAPF32[$106 >> 2] = $105;
+    HEAPF32[$104 >> 2] = $65;
+    var $107 = $max + ($b_0127 << 2) | 0;
+    var $108 = HEAPF32[$107 >> 2];
+    var $109 = $2 + 256 + ($b_0127 << 2) | 0;
+    var $110 = HEAPF32[$109 >> 2];
+    var $111 = $108 * $110;
+    var $112 = $64 * $111;
+    var $113 = $thr + ($b_0127 << 2) | 0;
+    var $114 = HEAPF32[$113 >> 2];
+    var $115 = $114 > $112;
+    if ($115) {
+      label = 16;
+      break;
+    } else {
+      label = 17;
+      break;
+    }
+   case 16:
+    HEAPF32[$113 >> 2] = $112;
+    label = 17;
+    break;
+   case 17:
+    var $118 = $19 > 1;
+    if ($118) {
+      label = 18;
+      break;
+    } else {
+      label = 19;
+      break;
+    }
+   case 18:
+    var $120 = HEAPF32[$113 >> 2];
+    var $121 = $19 * $120;
+    HEAPF32[$113 >> 2] = $121;
+    label = 19;
+    break;
+   case 19:
+    var $123 = HEAPF32[$113 >> 2];
+    var $124 = $eb_l + ($b_0127 << 2) | 0;
+    var $125 = HEAPF32[$124 >> 2];
+    var $126 = $123 > $125;
+    if ($126) {
+      label = 20;
+      break;
+    } else {
+      label = 21;
+      break;
+    }
+   case 20:
+    HEAPF32[$113 >> 2] = $125;
+    label = 21;
+    break;
+   case 21:
+    var $129 = $19 < 1;
+    if ($129) {
+      label = 22;
+      break;
+    } else {
+      label = 23;
+      break;
+    }
+   case 22:
+    var $131 = HEAPF32[$113 >> 2];
+    var $132 = $19 * $131;
+    HEAPF32[$113 >> 2] = $132;
+    label = 23;
+    break;
+   case 23:
+    var $134 = $b_0127 + 1 | 0;
+    var $135 = HEAP32[$7 >> 2];
+    var $136 = ($134 | 0) < ($135 | 0);
+    if ($136) {
+      var $b_0127 = $134;
+      var $k_0128 = $k_1_lcssa;
+      label = 5;
+      break;
+    } else {
+      label = 4;
+      break;
+    }
+   case 24:
+    var $b_1113;
+    var $137 = $eb_l + ($b_1113 << 2) | 0;
+    HEAPF32[$137 >> 2] = 0;
+    var $138 = $thr + ($b_1113 << 2) | 0;
+    HEAPF32[$138 >> 2] = 0;
+    var $139 = $b_1113 + 1 | 0;
+    var $exitcond = ($139 | 0) == 64;
+    if ($exitcond) {
+      label = 25;
+      break;
+    } else {
+      var $b_1113 = $139;
+      label = 24;
+      break;
+    }
+   case 25:
+    STACKTOP = __stackBase__;
+    return;
+  }
+}
+_vbrpsy_compute_masking_l["X"] = 1;
+function _convert_partition2scalefac_l($gfc, $eb, $thr, $chn) {
+  _convert_partition2scalefac(HEAP32[$gfc + 85796 >> 2] | 0, $eb, $thr, $gfc + 26636 + $chn * 244 | 0, $gfc + 25660 + $chn * 244 | 0);
+  return;
+}
+function _convert_partition2scalefac_l_to_s($gfc, $eb, $thr, $chn) {
+  var label = 0;
+  var __stackBase__ = STACKTOP;
+  STACKTOP = STACKTOP + 104 | 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $enn = __stackBase__;
+    var $thm = __stackBase__ + 52;
+    var $1 = $gfc + 85796 | 0;
+    var $2 = HEAP32[$1 >> 2];
+    var $3 = $2 + 4320 | 0;
+    var $4 = $enn | 0;
+    var $5 = $thm | 0;
+    _convert_partition2scalefac($3, $eb, $thr, $4, $5);
+    var $sb_016 = 0;
+    label = 3;
+    break;
+   case 3:
+    var $sb_016;
+    var $7 = $enn + ($sb_016 << 2) | 0;
+    var $8 = HEAPF32[$7 >> 2];
+    var $9 = $thm + ($sb_016 << 2) | 0;
+    var $10 = HEAPF32[$9 >> 2];
+    var $11 = $10 * .015625;
+    var $12 = $gfc + 26636 + $chn * 244 + 88 + $sb_016 * 12 | 0;
+    HEAPF32[$12 >> 2] = $8;
+    var $13 = $gfc + 25660 + $chn * 244 + 88 + $sb_016 * 12 | 0;
+    HEAPF32[$13 >> 2] = $11;
+    var $14 = $gfc + 26636 + $chn * 244 + 88 + $sb_016 * 12 + 4 | 0;
+    HEAPF32[$14 >> 2] = $8;
+    var $15 = $gfc + 25660 + $chn * 244 + 88 + $sb_016 * 12 + 4 | 0;
+    HEAPF32[$15 >> 2] = $11;
+    var $16 = $gfc + 26636 + $chn * 244 + 88 + $sb_016 * 12 + 8 | 0;
+    HEAPF32[$16 >> 2] = $8;
+    var $17 = $gfc + 25660 + $chn * 244 + 88 + $sb_016 * 12 + 8 | 0;
+    HEAPF32[$17 >> 2] = $11;
+    var $18 = $sb_016 + 1 | 0;
+    var $exitcond = ($18 | 0) == 13;
+    if ($exitcond) {
+      label = 4;
+      break;
+    } else {
+      var $sb_016 = $18;
+      label = 3;
+      break;
+    }
+   case 4:
+    STACKTOP = __stackBase__;
+    return;
+  }
+}
+function _vbrpsy_compute_fft_s($gfc, $buffer, $chn, $sblock, $fftenergy_s, $wsamp_s) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = ($sblock | 0) == 0;
+    var $2 = ($chn | 0) < 2;
+    var $or_cond = $1 & $2;
+    if ($or_cond) {
+      label = 3;
+      break;
+    } else {
+      label = 4;
+      break;
+    }
+   case 3:
+    var $4 = $wsamp_s | 0;
+    _fft_short($gfc, $4, $chn, $buffer);
+    label = 4;
+    break;
+   case 4:
+    var $6 = ($chn | 0) == 2;
+    if ($6) {
+      var $j_044 = 255;
+      label = 5;
+      break;
+    } else {
+      label = 6;
+      break;
+    }
+   case 5:
+    var $j_044;
+    var $7 = $wsamp_s + ($sblock << 10) + ($j_044 << 2) | 0;
+    var $8 = HEAPF32[$7 >> 2];
+    var $9 = $wsamp_s + 3072 + ($sblock << 10) + ($j_044 << 2) | 0;
+    var $10 = HEAPF32[$9 >> 2];
+    var $11 = $8 + $10;
+    var $12 = $11 * .7071067690849304;
+    HEAPF32[$7 >> 2] = $12;
+    var $13 = $8 - $10;
+    var $14 = $13 * .7071067690849304;
+    HEAPF32[$9 >> 2] = $14;
+    var $15 = $j_044 - 1 | 0;
+    var $16 = ($j_044 | 0) > 0;
+    if ($16) {
+      var $j_044 = $15;
+      label = 5;
+      break;
+    } else {
+      label = 6;
+      break;
+    }
+   case 6:
+    var $17 = $wsamp_s + ($sblock << 10) | 0;
+    var $18 = HEAPF32[$17 >> 2];
+    var $19 = $fftenergy_s + $sblock * 516 | 0;
+    var $20 = $18 * $18;
+    HEAPF32[$19 >> 2] = $20;
+    var $j_143 = 127;
+    label = 7;
+    break;
+   case 7:
+    var $j_143;
+    var $22 = 128 - $j_143 | 0;
+    var $23 = $wsamp_s + ($sblock << 10) + ($22 << 2) | 0;
+    var $24 = HEAPF32[$23 >> 2];
+    var $25 = $j_143 + 128 | 0;
+    var $26 = $wsamp_s + ($sblock << 10) + ($25 << 2) | 0;
+    var $27 = HEAPF32[$26 >> 2];
+    var $28 = $24 * $24;
+    var $29 = $27 * $27;
+    var $30 = $28 + $29;
+    var $31 = $30 * .5;
+    var $32 = $fftenergy_s + $sblock * 516 + ($22 << 2) | 0;
+    HEAPF32[$32 >> 2] = $31;
+    var $33 = $j_143 - 1 | 0;
+    var $34 = ($j_143 | 0) > 0;
+    if ($34) {
+      var $j_143 = $33;
+      label = 7;
+      break;
+    } else {
+      label = 8;
+      break;
+    }
+   case 8:
+    return;
+  }
+}
+function _vbrpsy_compute_masking_s($gfc, $fftenergy_s, $eb, $thr, $chn, $sblock) {
+  var label = 0;
+  var __stackBase__ = STACKTOP;
+  STACKTOP = STACKTOP + 576 | 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $max = __stackBase__;
+    var $avg = __stackBase__ + 256;
+    var $mask_idx_s = __stackBase__ + 512;
+    var $1 = $gfc + 85796 | 0;
+    var $2 = HEAP32[$1 >> 2];
+    var $3 = $max;
+    for (var $$dest = $3 >> 2, $$stop = $$dest + 64; $$dest < $$stop; $$dest++) {
+      HEAP32[$$dest] = 0;
+    }
+    var $4 = $avg;
+    for (var $$dest = $4 >> 2, $$stop = $$dest + 64; $$dest < $$stop; $$dest++) {
+      HEAP32[$$dest] = 0;
+    }
+    var $5 = $2 + 4308 | 0;
+    var $6 = HEAP32[$5 >> 2];
+    var $7 = ($6 | 0) > 0;
+    if ($7) {
+      var $b_0128 = 0;
+      var $j_0129 = 0;
+      label = 3;
+      break;
+    } else {
+      label = 7;
+      break;
+    }
+   case 3:
+    var $j_0129;
+    var $b_0128;
+    var $8 = $2 + 3876 + ($b_0128 << 2) | 0;
+    var $9 = HEAP32[$8 >> 2];
+    var $10 = ($9 | 0) > 0;
+    if ($10) {
+      var $m_0118 = 0;
+      var $ebb_0119 = 0;
+      var $j_1120 = $j_0129;
+      var $i_0121 = 0;
+      label = 4;
+      break;
+    } else {
+      var $m_0_lcssa = 0;
+      var $ebb_0_lcssa = 0;
+      var $j_1_lcssa = $j_0129;
+      label = 6;
+      break;
+    }
+   case 4:
+    var $i_0121;
+    var $j_1120;
+    var $ebb_0119;
+    var $m_0118;
+    var $11 = $fftenergy_s + $sblock * 516 + ($j_1120 << 2) | 0;
+    var $12 = HEAPF32[$11 >> 2];
+    var $13 = $ebb_0119 + $12;
+    var $14 = $m_0118 < $12;
+    var $m_1 = $14 ? $12 : $m_0118;
+    var $15 = $i_0121 + 1 | 0;
+    var $16 = $j_1120 + 1 | 0;
+    var $exitcond142 = ($15 | 0) == ($9 | 0);
+    if ($exitcond142) {
+      label = 5;
+      break;
+    } else {
+      var $m_0118 = $m_1;
+      var $ebb_0119 = $13;
+      var $j_1120 = $16;
+      var $i_0121 = $15;
+      label = 4;
+      break;
+    }
+   case 5:
+    var $17 = $j_0129 + $9 | 0;
+    var $m_0_lcssa = $m_1;
+    var $ebb_0_lcssa = $13;
+    var $j_1_lcssa = $17;
+    label = 6;
+    break;
+   case 6:
+    var $j_1_lcssa;
+    var $ebb_0_lcssa;
+    var $m_0_lcssa;
+    var $19 = $eb + ($b_0128 << 2) | 0;
+    HEAPF32[$19 >> 2] = $ebb_0_lcssa;
+    var $20 = $max + ($b_0128 << 2) | 0;
+    HEAPF32[$20 >> 2] = $m_0_lcssa;
+    var $21 = $2 + 2672 + ($b_0128 << 2) | 0;
+    var $22 = HEAPF32[$21 >> 2];
+    var $23 = $ebb_0_lcssa * $22;
+    var $24 = $avg + ($b_0128 << 2) | 0;
+    HEAPF32[$24 >> 2] = $23;
+    var $25 = $b_0128 + 1 | 0;
+    var $26 = HEAP32[$5 >> 2];
+    var $27 = ($25 | 0) < ($26 | 0);
+    if ($27) {
+      var $b_0128 = $25;
+      var $j_0129 = $j_1_lcssa;
+      label = 3;
+      break;
+    } else {
+      label = 7;
+      break;
+    }
+   case 7:
+    var $28 = $max | 0;
+    var $29 = $avg | 0;
+    var $30 = $mask_idx_s | 0;
+    _vbrpsy_calc_mask_index_s($gfc, $28, $29, $30);
+    var $31 = HEAP32[$5 >> 2];
+    var $32 = ($31 | 0) > 0;
+    if ($32) {
+      label = 8;
+      break;
+    } else {
+      var $b_299 = 0;
+      label = 22;
+      break;
+    }
+   case 8:
+    var $33 = $gfc + 84904 | 0;
+    var $34 = $2 + 4316 | 0;
+    var $b_1113 = 0;
+    var $j_2114 = 0;
+    label = 10;
+    break;
+   case 9:
+    var $35 = ($117 | 0) < 64;
+    if ($35) {
+      var $b_299 = $117;
+      label = 22;
+      break;
+    } else {
+      label = 23;
+      break;
+    }
+   case 10:
+    var $j_2114;
+    var $b_1113;
+    var $37 = $2 + 3364 + ($b_1113 << 3) | 0;
+    var $38 = HEAP32[$37 >> 2];
+    var $39 = $2 + 3364 + ($b_1113 << 3) + 4 | 0;
+    var $40 = HEAP32[$39 >> 2];
+    var $41 = $mask_idx_s + $b_1113 | 0;
+    var $42 = HEAP8[$41];
+    var $43 = $42 & 255;
+    var $44 = _mask_add_delta($43);
+    var $45 = $2 + 2160 + ($b_1113 << 2) | 0;
+    var $46 = HEAPF32[$45 >> 2];
+    var $47 = HEAPF32[$33 >> 2];
+    var $48 = $46 * $47;
+    var $49 = $mask_idx_s + $38 | 0;
+    var $50 = HEAP8[$49];
+    var $51 = $50 & 255;
+    var $52 = HEAP32[$34 >> 2];
+    var $53 = $52 + ($j_2114 << 2) | 0;
+    var $54 = HEAPF32[$53 >> 2];
+    var $55 = $eb + ($38 << 2) | 0;
+    var $56 = HEAPF32[$55 >> 2];
+    var $57 = $54 * $56;
+    var $58 = 5249776 + ($51 << 2) | 0;
+    var $59 = HEAPF32[$58 >> 2];
+    var $60 = $57 * $59;
+    var $j_3100 = $j_2114 + 1 | 0;
+    var $kk_0101 = $38 + 1 | 0;
+    var $61 = ($kk_0101 | 0) > ($40 | 0);
+    if ($61) {
+      var $dd_0_lcssa = $51;
+      var $dd_n_0_lcssa = 2;
+      var $ecb_0_lcssa = $60;
+      var $j_3_lcssa = $j_3100;
+      label = 13;
+      break;
+    } else {
+      var $dd_0102 = $51;
+      var $dd_n_0103 = 1;
+      var $ecb_0104 = $60;
+      var $j_3105 = $j_3100;
+      var $kk_0106 = $kk_0101;
+      label = 11;
+      break;
+    }
+   case 11:
+    var $kk_0106;
+    var $j_3105;
+    var $ecb_0104;
+    var $dd_n_0103;
+    var $dd_0102;
+    var $62 = $mask_idx_s + $kk_0106 | 0;
+    var $63 = HEAP8[$62];
+    var $64 = $63 & 255;
+    var $65 = $64 + $dd_0102 | 0;
+    var $66 = $dd_n_0103 + 1 | 0;
+    var $67 = HEAP32[$34 >> 2];
+    var $68 = $67 + ($j_3105 << 2) | 0;
+    var $69 = HEAPF32[$68 >> 2];
+    var $70 = $eb + ($kk_0106 << 2) | 0;
+    var $71 = HEAPF32[$70 >> 2];
+    var $72 = $69 * $71;
+    var $73 = 5249776 + ($64 << 2) | 0;
+    var $74 = HEAPF32[$73 >> 2];
+    var $75 = $72 * $74;
+    var $76 = $kk_0106 - $b_1113 | 0;
+    var $77 = _vbrpsy_mask_add($ecb_0104, $75, $76, $44);
+    var $j_3 = $j_3105 + 1 | 0;
+    var $kk_0 = $kk_0106 + 1 | 0;
+    var $78 = ($kk_0 | 0) > ($40 | 0);
+    if ($78) {
+      label = 12;
+      break;
+    } else {
+      var $dd_0102 = $65;
+      var $dd_n_0103 = $66;
+      var $ecb_0104 = $77;
+      var $j_3105 = $j_3;
+      var $kk_0106 = $kk_0;
+      label = 11;
+      break;
+    }
+   case 12:
+    var $phitmp = $66 << 1;
+    var $dd_0_lcssa = $65;
+    var $dd_n_0_lcssa = $phitmp;
+    var $ecb_0_lcssa = $77;
+    var $j_3_lcssa = $j_3;
+    label = 13;
+    break;
+   case 13:
+    var $j_3_lcssa;
+    var $ecb_0_lcssa;
+    var $dd_n_0_lcssa;
+    var $dd_0_lcssa;
+    var $80 = $dd_0_lcssa << 1;
+    var $81 = $80 | 1;
+    var $82 = ($81 | 0) / ($dd_n_0_lcssa | 0) & -1;
+    var $83 = 5249776 + ($82 << 2) | 0;
+    var $84 = HEAPF32[$83 >> 2];
+    var $85 = $84 * .5;
+    var $86 = $ecb_0_lcssa * $85;
+    var $87 = $thr + ($b_1113 << 2) | 0;
+    HEAPF32[$87 >> 2] = $86;
+    var $88 = $gfc + 23612 + ($chn << 8) + ($b_1113 << 2) | 0;
+    var $89 = HEAPF32[$88 >> 2];
+    var $90 = $gfc + 24636 + ($chn << 8) + ($b_1113 << 2) | 0;
+    HEAPF32[$90 >> 2] = $89;
+    HEAPF32[$88 >> 2] = $86;
+    var $91 = $max + ($b_1113 << 2) | 0;
+    var $92 = HEAPF32[$91 >> 2];
+    var $93 = $2 + 2416 + ($b_1113 << 2) | 0;
+    var $94 = HEAPF32[$93 >> 2];
+    var $95 = $92 * $94;
+    var $96 = $85 * $95;
+    var $97 = HEAPF32[$87 >> 2];
+    var $98 = $97 > $96;
+    if ($98) {
+      label = 14;
+      break;
+    } else {
+      label = 15;
+      break;
+    }
+   case 14:
+    HEAPF32[$87 >> 2] = $96;
+    label = 15;
+    break;
+   case 15:
+    var $101 = $48 > 1;
+    if ($101) {
+      label = 16;
+      break;
+    } else {
+      label = 17;
+      break;
+    }
+   case 16:
+    var $103 = HEAPF32[$87 >> 2];
+    var $104 = $48 * $103;
+    HEAPF32[$87 >> 2] = $104;
+    label = 17;
+    break;
+   case 17:
+    var $106 = HEAPF32[$87 >> 2];
+    var $107 = $eb + ($b_1113 << 2) | 0;
+    var $108 = HEAPF32[$107 >> 2];
+    var $109 = $106 > $108;
+    if ($109) {
+      label = 18;
+      break;
+    } else {
+      label = 19;
+      break;
+    }
+   case 18:
+    HEAPF32[$87 >> 2] = $108;
+    label = 19;
+    break;
+   case 19:
+    var $112 = $48 < 1;
+    if ($112) {
+      label = 20;
+      break;
+    } else {
+      label = 21;
+      break;
+    }
+   case 20:
+    var $114 = HEAPF32[$87 >> 2];
+    var $115 = $48 * $114;
+    HEAPF32[$87 >> 2] = $115;
+    label = 21;
+    break;
+   case 21:
+    var $117 = $b_1113 + 1 | 0;
+    var $118 = HEAP32[$5 >> 2];
+    var $119 = ($117 | 0) < ($118 | 0);
+    if ($119) {
+      var $b_1113 = $117;
+      var $j_2114 = $j_3_lcssa;
+      label = 10;
+      break;
+    } else {
+      label = 9;
+      break;
+    }
+   case 22:
+    var $b_299;
+    var $120 = $eb + ($b_299 << 2) | 0;
+    HEAPF32[$120 >> 2] = 0;
+    var $121 = $thr + ($b_299 << 2) | 0;
+    HEAPF32[$121 >> 2] = 0;
+    var $122 = $b_299 + 1 | 0;
+    var $exitcond = ($122 | 0) == 64;
+    if ($exitcond) {
+      label = 23;
+      break;
+    } else {
+      var $b_299 = $122;
+      label = 22;
+      break;
+    }
+   case 23:
+    STACKTOP = __stackBase__;
+    return;
+  }
+}
+_vbrpsy_compute_masking_s["X"] = 1;
+function _convert_partition2scalefac_s($gfc, $eb, $thr, $chn, $sblock) {
+  var __stackBase__ = STACKTOP;
+  STACKTOP = STACKTOP + 104 | 0;
+  var $enn = __stackBase__;
+  var $thm = __stackBase__ + 52;
+  _convert_partition2scalefac(HEAP32[$gfc + 85796 >> 2] + 2160 | 0, $eb, $thr, $enn | 0, $thm | 0);
+  HEAPF32[$gfc + 26636 + $chn * 244 + 88 + ($sblock << 2) >> 2] = HEAPF32[$enn >> 2];
+  HEAPF32[$gfc + 25660 + $chn * 244 + 88 + ($sblock << 2) >> 2] = HEAPF32[$thm >> 2];
+  HEAPF32[$gfc + 26636 + $chn * 244 + 100 + ($sblock << 2) >> 2] = HEAPF32[$enn + 4 >> 2];
+  HEAPF32[$gfc + 25660 + $chn * 244 + 100 + ($sblock << 2) >> 2] = HEAPF32[$thm + 4 >> 2];
+  HEAPF32[$gfc + 26636 + $chn * 244 + 112 + ($sblock << 2) >> 2] = HEAPF32[$enn + 8 >> 2];
+  HEAPF32[$gfc + 25660 + $chn * 244 + 112 + ($sblock << 2) >> 2] = HEAPF32[$thm + 8 >> 2];
+  HEAPF32[$gfc + 26636 + $chn * 244 + 124 + ($sblock << 2) >> 2] = HEAPF32[$enn + 12 >> 2];
+  HEAPF32[$gfc + 25660 + $chn * 244 + 124 + ($sblock << 2) >> 2] = HEAPF32[$thm + 12 >> 2];
+  HEAPF32[$gfc + 26636 + $chn * 244 + 136 + ($sblock << 2) >> 2] = HEAPF32[$enn + 16 >> 2];
+  HEAPF32[$gfc + 25660 + $chn * 244 + 136 + ($sblock << 2) >> 2] = HEAPF32[$thm + 16 >> 2];
+  HEAPF32[$gfc + 26636 + $chn * 244 + 148 + ($sblock << 2) >> 2] = HEAPF32[$enn + 20 >> 2];
+  HEAPF32[$gfc + 25660 + $chn * 244 + 148 + ($sblock << 2) >> 2] = HEAPF32[$thm + 20 >> 2];
+  HEAPF32[$gfc + 26636 + $chn * 244 + 160 + ($sblock << 2) >> 2] = HEAPF32[$enn + 24 >> 2];
+  HEAPF32[$gfc + 25660 + $chn * 244 + 160 + ($sblock << 2) >> 2] = HEAPF32[$thm + 24 >> 2];
+  HEAPF32[$gfc + 26636 + $chn * 244 + 172 + ($sblock << 2) >> 2] = HEAPF32[$enn + 28 >> 2];
+  HEAPF32[$gfc + 25660 + $chn * 244 + 172 + ($sblock << 2) >> 2] = HEAPF32[$thm + 28 >> 2];
+  HEAPF32[$gfc + 26636 + $chn * 244 + 184 + ($sblock << 2) >> 2] = HEAPF32[$enn + 32 >> 2];
+  HEAPF32[$gfc + 25660 + $chn * 244 + 184 + ($sblock << 2) >> 2] = HEAPF32[$thm + 32 >> 2];
+  HEAPF32[$gfc + 26636 + $chn * 244 + 196 + ($sblock << 2) >> 2] = HEAPF32[$enn + 36 >> 2];
+  HEAPF32[$gfc + 25660 + $chn * 244 + 196 + ($sblock << 2) >> 2] = HEAPF32[$thm + 36 >> 2];
+  HEAPF32[$gfc + 26636 + $chn * 244 + 208 + ($sblock << 2) >> 2] = HEAPF32[$enn + 40 >> 2];
+  HEAPF32[$gfc + 25660 + $chn * 244 + 208 + ($sblock << 2) >> 2] = HEAPF32[$thm + 40 >> 2];
+  HEAPF32[$gfc + 26636 + $chn * 244 + 220 + ($sblock << 2) >> 2] = HEAPF32[$enn + 44 >> 2];
+  HEAPF32[$gfc + 25660 + $chn * 244 + 220 + ($sblock << 2) >> 2] = HEAPF32[$thm + 44 >> 2];
+  HEAPF32[$gfc + 26636 + $chn * 244 + 232 + ($sblock << 2) >> 2] = HEAPF32[$enn + 48 >> 2];
+  HEAPF32[$gfc + 25660 + $chn * 244 + 232 + ($sblock << 2) >> 2] = HEAPF32[$thm + 48 >> 2];
+  STACKTOP = __stackBase__;
+  return;
+}
+_convert_partition2scalefac_s["X"] = 1;
+function _NS_INTERP($x, $y, $r) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = $r < 1;
+    if ($1) {
+      label = 3;
+      break;
+    } else {
+      var $_0 = $x;
+      label = 6;
+      break;
+    }
+   case 3:
+    var $3 = $r > 0;
+    if ($3) {
+      label = 4;
+      break;
+    } else {
+      var $_0 = $y;
+      label = 6;
+      break;
+    }
+   case 4:
+    var $5 = $y > 0;
+    if ($5) {
+      label = 5;
+      break;
+    } else {
+      var $_0 = 0;
+      label = 6;
+      break;
+    }
+   case 5:
+    var $7 = $x / $y;
+    var $8 = Math.pow($7, $r);
+    var $9 = $8 * $y;
+    var $_0 = $9;
+    label = 6;
+    break;
+   case 6:
+    var $_0;
+    return $_0;
+  }
+}
+function _pecalc_s($mr, $masking_lower) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $sb_019 = 0;
+    var $pe_s_020 = 309.07000732421875;
+    label = 3;
+    break;
+   case 3:
+    var $pe_s_020;
+    var $sb_019;
+    var $2 = 5291432 + ($sb_019 << 2) | 0;
+    var $3 = $mr + 88 + $sb_019 * 12 | 0;
+    var $4 = HEAPF32[$3 >> 2];
+    var $5 = $4 > 0;
+    if ($5) {
+      label = 4;
+      break;
+    } else {
+      var $pe_s_2 = $pe_s_020;
+      label = 8;
+      break;
+    }
+   case 4:
+    var $7 = $4 * $masking_lower;
+    var $8 = $mr + 332 + $sb_019 * 12 | 0;
+    var $9 = HEAPF32[$8 >> 2];
+    var $10 = $9 > $7;
+    if ($10) {
+      label = 5;
+      break;
+    } else {
+      var $pe_s_2 = $pe_s_020;
+      label = 8;
+      break;
+    }
+   case 5:
+    var $12 = $7 * 1e10;
+    var $13 = $9 > $12;
+    var $14 = HEAPF32[$2 >> 2];
+    var $15 = $14;
+    if ($13) {
+      label = 6;
+      break;
+    } else {
+      label = 7;
+      break;
+    }
+   case 6:
+    var $17 = $15 * 23.02585092994046;
+    var $18 = $pe_s_020;
+    var $19 = $18 + $17;
+    var $20 = $19;
+    var $pe_s_2 = $20;
+    label = 8;
+    break;
+   case 7:
+    var $22 = $9 / $7;
+    var $23 = _fast_log2($22);
+    var $24 = $23;
+    var $25 = $24 * .30102999566398114;
+    var $26 = $15 * $25;
+    var $27 = $pe_s_020;
+    var $28 = $27 + $26;
+    var $29 = $28;
+    var $pe_s_2 = $29;
+    label = 8;
+    break;
+   case 8:
+    var $pe_s_2;
+    var $31 = $mr + 88 + $sb_019 * 12 + 4 | 0;
+    var $32 = HEAPF32[$31 >> 2];
+    var $33 = $32 > 0;
+    if ($33) {
+      label = 10;
+      break;
+    } else {
+      var $pe_s_2_1 = $pe_s_2;
+      label = 14;
+      break;
+    }
+   case 9:
+    return $pe_s_2_2;
+   case 10:
+    var $36 = $32 * $masking_lower;
+    var $37 = $mr + 332 + $sb_019 * 12 + 4 | 0;
+    var $38 = HEAPF32[$37 >> 2];
+    var $39 = $38 > $36;
+    if ($39) {
+      label = 11;
+      break;
+    } else {
+      var $pe_s_2_1 = $pe_s_2;
+      label = 14;
+      break;
+    }
+   case 11:
+    var $41 = $36 * 1e10;
+    var $42 = $38 > $41;
+    var $43 = HEAPF32[$2 >> 2];
+    var $44 = $43;
+    if ($42) {
+      label = 13;
+      break;
+    } else {
+      label = 12;
+      break;
+    }
+   case 12:
+    var $46 = $38 / $36;
+    var $47 = _fast_log2($46);
+    var $48 = $47;
+    var $49 = $48 * .30102999566398114;
+    var $50 = $44 * $49;
+    var $51 = $pe_s_2;
+    var $52 = $51 + $50;
+    var $53 = $52;
+    var $pe_s_2_1 = $53;
+    label = 14;
+    break;
+   case 13:
+    var $55 = $44 * 23.02585092994046;
+    var $56 = $pe_s_2;
+    var $57 = $56 + $55;
+    var $58 = $57;
+    var $pe_s_2_1 = $58;
+    label = 14;
+    break;
+   case 14:
+    var $pe_s_2_1;
+    var $60 = $mr + 88 + $sb_019 * 12 + 8 | 0;
+    var $61 = HEAPF32[$60 >> 2];
+    var $62 = $61 > 0;
+    if ($62) {
+      label = 15;
+      break;
+    } else {
+      var $pe_s_2_2 = $pe_s_2_1;
+      label = 19;
+      break;
+    }
+   case 15:
+    var $64 = $61 * $masking_lower;
+    var $65 = $mr + 332 + $sb_019 * 12 + 8 | 0;
+    var $66 = HEAPF32[$65 >> 2];
+    var $67 = $66 > $64;
+    if ($67) {
+      label = 16;
+      break;
+    } else {
+      var $pe_s_2_2 = $pe_s_2_1;
+      label = 19;
+      break;
+    }
+   case 16:
+    var $69 = $64 * 1e10;
+    var $70 = $66 > $69;
+    var $71 = HEAPF32[$2 >> 2];
+    var $72 = $71;
+    if ($70) {
+      label = 18;
+      break;
+    } else {
+      label = 17;
+      break;
+    }
+   case 17:
+    var $74 = $66 / $64;
+    var $75 = _fast_log2($74);
+    var $76 = $75;
+    var $77 = $76 * .30102999566398114;
+    var $78 = $72 * $77;
+    var $79 = $pe_s_2_1;
+    var $80 = $79 + $78;
+    var $81 = $80;
+    var $pe_s_2_2 = $81;
+    label = 19;
+    break;
+   case 18:
+    var $83 = $72 * 23.02585092994046;
+    var $84 = $pe_s_2_1;
+    var $85 = $84 + $83;
+    var $86 = $85;
+    var $pe_s_2_2 = $86;
+    label = 19;
+    break;
+   case 19:
+    var $pe_s_2_2;
+    var $88 = $sb_019 + 1 | 0;
+    var $exitcond = ($88 | 0) == 12;
+    if ($exitcond) {
+      label = 9;
+      break;
+    } else {
+      var $sb_019 = $88;
+      var $pe_s_020 = $pe_s_2_2;
+      label = 3;
+      break;
+    }
+  }
+}
+_pecalc_s["X"] = 1;
+function _pecalc_l($mr, $masking_lower) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $sb_014 = 0;
+    var $pe_l_015 = 281.0574951171875;
+    label = 3;
+    break;
+   case 3:
+    var $pe_l_015;
+    var $sb_014;
+    var $2 = $mr + ($sb_014 << 2) | 0;
+    var $3 = HEAPF32[$2 >> 2];
+    var $4 = $3 > 0;
+    if ($4) {
+      label = 4;
+      break;
+    } else {
+      var $pe_l_1 = $pe_l_015;
+      label = 8;
+      break;
+    }
+   case 4:
+    var $6 = $3 * $masking_lower;
+    var $7 = $mr + 244 + ($sb_014 << 2) | 0;
+    var $8 = HEAPF32[$7 >> 2];
+    var $9 = $8 > $6;
+    if ($9) {
+      label = 5;
+      break;
+    } else {
+      var $pe_l_1 = $pe_l_015;
+      label = 8;
+      break;
+    }
+   case 5:
+    var $11 = $6 * 1e10;
+    var $12 = $8 > $11;
+    var $13 = 5291480 + ($sb_014 << 2) | 0;
+    var $14 = HEAPF32[$13 >> 2];
+    var $15 = $14;
+    if ($12) {
+      label = 6;
+      break;
+    } else {
+      label = 7;
+      break;
+    }
+   case 6:
+    var $17 = $15 * 23.02585092994046;
+    var $18 = $pe_l_015;
+    var $19 = $18 + $17;
+    var $20 = $19;
+    var $pe_l_1 = $20;
+    label = 8;
+    break;
+   case 7:
+    var $22 = $8 / $6;
+    var $23 = _fast_log2($22);
+    var $24 = $23;
+    var $25 = $24 * .30102999566398114;
+    var $26 = $15 * $25;
+    var $27 = $pe_l_015;
+    var $28 = $27 + $26;
+    var $29 = $28;
+    var $pe_l_1 = $29;
+    label = 8;
+    break;
+   case 8:
+    var $pe_l_1;
+    var $31 = $sb_014 + 1 | 0;
+    var $exitcond = ($31 | 0) == 21;
+    if ($exitcond) {
+      label = 9;
+      break;
+    } else {
+      var $sb_014 = $31;
+      var $pe_l_015 = $pe_l_1;
+      label = 3;
+      break;
+    }
+   case 9:
+    return $pe_l_1;
+  }
+}
+function _psymodel_init($gfp) {
+  var label = 0;
+  var __stackBase__ = STACKTOP;
+  STACKTOP = STACKTOP + 768 | 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $bval = __stackBase__;
+    var $bval_width = __stackBase__ + 256;
+    var $norm = __stackBase__ + 512;
+    var $1 = $gfp + 288 | 0;
+    var $2 = HEAP32[$1 >> 2];
+    var $3 = $2 + 16 | 0;
+    var $4 = $2 + 64 | 0;
+    var $5 = HEAP32[$4 >> 2];
+    var $6 = $5 | 0;
+    var $7 = $2 + 280 | 0;
+    var $8 = HEAPF32[$7 >> 2];
+    var $9 = -$8;
+    var $10 = $2 + 85796 | 0;
+    var $11 = HEAP32[$10 >> 2];
+    var $12 = ($11 | 0) == 0;
+    if ($12) {
+      label = 3;
+      break;
+    } else {
+      var $_0 = 0;
+      label = 62;
+      break;
+    }
+   case 3:
+    var $14 = $norm;
+    for (var $$dest = $14 >> 2, $$stop = $$dest + 64; $$dest < $$stop; $$dest++) {
+      HEAP32[$$dest] = 0;
+    }
+    var $15 = _calloc(1, 6504);
+    var $16 = $15;
+    HEAP32[$10 >> 2] = $16;
+    var $17 = $gfp + 144 | 0;
+    var $18 = HEAP32[$17 >> 2];
+    var $19 = $15 + 6500 | 0;
+    var $20 = $19;
+    HEAP32[$20 >> 2] = $18;
+    var $21 = $2 + 27800 | 0;
+    HEAP32[$21 >> 2] = 0;
+    var $22 = $2 + 27796 | 0;
+    HEAP32[$22 >> 2] = 0;
+    var $i_0343 = 0;
+    label = 4;
+    break;
+   case 4:
+    var $i_0343;
+    var $j_0335 = 0;
+    label = 5;
+    break;
+   case 5:
+    var $j_0335;
+    var $24 = $2 + 21564 + ($i_0343 << 8) + ($j_0335 << 2) | 0;
+    HEAPF32[$24 >> 2] = 0x56bc7600000000000;
+    var $25 = $2 + 22588 + ($i_0343 << 8) + ($j_0335 << 2) | 0;
+    HEAPF32[$25 >> 2] = 0x56bc7600000000000;
+    var $26 = $2 + 24636 + ($i_0343 << 8) + ($j_0335 << 2) | 0;
+    HEAPF32[$26 >> 2] = 1;
+    var $27 = $2 + 23612 + ($i_0343 << 8) + ($j_0335 << 2) | 0;
+    HEAPF32[$27 >> 2] = 1;
+    var $28 = $j_0335 + 1 | 0;
+    var $exitcond356 = ($28 | 0) == 64;
+    if ($exitcond356) {
+      var $sb_0337 = 0;
+      label = 6;
+      break;
+    } else {
+      var $j_0335 = $28;
+      label = 5;
+      break;
+    }
+   case 6:
+    var $sb_0337;
+    var $29 = $2 + 26636 + $i_0343 * 244 + ($sb_0337 << 2) | 0;
+    HEAPF32[$29 >> 2] = 0x56bc7600000000000;
+    var $30 = $2 + 25660 + $i_0343 * 244 + ($sb_0337 << 2) | 0;
+    HEAPF32[$30 >> 2] = 0x56bc7600000000000;
+    var $31 = $sb_0337 + 1 | 0;
+    var $exitcond357 = ($31 | 0) == 22;
+    if ($exitcond357) {
+      label = 7;
+      break;
+    } else {
+      var $sb_0337 = $31;
+      label = 6;
+      break;
+    }
+   case 7:
+    var $32 = $2 + 27780 + ($i_0343 << 2) | 0;
+    var $j_1341 = 0;
+    label = 8;
+    break;
+   case 8:
+    var $j_1341;
+    var $33 = $2 + 26636 + $i_0343 * 244 + 88 + ($j_1341 << 2) | 0;
+    HEAPF32[$33 >> 2] = 0x56bc7600000000000;
+    var $34 = $2 + 25660 + $i_0343 * 244 + 88 + ($j_1341 << 2) | 0;
+    HEAPF32[$34 >> 2] = 0x56bc7600000000000;
+    var $35 = $2 + 26636 + $i_0343 * 244 + 100 + ($j_1341 << 2) | 0;
+    HEAPF32[$35 >> 2] = 0x56bc7600000000000;
+    var $36 = $2 + 25660 + $i_0343 * 244 + 100 + ($j_1341 << 2) | 0;
+    HEAPF32[$36 >> 2] = 0x56bc7600000000000;
+    var $37 = $2 + 26636 + $i_0343 * 244 + 112 + ($j_1341 << 2) | 0;
+    HEAPF32[$37 >> 2] = 0x56bc7600000000000;
+    var $38 = $2 + 25660 + $i_0343 * 244 + 112 + ($j_1341 << 2) | 0;
+    HEAPF32[$38 >> 2] = 0x56bc7600000000000;
+    var $39 = $2 + 26636 + $i_0343 * 244 + 124 + ($j_1341 << 2) | 0;
+    HEAPF32[$39 >> 2] = 0x56bc7600000000000;
+    var $40 = $2 + 25660 + $i_0343 * 244 + 124 + ($j_1341 << 2) | 0;
+    HEAPF32[$40 >> 2] = 0x56bc7600000000000;
+    var $41 = $2 + 26636 + $i_0343 * 244 + 136 + ($j_1341 << 2) | 0;
+    HEAPF32[$41 >> 2] = 0x56bc7600000000000;
+    var $42 = $2 + 25660 + $i_0343 * 244 + 136 + ($j_1341 << 2) | 0;
+    HEAPF32[$42 >> 2] = 0x56bc7600000000000;
+    var $43 = $2 + 26636 + $i_0343 * 244 + 148 + ($j_1341 << 2) | 0;
+    HEAPF32[$43 >> 2] = 0x56bc7600000000000;
+    var $44 = $2 + 25660 + $i_0343 * 244 + 148 + ($j_1341 << 2) | 0;
+    HEAPF32[$44 >> 2] = 0x56bc7600000000000;
+    var $45 = $2 + 26636 + $i_0343 * 244 + 160 + ($j_1341 << 2) | 0;
+    HEAPF32[$45 >> 2] = 0x56bc7600000000000;
+    var $46 = $2 + 25660 + $i_0343 * 244 + 160 + ($j_1341 << 2) | 0;
+    HEAPF32[$46 >> 2] = 0x56bc7600000000000;
+    var $47 = $2 + 26636 + $i_0343 * 244 + 172 + ($j_1341 << 2) | 0;
+    HEAPF32[$47 >> 2] = 0x56bc7600000000000;
+    var $48 = $2 + 25660 + $i_0343 * 244 + 172 + ($j_1341 << 2) | 0;
+    HEAPF32[$48 >> 2] = 0x56bc7600000000000;
+    var $49 = $2 + 26636 + $i_0343 * 244 + 184 + ($j_1341 << 2) | 0;
+    HEAPF32[$49 >> 2] = 0x56bc7600000000000;
+    var $50 = $2 + 25660 + $i_0343 * 244 + 184 + ($j_1341 << 2) | 0;
+    HEAPF32[$50 >> 2] = 0x56bc7600000000000;
+    var $51 = $2 + 26636 + $i_0343 * 244 + 196 + ($j_1341 << 2) | 0;
+    HEAPF32[$51 >> 2] = 0x56bc7600000000000;
+    var $52 = $2 + 25660 + $i_0343 * 244 + 196 + ($j_1341 << 2) | 0;
+    HEAPF32[$52 >> 2] = 0x56bc7600000000000;
+    var $53 = $2 + 26636 + $i_0343 * 244 + 208 + ($j_1341 << 2) | 0;
+    HEAPF32[$53 >> 2] = 0x56bc7600000000000;
+    var $54 = $2 + 25660 + $i_0343 * 244 + 208 + ($j_1341 << 2) | 0;
+    HEAPF32[$54 >> 2] = 0x56bc7600000000000;
+    var $55 = $2 + 26636 + $i_0343 * 244 + 220 + ($j_1341 << 2) | 0;
+    HEAPF32[$55 >> 2] = 0x56bc7600000000000;
+    var $56 = $2 + 25660 + $i_0343 * 244 + 220 + ($j_1341 << 2) | 0;
+    HEAPF32[$56 >> 2] = 0x56bc7600000000000;
+    var $57 = $2 + 26636 + $i_0343 * 244 + 232 + ($j_1341 << 2) | 0;
+    HEAPF32[$57 >> 2] = 0x56bc7600000000000;
+    var $58 = $2 + 25660 + $i_0343 * 244 + 232 + ($j_1341 << 2) | 0;
+    HEAPF32[$58 >> 2] = 0x56bc7600000000000;
+    HEAP32[$32 >> 2] = 0;
+    var $59 = $j_1341 + 1 | 0;
+    var $exitcond359 = ($59 | 0) == 3;
+    if ($exitcond359) {
+      label = 9;
+      break;
+    } else {
+      var $j_1341 = $59;
+      label = 8;
+      break;
+    }
+   case 9:
+    var $60 = $2 + 27636 + $i_0343 * 36 | 0;
+    HEAPF32[$60 >> 2] = 10;
+    var $61 = $2 + 27636 + $i_0343 * 36 + 4 | 0;
+    HEAPF32[$61 >> 2] = 10;
+    var $62 = $2 + 27636 + $i_0343 * 36 + 8 | 0;
+    HEAPF32[$62 >> 2] = 10;
+    var $63 = $2 + 27636 + $i_0343 * 36 + 12 | 0;
+    HEAPF32[$63 >> 2] = 10;
+    var $64 = $2 + 27636 + $i_0343 * 36 + 16 | 0;
+    HEAPF32[$64 >> 2] = 10;
+    var $65 = $2 + 27636 + $i_0343 * 36 + 20 | 0;
+    HEAPF32[$65 >> 2] = 10;
+    var $66 = $2 + 27636 + $i_0343 * 36 + 24 | 0;
+    HEAPF32[$66 >> 2] = 10;
+    var $67 = $2 + 27636 + $i_0343 * 36 + 28 | 0;
+    HEAPF32[$67 >> 2] = 10;
+    var $68 = $2 + 27636 + $i_0343 * 36 + 32 | 0;
+    HEAPF32[$68 >> 2] = 10;
+    var $69 = $i_0343 + 1 | 0;
+    var $exitcond361 = ($69 | 0) == 4;
+    if ($exitcond361) {
+      label = 10;
+      break;
+    } else {
+      var $i_0343 = $69;
+      label = 4;
+      break;
+    }
+   case 10:
+    var $71 = $2 + 27616 | 0;
+    HEAPF32[$71 >> 2] = 0;
+    var $72 = $2 + 27612 | 0;
+    HEAPF32[$72 >> 2] = 0;
+    var $73 = $15;
+    var $74 = $2 + 21360 | 0;
+    _init_numline($73, $6, 1024, 576, 22, $74);
+    var $75 = $bval | 0;
+    var $76 = $bval_width | 0;
+    _compute_bark_values($73, $6, 1024, $75, $76);
+    var $77 = $15 + 2148 | 0;
+    var $78 = $77;
+    var $79 = HEAP32[$78 >> 2];
+    var $80 = ($79 | 0) > 0;
+    if ($80) {
+      label = 11;
+      break;
+    } else {
+      var $_lcssa327 = $79;
+      label = 15;
+      break;
+    }
+   case 11:
+    var $81 = HEAP32[$78 >> 2];
+    var $i_1328 = 0;
+    label = 12;
+    break;
+   case 12:
+    var $i_1328;
+    var $83 = $bval + ($i_1328 << 2) | 0;
+    var $84 = HEAPF32[$83 >> 2];
+    var $85 = $84 < 13;
+    if ($85) {
+      var $snr_0 = 0;
+      label = 14;
+      break;
+    } else {
+      label = 13;
+      break;
+    }
+   case 13:
+    var $88 = 0;
+    var $89 = $88 / 11;
+    var $91 = 0;
+    var $92 = $91 / 11;
+    var $93 = $89 + $92;
+    var $94 = $93;
+    var $snr_0 = $94;
+    label = 14;
+    break;
+   case 14:
+    var $snr_0;
+    var $96 = $snr_0 / 10;
+    var $97 = Math.pow(10, $96);
+    var $98 = $97;
+    var $99 = $norm + ($i_1328 << 2) | 0;
+    HEAPF32[$99 >> 2] = $98;
+    var $100 = $i_1328 + 1 | 0;
+    var $101 = ($100 | 0) < ($81 | 0);
+    if ($101) {
+      var $i_1328 = $100;
+      label = 12;
+      break;
+    } else {
+      var $_lcssa327 = $81;
+      label = 15;
+      break;
+    }
+   case 15:
+    var $_lcssa327;
+    var $102 = $15 + 2156 | 0;
+    var $103 = $102;
+    var $104 = $15 + 1204 | 0;
+    var $105 = $104;
+    var $106 = $104;
+    var $107 = $norm | 0;
+    var $108 = _init_s3_values($103, $106, $_lcssa327, $75, $76, $107);
+    var $109 = ($108 | 0) == 0;
+    if ($109) {
+      label = 16;
+      break;
+    } else {
+      var $_0 = $108;
+      label = 62;
+      break;
+    }
+   case 16:
+    var $110 = HEAP32[$78 >> 2];
+    var $111 = ($110 | 0) > 0;
+    if ($111) {
+      label = 17;
+      break;
+    } else {
+      label = 23;
+      break;
+    }
+   case 17:
+    var $112 = $15 + 1716 | 0;
+    var $113 = $112;
+    var $114 = $2 + 85792 | 0;
+    var $115 = $9;
+    var $116 = $15 + 256 | 0;
+    var $117 = $116;
+    var $j_3323 = 0;
+    var $i_2324 = 0;
+    label = 18;
+    break;
+   case 18:
+    var $i_2324;
+    var $j_3323;
+    var $118 = $113 + ($i_2324 << 2) | 0;
+    var $119 = HEAP32[$118 >> 2];
+    var $120 = ($119 | 0) > 0;
+    if ($120) {
+      label = 19;
+      break;
+    } else {
+      var $x_0_lcssa = 9.999999933815813e+36;
+      var $j_4_lcssa = $j_3323;
+      label = 22;
+      break;
+    }
+   case 19:
+    var $121 = HEAP32[$118 >> 2];
+    var $122 = ($121 | 0) > 1;
+    var $smax355 = $122 ? $121 : 1;
+    var $k_0314 = 0;
+    var $x_0315 = 1e+37;
+    var $j_4316 = $j_3323;
+    var $124 = $119;
+    label = 20;
+    break;
+   case 20:
+    var $124;
+    var $j_4316;
+    var $x_0315;
+    var $k_0314;
+    var $125 = $j_4316 | 0;
+    var $126 = $6 * $125;
+    var $127 = $126 / 1024e3;
+    var $128 = $127 * 1e3;
+    var $129 = _ATHformula($3, $128);
+    var $130 = $129 - 20;
+    var $131 = $130;
+    var $132 = $131 * .1;
+    var $133 = Math.pow(10, $132);
+    var $134 = $133;
+    var $135 = $124 | 0;
+    var $136 = $135 * $134;
+    var $137 = $136;
+    var $138 = $x_0315 > $137;
+    var $x_1 = $138 ? $137 : $x_0315;
+    var $139 = $k_0314 + 1 | 0;
+    var $140 = $j_4316 + 1 | 0;
+    var $141 = ($139 | 0) < ($121 | 0);
+    if ($141) {
+      var $k_0314 = $139;
+      var $x_0315 = $x_1;
+      var $j_4316 = $140;
+      var $124 = $121;
+      label = 20;
+      break;
+    } else {
+      label = 21;
+      break;
+    }
+   case 21:
+    var $142 = $j_3323 + $smax355 | 0;
+    var $phitmp345 = $x_1;
+    var $x_0_lcssa = $phitmp345;
+    var $j_4_lcssa = $142;
+    label = 22;
+    break;
+   case 22:
+    var $j_4_lcssa;
+    var $x_0_lcssa;
+    var $144 = HEAP32[$114 >> 2];
+    var $145 = $144 + 212 + ($i_2324 << 2) | 0;
+    HEAPF32[$145 >> 2] = $x_0_lcssa;
+    var $146 = $bval + ($i_2324 << 2) | 0;
+    var $147 = HEAPF32[$146 >> 2];
+    var $148 = $147 / 10;
+    var $149 = $148;
+    var $150 = $149 - 1;
+    var $151 = $150 * 20;
+    var $152 = $151 > 6;
+    var $x_2 = $152 ? 30 : $151;
+    var $153 = $x_2 < $115;
+    var $x_3 = $153 ? $115 : $x_2;
+    var $154 = HEAP32[$4 >> 2];
+    var $155 = ($154 | 0) < 44e3;
+    var $_x_3 = $155 ? 30 : $x_3;
+    var $156 = $_x_3 - 8;
+    var $157 = $156 / 10;
+    var $158 = Math.pow(10, $157);
+    var $159 = HEAP32[$118 >> 2];
+    var $160 = $159 | 0;
+    var $161 = $158 * $160;
+    var $162 = $161;
+    var $163 = $117 + ($i_2324 << 2) | 0;
+    HEAPF32[$163 >> 2] = $162;
+    var $164 = $i_2324 + 1 | 0;
+    var $165 = HEAP32[$78 >> 2];
+    var $166 = ($164 | 0) < ($165 | 0);
+    if ($166) {
+      var $j_3323 = $j_4_lcssa;
+      var $i_2324 = $164;
+      label = 18;
+      break;
+    } else {
+      label = 23;
+      break;
+    }
+   case 23:
+    var $167 = $15 + 2160 | 0;
+    var $168 = $167;
+    var $169 = $2 + 21452 | 0;
+    _init_numline($168, $6, 256, 192, 13, $169);
+    _compute_bark_values($168, $6, 256, $75, $76);
+    var $170 = $15 + 4308 | 0;
+    var $171 = $170;
+    var $172 = HEAP32[$171 >> 2];
+    var $173 = ($172 | 0) > 0;
+    if ($173) {
+      label = 24;
+      break;
+    } else {
+      var $_lcssa304 = $172;
+      label = 36;
+      break;
+    }
+   case 24:
+    var $174 = $15 + 3876 | 0;
+    var $175 = $174;
+    var $176 = $2 + 85792 | 0;
+    var $177 = $9;
+    var $178 = $15 + 2416 | 0;
+    var $179 = $178;
+    var $j_5305 = 0;
+    var $i_3306 = 0;
+    label = 25;
+    break;
+   case 25:
+    var $i_3306;
+    var $j_5305;
+    var $181 = $bval + ($i_3306 << 2) | 0;
+    var $182 = HEAPF32[$181 >> 2];
+    var $183 = $182 < 13;
+    if ($183) {
+      var $snr2_0 = -8.25;
+      label = 27;
+      break;
+    } else {
+      label = 26;
+      break;
+    }
+   case 26:
+    var $185 = $182 - 13;
+    var $186 = $185 * -4.5;
+    var $187 = $186 / 11;
+    var $188 = 24 - $182;
+    var $189 = $188 * -8.25;
+    var $190 = $189 / 11;
+    var $191 = $187 + $190;
+    var $192 = $191;
+    var $snr2_0 = $192;
+    label = 27;
+    break;
+   case 27:
+    var $snr2_0;
+    var $194 = $snr2_0 / 10;
+    var $195 = Math.pow(10, $194);
+    var $196 = $195;
+    var $197 = $norm + ($i_3306 << 2) | 0;
+    HEAPF32[$197 >> 2] = $196;
+    var $198 = $175 + ($i_3306 << 2) | 0;
+    var $199 = HEAP32[$198 >> 2];
+    var $200 = ($199 | 0) > 0;
+    if ($200) {
+      label = 28;
+      break;
+    } else {
+      var $x1_0_lcssa = 9.999999933815813e+36;
+      var $j_6_lcssa = $j_5305;
+      label = 31;
+      break;
+    }
+   case 28:
+    var $201 = HEAP32[$198 >> 2];
+    var $202 = ($201 | 0) > 1;
+    var $smax = $202 ? $201 : 1;
+    var $k_1294 = 0;
+    var $x1_0295 = 1e+37;
+    var $j_6296 = $j_5305;
+    var $204 = $199;
+    label = 29;
+    break;
+   case 29:
+    var $204;
+    var $j_6296;
+    var $x1_0295;
+    var $k_1294;
+    var $205 = $j_6296 | 0;
+    var $206 = $6 * $205;
+    var $207 = $206 / 256e3;
+    var $208 = $207 * 1e3;
+    var $209 = _ATHformula($3, $208);
+    var $210 = $209 - 20;
+    var $211 = $210;
+    var $212 = $211 * .1;
+    var $213 = Math.pow(10, $212);
+    var $214 = $213;
+    var $215 = $204 | 0;
+    var $216 = $215 * $214;
+    var $217 = $216;
+    var $218 = $x1_0295 > $217;
+    var $x1_1 = $218 ? $217 : $x1_0295;
+    var $219 = $k_1294 + 1 | 0;
+    var $220 = $j_6296 + 1 | 0;
+    var $221 = ($219 | 0) < ($201 | 0);
+    if ($221) {
+      var $k_1294 = $219;
+      var $x1_0295 = $x1_1;
+      var $j_6296 = $220;
+      var $204 = $201;
+      label = 29;
+      break;
+    } else {
+      label = 30;
+      break;
+    }
+   case 30:
+    var $222 = $j_5305 + $smax | 0;
+    var $phitmp344 = $x1_1;
+    var $x1_0_lcssa = $phitmp344;
+    var $j_6_lcssa = $222;
+    label = 31;
+    break;
+   case 31:
+    var $j_6_lcssa;
+    var $x1_0_lcssa;
+    var $224 = HEAP32[$176 >> 2];
+    var $225 = $224 + 468 + ($i_3306 << 2) | 0;
+    HEAPF32[$225 >> 2] = $x1_0_lcssa;
+    var $226 = HEAPF32[$181 >> 2];
+    var $227 = $226 / 12;
+    var $228 = $227;
+    var $229 = $228 - 1;
+    var $230 = $229 * 7;
+    var $231 = $226 > 12;
+    if ($231) {
+      label = 32;
+      break;
+    } else {
+      var $x1_2 = $230;
+      label = 33;
+      break;
+    }
+   case 32:
+    var $233 = $230 + 1;
+    var $234 = Math.log($233);
+    var $235 = $234 * 3.1;
+    var $236 = $235 + 1;
+    var $237 = $230 * $236;
+    var $x1_2 = $237;
+    label = 33;
+    break;
+   case 33:
+    var $x1_2;
+    var $239 = HEAPF32[$181 >> 2];
+    var $240 = $239 < 12;
+    if ($240) {
+      label = 34;
+      break;
+    } else {
+      var $x1_3 = $x1_2;
+      label = 35;
+      break;
+    }
+   case 34:
+    var $242 = 1 - $x1_2;
+    var $243 = Math.log($242);
+    var $244 = $243 * 2.3;
+    var $245 = $244 + 1;
+    var $246 = $x1_2 * $245;
+    var $x1_3 = $246;
+    label = 35;
+    break;
+   case 35:
+    var $x1_3;
+    var $248 = $x1_3 > 6;
+    var $x1_4 = $248 ? 30 : $x1_3;
+    var $249 = $x1_4 < $177;
+    var $x1_5 = $249 ? $177 : $x1_4;
+    var $250 = HEAP32[$4 >> 2];
+    var $251 = ($250 | 0) < 44e3;
+    var $_x1_5 = $251 ? 30 : $x1_5;
+    var $252 = $_x1_5 - 8;
+    var $253 = $252 / 10;
+    var $254 = Math.pow(10, $253);
+    var $255 = HEAP32[$198 >> 2];
+    var $256 = $255 | 0;
+    var $257 = $254 * $256;
+    var $258 = $257;
+    var $259 = $179 + ($i_3306 << 2) | 0;
+    HEAPF32[$259 >> 2] = $258;
+    var $260 = $i_3306 + 1 | 0;
+    var $261 = HEAP32[$171 >> 2];
+    var $262 = ($260 | 0) < ($261 | 0);
+    if ($262) {
+      var $j_5305 = $j_6_lcssa;
+      var $i_3306 = $260;
+      label = 25;
+      break;
+    } else {
+      var $_lcssa304 = $261;
+      label = 36;
+      break;
+    }
+   case 36:
+    var $_lcssa304;
+    var $263 = $15 + 4316 | 0;
+    var $264 = $263;
+    var $265 = $15 + 3364 | 0;
+    var $266 = $265;
+    var $267 = _init_s3_values($264, $266, $_lcssa304, $75, $76, $107);
+    var $268 = ($267 | 0) == 0;
+    if ($268) {
+      label = 37;
+      break;
+    } else {
+      var $_0 = $267;
+      label = 62;
+      break;
+    }
+   case 37:
+    _init_mask_add_max_values();
+    _init_fft($2);
+    var $270 = $6;
+    var $271 = $270 * .01;
+    var $272 = $271 / 192;
+    var $273 = -2.302585092994046 / $272;
+    var $274 = Math.exp($273);
+    var $275 = $274;
+    var $276 = $15 + 6496 | 0;
+    var $277 = $276;
+    HEAPF32[$277 >> 2] = $275;
+    var $278 = $2 + 96 | 0;
+    var $279 = HEAP32[$278 >> 2];
+    var $280 = ($279 | 0) == 0;
+    var $_ = $280 ? 3.5 : 1;
+    var $281 = $2 + 192 | 0;
+    var $282 = HEAPF32[$281 >> 2];
+    var $283 = $282 == 0;
+    var $msfix_1 = $283 ? $_ : $282;
+    HEAPF32[$281 >> 2] = $msfix_1;
+    var $284 = HEAP32[$78 >> 2];
+    var $285 = ($284 | 0) > 0;
+    if ($285) {
+      label = 38;
+      break;
+    } else {
+      label = 42;
+      break;
+    }
+   case 38:
+    var $286 = HEAP32[$78 >> 2];
+    var $b_0290 = 0;
+    var $288 = $284;
+    label = 39;
+    break;
+   case 39:
+    var $288;
+    var $b_0290;
+    var $289 = $105 + ($b_0290 << 3) + 4 | 0;
+    var $290 = HEAP32[$289 >> 2];
+    var $291 = $288 - 1 | 0;
+    var $292 = ($290 | 0) > ($291 | 0);
+    if ($292) {
+      label = 40;
+      break;
+    } else {
+      label = 41;
+      break;
+    }
+   case 40:
+    HEAP32[$289 >> 2] = $291;
+    label = 41;
+    break;
+   case 41:
+    var $295 = $b_0290 + 1 | 0;
+    var $296 = ($295 | 0) < ($286 | 0);
+    if ($296) {
+      var $b_0290 = $295;
+      var $288 = $286;
+      label = 39;
+      break;
+    } else {
+      label = 42;
+      break;
+    }
+   case 42:
+    var $297 = $2 + 76 | 0;
+    var $298 = HEAP32[$297 >> 2];
+    var $299 = $298 | 0;
+    var $300 = $299 * 576;
+    var $301 = $300 / $270;
+    var $302 = $301 * -1.2;
+    var $303 = Math.pow(10, $302);
+    var $304 = $303;
+    var $305 = $2 + 85792 | 0;
+    var $306 = HEAP32[$305 >> 2];
+    var $307 = $306 + 16 | 0;
+    HEAPF32[$307 >> 2] = $304;
+    var $308 = HEAP32[$305 >> 2];
+    var $309 = $308 + 8 | 0;
+    HEAPF32[$309 >> 2] = .009999999776482582;
+    var $310 = HEAP32[$305 >> 2];
+    var $311 = $310 + 12 | 0;
+    HEAPF32[$311 >> 2] = 1;
+    var $312 = $2 + 208 | 0;
+    var $313 = HEAP32[$312 >> 2];
+    var $314 = ($313 | 0) == -1;
+    if ($314) {
+      label = 47;
+      break;
+    } else {
+      label = 43;
+      break;
+    }
+   case 43:
+    var $316 = HEAP32[$4 >> 2];
+    var $317 = $316 | 0;
+    var $318 = $317 * .0009765625;
+    var $freq5_0287 = 0;
+    var $eql_balance_0288 = 0;
+    var $i_4289 = 0;
+    label = 44;
+    break;
+   case 44:
+    var $i_4289;
+    var $eql_balance_0288;
+    var $freq5_0287;
+    var $320 = $318 + $freq5_0287;
+    var $321 = _ATHformula($3, $320);
+    var $322 = $321 / 10;
+    var $323 = $322;
+    var $324 = Math.pow(10, $323);
+    var $325 = 1 / $324;
+    var $326 = $325;
+    var $327 = HEAP32[$305 >> 2];
+    var $328 = $327 + 724 + ($i_4289 << 2) | 0;
+    HEAPF32[$328 >> 2] = $326;
+    var $329 = HEAP32[$305 >> 2];
+    var $330 = $329 + 724 + ($i_4289 << 2) | 0;
+    var $331 = HEAPF32[$330 >> 2];
+    var $332 = $eql_balance_0288 + $331;
+    var $333 = $i_4289 + 1 | 0;
+    var $exitcond351 = ($333 | 0) == 512;
+    if ($exitcond351) {
+      label = 45;
+      break;
+    } else {
+      var $freq5_0287 = $320;
+      var $eql_balance_0288 = $332;
+      var $i_4289 = $333;
+      label = 44;
+      break;
+    }
+   case 45:
+    var $335 = 1 / $332;
+    var $i_5286 = 511;
+    label = 46;
+    break;
+   case 46:
+    var $i_5286;
+    var $337 = HEAP32[$305 >> 2];
+    var $338 = $337 + 724 + ($i_5286 << 2) | 0;
+    var $339 = HEAPF32[$338 >> 2];
+    var $340 = $335 * $339;
+    HEAPF32[$338 >> 2] = $340;
+    var $phitmp = $i_5286 - 1 | 0;
+    var $341 = ($phitmp | 0) > -1;
+    if ($341) {
+      var $i_5286 = $phitmp;
+      label = 46;
+      break;
+    } else {
+      label = 47;
+      break;
+    }
+   case 47:
+    var $342 = $gfp + 264 | 0;
+    var $343 = HEAPF32[$342 >> 2];
+    var $344 = $gfp + 268 | 0;
+    var $345 = HEAPF32[$344 >> 2];
+    var $346 = $343 < 0;
+    var $x6_0 = $346 ? 4.400000095367432 : $343;
+    var $347 = $345 < 0;
+    var $y_0 = $347 ? 25 : $345;
+    var $348 = $15 + 6480 | 0;
+    var $349 = $15 + 6488 | 0;
+    var $350 = $349;
+    HEAPF32[$350 >> 2] = $x6_0;
+    var $351 = $15 + 6484 | 0;
+    var $352 = $351;
+    HEAPF32[$352 >> 2] = $x6_0;
+    var $353 = $348;
+    HEAPF32[$353 >> 2] = $x6_0;
+    var $354 = $15 + 6492 | 0;
+    var $355 = $354;
+    HEAPF32[$355 >> 2] = $y_0;
+    var $356 = $gfp + 164 | 0;
+    var $357 = HEAP32[$356 >> 2];
+    var $358 = ($357 | 0) < 4;
+    if ($358) {
+      var $sk_s_0 = -7.400000095367432;
+      label = 49;
+      break;
+    } else {
+      label = 48;
+      break;
+    }
+   case 48:
+    var $360 = 5256972 + ($357 << 2) | 0;
+    var $361 = HEAPF32[$360 >> 2];
+    var $362 = $gfp + 160 | 0;
+    var $363 = HEAPF32[$362 >> 2];
+    var $364 = $357 + 1 | 0;
+    var $365 = 5256972 + ($364 << 2) | 0;
+    var $366 = HEAPF32[$365 >> 2];
+    var $367 = $361 - $366;
+    var $368 = $363 * $367;
+    var $369 = $361 + $368;
+    var $sk_s_0 = $369;
+    label = 49;
+    break;
+   case 49:
+    var $sk_s_0;
+    var $371 = HEAP32[$171 >> 2];
+    var $372 = ($371 | 0) > 0;
+    if ($372) {
+      label = 50;
+      break;
+    } else {
+      var $b_3_lcssa362 = 0;
+      label = 52;
+      break;
+    }
+   case 50:
+    var $373 = $167;
+    var $b_3263 = 0;
+    var $377 = $371;
+    label = 53;
+    break;
+   case 51:
+    var $374 = ($386 | 0) < 64;
+    if ($374) {
+      var $b_3_lcssa362 = $386;
+      label = 52;
+      break;
+    } else {
+      label = 54;
+      break;
+    }
+   case 52:
+    var $b_3_lcssa362;
+    var $375 = $167;
+    var $b_4261 = $b_3_lcssa362;
+    label = 56;
+    break;
+   case 53:
+    var $377;
+    var $b_3263;
+    var $378 = $377 - $b_3263 | 0;
+    var $379 = $378 | 0;
+    var $380 = $377 | 0;
+    var $381 = $379 / $380;
+    var $382 = $sk_s_0 * $381;
+    var $383 = $382 * .10000000149011612;
+    var $384 = Math.pow(10, $383);
+    var $385 = $373 + ($b_3263 << 2) | 0;
+    HEAPF32[$385 >> 2] = $384;
+    var $386 = $b_3263 + 1 | 0;
+    var $387 = HEAP32[$171 >> 2];
+    var $388 = ($386 | 0) < ($387 | 0);
+    if ($388) {
+      var $b_3263 = $386;
+      var $377 = $387;
+      label = 53;
+      break;
+    } else {
+      label = 51;
+      break;
+    }
+   case 54:
+    var $389 = HEAP32[$78 >> 2];
+    var $390 = ($389 | 0) > 0;
+    if ($390) {
+      label = 55;
+      break;
+    } else {
+      var $b_5_lcssa363 = 0;
+      label = 58;
+      break;
+    }
+   case 55:
+    var $391 = $15;
+    var $b_5258 = 0;
+    var $398 = $389;
+    label = 59;
+    break;
+   case 56:
+    var $b_4261;
+    var $393 = $375 + ($b_4261 << 2) | 0;
+    HEAPF32[$393 >> 2] = 1;
+    var $394 = $b_4261 + 1 | 0;
+    var $exitcond346 = ($394 | 0) == 64;
+    if ($exitcond346) {
+      label = 54;
+      break;
+    } else {
+      var $b_4261 = $394;
+      label = 56;
+      break;
+    }
+   case 57:
+    var $395 = ($407 | 0) < 64;
+    if ($395) {
+      var $b_5_lcssa363 = $407;
+      label = 58;
+      break;
+    } else {
+      label = 61;
+      break;
+    }
+   case 58:
+    var $b_5_lcssa363;
+    var $396 = $15;
+    var $b_6256 = $b_5_lcssa363;
+    label = 60;
+    break;
+   case 59:
+    var $398;
+    var $b_5258;
+    var $399 = $398 - $b_5258 | 0;
+    var $400 = $399 | 0;
+    var $401 = $398 | 0;
+    var $402 = $400 / $401;
+    var $403 = $sk_s_0 * $402;
+    var $404 = $403 * .10000000149011612;
+    var $405 = Math.pow(10, $404);
+    var $406 = $391 + ($b_5258 << 2) | 0;
+    HEAPF32[$406 >> 2] = $405;
+    var $407 = $b_5258 + 1 | 0;
+    var $408 = HEAP32[$78 >> 2];
+    var $409 = ($407 | 0) < ($408 | 0);
+    if ($409) {
+      var $b_5258 = $407;
+      var $398 = $408;
+      label = 59;
+      break;
+    } else {
+      label = 57;
+      break;
+    }
+   case 60:
+    var $b_6256;
+    var $411 = $396 + ($b_6256 << 2) | 0;
+    HEAPF32[$411 >> 2] = 1;
+    var $412 = $b_6256 + 1 | 0;
+    var $exitcond = ($412 | 0) == 64;
+    if ($exitcond) {
+      label = 61;
+      break;
+    } else {
+      var $b_6256 = $412;
+      label = 60;
+      break;
+    }
+   case 61:
+    var $413 = $15 + 4320 | 0;
+    var $414 = $413;
+    for (var $$src = $15 >> 2, $$dest = $413 >> 2, $$stop = $$src + 540; $$src < $$stop; $$src++, $$dest++) {
+      HEAP32[$$dest] = HEAP32[$$src];
+    }
+    _init_numline($414, $6, 1024, 192, 13, $169);
+    var $_0 = 0;
+    label = 62;
+    break;
+   case 62:
+    var $_0;
+    STACKTOP = __stackBase__;
+    return $_0;
+  }
+}
+_psymodel_init["X"] = 1;
+function _init_mask_add_max_values() {
+  HEAPF32[5314460 >> 2] = 3.6517412662506104;
+  HEAPF32[5314456 >> 2] = 31.62277603149414;
+  return;
+}
+function _convert_partition2scalefac($gd, $eb, $thr, $enn_out, $thm_out) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = $gd + 2152 | 0;
+    var $2 = HEAP32[$1 >> 2];
+    var $3 = ($2 | 0) > 0;
+    if ($3) {
+      label = 3;
+      break;
+    } else {
+      var $sb_1_ph = 0;
+      label = 4;
+      break;
+    }
+   case 3:
+    var $4 = $gd + 2148 | 0;
+    var $b_059 = 0;
+    var $sb_060 = 0;
+    var $thmm_061 = 0;
+    var $enn_062 = 0;
+    label = 5;
+    break;
+   case 4:
+    var $sb_1_ph;
+    var $5 = ($sb_1_ph | 0) < ($2 | 0);
+    if ($5) {
+      var $sb_149 = $sb_1_ph;
+      label = 11;
+      break;
+    } else {
+      label = 12;
+      break;
+    }
+   case 5:
+    var $enn_062;
+    var $thmm_061;
+    var $sb_060;
+    var $b_059;
+    var $7 = $gd + 2060 + ($sb_060 << 2) | 0;
+    var $8 = HEAP32[$7 >> 2];
+    var $9 = HEAP32[$4 >> 2];
+    var $10 = ($8 | 0) < ($9 | 0);
+    var $11 = $10 ? $8 : $9;
+    var $12 = ($b_059 | 0) < ($11 | 0);
+    if ($12) {
+      label = 6;
+      break;
+    } else {
+      var $b_1_lcssa = $b_059;
+      var $thmm_1_lcssa = $thmm_061;
+      var $enn_1_lcssa = $enn_062;
+      label = 8;
+      break;
+    }
+   case 6:
+    var $13 = $8 ^ -1;
+    var $14 = $9 ^ -1;
+    var $15 = ($13 | 0) > ($14 | 0);
+    var $smax = $15 ? $13 : $14;
+    var $16 = $smax ^ -1;
+    var $b_150 = $b_059;
+    var $thmm_151 = $thmm_061;
+    var $enn_152 = $enn_062;
+    label = 7;
+    break;
+   case 7:
+    var $enn_152;
+    var $thmm_151;
+    var $b_150;
+    var $18 = $eb + ($b_150 << 2) | 0;
+    var $19 = HEAPF32[$18 >> 2];
+    var $20 = $enn_152 + $19;
+    var $21 = $thr + ($b_150 << 2) | 0;
+    var $22 = HEAPF32[$21 >> 2];
+    var $23 = $thmm_151 + $22;
+    var $24 = $b_150 + 1 | 0;
+    var $exitcond70 = ($24 | 0) == ($16 | 0);
+    if ($exitcond70) {
+      var $b_1_lcssa = $16;
+      var $thmm_1_lcssa = $23;
+      var $enn_1_lcssa = $20;
+      label = 8;
+      break;
+    } else {
+      var $b_150 = $24;
+      var $thmm_151 = $23;
+      var $enn_152 = $20;
+      label = 7;
+      break;
+    }
+   case 8:
+    var $enn_1_lcssa;
+    var $thmm_1_lcssa;
+    var $b_1_lcssa;
+    var $25 = ($b_1_lcssa | 0) < ($9 | 0);
+    if ($25) {
+      label = 10;
+      break;
+    } else {
+      label = 9;
+      break;
+    }
+   case 9:
+    var $27 = $enn_out + ($sb_060 << 2) | 0;
+    HEAPF32[$27 >> 2] = $enn_1_lcssa;
+    var $28 = $thm_out + ($sb_060 << 2) | 0;
+    HEAPF32[$28 >> 2] = $thmm_1_lcssa;
+    var $29 = $sb_060 + 1 | 0;
+    var $sb_1_ph = $29;
+    label = 4;
+    break;
+   case 10:
+    var $31 = $gd + 1112 + ($sb_060 << 2) | 0;
+    var $32 = HEAPF32[$31 >> 2];
+    var $33 = 1 - $32;
+    var $34 = $eb + ($b_1_lcssa << 2) | 0;
+    var $35 = HEAPF32[$34 >> 2];
+    var $36 = $32 * $35;
+    var $37 = $enn_1_lcssa + $36;
+    var $38 = $thr + ($b_1_lcssa << 2) | 0;
+    var $39 = HEAPF32[$38 >> 2];
+    var $40 = $32 * $39;
+    var $41 = $thmm_1_lcssa + $40;
+    var $42 = $enn_out + ($sb_060 << 2) | 0;
+    HEAPF32[$42 >> 2] = $37;
+    var $43 = $thm_out + ($sb_060 << 2) | 0;
+    HEAPF32[$43 >> 2] = $41;
+    var $44 = HEAPF32[$34 >> 2];
+    var $45 = $33 * $44;
+    var $46 = HEAPF32[$38 >> 2];
+    var $47 = $33 * $46;
+    var $48 = $b_1_lcssa + 1 | 0;
+    var $49 = $sb_060 + 1 | 0;
+    var $50 = ($49 | 0) < ($2 | 0);
+    if ($50) {
+      var $b_059 = $48;
+      var $sb_060 = $49;
+      var $thmm_061 = $47;
+      var $enn_062 = $45;
+      label = 5;
+      break;
+    } else {
+      var $sb_1_ph = $49;
+      label = 4;
+      break;
+    }
+   case 11:
+    var $sb_149;
+    var $51 = $enn_out + ($sb_149 << 2) | 0;
+    HEAPF32[$51 >> 2] = 0;
+    var $52 = $thm_out + ($sb_149 << 2) | 0;
+    HEAPF32[$52 >> 2] = 0;
+    var $53 = $sb_149 + 1 | 0;
+    var $exitcond = ($53 | 0) == ($2 | 0);
+    if ($exitcond) {
+      label = 12;
+      break;
+    } else {
+      var $sb_149 = $53;
+      label = 11;
+      break;
+    }
+   case 12:
+    return;
+  }
+}
+_convert_partition2scalefac["X"] = 1;
+function _vbrpsy_calc_mask_index_s($gfc, $max, $avg, $mask_idx) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = $gfc + 85796 | 0;
+    var $2 = HEAP32[$1 >> 2];
+    var $3 = HEAPF32[$avg >> 2];
+    var $4 = $avg + 4 | 0;
+    var $5 = HEAPF32[$4 >> 2];
+    var $6 = $3 + $5;
+    var $7 = $6 > 0;
+    if ($7) {
+      label = 3;
+      break;
+    } else {
+      var $storemerge = 0;
+      label = 4;
+      break;
+    }
+   case 3:
+    var $9 = HEAPF32[$max >> 2];
+    var $10 = $max + 4 | 0;
+    var $11 = HEAPF32[$10 >> 2];
+    var $12 = $9 < $11;
+    var $m_0 = $12 ? $11 : $9;
+    var $13 = $m_0 * 2;
+    var $14 = $13 - $6;
+    var $15 = $14 * 20;
+    var $16 = $2 + 3876 | 0;
+    var $17 = HEAP32[$16 >> 2];
+    var $18 = $2 + 3880 | 0;
+    var $19 = HEAP32[$18 >> 2];
+    var $20 = $17 - 1 | 0;
+    var $21 = $20 + $19 | 0;
+    var $22 = $21 | 0;
+    var $23 = $6 * $22;
+    var $24 = $15 / $23;
+    var $25 = $24 & -1;
+    var $26 = ($25 | 0) > 8;
+    var $27 = $25 & 255;
+    var $28 = $26 ? 8 : $27;
+    var $storemerge = $28;
+    label = 4;
+    break;
+   case 4:
+    var $storemerge;
+    HEAP8[$mask_idx] = $storemerge;
+    var $30 = $2 + 4308 | 0;
+    var $31 = HEAP32[$30 >> 2];
+    var $32 = $31 - 1 | 0;
+    var $33 = ($32 | 0) > 1;
+    var $34 = HEAPF32[$avg >> 2];
+    var $35 = $avg + 4 | 0;
+    var $36 = HEAPF32[$35 >> 2];
+    var $37 = $34 + $36;
+    if ($33) {
+      var $b_082 = 1;
+      var $39 = 0;
+      var $38 = $37;
+      label = 5;
+      break;
+    } else {
+      var $b_0_lcssa = 1;
+      var $_lcssa = 0;
+      var $_lcssa81 = $37;
+      label = 9;
+      break;
+    }
+   case 5:
+    var $38;
+    var $39;
+    var $b_082;
+    var $40 = $b_082 + 1 | 0;
+    var $41 = $avg + ($40 << 2) | 0;
+    var $42 = HEAPF32[$41 >> 2];
+    var $43 = $38 + $42;
+    var $44 = $43 > 0;
+    if ($44) {
+      label = 6;
+      break;
+    } else {
+      label = 8;
+      break;
+    }
+   case 6:
+    var $46 = $max + ($39 << 2) | 0;
+    var $47 = HEAPF32[$46 >> 2];
+    var $48 = $max + ($b_082 << 2) | 0;
+    var $49 = HEAPF32[$48 >> 2];
+    var $50 = $47 < $49;
+    var $m_1 = $50 ? $49 : $47;
+    var $51 = $max + ($40 << 2) | 0;
+    var $52 = HEAPF32[$51 >> 2];
+    var $53 = $m_1 < $52;
+    var $m_2 = $53 ? $52 : $m_1;
+    var $54 = $m_2 * 3;
+    var $55 = $54 - $43;
+    var $56 = $55 * 20;
+    var $57 = $2 + 3876 + ($39 << 2) | 0;
+    var $58 = HEAP32[$57 >> 2];
+    var $59 = $2 + 3876 + ($b_082 << 2) | 0;
+    var $60 = HEAP32[$59 >> 2];
+    var $61 = $2 + 3876 + ($40 << 2) | 0;
+    var $62 = HEAP32[$61 >> 2];
+    var $63 = $58 - 1 | 0;
+    var $64 = $63 + $60 | 0;
+    var $65 = $64 + $62 | 0;
+    var $66 = $65 | 0;
+    var $67 = $43 * $66;
+    var $68 = $56 / $67;
+    var $69 = $68 & -1;
+    var $70 = ($69 | 0) > 8;
+    var $71 = $69 & 255;
+    var $72 = $70 ? 8 : $71;
+    var $73 = $mask_idx + $b_082 | 0;
+    HEAP8[$73] = $72;
+    label = 7;
+    break;
+   case 7:
+    var $74 = HEAP32[$30 >> 2];
+    var $75 = $74 - 1 | 0;
+    var $76 = ($40 | 0) < ($75 | 0);
+    var $77 = $avg + ($b_082 << 2) | 0;
+    var $78 = HEAPF32[$77 >> 2];
+    var $79 = $avg + ($40 << 2) | 0;
+    var $80 = HEAPF32[$79 >> 2];
+    var $81 = $78 + $80;
+    if ($76) {
+      var $39 = $b_082;
+      var $b_082 = $40;
+      var $38 = $81;
+      label = 5;
+      break;
+    } else {
+      var $b_0_lcssa = $40;
+      var $_lcssa = $b_082;
+      var $_lcssa81 = $81;
+      label = 9;
+      break;
+    }
+   case 8:
+    var $83 = $mask_idx + $b_082 | 0;
+    HEAP8[$83] = 0;
+    label = 7;
+    break;
+   case 9:
+    var $_lcssa81;
+    var $_lcssa;
+    var $b_0_lcssa;
+    var $84 = $_lcssa81 > 0;
+    if ($84) {
+      label = 10;
+      break;
+    } else {
+      label = 11;
+      break;
+    }
+   case 10:
+    var $86 = $max + ($_lcssa << 2) | 0;
+    var $87 = HEAPF32[$86 >> 2];
+    var $88 = $max + ($b_0_lcssa << 2) | 0;
+    var $89 = HEAPF32[$88 >> 2];
+    var $90 = $87 < $89;
+    var $m_3 = $90 ? $89 : $87;
+    var $91 = $m_3 * 2;
+    var $92 = $91 - $_lcssa81;
+    var $93 = $92 * 20;
+    var $94 = $2 + 3876 + ($_lcssa << 2) | 0;
+    var $95 = HEAP32[$94 >> 2];
+    var $96 = $2 + 3876 + ($b_0_lcssa << 2) | 0;
+    var $97 = HEAP32[$96 >> 2];
+    var $98 = $95 - 1 | 0;
+    var $99 = $98 + $97 | 0;
+    var $100 = $99 | 0;
+    var $101 = $_lcssa81 * $100;
+    var $102 = $93 / $101;
+    var $103 = $102 & -1;
+    var $104 = ($103 | 0) > 8;
+    var $105 = $103 & 255;
+    var $106 = $104 ? 8 : $105;
+    var $107 = $mask_idx + $b_0_lcssa | 0;
+    HEAP8[$107] = $106;
+    label = 12;
+    break;
+   case 11:
+    var $109 = $mask_idx + $b_0_lcssa | 0;
+    HEAP8[$109] = 0;
+    label = 12;
+    break;
+   case 12:
+    return;
+  }
+}
+_vbrpsy_calc_mask_index_s["X"] = 1;
+function _mask_add_delta($i) {
+  return HEAP32[5249740 + ($i << 2) >> 2];
+}
+function _calc_energy($l, $fftenergy, $eb, $max, $avg) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = $l + 2148 | 0;
+    var $2 = HEAP32[$1 >> 2];
+    var $3 = ($2 | 0) > 0;
+    if ($3) {
+      var $j_026 = 0;
+      var $b_027 = 0;
+      label = 3;
+      break;
+    } else {
+      label = 8;
+      break;
+    }
+   case 3:
+    var $b_027;
+    var $j_026;
+    var $4 = $l + 1716 + ($b_027 << 2) | 0;
+    var $5 = HEAP32[$4 >> 2];
+    var $6 = ($5 | 0) > 0;
+    if ($6) {
+      label = 4;
+      break;
+    } else {
+      var $j_1_lcssa = $j_026;
+      var $ebb_0_lcssa = 0;
+      var $m_0_lcssa = 0;
+      label = 7;
+      break;
+    }
+   case 4:
+    var $7 = HEAP32[$4 >> 2];
+    var $8 = ($7 | 0) > 1;
+    var $smax = $8 ? $7 : 1;
+    var $j_120 = $j_026;
+    var $ebb_021 = 0;
+    var $m_022 = 0;
+    var $i_023 = 0;
+    label = 5;
+    break;
+   case 5:
+    var $i_023;
+    var $m_022;
+    var $ebb_021;
+    var $j_120;
+    var $10 = $fftenergy + ($j_120 << 2) | 0;
+    var $11 = HEAPF32[$10 >> 2];
+    var $12 = $ebb_021 + $11;
+    var $13 = $m_022 < $11;
+    var $m_1 = $13 ? $11 : $m_022;
+    var $14 = $i_023 + 1 | 0;
+    var $15 = $j_120 + 1 | 0;
+    var $16 = ($14 | 0) < ($7 | 0);
+    if ($16) {
+      var $j_120 = $15;
+      var $ebb_021 = $12;
+      var $m_022 = $m_1;
+      var $i_023 = $14;
+      label = 5;
+      break;
+    } else {
+      label = 6;
+      break;
+    }
+   case 6:
+    var $17 = $j_026 + $smax | 0;
+    var $j_1_lcssa = $17;
+    var $ebb_0_lcssa = $12;
+    var $m_0_lcssa = $m_1;
+    label = 7;
+    break;
+   case 7:
+    var $m_0_lcssa;
+    var $ebb_0_lcssa;
+    var $j_1_lcssa;
+    var $19 = $eb + ($b_027 << 2) | 0;
+    HEAPF32[$19 >> 2] = $ebb_0_lcssa;
+    var $20 = $max + ($b_027 << 2) | 0;
+    HEAPF32[$20 >> 2] = $m_0_lcssa;
+    var $21 = $l + 512 + ($b_027 << 2) | 0;
+    var $22 = HEAPF32[$21 >> 2];
+    var $23 = $ebb_0_lcssa * $22;
+    var $24 = $avg + ($b_027 << 2) | 0;
+    HEAPF32[$24 >> 2] = $23;
+    var $25 = $b_027 + 1 | 0;
+    var $26 = HEAP32[$1 >> 2];
+    var $27 = ($25 | 0) < ($26 | 0);
+    if ($27) {
+      var $j_026 = $j_1_lcssa;
+      var $b_027 = $25;
+      label = 3;
+      break;
+    } else {
+      label = 8;
+      break;
+    }
+   case 8:
+    return;
+  }
+}
+function _init_numline($gd, $sfreq, $fft_size, $mdct_size, $sbmax, $scalepos) {
+  var label = 0;
+  var __stackBase__ = STACKTOP;
+  STACKTOP = STACKTOP + 2312 | 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $b_frq = __stackBase__;
+    var $partition = __stackBase__ + 260;
+    var $1 = $mdct_size | 0;
+    var $2 = $1 * 2;
+    var $3 = $sfreq / $2;
+    var $4 = $fft_size | 0;
+    var $5 = $4 / $2;
+    var $6 = $partition;
+    for (var $$dest = $6 >> 2, $$stop = $$dest + 513; $$dest < $$stop; $$dest++) {
+      HEAP32[$$dest] = 0;
+    }
+    var $7 = $sfreq / $4;
+    var $8 = ($fft_size | 0) / 2 & -1;
+    var $9 = ($fft_size | 0) / 2 & -1;
+    var $j_0 = 0;
+    var $ni_0 = 0;
+    label = 3;
+    break;
+   case 3:
+    var $ni_0;
+    var $j_0;
+    var $11 = ($ni_0 | 0) < 64;
+    if ($11) {
+      label = 4;
+      break;
+    } else {
+      var $j_2 = $j_0;
+      var $ni_1 = $ni_0;
+      label = 11;
+      break;
+    }
+   case 4:
+    var $13 = $j_0 | 0;
+    var $14 = $7 * $13;
+    var $15 = _freq2bark($14);
+    var $16 = $b_frq + ($ni_0 << 2) | 0;
+    HEAPF32[$16 >> 2] = $14;
+    var $j2_0 = $j_0;
+    label = 5;
+    break;
+   case 5:
+    var $j2_0;
+    var $18 = $j2_0 | 0;
+    var $19 = $7 * $18;
+    var $20 = _freq2bark($19);
+    var $21 = $20 - $15;
+    var $22 = $21;
+    var $23 = $22 >= .34;
+    var $24 = ($j2_0 | 0) > ($8 | 0);
+    var $or_cond = $23 | $24;
+    var $25 = $j2_0 + 1 | 0;
+    if ($or_cond) {
+      label = 6;
+      break;
+    } else {
+      var $j2_0 = $25;
+      label = 5;
+      break;
+    }
+   case 6:
+    var $26 = $j2_0 - $j_0 | 0;
+    var $27 = $gd + 1716 + ($ni_0 << 2) | 0;
+    HEAP32[$27 >> 2] = $26;
+    var $28 = ($26 | 0) > 0;
+    if ($28) {
+      label = 7;
+      break;
+    } else {
+      var $33 = 0;
+      label = 8;
+      break;
+    }
+   case 7:
+    var $30 = $26 | 0;
+    var $31 = 1 / $30;
+    var $33 = $31;
+    label = 8;
+    break;
+   case 8:
+    var $33;
+    var $34 = $gd + 512 + ($ni_0 << 2) | 0;
+    HEAPF32[$34 >> 2] = $33;
+    var $35 = $ni_0 + 1 | 0;
+    var $36 = ($j_0 | 0) < ($j2_0 | 0);
+    if ($36) {
+      var $j_190 = $j_0;
+      label = 9;
+      break;
+    } else {
+      var $j_1_lcssa = $j_0;
+      label = 10;
+      break;
+    }
+   case 9:
+    var $j_190;
+    var $37 = $j_190 + 1 | 0;
+    var $38 = $partition + ($j_190 << 2) | 0;
+    HEAP32[$38 >> 2] = $ni_0;
+    var $exitcond97 = ($37 | 0) == ($j2_0 | 0);
+    if ($exitcond97) {
+      var $j_1_lcssa = $j2_0;
+      label = 10;
+      break;
+    } else {
+      var $j_190 = $37;
+      label = 9;
+      break;
+    }
+   case 10:
+    var $j_1_lcssa;
+    var $39 = ($j_1_lcssa | 0) > ($9 | 0);
+    if ($39) {
+      var $j_2 = $9;
+      var $ni_1 = $35;
+      label = 11;
+      break;
+    } else {
+      var $j_0 = $j_1_lcssa;
+      var $ni_0 = $35;
+      label = 3;
+      break;
+    }
+   case 11:
+    var $ni_1;
+    var $j_2;
+    var $41 = $j_2 | 0;
+    var $42 = $7 * $41;
+    var $43 = $b_frq + ($ni_1 << 2) | 0;
+    HEAPF32[$43 >> 2] = $42;
+    var $44 = $gd + 2152 | 0;
+    HEAP32[$44 >> 2] = $sbmax;
+    var $45 = $gd + 2148 | 0;
+    HEAP32[$45 >> 2] = $ni_1;
+    var $46 = ($ni_1 | 0) > 0;
+    if ($46) {
+      var $j_386 = 0;
+      var $i_287 = 0;
+      label = 13;
+      break;
+    } else {
+      var $i_384 = 0;
+      label = 16;
+      break;
+    }
+   case 12:
+    var $47 = ($58 | 0) < 64;
+    if ($47) {
+      var $i_384 = $58;
+      label = 16;
+      break;
+    } else {
+      label = 14;
+      break;
+    }
+   case 13:
+    var $i_287;
+    var $j_386;
+    var $48 = $gd + 1716 + ($i_287 << 2) | 0;
+    var $49 = HEAP32[$48 >> 2];
+    var $50 = ($49 | 0) / 2 & -1;
+    var $51 = $50 + $j_386 | 0;
+    var $52 = $51 | 0;
+    var $53 = $7 * $52;
+    var $54 = $53;
+    var $55 = _stereo_demask($54);
+    var $56 = $gd + 768 + ($i_287 << 2) | 0;
+    HEAPF32[$56 >> 2] = $55;
+    var $57 = $49 + $j_386 | 0;
+    var $58 = $i_287 + 1 | 0;
+    var $59 = HEAP32[$45 >> 2];
+    var $60 = ($58 | 0) < ($59 | 0);
+    if ($60) {
+      var $j_386 = $57;
+      var $i_287 = $58;
+      label = 13;
+      break;
+    } else {
+      label = 12;
+      break;
+    }
+   case 14:
+    var $61 = ($sbmax | 0) > 0;
+    if ($61) {
+      label = 15;
+      break;
+    } else {
+      label = 21;
+      break;
+    }
+   case 15:
+    var $62 = $5;
+    var $63 = ($fft_size | 0) / 2 & -1;
+    var $sfb_082 = 0;
+    label = 17;
+    break;
+   case 16:
+    var $i_384;
+    var $64 = $gd + 768 + ($i_384 << 2) | 0;
+    HEAPF32[$64 >> 2] = 1;
+    var $65 = $i_384 + 1 | 0;
+    var $exitcond95 = ($65 | 0) == 64;
+    if ($exitcond95) {
+      label = 14;
+      break;
+    } else {
+      var $i_384 = $65;
+      label = 16;
+      break;
+    }
+   case 17:
+    var $sfb_082;
+    var $67 = $scalepos + ($sfb_082 << 2) | 0;
+    var $68 = HEAP32[$67 >> 2];
+    var $69 = $sfb_082 + 1 | 0;
+    var $70 = $scalepos + ($69 << 2) | 0;
+    var $71 = HEAP32[$70 >> 2];
+    var $72 = $68 | 0;
+    var $73 = $72 - .5;
+    var $74 = $62 * $73;
+    var $75 = $74 + .5;
+    var $76 = Math.floor($75);
+    var $77 = $76 & -1;
+    var $78 = ($77 | 0) < 0;
+    var $_ = $78 ? 0 : $77;
+    var $79 = $71 | 0;
+    var $80 = $79 - .5;
+    var $81 = $62 * $80;
+    var $82 = $81 + .5;
+    var $83 = Math.floor($82);
+    var $84 = $83 & -1;
+    var $85 = ($84 | 0) > ($63 | 0);
+    var $i2_0 = $85 ? $63 : $84;
+    var $86 = $partition + ($i2_0 << 2) | 0;
+    var $87 = HEAP32[$86 >> 2];
+    var $88 = $partition + ($_ << 2) | 0;
+    var $89 = HEAP32[$88 >> 2];
+    var $90 = $89 + $87 | 0;
+    var $91 = ($90 | 0) / 2 & -1;
+    var $92 = $gd + 1972 + ($sfb_082 << 2) | 0;
+    HEAP32[$92 >> 2] = $91;
+    var $93 = $gd + 2060 + ($sfb_082 << 2) | 0;
+    HEAP32[$93 >> 2] = $87;
+    var $94 = $71 | 0;
+    var $95 = $3 * $94;
+    var $96 = $b_frq + ($87 << 2) | 0;
+    var $97 = HEAPF32[$96 >> 2];
+    var $98 = $95 - $97;
+    var $99 = $87 + 1 | 0;
+    var $100 = $b_frq + ($99 << 2) | 0;
+    var $101 = HEAPF32[$100 >> 2];
+    var $102 = $101 - $97;
+    var $103 = $98 / $102;
+    var $104 = $103 < 0;
+    if ($104) {
+      var $bo_w_0 = 0;
+      label = 20;
+      break;
+    } else {
+      label = 18;
+      break;
+    }
+   case 18:
+    var $106 = $103 > 1;
+    if ($106) {
+      label = 19;
+      break;
+    } else {
+      var $bo_w_0 = $103;
+      label = 20;
+      break;
+    }
+   case 19:
+    var $bo_w_0 = 1;
+    label = 20;
+    break;
+   case 20:
+    var $bo_w_0;
+    var $109 = $gd + 1112 + ($sfb_082 << 2) | 0;
+    HEAPF32[$109 >> 2] = $bo_w_0;
+    var $110 = $68 | 0;
+    var $111 = $3 * $110;
+    var $112 = $111;
+    var $113 = _stereo_demask($112);
+    var $114 = $gd + 1024 + ($sfb_082 << 2) | 0;
+    HEAPF32[$114 >> 2] = $113;
+    var $exitcond = ($69 | 0) == ($sbmax | 0);
+    if ($exitcond) {
+      label = 21;
+      break;
+    } else {
+      var $sfb_082 = $69;
+      label = 17;
+      break;
+    }
+   case 21:
+    STACKTOP = __stackBase__;
+    return;
+  }
+}
+_init_numline["X"] = 1;
+function _compute_bark_values($gd, $sfreq, $fft_size, $bval, $bval_width) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = $gd + 2148 | 0;
+    var $2 = HEAP32[$1 >> 2];
+    var $3 = $fft_size | 0;
+    var $4 = $sfreq / $3;
+    var $5 = ($2 | 0) > 0;
+    if ($5) {
+      label = 3;
+      break;
+    } else {
+      label = 5;
+      break;
+    }
+   case 3:
+    var $6 = $4;
+    var $j_022 = 0;
+    var $k_023 = 0;
+    label = 4;
+    break;
+   case 4:
+    var $k_023;
+    var $j_022;
+    var $8 = $gd + 1716 + ($k_023 << 2) | 0;
+    var $9 = HEAP32[$8 >> 2];
+    var $10 = $j_022 | 0;
+    var $11 = $4 * $10;
+    var $12 = _freq2bark($11);
+    var $13 = $9 + $j_022 | 0;
+    var $14 = $13 - 1 | 0;
+    var $15 = $14 | 0;
+    var $16 = $4 * $15;
+    var $17 = _freq2bark($16);
+    var $18 = $12 + $17;
+    var $19 = $18 * .5;
+    var $20 = $bval + ($k_023 << 2) | 0;
+    HEAPF32[$20 >> 2] = $19;
+    var $21 = $j_022 | 0;
+    var $22 = $21 - .5;
+    var $23 = $6 * $22;
+    var $24 = $23;
+    var $25 = _freq2bark($24);
+    var $26 = $13 | 0;
+    var $27 = $26 - .5;
+    var $28 = $6 * $27;
+    var $29 = $28;
+    var $30 = _freq2bark($29);
+    var $31 = $30 - $25;
+    var $32 = $bval_width + ($k_023 << 2) | 0;
+    HEAPF32[$32 >> 2] = $31;
+    var $33 = $k_023 + 1 | 0;
+    var $exitcond = ($33 | 0) == ($2 | 0);
+    if ($exitcond) {
+      label = 5;
+      break;
+    } else {
+      var $j_022 = $13;
+      var $k_023 = $33;
+      label = 4;
+      break;
+    }
+   case 5:
+    return;
+  }
+}
+function _init_s3_values($p, $s3ind, $npart, $bval, $bval_width, $norm) {
+  var label = 0;
+  var __stackBase__ = STACKTOP;
+  STACKTOP = STACKTOP + 16384 | 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $s3 = __stackBase__;
+    var $1 = $s3;
+    for (var $$dest = $1 >> 2, $$stop = $$dest + 4096; $$dest < $$stop; $$dest++) {
+      HEAP32[$$dest] = 0;
+    }
+    var $2 = ($npart | 0) > 0;
+    if ($2) {
+      var $i_068 = 0;
+      label = 3;
+      break;
+    } else {
+      var $numberOfNoneZero_0_lcssa = 0;
+      label = 15;
+      break;
+    }
+   case 3:
+    var $i_068;
+    var $3 = $bval + ($i_068 << 2) | 0;
+    var $4 = HEAPF32[$3 >> 2];
+    var $5 = $norm + ($i_068 << 2) | 0;
+    var $6 = HEAPF32[$5 >> 2];
+    var $j_065 = 0;
+    label = 5;
+    break;
+   case 4:
+    var $7 = ($npart | 0) > 0;
+    if ($7) {
+      var $i_160 = 0;
+      var $numberOfNoneZero_061 = 0;
+      label = 7;
+      break;
+    } else {
+      var $numberOfNoneZero_0_lcssa = 0;
+      label = 15;
+      break;
+    }
+   case 5:
+    var $j_065;
+    var $9 = $bval + ($j_065 << 2) | 0;
+    var $10 = HEAPF32[$9 >> 2];
+    var $11 = $4 - $10;
+    var $12 = _s3_func($11);
+    var $13 = $bval_width + ($j_065 << 2) | 0;
+    var $14 = HEAPF32[$13 >> 2];
+    var $15 = $12 * $14;
+    var $16 = $15 * $6;
+    var $17 = $s3 + ($i_068 << 8) + ($j_065 << 2) | 0;
+    HEAPF32[$17 >> 2] = $16;
+    var $18 = $j_065 + 1 | 0;
+    var $exitcond72 = ($18 | 0) == ($npart | 0);
+    if ($exitcond72) {
+      label = 6;
+      break;
+    } else {
+      var $j_065 = $18;
+      label = 5;
+      break;
+    }
+   case 6:
+    var $19 = $i_068 + 1 | 0;
+    var $exitcond73 = ($19 | 0) == ($npart | 0);
+    if ($exitcond73) {
+      label = 4;
+      break;
+    } else {
+      var $i_068 = $19;
+      label = 3;
+      break;
+    }
+   case 7:
+    var $numberOfNoneZero_061;
+    var $i_160;
+    var $j_1 = 0;
+    label = 8;
+    break;
+   case 8:
+    var $j_1;
+    var $21 = ($j_1 | 0) < ($npart | 0);
+    if ($21) {
+      label = 9;
+      break;
+    } else {
+      label = 10;
+      break;
+    }
+   case 9:
+    var $23 = $s3 + ($i_160 << 8) + ($j_1 << 2) | 0;
+    var $24 = HEAPF32[$23 >> 2];
+    var $25 = $24 > 0;
+    var $26 = $j_1 + 1 | 0;
+    if ($25) {
+      label = 10;
+      break;
+    } else {
+      var $j_1 = $26;
+      label = 8;
+      break;
+    }
+   case 10:
+    var $28 = $s3ind + ($i_160 << 3) | 0;
+    HEAP32[$28 >> 2] = $j_1;
+    var $j_2_in = $npart;
+    label = 11;
+    break;
+   case 11:
+    var $j_2_in;
+    var $j_2 = $j_2_in - 1 | 0;
+    var $30 = ($j_2 | 0) > 0;
+    if ($30) {
+      label = 12;
+      break;
+    } else {
+      label = 13;
+      break;
+    }
+   case 12:
+    var $32 = $s3 + ($i_160 << 8) + ($j_2 << 2) | 0;
+    var $33 = HEAPF32[$32 >> 2];
+    var $34 = $33 > 0;
+    if ($34) {
+      label = 13;
+      break;
+    } else {
+      var $j_2_in = $j_2;
+      label = 11;
+      break;
+    }
+   case 13:
+    var $36 = $s3ind + ($i_160 << 3) + 4 | 0;
+    HEAP32[$36 >> 2] = $j_2;
+    var $37 = HEAP32[$28 >> 2];
+    var $38 = $numberOfNoneZero_061 + $j_2_in | 0;
+    var $39 = $38 - $37 | 0;
+    var $40 = $i_160 + 1 | 0;
+    var $exitcond71 = ($40 | 0) == ($npart | 0);
+    if ($exitcond71) {
+      label = 14;
+      break;
+    } else {
+      var $i_160 = $40;
+      var $numberOfNoneZero_061 = $39;
+      label = 7;
+      break;
+    }
+   case 14:
+    var $phitmp = $39 << 2;
+    var $numberOfNoneZero_0_lcssa = $phitmp;
+    label = 15;
+    break;
+   case 15:
+    var $numberOfNoneZero_0_lcssa;
+    var $41 = _malloc($numberOfNoneZero_0_lcssa);
+    var $42 = $41;
+    HEAP32[$p >> 2] = $42;
+    var $43 = ($41 | 0) == 0;
+    if ($43) {
+      var $_0 = -1;
+      label = 20;
+      break;
+    } else {
+      label = 16;
+      break;
+    }
+   case 16:
+    var $44 = ($npart | 0) > 0;
+    if ($44) {
+      var $i_254 = 0;
+      var $k_056 = 0;
+      label = 17;
+      break;
+    } else {
+      var $_0 = 0;
+      label = 20;
+      break;
+    }
+   case 17:
+    var $k_056;
+    var $i_254;
+    var $45 = $s3ind + ($i_254 << 3) | 0;
+    var $46 = HEAP32[$45 >> 2];
+    var $47 = $s3ind + ($i_254 << 3) + 4 | 0;
+    var $48 = HEAP32[$47 >> 2];
+    var $49 = ($46 | 0) > ($48 | 0);
+    if ($49) {
+      var $k_1_lcssa = $k_056;
+      label = 19;
+      break;
+    } else {
+      var $j_352 = $46;
+      var $k_153 = $k_056;
+      label = 18;
+      break;
+    }
+   case 18:
+    var $k_153;
+    var $j_352;
+    var $50 = $s3 + ($i_254 << 8) + ($j_352 << 2) | 0;
+    var $51 = HEAPF32[$50 >> 2];
+    var $52 = $k_153 + 1 | 0;
+    var $53 = HEAP32[$p >> 2];
+    var $54 = $53 + ($k_153 << 2) | 0;
+    HEAPF32[$54 >> 2] = $51;
+    var $55 = $j_352 + 1 | 0;
+    var $56 = HEAP32[$47 >> 2];
+    var $57 = ($55 | 0) > ($56 | 0);
+    if ($57) {
+      var $k_1_lcssa = $52;
+      label = 19;
+      break;
+    } else {
+      var $j_352 = $55;
+      var $k_153 = $52;
+      label = 18;
+      break;
+    }
+   case 19:
+    var $k_1_lcssa;
+    var $58 = $i_254 + 1 | 0;
+    var $exitcond = ($58 | 0) == ($npart | 0);
+    if ($exitcond) {
+      var $_0 = 0;
+      label = 20;
+      break;
+    } else {
+      var $i_254 = $58;
+      var $k_056 = $k_1_lcssa;
+      label = 17;
+      break;
+    }
+   case 20:
+    var $_0;
+    STACKTOP = __stackBase__;
+    return $_0;
+  }
+}
+_init_s3_values["X"] = 1;
+function _s3_func($bark) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = $bark < 0;
+    if ($1) {
+      label = 4;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 3:
+    var $3 = $bark * 3;
+    var $tempx_0 = $3;
+    label = 5;
+    break;
+   case 4:
+    var $5 = $bark * 1.5;
+    var $tempx_0 = $5;
+    label = 5;
+    break;
+   case 5:
+    var $tempx_0;
+    var $7 = $tempx_0;
+    var $8 = $tempx_0 < .5;
+    var $9 = $tempx_0 > 2.5;
+    var $or_cond = $8 | $9;
+    if ($or_cond) {
+      var $x_0 = 0;
+      label = 7;
+      break;
+    } else {
+      label = 6;
+      break;
+    }
+   case 6:
+    var $11 = $tempx_0 - .5;
+    var $12 = $11 * $11;
+    var $13 = $12;
+    var $14 = $11;
+    var $15 = $14 * 2;
+    var $16 = $13 - $15;
+    var $17 = $16 * 8;
+    var $18 = $17;
+    var $x_0 = $18;
+    label = 7;
+    break;
+   case 7:
+    var $x_0;
+    var $20 = $7 + .474;
+    var $21 = $20;
+    var $22 = $21;
+    var $23 = $22 * 7.5;
+    var $24 = $23 + 15.811389;
+    var $25 = $21 * $21;
+    var $26 = $25;
+    var $27 = $26 + 1;
+    var $28 = Math.sqrt($27);
+    var $29 = $28 * 17.5;
+    var $30 = $24 - $29;
+    var $31 = $30;
+    var $32 = $31 > -60;
+    if ($32) {
+      label = 8;
+      break;
+    } else {
+      var $_0 = 0;
+      label = 9;
+      break;
+    }
+   case 8:
+    var $34 = $x_0 + $31;
+    var $35 = $34;
+    var $36 = $35 * .23025850929940458;
+    var $37 = Math.exp($36);
+    var $38 = $37;
+    var $39 = $38;
+    var $40 = $39 / .6609193;
+    var $41 = $40;
+    var $_0 = $41;
+    label = 9;
+    break;
+   case 9:
+    var $_0;
+    return $_0;
+  }
+}
+function _stereo_demask($f) {
+  var $2 = _freq2bark($f);
+  return Math.pow(10, (1 - Math.cos(($2 < 15.5 ? $2 : 15.5) / 15.5 * 3.141592653589793)) * 1.25 - 2.5);
+}
+function _vbrpsy_mask_add($m1, $m2, $b, $delta) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = $m1 < 0;
+    var $_023 = $1 ? 0 : $m1;
+    var $2 = $m2 < 0;
+    var $_024 = $2 ? 0 : $m2;
+    var $3 = $_023 > 0;
+    if ($3) {
+      label = 3;
+      break;
+    } else {
+      var $_0 = $_024;
+      label = 14;
+      break;
+    }
+   case 3:
+    var $5 = $_024 > 0;
+    if ($5) {
+      label = 4;
+      break;
+    } else {
+      var $_0 = $_023;
+      label = 14;
+      break;
+    }
+   case 4:
+    var $7 = $_024 > $_023;
+    if ($7) {
+      label = 5;
+      break;
+    } else {
+      label = 6;
+      break;
+    }
+   case 5:
+    var $9 = $_024 / $_023;
+    var $ratio_0 = $9;
+    label = 7;
+    break;
+   case 6:
+    var $11 = $_023 / $_024;
+    var $ratio_0 = $11;
+    label = 7;
+    break;
+   case 7:
+    var $ratio_0;
+    var $ispos = ($b | 0) > -1;
+    var $neg = -$b | 0;
+    var $13 = $ispos ? $b : $neg;
+    var $14 = ($13 | 0) > ($delta | 0);
+    if ($14) {
+      label = 11;
+      break;
+    } else {
+      label = 8;
+      break;
+    }
+   case 8:
+    var $16 = HEAPF32[5314460 >> 2];
+    var $17 = $ratio_0 < $16;
+    if ($17) {
+      label = 10;
+      break;
+    } else {
+      label = 9;
+      break;
+    }
+   case 9:
+    var $19 = $_023 + $_024;
+    var $_0 = $19;
+    label = 14;
+    break;
+   case 10:
+    var $21 = _fast_log2($ratio_0);
+    var $22 = $21;
+    var $23 = $22 * 4.816479930623698;
+    var $24 = $23 & -1;
+    var $25 = $_023 + $_024;
+    var $26 = 5248064 + ($24 << 2) | 0;
+    var $27 = HEAPF32[$26 >> 2];
+    var $28 = $25 * $27;
+    var $_0 = $28;
+    label = 14;
+    break;
+   case 11:
+    var $30 = HEAPF32[5314456 >> 2];
+    var $31 = $ratio_0 < $30;
+    if ($31) {
+      label = 12;
+      break;
+    } else {
+      label = 13;
+      break;
+    }
+   case 12:
+    var $33 = $_023 + $_024;
+    var $_0 = $33;
+    label = 14;
+    break;
+   case 13:
+    var $_1 = $7 ? $_024 : $_023;
+    var $_0 = $_1;
+    label = 14;
+    break;
+   case 14:
+    var $_0;
+    return $_0;
+  }
+}
+function _calc_mask_index_l($gfc, $max, $avg, $mask_idx) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = $gfc + 85796 | 0;
+    var $2 = HEAP32[$1 >> 2];
+    var $3 = HEAPF32[$avg >> 2];
+    var $4 = $avg + 4 | 0;
+    var $5 = HEAPF32[$4 >> 2];
+    var $6 = $3 + $5;
+    var $7 = $6 > 0;
+    if ($7) {
+      label = 3;
+      break;
+    } else {
+      var $storemerge = 0;
+      label = 4;
+      break;
+    }
+   case 3:
+    var $9 = HEAPF32[$max >> 2];
+    var $10 = $max + 4 | 0;
+    var $11 = HEAPF32[$10 >> 2];
+    var $12 = $9 < $11;
+    var $m_0 = $12 ? $11 : $9;
+    var $13 = $m_0 * 2;
+    var $14 = $13 - $6;
+    var $15 = $14 * 20;
+    var $16 = $2 + 1716 | 0;
+    var $17 = HEAP32[$16 >> 2];
+    var $18 = $2 + 1720 | 0;
+    var $19 = HEAP32[$18 >> 2];
+    var $20 = $17 - 1 | 0;
+    var $21 = $20 + $19 | 0;
+    var $22 = $21 | 0;
+    var $23 = $6 * $22;
+    var $24 = $15 / $23;
+    var $25 = $24 & -1;
+    var $26 = ($25 | 0) > 8;
+    var $27 = $25 & 255;
+    var $28 = $26 ? 8 : $27;
+    var $storemerge = $28;
+    label = 4;
+    break;
+   case 4:
+    var $storemerge;
+    HEAP8[$mask_idx] = $storemerge;
+    var $30 = $2 + 2148 | 0;
+    var $31 = HEAP32[$30 >> 2];
+    var $32 = $31 - 1 | 0;
+    var $33 = ($32 | 0) > 1;
+    var $34 = HEAPF32[$avg >> 2];
+    var $35 = $avg + 4 | 0;
+    var $36 = HEAPF32[$35 >> 2];
+    var $37 = $34 + $36;
+    if ($33) {
+      var $b_082 = 1;
+      var $39 = 0;
+      var $38 = $37;
+      label = 5;
+      break;
+    } else {
+      var $b_0_lcssa = 1;
+      var $_lcssa = 0;
+      var $_lcssa81 = $37;
+      label = 9;
+      break;
+    }
+   case 5:
+    var $38;
+    var $39;
+    var $b_082;
+    var $40 = $b_082 + 1 | 0;
+    var $41 = $avg + ($40 << 2) | 0;
+    var $42 = HEAPF32[$41 >> 2];
+    var $43 = $38 + $42;
+    var $44 = $43 > 0;
+    if ($44) {
+      label = 6;
+      break;
+    } else {
+      label = 8;
+      break;
+    }
+   case 6:
+    var $46 = $max + ($39 << 2) | 0;
+    var $47 = HEAPF32[$46 >> 2];
+    var $48 = $max + ($b_082 << 2) | 0;
+    var $49 = HEAPF32[$48 >> 2];
+    var $50 = $47 < $49;
+    var $m_1 = $50 ? $49 : $47;
+    var $51 = $max + ($40 << 2) | 0;
+    var $52 = HEAPF32[$51 >> 2];
+    var $53 = $m_1 < $52;
+    var $m_2 = $53 ? $52 : $m_1;
+    var $54 = $m_2 * 3;
+    var $55 = $54 - $43;
+    var $56 = $55 * 20;
+    var $57 = $2 + 1716 + ($39 << 2) | 0;
+    var $58 = HEAP32[$57 >> 2];
+    var $59 = $2 + 1716 + ($b_082 << 2) | 0;
+    var $60 = HEAP32[$59 >> 2];
+    var $61 = $2 + 1716 + ($40 << 2) | 0;
+    var $62 = HEAP32[$61 >> 2];
+    var $63 = $58 - 1 | 0;
+    var $64 = $63 + $60 | 0;
+    var $65 = $64 + $62 | 0;
+    var $66 = $65 | 0;
+    var $67 = $43 * $66;
+    var $68 = $56 / $67;
+    var $69 = $68 & -1;
+    var $70 = ($69 | 0) > 8;
+    var $71 = $69 & 255;
+    var $72 = $70 ? 8 : $71;
+    var $73 = $mask_idx + $b_082 | 0;
+    HEAP8[$73] = $72;
+    label = 7;
+    break;
+   case 7:
+    var $74 = HEAP32[$30 >> 2];
+    var $75 = $74 - 1 | 0;
+    var $76 = ($40 | 0) < ($75 | 0);
+    var $77 = $avg + ($b_082 << 2) | 0;
+    var $78 = HEAPF32[$77 >> 2];
+    var $79 = $avg + ($40 << 2) | 0;
+    var $80 = HEAPF32[$79 >> 2];
+    var $81 = $78 + $80;
+    if ($76) {
+      var $39 = $b_082;
+      var $b_082 = $40;
+      var $38 = $81;
+      label = 5;
+      break;
+    } else {
+      var $b_0_lcssa = $40;
+      var $_lcssa = $b_082;
+      var $_lcssa81 = $81;
+      label = 9;
+      break;
+    }
+   case 8:
+    var $83 = $mask_idx + $b_082 | 0;
+    HEAP8[$83] = 0;
+    label = 7;
+    break;
+   case 9:
+    var $_lcssa81;
+    var $_lcssa;
+    var $b_0_lcssa;
+    var $84 = $_lcssa81 > 0;
+    if ($84) {
+      label = 10;
+      break;
+    } else {
+      label = 11;
+      break;
+    }
+   case 10:
+    var $86 = $max + ($_lcssa << 2) | 0;
+    var $87 = HEAPF32[$86 >> 2];
+    var $88 = $max + ($b_0_lcssa << 2) | 0;
+    var $89 = HEAPF32[$88 >> 2];
+    var $90 = $87 < $89;
+    var $m_3 = $90 ? $89 : $87;
+    var $91 = $m_3 * 2;
+    var $92 = $91 - $_lcssa81;
+    var $93 = $92 * 20;
+    var $94 = $2 + 1716 + ($_lcssa << 2) | 0;
+    var $95 = HEAP32[$94 >> 2];
+    var $96 = $2 + 1716 + ($b_0_lcssa << 2) | 0;
+    var $97 = HEAP32[$96 >> 2];
+    var $98 = $95 - 1 | 0;
+    var $99 = $98 + $97 | 0;
+    var $100 = $99 | 0;
+    var $101 = $_lcssa81 * $100;
+    var $102 = $93 / $101;
+    var $103 = $102 & -1;
+    var $104 = ($103 | 0) > 8;
+    var $105 = $103 & 255;
+    var $106 = $104 ? 8 : $105;
+    var $107 = $mask_idx + $b_0_lcssa | 0;
+    HEAP8[$107] = $106;
+    label = 12;
+    break;
+   case 11:
+    var $109 = $mask_idx + $b_0_lcssa | 0;
+    HEAP8[$109] = 0;
+    label = 12;
+    break;
+   case 12:
+    return;
+  }
+}
+_calc_mask_index_l["X"] = 1;
+function _psycho_loudness_approx($energy, $eql_w) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $i_07 = 0;
+    var $loudness_power_08 = 0;
+    label = 3;
+    break;
+   case 3:
+    var $loudness_power_08;
+    var $i_07;
+    var $2 = $energy + ($i_07 << 2) | 0;
+    var $3 = HEAPF32[$2 >> 2];
+    var $4 = $eql_w + ($i_07 << 2) | 0;
+    var $5 = HEAPF32[$4 >> 2];
+    var $6 = $3 * $5;
+    var $7 = $loudness_power_08 + $6;
+    var $8 = $i_07 + 1 | 0;
+    var $exitcond = ($8 | 0) == 512;
+    if ($exitcond) {
+      label = 4;
+      break;
+    } else {
+      var $i_07 = $8;
+      var $loudness_power_08 = $7;
+      label = 3;
+      break;
+    }
+   case 4:
+    var $10 = $7;
+    var $11 = $10 * 8.974871343596633e-12;
+    var $12 = $11;
+    return $12;
+  }
+}
+function _init_xrpow_core_init($gfc) {
+  HEAP32[$gfc + 85820 >> 2] = 48;
+  return;
+}
+function _init_xrpow_core_c($cod_info, $xrpow, $upper, $sum) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    HEAPF32[$sum >> 2] = 0;
+    var $1 = ($upper | 0) < 0;
+    if ($1) {
+      label = 7;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 3:
+    var $2 = $cod_info + 4764 | 0;
+    var $3 = $upper + 1 | 0;
+    var $i_016 = 0;
+    label = 4;
+    break;
+   case 4:
+    var $i_016;
+    var $5 = $cod_info + ($i_016 << 2) | 0;
+    var $6 = HEAPF32[$5 >> 2];
+    var $fabsf = Math.abs($6);
+    var $7 = HEAPF32[$sum >> 2];
+    var $8 = $fabsf + $7;
+    HEAPF32[$sum >> 2] = $8;
+    var $9 = $fabsf;
+    var $10 = Math.sqrt($9);
+    var $11 = $9 * $10;
+    var $12 = Math.sqrt($11);
+    var $13 = $12;
+    var $14 = $xrpow + ($i_016 << 2) | 0;
+    HEAPF32[$14 >> 2] = $13;
+    var $15 = HEAPF32[$2 >> 2];
+    var $16 = $13 > $15;
+    if ($16) {
+      label = 5;
+      break;
+    } else {
+      label = 6;
+      break;
+    }
+   case 5:
+    HEAPF32[$2 >> 2] = $13;
+    label = 6;
+    break;
+   case 6:
+    var $19 = $i_016 + 1 | 0;
+    var $exitcond = ($19 | 0) == ($3 | 0);
+    if ($exitcond) {
+      label = 7;
+      break;
+    } else {
+      var $i_016 = $19;
+      label = 4;
+      break;
+    }
+   case 7:
+    return;
+  }
+}
+function _VBR_old_iteration_loop($gfc, $pe, $ms_ener_ratio, $ratio) {
+  var label = 0;
+  var __stackBase__ = STACKTOP;
+  STACKTOP = STACKTOP + 3040 | 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $l3_xmin = __stackBase__;
+    var $xrpow = __stackBase__ + 624;
+    var $bands = __stackBase__ + 2928;
+    var $frameBits = __stackBase__ + 2944;
+    var $min_bits = __stackBase__ + 3004;
+    var $max_bits = __stackBase__ + 3020;
+    var $mean_bits = __stackBase__ + 3036;
+    var $1 = $l3_xmin | 0;
+    var $2 = $frameBits | 0;
+    var $3 = $min_bits | 0;
+    var $4 = $max_bits | 0;
+    var $5 = $bands | 0;
+    var $6 = _VBR_old_prepare($gfc, $pe, $ms_ener_ratio, $ratio, $1, $2, $3, $4, $5);
+    var $7 = $gfc + 76 | 0;
+    var $8 = ($6 | 0) == 0;
+    var $9 = $gfc + 112 | 0;
+    var $10 = $gfc + 84740 | 0;
+    var $11 = $gfc + 124 | 0;
+    var $12 = $gfc + 84740 | 0;
+    var $13 = $gfc + 84740 | 0;
+    var $14 = $gfc + 116 | 0;
+    var $15 = $gfc + 72 | 0;
+    var $16 = $xrpow | 0;
+    var $17 = $gfc + 85092 | 0;
+    var $used_bits_0 = 0;
+    var $gr_0 = 0;
+    label = 3;
+    break;
+   case 3:
+    var $gr_0;
+    var $used_bits_0;
+    var $18 = HEAP32[$7 >> 2];
+    var $19 = ($gr_0 | 0) < ($18 | 0);
+    if ($19) {
+      label = 4;
+      break;
+    } else {
+      label = 12;
+      break;
+    }
+   case 4:
+    var $20 = HEAP32[$15 >> 2];
+    var $21 = ($20 | 0) > 0;
+    if ($21) {
+      var $ch_063 = 0;
+      var $used_bits_165 = $used_bits_0;
+      label = 5;
+      break;
+    } else {
+      var $used_bits_1_lcssa = $used_bits_0;
+      label = 11;
+      break;
+    }
+   case 5:
+    var $used_bits_165;
+    var $ch_063;
+    var $22 = $gfc + 304 + $gr_0 * 10504 + $ch_063 * 5252 | 0;
+    var $23 = _init_xrpow($gfc, $22, $16);
+    var $24 = ($23 | 0) == 0;
+    if ($24) {
+      var $used_bits_2 = $used_bits_165;
+      label = 10;
+      break;
+    } else {
+      label = 6;
+      break;
+    }
+   case 6:
+    var $26 = $max_bits + ($gr_0 << 3) + ($ch_063 << 2) | 0;
+    var $27 = HEAP32[$26 >> 2];
+    var $28 = ($27 | 0) == 0;
+    if ($28) {
+      var $used_bits_2 = $used_bits_165;
+      label = 10;
+      break;
+    } else {
+      label = 7;
+      break;
+    }
+   case 7:
+    var $30 = $l3_xmin + $gr_0 * 312 + $ch_063 * 156 | 0;
+    var $31 = $min_bits + ($gr_0 << 3) + ($ch_063 << 2) | 0;
+    var $32 = HEAP32[$31 >> 2];
+    _VBR_encode_granule($gfc, $22, $30, $16, $ch_063, $32, $27);
+    var $33 = HEAP32[$17 >> 2];
+    var $34 = $33 & 1;
+    var $35 = ($34 | 0) == 0;
+    if ($35) {
+      label = 9;
+      break;
+    } else {
+      label = 8;
+      break;
+    }
+   case 8:
+    _trancate_smallspectrums($gfc, $22, $30, $16);
+    label = 9;
+    break;
+   case 9:
+    var $38 = $gfc + 304 + $gr_0 * 10504 + $ch_063 * 5252 + 4768 | 0;
+    var $39 = HEAP32[$38 >> 2];
+    var $40 = $gfc + 304 + $gr_0 * 10504 + $ch_063 * 5252 + 4844 | 0;
+    var $41 = HEAP32[$40 >> 2];
+    var $42 = $39 + $used_bits_165 | 0;
+    var $43 = $42 + $41 | 0;
+    var $used_bits_2 = $43;
+    label = 10;
+    break;
+   case 10:
+    var $used_bits_2;
+    var $45 = $ch_063 + 1 | 0;
+    var $46 = HEAP32[$15 >> 2];
+    var $47 = ($45 | 0) < ($46 | 0);
+    if ($47) {
+      var $ch_063 = $45;
+      var $used_bits_165 = $used_bits_2;
+      label = 5;
+      break;
+    } else {
+      var $used_bits_1_lcssa = $used_bits_2;
+      label = 11;
+      break;
+    }
+   case 11:
+    var $used_bits_1_lcssa;
+    var $48 = $gr_0 + 1 | 0;
+    var $used_bits_0 = $used_bits_1_lcssa;
+    var $gr_0 = $48;
+    label = 3;
+    break;
+   case 12:
+    if ($8) {
+      label = 15;
+      break;
+    } else {
+      label = 13;
+      break;
+    }
+   case 13:
+    var $51 = HEAP32[$11 >> 2];
+    var $52 = ($51 | 0) == 0;
+    if ($52) {
+      label = 14;
+      break;
+    } else {
+      label = 15;
+      break;
+    }
+   case 14:
+    HEAP32[$12 >> 2] = 1;
+    label = 16;
+    break;
+   case 15:
+    var $55 = HEAP32[$9 >> 2];
+    HEAP32[$10 >> 2] = $55;
+    label = 16;
+    break;
+   case 16:
+    var $56 = HEAP32[$13 >> 2];
+    var $57 = HEAP32[$14 >> 2];
+    var $58 = ($56 | 0) < ($57 | 0);
+    if ($58) {
+      var $59 = $56;
+      label = 17;
+      break;
+    } else {
+      label = 19;
+      break;
+    }
+   case 17:
+    var $59;
+    var $60 = $frameBits + ($59 << 2) | 0;
+    var $61 = HEAP32[$60 >> 2];
+    var $62 = ($used_bits_0 | 0) > ($61 | 0);
+    if ($62) {
+      label = 18;
+      break;
+    } else {
+      label = 19;
+      break;
+    }
+   case 18:
+    var $64 = $59 + 1 | 0;
+    HEAP32[$13 >> 2] = $64;
+    var $65 = HEAP32[$14 >> 2];
+    var $66 = ($64 | 0) < ($65 | 0);
+    if ($66) {
+      var $59 = $64;
+      label = 17;
+      break;
+    } else {
+      label = 19;
+      break;
+    }
+   case 19:
+    var $67 = _ResvFrameBegin($gfc, $mean_bits);
+    var $68 = ($used_bits_0 | 0) > ($67 | 0);
+    if ($68) {
+      label = 22;
+      break;
+    } else {
+      label = 20;
+      break;
+    }
+   case 20:
+    var $69 = HEAP32[$7 >> 2];
+    var $70 = ($69 | 0) > 0;
+    if ($70) {
+      label = 21;
+      break;
+    } else {
+      label = 26;
+      break;
+    }
+   case 21:
+    var $71 = $gfc + 72 | 0;
+    var $gr_157 = 0;
+    label = 23;
+    break;
+   case 22:
+    _bitpressure_strategy($gfc, $1, $3, $4);
+    var $used_bits_0 = 0;
+    var $gr_0 = 0;
+    label = 3;
+    break;
+   case 23:
+    var $gr_157;
+    var $73 = HEAP32[$71 >> 2];
+    var $74 = ($73 | 0) > 0;
+    if ($74) {
+      var $ch_155 = 0;
+      label = 24;
+      break;
+    } else {
+      label = 25;
+      break;
+    }
+   case 24:
+    var $ch_155;
+    _iteration_finish_one($gfc, $gr_157, $ch_155);
+    var $75 = $ch_155 + 1 | 0;
+    var $76 = HEAP32[$71 >> 2];
+    var $77 = ($75 | 0) < ($76 | 0);
+    if ($77) {
+      var $ch_155 = $75;
+      label = 24;
+      break;
+    } else {
+      label = 25;
+      break;
+    }
+   case 25:
+    var $78 = $gr_157 + 1 | 0;
+    var $79 = HEAP32[$7 >> 2];
+    var $80 = ($78 | 0) < ($79 | 0);
+    if ($80) {
+      var $gr_157 = $78;
+      label = 23;
+      break;
+    } else {
+      label = 26;
+      break;
+    }
+   case 26:
+    var $81 = HEAP32[$mean_bits >> 2];
+    _ResvFrameEnd($gfc, $81);
+    STACKTOP = __stackBase__;
+    return;
+  }
+}
+_VBR_old_iteration_loop["X"] = 1;
+function _VBR_old_prepare($gfc, $pe, $ms_ener_ratio, $ratio, $l3_xmin, $frameBits, $min_bits, $max_bits, $bands) {
+  var label = 0;
+  var __stackBase__ = STACKTOP;
+  STACKTOP = STACKTOP + 4 | 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $avg = __stackBase__;
+    var $1 = $gfc + 116 | 0;
+    var $2 = HEAP32[$1 >> 2];
+    var $3 = $gfc + 84740 | 0;
+    HEAP32[$3 >> 2] = $2;
+    var $4 = _ResvFrameBegin($gfc, $avg);
+    var $5 = $gfc + 76 | 0;
+    var $6 = HEAP32[$5 >> 2];
+    var $7 = ($4 | 0) / ($6 | 0) & -1;
+    HEAP32[$avg >> 2] = $7;
+    _get_framebits($gfc, $frameBits);
+    var $8 = HEAP32[$5 >> 2];
+    var $9 = ($8 | 0) > 0;
+    if ($9) {
+      label = 3;
+      break;
+    } else {
+      var $analog_silence_0_lcssa106 = 1;
+      label = 21;
+      break;
+    }
+   case 3:
+    var $10 = HEAP32[$avg >> 2];
+    var $11 = $gfc + 84752 | 0;
+    var $12 = $gfc + 304 | 0;
+    var $13 = $gfc + 72 | 0;
+    var $14 = $gfc + 84912 | 0;
+    var $15 = $gfc + 84904 | 0;
+    var $16 = $gfc + 84908 | 0;
+    var $gr_098 = 0;
+    var $analog_silence_0100 = 1;
+    var $bits_0101 = 0;
+    label = 6;
+    break;
+   case 4:
+    var $17 = ($71 | 0) > 0;
+    if ($17) {
+      label = 5;
+      break;
+    } else {
+      var $analog_silence_0_lcssa106 = $analog_silence_1_lcssa;
+      label = 21;
+      break;
+    }
+   case 5:
+    var $18 = $gfc + 72 | 0;
+    var $19 = ($bits_1_lcssa | 0) > 0;
+    var $gr_188 = 0;
+    label = 14;
+    break;
+   case 6:
+    var $bits_0101;
+    var $analog_silence_0100;
+    var $gr_098;
+    var $21 = $max_bits + ($gr_098 << 3) | 0;
+    var $22 = _on_pe($gfc, $pe, $21, $10, $gr_098, 0);
+    var $23 = HEAP32[$11 >> 2];
+    var $24 = ($23 | 0) == 2;
+    if ($24) {
+      label = 7;
+      break;
+    } else {
+      label = 8;
+      break;
+    }
+   case 7:
+    _ms_convert($12, $gr_098);
+    var $26 = $ms_ener_ratio + ($gr_098 << 2) | 0;
+    var $27 = HEAPF32[$26 >> 2];
+    _reduce_side($21, $27, $10, $22);
+    label = 8;
+    break;
+   case 8:
+    var $28 = HEAP32[$13 >> 2];
+    var $29 = ($28 | 0) > 0;
+    if ($29) {
+      var $ch_092 = 0;
+      var $analog_silence_193 = $analog_silence_0100;
+      var $bits_194 = $bits_0101;
+      label = 9;
+      break;
+    } else {
+      var $analog_silence_1_lcssa = $analog_silence_0100;
+      var $bits_1_lcssa = $bits_0101;
+      label = 13;
+      break;
+    }
+   case 9:
+    var $bits_194;
+    var $analog_silence_193;
+    var $ch_092;
+    var $30 = $gfc + 304 + $gr_098 * 10504 + $ch_092 * 5252 | 0;
+    var $31 = $gfc + 304 + $gr_098 * 10504 + $ch_092 * 5252 + 4788 | 0;
+    var $32 = HEAP32[$31 >> 2];
+    var $33 = ($32 | 0) == 2;
+    var $34 = $pe + ($gr_098 << 3) + ($ch_092 << 2) | 0;
+    var $35 = HEAPF32[$34 >> 2];
+    var $36 = $35;
+    var $37 = $36 / 300;
+    var $38 = 3.5 - $37;
+    var $39 = Math.exp($38);
+    var $40 = $39 + 1;
+    if ($33) {
+      label = 11;
+      break;
+    } else {
+      label = 10;
+      break;
+    }
+   case 10:
+    var $42 = 1.28 / $40;
+    var $43 = $42 - .05;
+    var $44 = $43;
+    var $45 = HEAPF32[$16 >> 2];
+    var $46 = $45 - $44;
+    var $masking_lower_db_0 = $46;
+    label = 12;
+    break;
+   case 11:
+    var $48 = 2.56 / $40;
+    var $49 = $48 - .14;
+    var $50 = $49;
+    var $51 = HEAPF32[$14 >> 2];
+    var $52 = $51 - $50;
+    var $masking_lower_db_0 = $52;
+    label = 12;
+    break;
+   case 12:
+    var $masking_lower_db_0;
+    var $54 = $masking_lower_db_0;
+    var $55 = $54 * .1;
+    var $56 = Math.pow(10, $55);
+    var $57 = $56;
+    HEAPF32[$15 >> 2] = $57;
+    _init_outer_loop($gfc, $30);
+    var $58 = $ratio + $gr_098 * 976 + $ch_092 * 488 | 0;
+    var $59 = $l3_xmin + $gr_098 * 312 + $ch_092 * 156 | 0;
+    var $60 = _calc_xmin($gfc, $58, $30, $59);
+    var $61 = $bands + ($gr_098 << 3) + ($ch_092 << 2) | 0;
+    HEAP32[$61 >> 2] = $60;
+    var $62 = ($60 | 0) == 0;
+    var $analog_silence_1_ = $62 ? $analog_silence_193 : 0;
+    var $63 = $min_bits + ($gr_098 << 3) + ($ch_092 << 2) | 0;
+    HEAP32[$63 >> 2] = 126;
+    var $64 = $max_bits + ($gr_098 << 3) + ($ch_092 << 2) | 0;
+    var $65 = HEAP32[$64 >> 2];
+    var $66 = $65 + $bits_194 | 0;
+    var $67 = $ch_092 + 1 | 0;
+    var $68 = HEAP32[$13 >> 2];
+    var $69 = ($67 | 0) < ($68 | 0);
+    if ($69) {
+      var $ch_092 = $67;
+      var $analog_silence_193 = $analog_silence_1_;
+      var $bits_194 = $66;
+      label = 9;
+      break;
+    } else {
+      var $analog_silence_1_lcssa = $analog_silence_1_;
+      var $bits_1_lcssa = $66;
+      label = 13;
+      break;
+    }
+   case 13:
+    var $bits_1_lcssa;
+    var $analog_silence_1_lcssa;
+    var $70 = $gr_098 + 1 | 0;
+    var $71 = HEAP32[$5 >> 2];
+    var $72 = ($70 | 0) < ($71 | 0);
+    if ($72) {
+      var $gr_098 = $70;
+      var $analog_silence_0100 = $analog_silence_1_lcssa;
+      var $bits_0101 = $bits_1_lcssa;
+      label = 6;
+      break;
+    } else {
+      label = 4;
+      break;
+    }
+   case 14:
+    var $gr_188;
+    var $73 = HEAP32[$18 >> 2];
+    var $74 = ($73 | 0) > 0;
+    if ($74) {
+      var $ch_186 = 0;
+      label = 15;
+      break;
+    } else {
+      label = 20;
+      break;
+    }
+   case 15:
+    var $ch_186;
+    var $75 = HEAP32[$1 >> 2];
+    var $76 = $frameBits + ($75 << 2) | 0;
+    var $77 = HEAP32[$76 >> 2];
+    var $78 = ($bits_1_lcssa | 0) > ($77 | 0);
+    var $or_cond = $78 & $19;
+    if ($or_cond) {
+      label = 16;
+      break;
+    } else {
+      label = 17;
+      break;
+    }
+   case 16:
+    var $80 = $max_bits + ($gr_188 << 3) + ($ch_186 << 2) | 0;
+    var $81 = HEAP32[$80 >> 2];
+    var $82 = $81 * $77 & -1;
+    var $83 = ($82 | 0) / ($bits_1_lcssa | 0) & -1;
+    HEAP32[$80 >> 2] = $83;
+    label = 17;
+    break;
+   case 17:
+    var $85 = $min_bits + ($gr_188 << 3) + ($ch_186 << 2) | 0;
+    var $86 = HEAP32[$85 >> 2];
+    var $87 = $max_bits + ($gr_188 << 3) + ($ch_186 << 2) | 0;
+    var $88 = HEAP32[$87 >> 2];
+    var $89 = ($86 | 0) > ($88 | 0);
+    if ($89) {
+      label = 18;
+      break;
+    } else {
+      label = 19;
+      break;
+    }
+   case 18:
+    HEAP32[$85 >> 2] = $88;
+    label = 19;
+    break;
+   case 19:
+    var $92 = $ch_186 + 1 | 0;
+    var $93 = HEAP32[$18 >> 2];
+    var $94 = ($92 | 0) < ($93 | 0);
+    if ($94) {
+      var $ch_186 = $92;
+      label = 15;
+      break;
+    } else {
+      label = 20;
+      break;
+    }
+   case 20:
+    var $95 = $gr_188 + 1 | 0;
+    var $96 = HEAP32[$5 >> 2];
+    var $97 = ($95 | 0) < ($96 | 0);
+    if ($97) {
+      var $gr_188 = $95;
+      label = 14;
+      break;
+    } else {
+      var $analog_silence_0_lcssa106 = $analog_silence_1_lcssa;
+      label = 21;
+      break;
+    }
+   case 21:
+    var $analog_silence_0_lcssa106;
+    STACKTOP = __stackBase__;
+    return $analog_silence_0_lcssa106;
+  }
+}
+_VBR_old_prepare["X"] = 1;
+function _init_xrpow($gfc, $cod_info, $xrpow) {
+  var label = 0;
+  var __stackBase__ = STACKTOP;
+  STACKTOP = STACKTOP + 4 | 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $sum = __stackBase__;
+    HEAPF32[$sum >> 2] = 0;
+    var $1 = $cod_info + 5208 | 0;
+    var $2 = HEAP32[$1 >> 2];
+    var $3 = $cod_info + 4764 | 0;
+    HEAPF32[$3 >> 2] = 0;
+    var $4 = $xrpow + ($2 << 2) | 0;
+    var $5 = $4;
+    var $6 = 576 - $2 | 0;
+    var $7 = $6 << 2;
+    _memset($5, 0, $7);
+    var $8 = $gfc + 85820 | 0;
+    var $9 = HEAP32[$8 >> 2];
+    FUNCTION_TABLE[$9]($cod_info, $xrpow, $2, $sum);
+    var $10 = HEAPF32[$sum >> 2];
+    var $11 = $10 > 9.999999682655225e-21;
+    if ($11) {
+      label = 3;
+      break;
+    } else {
+      label = 5;
+      break;
+    }
+   case 3:
+    var $13 = $gfc + 85092 | 0;
+    var $14 = HEAP32[$13 >> 2];
+    var $15 = $14 >>> 1;
+    var $_lobit = $15 & 1;
+    var $16 = $cod_info + 4864 | 0;
+    var $17 = HEAP32[$16 >> 2];
+    var $18 = ($17 | 0) > 0;
+    if ($18) {
+      var $i_015 = 0;
+      label = 4;
+      break;
+    } else {
+      var $_0 = 1;
+      label = 6;
+      break;
+    }
+   case 4:
+    var $i_015;
+    var $19 = $gfc + 84932 + ($i_015 << 2) | 0;
+    HEAP32[$19 >> 2] = $_lobit;
+    var $20 = $i_015 + 1 | 0;
+    var $21 = HEAP32[$16 >> 2];
+    var $22 = ($20 | 0) < ($21 | 0);
+    if ($22) {
+      var $i_015 = $20;
+      label = 4;
+      break;
+    } else {
+      var $_0 = 1;
+      label = 6;
+      break;
+    }
+   case 5:
+    var $24 = $cod_info + 2304 | 0;
+    var $25 = $24;
+    for (var $$dest = $25 >> 2, $$stop = $$dest + 576; $$dest < $$stop; $$dest++) {
+      HEAP32[$$dest] = 0;
+    }
+    var $_0 = 0;
+    label = 6;
+    break;
+   case 6:
+    var $_0;
+    STACKTOP = __stackBase__;
+    return $_0;
+  }
+}
+function _VBR_encode_granule($gfc, $cod_info, $l3_xmin, $xrpow, $ch, $min_bits, $max_bits) {
+  var label = 0;
+  var __stackBase__ = STACKTOP;
+  STACKTOP = STACKTOP + 7556 | 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $bst_cod_info = __stackBase__;
+    var $bst_xrpow = __stackBase__ + 5252;
+    var $1 = $max_bits + $min_bits | 0;
+    var $2 = ($1 | 0) / 2 & -1;
+    var $3 = $gfc + 85088 | 0;
+    var $4 = HEAP32[$3 >> 2];
+    var $bst_cod_info_2304_idx = $bst_cod_info + 2304 | 0;
+    var $bst_cod_info_2304_cast = $bst_cod_info_2304_idx;
+    for (var $$dest = $bst_cod_info_2304_cast >> 2, $$stop = $$dest + 576; $$dest < $$stop; $$dest++) {
+      HEAP32[$$dest] = 0;
+    }
+    var $5 = $max_bits - 42 | 0;
+    var $6 = $cod_info + 4768 | 0;
+    var $7 = $bst_cod_info;
+    var $8 = $cod_info;
+    var $9 = $bst_xrpow;
+    var $10 = $xrpow;
+    var $11 = $cod_info;
+    var $12 = $bst_cod_info;
+    var $13 = $xrpow;
+    var $14 = $bst_xrpow;
+    var $_0 = $min_bits;
+    var $found_0 = 0;
+    var $_031 = $max_bits;
+    var $this_bits_0 = $2;
+    label = 3;
+    break;
+   case 3:
+    var $this_bits_0;
+    var $_031;
+    var $found_0;
+    var $_0;
+    var $16 = ($this_bits_0 | 0) > ($5 | 0);
+    var $_ = $16 ? 0 : $4;
+    HEAP32[$3 >> 2] = $_;
+    var $17 = _outer_loop($gfc, $cod_info, $l3_xmin, $xrpow, $ch, $this_bits_0);
+    var $18 = ($17 | 0) < 1;
+    if ($18) {
+      label = 4;
+      break;
+    } else {
+      label = 5;
+      break;
+    }
+   case 4:
+    var $20 = HEAP32[$6 >> 2];
+    for (var $$src = $8 >> 2, $$dest = $7 >> 2, $$stop = $$src + 1313; $$src < $$stop; $$src++, $$dest++) {
+      HEAP32[$$dest] = HEAP32[$$src];
+    }
+    for (var $$src = $10 >> 2, $$dest = $9 >> 2, $$stop = $$src + 576; $$src < $$stop; $$src++, $$dest++) {
+      HEAP32[$$dest] = HEAP32[$$src];
+    }
+    var $21 = $20 - 32 | 0;
+    var $22 = $21 - $_0 | 0;
+    var $23 = $21 + $_0 | 0;
+    var $24 = ($23 | 0) / 2 & -1;
+    var $_1 = $_0;
+    var $found_1 = 1;
+    var $_132 = $21;
+    var $dbits_0 = $22;
+    var $this_bits_1 = $24;
+    label = 7;
+    break;
+   case 5:
+    var $26 = $this_bits_0 + 32 | 0;
+    var $27 = $_031 - $26 | 0;
+    var $28 = $_031 + $26 | 0;
+    var $29 = ($28 | 0) / 2 & -1;
+    var $30 = ($found_0 | 0) == 0;
+    if ($30) {
+      var $_1 = $26;
+      var $found_1 = 0;
+      var $_132 = $_031;
+      var $dbits_0 = $27;
+      var $this_bits_1 = $29;
+      label = 7;
+      break;
+    } else {
+      label = 6;
+      break;
+    }
+   case 6:
+    for (var $$src = $12 >> 2, $$dest = $11 >> 2, $$stop = $$src + 1313; $$src < $$stop; $$src++, $$dest++) {
+      HEAP32[$$dest] = HEAP32[$$src];
+    }
+    for (var $$src = $14 >> 2, $$dest = $13 >> 2, $$stop = $$src + 576; $$src < $$stop; $$src++, $$dest++) {
+      HEAP32[$$dest] = HEAP32[$$src];
+    }
+    var $_1 = $26;
+    var $found_1 = 2;
+    var $_132 = $_031;
+    var $dbits_0 = $27;
+    var $this_bits_1 = $29;
+    label = 7;
+    break;
+   case 7:
+    var $this_bits_1;
+    var $dbits_0;
+    var $_132;
+    var $found_1;
+    var $_1;
+    var $33 = ($dbits_0 | 0) > 12;
+    if ($33) {
+      var $_0 = $_1;
+      var $found_0 = $found_1;
+      var $_031 = $_132;
+      var $this_bits_0 = $this_bits_1;
+      label = 3;
+      break;
+    } else {
+      label = 8;
+      break;
+    }
+   case 8:
+    HEAP32[$3 >> 2] = $4;
+    var $35 = ($found_1 | 0) == 2;
+    if ($35) {
+      label = 9;
+      break;
+    } else {
+      label = 10;
+      break;
+    }
+   case 9:
+    var $37 = $cod_info + 2304 | 0;
+    var $38 = $37;
+    for (var $$src = $bst_cod_info_2304_cast >> 2, $$dest = $38 >> 2, $$stop = $$src + 576; $$src < $$stop; $$src++, $$dest++) {
+      HEAP32[$$dest] = HEAP32[$$src];
+    }
+    label = 10;
+    break;
+   case 10:
+    STACKTOP = __stackBase__;
+    return;
+  }
+}
+_VBR_encode_granule["X"] = 1;
+function _trancate_smallspectrums($gfc, $gi, $l3_xmin, $work) {
+  var label = 0;
+  var __stackBase__ = STACKTOP;
+  STACKTOP = STACKTOP + 180 | 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $distort = __stackBase__;
+    var $dummy = __stackBase__ + 156;
+    var $1 = $gfc + 85092 | 0;
+    var $2 = HEAP32[$1 >> 2];
+    var $3 = $2 & 4;
+    var $4 = ($3 | 0) == 0;
+    if ($4) {
+      label = 3;
+      break;
+    } else {
+      label = 4;
+      break;
+    }
+   case 3:
+    var $6 = $gi + 4788 | 0;
+    var $7 = HEAP32[$6 >> 2];
+    var $8 = ($7 | 0) == 2;
+    if ($8) {
+      label = 32;
+      break;
+    } else {
+      label = 4;
+      break;
+    }
+   case 4:
+    var $10 = HEAP32[$1 >> 2];
+    var $11 = $10 & 128;
+    var $12 = ($11 | 0) == 0;
+    if ($12) {
+      label = 5;
+      break;
+    } else {
+      label = 32;
+      break;
+    }
+   case 5:
+    var $14 = $distort | 0;
+    var $15 = _calc_noise($gi, $l3_xmin, $14, $dummy, 0);
+    var $j_0108 = 0;
+    label = 6;
+    break;
+   case 6:
+    var $j_0108;
+    var $17 = $gi + 2304 + ($j_0108 << 2) | 0;
+    var $18 = HEAP32[$17 >> 2];
+    var $19 = ($18 | 0) == 0;
+    if ($19) {
+      var $xr_0 = 0;
+      label = 8;
+      break;
+    } else {
+      label = 7;
+      break;
+    }
+   case 7:
+    var $21 = $gi + ($j_0108 << 2) | 0;
+    var $22 = HEAPF32[$21 >> 2];
+    var $fabsf = Math.abs($22);
+    var $xr_0 = $fabsf;
+    label = 8;
+    break;
+   case 8:
+    var $xr_0;
+    var $24 = $work + ($j_0108 << 2) | 0;
+    HEAPF32[$24 >> 2] = $xr_0;
+    var $25 = $j_0108 + 1 | 0;
+    var $exitcond = ($25 | 0) == 576;
+    if ($exitcond) {
+      label = 9;
+      break;
+    } else {
+      var $j_0108 = $25;
+      label = 6;
+      break;
+    }
+   case 9:
+    var $27 = $gi + 4788 | 0;
+    var $28 = HEAP32[$27 >> 2];
+    var $29 = ($28 | 0) == 2;
+    var $_ = $29 ? 6 : 8;
+    var $30 = $gi + 4864 | 0;
+    var $sfb_0 = $_;
+    var $j_1 = 0;
+    label = 10;
+    break;
+   case 10:
+    var $j_1;
+    var $sfb_0;
+    var $32 = $gi + 4872 + ($sfb_0 << 2) | 0;
+    var $33 = HEAP32[$32 >> 2];
+    var $34 = $33 + $j_1 | 0;
+    var $35 = $distort + ($sfb_0 << 2) | 0;
+    var $36 = HEAPF32[$35 >> 2];
+    var $37 = $36 < 1;
+    if ($37) {
+      label = 11;
+      break;
+    } else {
+      label = 30;
+      break;
+    }
+   case 11:
+    var $39 = $work + ($j_1 << 2) | 0;
+    var $40 = $39;
+    _qsort($40, $33, 4, 18);
+    var $41 = $34 - 1 | 0;
+    var $42 = $work + ($41 << 2) | 0;
+    var $43 = HEAPF32[$42 >> 2];
+    var $44 = $43 == 0;
+    if ($44) {
+      label = 13;
+      break;
+    } else {
+      label = 12;
+      break;
+    }
+   case 12:
+    var $fabsf91 = Math.abs($43);
+    var $46 = $fabsf91;
+    var $47 = $46 * 9.999999974752427e-7;
+    var $48 = $46 > $47;
+    if ($48) {
+      label = 14;
+      break;
+    } else {
+      label = 30;
+      break;
+    }
+   case 13:
+    var $50 = $43 == 0;
+    if ($50) {
+      label = 30;
+      break;
+    } else {
+      label = 14;
+      break;
+    }
+   case 14:
+    var $52 = HEAPF32[$35 >> 2];
+    var $53 = $52;
+    var $54 = 1 - $53;
+    var $55 = $l3_xmin + ($sfb_0 << 2) | 0;
+    var $56 = HEAPF32[$55 >> 2];
+    var $57 = $56;
+    var $58 = $54 * $57;
+    var $59 = $58;
+    var $start_0 = 0;
+    var $allowedNoise_0 = $59;
+    label = 15;
+    break;
+   case 15:
+    var $allowedNoise_0;
+    var $start_0;
+    var $61 = $start_0 + 1 | 0;
+    var $62 = ($61 | 0) < ($33 | 0);
+    if ($62) {
+      label = 16;
+      break;
+    } else {
+      var $nsame_0_lcssa = 1;
+      var $_lcssa = $61;
+      var $_lcssa99 = 0;
+      label = 21;
+      break;
+    }
+   case 16:
+    var $63 = $start_0 + $34 | 0;
+    var $64 = $63 - $33 | 0;
+    var $65 = $work + ($64 << 2) | 0;
+    var $66 = HEAPF32[$65 >> 2];
+    var $fabsf92 = Math.abs($66);
+    var $67 = $start_0 + $j_1 | 0;
+    var $68 = $fabsf92;
+    var $69 = $68 * 9.999999974752427e-7;
+    var $nsame_0100 = 1;
+    var $71 = $61;
+    label = 17;
+    break;
+   case 17:
+    var $71;
+    var $nsame_0100;
+    var $72 = $67 + $nsame_0100 | 0;
+    var $73 = $work + ($72 << 2) | 0;
+    var $74 = HEAPF32[$73 >> 2];
+    var $fabsf93 = Math.abs($74);
+    var $75 = $fabsf92 > $fabsf93;
+    var $76 = $66 - $74;
+    var $fabsf94 = Math.abs($76);
+    var $77 = $fabsf94;
+    if ($75) {
+      label = 18;
+      break;
+    } else {
+      label = 19;
+      break;
+    }
+   case 18:
+    var $79 = $77 > $69;
+    if ($79) {
+      var $nsame_0_lcssa = $nsame_0100;
+      var $_lcssa = $71;
+      var $_lcssa99 = 1;
+      label = 21;
+      break;
+    } else {
+      label = 20;
+      break;
+    }
+   case 19:
+    var $81 = $fabsf93;
+    var $82 = $81 * 9.999999974752427e-7;
+    var $83 = $77 > $82;
+    if ($83) {
+      var $nsame_0_lcssa = $nsame_0100;
+      var $_lcssa = $71;
+      var $_lcssa99 = 1;
+      label = 21;
+      break;
+    } else {
+      label = 20;
+      break;
+    }
+   case 20:
+    var $85 = $nsame_0100 + 1 | 0;
+    var $86 = $85 + $start_0 | 0;
+    var $87 = ($86 | 0) < ($33 | 0);
+    if ($87) {
+      var $nsame_0100 = $85;
+      var $71 = $86;
+      label = 17;
+      break;
+    } else {
+      var $nsame_0_lcssa = $85;
+      var $_lcssa = $86;
+      var $_lcssa99 = 0;
+      label = 21;
+      break;
+    }
+   case 21:
+    var $_lcssa99;
+    var $_lcssa;
+    var $nsame_0_lcssa;
+    var $88 = $j_1 + $start_0 | 0;
+    var $89 = $work + ($88 << 2) | 0;
+    var $90 = HEAPF32[$89 >> 2];
+    var $91 = $90 * $90;
+    var $92 = $nsame_0_lcssa | 0;
+    var $93 = $92 * $91;
+    var $94 = $allowedNoise_0 < $93;
+    if ($94) {
+      label = 22;
+      break;
+    } else {
+      label = 23;
+      break;
+    }
+   case 22:
+    var $96 = ($start_0 | 0) == 0;
+    if ($96) {
+      label = 30;
+      break;
+    } else {
+      label = 24;
+      break;
+    }
+   case 23:
+    var $98 = $allowedNoise_0 - $93;
+    if ($_lcssa99) {
+      var $start_0 = $_lcssa;
+      var $allowedNoise_0 = $98;
+      label = 15;
+      break;
+    } else {
+      label = 30;
+      break;
+    }
+   case 24:
+    var $100 = $88 - 1 | 0;
+    var $101 = $work + ($100 << 2) | 0;
+    var $102 = HEAPF32[$101 >> 2];
+    var $103 = $102 == 0;
+    if ($103) {
+      label = 26;
+      break;
+    } else {
+      label = 25;
+      break;
+    }
+   case 25:
+    var $phitmp = $102;
+    var $105 = Math.abs($phitmp);
+    var $106 = $105 * 9.999999974752427e-7;
+    var $107 = $105 > $106;
+    if ($107) {
+      var $width_0 = $33;
+      label = 27;
+      break;
+    } else {
+      label = 30;
+      break;
+    }
+   case 26:
+    var $109 = $102 == 0;
+    if ($109) {
+      label = 30;
+      break;
+    } else {
+      var $width_0 = $33;
+      label = 27;
+      break;
+    }
+   case 27:
+    var $width_0;
+    var $110 = $34 - $width_0 | 0;
+    var $111 = $gi + ($110 << 2) | 0;
+    var $112 = HEAPF32[$111 >> 2];
+    var $fabsf95 = Math.abs($112);
+    var $113 = $fabsf95 > $102;
+    if ($113) {
+      label = 29;
+      break;
+    } else {
+      label = 28;
+      break;
+    }
+   case 28:
+    var $115 = $gi + 2304 + ($110 << 2) | 0;
+    HEAP32[$115 >> 2] = 0;
+    label = 29;
+    break;
+   case 29:
+    var $117 = $width_0 - 1 | 0;
+    var $118 = ($117 | 0) > 0;
+    if ($118) {
+      var $width_0 = $117;
+      label = 27;
+      break;
+    } else {
+      label = 30;
+      break;
+    }
+   case 30:
+    var $119 = $sfb_0 + 1 | 0;
+    var $120 = HEAP32[$30 >> 2];
+    var $121 = ($119 | 0) < ($120 | 0);
+    if ($121) {
+      var $sfb_0 = $119;
+      var $j_1 = $34;
+      label = 10;
+      break;
+    } else {
+      label = 31;
+      break;
+    }
+   case 31:
+    var $123 = _noquant_count_bits($gfc, $gi, 0);
+    var $124 = $gi + 4768 | 0;
+    HEAP32[$124 >> 2] = $123;
+    label = 32;
+    break;
+   case 32:
+    STACKTOP = __stackBase__;
+    return;
+  }
+}
+_trancate_smallspectrums["X"] = 1;
+function _bitpressure_strategy($gfc, $l3_xmin, $min_bits, $max_bits) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = $gfc + 76 | 0;
+    var $2 = HEAP32[$1 >> 2];
+    var $3 = ($2 | 0) > 0;
+    if ($3) {
+      label = 3;
+      break;
+    } else {
+      label = 12;
+      break;
+    }
+   case 3:
+    var $4 = $gfc + 72 | 0;
+    var $gr_048 = 0;
+    label = 4;
+    break;
+   case 4:
+    var $gr_048;
+    var $5 = HEAP32[$4 >> 2];
+    var $6 = ($5 | 0) > 0;
+    if ($6) {
+      var $ch_045 = 0;
+      label = 5;
+      break;
+    } else {
+      label = 11;
+      break;
+    }
+   case 5:
+    var $ch_045;
+    var $7 = $l3_xmin + $gr_048 * 312 + $ch_045 * 156 | 0;
+    var $8 = $gfc + 304 + $gr_048 * 10504 + $ch_045 * 5252 + 4856 | 0;
+    var $9 = HEAP32[$8 >> 2];
+    var $10 = ($9 | 0) > 0;
+    if ($10) {
+      var $sfb_039 = 0;
+      var $pxmin_040 = $7;
+      label = 6;
+      break;
+    } else {
+      var $pxmin_0_lcssa = $7;
+      label = 7;
+      break;
+    }
+   case 6:
+    var $pxmin_040;
+    var $sfb_039;
+    var $11 = $sfb_039 | 0;
+    var $12 = $11 * .029;
+    var $13 = $11 * $12;
+    var $14 = $13 / 22;
+    var $15 = $14 / 22;
+    var $16 = $15 + 1;
+    var $17 = $pxmin_040 + 4 | 0;
+    var $18 = HEAPF32[$pxmin_040 >> 2];
+    var $19 = $18;
+    var $20 = $16 * $19;
+    var $21 = $20;
+    HEAPF32[$pxmin_040 >> 2] = $21;
+    var $22 = $sfb_039 + 1 | 0;
+    var $23 = HEAP32[$8 >> 2];
+    var $24 = ($22 | 0) < ($23 | 0);
+    if ($24) {
+      var $sfb_039 = $22;
+      var $pxmin_040 = $17;
+      label = 6;
+      break;
+    } else {
+      var $pxmin_0_lcssa = $17;
+      label = 7;
+      break;
+    }
+   case 7:
+    var $pxmin_0_lcssa;
+    var $25 = $gfc + 304 + $gr_048 * 10504 + $ch_045 * 5252 + 4788 | 0;
+    var $26 = HEAP32[$25 >> 2];
+    var $27 = ($26 | 0) == 2;
+    if ($27) {
+      label = 8;
+      break;
+    } else {
+      label = 10;
+      break;
+    }
+   case 8:
+    var $29 = $gfc + 304 + $gr_048 * 10504 + $ch_045 * 5252 + 4852 | 0;
+    var $30 = HEAP32[$29 >> 2];
+    var $31 = ($30 | 0) < 13;
+    if ($31) {
+      var $sfb_141 = $30;
+      var $pxmin_142 = $pxmin_0_lcssa;
+      label = 9;
+      break;
+    } else {
+      label = 10;
+      break;
+    }
+   case 9:
+    var $pxmin_142;
+    var $sfb_141;
+    var $32 = $sfb_141 | 0;
+    var $33 = $32 * .029;
+    var $34 = $32 * $33;
+    var $35 = $34 / 13;
+    var $36 = $35 / 13;
+    var $37 = $36 + 1;
+    var $38 = $pxmin_142 + 4 | 0;
+    var $39 = HEAPF32[$pxmin_142 >> 2];
+    var $40 = $39;
+    var $41 = $37 * $40;
+    var $42 = $41;
+    HEAPF32[$pxmin_142 >> 2] = $42;
+    var $43 = $pxmin_142 + 8 | 0;
+    var $44 = HEAPF32[$38 >> 2];
+    var $45 = $44;
+    var $46 = $37 * $45;
+    var $47 = $46;
+    HEAPF32[$38 >> 2] = $47;
+    var $48 = $pxmin_142 + 12 | 0;
+    var $49 = HEAPF32[$43 >> 2];
+    var $50 = $49;
+    var $51 = $37 * $50;
+    var $52 = $51;
+    HEAPF32[$43 >> 2] = $52;
+    var $53 = $sfb_141 + 1 | 0;
+    var $exitcond = ($53 | 0) == 13;
+    if ($exitcond) {
+      label = 10;
+      break;
+    } else {
+      var $sfb_141 = $53;
+      var $pxmin_142 = $48;
+      label = 9;
+      break;
+    }
+   case 10:
+    var $54 = $min_bits + ($gr_048 << 3) + ($ch_045 << 2) | 0;
+    var $55 = HEAP32[$54 >> 2];
+    var $56 = $55 | 0;
+    var $57 = $max_bits + ($gr_048 << 3) + ($ch_045 << 2) | 0;
+    var $58 = HEAP32[$57 >> 2];
+    var $59 = $58 | 0;
+    var $60 = $59 * .9;
+    var $61 = $56 > $60;
+    var $_ = $61 ? $56 : $60;
+    var $62 = $_ & -1;
+    HEAP32[$57 >> 2] = $62;
+    var $63 = $ch_045 + 1 | 0;
+    var $64 = HEAP32[$4 >> 2];
+    var $65 = ($63 | 0) < ($64 | 0);
+    if ($65) {
+      var $ch_045 = $63;
+      label = 5;
+      break;
+    } else {
+      label = 11;
+      break;
+    }
+   case 11:
+    var $66 = $gr_048 + 1 | 0;
+    var $67 = HEAP32[$1 >> 2];
+    var $68 = ($66 | 0) < ($67 | 0);
+    if ($68) {
+      var $gr_048 = $66;
+      label = 4;
+      break;
+    } else {
+      label = 12;
+      break;
+    }
+   case 12:
+    return;
+  }
+}
+_bitpressure_strategy["X"] = 1;
+function _ms_convert($l3_side, $gr) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $i_015 = 0;
+    label = 3;
+    break;
+   case 3:
+    var $i_015;
+    var $2 = $l3_side + $gr * 10504 + ($i_015 << 2) | 0;
+    var $3 = HEAPF32[$2 >> 2];
+    var $4 = $l3_side + $gr * 10504 + 5252 + ($i_015 << 2) | 0;
+    var $5 = HEAPF32[$4 >> 2];
+    var $6 = $3 + $5;
+    var $7 = $6 * .7071067690849304;
+    HEAPF32[$2 >> 2] = $7;
+    var $8 = $3 - $5;
+    var $9 = $8 * .7071067690849304;
+    HEAPF32[$4 >> 2] = $9;
+    var $10 = $i_015 + 1 | 0;
+    var $exitcond = ($10 | 0) == 576;
+    if ($exitcond) {
+      label = 4;
+      break;
+    } else {
+      var $i_015 = $10;
+      label = 3;
+      break;
+    }
+   case 4:
+    return;
+  }
+}
+function _iteration_finish_one($gfc, $gr, $ch) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = $gfc + 304 | 0;
+    var $2 = $gfc + 304 + $gr * 10504 + $ch * 5252 | 0;
+    _best_scalefac_store($gfc, $gr, $ch, $1);
+    var $3 = $gfc + 36 | 0;
+    var $4 = HEAP32[$3 >> 2];
+    var $5 = ($4 | 0) == 1;
+    if ($5) {
+      label = 3;
+      break;
+    } else {
+      label = 4;
+      break;
+    }
+   case 3:
+    _best_huffman_divide($gfc, $2);
+    label = 4;
+    break;
+   case 4:
+    _ResvAdjust($gfc, $2);
+    return;
+  }
+}
+function _VBR_new_prepare($gfc, $pe, $ratio, $l3_xmin, $frameBits, $max_bits, $max_resv) {
+  var label = 0;
+  var __stackBase__ = STACKTOP;
+  STACKTOP = STACKTOP + 4 | 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $avg = __stackBase__;
+    var $1 = $gfc + 152 | 0;
+    var $2 = HEAP32[$1 >> 2];
+    var $3 = ($2 | 0) == 0;
+    if ($3) {
+      label = 3;
+      break;
+    } else {
+      label = 4;
+      break;
+    }
+   case 3:
+    var $5 = $gfc + 116 | 0;
+    var $6 = HEAP32[$5 >> 2];
+    var $7 = $gfc + 84740 | 0;
+    HEAP32[$7 >> 2] = $6;
+    var $8 = _ResvFrameBegin($gfc, $avg);
+    var $9 = $gfc + 52140 | 0;
+    var $10 = HEAP32[$9 >> 2];
+    HEAP32[$max_resv >> 2] = $10;
+    _get_framebits($gfc, $frameBits);
+    var $11 = HEAP32[$5 >> 2];
+    var $12 = $frameBits + ($11 << 2) | 0;
+    var $13 = HEAP32[$12 >> 2];
+    var $maximum_framebits_0 = $13;
+    label = 5;
+    break;
+   case 4:
+    var $15 = $gfc + 84740 | 0;
+    HEAP32[$15 >> 2] = 0;
+    var $16 = _ResvFrameBegin($gfc, $avg);
+    HEAP32[$frameBits >> 2] = $16;
+    var $17 = $gfc + 52140 | 0;
+    var $18 = HEAP32[$17 >> 2];
+    HEAP32[$max_resv >> 2] = $18;
+    var $maximum_framebits_0 = $16;
+    label = 5;
+    break;
+   case 5:
+    var $maximum_framebits_0;
+    var $20 = $gfc + 76 | 0;
+    var $21 = HEAP32[$20 >> 2];
+    var $22 = ($21 | 0) > 0;
+    if ($22) {
+      label = 6;
+      break;
+    } else {
+      var $analog_silence_0_lcssa8586 = 1;
+      label = 20;
+      break;
+    }
+   case 6:
+    var $23 = HEAP32[$avg >> 2];
+    var $24 = $gfc + 84752 | 0;
+    var $25 = $gfc + 304 | 0;
+    var $26 = $gfc + 72 | 0;
+    var $27 = $gfc + 84908 | 0;
+    var $28 = $gfc + 84904 | 0;
+    var $analog_silence_076 = 1;
+    var $bits_077 = 0;
+    var $gr_078 = 0;
+    label = 9;
+    break;
+   case 7:
+    var $29 = ($58 | 0) > 0;
+    if ($29) {
+      label = 8;
+      break;
+    } else {
+      label = 19;
+      break;
+    }
+   case 8:
+    var $30 = $gfc + 72 | 0;
+    var $31 = ($bits_1_lcssa | 0) > ($maximum_framebits_0 | 0);
+    var $32 = ($bits_1_lcssa | 0) > 0;
+    var $or_cond = $31 & $32;
+    var $gr_166 = 0;
+    label = 14;
+    break;
+   case 9:
+    var $gr_078;
+    var $bits_077;
+    var $analog_silence_076;
+    var $34 = $max_bits + ($gr_078 << 3) | 0;
+    var $35 = _on_pe($gfc, $pe, $34, $23, $gr_078, 0);
+    var $36 = HEAP32[$24 >> 2];
+    var $37 = ($36 | 0) == 2;
+    if ($37) {
+      label = 10;
+      break;
+    } else {
+      label = 11;
+      break;
+    }
+   case 10:
+    _ms_convert($25, $gr_078);
+    label = 11;
+    break;
+   case 11:
+    var $39 = HEAP32[$26 >> 2];
+    var $40 = ($39 | 0) > 0;
+    if ($40) {
+      var $ch_070 = 0;
+      var $analog_silence_171 = $analog_silence_076;
+      var $bits_172 = $bits_077;
+      label = 12;
+      break;
+    } else {
+      var $analog_silence_1_lcssa = $analog_silence_076;
+      var $bits_1_lcssa = $bits_077;
+      label = 13;
+      break;
+    }
+   case 12:
+    var $bits_172;
+    var $analog_silence_171;
+    var $ch_070;
+    var $41 = $gfc + 304 + $gr_078 * 10504 + $ch_070 * 5252 | 0;
+    var $42 = HEAPF32[$27 >> 2];
+    var $43 = $42;
+    var $44 = $43 * .1;
+    var $45 = Math.pow(10, $44);
+    var $46 = $45;
+    HEAPF32[$28 >> 2] = $46;
+    _init_outer_loop($gfc, $41);
+    var $47 = $ratio + $gr_078 * 976 + $ch_070 * 488 | 0;
+    var $48 = $l3_xmin + $gr_078 * 312 + $ch_070 * 156 | 0;
+    var $49 = _calc_xmin($gfc, $47, $41, $48);
+    var $50 = ($49 | 0) == 0;
+    var $analog_silence_1_ = $50 ? $analog_silence_171 : 0;
+    var $51 = $max_bits + ($gr_078 << 3) + ($ch_070 << 2) | 0;
+    var $52 = HEAP32[$51 >> 2];
+    var $53 = $52 + $bits_172 | 0;
+    var $54 = $ch_070 + 1 | 0;
+    var $55 = HEAP32[$26 >> 2];
+    var $56 = ($54 | 0) < ($55 | 0);
+    if ($56) {
+      var $ch_070 = $54;
+      var $analog_silence_171 = $analog_silence_1_;
+      var $bits_172 = $53;
+      label = 12;
+      break;
+    } else {
+      var $analog_silence_1_lcssa = $analog_silence_1_;
+      var $bits_1_lcssa = $53;
+      label = 13;
+      break;
+    }
+   case 13:
+    var $bits_1_lcssa;
+    var $analog_silence_1_lcssa;
+    var $57 = $gr_078 + 1 | 0;
+    var $58 = HEAP32[$20 >> 2];
+    var $59 = ($57 | 0) < ($58 | 0);
+    if ($59) {
+      var $analog_silence_076 = $analog_silence_1_lcssa;
+      var $bits_077 = $bits_1_lcssa;
+      var $gr_078 = $57;
+      label = 9;
+      break;
+    } else {
+      label = 7;
+      break;
+    }
+   case 14:
+    var $gr_166;
+    var $60 = HEAP32[$30 >> 2];
+    var $61 = ($60 | 0) > 0;
+    if ($61) {
+      var $ch_164 = 0;
+      label = 15;
+      break;
+    } else {
+      label = 18;
+      break;
+    }
+   case 15:
+    var $ch_164;
+    if ($or_cond) {
+      label = 16;
+      break;
+    } else {
+      label = 17;
+      break;
+    }
+   case 16:
+    var $63 = $max_bits + ($gr_166 << 3) + ($ch_164 << 2) | 0;
+    var $64 = HEAP32[$63 >> 2];
+    var $65 = $64 * $maximum_framebits_0 & -1;
+    var $66 = ($65 | 0) / ($bits_1_lcssa | 0) & -1;
+    HEAP32[$63 >> 2] = $66;
+    label = 17;
+    break;
+   case 17:
+    var $68 = $ch_164 + 1 | 0;
+    var $69 = HEAP32[$30 >> 2];
+    var $70 = ($68 | 0) < ($69 | 0);
+    if ($70) {
+      var $ch_164 = $68;
+      label = 15;
+      break;
+    } else {
+      label = 18;
+      break;
+    }
+   case 18:
+    var $71 = $gr_166 + 1 | 0;
+    var $72 = HEAP32[$20 >> 2];
+    var $73 = ($71 | 0) < ($72 | 0);
+    if ($73) {
+      var $gr_166 = $71;
+      label = 14;
+      break;
+    } else {
+      label = 19;
+      break;
+    }
+   case 19:
+    var $74 = ($analog_silence_1_lcssa | 0) == 0;
+    if ($74) {
+      var $analog_silence_0_lcssa8587 = 0;
+      label = 21;
+      break;
+    } else {
+      var $analog_silence_0_lcssa8586 = $analog_silence_1_lcssa;
+      label = 20;
+      break;
+    }
+   case 20:
+    var $analog_silence_0_lcssa8586;
+    HEAP32[$max_resv >> 2] = 0;
+    var $analog_silence_0_lcssa8587 = $analog_silence_0_lcssa8586;
+    label = 21;
+    break;
+   case 21:
+    var $analog_silence_0_lcssa8587;
+    STACKTOP = __stackBase__;
+    return $analog_silence_0_lcssa8587;
+  }
+}
+_VBR_new_prepare["X"] = 1;
+function _ABR_iteration_loop($gfc, $pe, $ms_ener_ratio, $ratio) {
+  var label = 0;
+  var __stackBase__ = STACKTOP;
+  STACKTOP = STACKTOP + 2488 | 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $l3_xmin = __stackBase__;
+    var $xrpow = __stackBase__ + 156;
+    var $targ_bits = __stackBase__ + 2460;
+    var $mean_bits = __stackBase__ + 2476;
+    var $max_frame_bits = __stackBase__ + 2480;
+    var $analog_silence_bits = __stackBase__ + 2484;
+    var $1 = $gfc + 304 | 0;
+    HEAP32[$mean_bits >> 2] = 0;
+    var $2 = $targ_bits | 0;
+    _calc_target_bits($gfc, $pe, $ms_ener_ratio, $2, $analog_silence_bits, $max_frame_bits);
+    var $3 = $gfc + 76 | 0;
+    var $4 = HEAP32[$3 >> 2];
+    var $5 = ($4 | 0) > 0;
+    if ($5) {
+      label = 3;
+      break;
+    } else {
+      label = 13;
+      break;
+    }
+   case 3:
+    var $6 = $gfc + 84752 | 0;
+    var $7 = $gfc + 72 | 0;
+    var $8 = $gfc + 84908 | 0;
+    var $9 = $gfc + 84912 | 0;
+    var $10 = $gfc + 84904 | 0;
+    var $11 = $xrpow | 0;
+    var $12 = $l3_xmin | 0;
+    var $13 = HEAP32[$analog_silence_bits >> 2];
+    var $gr_046 = 0;
+    label = 4;
+    break;
+   case 4:
+    var $gr_046;
+    var $15 = HEAP32[$6 >> 2];
+    var $16 = ($15 | 0) == 2;
+    if ($16) {
+      label = 5;
+      break;
+    } else {
+      label = 6;
+      break;
+    }
+   case 5:
+    _ms_convert($1, $gr_046);
+    label = 6;
+    break;
+   case 6:
+    var $18 = HEAP32[$7 >> 2];
+    var $19 = ($18 | 0) > 0;
+    if ($19) {
+      var $ch_042 = 0;
+      label = 7;
+      break;
+    } else {
+      label = 12;
+      break;
+    }
+   case 7:
+    var $ch_042;
+    var $20 = $gfc + 304 + $gr_046 * 10504 + $ch_042 * 5252 | 0;
+    var $21 = $gfc + 304 + $gr_046 * 10504 + $ch_042 * 5252 + 4788 | 0;
+    var $22 = HEAP32[$21 >> 2];
+    var $23 = ($22 | 0) == 2;
+    var $masking_lower_db_0_in = $23 ? $9 : $8;
+    var $masking_lower_db_0 = HEAPF32[$masking_lower_db_0_in >> 2];
+    var $24 = $masking_lower_db_0;
+    var $25 = $24 * .1;
+    var $26 = Math.pow(10, $25);
+    var $27 = $26;
+    HEAPF32[$10 >> 2] = $27;
+    _init_outer_loop($gfc, $20);
+    var $28 = _init_xrpow($gfc, $20, $11);
+    var $29 = ($28 | 0) == 0;
+    if ($29) {
+      label = 11;
+      break;
+    } else {
+      label = 8;
+      break;
+    }
+   case 8:
+    var $31 = $ratio + $gr_046 * 976 + $ch_042 * 488 | 0;
+    var $32 = _calc_xmin($gfc, $31, $20, $12);
+    var $33 = ($32 | 0) == 0;
+    if ($33) {
+      label = 9;
+      break;
+    } else {
+      label = 10;
+      break;
+    }
+   case 9:
+    var $35 = $targ_bits + ($gr_046 << 3) + ($ch_042 << 2) | 0;
+    HEAP32[$35 >> 2] = $13;
+    label = 10;
+    break;
+   case 10:
+    var $37 = $targ_bits + ($gr_046 << 3) + ($ch_042 << 2) | 0;
+    var $38 = HEAP32[$37 >> 2];
+    var $39 = _outer_loop($gfc, $20, $12, $11, $ch_042, $38);
+    label = 11;
+    break;
+   case 11:
+    _iteration_finish_one($gfc, $gr_046, $ch_042);
+    var $41 = $ch_042 + 1 | 0;
+    var $42 = HEAP32[$7 >> 2];
+    var $43 = ($41 | 0) < ($42 | 0);
+    if ($43) {
+      var $ch_042 = $41;
+      label = 7;
+      break;
+    } else {
+      label = 12;
+      break;
+    }
+   case 12:
+    var $44 = $gr_046 + 1 | 0;
+    var $45 = HEAP32[$3 >> 2];
+    var $46 = ($44 | 0) < ($45 | 0);
+    if ($46) {
+      var $gr_046 = $44;
+      label = 4;
+      break;
+    } else {
+      label = 13;
+      break;
+    }
+   case 13:
+    var $47 = $gfc + 112 | 0;
+    var $48 = HEAP32[$47 >> 2];
+    var $49 = $gfc + 84740 | 0;
+    HEAP32[$49 >> 2] = $48;
+    var $50 = $gfc + 116 | 0;
+    var $51 = HEAP32[$50 >> 2];
+    var $52 = ($48 | 0) > ($51 | 0);
+    if ($52) {
+      label = 16;
+      break;
+    } else {
+      label = 14;
+      break;
+    }
+   case 14:
+    var $53 = _ResvFrameBegin($gfc, $mean_bits);
+    var $54 = ($53 | 0) > -1;
+    if ($54) {
+      label = 16;
+      break;
+    } else {
+      label = 15;
+      break;
+    }
+   case 15:
+    var $56 = HEAP32[$49 >> 2];
+    var $57 = $56 + 1 | 0;
+    HEAP32[$49 >> 2] = $57;
+    var $58 = HEAP32[$50 >> 2];
+    var $59 = ($57 | 0) > ($58 | 0);
+    if ($59) {
+      label = 16;
+      break;
+    } else {
+      label = 14;
+      break;
+    }
+   case 16:
+    var $60 = HEAP32[$mean_bits >> 2];
+    _ResvFrameEnd($gfc, $60);
+    STACKTOP = __stackBase__;
+    return;
+  }
+}
+_ABR_iteration_loop["X"] = 1;
+function _calc_target_bits($gfc, $pe, $ms_ener_ratio, $targ_bits, $analog_silence_bits, $max_frame_bits) {
+  var label = 0;
+  var __stackBase__ = STACKTOP;
+  STACKTOP = STACKTOP + 4 | 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $mean_bits = __stackBase__;
+    var $1 = $gfc + 76 | 0;
+    var $2 = HEAP32[$1 >> 2];
+    var $3 = $gfc + 116 | 0;
+    var $4 = HEAP32[$3 >> 2];
+    var $5 = $gfc + 84740 | 0;
+    HEAP32[$5 >> 2] = $4;
+    var $6 = _ResvFrameBegin($gfc, $mean_bits);
+    HEAP32[$max_frame_bits >> 2] = $6;
+    HEAP32[$5 >> 2] = 1;
+    var $7 = _getframebits($gfc);
+    var $8 = $gfc + 24 | 0;
+    var $9 = HEAP32[$8 >> 2];
+    var $10 = $9 << 3;
+    var $11 = $7 - $10 | 0;
+    var $12 = HEAP32[$1 >> 2];
+    var $13 = $gfc + 72 | 0;
+    var $14 = HEAP32[$13 >> 2];
+    var $15 = $14 * $12 & -1;
+    var $16 = ($11 | 0) / ($15 | 0) & -1;
+    HEAP32[$analog_silence_bits >> 2] = $16;
+    var $17 = $gfc + 108 | 0;
+    var $18 = HEAP32[$17 >> 2];
+    var $19 = $2 * 576e3 & -1;
+    var $20 = $19 * $18 & -1;
+    HEAP32[$mean_bits >> 2] = $20;
+    var $21 = $gfc + 85092 | 0;
+    var $22 = HEAP32[$21 >> 2];
+    var $23 = $22 & 1;
+    var $24 = ($23 | 0) == 0;
+    if ($24) {
+      label = 4;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 3:
+    var $26 = $20 | 0;
+    var $27 = $26 * 1.09;
+    var $28 = $27 & -1;
+    HEAP32[$mean_bits >> 2] = $28;
+    label = 4;
+    break;
+   case 4:
+    var $30 = $gfc + 64 | 0;
+    var $31 = HEAP32[$30 >> 2];
+    var $32 = HEAP32[$mean_bits >> 2];
+    var $33 = ($32 | 0) / ($31 | 0) & -1;
+    var $34 = HEAP32[$8 >> 2];
+    var $35 = $34 << 3;
+    var $36 = $33 - $35 | 0;
+    var $37 = HEAP32[$1 >> 2];
+    var $38 = HEAP32[$13 >> 2];
+    var $39 = $38 * $37 & -1;
+    var $40 = ($36 | 0) / ($39 | 0) & -1;
+    HEAP32[$mean_bits >> 2] = $40;
+    var $41 = $gfc + 244 | 0;
+    var $42 = HEAPF32[$41 >> 2];
+    var $43 = $42;
+    var $44 = 11 - $43;
+    var $45 = $44 * .07;
+    var $46 = $45 / 5.5;
+    var $47 = $46 + .93;
+    var $48 = $47;
+    var $49 = $48;
+    var $50 = $49 < .9;
+    var $res_factor_0 = $50 ? .8999999761581421 : $48;
+    var $51 = $res_factor_0 > 1;
+    var $res_factor_1 = $51 ? 1 : $res_factor_0;
+    var $52 = HEAP32[$1 >> 2];
+    var $53 = ($52 | 0) > 0;
+    if ($53) {
+      label = 5;
+      break;
+    } else {
+      label = 20;
+      break;
+    }
+   case 5:
+    var $54 = HEAP32[$mean_bits >> 2];
+    var $55 = $54 | 0;
+    var $56 = $res_factor_1 * $55;
+    var $57 = $56 & -1;
+    var $58 = $54 | 0;
+    var $59 = $res_factor_1 * $58;
+    var $60 = $59 & -1;
+    var $61 = HEAP32[$mean_bits >> 2];
+    var $62 = ($61 | 0) / 2 & -1;
+    var $63 = $61 * 3 & -1;
+    var $64 = ($63 | 0) / 2 & -1;
+    var $gr_0136 = 0;
+    label = 6;
+    break;
+   case 6:
+    var $gr_0136;
+    var $65 = HEAP32[$13 >> 2];
+    var $66 = ($65 | 0) > 0;
+    if ($66) {
+      var $ch_0127 = 0;
+      var $sum_0128 = 0;
+      label = 7;
+      break;
+    } else {
+      label = 19;
+      break;
+    }
+   case 7:
+    var $sum_0128;
+    var $ch_0127;
+    var $67 = $targ_bits + ($gr_0136 << 3) + ($ch_0127 << 2) | 0;
+    HEAP32[$67 >> 2] = $57;
+    var $68 = $pe + ($gr_0136 << 3) + ($ch_0127 << 2) | 0;
+    var $69 = HEAPF32[$68 >> 2];
+    var $70 = $69 > 700;
+    if ($70) {
+      label = 8;
+      break;
+    } else {
+      var $89 = $57;
+      label = 13;
+      break;
+    }
+   case 8:
+    var $72 = $69 - 700;
+    var $73 = $72;
+    var $74 = $73 / 1.4;
+    var $75 = $74 & -1;
+    HEAP32[$67 >> 2] = $60;
+    var $76 = $gfc + 304 + $gr_0136 * 10504 + $ch_0127 * 5252 + 4788 | 0;
+    var $77 = HEAP32[$76 >> 2];
+    var $78 = ($77 | 0) == 2;
+    if ($78) {
+      label = 9;
+      break;
+    } else {
+      var $add_bits_0 = $75;
+      label = 10;
+      break;
+    }
+   case 9:
+    var $80 = ($75 | 0) < ($62 | 0);
+    var $_ = $80 ? $62 : $75;
+    var $add_bits_0 = $_;
+    label = 10;
+    break;
+   case 10:
+    var $add_bits_0;
+    var $82 = ($add_bits_0 | 0) > ($64 | 0);
+    if ($82) {
+      var $add_bits_1 = $64;
+      label = 12;
+      break;
+    } else {
+      label = 11;
+      break;
+    }
+   case 11:
+    var $84 = ($add_bits_0 | 0) < 0;
+    var $_add_bits_0 = $84 ? 0 : $add_bits_0;
+    var $add_bits_1 = $_add_bits_0;
+    label = 12;
+    break;
+   case 12:
+    var $add_bits_1;
+    var $86 = HEAP32[$67 >> 2];
+    var $87 = $86 + $add_bits_1 | 0;
+    HEAP32[$67 >> 2] = $87;
+    var $89 = $87;
+    label = 13;
+    break;
+   case 13:
+    var $89;
+    var $90 = ($89 | 0) > 4095;
+    if ($90) {
+      label = 14;
+      break;
+    } else {
+      label = 15;
+      break;
+    }
+   case 14:
+    HEAP32[$67 >> 2] = 4095;
+    label = 15;
+    break;
+   case 15:
+    var $93 = HEAP32[$67 >> 2];
+    var $94 = $93 + $sum_0128 | 0;
+    var $95 = $ch_0127 + 1 | 0;
+    var $96 = HEAP32[$13 >> 2];
+    var $97 = ($95 | 0) < ($96 | 0);
+    if ($97) {
+      var $ch_0127 = $95;
+      var $sum_0128 = $94;
+      label = 7;
+      break;
+    } else {
+      label = 16;
+      break;
+    }
+   case 16:
+    var $98 = ($94 | 0) > 7680;
+    if ($98) {
+      label = 17;
+      break;
+    } else {
+      label = 19;
+      break;
+    }
+   case 17:
+    var $99 = HEAP32[$13 >> 2];
+    var $100 = ($99 | 0) > 0;
+    if ($100) {
+      var $ch_1134 = 0;
+      label = 18;
+      break;
+    } else {
+      label = 19;
+      break;
+    }
+   case 18:
+    var $ch_1134;
+    var $101 = $targ_bits + ($gr_0136 << 3) + ($ch_1134 << 2) | 0;
+    var $102 = HEAP32[$101 >> 2];
+    var $103 = $102 * 7680 & -1;
+    var $104 = ($103 | 0) / ($94 | 0) & -1;
+    HEAP32[$101 >> 2] = $104;
+    var $105 = $ch_1134 + 1 | 0;
+    var $106 = HEAP32[$13 >> 2];
+    var $107 = ($105 | 0) < ($106 | 0);
+    if ($107) {
+      var $ch_1134 = $105;
+      label = 18;
+      break;
+    } else {
+      label = 19;
+      break;
+    }
+   case 19:
+    var $108 = $gr_0136 + 1 | 0;
+    var $109 = HEAP32[$1 >> 2];
+    var $110 = ($108 | 0) < ($109 | 0);
+    if ($110) {
+      var $gr_0136 = $108;
+      label = 6;
+      break;
+    } else {
+      label = 20;
+      break;
+    }
+   case 20:
+    var $111 = $gfc + 84752 | 0;
+    var $112 = HEAP32[$111 >> 2];
+    var $113 = ($112 | 0) == 2;
+    var $114 = HEAP32[$1 >> 2];
+    if ($113) {
+      label = 21;
+      break;
+    } else {
+      var $117 = $114;
+      label = 23;
+      break;
+    }
+   case 21:
+    var $115 = ($114 | 0) > 0;
+    if ($115) {
+      label = 22;
+      break;
+    } else {
+      label = 35;
+      break;
+    }
+   case 22:
+    var $116 = HEAP32[$mean_bits >> 2];
+    var $gr_1124 = 0;
+    label = 24;
+    break;
+   case 23:
+    var $117;
+    var $118 = ($117 | 0) > 0;
+    if ($118) {
+      var $totbits_0118 = 0;
+      var $gr_2119 = 0;
+      label = 25;
+      break;
+    } else {
+      label = 35;
+      break;
+    }
+   case 24:
+    var $gr_1124;
+    var $120 = $targ_bits + ($gr_1124 << 3) | 0;
+    var $121 = $ms_ener_ratio + ($gr_1124 << 2) | 0;
+    var $122 = HEAPF32[$121 >> 2];
+    var $123 = HEAP32[$13 >> 2];
+    var $124 = $123 * $116 & -1;
+    _reduce_side($120, $122, $124, 7680);
+    var $125 = $gr_1124 + 1 | 0;
+    var $126 = HEAP32[$1 >> 2];
+    var $127 = ($125 | 0) < ($126 | 0);
+    if ($127) {
+      var $gr_1124 = $125;
+      label = 24;
+      break;
+    } else {
+      var $117 = $126;
+      label = 23;
+      break;
+    }
+   case 25:
+    var $gr_2119;
+    var $totbits_0118;
+    var $128 = HEAP32[$13 >> 2];
+    var $129 = ($128 | 0) > 0;
+    if ($129) {
+      var $ch_2113 = 0;
+      var $totbits_1114 = $totbits_0118;
+      label = 26;
+      break;
+    } else {
+      var $totbits_1_lcssa = $totbits_0118;
+      label = 29;
+      break;
+    }
+   case 26:
+    var $totbits_1114;
+    var $ch_2113;
+    var $130 = $targ_bits + ($gr_2119 << 3) + ($ch_2113 << 2) | 0;
+    var $131 = HEAP32[$130 >> 2];
+    var $132 = ($131 | 0) > 4095;
+    if ($132) {
+      label = 27;
+      break;
+    } else {
+      label = 28;
+      break;
+    }
+   case 27:
+    HEAP32[$130 >> 2] = 4095;
+    label = 28;
+    break;
+   case 28:
+    var $135 = HEAP32[$130 >> 2];
+    var $136 = $135 + $totbits_1114 | 0;
+    var $137 = $ch_2113 + 1 | 0;
+    var $138 = HEAP32[$13 >> 2];
+    var $139 = ($137 | 0) < ($138 | 0);
+    if ($139) {
+      var $ch_2113 = $137;
+      var $totbits_1114 = $136;
+      label = 26;
+      break;
+    } else {
+      var $totbits_1_lcssa = $136;
+      label = 29;
+      break;
+    }
+   case 29:
+    var $totbits_1_lcssa;
+    var $140 = $gr_2119 + 1 | 0;
+    var $141 = HEAP32[$1 >> 2];
+    var $142 = ($140 | 0) < ($141 | 0);
+    if ($142) {
+      var $totbits_0118 = $totbits_1_lcssa;
+      var $gr_2119 = $140;
+      label = 25;
+      break;
+    } else {
+      label = 30;
+      break;
+    }
+   case 30:
+    var $143 = HEAP32[$max_frame_bits >> 2];
+    var $144 = ($totbits_1_lcssa | 0) > ($143 | 0);
+    var $145 = ($totbits_1_lcssa | 0) > 0;
+    var $or_cond = $144 & $145;
+    if ($or_cond) {
+      label = 31;
+      break;
+    } else {
+      label = 35;
+      break;
+    }
+   case 31:
+    var $146 = HEAP32[$1 >> 2];
+    var $147 = ($146 | 0) > 0;
+    if ($147) {
+      var $gr_3110 = 0;
+      label = 32;
+      break;
+    } else {
+      label = 35;
+      break;
+    }
+   case 32:
+    var $gr_3110;
+    var $148 = HEAP32[$13 >> 2];
+    var $149 = ($148 | 0) > 0;
+    if ($149) {
+      var $ch_3108 = 0;
+      label = 33;
+      break;
+    } else {
+      label = 34;
+      break;
+    }
+   case 33:
+    var $ch_3108;
+    var $150 = HEAP32[$max_frame_bits >> 2];
+    var $151 = $targ_bits + ($gr_3110 << 3) + ($ch_3108 << 2) | 0;
+    var $152 = HEAP32[$151 >> 2];
+    var $153 = $152 * $150 & -1;
+    var $154 = ($153 | 0) / ($totbits_1_lcssa | 0) & -1;
+    HEAP32[$151 >> 2] = $154;
+    var $155 = $ch_3108 + 1 | 0;
+    var $156 = HEAP32[$13 >> 2];
+    var $157 = ($155 | 0) < ($156 | 0);
+    if ($157) {
+      var $ch_3108 = $155;
+      label = 33;
+      break;
+    } else {
+      label = 34;
+      break;
+    }
+   case 34:
+    var $158 = $gr_3110 + 1 | 0;
+    var $159 = HEAP32[$1 >> 2];
+    var $160 = ($158 | 0) < ($159 | 0);
+    if ($160) {
+      var $gr_3110 = $158;
+      label = 32;
+      break;
+    } else {
+      label = 35;
+      break;
+    }
+   case 35:
+    STACKTOP = __stackBase__;
+    return;
+  }
+}
+_calc_target_bits["X"] = 1;
+function _VBR_new_iteration_loop($gfc, $pe, $ms_ener_ratio, $ratio) {
+  var label = 0;
+  var __stackBase__ = STACKTOP;
+  STACKTOP = STACKTOP + 9924 | 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $l3_xmin = __stackBase__;
+    var $xrpow = __stackBase__ + 624;
+    var $frameBits = __stackBase__ + 9840;
+    var $max_bits = __stackBase__ + 9900;
+    var $pad = __stackBase__ + 9916;
+    var $mean_bits = __stackBase__ + 9920;
+    var $1 = $l3_xmin | 0;
+    var $2 = $xrpow | 0;
+    var $3 = $max_bits | 0;
+    var $4 = $xrpow;
+    for (var $$dest = $4 >> 2, $$stop = $$dest + 2304; $$dest < $$stop; $$dest++) {
+      HEAP32[$$dest] = 0;
+    }
+    var $5 = $frameBits | 0;
+    var $6 = _VBR_new_prepare($gfc, $pe, $ratio, $1, $5, $3, $pad);
+    var $7 = $gfc + 76 | 0;
+    var $8 = HEAP32[$7 >> 2];
+    var $9 = ($8 | 0) > 0;
+    if ($9) {
+      label = 3;
+      break;
+    } else {
+      label = 9;
+      break;
+    }
+   case 3:
+    var $10 = $gfc + 72 | 0;
+    var $gr_061 = 0;
+    label = 4;
+    break;
+   case 4:
+    var $gr_061;
+    var $11 = HEAP32[$10 >> 2];
+    var $12 = ($11 | 0) > 0;
+    if ($12) {
+      var $ch_057 = 0;
+      label = 5;
+      break;
+    } else {
+      label = 8;
+      break;
+    }
+   case 5:
+    var $ch_057;
+    var $13 = $gfc + 304 + $gr_061 * 10504 + $ch_057 * 5252 | 0;
+    var $14 = $xrpow + $gr_061 * 4608 + $ch_057 * 2304 | 0;
+    var $15 = _init_xrpow($gfc, $13, $14);
+    var $16 = ($15 | 0) == 0;
+    if ($16) {
+      label = 6;
+      break;
+    } else {
+      label = 7;
+      break;
+    }
+   case 6:
+    var $18 = $max_bits + ($gr_061 << 3) + ($ch_057 << 2) | 0;
+    HEAP32[$18 >> 2] = 0;
+    label = 7;
+    break;
+   case 7:
+    var $20 = $ch_057 + 1 | 0;
+    var $21 = HEAP32[$10 >> 2];
+    var $22 = ($20 | 0) < ($21 | 0);
+    if ($22) {
+      var $ch_057 = $20;
+      label = 5;
+      break;
+    } else {
+      label = 8;
+      break;
+    }
+   case 8:
+    var $23 = $gr_061 + 1 | 0;
+    var $24 = HEAP32[$7 >> 2];
+    var $25 = ($23 | 0) < ($24 | 0);
+    if ($25) {
+      var $gr_061 = $23;
+      label = 4;
+      break;
+    } else {
+      label = 9;
+      break;
+    }
+   case 9:
+    var $26 = _VBR_encode_frame($gfc, $2, $1, $3);
+    var $27 = $gfc + 152 | 0;
+    var $28 = HEAP32[$27 >> 2];
+    var $29 = ($28 | 0) == 0;
+    if ($29) {
+      label = 10;
+      break;
+    } else {
+      label = 22;
+      break;
+    }
+   case 10:
+    var $31 = ($6 | 0) == 0;
+    if ($31) {
+      label = 12;
+      break;
+    } else {
+      label = 11;
+      break;
+    }
+   case 11:
+    var $33 = $gfc + 124 | 0;
+    var $34 = HEAP32[$33 >> 2];
+    var $35 = ($34 | 0) == 0;
+    if ($35) {
+      var $i_0_ph = 1;
+      label = 13;
+      break;
+    } else {
+      label = 12;
+      break;
+    }
+   case 12:
+    var $37 = $gfc + 112 | 0;
+    var $38 = HEAP32[$37 >> 2];
+    var $i_0_ph = $38;
+    label = 13;
+    break;
+   case 13:
+    var $i_0_ph;
+    var $39 = $gfc + 116 | 0;
+    var $40 = HEAP32[$39 >> 2];
+    var $i_0 = $i_0_ph;
+    label = 14;
+    break;
+   case 14:
+    var $i_0;
+    var $42 = ($i_0 | 0) < ($40 | 0);
+    if ($42) {
+      label = 15;
+      break;
+    } else {
+      label = 16;
+      break;
+    }
+   case 15:
+    var $44 = $frameBits + ($i_0 << 2) | 0;
+    var $45 = HEAP32[$44 >> 2];
+    var $46 = ($26 | 0) > ($45 | 0);
+    var $47 = $i_0 + 1 | 0;
+    if ($46) {
+      var $i_0 = $47;
+      label = 14;
+      break;
+    } else {
+      label = 16;
+      break;
+    }
+   case 16:
+    var $49 = HEAP32[$39 >> 2];
+    var $50 = ($i_0 | 0) > ($49 | 0);
+    var $_i_0 = $50 ? $49 : $i_0;
+    var $51 = HEAP32[$pad >> 2];
+    var $52 = ($51 | 0) > 0;
+    if ($52) {
+      label = 17;
+      break;
+    } else {
+      label = 21;
+      break;
+    }
+   case 17:
+    var $53 = HEAP32[$pad >> 2];
+    var $j_0 = $49;
+    label = 18;
+    break;
+   case 18:
+    var $j_0;
+    var $55 = ($j_0 | 0) > ($_i_0 | 0);
+    if ($55) {
+      label = 19;
+      break;
+    } else {
+      label = 20;
+      break;
+    }
+   case 19:
+    var $57 = $frameBits + ($j_0 << 2) | 0;
+    var $58 = HEAP32[$57 >> 2];
+    var $59 = $58 - $26 | 0;
+    var $60 = ($59 | 0) > ($53 | 0);
+    var $61 = $j_0 - 1 | 0;
+    if ($60) {
+      var $j_0 = $61;
+      label = 18;
+      break;
+    } else {
+      label = 20;
+      break;
+    }
+   case 20:
+    var $63 = $gfc + 84740 | 0;
+    HEAP32[$63 >> 2] = $j_0;
+    label = 23;
+    break;
+   case 21:
+    var $65 = $gfc + 84740 | 0;
+    HEAP32[$65 >> 2] = $_i_0;
+    label = 23;
+    break;
+   case 22:
+    var $67 = $gfc + 84740 | 0;
+    HEAP32[$67 >> 2] = 0;
+    label = 23;
+    break;
+   case 23:
+    var $69 = $gfc + 84740 | 0;
+    var $70 = HEAP32[$69 >> 2];
+    var $71 = $frameBits + ($70 << 2) | 0;
+    var $72 = HEAP32[$71 >> 2];
+    var $73 = ($26 | 0) > ($72 | 0);
+    if ($73) {
+      label = 30;
+      break;
+    } else {
+      label = 24;
+      break;
+    }
+   case 24:
+    var $75 = _ResvFrameBegin($gfc, $mean_bits);
+    var $76 = HEAP32[$7 >> 2];
+    var $77 = ($76 | 0) > 0;
+    if ($77) {
+      label = 25;
+      break;
+    } else {
+      label = 29;
+      break;
+    }
+   case 25:
+    var $78 = $gfc + 72 | 0;
+    var $gr_151 = 0;
+    label = 26;
+    break;
+   case 26:
+    var $gr_151;
+    var $79 = HEAP32[$78 >> 2];
+    var $80 = ($79 | 0) > 0;
+    if ($80) {
+      var $ch_150 = 0;
+      label = 27;
+      break;
+    } else {
+      label = 28;
+      break;
+    }
+   case 27:
+    var $ch_150;
+    var $81 = $gfc + 304 + $gr_151 * 10504 + $ch_150 * 5252 | 0;
+    _ResvAdjust($gfc, $81);
+    var $82 = $ch_150 + 1 | 0;
+    var $83 = HEAP32[$78 >> 2];
+    var $84 = ($82 | 0) < ($83 | 0);
+    if ($84) {
+      var $ch_150 = $82;
+      label = 27;
+      break;
+    } else {
+      label = 28;
+      break;
+    }
+   case 28:
+    var $85 = $gr_151 + 1 | 0;
+    var $86 = HEAP32[$7 >> 2];
+    var $87 = ($85 | 0) < ($86 | 0);
+    if ($87) {
+      var $gr_151 = $85;
+      label = 26;
+      break;
+    } else {
+      label = 29;
+      break;
+    }
+   case 29:
+    var $88 = HEAP32[$mean_bits >> 2];
+    _ResvFrameEnd($gfc, $88);
+    STACKTOP = __stackBase__;
+    return;
+   case 30:
+    _lame_errorf($gfc, 5385448, (tempInt = STACKTOP, STACKTOP = STACKTOP + 1 | 0, STACKTOP = STACKTOP + 3 >> 2 << 2, HEAP32[tempInt >> 2] = 0, tempInt));
+    _exit(-1);
+  }
+}
+_VBR_new_iteration_loop["X"] = 1;
+function _init_outer_loop($gfc, $cod_info) {
+  var label = 0;
+  var __stackBase__ = STACKTOP;
+  STACKTOP = STACKTOP + 2304 | 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $ixwork = __stackBase__;
+    var $1 = $cod_info + 4768 | 0;
+    HEAP32[$1 >> 2] = 0;
+    var $2 = $cod_info + 4772 | 0;
+    HEAP32[$2 >> 2] = 0;
+    var $3 = $cod_info + 4776 | 0;
+    HEAP32[$3 >> 2] = 0;
+    var $4 = $cod_info + 4780 | 0;
+    HEAP32[$4 >> 2] = 210;
+    var $5 = $cod_info + 4784 | 0;
+    HEAP32[$5 >> 2] = 0;
+    var $6 = $cod_info + 4796 | 0;
+    var $7 = $gfc + 64 | 0;
+    var $8 = $6;
+    for (var $$dest = $8 >> 2, $$stop = $$dest + 13; $$dest < $$stop; $$dest++) {
+      HEAP32[$$dest] = 0;
+    }
+    var $9 = HEAP32[$7 >> 2];
+    var $10 = ($9 | 0) < 8001;
+    var $11 = $cod_info + 4848 | 0;
+    if ($10) {
+      label = 3;
+      break;
+    } else {
+      label = 4;
+      break;
+    }
+   case 3:
+    HEAP32[$11 >> 2] = 17;
+    var $13 = $cod_info + 4852 | 0;
+    HEAP32[$13 >> 2] = 9;
+    var $14 = $cod_info + 4856 | 0;
+    HEAP32[$14 >> 2] = 17;
+    label = 5;
+    break;
+   case 4:
+    HEAP32[$11 >> 2] = 21;
+    var $16 = $cod_info + 4852 | 0;
+    HEAP32[$16 >> 2] = 12;
+    var $17 = $gfc + 85088 | 0;
+    var $18 = HEAP32[$17 >> 2];
+    var $19 = ($18 | 0) != 0;
+    var $20 = $19 ? 22 : 21;
+    var $21 = $cod_info + 4856 | 0;
+    HEAP32[$21 >> 2] = $20;
+    label = 5;
+    break;
+   case 5:
+    var $23 = $cod_info + 4856 | 0;
+    var $24 = HEAP32[$23 >> 2];
+    var $25 = $cod_info + 4864 | 0;
+    HEAP32[$25 >> 2] = $24;
+    var $26 = HEAP32[$11 >> 2];
+    var $27 = $cod_info + 4860 | 0;
+    HEAP32[$27 >> 2] = $26;
+    var $28 = $cod_info + 4868 | 0;
+    HEAP32[$28 >> 2] = 11;
+    var $sfb_0125 = 0;
+    label = 6;
+    break;
+   case 6:
+    var $sfb_0125;
+    var $30 = $sfb_0125 + 1 | 0;
+    var $31 = $gfc + 21360 + ($30 << 2) | 0;
+    var $32 = HEAP32[$31 >> 2];
+    var $33 = $gfc + 21360 + ($sfb_0125 << 2) | 0;
+    var $34 = HEAP32[$33 >> 2];
+    var $35 = $32 - $34 | 0;
+    var $36 = $cod_info + 4872 + ($sfb_0125 << 2) | 0;
+    HEAP32[$36 >> 2] = $35;
+    var $37 = $cod_info + 5028 + ($sfb_0125 << 2) | 0;
+    HEAP32[$37 >> 2] = 3;
+    var $exitcond129 = ($30 | 0) == 22;
+    if ($exitcond129) {
+      label = 7;
+      break;
+    } else {
+      var $sfb_0125 = $30;
+      label = 6;
+      break;
+    }
+   case 7:
+    var $39 = $cod_info + 4788 | 0;
+    var $40 = HEAP32[$39 >> 2];
+    var $41 = ($40 | 0) == 2;
+    if ($41) {
+      label = 8;
+      break;
+    } else {
+      label = 21;
+      break;
+    }
+   case 8:
+    var $43 = $cod_info + 4852 | 0;
+    HEAP32[$43 >> 2] = 0;
+    HEAP32[$11 >> 2] = 0;
+    var $44 = $cod_info + 4792 | 0;
+    var $45 = HEAP32[$44 >> 2];
+    var $46 = ($45 | 0) == 0;
+    if ($46) {
+      label = 10;
+      break;
+    } else {
+      label = 9;
+      break;
+    }
+   case 9:
+    HEAP32[$43 >> 2] = 3;
+    var $48 = $gfc + 76 | 0;
+    var $49 = HEAP32[$48 >> 2];
+    var $50 = $49 << 1;
+    var $51 = $50 + 4 | 0;
+    HEAP32[$11 >> 2] = $51;
+    label = 10;
+    break;
+   case 10:
+    var $53 = HEAP32[$7 >> 2];
+    var $54 = ($53 | 0) < 8001;
+    var $55 = HEAP32[$11 >> 2];
+    if ($54) {
+      label = 11;
+      break;
+    } else {
+      label = 12;
+      break;
+    }
+   case 11:
+    var $57 = HEAP32[$43 >> 2];
+    var $58 = 9 - $57 | 0;
+    var $59 = $58 * 3 & -1;
+    var $60 = $59 + $55 | 0;
+    HEAP32[$25 >> 2] = $60;
+    var $61 = HEAP32[$11 >> 2];
+    var $62 = HEAP32[$43 >> 2];
+    var $63 = 9 - $62 | 0;
+    var $64 = $63 * 3 & -1;
+    var $65 = $64 + $61 | 0;
+    var $storemerge = $65;
+    label = 13;
+    break;
+   case 12:
+    var $67 = $gfc + 85088 | 0;
+    var $68 = HEAP32[$67 >> 2];
+    var $69 = ($68 | 0) != 0;
+    var $70 = $69 ? 13 : 12;
+    var $71 = HEAP32[$43 >> 2];
+    var $72 = $70 - $71 | 0;
+    var $73 = $72 * 3 & -1;
+    var $74 = $73 + $55 | 0;
+    HEAP32[$25 >> 2] = $74;
+    var $75 = HEAP32[$11 >> 2];
+    var $76 = HEAP32[$43 >> 2];
+    var $77 = 12 - $76 | 0;
+    var $78 = $77 * 3 & -1;
+    var $79 = $78 + $75 | 0;
+    var $storemerge = $79;
+    label = 13;
+    break;
+   case 13:
+    var $storemerge;
+    HEAP32[$27 >> 2] = $storemerge;
+    var $81 = $storemerge - 18 | 0;
+    HEAP32[$28 >> 2] = $81;
+    var $82 = HEAP32[$11 >> 2];
+    HEAP32[$23 >> 2] = $82;
+    var $83 = HEAP32[$11 >> 2];
+    var $84 = $gfc + 21360 + ($83 << 2) | 0;
+    var $85 = HEAP32[$84 >> 2];
+    var $86 = $ixwork;
+    var $87 = $cod_info;
+    for (var $$src = $87 >> 2, $$dest = $86 >> 2, $$stop = $$src + 576; $$src < $$stop; $$src++, $$dest++) {
+      HEAP32[$$dest] = HEAP32[$$src];
+    }
+    var $88 = HEAP32[$43 >> 2];
+    var $89 = ($88 | 0) < 13;
+    if ($89) {
+      label = 14;
+      break;
+    } else {
+      label = 21;
+      break;
+    }
+   case 14:
+    var $90 = $cod_info + ($85 << 2) | 0;
+    var $ix_0120 = $90;
+    var $sfb_1121 = $88;
+    label = 15;
+    break;
+   case 15:
+    var $sfb_1121;
+    var $ix_0120;
+    var $91 = $gfc + 21452 + ($sfb_1121 << 2) | 0;
+    var $92 = HEAP32[$91 >> 2];
+    var $93 = $sfb_1121 + 1 | 0;
+    var $94 = $gfc + 21452 + ($93 << 2) | 0;
+    var $95 = HEAP32[$94 >> 2];
+    var $96 = ($92 | 0) < ($95 | 0);
+    var $97 = $95 - $92 | 0;
+    if ($96) {
+      var $ix_2114 = $ix_0120;
+      var $l_0115 = $92;
+      label = 16;
+      break;
+    } else {
+      var $ix_2_lcssa_2 = $ix_0120;
+      label = 28;
+      break;
+    }
+   case 16:
+    var $l_0115;
+    var $ix_2114;
+    var $98 = $l_0115 * 3 & -1;
+    var $99 = $ixwork + ($98 << 2) | 0;
+    var $100 = HEAPF32[$99 >> 2];
+    var $101 = $ix_2114 + 4 | 0;
+    HEAPF32[$ix_2114 >> 2] = $100;
+    var $102 = $l_0115 + 1 | 0;
+    var $exitcond126 = ($102 | 0) == ($95 | 0);
+    if ($exitcond126) {
+      label = 17;
+      break;
+    } else {
+      var $ix_2114 = $101;
+      var $l_0115 = $102;
+      label = 16;
+      break;
+    }
+   case 17:
+    var $scevgep = $ix_0120 + ($97 << 2) | 0;
+    if ($96) {
+      var $ix_2114_1 = $scevgep;
+      var $l_0115_1 = $92;
+      label = 24;
+      break;
+    } else {
+      var $ix_2_lcssa_2 = $scevgep;
+      label = 28;
+      break;
+    }
+   case 18:
+    var $_pr = HEAP32[$43 >> 2];
+    var $103 = ($_pr | 0) < 13;
+    if ($103) {
+      label = 19;
+      break;
+    } else {
+      label = 21;
+      break;
+    }
+   case 19:
+    var $104 = HEAP32[$11 >> 2];
+    var $j_0112 = $104;
+    var $sfb_2113 = $_pr;
+    label = 20;
+    break;
+   case 20:
+    var $sfb_2113;
+    var $j_0112;
+    var $106 = $sfb_2113 + 1 | 0;
+    var $107 = $gfc + 21452 + ($106 << 2) | 0;
+    var $108 = HEAP32[$107 >> 2];
+    var $109 = $gfc + 21452 + ($sfb_2113 << 2) | 0;
+    var $110 = HEAP32[$109 >> 2];
+    var $111 = $108 - $110 | 0;
+    var $112 = $j_0112 + 2 | 0;
+    var $113 = $cod_info + 4872 + ($112 << 2) | 0;
+    HEAP32[$113 >> 2] = $111;
+    var $114 = $j_0112 + 1 | 0;
+    var $115 = $cod_info + 4872 + ($114 << 2) | 0;
+    HEAP32[$115 >> 2] = $111;
+    var $116 = $cod_info + 4872 + ($j_0112 << 2) | 0;
+    HEAP32[$116 >> 2] = $111;
+    var $117 = $cod_info + 5028 + ($j_0112 << 2) | 0;
+    HEAP32[$117 >> 2] = 0;
+    var $118 = $cod_info + 5028 + ($114 << 2) | 0;
+    HEAP32[$118 >> 2] = 1;
+    var $119 = $cod_info + 5028 + ($112 << 2) | 0;
+    HEAP32[$119 >> 2] = 2;
+    var $120 = $j_0112 + 3 | 0;
+    var $exitcond = ($106 | 0) == 13;
+    if ($exitcond) {
+      label = 21;
+      break;
+    } else {
+      var $j_0112 = $120;
+      var $sfb_2113 = $106;
+      label = 20;
+      break;
+    }
+   case 21:
+    var $121 = $cod_info + 5184 | 0;
+    HEAP32[$121 >> 2] = 0;
+    var $122 = $cod_info + 5188 | 0;
+    HEAP32[$122 >> 2] = 5291828;
+    var $123 = $cod_info + 5192 | 0;
+    var $124 = $cod_info + 5208 | 0;
+    var $125 = $123;
+    HEAP32[$125 >> 2] = 0;
+    HEAP32[$125 + 4 >> 2] = 0;
+    HEAP32[$125 + 8 >> 2] = 0;
+    HEAP32[$125 + 12 >> 2] = 0;
+    HEAP32[$124 >> 2] = 575;
+    var $126 = $cod_info + 4608 | 0;
+    var $127 = $126;
+    for (var $$dest = $127 >> 2, $$stop = $$dest + 39; $$dest < $$stop; $$dest++) {
+      HEAP32[$$dest] = 0;
+    }
+    var $128 = $gfc + 104 | 0;
+    var $129 = HEAP32[$128 >> 2];
+    if (($129 | 0) == 1 | ($129 | 0) == 4 | ($129 | 0) == 3 | ($129 | 0) == 0) {
+      label = 23;
+      break;
+    } else {
+      label = 22;
+      break;
+    }
+   case 22:
+    _psfb21_analogsilence($gfc, $cod_info);
+    label = 23;
+    break;
+   case 23:
+    STACKTOP = __stackBase__;
+    return;
+   case 24:
+    var $l_0115_1;
+    var $ix_2114_1;
+    var $132 = $l_0115_1 * 3 & -1;
+    var $133 = $132 + 1 | 0;
+    var $134 = $ixwork + ($133 << 2) | 0;
+    var $135 = HEAPF32[$134 >> 2];
+    var $136 = $ix_2114_1 + 4 | 0;
+    HEAPF32[$ix_2114_1 >> 2] = $135;
+    var $137 = $l_0115_1 + 1 | 0;
+    var $exitcond126_1 = ($137 | 0) == ($95 | 0);
+    if ($exitcond126_1) {
+      label = 25;
+      break;
+    } else {
+      var $ix_2114_1 = $136;
+      var $l_0115_1 = $137;
+      label = 24;
+      break;
+    }
+   case 25:
+    var $scevgep_sum = $97 << 1;
+    var $scevgep_1 = $ix_0120 + ($scevgep_sum << 2) | 0;
+    if ($96) {
+      var $ix_2114_2 = $scevgep_1;
+      var $l_0115_2 = $92;
+      label = 26;
+      break;
+    } else {
+      var $ix_2_lcssa_2 = $scevgep_1;
+      label = 28;
+      break;
+    }
+   case 26:
+    var $l_0115_2;
+    var $ix_2114_2;
+    var $138 = $l_0115_2 * 3 & -1;
+    var $139 = $138 + 2 | 0;
+    var $140 = $ixwork + ($139 << 2) | 0;
+    var $141 = HEAPF32[$140 >> 2];
+    var $142 = $ix_2114_2 + 4 | 0;
+    HEAPF32[$ix_2114_2 >> 2] = $141;
+    var $143 = $l_0115_2 + 1 | 0;
+    var $exitcond126_2 = ($143 | 0) == ($95 | 0);
+    if ($exitcond126_2) {
+      label = 27;
+      break;
+    } else {
+      var $ix_2114_2 = $142;
+      var $l_0115_2 = $143;
+      label = 26;
+      break;
+    }
+   case 27:
+    var $scevgep_1_sum = $scevgep_sum + $97 | 0;
+    var $scevgep_2 = $ix_0120 + ($scevgep_1_sum << 2) | 0;
+    var $ix_2_lcssa_2 = $scevgep_2;
+    label = 28;
+    break;
+   case 28:
+    var $ix_2_lcssa_2;
+    var $exitcond128 = ($93 | 0) == 13;
+    if ($exitcond128) {
+      label = 18;
+      break;
+    } else {
+      var $ix_0120 = $ix_2_lcssa_2;
+      var $sfb_1121 = $93;
+      label = 15;
+      break;
+    }
+  }
+}
+_init_outer_loop["X"] = 1;
+function _outer_loop($gfc, $cod_info, $l3_xmin, $xrpow, $ch, $targ_bits) {
+  var label = 0;
+  var __stackBase__ = STACKTOP;
+  STACKTOP = STACKTOP + 8236 | 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $cod_info_w = __stackBase__;
+    var $save_xrpow = __stackBase__ + 5252;
+    var $distort = __stackBase__ + 7556;
+    var $best_noise_info = __stackBase__ + 7712;
+    var $prev_noise = __stackBase__ + 7736;
+    var $noise_info = __stackBase__ + 8212;
+    _bin_search_StepSize($gfc, $cod_info, $targ_bits, $ch, $xrpow);
+    var $1 = $gfc + 28 | 0;
+    var $2 = HEAP32[$1 >> 2];
+    var $3 = ($2 | 0) == 0;
+    if ($3) {
+      var $_0 = 100;
+      label = 37;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 3:
+    var $4 = $prev_noise;
+    for (var $$dest = $4 >> 2, $$stop = $$dest + 119; $$dest < $$stop; $$dest++) {
+      HEAP32[$$dest] = 0;
+    }
+    var $5 = $distort | 0;
+    var $6 = _calc_noise($cod_info, $l3_xmin, $5, $best_noise_info, $prev_noise);
+    var $7 = $cod_info + 4768 | 0;
+    var $8 = HEAP32[$7 >> 2];
+    var $9 = $best_noise_info + 20 | 0;
+    HEAP32[$9 >> 2] = $8;
+    var $10 = $cod_info_w;
+    var $11 = $cod_info;
+    for (var $$src = $11 >> 2, $$dest = $10 >> 2, $$stop = $$src + 1313; $$src < $$stop; $$src++, $$dest++) {
+      HEAP32[$$dest] = HEAP32[$$src];
+    }
+    var $12 = $save_xrpow;
+    var $13 = $xrpow;
+    for (var $$src = $13 >> 2, $$dest = $12 >> 2, $$stop = $$src + 576; $$src < $$stop; $$src++, $$dest++) {
+      HEAP32[$$dest] = HEAP32[$$src];
+    }
+    var $14 = $cod_info_w + 4860 | 0;
+    var $15 = $cod_info_w + 4836 | 0;
+    var $16 = $gfc + 85092 | 0;
+    var $17 = $gfc + 85088 | 0;
+    var $18 = $cod_info_w + 4844 | 0;
+    var $19 = $cod_info_w + 4780 | 0;
+    var $20 = $cod_info_w + 4768 | 0;
+    var $21 = $cod_info_w + 4780 | 0;
+    var $22 = $best_noise_info + 12 | 0;
+    var $23 = $noise_info + 20 | 0;
+    var $24 = $cod_info + 4788 | 0;
+    var $25 = $gfc + 84 | 0;
+    var $26 = $gfc + 88 | 0;
+    var $27 = $gfc + 48 | 0;
+    var $28 = $gfc + 40 | 0;
+    var $29 = $best_noise_info;
+    var $30 = $noise_info;
+    var $31 = $cod_info_w + 4788 | 0;
+    var $32 = $gfc + 40 | 0;
+    var $33 = $cod_info_w + 4780 | 0;
+    var $best_part2_3_length_067 = 9999999;
+    var $bRefine_068 = 0;
+    var $best_ggain_pass1_069 = 0;
+    label = 4;
+    break;
+   case 4:
+    var $best_ggain_pass1_069;
+    var $bRefine_068;
+    var $best_part2_3_length_067;
+    var $34 = ($bRefine_068 | 0) == 0;
+    var $best_part2_3_length_1 = $best_part2_3_length_067;
+    var $age_1 = 0;
+    label = 5;
+    break;
+   case 5:
+    var $age_1;
+    var $best_part2_3_length_1;
+    var $36 = HEAP32[$16 >> 2];
+    var $37 = $36 & 2;
+    var $38 = ($37 | 0) == 0;
+    var $_ = $38 ? 3 : 20;
+    var $39 = HEAP32[$17 >> 2];
+    var $40 = ($39 | 0) == 0;
+    if ($40) {
+      label = 10;
+      break;
+    } else {
+      label = 6;
+      break;
+    }
+   case 6:
+    var $42 = HEAP32[$14 >> 2];
+    var $43 = $distort + ($42 << 2) | 0;
+    var $44 = HEAPF32[$43 >> 2];
+    var $45 = $44 > 1;
+    if ($45) {
+      var $best_part2_3_length_3 = $best_part2_3_length_1;
+      label = 30;
+      break;
+    } else {
+      label = 7;
+      break;
+    }
+   case 7:
+    var $47 = HEAP32[$31 >> 2];
+    var $48 = ($47 | 0) == 2;
+    if ($48) {
+      label = 8;
+      break;
+    } else {
+      label = 10;
+      break;
+    }
+   case 8:
+    var $50 = $42 + 1 | 0;
+    var $51 = $distort + ($50 << 2) | 0;
+    var $52 = HEAPF32[$51 >> 2];
+    var $53 = $52 > 1;
+    if ($53) {
+      var $best_part2_3_length_3 = $best_part2_3_length_1;
+      label = 30;
+      break;
+    } else {
+      label = 9;
+      break;
+    }
+   case 9:
+    var $55 = $42 + 2 | 0;
+    var $56 = $distort + ($55 << 2) | 0;
+    var $57 = HEAPF32[$56 >> 2];
+    var $58 = $57 > 1;
+    if ($58) {
+      var $best_part2_3_length_3 = $best_part2_3_length_1;
+      label = 30;
+      break;
+    } else {
+      label = 10;
+      break;
+    }
+   case 10:
+    var $60 = _balance_noise($gfc, $cod_info_w, $5, $xrpow, $bRefine_068);
+    var $61 = ($60 | 0) == 0;
+    if ($61) {
+      var $best_part2_3_length_3 = $best_part2_3_length_1;
+      label = 30;
+      break;
+    } else {
+      label = 11;
+      break;
+    }
+   case 11:
+    var $63 = HEAP32[$15 >> 2];
+    var $64 = ($63 | 0) == 0;
+    var $_51 = $64 ? 255 : 254;
+    var $65 = HEAP32[$18 >> 2];
+    var $66 = $targ_bits - $65 | 0;
+    var $67 = ($66 | 0) < 1;
+    if ($67) {
+      var $best_part2_3_length_3 = $best_part2_3_length_1;
+      label = 30;
+      break;
+    } else {
+      label = 12;
+      break;
+    }
+   case 12:
+    var $68 = _count_bits($gfc, $xrpow, $cod_info_w, $prev_noise);
+    HEAP32[$20 >> 2] = $68;
+    var $69 = ($68 | 0) > ($66 | 0);
+    var $70 = HEAP32[$21 >> 2];
+    if ($69) {
+      var $71 = $70;
+      label = 13;
+      break;
+    } else {
+      var $80 = $21;
+      var $79 = $70;
+      label = 15;
+      break;
+    }
+   case 13:
+    var $71;
+    var $72 = ($71 | 0) > ($_51 | 0);
+    var $73 = HEAP32[$19 >> 2];
+    if ($72) {
+      var $80 = $19;
+      var $79 = $73;
+      label = 15;
+      break;
+    } else {
+      label = 14;
+      break;
+    }
+   case 14:
+    var $75 = $73 + 1 | 0;
+    HEAP32[$19 >> 2] = $75;
+    var $76 = _count_bits($gfc, $xrpow, $cod_info_w, $prev_noise);
+    HEAP32[$20 >> 2] = $76;
+    var $77 = ($76 | 0) > ($66 | 0);
+    var $78 = HEAP32[$21 >> 2];
+    if ($77) {
+      var $71 = $78;
+      label = 13;
+      break;
+    } else {
+      var $80 = $21;
+      var $79 = $78;
+      label = 15;
+      break;
+    }
+   case 15:
+    var $79;
+    var $80;
+    var $81 = ($79 | 0) > ($_51 | 0);
+    if ($81) {
+      var $best_part2_3_length_3 = $best_part2_3_length_1;
+      label = 30;
+      break;
+    } else {
+      label = 16;
+      break;
+    }
+   case 16:
+    var $83 = HEAP32[$22 >> 2];
+    var $84 = ($83 | 0) == 0;
+    if ($84) {
+      label = 17;
+      break;
+    } else {
+      label = 21;
+      break;
+    }
+   case 17:
+    var $85 = _count_bits($gfc, $xrpow, $cod_info_w, $prev_noise);
+    HEAP32[$20 >> 2] = $85;
+    var $86 = ($85 | 0) > ($best_part2_3_length_1 | 0);
+    var $87 = HEAP32[$80 >> 2];
+    if ($86) {
+      var $88 = $87;
+      label = 18;
+      break;
+    } else {
+      var $96 = $87;
+      label = 20;
+      break;
+    }
+   case 18:
+    var $88;
+    var $89 = ($88 | 0) > ($_51 | 0);
+    var $90 = HEAP32[$80 >> 2];
+    if ($89) {
+      var $96 = $90;
+      label = 20;
+      break;
+    } else {
+      label = 19;
+      break;
+    }
+   case 19:
+    var $92 = $90 + 1 | 0;
+    HEAP32[$80 >> 2] = $92;
+    var $93 = _count_bits($gfc, $xrpow, $cod_info_w, $prev_noise);
+    HEAP32[$20 >> 2] = $93;
+    var $94 = ($93 | 0) > ($best_part2_3_length_1 | 0);
+    var $95 = HEAP32[$80 >> 2];
+    if ($94) {
+      var $88 = $95;
+      label = 18;
+      break;
+    } else {
+      var $96 = $95;
+      label = 20;
+      break;
+    }
+   case 20:
+    var $96;
+    var $97 = ($96 | 0) > ($_51 | 0);
+    if ($97) {
+      var $best_part2_3_length_3 = $best_part2_3_length_1;
+      label = 30;
+      break;
+    } else {
+      label = 21;
+      break;
+    }
+   case 21:
+    var $99 = _calc_noise($cod_info_w, $l3_xmin, $5, $noise_info, $prev_noise);
+    var $100 = HEAP32[$20 >> 2];
+    HEAP32[$23 >> 2] = $100;
+    var $101 = HEAP32[$24 >> 2];
+    var $102 = ($101 | 0) == 2;
+    var $better_0_in = $102 ? $26 : $25;
+    var $better_0 = HEAP32[$better_0_in >> 2];
+    var $103 = _quant_compare($better_0, $best_noise_info, $noise_info, $cod_info_w, $5);
+    var $104 = ($103 | 0) == 0;
+    if ($104) {
+      label = 23;
+      break;
+    } else {
+      label = 22;
+      break;
+    }
+   case 22:
+    var $106 = HEAP32[$7 >> 2];
+    HEAP32[$29 >> 2] = HEAP32[$30 >> 2];
+    HEAP32[$29 + 4 >> 2] = HEAP32[$30 + 4 >> 2];
+    HEAP32[$29 + 8 >> 2] = HEAP32[$30 + 8 >> 2];
+    HEAP32[$29 + 12 >> 2] = HEAP32[$30 + 12 >> 2];
+    HEAP32[$29 + 16 >> 2] = HEAP32[$30 + 16 >> 2];
+    HEAP32[$29 + 20 >> 2] = HEAP32[$30 + 20 >> 2];
+    for (var $$src = $10 >> 2, $$dest = $11 >> 2, $$stop = $$src + 1313; $$src < $$stop; $$src++, $$dest++) {
+      HEAP32[$$dest] = HEAP32[$$src];
+    }
+    for (var $$src = $13 >> 2, $$dest = $12 >> 2, $$stop = $$src + 576; $$src < $$stop; $$src++, $$dest++) {
+      HEAP32[$$dest] = HEAP32[$$src];
+    }
+    var $best_part2_3_length_2 = $106;
+    var $age_2 = 0;
+    label = 29;
+    break;
+   case 23:
+    var $108 = HEAP32[$27 >> 2];
+    var $109 = ($108 | 0) == 0;
+    if ($109) {
+      label = 24;
+      break;
+    } else {
+      var $best_part2_3_length_2 = $best_part2_3_length_1;
+      var $age_2 = $age_1;
+      label = 29;
+      break;
+    }
+   case 24:
+    var $111 = $age_1 + 1 | 0;
+    var $112 = ($111 | 0) > ($_ | 0);
+    if ($112) {
+      label = 25;
+      break;
+    } else {
+      label = 26;
+      break;
+    }
+   case 25:
+    var $114 = HEAP32[$22 >> 2];
+    var $115 = ($114 | 0) == 0;
+    if ($115) {
+      var $best_part2_3_length_3 = $best_part2_3_length_1;
+      label = 30;
+      break;
+    } else {
+      label = 26;
+      break;
+    }
+   case 26:
+    var $117 = HEAP32[$28 >> 2];
+    var $118 = ($117 | 0) != 3;
+    var $or_cond_not_demorgan = $118 | $34;
+    var $or_cond_not = $or_cond_not_demorgan ^ 1;
+    var $119 = ($111 | 0) > 30;
+    var $or_cond52 = $119 & $or_cond_not;
+    if ($or_cond52) {
+      var $best_part2_3_length_3 = $best_part2_3_length_1;
+      label = 30;
+      break;
+    } else {
+      label = 27;
+      break;
+    }
+   case 27:
+    var $or_cond = $118 | $34;
+    if ($or_cond) {
+      var $best_part2_3_length_2 = $best_part2_3_length_1;
+      var $age_2 = $111;
+      label = 29;
+      break;
+    } else {
+      label = 28;
+      break;
+    }
+   case 28:
+    var $122 = HEAP32[$80 >> 2];
+    var $123 = $122 - $best_ggain_pass1_069 | 0;
+    var $124 = ($123 | 0) > 15;
+    if ($124) {
+      var $best_part2_3_length_3 = $best_part2_3_length_1;
+      label = 30;
+      break;
+    } else {
+      var $best_part2_3_length_2 = $best_part2_3_length_1;
+      var $age_2 = $111;
+      label = 29;
+      break;
+    }
+   case 29:
+    var $age_2;
+    var $best_part2_3_length_2;
+    var $126 = HEAP32[$80 >> 2];
+    var $127 = HEAP32[$15 >> 2];
+    var $128 = $127 + $126 | 0;
+    var $129 = ($128 | 0) < 255;
+    if ($129) {
+      var $best_part2_3_length_1 = $best_part2_3_length_2;
+      var $age_1 = $age_2;
+      label = 5;
+      break;
+    } else {
+      var $best_part2_3_length_3 = $best_part2_3_length_2;
+      label = 30;
+      break;
+    }
+   case 30:
+    var $best_part2_3_length_3;
+    var $131 = HEAP32[$32 >> 2];
+    var $132 = ($131 | 0) == 3;
+    var $133 = ($bRefine_068 | 0) == 0;
+    var $or_cond54 = $132 & $133;
+    if ($or_cond54) {
+      label = 31;
+      break;
+    } else {
+      label = 32;
+      break;
+    }
+   case 31:
+    for (var $$src = $11 >> 2, $$dest = $10 >> 2, $$stop = $$src + 1313; $$src < $$stop; $$src++, $$dest++) {
+      HEAP32[$$dest] = HEAP32[$$src];
+    }
+    for (var $$src = $12 >> 2, $$dest = $13 >> 2, $$stop = $$src + 576; $$src < $$stop; $$src++, $$dest++) {
+      HEAP32[$$dest] = HEAP32[$$src];
+    }
+    var $135 = HEAP32[$33 >> 2];
+    var $best_part2_3_length_067 = $best_part2_3_length_3;
+    var $bRefine_068 = 1;
+    var $best_ggain_pass1_069 = $135;
+    label = 4;
+    break;
+   case 32:
+    var $136 = $gfc + 104 | 0;
+    var $137 = HEAP32[$136 >> 2];
+    if (($137 | 0) == 2 | ($137 | 0) == 4 | ($137 | 0) == 1) {
+      label = 33;
+      break;
+    } else {
+      label = 34;
+      break;
+    }
+   case 33:
+    for (var $$src = $12 >> 2, $$dest = $13 >> 2, $$stop = $$src + 576; $$src < $$stop; $$src++, $$dest++) {
+      HEAP32[$$dest] = HEAP32[$$src];
+    }
+    label = 36;
+    break;
+   case 34:
+    var $140 = $gfc + 85092 | 0;
+    var $141 = HEAP32[$140 >> 2];
+    var $142 = $141 & 1;
+    var $143 = ($142 | 0) == 0;
+    if ($143) {
+      label = 36;
+      break;
+    } else {
+      label = 35;
+      break;
+    }
+   case 35:
+    _trancate_smallspectrums($gfc, $cod_info, $l3_xmin, $xrpow);
+    label = 36;
+    break;
+   case 36:
+    var $146 = $best_noise_info + 12 | 0;
+    var $147 = HEAP32[$146 >> 2];
+    var $_0 = $147;
+    label = 37;
+    break;
+   case 37:
+    var $_0;
+    STACKTOP = __stackBase__;
+    return $_0;
+  }
+}
+_outer_loop["X"] = 1;
+function _CBR_iteration_loop($gfc, $pe, $ms_ener_ratio, $ratio) {
+  var label = 0;
+  var __stackBase__ = STACKTOP;
+  STACKTOP = STACKTOP + 2472 | 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $l3_xmin = __stackBase__;
+    var $xrpow = __stackBase__ + 156;
+    var $targ_bits = __stackBase__ + 2460;
+    var $mean_bits = __stackBase__ + 2468;
+    var $1 = $gfc + 304 | 0;
+    var $2 = _ResvFrameBegin($gfc, $mean_bits);
+    var $3 = $gfc + 76 | 0;
+    var $4 = HEAP32[$3 >> 2];
+    var $5 = ($4 | 0) > 0;
+    if ($5) {
+      label = 3;
+      break;
+    } else {
+      label = 11;
+      break;
+    }
+   case 3:
+    var $6 = $targ_bits | 0;
+    var $7 = HEAP32[$mean_bits >> 2];
+    var $8 = $gfc + 84752 | 0;
+    var $9 = $gfc + 72 | 0;
+    var $10 = $gfc + 84908 | 0;
+    var $11 = $gfc + 84912 | 0;
+    var $12 = $gfc + 84904 | 0;
+    var $13 = $xrpow | 0;
+    var $14 = $l3_xmin | 0;
+    var $gr_037 = 0;
+    label = 4;
+    break;
+   case 4:
+    var $gr_037;
+    var $16 = _on_pe($gfc, $pe, $6, $7, $gr_037, $gr_037);
+    var $17 = HEAP32[$8 >> 2];
+    var $18 = ($17 | 0) == 2;
+    if ($18) {
+      label = 5;
+      break;
+    } else {
+      label = 6;
+      break;
+    }
+   case 5:
+    _ms_convert($1, $gr_037);
+    var $20 = $ms_ener_ratio + ($gr_037 << 2) | 0;
+    var $21 = HEAPF32[$20 >> 2];
+    _reduce_side($6, $21, $7, $16);
+    label = 6;
+    break;
+   case 6:
+    var $22 = HEAP32[$9 >> 2];
+    var $23 = ($22 | 0) > 0;
+    if ($23) {
+      var $ch_036 = 0;
+      label = 7;
+      break;
+    } else {
+      label = 10;
+      break;
+    }
+   case 7:
+    var $ch_036;
+    var $24 = $gfc + 304 + $gr_037 * 10504 + $ch_036 * 5252 | 0;
+    var $25 = $gfc + 304 + $gr_037 * 10504 + $ch_036 * 5252 + 4788 | 0;
+    var $26 = HEAP32[$25 >> 2];
+    var $27 = ($26 | 0) == 2;
+    var $masking_lower_db_0_in = $27 ? $11 : $10;
+    var $masking_lower_db_0 = HEAPF32[$masking_lower_db_0_in >> 2];
+    var $28 = $masking_lower_db_0;
+    var $29 = $28 * .1;
+    var $30 = Math.pow(10, $29);
+    var $31 = $30;
+    HEAPF32[$12 >> 2] = $31;
+    _init_outer_loop($gfc, $24);
+    var $32 = _init_xrpow($gfc, $24, $13);
+    var $33 = ($32 | 0) == 0;
+    if ($33) {
+      label = 9;
+      break;
+    } else {
+      label = 8;
+      break;
+    }
+   case 8:
+    var $35 = $ratio + $gr_037 * 976 + $ch_036 * 488 | 0;
+    var $36 = _calc_xmin($gfc, $35, $24, $14);
+    var $37 = $targ_bits + ($ch_036 << 2) | 0;
+    var $38 = HEAP32[$37 >> 2];
+    var $39 = _outer_loop($gfc, $24, $14, $13, $ch_036, $38);
+    label = 9;
+    break;
+   case 9:
+    _iteration_finish_one($gfc, $gr_037, $ch_036);
+    var $41 = $ch_036 + 1 | 0;
+    var $42 = HEAP32[$9 >> 2];
+    var $43 = ($41 | 0) < ($42 | 0);
+    if ($43) {
+      var $ch_036 = $41;
+      label = 7;
+      break;
+    } else {
+      label = 10;
+      break;
+    }
+   case 10:
+    var $44 = $gr_037 + 1 | 0;
+    var $45 = HEAP32[$3 >> 2];
+    var $46 = ($44 | 0) < ($45 | 0);
+    if ($46) {
+      var $gr_037 = $44;
+      label = 4;
+      break;
+    } else {
+      label = 11;
+      break;
+    }
+   case 11:
+    var $47 = HEAP32[$mean_bits >> 2];
+    _ResvFrameEnd($gfc, $47);
+    STACKTOP = __stackBase__;
+    return;
+  }
+}
+_CBR_iteration_loop["X"] = 1;
+function _bin_search_StepSize($gfc, $cod_info, $desired_rate, $ch, $xrpow) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = $gfc + 84924 + ($ch << 2) | 0;
+    var $2 = HEAP32[$1 >> 2];
+    var $3 = $gfc + 84916 + ($ch << 2) | 0;
+    var $4 = HEAP32[$3 >> 2];
+    var $5 = $cod_info + 4780 | 0;
+    HEAP32[$5 >> 2] = $4;
+    var $6 = $cod_info + 4844 | 0;
+    var $7 = HEAP32[$6 >> 2];
+    var $8 = $desired_rate - $7 | 0;
+    var $9 = _count_bits($gfc, $xrpow, $cod_info, 0);
+    var $10 = ($2 | 0) == 1;
+    var $11 = ($9 | 0) == ($8 | 0);
+    var $or_cond3 = $10 | $11;
+    if ($or_cond3) {
+      var $_lcssa = $9;
+      label = 3;
+      break;
+    } else {
+      var $CurrentStep_04 = $2;
+      var $flag_GoneOver_05 = 0;
+      var $Direction_06 = 0;
+      var $13 = $9;
+      label = 4;
+      break;
+    }
+   case 3:
+    var $_lcssa;
+    var $12 = ($_lcssa | 0) > ($8 | 0);
+    if ($12) {
+      var $nBits_02 = $_lcssa;
+      label = 11;
+      break;
+    } else {
+      var $nBits_0_lcssa = $_lcssa;
+      label = 13;
+      break;
+    }
+   case 4:
+    var $13;
+    var $Direction_06;
+    var $flag_GoneOver_05;
+    var $CurrentStep_04;
+    var $14 = ($13 | 0) > ($8 | 0);
+    if ($14) {
+      label = 5;
+      break;
+    } else {
+      label = 7;
+      break;
+    }
+   case 5:
+    var $16 = ($Direction_06 | 0) == 2;
+    var $_flag_GoneOver_0 = $16 ? 1 : $flag_GoneOver_05;
+    var $17 = ($_flag_GoneOver_0 | 0) == 0;
+    if ($17) {
+      var $step_0 = $CurrentStep_04;
+      var $Direction_1 = 1;
+      var $flag_GoneOver_3 = 0;
+      var $CurrentStep_3 = $CurrentStep_04;
+      label = 10;
+      break;
+    } else {
+      label = 6;
+      break;
+    }
+   case 6:
+    var $19 = ($CurrentStep_04 | 0) / 2 & -1;
+    var $step_0 = $19;
+    var $Direction_1 = 1;
+    var $flag_GoneOver_3 = $_flag_GoneOver_0;
+    var $CurrentStep_3 = $19;
+    label = 10;
+    break;
+   case 7:
+    var $21 = ($Direction_06 | 0) == 1;
+    var $_flag_GoneOver_01 = $21 ? 1 : $flag_GoneOver_05;
+    var $22 = ($_flag_GoneOver_01 | 0) == 0;
+    if ($22) {
+      var $CurrentStep_2 = $CurrentStep_04;
+      label = 9;
+      break;
+    } else {
+      label = 8;
+      break;
+    }
+   case 8:
+    var $24 = ($CurrentStep_04 | 0) / 2 & -1;
+    var $CurrentStep_2 = $24;
+    label = 9;
+    break;
+   case 9:
+    var $CurrentStep_2;
+    var $26 = -$CurrentStep_2 | 0;
+    var $step_0 = $26;
+    var $Direction_1 = 2;
+    var $flag_GoneOver_3 = $_flag_GoneOver_01;
+    var $CurrentStep_3 = $CurrentStep_2;
+    label = 10;
+    break;
+   case 10:
+    var $CurrentStep_3;
+    var $flag_GoneOver_3;
+    var $Direction_1;
+    var $step_0;
+    var $27 = HEAP32[$5 >> 2];
+    var $28 = $27 + $step_0 | 0;
+    var $29 = ($28 | 0) < 0;
+    var $_ = $29 ? 0 : $28;
+    var $_flag_GoneOver_3 = $29 ? 1 : $flag_GoneOver_3;
+    var $30 = ($_ | 0) > 255;
+    var $__ = $30 ? 255 : $_;
+    var $__flag_GoneOver_3 = $30 ? 1 : $_flag_GoneOver_3;
+    HEAP32[$5 >> 2] = $__;
+    var $31 = _count_bits($gfc, $xrpow, $cod_info, 0);
+    var $32 = ($CurrentStep_3 | 0) == 1;
+    var $33 = ($31 | 0) == ($8 | 0);
+    var $or_cond = $32 | $33;
+    if ($or_cond) {
+      var $_lcssa = $31;
+      label = 3;
+      break;
+    } else {
+      var $CurrentStep_04 = $CurrentStep_3;
+      var $flag_GoneOver_05 = $__flag_GoneOver_3;
+      var $Direction_06 = $Direction_1;
+      var $13 = $31;
+      label = 4;
+      break;
+    }
+   case 11:
+    var $nBits_02;
+    var $34 = HEAP32[$5 >> 2];
+    var $35 = ($34 | 0) < 255;
+    if ($35) {
+      label = 12;
+      break;
+    } else {
+      var $nBits_0_lcssa = $nBits_02;
+      label = 13;
+      break;
+    }
+   case 12:
+    var $37 = $34 + 1 | 0;
+    HEAP32[$5 >> 2] = $37;
+    var $38 = _count_bits($gfc, $xrpow, $cod_info, 0);
+    var $39 = ($38 | 0) > ($8 | 0);
+    if ($39) {
+      var $nBits_02 = $38;
+      label = 11;
+      break;
+    } else {
+      var $nBits_0_lcssa = $38;
+      label = 13;
+      break;
+    }
+   case 13:
+    var $nBits_0_lcssa;
+    var $40 = HEAP32[$5 >> 2];
+    var $41 = $4 - $40 | 0;
+    var $42 = ($41 | 0) > 3;
+    var $43 = $42 ? 4 : 2;
+    HEAP32[$1 >> 2] = $43;
+    var $44 = HEAP32[$5 >> 2];
+    HEAP32[$3 >> 2] = $44;
+    var $45 = $cod_info + 4768 | 0;
+    HEAP32[$45 >> 2] = $nBits_0_lcssa;
+    return;
+  }
+}
+_bin_search_StepSize["X"] = 1;
+function _balance_noise($gfc, $cod_info, $distort, $xrpow, $bRefine) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    _amp_scalefac_bands($gfc, $cod_info, $distort, $xrpow, $bRefine);
+    var $1 = _loop_break($cod_info);
+    var $2 = ($1 | 0) == 0;
+    if ($2) {
+      label = 3;
+      break;
+    } else {
+      var $_0 = 0;
+      label = 15;
+      break;
+    }
+   case 3:
+    var $4 = _scale_bitcount($gfc, $cod_info);
+    var $5 = ($4 | 0) == 0;
+    if ($5) {
+      var $_0 = 1;
+      label = 15;
+      break;
+    } else {
+      label = 4;
+      break;
+    }
+   case 4:
+    var $7 = $gfc + 28 | 0;
+    var $8 = HEAP32[$7 >> 2];
+    var $9 = ($8 | 0) > 1;
+    if ($9) {
+      label = 5;
+      break;
+    } else {
+      var $status_1 = $4;
+      label = 14;
+      break;
+    }
+   case 5:
+    var $11 = $gfc + 84932 | 0;
+    var $12 = $11;
+    for (var $$dest = $12 >> 2, $$stop = $$dest + 39; $$dest < $$stop; $$dest++) {
+      HEAP32[$$dest] = 0;
+    }
+    var $13 = $cod_info + 4836 | 0;
+    var $14 = HEAP32[$13 >> 2];
+    var $15 = ($14 | 0) == 0;
+    if ($15) {
+      label = 6;
+      break;
+    } else {
+      label = 7;
+      break;
+    }
+   case 6:
+    _inc_scalefac_scale($cod_info, $xrpow);
+    label = 13;
+    break;
+   case 7:
+    var $17 = $cod_info + 4788 | 0;
+    var $18 = HEAP32[$17 >> 2];
+    var $19 = ($18 | 0) == 2;
+    if ($19) {
+      label = 8;
+      break;
+    } else {
+      var $status_0 = $4;
+      label = 12;
+      break;
+    }
+   case 8:
+    var $21 = $gfc + 32 | 0;
+    var $22 = HEAP32[$21 >> 2];
+    var $23 = ($22 | 0) > 0;
+    if ($23) {
+      label = 9;
+      break;
+    } else {
+      var $status_0 = $4;
+      label = 12;
+      break;
+    }
+   case 9:
+    var $25 = _inc_subblock_gain($gfc, $cod_info, $xrpow);
+    var $26 = ($25 | 0) == 0;
+    if ($26) {
+      label = 10;
+      break;
+    } else {
+      var $31 = 1;
+      label = 11;
+      break;
+    }
+   case 10:
+    var $28 = _loop_break($cod_info);
+    var $29 = ($28 | 0) != 0;
+    var $31 = $29;
+    label = 11;
+    break;
+   case 11:
+    var $31;
+    var $32 = $31 & 1;
+    var $status_0 = $32;
+    label = 12;
+    break;
+   case 12:
+    var $status_0;
+    var $34 = ($status_0 | 0) == 0;
+    if ($34) {
+      label = 13;
+      break;
+    } else {
+      var $status_1 = $status_0;
+      label = 14;
+      break;
+    }
+   case 13:
+    var $36 = _scale_bitcount($gfc, $cod_info);
+    var $status_1 = $36;
+    label = 14;
+    break;
+   case 14:
+    var $status_1;
+    var $37 = ($status_1 | 0) == 0;
+    var $38 = $37 & 1;
+    var $_0 = $38;
+    label = 15;
+    break;
+   case 15:
+    var $_0;
+    return $_0;
+  }
+}
+function _loop_break($cod_info) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = $cod_info + 4860 | 0;
+    var $2 = HEAP32[$1 >> 2];
+    var $sfb_0 = 0;
+    label = 3;
+    break;
+   case 3:
+    var $sfb_0;
+    var $4 = ($sfb_0 | 0) < ($2 | 0);
+    if ($4) {
+      label = 4;
+      break;
+    } else {
+      var $_0 = 1;
+      label = 5;
+      break;
+    }
+   case 4:
+    var $6 = $cod_info + 4608 + ($sfb_0 << 2) | 0;
+    var $7 = HEAP32[$6 >> 2];
+    var $8 = $cod_info + 5028 + ($sfb_0 << 2) | 0;
+    var $9 = HEAP32[$8 >> 2];
+    var $10 = $cod_info + 4808 + ($9 << 2) | 0;
+    var $11 = HEAP32[$10 >> 2];
+    var $12 = -$11 | 0;
+    var $13 = ($7 | 0) == ($12 | 0);
+    var $14 = $sfb_0 + 1 | 0;
+    if ($13) {
+      var $_0 = 0;
+      label = 5;
+      break;
+    } else {
+      var $sfb_0 = $14;
+      label = 3;
+      break;
+    }
+   case 5:
+    var $_0;
+    return $_0;
+  }
+}
+function _inc_scalefac_scale($cod_info, $xrpow) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = $cod_info + 4860 | 0;
+    var $2 = HEAP32[$1 >> 2];
+    var $3 = ($2 | 0) > 0;
+    if ($3) {
+      label = 3;
+      break;
+    } else {
+      label = 13;
+      break;
+    }
+   case 3:
+    var $4 = $cod_info + 4832 | 0;
+    var $5 = $cod_info + 4764 | 0;
+    var $sfb_029 = 0;
+    var $j_030 = 0;
+    label = 4;
+    break;
+   case 4:
+    var $j_030;
+    var $sfb_029;
+    var $7 = $cod_info + 4872 + ($sfb_029 << 2) | 0;
+    var $8 = HEAP32[$7 >> 2];
+    var $9 = $cod_info + 4608 + ($sfb_029 << 2) | 0;
+    var $10 = HEAP32[$9 >> 2];
+    var $11 = HEAP32[$4 >> 2];
+    var $12 = ($11 | 0) == 0;
+    if ($12) {
+      var $s_0 = $10;
+      label = 6;
+      break;
+    } else {
+      label = 5;
+      break;
+    }
+   case 5:
+    var $14 = 5257016 + ($sfb_029 << 2) | 0;
+    var $15 = HEAP32[$14 >> 2];
+    var $16 = $15 + $10 | 0;
+    var $s_0 = $16;
+    label = 6;
+    break;
+   case 6:
+    var $s_0;
+    var $18 = $8 + $j_030 | 0;
+    var $19 = $s_0 & 1;
+    var $20 = ($19 | 0) == 0;
+    if ($20) {
+      var $s_1 = $s_0;
+      label = 12;
+      break;
+    } else {
+      label = 7;
+      break;
+    }
+   case 7:
+    var $22 = $s_0 + 1 | 0;
+    var $23 = ($8 | 0) > 0;
+    if ($23) {
+      label = 8;
+      break;
+    } else {
+      var $s_1 = $22;
+      label = 12;
+      break;
+    }
+   case 8:
+    var $24 = -$8 | 0;
+    var $l_028 = $24;
+    label = 9;
+    break;
+   case 9:
+    var $l_028;
+    var $26 = $l_028 + $18 | 0;
+    var $27 = $xrpow + ($26 << 2) | 0;
+    var $28 = HEAPF32[$27 >> 2];
+    var $29 = $28 * 1.2968395948410034;
+    HEAPF32[$27 >> 2] = $29;
+    var $30 = HEAPF32[$5 >> 2];
+    var $31 = $29 > $30;
+    if ($31) {
+      label = 10;
+      break;
+    } else {
+      label = 11;
+      break;
+    }
+   case 10:
+    HEAPF32[$5 >> 2] = $29;
+    label = 11;
+    break;
+   case 11:
+    var $34 = $l_028 + 1 | 0;
+    var $35 = ($34 | 0) < 0;
+    if ($35) {
+      var $l_028 = $34;
+      label = 9;
+      break;
+    } else {
+      var $s_1 = $22;
+      label = 12;
+      break;
+    }
+   case 12:
+    var $s_1;
+    var $36 = $s_1 >> 1;
+    HEAP32[$9 >> 2] = $36;
+    var $37 = $sfb_029 + 1 | 0;
+    var $38 = HEAP32[$1 >> 2];
+    var $39 = ($37 | 0) < ($38 | 0);
+    if ($39) {
+      var $sfb_029 = $37;
+      var $j_030 = $18;
+      label = 4;
+      break;
+    } else {
+      label = 13;
+      break;
+    }
+   case 13:
+    var $40 = $cod_info + 4832 | 0;
+    HEAP32[$40 >> 2] = 0;
+    var $41 = $cod_info + 4836 | 0;
+    HEAP32[$41 >> 2] = 1;
+    return;
+  }
+}
+_inc_scalefac_scale["X"] = 1;
+function _quant_compare($quant_comp, $best, $calc, $gi, $distort) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    if (($quant_comp | 0) == 0) {
+      label = 9;
+      break;
+    } else if (($quant_comp | 0) == 8) {
+      label = 18;
+      break;
+    } else if (($quant_comp | 0) == 1) {
+      label = 19;
+      break;
+    } else if (($quant_comp | 0) == 2) {
+      label = 20;
+      break;
+    } else if (($quant_comp | 0) == 3) {
+      label = 21;
+      break;
+    } else if (($quant_comp | 0) == 4) {
+      label = 24;
+      break;
+    } else if (($quant_comp | 0) == 5) {
+      label = 45;
+      break;
+    } else if (($quant_comp | 0) == 6) {
+      label = 51;
+      break;
+    } else if (($quant_comp | 0) == 7) {
+      label = 61;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 3:
+    var $2 = $best + 12 | 0;
+    var $3 = HEAP32[$2 >> 2];
+    var $4 = ($3 | 0) > 0;
+    if ($4) {
+      label = 4;
+      break;
+    } else {
+      label = 6;
+      break;
+    }
+   case 4:
+    var $6 = $calc + 16 | 0;
+    var $7 = HEAP32[$6 >> 2];
+    var $8 = $best + 16 | 0;
+    var $9 = HEAP32[$8 >> 2];
+    var $10 = ($7 | 0) <= ($9 | 0);
+    var $11 = $10 & 1;
+    var $12 = ($7 | 0) == ($9 | 0);
+    if ($12) {
+      label = 5;
+      break;
+    } else {
+      var $better_0 = $11;
+      label = 64;
+      break;
+    }
+   case 5:
+    var $14 = $calc + 20 | 0;
+    var $15 = HEAP32[$14 >> 2];
+    var $16 = $best + 20 | 0;
+    var $17 = HEAP32[$16 >> 2];
+    var $18 = ($15 | 0) < ($17 | 0);
+    var $19 = $18 & 1;
+    var $better_0 = $19;
+    label = 64;
+    break;
+   case 6:
+    var $21 = $calc + 8 | 0;
+    var $22 = HEAPF32[$21 >> 2];
+    var $23 = $22 < 0;
+    if ($23) {
+      label = 7;
+      break;
+    } else {
+      var $39 = 0;
+      label = 8;
+      break;
+    }
+   case 7:
+    var $25 = $22 * 10;
+    var $26 = $calc + 20 | 0;
+    var $27 = HEAP32[$26 >> 2];
+    var $28 = $27 | 0;
+    var $29 = $25 + $28;
+    var $30 = $best + 8 | 0;
+    var $31 = HEAPF32[$30 >> 2];
+    var $32 = $31 * 10;
+    var $33 = $best + 20 | 0;
+    var $34 = HEAP32[$33 >> 2];
+    var $35 = $34 | 0;
+    var $36 = $32 + $35;
+    var $37 = $29 <= $36;
+    var $39 = $37;
+    label = 8;
+    break;
+   case 8:
+    var $39;
+    var $40 = $39 & 1;
+    var $better_0 = $40;
+    label = 64;
+    break;
+   case 9:
+    var $42 = $calc + 12 | 0;
+    var $43 = HEAP32[$42 >> 2];
+    var $44 = $best + 12 | 0;
+    var $45 = HEAP32[$44 >> 2];
+    var $46 = ($43 | 0) < ($45 | 0);
+    if ($46) {
+      var $82 = 1;
+      label = 17;
+      break;
+    } else {
+      label = 10;
+      break;
+    }
+   case 10:
+    var $48 = ($43 | 0) == ($45 | 0);
+    if ($48) {
+      label = 11;
+      break;
+    } else {
+      label = 12;
+      break;
+    }
+   case 11:
+    var $50 = $calc | 0;
+    var $51 = HEAPF32[$50 >> 2];
+    var $52 = $best | 0;
+    var $53 = HEAPF32[$52 >> 2];
+    var $54 = $51 < $53;
+    if ($54) {
+      var $82 = 1;
+      label = 17;
+      break;
+    } else {
+      label = 12;
+      break;
+    }
+   case 12:
+    var $56 = HEAP32[$42 >> 2];
+    var $57 = HEAP32[$44 >> 2];
+    var $58 = ($56 | 0) == ($57 | 0);
+    if ($58) {
+      label = 13;
+      break;
+    } else {
+      var $82 = 0;
+      label = 17;
+      break;
+    }
+   case 13:
+    var $60 = $calc | 0;
+    var $61 = HEAPF32[$60 >> 2];
+    var $fabsf = Math.abs($61);
+    var $62 = $best | 0;
+    var $63 = HEAPF32[$62 >> 2];
+    var $fabsf108 = Math.abs($63);
+    var $64 = $fabsf > $fabsf108;
+    var $65 = $61 - $63;
+    var $fabsf109 = Math.abs($65);
+    var $66 = $fabsf109;
+    if ($64) {
+      label = 14;
+      break;
+    } else {
+      label = 15;
+      break;
+    }
+   case 14:
+    var $68 = $fabsf;
+    var $69 = $68 * 9.999999974752427e-7;
+    var $70 = $66 > $69;
+    if ($70) {
+      var $82 = 0;
+      label = 17;
+      break;
+    } else {
+      label = 16;
+      break;
+    }
+   case 15:
+    var $72 = $fabsf108;
+    var $73 = $72 * 9.999999974752427e-7;
+    var $74 = $66 > $73;
+    if ($74) {
+      var $82 = 0;
+      label = 17;
+      break;
+    } else {
+      label = 16;
+      break;
+    }
+   case 16:
+    var $76 = $calc + 4 | 0;
+    var $77 = HEAPF32[$76 >> 2];
+    var $78 = $best + 4 | 0;
+    var $79 = HEAPF32[$78 >> 2];
+    var $80 = $77 < $79;
+    var $82 = $80;
+    label = 17;
+    break;
+   case 17:
+    var $82;
+    var $83 = $82 & 1;
+    var $better_0 = $83;
+    label = 64;
+    break;
+   case 18:
+    var $85 = _get_klemm_noise($distort, $gi);
+    var $86 = $85;
+    var $87 = $calc + 8 | 0;
+    HEAPF32[$87 >> 2] = $86;
+    label = 19;
+    break;
+   case 19:
+    var $89 = $calc + 8 | 0;
+    var $90 = HEAPF32[$89 >> 2];
+    var $91 = $best + 8 | 0;
+    var $92 = HEAPF32[$91 >> 2];
+    var $93 = $90 < $92;
+    var $94 = $93 & 1;
+    var $better_0 = $94;
+    label = 64;
+    break;
+   case 20:
+    var $96 = $calc + 4 | 0;
+    var $97 = HEAPF32[$96 >> 2];
+    var $98 = $best + 4 | 0;
+    var $99 = HEAPF32[$98 >> 2];
+    var $100 = $97 < $99;
+    var $101 = $100 & 1;
+    var $better_0 = $101;
+    label = 64;
+    break;
+   case 21:
+    var $103 = $calc + 4 | 0;
+    var $104 = HEAPF32[$103 >> 2];
+    var $105 = $best + 4 | 0;
+    var $106 = HEAPF32[$105 >> 2];
+    var $107 = $104 < $106;
+    if ($107) {
+      label = 22;
+      break;
+    } else {
+      var $115 = 0;
+      label = 23;
+      break;
+    }
+   case 22:
+    var $109 = $calc + 8 | 0;
+    var $110 = HEAPF32[$109 >> 2];
+    var $111 = $best + 8 | 0;
+    var $112 = HEAPF32[$111 >> 2];
+    var $113 = $110 < $112;
+    var $115 = $113;
+    label = 23;
+    break;
+   case 23:
+    var $115;
+    var $116 = $115 & 1;
+    var $better_0 = $116;
+    label = 64;
+    break;
+   case 24:
+    var $118 = $calc + 8 | 0;
+    var $119 = HEAPF32[$118 >> 2];
+    var $120 = $119 > 0;
+    if ($120) {
+      var $127 = $119;
+      label = 27;
+      break;
+    } else {
+      label = 25;
+      break;
+    }
+   case 25:
+    var $122 = $best + 8 | 0;
+    var $123 = HEAPF32[$122 >> 2];
+    var $124 = $123;
+    var $125 = $124 > .2;
+    if ($125) {
+      var $216 = 1;
+      label = 44;
+      break;
+    } else {
+      label = 26;
+      break;
+    }
+   case 26:
+    var $_pr = HEAPF32[$118 >> 2];
+    var $127 = $_pr;
+    label = 27;
+    break;
+   case 27:
+    var $127;
+    var $128 = $127;
+    var $129 = $127 > 0;
+    if ($129) {
+      label = 31;
+      break;
+    } else {
+      label = 28;
+      break;
+    }
+   case 28:
+    var $131 = $best + 8 | 0;
+    var $132 = HEAPF32[$131 >> 2];
+    var $133 = $132 < 0;
+    if ($133) {
+      label = 29;
+      break;
+    } else {
+      label = 31;
+      break;
+    }
+   case 29:
+    var $135 = $132;
+    var $136 = $128 - .2;
+    var $137 = $135 > $136;
+    if ($137) {
+      label = 30;
+      break;
+    } else {
+      label = 31;
+      break;
+    }
+   case 30:
+    var $139 = $calc + 4 | 0;
+    var $140 = HEAPF32[$139 >> 2];
+    var $141 = $best + 4 | 0;
+    var $142 = HEAPF32[$141 >> 2];
+    var $143 = $140 < $142;
+    if ($143) {
+      var $216 = 1;
+      label = 44;
+      break;
+    } else {
+      label = 31;
+      break;
+    }
+   case 31:
+    var $145 = HEAPF32[$118 >> 2];
+    var $146 = $145;
+    var $147 = $145 > 0;
+    if ($147) {
+      var $166 = $145;
+      label = 36;
+      break;
+    } else {
+      label = 32;
+      break;
+    }
+   case 32:
+    var $149 = $best + 8 | 0;
+    var $150 = HEAPF32[$149 >> 2];
+    var $151 = $150 > 0;
+    if ($151) {
+      label = 33;
+      break;
+    } else {
+      label = 35;
+      break;
+    }
+   case 33:
+    var $153 = $150;
+    var $154 = $146 - .2;
+    var $155 = $153 > $154;
+    if ($155) {
+      label = 34;
+      break;
+    } else {
+      label = 35;
+      break;
+    }
+   case 34:
+    var $157 = $calc + 4 | 0;
+    var $158 = HEAPF32[$157 >> 2];
+    var $159 = $best + 4 | 0;
+    var $160 = HEAPF32[$159 >> 2];
+    var $161 = $best | 0;
+    var $162 = HEAPF32[$161 >> 2];
+    var $163 = $160 + $162;
+    var $164 = $158 < $163;
+    if ($164) {
+      var $216 = 1;
+      label = 44;
+      break;
+    } else {
+      label = 35;
+      break;
+    }
+   case 35:
+    var $_pr120 = HEAPF32[$118 >> 2];
+    var $166 = $_pr120;
+    label = 36;
+    break;
+   case 36:
+    var $166;
+    var $167 = $166;
+    var $168 = $166 > 0;
+    if ($168) {
+      label = 37;
+      break;
+    } else {
+      label = 40;
+      break;
+    }
+   case 37:
+    var $170 = $best + 8 | 0;
+    var $171 = HEAPF32[$170 >> 2];
+    var $172 = $171;
+    var $173 = $172 > -.05;
+    if ($173) {
+      label = 38;
+      break;
+    } else {
+      label = 40;
+      break;
+    }
+   case 38:
+    var $175 = $167 - .1;
+    var $176 = $172 > $175;
+    if ($176) {
+      label = 39;
+      break;
+    } else {
+      label = 40;
+      break;
+    }
+   case 39:
+    var $178 = $calc + 4 | 0;
+    var $179 = HEAPF32[$178 >> 2];
+    var $180 = $calc | 0;
+    var $181 = HEAPF32[$180 >> 2];
+    var $182 = $179 + $181;
+    var $183 = $best + 4 | 0;
+    var $184 = HEAPF32[$183 >> 2];
+    var $185 = $best | 0;
+    var $186 = HEAPF32[$185 >> 2];
+    var $187 = $184 + $186;
+    var $188 = $182 < $187;
+    if ($188) {
+      var $216 = 1;
+      label = 44;
+      break;
+    } else {
+      label = 40;
+      break;
+    }
+   case 40:
+    var $190 = HEAPF32[$118 >> 2];
+    var $191 = $190;
+    var $192 = $190 > 0;
+    if ($192) {
+      label = 41;
+      break;
+    } else {
+      var $216 = 0;
+      label = 44;
+      break;
+    }
+   case 41:
+    var $194 = $best + 8 | 0;
+    var $195 = HEAPF32[$194 >> 2];
+    var $196 = $195;
+    var $197 = $196 > -.1;
+    if ($197) {
+      label = 42;
+      break;
+    } else {
+      var $216 = 0;
+      label = 44;
+      break;
+    }
+   case 42:
+    var $199 = $191 - .15;
+    var $200 = $196 > $199;
+    if ($200) {
+      label = 43;
+      break;
+    } else {
+      var $216 = 0;
+      label = 44;
+      break;
+    }
+   case 43:
+    var $202 = $calc + 4 | 0;
+    var $203 = HEAPF32[$202 >> 2];
+    var $204 = $calc | 0;
+    var $205 = HEAPF32[$204 >> 2];
+    var $206 = $203 + $205;
+    var $207 = $205 + $206;
+    var $208 = $best + 4 | 0;
+    var $209 = HEAPF32[$208 >> 2];
+    var $210 = $best | 0;
+    var $211 = HEAPF32[$210 >> 2];
+    var $212 = $209 + $211;
+    var $213 = $211 + $212;
+    var $214 = $207 < $213;
+    var $216 = $214;
+    label = 44;
+    break;
+   case 44:
+    var $216;
+    var $217 = $216 & 1;
+    var $better_0 = $217;
+    label = 64;
+    break;
+   case 45:
+    var $219 = $calc | 0;
+    var $220 = HEAPF32[$219 >> 2];
+    var $221 = $best | 0;
+    var $222 = HEAPF32[$221 >> 2];
+    var $223 = $220 < $222;
+    if ($223) {
+      var $243 = 1;
+      label = 50;
+      break;
+    } else {
+      label = 46;
+      break;
+    }
+   case 46:
+    var $fabsf110 = Math.abs($220);
+    var $fabsf111 = Math.abs($222);
+    var $225 = $fabsf110 > $fabsf111;
+    var $226 = $220 - $222;
+    var $fabsf112 = Math.abs($226);
+    var $227 = $fabsf112;
+    if ($225) {
+      label = 47;
+      break;
+    } else {
+      label = 48;
+      break;
+    }
+   case 47:
+    var $229 = $fabsf110;
+    var $230 = $229 * 9.999999974752427e-7;
+    var $231 = $227 > $230;
+    if ($231) {
+      var $243 = 0;
+      label = 50;
+      break;
+    } else {
+      label = 49;
+      break;
+    }
+   case 48:
+    var $233 = $fabsf111;
+    var $234 = $233 * 9.999999974752427e-7;
+    var $235 = $227 > $234;
+    if ($235) {
+      var $243 = 0;
+      label = 50;
+      break;
+    } else {
+      label = 49;
+      break;
+    }
+   case 49:
+    var $237 = $calc + 4 | 0;
+    var $238 = HEAPF32[$237 >> 2];
+    var $239 = $best + 4 | 0;
+    var $240 = HEAPF32[$239 >> 2];
+    var $241 = $238 < $240;
+    var $243 = $241;
+    label = 50;
+    break;
+   case 50:
+    var $243;
+    var $244 = $243 & 1;
+    var $better_0 = $244;
+    label = 64;
+    break;
+   case 51:
+    var $246 = $calc | 0;
+    var $247 = HEAPF32[$246 >> 2];
+    var $248 = $best | 0;
+    var $249 = HEAPF32[$248 >> 2];
+    var $250 = $247 < $249;
+    if ($250) {
+      var $288 = 1;
+      label = 60;
+      break;
+    } else {
+      label = 52;
+      break;
+    }
+   case 52:
+    var $fabsf113 = Math.abs($247);
+    var $fabsf114 = Math.abs($249);
+    var $252 = $fabsf113 > $fabsf114;
+    var $253 = $247 - $249;
+    var $fabsf115 = Math.abs($253);
+    var $254 = $fabsf115;
+    if ($252) {
+      label = 53;
+      break;
+    } else {
+      label = 54;
+      break;
+    }
+   case 53:
+    var $256 = $fabsf113;
+    var $257 = $256 * 9.999999974752427e-7;
+    var $258 = $254 > $257;
+    if ($258) {
+      var $288 = 0;
+      label = 60;
+      break;
+    } else {
+      label = 55;
+      break;
+    }
+   case 54:
+    var $260 = $fabsf114;
+    var $261 = $260 * 9.999999974752427e-7;
+    var $262 = $254 > $261;
+    if ($262) {
+      var $288 = 0;
+      label = 60;
+      break;
+    } else {
+      label = 55;
+      break;
+    }
+   case 55:
+    var $264 = $calc + 8 | 0;
+    var $265 = HEAPF32[$264 >> 2];
+    var $266 = $best + 8 | 0;
+    var $267 = HEAPF32[$266 >> 2];
+    var $268 = $265 < $267;
+    if ($268) {
+      var $288 = 1;
+      label = 60;
+      break;
+    } else {
+      label = 56;
+      break;
+    }
+   case 56:
+    var $fabsf116 = Math.abs($265);
+    var $fabsf117 = Math.abs($267);
+    var $270 = $fabsf116 > $fabsf117;
+    var $271 = $265 - $267;
+    var $fabsf118 = Math.abs($271);
+    var $272 = $fabsf118;
+    if ($270) {
+      label = 57;
+      break;
+    } else {
+      label = 58;
+      break;
+    }
+   case 57:
+    var $274 = $fabsf116;
+    var $275 = $274 * 9.999999974752427e-7;
+    var $276 = $272 > $275;
+    if ($276) {
+      var $288 = 0;
+      label = 60;
+      break;
+    } else {
+      label = 59;
+      break;
+    }
+   case 58:
+    var $278 = $fabsf117;
+    var $279 = $278 * 9.999999974752427e-7;
+    var $280 = $272 > $279;
+    if ($280) {
+      var $288 = 0;
+      label = 60;
+      break;
+    } else {
+      label = 59;
+      break;
+    }
+   case 59:
+    var $282 = $calc + 4 | 0;
+    var $283 = HEAPF32[$282 >> 2];
+    var $284 = $best + 4 | 0;
+    var $285 = HEAPF32[$284 >> 2];
+    var $286 = $283 <= $285;
+    var $288 = $286;
+    label = 60;
+    break;
+   case 60:
+    var $288;
+    var $289 = $288 & 1;
+    var $better_0 = $289;
+    label = 64;
+    break;
+   case 61:
+    var $291 = $calc + 12 | 0;
+    var $292 = HEAP32[$291 >> 2];
+    var $293 = $best + 12 | 0;
+    var $294 = HEAP32[$293 >> 2];
+    var $295 = ($292 | 0) < ($294 | 0);
+    if ($295) {
+      var $303 = 1;
+      label = 63;
+      break;
+    } else {
+      label = 62;
+      break;
+    }
+   case 62:
+    var $297 = $calc | 0;
+    var $298 = HEAPF32[$297 >> 2];
+    var $299 = $best | 0;
+    var $300 = HEAPF32[$299 >> 2];
+    var $301 = $298 < $300;
+    var $303 = $301;
+    label = 63;
+    break;
+   case 63:
+    var $303;
+    var $304 = $303 & 1;
+    var $better_0 = $304;
+    label = 64;
+    break;
+   case 64:
+    var $better_0;
+    var $306 = $best + 12 | 0;
+    var $307 = HEAP32[$306 >> 2];
+    var $308 = ($307 | 0) == 0;
+    if ($308) {
+      label = 65;
+      break;
+    } else {
+      var $better_1 = $better_0;
+      label = 68;
+      break;
+    }
+   case 65:
+    var $310 = ($better_0 | 0) == 0;
+    if ($310) {
+      var $318 = 0;
+      label = 67;
+      break;
+    } else {
+      label = 66;
+      break;
+    }
+   case 66:
+    var $312 = $calc + 20 | 0;
+    var $313 = HEAP32[$312 >> 2];
+    var $314 = $best + 20 | 0;
+    var $315 = HEAP32[$314 >> 2];
+    var $316 = ($313 | 0) < ($315 | 0);
+    var $318 = $316;
+    label = 67;
+    break;
+   case 67:
+    var $318;
+    var $319 = $318 & 1;
+    var $better_1 = $319;
+    label = 68;
+    break;
+   case 68:
+    var $better_1;
+    return $better_1;
+  }
+}
+_quant_compare["X"] = 1;
+function _get_klemm_noise($distort, $gi) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = $gi + 4864 | 0;
+    var $2 = HEAP32[$1 >> 2];
+    var $3 = ($2 | 0) > 0;
+    if ($3) {
+      label = 3;
+      break;
+    } else {
+      var $klemm_noise_0_lcssa = 1e-37;
+      label = 5;
+      break;
+    }
+   case 3:
+    var $4 = HEAP32[$1 >> 2];
+    var $sfb_06 = 0;
+    var $klemm_noise_07 = 1e-37;
+    label = 4;
+    break;
+   case 4:
+    var $klemm_noise_07;
+    var $sfb_06;
+    var $6 = $distort + ($sfb_06 << 2) | 0;
+    var $7 = HEAPF32[$6 >> 2];
+    var $8 = $7;
+    var $9 = _penalties($8);
+    var $10 = $klemm_noise_07 + $9;
+    var $11 = $sfb_06 + 1 | 0;
+    var $12 = ($11 | 0) < ($4 | 0);
+    if ($12) {
+      var $sfb_06 = $11;
+      var $klemm_noise_07 = $10;
+      label = 4;
+      break;
+    } else {
+      var $klemm_noise_0_lcssa = $10;
+      label = 5;
+      break;
+    }
+   case 5:
+    var $klemm_noise_0_lcssa;
+    var $13 = $klemm_noise_0_lcssa < 1e-20;
+    var $14 = $13 ? 1e-20 : $klemm_noise_0_lcssa;
+    return $14;
+  }
+}
+function _penalties($noise) {
+  return _fast_log2($noise * .632 * $noise * $noise + .368) * .30102999566398114;
+}
+function _amp_scalefac_bands($gfc, $cod_info, $distort, $xrpow, $bRefine) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = $cod_info + 4836 | 0;
+    var $2 = HEAP32[$1 >> 2];
+    var $3 = ($2 | 0) == 0;
+    var $_ = $3 ? 1.2968395948410034 : 1.6817928552627563;
+    var $4 = $cod_info + 4860 | 0;
+    var $5 = HEAP32[$4 >> 2];
+    var $6 = ($5 | 0) > 0;
+    if ($6) {
+      label = 3;
+      break;
+    } else {
+      var $trigger_0_lcssa = 0;
+      label = 5;
+      break;
+    }
+   case 3:
+    var $7 = HEAP32[$4 >> 2];
+    var $sfb_054 = 0;
+    var $trigger_055 = 0;
+    label = 4;
+    break;
+   case 4:
+    var $trigger_055;
+    var $sfb_054;
+    var $9 = $distort + ($sfb_054 << 2) | 0;
+    var $10 = HEAPF32[$9 >> 2];
+    var $11 = $trigger_055 < $10;
+    var $trigger_1 = $11 ? $10 : $trigger_055;
+    var $12 = $sfb_054 + 1 | 0;
+    var $13 = ($12 | 0) < ($7 | 0);
+    if ($13) {
+      var $sfb_054 = $12;
+      var $trigger_055 = $trigger_1;
+      label = 4;
+      break;
+    } else {
+      var $trigger_0_lcssa = $trigger_1;
+      label = 5;
+      break;
+    }
+   case 5:
+    var $trigger_0_lcssa;
+    var $14 = $gfc + 40 | 0;
+    var $15 = HEAP32[$14 >> 2];
+    var $16 = ($15 | 0) == 3;
+    if ($16) {
+      label = 6;
+      break;
+    } else {
+      var $noise_shaping_amp_0 = $15;
+      label = 7;
+      break;
+    }
+   case 6:
+    var $18 = ($bRefine | 0) == 1;
+    var $_46 = $18 ? 2 : 1;
+    var $noise_shaping_amp_0 = $_46;
+    label = 7;
+    break;
+   case 7:
+    var $noise_shaping_amp_0;
+    if (($noise_shaping_amp_0 | 0) == 1) {
+      label = 8;
+      break;
+    } else if (($noise_shaping_amp_0 | 0) == 2) {
+      var $trigger_2 = $trigger_0_lcssa;
+      label = 13;
+      break;
+    } else {
+      label = 11;
+      break;
+    }
+   case 8:
+    var $21 = $trigger_0_lcssa;
+    var $22 = $trigger_0_lcssa > 1;
+    if ($22) {
+      label = 9;
+      break;
+    } else {
+      label = 10;
+      break;
+    }
+   case 9:
+    var $sqrt = Math.sqrt($21);
+    var $fabs = Math.abs($sqrt);
+    var $24 = $trigger_0_lcssa == -Infinity;
+    var $25 = $fabs;
+    var $26 = $24 ? Infinity : $25;
+    var $trigger_2 = $26;
+    label = 13;
+    break;
+   case 10:
+    var $28 = $21 * .95;
+    var $29 = $28;
+    var $trigger_2 = $29;
+    label = 13;
+    break;
+   case 11:
+    var $31 = $trigger_0_lcssa > 1;
+    if ($31) {
+      var $trigger_2 = 1;
+      label = 13;
+      break;
+    } else {
+      label = 12;
+      break;
+    }
+   case 12:
+    var $33 = $trigger_0_lcssa;
+    var $34 = $33 * .95;
+    var $35 = $34;
+    var $trigger_2 = $35;
+    label = 13;
+    break;
+   case 13:
+    var $trigger_2;
+    var $37 = HEAP32[$4 >> 2];
+    var $38 = ($37 | 0) > 0;
+    if ($38) {
+      label = 14;
+      break;
+    } else {
+      label = 26;
+      break;
+    }
+   case 14:
+    var $39 = $gfc + 85092 | 0;
+    var $40 = $cod_info + 4764 | 0;
+    var $sfb_148 = 0;
+    var $j_050 = 0;
+    label = 15;
+    break;
+   case 15:
+    var $j_050;
+    var $sfb_148;
+    var $42 = $cod_info + 4872 + ($sfb_148 << 2) | 0;
+    var $43 = HEAP32[$42 >> 2];
+    var $44 = $43 + $j_050 | 0;
+    var $45 = $distort + ($sfb_148 << 2) | 0;
+    var $46 = HEAPF32[$45 >> 2];
+    var $47 = $46 < $trigger_2;
+    if ($47) {
+      label = 25;
+      break;
+    } else {
+      label = 16;
+      break;
+    }
+   case 16:
+    var $49 = HEAP32[$39 >> 2];
+    var $50 = $49 & 2;
+    var $51 = ($50 | 0) == 0;
+    if ($51) {
+      label = 19;
+      break;
+    } else {
+      label = 17;
+      break;
+    }
+   case 17:
+    var $53 = $gfc + 84932 + ($sfb_148 << 2) | 0;
+    var $54 = HEAP32[$53 >> 2];
+    var $55 = ($54 | 0) == 0;
+    var $56 = $55 & 1;
+    HEAP32[$53 >> 2] = $56;
+    if ($55) {
+      label = 19;
+      break;
+    } else {
+      label = 18;
+      break;
+    }
+   case 18:
+    var $58 = HEAP32[$14 >> 2];
+    var $59 = ($58 | 0) == 2;
+    if ($59) {
+      label = 26;
+      break;
+    } else {
+      label = 19;
+      break;
+    }
+   case 19:
+    var $61 = $cod_info + 4608 + ($sfb_148 << 2) | 0;
+    var $62 = HEAP32[$61 >> 2];
+    var $63 = $62 + 1 | 0;
+    HEAP32[$61 >> 2] = $63;
+    var $64 = ($43 | 0) > 0;
+    if ($64) {
+      label = 20;
+      break;
+    } else {
+      label = 24;
+      break;
+    }
+   case 20:
+    var $65 = -$43 | 0;
+    var $l_047 = $65;
+    label = 21;
+    break;
+   case 21:
+    var $l_047;
+    var $67 = $l_047 + $44 | 0;
+    var $68 = $xrpow + ($67 << 2) | 0;
+    var $69 = HEAPF32[$68 >> 2];
+    var $70 = $_ * $69;
+    HEAPF32[$68 >> 2] = $70;
+    var $71 = HEAPF32[$40 >> 2];
+    var $72 = $70 > $71;
+    if ($72) {
+      label = 22;
+      break;
+    } else {
+      label = 23;
+      break;
+    }
+   case 22:
+    HEAPF32[$40 >> 2] = $70;
+    label = 23;
+    break;
+   case 23:
+    var $75 = $l_047 + 1 | 0;
+    var $76 = ($75 | 0) < 0;
+    if ($76) {
+      var $l_047 = $75;
+      label = 21;
+      break;
+    } else {
+      label = 24;
+      break;
+    }
+   case 24:
+    var $77 = HEAP32[$14 >> 2];
+    var $78 = ($77 | 0) == 2;
+    if ($78) {
+      label = 26;
+      break;
+    } else {
+      label = 25;
+      break;
+    }
+   case 25:
+    var $80 = $sfb_148 + 1 | 0;
+    var $81 = HEAP32[$4 >> 2];
+    var $82 = ($80 | 0) < ($81 | 0);
+    if ($82) {
+      var $sfb_148 = $80;
+      var $j_050 = $44;
+      label = 15;
+      break;
+    } else {
+      label = 26;
+      break;
+    }
+   case 26:
+    return;
+  }
+}
+_amp_scalefac_bands["X"] = 1;
+function _floatcompare($v1, $v2) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = $v1;
+    var $2 = $v2;
+    var $3 = HEAPF32[$1 >> 2];
+    var $4 = HEAPF32[$2 >> 2];
+    var $5 = $3 > $4;
+    if ($5) {
+      var $_0 = 1;
+      label = 4;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 3:
+    var $7 = $3 < $4;
+    var $_ = $7 << 31 >> 31;
+    var $_0 = $_;
+    label = 4;
+    break;
+   case 4:
+    var $_0;
+    return $_0;
+  }
+}
+function _inc_subblock_gain($gfc, $cod_info, $xrpow) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = $cod_info + 4848 | 0;
+    var $2 = HEAP32[$1 >> 2];
+    var $sfb_0 = 0;
+    label = 3;
+    break;
+   case 3:
+    var $sfb_0;
+    var $4 = ($sfb_0 | 0) < ($2 | 0);
+    if ($4) {
+      label = 5;
+      break;
+    } else {
+      label = 4;
+      break;
+    }
+   case 4:
+    var $5 = $cod_info + 4868 | 0;
+    var $6 = $cod_info + 4860 | 0;
+    var $7 = $cod_info + 4764 | 0;
+    var $8 = $cod_info + 4836 | 0;
+    var $9 = $cod_info + 4764 | 0;
+    var $window_0110 = 0;
+    label = 6;
+    break;
+   case 5:
+    var $11 = $cod_info + 4608 + ($sfb_0 << 2) | 0;
+    var $12 = HEAP32[$11 >> 2];
+    var $13 = ($12 | 0) > 15;
+    var $14 = $sfb_0 + 1 | 0;
+    if ($13) {
+      var $_0 = 1;
+      label = 32;
+      break;
+    } else {
+      var $sfb_0 = $14;
+      label = 3;
+      break;
+    }
+   case 6:
+    var $window_0110;
+    var $16 = HEAP32[$1 >> 2];
+    var $17 = $16 + $window_0110 | 0;
+    var $18 = HEAP32[$5 >> 2];
+    var $19 = ($17 | 0) < ($18 | 0);
+    if ($19) {
+      label = 7;
+      break;
+    } else {
+      var $s1_0_lcssa = 0;
+      var $sfb_1_lcssa = $17;
+      label = 9;
+      break;
+    }
+   case 7:
+    var $20 = HEAP32[$5 >> 2];
+    var $s1_086 = 0;
+    var $sfb_187 = $17;
+    label = 8;
+    break;
+   case 8:
+    var $sfb_187;
+    var $s1_086;
+    var $22 = $cod_info + 4608 + ($sfb_187 << 2) | 0;
+    var $23 = HEAP32[$22 >> 2];
+    var $24 = ($s1_086 | 0) < ($23 | 0);
+    var $_s1_0 = $24 ? $23 : $s1_086;
+    var $25 = $sfb_187 + 3 | 0;
+    var $26 = ($25 | 0) < ($20 | 0);
+    if ($26) {
+      var $s1_086 = $_s1_0;
+      var $sfb_187 = $25;
+      label = 8;
+      break;
+    } else {
+      var $s1_0_lcssa = $_s1_0;
+      var $sfb_1_lcssa = $25;
+      label = 9;
+      break;
+    }
+   case 9:
+    var $sfb_1_lcssa;
+    var $s1_0_lcssa;
+    var $27 = HEAP32[$6 >> 2];
+    var $28 = ($sfb_1_lcssa | 0) < ($27 | 0);
+    if ($28) {
+      label = 10;
+      break;
+    } else {
+      var $s2_0_lcssa = 1;
+      label = 13;
+      break;
+    }
+   case 10:
+    var $29 = HEAP32[$6 >> 2];
+    var $s2_089 = 0;
+    var $sfb_290 = $sfb_1_lcssa;
+    label = 11;
+    break;
+   case 11:
+    var $sfb_290;
+    var $s2_089;
+    var $31 = $cod_info + 4608 + ($sfb_290 << 2) | 0;
+    var $32 = HEAP32[$31 >> 2];
+    var $33 = ($s2_089 | 0) < ($32 | 0);
+    var $_s2_0 = $33 ? $32 : $s2_089;
+    var $34 = $sfb_290 + 3 | 0;
+    var $35 = ($34 | 0) < ($29 | 0);
+    if ($35) {
+      var $s2_089 = $_s2_0;
+      var $sfb_290 = $34;
+      label = 11;
+      break;
+    } else {
+      label = 12;
+      break;
+    }
+   case 12:
+    var $phitmp = ($_s2_0 | 0) < 8;
+    var $s2_0_lcssa = $phitmp;
+    label = 13;
+    break;
+   case 13:
+    var $s2_0_lcssa;
+    var $37 = ($s1_0_lcssa | 0) < 16;
+    var $or_cond = $37 & $s2_0_lcssa;
+    if ($or_cond) {
+      label = 31;
+      break;
+    } else {
+      label = 14;
+      break;
+    }
+   case 14:
+    var $39 = $cod_info + 4808 + ($window_0110 << 2) | 0;
+    var $40 = HEAP32[$39 >> 2];
+    var $41 = ($40 | 0) > 6;
+    if ($41) {
+      var $_0 = 1;
+      label = 32;
+      break;
+    } else {
+      label = 15;
+      break;
+    }
+   case 15:
+    var $43 = $40 + 1 | 0;
+    HEAP32[$39 >> 2] = $43;
+    var $44 = HEAP32[$1 >> 2];
+    var $45 = $gfc + 21360 + ($44 << 2) | 0;
+    var $46 = HEAP32[$45 >> 2];
+    var $47 = $44 + $window_0110 | 0;
+    var $48 = HEAP32[$6 >> 2];
+    var $49 = ($47 | 0) < ($48 | 0);
+    if ($49) {
+      label = 16;
+      break;
+    } else {
+      var $j_0_lcssa = $46;
+      var $sfb_3_lcssa = $47;
+      label = 26;
+      break;
+    }
+   case 16:
+    var $50 = $window_0110 + 1 | 0;
+    var $51 = 2 - $window_0110 | 0;
+    var $j_098 = $46;
+    var $sfb_399 = $47;
+    label = 17;
+    break;
+   case 17:
+    var $sfb_399;
+    var $j_098;
+    var $53 = $cod_info + 4872 + ($sfb_399 << 2) | 0;
+    var $54 = HEAP32[$53 >> 2];
+    var $55 = $cod_info + 4608 + ($sfb_399 << 2) | 0;
+    var $56 = HEAP32[$55 >> 2];
+    var $57 = HEAP32[$8 >> 2];
+    var $58 = 4 >>> ($57 >>> 0);
+    var $59 = $56 - $58 | 0;
+    var $60 = ($59 | 0) > -1;
+    if ($60) {
+      label = 18;
+      break;
+    } else {
+      label = 19;
+      break;
+    }
+   case 18:
+    HEAP32[$55 >> 2] = $59;
+    var $62 = $54 * 3 & -1;
+    var $63 = $62 + $j_098 | 0;
+    var $j_1 = $63;
+    label = 25;
+    break;
+   case 19:
+    HEAP32[$55 >> 2] = 0;
+    var $65 = HEAP32[$8 >> 2];
+    var $66 = $65 + 1 | 0;
+    var $67 = $59 << $66;
+    var $68 = $67 + 210 | 0;
+    var $69 = 5326164 + ($68 << 2) | 0;
+    var $70 = HEAPF32[$69 >> 2];
+    var $71 = $54 * $50 & -1;
+    var $72 = $71 + $j_098 | 0;
+    var $73 = ($54 | 0) > 0;
+    if ($73) {
+      label = 20;
+      break;
+    } else {
+      label = 24;
+      break;
+    }
+   case 20:
+    var $74 = -$54 | 0;
+    var $l_094 = $74;
+    label = 21;
+    break;
+   case 21:
+    var $l_094;
+    var $76 = $l_094 + $72 | 0;
+    var $77 = $xrpow + ($76 << 2) | 0;
+    var $78 = HEAPF32[$77 >> 2];
+    var $79 = $70 * $78;
+    HEAPF32[$77 >> 2] = $79;
+    var $80 = HEAPF32[$9 >> 2];
+    var $81 = $79 > $80;
+    if ($81) {
+      label = 22;
+      break;
+    } else {
+      label = 23;
+      break;
+    }
+   case 22:
+    HEAPF32[$9 >> 2] = $79;
+    label = 23;
+    break;
+   case 23:
+    var $84 = $l_094 + 1 | 0;
+    var $85 = ($84 | 0) < 0;
+    if ($85) {
+      var $l_094 = $84;
+      label = 21;
+      break;
+    } else {
+      label = 24;
+      break;
+    }
+   case 24:
+    var $86 = $54 * $51 & -1;
+    var $87 = $72 + $86 | 0;
+    var $j_1 = $87;
+    label = 25;
+    break;
+   case 25:
+    var $j_1;
+    var $89 = $sfb_399 + 3 | 0;
+    var $90 = HEAP32[$6 >> 2];
+    var $91 = ($89 | 0) < ($90 | 0);
+    if ($91) {
+      var $j_098 = $j_1;
+      var $sfb_399 = $89;
+      label = 17;
+      break;
+    } else {
+      var $j_0_lcssa = $j_1;
+      var $sfb_3_lcssa = $89;
+      label = 26;
+      break;
+    }
+   case 26:
+    var $sfb_3_lcssa;
+    var $j_0_lcssa;
+    var $92 = HEAPF32[5326972 >> 2];
+    var $93 = $cod_info + 4872 + ($sfb_3_lcssa << 2) | 0;
+    var $94 = HEAP32[$93 >> 2];
+    var $95 = $window_0110 + 1 | 0;
+    var $96 = $94 * $95 & -1;
+    var $97 = $96 + $j_0_lcssa | 0;
+    var $98 = ($94 | 0) > 0;
+    if ($98) {
+      label = 27;
+      break;
+    } else {
+      label = 31;
+      break;
+    }
+   case 27:
+    var $99 = -$94 | 0;
+    var $l_1106 = $99;
+    label = 28;
+    break;
+   case 28:
+    var $l_1106;
+    var $101 = $97 + $l_1106 | 0;
+    var $102 = $xrpow + ($101 << 2) | 0;
+    var $103 = HEAPF32[$102 >> 2];
+    var $104 = $92 * $103;
+    HEAPF32[$102 >> 2] = $104;
+    var $105 = HEAPF32[$7 >> 2];
+    var $106 = $104 > $105;
+    if ($106) {
+      label = 29;
+      break;
+    } else {
+      label = 30;
+      break;
+    }
+   case 29:
+    HEAPF32[$7 >> 2] = $104;
+    label = 30;
+    break;
+   case 30:
+    var $109 = $l_1106 + 1 | 0;
+    var $110 = ($109 | 0) < 0;
+    if ($110) {
+      var $l_1106 = $109;
+      label = 28;
+      break;
+    } else {
+      label = 31;
+      break;
+    }
+   case 31:
+    var $111 = $window_0110 + 1 | 0;
+    var $112 = ($111 | 0) < 3;
+    if ($112) {
+      var $window_0110 = $111;
+      label = 6;
+      break;
+    } else {
+      var $_0 = 0;
+      label = 32;
+      break;
+    }
+   case 32:
+    var $_0;
+    return $_0;
+  }
+}
+_inc_subblock_gain["X"] = 1;
+function _psfb21_analogsilence($gfc, $cod_info) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = $gfc + 85792 | 0;
+    var $2 = HEAP32[$1 >> 2];
+    var $3 = $cod_info + 4788 | 0;
+    var $4 = HEAP32[$3 >> 2];
+    var $5 = ($4 | 0) == 2;
+    if ($5) {
+      label = 4;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 3:
+    var $6 = $2 + 8 | 0;
+    var $7 = $2 + 20 | 0;
+    var $8 = $gfc + 84848 | 0;
+    var $gsfb_064 = 5;
+    label = 5;
+    break;
+   case 4:
+    var $9 = $gfc + 21500 | 0;
+    var $10 = $gfc + 21504 | 0;
+    var $11 = $gfc + 21536 | 0;
+    var $12 = $2 + 8 | 0;
+    var $13 = $2 + 20 | 0;
+    var $14 = $gfc + 84900 | 0;
+    var $block_053 = 0;
+    label = 11;
+    break;
+   case 5:
+    var $gsfb_064;
+    var $16 = $gfc + 21508 + ($gsfb_064 << 2) | 0;
+    var $17 = HEAP32[$16 >> 2];
+    var $18 = $gsfb_064 + 1 | 0;
+    var $19 = $gfc + 21508 + ($18 << 2) | 0;
+    var $20 = HEAP32[$19 >> 2];
+    var $21 = HEAPF32[$6 >> 2];
+    var $22 = $2 + 164 + ($gsfb_064 << 2) | 0;
+    var $23 = HEAPF32[$22 >> 2];
+    var $24 = HEAPF32[$7 >> 2];
+    var $25 = _athAdjust($21, $23, $24, 0);
+    var $26 = HEAPF32[$8 >> 2];
+    var $27 = $26 > 9.999999960041972e-13;
+    if ($27) {
+      label = 6;
+      break;
+    } else {
+      var $ath21_0 = $25;
+      label = 7;
+      break;
+    }
+   case 6:
+    var $29 = $25 * $26;
+    var $ath21_0 = $29;
+    label = 7;
+    break;
+   case 7:
+    var $ath21_0;
+    var $j_054 = $20 - 1 | 0;
+    var $31 = ($j_054 | 0) < ($17 | 0);
+    if ($31) {
+      label = 10;
+      break;
+    } else {
+      var $j_055 = $j_054;
+      label = 8;
+      break;
+    }
+   case 8:
+    var $j_055;
+    var $32 = $cod_info + ($j_055 << 2) | 0;
+    var $33 = HEAPF32[$32 >> 2];
+    var $fabsf = Math.abs($33);
+    var $34 = $fabsf < $ath21_0;
+    if ($34) {
+      label = 9;
+      break;
+    } else {
+      label = 19;
+      break;
+    }
+   case 9:
+    HEAPF32[$32 >> 2] = 0;
+    var $j_0 = $j_055 - 1 | 0;
+    var $36 = ($j_0 | 0) < ($17 | 0);
+    if ($36) {
+      label = 10;
+      break;
+    } else {
+      var $j_055 = $j_0;
+      label = 8;
+      break;
+    }
+   case 10:
+    var $37 = $gsfb_064 - 1 | 0;
+    var $38 = ($gsfb_064 | 0) > 0;
+    if ($38) {
+      var $gsfb_064 = $37;
+      label = 5;
+      break;
+    } else {
+      label = 19;
+      break;
+    }
+   case 11:
+    var $block_053;
+    var $gsfb1_050 = 5;
+    label = 12;
+    break;
+   case 12:
+    var $gsfb1_050;
+    var $40 = HEAP32[$9 >> 2];
+    var $41 = $40 * 3 & -1;
+    var $42 = HEAP32[$10 >> 2];
+    var $43 = $42 - $40 | 0;
+    var $44 = $43 * $block_053 & -1;
+    var $45 = $44 + $41 | 0;
+    var $46 = $gfc + 21536 + ($gsfb1_050 << 2) | 0;
+    var $47 = HEAP32[$46 >> 2];
+    var $48 = HEAP32[$11 >> 2];
+    var $49 = $47 - $48 | 0;
+    var $50 = $45 + $49 | 0;
+    var $51 = $gsfb1_050 + 1 | 0;
+    var $52 = $gfc + 21536 + ($51 << 2) | 0;
+    var $53 = HEAP32[$52 >> 2];
+    var $54 = $53 - $47 | 0;
+    var $55 = $54 + $50 | 0;
+    var $56 = HEAPF32[$12 >> 2];
+    var $57 = $2 + 188 + ($gsfb1_050 << 2) | 0;
+    var $58 = HEAPF32[$57 >> 2];
+    var $59 = HEAPF32[$13 >> 2];
+    var $60 = _athAdjust($56, $58, $59, 0);
+    var $61 = HEAPF32[$14 >> 2];
+    var $62 = $61 > 9.999999960041972e-13;
+    if ($62) {
+      label = 13;
+      break;
+    } else {
+      var $ath12_0 = $60;
+      label = 14;
+      break;
+    }
+   case 13:
+    var $64 = $60 * $61;
+    var $ath12_0 = $64;
+    label = 14;
+    break;
+   case 14:
+    var $ath12_0;
+    var $j5_047 = $55 - 1 | 0;
+    var $66 = ($j5_047 | 0) < ($50 | 0);
+    if ($66) {
+      label = 17;
+      break;
+    } else {
+      var $j5_048 = $j5_047;
+      label = 15;
+      break;
+    }
+   case 15:
+    var $j5_048;
+    var $67 = $cod_info + ($j5_048 << 2) | 0;
+    var $68 = HEAPF32[$67 >> 2];
+    var $fabsf46 = Math.abs($68);
+    var $69 = $fabsf46 < $ath12_0;
+    if ($69) {
+      label = 16;
+      break;
+    } else {
+      label = 18;
+      break;
+    }
+   case 16:
+    HEAPF32[$67 >> 2] = 0;
+    var $j5_0 = $j5_048 - 1 | 0;
+    var $71 = ($j5_0 | 0) < ($50 | 0);
+    if ($71) {
+      label = 17;
+      break;
+    } else {
+      var $j5_048 = $j5_0;
+      label = 15;
+      break;
+    }
+   case 17:
+    var $72 = $gsfb1_050 - 1 | 0;
+    var $73 = ($gsfb1_050 | 0) > 0;
+    if ($73) {
+      var $gsfb1_050 = $72;
+      label = 12;
+      break;
+    } else {
+      label = 18;
+      break;
+    }
+   case 18:
+    var $74 = $block_053 + 1 | 0;
+    var $exitcond = ($74 | 0) == 3;
+    if ($exitcond) {
+      label = 19;
+      break;
+    } else {
+      var $block_053 = $74;
+      label = 11;
+      break;
+    }
+   case 19:
+    return;
+  }
+}
+_psfb21_analogsilence["X"] = 1;
+function _get_framebits($gfc, $frameBits) {
+  var label = 0;
+  var __stackBase__ = STACKTOP;
+  STACKTOP = STACKTOP + 4 | 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $bitsPerFrame = __stackBase__;
+    var $1 = $gfc + 84740 | 0;
+    HEAP32[$1 >> 2] = 1;
+    var $2 = _getframebits($gfc);
+    HEAP32[$bitsPerFrame >> 2] = $2;
+    var $3 = $gfc + 116 | 0;
+    var $4 = HEAP32[$3 >> 2];
+    var $5 = ($4 | 0) < 1;
+    if ($5) {
+      label = 4;
+      break;
+    } else {
+      var $i_012 = 1;
+      label = 3;
+      break;
+    }
+   case 3:
+    var $i_012;
+    HEAP32[$1 >> 2] = $i_012;
+    var $6 = _ResvFrameBegin($gfc, $bitsPerFrame);
+    var $7 = $frameBits + ($i_012 << 2) | 0;
+    HEAP32[$7 >> 2] = $6;
+    var $8 = $i_012 + 1 | 0;
+    var $9 = HEAP32[$3 >> 2];
+    var $10 = ($8 | 0) > ($9 | 0);
+    if ($10) {
+      label = 4;
+      break;
+    } else {
+      var $i_012 = $8;
+      label = 3;
+      break;
+    }
+   case 4:
+    STACKTOP = __stackBase__;
+    return;
+  }
+}
+function _iteration_init($gfc) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = $gfc + 8 | 0;
+    var $2 = HEAP32[$1 >> 2];
+    var $3 = ($2 | 0) == 0;
+    if ($3) {
+      label = 3;
+      break;
+    } else {
+      label = 14;
+      break;
+    }
+   case 3:
+    HEAP32[$1 >> 2] = 1;
+    var $5 = $gfc + 21312 | 0;
+    HEAP32[$5 >> 2] = 0;
+    _compute_ath($gfc);
+    HEAPF32[5257104 >> 2] = 0;
+    var $i_0113 = 1;
+    label = 4;
+    break;
+   case 4:
+    var $i_0113;
+    var $7 = $i_0113 | 0;
+    var $8 = $7;
+    var $9 = Math.pow($8, 1.3333333333333333);
+    var $10 = $9;
+    var $11 = 5257104 + ($i_0113 << 2) | 0;
+    HEAPF32[$11 >> 2] = $10;
+    var $12 = $i_0113 + 1 | 0;
+    var $exitcond124 = ($12 | 0) == 8208;
+    if ($exitcond124) {
+      label = 5;
+      break;
+    } else {
+      var $i_0113 = $12;
+      label = 4;
+      break;
+    }
+   case 5:
+    HEAPF32[5349760 >> 2] = 0;
+    var $i_1112 = 1;
+    label = 6;
+    break;
+   case 6:
+    var $i_1112;
+    var $15 = $i_1112 | 0;
+    var $16 = $15 - .5;
+    var $17 = $i_1112 - 1 | 0;
+    var $18 = 5257104 + ($17 << 2) | 0;
+    var $19 = HEAPF32[$18 >> 2];
+    var $20 = 5257104 + ($i_1112 << 2) | 0;
+    var $21 = HEAPF32[$20 >> 2];
+    var $22 = $19 + $21;
+    var $23 = $22;
+    var $24 = $23 * .5;
+    var $25 = Math.pow($24, .75);
+    var $26 = $16 - $25;
+    var $27 = $26;
+    var $28 = 5349760 + ($i_1112 << 2) | 0;
+    HEAPF32[$28 >> 2] = $27;
+    var $29 = $i_1112 + 1 | 0;
+    var $exitcond123 = ($29 | 0) == 8208;
+    if ($exitcond123) {
+      var $i_2111 = 0;
+      label = 7;
+      break;
+    } else {
+      var $i_1112 = $29;
+      label = 6;
+      break;
+    }
+   case 7:
+    var $i_2111;
+    var $30 = $i_2111 - 210 | 0;
+    var $31 = $30 | 0;
+    var $32 = $31 * -.1875;
+    var $exp2 = _exp2($32);
+    var $33 = $exp2;
+    var $34 = 5326164 + ($i_2111 << 2) | 0;
+    HEAPF32[$34 >> 2] = $33;
+    var $35 = $i_2111 + 1 | 0;
+    var $exitcond122 = ($35 | 0) == 257;
+    if ($exitcond122) {
+      var $i_3109 = 0;
+      label = 8;
+      break;
+    } else {
+      var $i_2111 = $35;
+      label = 7;
+      break;
+    }
+   case 8:
+    var $i_3109;
+    var $36 = $i_3109 - 326 | 0;
+    var $37 = $36 | 0;
+    var $38 = $37 * .25;
+    var $exp284 = _exp2($38);
+    var $39 = $exp284;
+    var $40 = 5289936 + ($i_3109 << 2) | 0;
+    HEAPF32[$40 >> 2] = $39;
+    var $41 = $i_3109 + 1 | 0;
+    var $exitcond121 = ($41 | 0) == 374;
+    if ($exitcond121) {
+      label = 9;
+      break;
+    } else {
+      var $i_3109 = $41;
+      label = 8;
+      break;
+    }
+   case 9:
+    _huffman_init($gfc);
+    _init_xrpow_core_init($gfc);
+    var $42 = $gfc + 232 | 0;
+    var $43 = HEAPF32[$42 >> 2];
+    var $44 = $43 - .5;
+    var $45 = $44 * .10000000149011612;
+    var $46 = Math.pow(10, $45);
+    var $47 = $gfc + 84764 | 0;
+    HEAPF32[$47 >> 2] = $46;
+    var $48 = $gfc + 84768 | 0;
+    HEAPF32[$48 >> 2] = $46;
+    var $49 = $gfc + 84772 | 0;
+    HEAPF32[$49 >> 2] = $46;
+    var $50 = $gfc + 84776 | 0;
+    HEAPF32[$50 >> 2] = $46;
+    var $51 = $gfc + 84780 | 0;
+    HEAPF32[$51 >> 2] = $46;
+    var $52 = $gfc + 84784 | 0;
+    HEAPF32[$52 >> 2] = $46;
+    var $53 = $gfc + 84788 | 0;
+    HEAPF32[$53 >> 2] = $46;
+    var $54 = $gfc + 228 | 0;
+    var $55 = HEAPF32[$54 >> 2];
+    var $56 = $55 - .25;
+    var $57 = $56 * .10000000149011612;
+    var $58 = Math.pow(10, $57);
+    var $59 = $gfc + 84792 | 0;
+    HEAPF32[$59 >> 2] = $58;
+    var $60 = $gfc + 84796 | 0;
+    HEAPF32[$60 >> 2] = $58;
+    var $61 = $gfc + 84800 | 0;
+    HEAPF32[$61 >> 2] = $58;
+    var $62 = $gfc + 84804 | 0;
+    HEAPF32[$62 >> 2] = $58;
+    var $63 = $gfc + 84808 | 0;
+    HEAPF32[$63 >> 2] = $58;
+    var $64 = $gfc + 84812 | 0;
+    HEAPF32[$64 >> 2] = $58;
+    var $65 = $gfc + 84816 | 0;
+    HEAPF32[$65 >> 2] = $58;
+    var $66 = $gfc + 236 | 0;
+    var $67 = HEAPF32[$66 >> 2];
+    var $68 = $67 - .02500000037252903;
+    var $69 = $68 * .10000000149011612;
+    var $70 = Math.pow(10, $69);
+    var $i_698 = 14;
+    label = 10;
+    break;
+   case 10:
+    var $i_698;
+    var $72 = $gfc + 84764 + ($i_698 << 2) | 0;
+    HEAPF32[$72 >> 2] = $70;
+    var $73 = $i_698 + 1 | 0;
+    var $exitcond118 = ($73 | 0) == 21;
+    if ($exitcond118) {
+      label = 11;
+      break;
+    } else {
+      var $i_698 = $73;
+      label = 10;
+      break;
+    }
+   case 11:
+    var $74 = $gfc + 240 | 0;
+    var $75 = HEAPF32[$74 >> 2];
+    var $76 = $75 + .5;
+    var $77 = $76 * .10000000149011612;
+    var $78 = Math.pow(10, $77);
+    var $79 = $gfc + 84848 | 0;
+    HEAPF32[$79 >> 2] = $78;
+    var $80 = HEAPF32[$42 >> 2];
+    var $81 = $80 - 2;
+    var $82 = $81 * .10000000149011612;
+    var $83 = Math.pow(10, $82);
+    var $84 = $gfc + 84852 | 0;
+    HEAPF32[$84 >> 2] = $83;
+    var $85 = $gfc + 84856 | 0;
+    HEAPF32[$85 >> 2] = $83;
+    var $86 = $gfc + 84860 | 0;
+    HEAPF32[$86 >> 2] = $83;
+    var $87 = HEAPF32[$54 >> 2];
+    var $88 = $87 - 1;
+    var $89 = $88 * .10000000149011612;
+    var $90 = Math.pow(10, $89);
+    var $91 = $gfc + 84864 | 0;
+    HEAPF32[$91 >> 2] = $90;
+    var $92 = $gfc + 84868 | 0;
+    HEAPF32[$92 >> 2] = $90;
+    var $93 = $gfc + 84872 | 0;
+    HEAPF32[$93 >> 2] = $90;
+    var $94 = $gfc + 84876 | 0;
+    HEAPF32[$94 >> 2] = $90;
+    var $95 = HEAPF32[$66 >> 2];
+    var $96 = $95 - .05000000074505806;
+    var $97 = $96 * .10000000149011612;
+    var $98 = Math.pow(10, $97);
+    var $i_1086 = 7;
+    label = 12;
+    break;
+   case 12:
+    var $i_1086;
+    var $100 = $gfc + 84852 + ($i_1086 << 2) | 0;
+    HEAPF32[$100 >> 2] = $98;
+    var $101 = $i_1086 + 1 | 0;
+    var $exitcond114 = ($101 | 0) == 12;
+    if ($exitcond114) {
+      label = 13;
+      break;
+    } else {
+      var $i_1086 = $101;
+      label = 12;
+      break;
+    }
+   case 13:
+    var $102 = HEAPF32[$74 >> 2];
+    var $103 = $102 + .5;
+    var $104 = $103 * .10000000149011612;
+    var $105 = Math.pow(10, $104);
+    var $106 = $gfc + 84900 | 0;
+    HEAPF32[$106 >> 2] = $105;
+    label = 14;
+    break;
+   case 14:
+    return;
+  }
+}
+_iteration_init["X"] = 1;
+function _compute_ath($gfc) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = $gfc + 16 | 0;
+    var $2 = $gfc + 85792 | 0;
+    var $3 = HEAP32[$2 >> 2];
+    var $4 = $gfc + 64 | 0;
+    var $5 = HEAP32[$4 >> 2];
+    var $6 = $5 | 0;
+    var $sfb_0145 = 0;
+    label = 4;
+    break;
+   case 3:
+    var $exitcond152 = ($10 | 0) == 22;
+    if ($exitcond152) {
+      var $sfb_1140 = 0;
+      label = 7;
+      break;
+    } else {
+      var $sfb_0145 = $10;
+      label = 4;
+      break;
+    }
+   case 4:
+    var $sfb_0145;
+    var $8 = $gfc + 21360 + ($sfb_0145 << 2) | 0;
+    var $9 = HEAP32[$8 >> 2];
+    var $10 = $sfb_0145 + 1 | 0;
+    var $11 = $gfc + 21360 + ($10 << 2) | 0;
+    var $12 = HEAP32[$11 >> 2];
+    var $13 = $3 + 24 + ($sfb_0145 << 2) | 0;
+    HEAPF32[$13 >> 2] = 9.999999933815813e+36;
+    var $14 = ($9 | 0) < ($12 | 0);
+    if ($14) {
+      var $i_0142 = $9;
+      label = 5;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 5:
+    var $i_0142;
+    var $15 = $i_0142 | 0;
+    var $16 = $6 * $15;
+    var $17 = $16 / 1152;
+    var $18 = _ATHmdct($1, $17);
+    var $19 = HEAPF32[$13 >> 2];
+    var $20 = $19 < $18;
+    var $_ = $20 ? $19 : $18;
+    HEAPF32[$13 >> 2] = $_;
+    var $21 = $i_0142 + 1 | 0;
+    var $exitcond151 = ($21 | 0) == ($12 | 0);
+    if ($exitcond151) {
+      label = 3;
+      break;
+    } else {
+      var $i_0142 = $21;
+      label = 5;
+      break;
+    }
+   case 6:
+    var $exitcond150 = ($24 | 0) == 6;
+    if ($exitcond150) {
+      var $sfb_2134 = 0;
+      label = 10;
+      break;
+    } else {
+      var $sfb_1140 = $24;
+      label = 7;
+      break;
+    }
+   case 7:
+    var $sfb_1140;
+    var $22 = $gfc + 21508 + ($sfb_1140 << 2) | 0;
+    var $23 = HEAP32[$22 >> 2];
+    var $24 = $sfb_1140 + 1 | 0;
+    var $25 = $gfc + 21508 + ($24 << 2) | 0;
+    var $26 = HEAP32[$25 >> 2];
+    var $27 = $3 + 164 + ($sfb_1140 << 2) | 0;
+    HEAPF32[$27 >> 2] = 9.999999933815813e+36;
+    var $28 = ($23 | 0) < ($26 | 0);
+    if ($28) {
+      var $i_1136 = $23;
+      label = 8;
+      break;
+    } else {
+      label = 6;
+      break;
+    }
+   case 8:
+    var $i_1136;
+    var $29 = $i_1136 | 0;
+    var $30 = $6 * $29;
+    var $31 = $30 / 1152;
+    var $32 = _ATHmdct($1, $31);
+    var $33 = HEAPF32[$27 >> 2];
+    var $34 = $33 < $32;
+    var $_116 = $34 ? $33 : $32;
+    HEAPF32[$27 >> 2] = $_116;
+    var $35 = $i_1136 + 1 | 0;
+    var $exitcond149 = ($35 | 0) == ($26 | 0);
+    if ($exitcond149) {
+      label = 6;
+      break;
+    } else {
+      var $i_1136 = $35;
+      label = 8;
+      break;
+    }
+   case 9:
+    var $36 = $gfc + 21504 | 0;
+    var $37 = $gfc + 21500 | 0;
+    var $sfb_3128 = 0;
+    label = 13;
+    break;
+   case 10:
+    var $sfb_2134;
+    var $38 = $gfc + 21452 + ($sfb_2134 << 2) | 0;
+    var $39 = HEAP32[$38 >> 2];
+    var $40 = $sfb_2134 + 1 | 0;
+    var $41 = $gfc + 21452 + ($40 << 2) | 0;
+    var $42 = HEAP32[$41 >> 2];
+    var $43 = $3 + 112 + ($sfb_2134 << 2) | 0;
+    HEAPF32[$43 >> 2] = 9.999999933815813e+36;
+    var $44 = ($39 | 0) < ($42 | 0);
+    if ($44) {
+      var $i_2129 = $39;
+      label = 11;
+      break;
+    } else {
+      label = 12;
+      break;
+    }
+   case 11:
+    var $i_2129;
+    var $45 = $i_2129 | 0;
+    var $46 = $6 * $45;
+    var $47 = $46 / 384;
+    var $48 = _ATHmdct($1, $47);
+    var $49 = HEAPF32[$43 >> 2];
+    var $50 = $49 < $48;
+    var $_117 = $50 ? $49 : $48;
+    HEAPF32[$43 >> 2] = $_117;
+    var $51 = $i_2129 + 1 | 0;
+    var $exitcond147 = ($51 | 0) == ($42 | 0);
+    if ($exitcond147) {
+      label = 12;
+      break;
+    } else {
+      var $i_2129 = $51;
+      label = 11;
+      break;
+    }
+   case 12:
+    var $52 = HEAP32[$41 >> 2];
+    var $53 = HEAP32[$38 >> 2];
+    var $54 = $52 - $53 | 0;
+    var $55 = $54 | 0;
+    var $56 = HEAPF32[$43 >> 2];
+    var $57 = $56 * $55;
+    HEAPF32[$43 >> 2] = $57;
+    var $exitcond148 = ($40 | 0) == 13;
+    if ($exitcond148) {
+      label = 9;
+      break;
+    } else {
+      var $sfb_2134 = $40;
+      label = 10;
+      break;
+    }
+   case 13:
+    var $sfb_3128;
+    var $59 = $gfc + 21536 + ($sfb_3128 << 2) | 0;
+    var $60 = HEAP32[$59 >> 2];
+    var $61 = $sfb_3128 + 1 | 0;
+    var $62 = $gfc + 21536 + ($61 << 2) | 0;
+    var $63 = HEAP32[$62 >> 2];
+    var $64 = $3 + 188 + ($sfb_3128 << 2) | 0;
+    HEAPF32[$64 >> 2] = 9.999999933815813e+36;
+    var $65 = ($60 | 0) < ($63 | 0);
+    if ($65) {
+      var $i_3126 = $60;
+      label = 14;
+      break;
+    } else {
+      label = 15;
+      break;
+    }
+   case 14:
+    var $i_3126;
+    var $66 = $i_3126 | 0;
+    var $67 = $6 * $66;
+    var $68 = $67 / 384;
+    var $69 = _ATHmdct($1, $68);
+    var $70 = HEAPF32[$64 >> 2];
+    var $71 = $70 < $69;
+    var $_118 = $71 ? $70 : $69;
+    HEAPF32[$64 >> 2] = $_118;
+    var $72 = $i_3126 + 1 | 0;
+    var $exitcond = ($72 | 0) == ($63 | 0);
+    if ($exitcond) {
+      label = 15;
+      break;
+    } else {
+      var $i_3126 = $72;
+      label = 14;
+      break;
+    }
+   case 15:
+    var $73 = HEAP32[$36 >> 2];
+    var $74 = HEAP32[$37 >> 2];
+    var $75 = $73 - $74 | 0;
+    var $76 = $75 | 0;
+    var $77 = HEAPF32[$64 >> 2];
+    var $78 = $77 * $76;
+    HEAPF32[$64 >> 2] = $78;
+    var $exitcond146 = ($61 | 0) == 6;
+    if ($exitcond146) {
+      label = 16;
+      break;
+    } else {
+      var $sfb_3128 = $61;
+      label = 13;
+      break;
+    }
+   case 16:
+    var $80 = $gfc + 220 | 0;
+    var $81 = HEAP32[$80 >> 2];
+    var $82 = ($81 | 0) == 0;
+    if ($82) {
+      label = 18;
+      break;
+    } else {
+      label = 17;
+      break;
+    }
+   case 17:
+    var $83 = $3 + 24 | 0;
+    HEAPF32[$83 >> 2] = 9.999999682655225e-21;
+    var $84 = $3 + 28 | 0;
+    HEAPF32[$84 >> 2] = 9.999999682655225e-21;
+    var $85 = $3 + 32 | 0;
+    HEAPF32[$85 >> 2] = 9.999999682655225e-21;
+    var $86 = $3 + 36 | 0;
+    HEAPF32[$86 >> 2] = 9.999999682655225e-21;
+    var $87 = $3 + 40 | 0;
+    HEAPF32[$87 >> 2] = 9.999999682655225e-21;
+    var $88 = $3 + 44 | 0;
+    HEAPF32[$88 >> 2] = 9.999999682655225e-21;
+    var $89 = $3 + 48 | 0;
+    HEAPF32[$89 >> 2] = 9.999999682655225e-21;
+    var $90 = $3 + 52 | 0;
+    HEAPF32[$90 >> 2] = 9.999999682655225e-21;
+    var $91 = $3 + 56 | 0;
+    HEAPF32[$91 >> 2] = 9.999999682655225e-21;
+    var $92 = $3 + 60 | 0;
+    HEAPF32[$92 >> 2] = 9.999999682655225e-21;
+    var $93 = $3 + 64 | 0;
+    HEAPF32[$93 >> 2] = 9.999999682655225e-21;
+    var $94 = $3 + 68 | 0;
+    HEAPF32[$94 >> 2] = 9.999999682655225e-21;
+    var $95 = $3 + 72 | 0;
+    HEAPF32[$95 >> 2] = 9.999999682655225e-21;
+    var $96 = $3 + 76 | 0;
+    HEAPF32[$96 >> 2] = 9.999999682655225e-21;
+    var $97 = $3 + 80 | 0;
+    HEAPF32[$97 >> 2] = 9.999999682655225e-21;
+    var $98 = $3 + 84 | 0;
+    HEAPF32[$98 >> 2] = 9.999999682655225e-21;
+    var $99 = $3 + 88 | 0;
+    HEAPF32[$99 >> 2] = 9.999999682655225e-21;
+    var $100 = $3 + 92 | 0;
+    HEAPF32[$100 >> 2] = 9.999999682655225e-21;
+    var $101 = $3 + 96 | 0;
+    HEAPF32[$101 >> 2] = 9.999999682655225e-21;
+    var $102 = $3 + 100 | 0;
+    HEAPF32[$102 >> 2] = 9.999999682655225e-21;
+    var $103 = $3 + 104 | 0;
+    HEAPF32[$103 >> 2] = 9.999999682655225e-21;
+    var $104 = $3 + 108 | 0;
+    HEAPF32[$104 >> 2] = 9.999999682655225e-21;
+    var $105 = $3 + 164 | 0;
+    HEAPF32[$105 >> 2] = 9.999999682655225e-21;
+    var $106 = $3 + 168 | 0;
+    HEAPF32[$106 >> 2] = 9.999999682655225e-21;
+    var $107 = $3 + 172 | 0;
+    HEAPF32[$107 >> 2] = 9.999999682655225e-21;
+    var $108 = $3 + 176 | 0;
+    HEAPF32[$108 >> 2] = 9.999999682655225e-21;
+    var $109 = $3 + 180 | 0;
+    HEAPF32[$109 >> 2] = 9.999999682655225e-21;
+    var $110 = $3 + 184 | 0;
+    HEAPF32[$110 >> 2] = 9.999999682655225e-21;
+    var $111 = $3 + 112 | 0;
+    HEAPF32[$111 >> 2] = 9.999999682655225e-21;
+    var $112 = $3 + 116 | 0;
+    HEAPF32[$112 >> 2] = 9.999999682655225e-21;
+    var $113 = $3 + 120 | 0;
+    HEAPF32[$113 >> 2] = 9.999999682655225e-21;
+    var $114 = $3 + 124 | 0;
+    HEAPF32[$114 >> 2] = 9.999999682655225e-21;
+    var $115 = $3 + 128 | 0;
+    HEAPF32[$115 >> 2] = 9.999999682655225e-21;
+    var $116 = $3 + 132 | 0;
+    HEAPF32[$116 >> 2] = 9.999999682655225e-21;
+    var $117 = $3 + 136 | 0;
+    HEAPF32[$117 >> 2] = 9.999999682655225e-21;
+    var $118 = $3 + 140 | 0;
+    HEAPF32[$118 >> 2] = 9.999999682655225e-21;
+    var $119 = $3 + 144 | 0;
+    HEAPF32[$119 >> 2] = 9.999999682655225e-21;
+    var $120 = $3 + 148 | 0;
+    HEAPF32[$120 >> 2] = 9.999999682655225e-21;
+    var $121 = $3 + 152 | 0;
+    HEAPF32[$121 >> 2] = 9.999999682655225e-21;
+    var $122 = $3 + 156 | 0;
+    HEAPF32[$122 >> 2] = 9.999999682655225e-21;
+    var $123 = $3 + 160 | 0;
+    HEAPF32[$123 >> 2] = 9.999999682655225e-21;
+    var $124 = $3 + 188 | 0;
+    HEAPF32[$124 >> 2] = 9.999999682655225e-21;
+    var $125 = $3 + 192 | 0;
+    HEAPF32[$125 >> 2] = 9.999999682655225e-21;
+    var $126 = $3 + 196 | 0;
+    HEAPF32[$126 >> 2] = 9.999999682655225e-21;
+    var $127 = $3 + 200 | 0;
+    HEAPF32[$127 >> 2] = 9.999999682655225e-21;
+    var $128 = $3 + 204 | 0;
+    HEAPF32[$128 >> 2] = 9.999999682655225e-21;
+    var $129 = $3 + 208 | 0;
+    HEAPF32[$129 >> 2] = 9.999999682655225e-21;
+    label = 18;
+    break;
+   case 18:
+    var $131 = _ATHmdct($1, -1);
+    var $132 = $131;
+    var $133 = _log10($132);
+    var $134 = $133 * 10;
+    var $135 = $134;
+    var $136 = HEAP32[$2 >> 2];
+    var $137 = $136 + 20 | 0;
+    HEAPF32[$137 >> 2] = $135;
+    return;
+  }
+}
+_compute_ath["X"] = 1;
+function _reduce_side($targ_bits, $ms_ener_ratio, $mean_bits, $max_bits) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = $ms_ener_ratio;
+    var $2 = .5 - $1;
+    var $3 = $2 * .33;
+    var $4 = $3 * 2;
+    var $5 = $4;
+    var $6 = $5 < 0;
+    var $fac_0 = $6 ? 0 : $5;
+    var $7 = $fac_0 > .5;
+    var $8 = $fac_0;
+    var $_op = $8 * .5;
+    var $9 = $7 ? .25 : $_op;
+    var $10 = HEAP32[$targ_bits >> 2];
+    var $11 = $targ_bits + 4 | 0;
+    var $12 = HEAP32[$11 >> 2];
+    var $13 = $12 + $10 | 0;
+    var $14 = $13 | 0;
+    var $15 = $9 * $14;
+    var $16 = $15 & -1;
+    var $17 = 4095 - $10 | 0;
+    var $18 = ($16 | 0) > ($17 | 0);
+    var $_ = $18 ? $17 : $16;
+    var $19 = ($_ | 0) < 0;
+    var $move_bits_1 = $19 ? 0 : $_;
+    var $20 = ($12 | 0) > 124;
+    if ($20) {
+      label = 3;
+      break;
+    } else {
+      label = 8;
+      break;
+    }
+   case 3:
+    var $22 = $12 - $move_bits_1 | 0;
+    var $23 = ($22 | 0) > 125;
+    if ($23) {
+      label = 4;
+      break;
+    } else {
+      label = 7;
+      break;
+    }
+   case 4:
+    var $25 = ($10 | 0) < ($mean_bits | 0);
+    if ($25) {
+      label = 5;
+      break;
+    } else {
+      label = 6;
+      break;
+    }
+   case 5:
+    var $27 = $move_bits_1 + $10 | 0;
+    HEAP32[$targ_bits >> 2] = $27;
+    label = 6;
+    break;
+   case 6:
+    var $29 = HEAP32[$11 >> 2];
+    var $30 = $29 - $move_bits_1 | 0;
+    HEAP32[$11 >> 2] = $30;
+    label = 8;
+    break;
+   case 7:
+    var $32 = $10 - 125 | 0;
+    var $33 = $32 + $12 | 0;
+    HEAP32[$targ_bits >> 2] = $33;
+    HEAP32[$11 >> 2] = 125;
+    label = 8;
+    break;
+   case 8:
+    var $35 = HEAP32[$targ_bits >> 2];
+    var $36 = HEAP32[$11 >> 2];
+    var $37 = $36 + $35 | 0;
+    var $38 = ($37 | 0) > ($max_bits | 0);
+    if ($38) {
+      label = 9;
+      break;
+    } else {
+      label = 10;
+      break;
+    }
+   case 9:
+    var $40 = $35 * $max_bits & -1;
+    var $41 = ($40 | 0) / ($37 | 0) & -1;
+    HEAP32[$targ_bits >> 2] = $41;
+    var $42 = HEAP32[$11 >> 2];
+    var $43 = $42 * $max_bits & -1;
+    var $44 = ($43 | 0) / ($37 | 0) & -1;
+    HEAP32[$11 >> 2] = $44;
+    label = 10;
+    break;
+   case 10:
+    return;
+  }
+}
+_reduce_side["X"] = 1;
+function _on_pe($gfc, $pe, $targ_bits, $mean_bits, $gr, $cbr) {
+  var label = 0;
+  var __stackBase__ = STACKTOP;
+  STACKTOP = STACKTOP + 16 | 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $extra_bits = __stackBase__;
+    var $tbits = __stackBase__ + 4;
+    var $add_bits = __stackBase__ + 8;
+    HEAP32[$extra_bits >> 2] = 0;
+    var $1 = $add_bits;
+    var $$etemp$0$0 = 0;
+    var $$etemp$0$1 = 0;
+    var $st$7$0 = $1 | 0;
+    HEAP32[$st$7$0 >> 2] = $$etemp$0$0;
+    var $st$7$1 = $1 + 4 | 0;
+    HEAP32[$st$7$1 >> 2] = $$etemp$0$1;
+    _ResvMaxBits($gfc, $mean_bits, $tbits, $extra_bits, $cbr);
+    var $2 = HEAP32[$tbits >> 2];
+    var $3 = HEAP32[$extra_bits >> 2];
+    var $4 = $3 + $2 | 0;
+    var $5 = ($4 | 0) > 7680;
+    var $_ = $5 ? 7680 : $4;
+    var $6 = $gfc + 72 | 0;
+    var $7 = HEAP32[$6 >> 2];
+    var $8 = ($7 | 0) > 0;
+    if ($8) {
+      label = 3;
+      break;
+    } else {
+      label = 20;
+      break;
+    }
+   case 3:
+    var $9 = HEAP32[$tbits >> 2];
+    var $10 = $mean_bits * 3 & -1;
+    var $11 = ($10 | 0) / 4 & -1;
+    var $bits_081 = 0;
+    var $ch_082 = 0;
+    var $13 = $7;
+    label = 4;
+    break;
+   case 4:
+    var $13;
+    var $ch_082;
+    var $bits_081;
+    var $14 = ($9 | 0) / ($13 | 0) & -1;
+    var $15 = ($14 | 0) > 4095;
+    var $_67 = $15 ? 4095 : $14;
+    var $16 = $targ_bits + ($ch_082 << 2) | 0;
+    HEAP32[$16 >> 2] = $_67;
+    var $17 = $_67 | 0;
+    var $18 = $pe + ($gr << 3) + ($ch_082 << 2) | 0;
+    var $19 = HEAPF32[$18 >> 2];
+    var $20 = $19 * $17;
+    var $21 = $20;
+    var $22 = $21 / 700;
+    var $23 = $_67 | 0;
+    var $24 = $22 - $23;
+    var $25 = $24 & -1;
+    var $26 = $add_bits + ($ch_082 << 2) | 0;
+    var $27 = ($25 | 0) > ($11 | 0);
+    var $storemerge = $27 ? $11 : $25;
+    var $28 = ($storemerge | 0) < 0;
+    var $_storemerge = $28 ? 0 : $storemerge;
+    HEAP32[$26 >> 2] = $_storemerge;
+    var $29 = HEAP32[$16 >> 2];
+    var $30 = $_storemerge + $29 | 0;
+    var $31 = ($30 | 0) > 4095;
+    if ($31) {
+      label = 5;
+      break;
+    } else {
+      label = 6;
+      break;
+    }
+   case 5:
+    var $33 = 4095 - $29 | 0;
+    var $34 = ($33 | 0) < 0;
+    var $_68 = $34 ? 0 : $33;
+    HEAP32[$26 >> 2] = $_68;
+    label = 6;
+    break;
+   case 6:
+    var $36 = HEAP32[$26 >> 2];
+    var $37 = $36 + $bits_081 | 0;
+    var $38 = $ch_082 + 1 | 0;
+    var $39 = HEAP32[$6 >> 2];
+    var $40 = ($38 | 0) < ($39 | 0);
+    if ($40) {
+      var $bits_081 = $37;
+      var $ch_082 = $38;
+      var $13 = $39;
+      label = 4;
+      break;
+    } else {
+      label = 7;
+      break;
+    }
+   case 7:
+    var $41 = HEAP32[$extra_bits >> 2];
+    var $42 = ($37 | 0) > ($41 | 0);
+    var $43 = ($37 | 0) > 0;
+    var $or_cond = $42 & $43;
+    if ($or_cond) {
+      label = 8;
+      break;
+    } else {
+      label = 10;
+      break;
+    }
+   case 8:
+    var $44 = HEAP32[$6 >> 2];
+    var $45 = ($44 | 0) > 0;
+    if ($45) {
+      label = 9;
+      break;
+    } else {
+      label = 20;
+      break;
+    }
+   case 9:
+    var $46 = HEAP32[$extra_bits >> 2];
+    var $47 = HEAP32[$6 >> 2];
+    var $ch_178 = 0;
+    label = 12;
+    break;
+   case 10:
+    var $_pr_pr = HEAP32[$6 >> 2];
+    var $48 = ($_pr_pr | 0) > 0;
+    if ($48) {
+      label = 11;
+      break;
+    } else {
+      label = 20;
+      break;
+    }
+   case 11:
+    var $extra_bits_promoted = HEAP32[$extra_bits >> 2];
+    var $ch_275 = 0;
+    var $59 = $extra_bits_promoted;
+    label = 15;
+    break;
+   case 12:
+    var $ch_178;
+    var $50 = $add_bits + ($ch_178 << 2) | 0;
+    var $51 = HEAP32[$50 >> 2];
+    var $52 = $51 * $46 & -1;
+    var $53 = ($52 | 0) / ($37 | 0) & -1;
+    HEAP32[$50 >> 2] = $53;
+    var $54 = $ch_178 + 1 | 0;
+    var $55 = ($54 | 0) < ($47 | 0);
+    if ($55) {
+      var $ch_178 = $54;
+      label = 12;
+      break;
+    } else {
+      label = 10;
+      break;
+    }
+   case 13:
+    HEAP32[$extra_bits >> 2] = $66;
+    var $_pr91_pr = HEAP32[$6 >> 2];
+    var $56 = ($_pr91_pr | 0) > 0;
+    if ($56) {
+      label = 14;
+      break;
+    } else {
+      label = 20;
+      break;
+    }
+   case 14:
+    var $57 = HEAP32[$6 >> 2];
+    var $bits_171 = 0;
+    var $ch_372 = 0;
+    label = 16;
+    break;
+   case 15:
+    var $59;
+    var $ch_275;
+    var $60 = $add_bits + ($ch_275 << 2) | 0;
+    var $61 = HEAP32[$60 >> 2];
+    var $62 = $targ_bits + ($ch_275 << 2) | 0;
+    var $63 = HEAP32[$62 >> 2];
+    var $64 = $63 + $61 | 0;
+    HEAP32[$62 >> 2] = $64;
+    var $65 = HEAP32[$60 >> 2];
+    var $66 = $59 - $65 | 0;
+    var $67 = $ch_275 + 1 | 0;
+    var $68 = HEAP32[$6 >> 2];
+    var $69 = ($67 | 0) < ($68 | 0);
+    if ($69) {
+      var $ch_275 = $67;
+      var $59 = $66;
+      label = 15;
+      break;
+    } else {
+      label = 13;
+      break;
+    }
+   case 16:
+    var $ch_372;
+    var $bits_171;
+    var $71 = $targ_bits + ($ch_372 << 2) | 0;
+    var $72 = HEAP32[$71 >> 2];
+    var $73 = $72 + $bits_171 | 0;
+    var $74 = $ch_372 + 1 | 0;
+    var $75 = ($74 | 0) < ($57 | 0);
+    if ($75) {
+      var $bits_171 = $73;
+      var $ch_372 = $74;
+      label = 16;
+      break;
+    } else {
+      label = 17;
+      break;
+    }
+   case 17:
+    var $76 = ($73 | 0) > 7680;
+    if ($76) {
+      label = 18;
+      break;
+    } else {
+      label = 20;
+      break;
+    }
+   case 18:
+    var $77 = HEAP32[$6 >> 2];
+    var $78 = ($77 | 0) > 0;
+    if ($78) {
+      var $ch_469 = 0;
+      label = 19;
+      break;
+    } else {
+      label = 20;
+      break;
+    }
+   case 19:
+    var $ch_469;
+    var $79 = $targ_bits + ($ch_469 << 2) | 0;
+    var $80 = HEAP32[$79 >> 2];
+    var $81 = $80 * 7680 & -1;
+    var $82 = ($81 | 0) / ($73 | 0) & -1;
+    HEAP32[$79 >> 2] = $82;
+    var $83 = $ch_469 + 1 | 0;
+    var $84 = HEAP32[$6 >> 2];
+    var $85 = ($83 | 0) < ($84 | 0);
+    if ($85) {
+      var $ch_469 = $83;
+      label = 19;
+      break;
+    } else {
+      label = 20;
+      break;
+    }
+   case 20:
+    STACKTOP = __stackBase__;
+    return $_;
+  }
+}
+_on_pe["X"] = 1;
+function _athAdjust($a, $x, $athFloor, $ATHfixpoint) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = $ATHfixpoint < 1;
+    var $2 = $1 ? 94.82444763183594 : $ATHfixpoint;
+    var $3 = _fast_log2($x);
+    var $4 = $3;
+    var $5 = $4 * 3.0102999566398116;
+    var $6 = $5;
+    var $7 = $a * $a;
+    var $8 = $6 - $athFloor;
+    var $9 = $7 > 9.999999682655225e-21;
+    if ($9) {
+      label = 3;
+      break;
+    } else {
+      var $w_0 = 0;
+      label = 4;
+      break;
+    }
+   case 3:
+    var $11 = _fast_log2($7);
+    var $12 = $11;
+    var $13 = $12 * .03333343265598758;
+    var $14 = $13 + 1;
+    var $15 = $14;
+    var $w_0 = $15;
+    label = 4;
+    break;
+   case 4:
+    var $w_0;
+    var $17 = $w_0 < 0;
+    var $w_1 = $17 ? 0 : $w_0;
+    var $18 = $8 * $w_1;
+    var $19 = $athFloor + 90.30873107910156;
+    var $20 = $19 - $2;
+    var $21 = $20 + $18;
+    var $22 = $21 * .10000000149011612;
+    var $23 = Math.pow(10, $22);
+    return $23;
+  }
+}
+function _calc_xmin($gfc, $ratio, $cod_info, $pxmin) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = $gfc + 85792 | 0;
+    var $2 = HEAP32[$1 >> 2];
+    var $3 = $cod_info + 4856 | 0;
+    var $4 = HEAP32[$3 >> 2];
+    var $5 = ($4 | 0) > 0;
+    if ($5) {
+      label = 3;
+      break;
+    } else {
+      var $ath_over_0_lcssa = 0;
+      var $j_0_lcssa = 0;
+      var $gsfb_0_lcssa = 0;
+      var $_0_lcssa = $pxmin;
+      label = 4;
+      break;
+    }
+   case 3:
+    var $6 = $2 + 8 | 0;
+    var $7 = $2 + 20 | 0;
+    var $8 = $gfc + 224 | 0;
+    var $ath_over_0162 = 0;
+    var $j_0163 = 0;
+    var $gsfb_0164 = 0;
+    var $_0165 = $pxmin;
+    label = 5;
+    break;
+   case 4:
+    var $_0_lcssa;
+    var $gsfb_0_lcssa;
+    var $j_0_lcssa;
+    var $ath_over_0_lcssa;
+    var $k_0 = 575;
+    label = 14;
+    break;
+   case 5:
+    var $_0165;
+    var $gsfb_0164;
+    var $j_0163;
+    var $ath_over_0162;
+    var $10 = HEAPF32[$6 >> 2];
+    var $11 = $2 + 24 + ($gsfb_0164 << 2) | 0;
+    var $12 = HEAPF32[$11 >> 2];
+    var $13 = HEAPF32[$7 >> 2];
+    var $14 = HEAPF32[$8 >> 2];
+    var $15 = _athAdjust($10, $12, $13, $14);
+    var $16 = $gfc + 84764 + ($gsfb_0164 << 2) | 0;
+    var $17 = HEAPF32[$16 >> 2];
+    var $18 = $15 * $17;
+    var $19 = $cod_info + 4872 + ($gsfb_0164 << 2) | 0;
+    var $20 = HEAP32[$19 >> 2];
+    var $21 = $20 | 0;
+    var $22 = $18 / $21;
+    var $23 = ($20 | 0) > 0;
+    if ($23) {
+      var $l_0152 = 0;
+      var $rh2_0153 = 2.220446049250313e-16;
+      var $en0_0154 = 0;
+      var $j_1155 = $j_0163;
+      label = 6;
+      break;
+    } else {
+      var $rh2_0_lcssa = 2.220446049250313e-16;
+      var $en0_0_lcssa = 0;
+      var $j_1_lcssa = $j_0163;
+      label = 8;
+      break;
+    }
+   case 6:
+    var $j_1155;
+    var $en0_0154;
+    var $rh2_0153;
+    var $l_0152;
+    var $24 = $j_1155 + 1 | 0;
+    var $25 = $cod_info + ($j_1155 << 2) | 0;
+    var $26 = HEAPF32[$25 >> 2];
+    var $27 = $26 * $26;
+    var $28 = $en0_0154 + $27;
+    var $29 = $27 < $22;
+    var $30 = $29 ? $27 : $22;
+    var $31 = $rh2_0153 + $30;
+    var $32 = $l_0152 + 1 | 0;
+    var $exitcond179 = ($32 | 0) == ($20 | 0);
+    if ($exitcond179) {
+      label = 7;
+      break;
+    } else {
+      var $l_0152 = $32;
+      var $rh2_0153 = $31;
+      var $en0_0154 = $28;
+      var $j_1155 = $24;
+      label = 6;
+      break;
+    }
+   case 7:
+    var $33 = $j_0163 + $20 | 0;
+    var $rh2_0_lcssa = $31;
+    var $en0_0_lcssa = $28;
+    var $j_1_lcssa = $33;
+    label = 8;
+    break;
+   case 8:
+    var $j_1_lcssa;
+    var $en0_0_lcssa;
+    var $rh2_0_lcssa;
+    var $35 = $en0_0_lcssa > $18;
+    var $36 = $35 & 1;
+    var $ath_over_1 = $36 + $ath_over_0162 | 0;
+    var $37 = $en0_0_lcssa < $18;
+    if ($37) {
+      var $rh3_0 = $en0_0_lcssa;
+      label = 10;
+      break;
+    } else {
+      label = 9;
+      break;
+    }
+   case 9:
+    var $39 = $rh2_0_lcssa < $18;
+    var $_rh2_0 = $39 ? $18 : $rh2_0_lcssa;
+    var $rh3_0 = $_rh2_0;
+    label = 10;
+    break;
+   case 10:
+    var $rh3_0;
+    var $41 = $ratio + 244 + ($gsfb_0164 << 2) | 0;
+    var $42 = HEAPF32[$41 >> 2];
+    var $43 = $42 > 9.999999960041972e-13;
+    if ($43) {
+      label = 11;
+      break;
+    } else {
+      var $xmin_0 = $rh3_0;
+      label = 13;
+      break;
+    }
+   case 11:
+    var $45 = $ratio + ($gsfb_0164 << 2) | 0;
+    var $46 = HEAPF32[$45 >> 2];
+    var $47 = $en0_0_lcssa * $46;
+    var $48 = $47 / $42;
+    var $49 = HEAPF32[$16 >> 2];
+    var $50 = $48 * $49;
+    var $51 = $rh3_0 < $50;
+    if ($51) {
+      label = 12;
+      break;
+    } else {
+      var $xmin_0 = $rh3_0;
+      label = 13;
+      break;
+    }
+   case 12:
+    var $xmin_0 = $50;
+    label = 13;
+    break;
+   case 13:
+    var $xmin_0;
+    var $54 = $xmin_0 > 2.220446049250313e-16;
+    var $55 = $54 ? $xmin_0 : 2.220446049250313e-16;
+    var $56 = $55 + 9.9999998245167e-15;
+    var $57 = $en0_0_lcssa > $56;
+    var $58 = $57 & 1;
+    var $59 = $gsfb_0164 + ($cod_info + 5212) | 0;
+    HEAP8[$59] = $58;
+    var $60 = $_0165 + 4 | 0;
+    HEAPF32[$_0165 >> 2] = $55;
+    var $61 = $gsfb_0164 + 1 | 0;
+    var $62 = HEAP32[$3 >> 2];
+    var $63 = ($61 | 0) < ($62 | 0);
+    if ($63) {
+      var $ath_over_0162 = $ath_over_1;
+      var $j_0163 = $j_1_lcssa;
+      var $gsfb_0164 = $61;
+      var $_0165 = $60;
+      label = 5;
+      break;
+    } else {
+      var $ath_over_0_lcssa = $ath_over_1;
+      var $j_0_lcssa = $j_1_lcssa;
+      var $gsfb_0_lcssa = $61;
+      var $_0_lcssa = $60;
+      label = 4;
+      break;
+    }
+   case 14:
+    var $k_0;
+    var $65 = ($k_0 | 0) > 0;
+    if ($65) {
+      label = 15;
+      break;
+    } else {
+      var $max_nonzero_0 = 0;
+      label = 16;
+      break;
+    }
+   case 15:
+    var $67 = $cod_info + ($k_0 << 2) | 0;
+    var $68 = HEAPF32[$67 >> 2];
+    var $fabsf = Math.abs($68);
+    var $69 = $fabsf > 9.999999960041972e-13;
+    var $70 = $k_0 - 1 | 0;
+    if ($69) {
+      var $max_nonzero_0 = $k_0;
+      label = 16;
+      break;
+    } else {
+      var $k_0 = $70;
+      label = 14;
+      break;
+    }
+   case 16:
+    var $max_nonzero_0;
+    var $72 = $cod_info + 4788 | 0;
+    var $73 = HEAP32[$72 >> 2];
+    var $74 = ($73 | 0) == 2;
+    if ($74) {
+      label = 18;
+      break;
+    } else {
+      label = 17;
+      break;
+    }
+   case 17:
+    var $76 = $max_nonzero_0 | 1;
+    var $max_nonzero_1 = $76;
+    label = 19;
+    break;
+   case 18:
+    var $78 = ($max_nonzero_0 | 0) % 6;
+    var $79 = $max_nonzero_0 + 5 | 0;
+    var $80 = $79 - $78 | 0;
+    var $max_nonzero_1 = $80;
+    label = 19;
+    break;
+   case 19:
+    var $max_nonzero_1;
+    var $82 = $gfc + 85088 | 0;
+    var $83 = HEAP32[$82 >> 2];
+    var $84 = ($83 | 0) == 0;
+    if ($84) {
+      label = 20;
+      break;
+    } else {
+      var $max_nonzero_2 = $max_nonzero_1;
+      label = 25;
+      break;
+    }
+   case 20:
+    var $86 = $gfc + 64 | 0;
+    var $87 = HEAP32[$86 >> 2];
+    var $88 = ($87 | 0) < 44e3;
+    if ($88) {
+      label = 21;
+      break;
+    } else {
+      var $max_nonzero_2 = $max_nonzero_1;
+      label = 25;
+      break;
+    }
+   case 21:
+    var $90 = ($87 | 0) < 8001;
+    var $91 = HEAP32[$72 >> 2];
+    var $92 = ($91 | 0) == 2;
+    if ($92) {
+      label = 23;
+      break;
+    } else {
+      label = 22;
+      break;
+    }
+   case 22:
+    var $94 = $90 ? 17 : 21;
+    var $95 = $gfc + 21360 + ($94 << 2) | 0;
+    var $96 = HEAP32[$95 >> 2];
+    var $limit_0_in = $96;
+    label = 24;
+    break;
+   case 23:
+    var $98 = $90 ? 9 : 12;
+    var $99 = $gfc + 21452 + ($98 << 2) | 0;
+    var $100 = HEAP32[$99 >> 2];
+    var $101 = $100 * 3 & -1;
+    var $limit_0_in = $101;
+    label = 24;
+    break;
+   case 24:
+    var $limit_0_in;
+    var $limit_0 = $limit_0_in - 1 | 0;
+    var $103 = ($max_nonzero_1 | 0) > ($limit_0 | 0);
+    var $limit_0_max_nonzero_1 = $103 ? $limit_0 : $max_nonzero_1;
+    var $max_nonzero_2 = $limit_0_max_nonzero_1;
+    label = 25;
+    break;
+   case 25:
+    var $max_nonzero_2;
+    var $105 = $cod_info + 5208 | 0;
+    HEAP32[$105 >> 2] = $max_nonzero_2;
+    var $106 = $cod_info + 4864 | 0;
+    var $107 = HEAP32[$106 >> 2];
+    var $108 = ($gsfb_0_lcssa | 0) < ($107 | 0);
+    if ($108) {
+      label = 26;
+      break;
+    } else {
+      var $ath_over_2_lcssa = $ath_over_0_lcssa;
+      label = 41;
+      break;
+    }
+   case 26:
+    var $109 = $cod_info + 4852 | 0;
+    var $110 = HEAP32[$109 >> 2];
+    var $111 = $2 + 8 | 0;
+    var $112 = $2 + 20 | 0;
+    var $113 = $gfc + 224 | 0;
+    var $114 = $gfc + 92 | 0;
+    var $115 = $gfc + 85796 | 0;
+    var $116 = $gfc + 85796 | 0;
+    var $scevgep174 = $_0_lcssa + 8 | 0;
+    var $ath_over_2143 = $ath_over_0_lcssa;
+    var $j_2144 = $j_0_lcssa;
+    var $gsfb_1145 = $gsfb_0_lcssa;
+    var $sfb_0146 = $110;
+    var $_1147 = $_0_lcssa;
+    var $indvars_iv = $scevgep174;
+    label = 27;
+    break;
+   case 27:
+    var $indvars_iv;
+    var $_1147;
+    var $sfb_0146;
+    var $gsfb_1145;
+    var $j_2144;
+    var $ath_over_2143;
+    var $118 = HEAPF32[$111 >> 2];
+    var $119 = $2 + 112 + ($sfb_0146 << 2) | 0;
+    var $120 = HEAPF32[$119 >> 2];
+    var $121 = HEAPF32[$112 >> 2];
+    var $122 = HEAPF32[$113 >> 2];
+    var $123 = _athAdjust($118, $120, $121, $122);
+    var $124 = $gfc + 84852 + ($sfb_0146 << 2) | 0;
+    var $125 = HEAPF32[$124 >> 2];
+    var $126 = $123 * $125;
+    var $127 = $cod_info + 4872 + ($gsfb_1145 << 2) | 0;
+    var $128 = HEAP32[$127 >> 2];
+    var $129 = $128 | 0;
+    var $130 = $126 / $129;
+    var $131 = ($128 | 0) > 0;
+    if ($131) {
+      var $l2_0133 = 0;
+      var $en03_0134 = 0;
+      var $j_4135 = $j_2144;
+      var $rh26_0136 = 2.220446049250313e-16;
+      label = 28;
+      break;
+    } else {
+      var $en03_0_lcssa = 0;
+      var $j_4_lcssa = $j_2144;
+      var $rh26_0_lcssa = 2.220446049250313e-16;
+      label = 30;
+      break;
+    }
+   case 28:
+    var $rh26_0136;
+    var $j_4135;
+    var $en03_0134;
+    var $l2_0133;
+    var $132 = $j_4135 + 1 | 0;
+    var $133 = $cod_info + ($j_4135 << 2) | 0;
+    var $134 = HEAPF32[$133 >> 2];
+    var $135 = $134 * $134;
+    var $136 = $en03_0134 + $135;
+    var $137 = $135 < $130;
+    var $138 = $137 ? $135 : $130;
+    var $139 = $rh26_0136 + $138;
+    var $140 = $l2_0133 + 1 | 0;
+    var $exitcond = ($140 | 0) == ($128 | 0);
+    if ($exitcond) {
+      label = 29;
+      break;
+    } else {
+      var $l2_0133 = $140;
+      var $en03_0134 = $136;
+      var $j_4135 = $132;
+      var $rh26_0136 = $139;
+      label = 28;
+      break;
+    }
+   case 29:
+    var $141 = $128 + $j_2144 | 0;
+    var $en03_0_lcssa = $136;
+    var $j_4_lcssa = $141;
+    var $rh26_0_lcssa = $139;
+    label = 30;
+    break;
+   case 30:
+    var $rh26_0_lcssa;
+    var $j_4_lcssa;
+    var $en03_0_lcssa;
+    var $143 = $en03_0_lcssa > $126;
+    var $144 = $143 & 1;
+    var $ath_over_4 = $144 + $ath_over_2143 | 0;
+    var $145 = $en03_0_lcssa < $126;
+    if ($145) {
+      var $rh37_0 = $en03_0_lcssa;
+      label = 32;
+      break;
+    } else {
+      label = 31;
+      break;
+    }
+   case 31:
+    var $147 = $rh26_0_lcssa < $126;
+    var $_rh26_0 = $147 ? $126 : $rh26_0_lcssa;
+    var $rh37_0 = $_rh26_0;
+    label = 32;
+    break;
+   case 32:
+    var $rh37_0;
+    var $149 = $ratio + 332 + $sfb_0146 * 12 | 0;
+    var $150 = HEAPF32[$149 >> 2];
+    var $151 = $150 > 9.999999960041972e-13;
+    if ($151) {
+      label = 33;
+      break;
+    } else {
+      var $xmin4_0 = $rh37_0;
+      label = 35;
+      break;
+    }
+   case 33:
+    var $153 = $ratio + 88 + $sfb_0146 * 12 | 0;
+    var $154 = HEAPF32[$153 >> 2];
+    var $155 = $en03_0_lcssa * $154;
+    var $156 = $155 / $150;
+    var $157 = HEAPF32[$124 >> 2];
+    var $158 = $156 * $157;
+    var $159 = $rh37_0 < $158;
+    if ($159) {
+      label = 34;
+      break;
+    } else {
+      var $xmin4_0 = $rh37_0;
+      label = 35;
+      break;
+    }
+   case 34:
+    var $xmin4_0 = $158;
+    label = 35;
+    break;
+   case 35:
+    var $xmin4_0;
+    var $162 = $xmin4_0 > 2.220446049250313e-16;
+    var $163 = $162 ? $xmin4_0 : 2.220446049250313e-16;
+    var $164 = $163 + 9.9999998245167e-15;
+    var $165 = $en03_0_lcssa > $164;
+    var $166 = $165 & 1;
+    var $167 = $gsfb_1145 + ($cod_info + 5212) | 0;
+    HEAP8[$167] = $166;
+    var $168 = $_1147 + 4 | 0;
+    HEAPF32[$_1147 >> 2] = $163;
+    if ($131) {
+      var $l2_0133_1 = 0;
+      var $en03_0134_1 = 0;
+      var $j_4135_1 = $j_4_lcssa;
+      var $rh26_0136_1 = 2.220446049250313e-16;
+      label = 42;
+      break;
+    } else {
+      var $en03_0_lcssa_1 = 0;
+      var $j_4_lcssa_1 = $j_4_lcssa;
+      var $rh26_0_lcssa_1 = 2.220446049250313e-16;
+      label = 44;
+      break;
+    }
+   case 36:
+    var $170 = $indvars_iv - 8 | 0;
+    var $171 = HEAPF32[$170 >> 2];
+    var $172 = $indvars_iv - 4 | 0;
+    var $173 = HEAPF32[$172 >> 2];
+    var $174 = $171 > $173;
+    if ($174) {
+      label = 37;
+      break;
+    } else {
+      label = 38;
+      break;
+    }
+   case 37:
+    var $176 = $171 - $173;
+    var $177 = HEAP32[$115 >> 2];
+    var $178 = $177 + 6496 | 0;
+    var $179 = HEAPF32[$178 >> 2];
+    var $180 = $176 * $179;
+    var $181 = $173 + $180;
+    HEAPF32[$172 >> 2] = $181;
+    label = 38;
+    break;
+   case 38:
+    var $183 = HEAPF32[$172 >> 2];
+    var $184 = HEAPF32[$indvars_iv >> 2];
+    var $185 = $183 > $184;
+    if ($185) {
+      label = 39;
+      break;
+    } else {
+      label = 40;
+      break;
+    }
+   case 39:
+    var $187 = $183 - $184;
+    var $188 = HEAP32[$116 >> 2];
+    var $189 = $188 + 6496 | 0;
+    var $190 = HEAPF32[$189 >> 2];
+    var $191 = $187 * $190;
+    var $192 = $184 + $191;
+    HEAPF32[$indvars_iv >> 2] = $192;
+    label = 40;
+    break;
+   case 40:
+    var $194 = $sfb_0146 + 1 | 0;
+    var $195 = $gsfb_1145 + 3 | 0;
+    var $196 = HEAP32[$106 >> 2];
+    var $197 = ($195 | 0) < ($196 | 0);
+    var $scevgep175 = $indvars_iv + 12 | 0;
+    if ($197) {
+      var $ath_over_2143 = $ath_over_4_2;
+      var $j_2144 = $j_4_lcssa_2;
+      var $gsfb_1145 = $195;
+      var $sfb_0146 = $194;
+      var $_1147 = $scevgep;
+      var $indvars_iv = $scevgep175;
+      label = 27;
+      break;
+    } else {
+      var $ath_over_2_lcssa = $ath_over_4_2;
+      label = 41;
+      break;
+    }
+   case 41:
+    var $ath_over_2_lcssa;
+    return $ath_over_2_lcssa;
+   case 42:
+    var $rh26_0136_1;
+    var $j_4135_1;
+    var $en03_0134_1;
+    var $l2_0133_1;
+    var $198 = $j_4135_1 + 1 | 0;
+    var $199 = $cod_info + ($j_4135_1 << 2) | 0;
+    var $200 = HEAPF32[$199 >> 2];
+    var $201 = $200 * $200;
+    var $202 = $en03_0134_1 + $201;
+    var $203 = $201 < $130;
+    var $204 = $203 ? $201 : $130;
+    var $205 = $rh26_0136_1 + $204;
+    var $206 = $l2_0133_1 + 1 | 0;
+    var $exitcond_1 = ($206 | 0) == ($128 | 0);
+    if ($exitcond_1) {
+      label = 43;
+      break;
+    } else {
+      var $l2_0133_1 = $206;
+      var $en03_0134_1 = $202;
+      var $j_4135_1 = $198;
+      var $rh26_0136_1 = $205;
+      label = 42;
+      break;
+    }
+   case 43:
+    var $207 = $128 + $j_4_lcssa | 0;
+    var $en03_0_lcssa_1 = $202;
+    var $j_4_lcssa_1 = $207;
+    var $rh26_0_lcssa_1 = $205;
+    label = 44;
+    break;
+   case 44:
+    var $rh26_0_lcssa_1;
+    var $j_4_lcssa_1;
+    var $en03_0_lcssa_1;
+    var $209 = $en03_0_lcssa_1 > $126;
+    var $210 = $209 & 1;
+    var $ath_over_4_1 = $210 + $ath_over_4 | 0;
+    var $211 = $en03_0_lcssa_1 < $126;
+    if ($211) {
+      var $rh37_0_1 = $en03_0_lcssa_1;
+      label = 46;
+      break;
+    } else {
+      label = 45;
+      break;
+    }
+   case 45:
+    var $213 = $rh26_0_lcssa_1 < $126;
+    var $_rh26_0_1 = $213 ? $126 : $rh26_0_lcssa_1;
+    var $rh37_0_1 = $_rh26_0_1;
+    label = 46;
+    break;
+   case 46:
+    var $rh37_0_1;
+    var $215 = $ratio + 332 + $sfb_0146 * 12 + 4 | 0;
+    var $216 = HEAPF32[$215 >> 2];
+    var $217 = $216 > 9.999999960041972e-13;
+    if ($217) {
+      label = 47;
+      break;
+    } else {
+      var $xmin4_0_1 = $rh37_0_1;
+      label = 49;
+      break;
+    }
+   case 47:
+    var $219 = $ratio + 88 + $sfb_0146 * 12 + 4 | 0;
+    var $220 = HEAPF32[$219 >> 2];
+    var $221 = $en03_0_lcssa_1 * $220;
+    var $222 = $221 / $216;
+    var $223 = HEAPF32[$124 >> 2];
+    var $224 = $222 * $223;
+    var $225 = $rh37_0_1 < $224;
+    if ($225) {
+      label = 48;
+      break;
+    } else {
+      var $xmin4_0_1 = $rh37_0_1;
+      label = 49;
+      break;
+    }
+   case 48:
+    var $xmin4_0_1 = $224;
+    label = 49;
+    break;
+   case 49:
+    var $xmin4_0_1;
+    var $228 = $xmin4_0_1 > 2.220446049250313e-16;
+    var $229 = $228 ? $xmin4_0_1 : 2.220446049250313e-16;
+    var $230 = $229 + 9.9999998245167e-15;
+    var $231 = $en03_0_lcssa_1 > $230;
+    var $232 = $231 & 1;
+    var $233 = $gsfb_1145 + 1 | 0;
+    var $234 = $233 + ($cod_info + 5212) | 0;
+    HEAP8[$234] = $232;
+    var $235 = $_1147 + 8 | 0;
+    HEAPF32[$168 >> 2] = $229;
+    if ($131) {
+      var $l2_0133_2 = 0;
+      var $en03_0134_2 = 0;
+      var $j_4135_2 = $j_4_lcssa_1;
+      var $rh26_0136_2 = 2.220446049250313e-16;
+      label = 50;
+      break;
+    } else {
+      var $en03_0_lcssa_2 = 0;
+      var $j_4_lcssa_2 = $j_4_lcssa_1;
+      var $rh26_0_lcssa_2 = 2.220446049250313e-16;
+      label = 52;
+      break;
+    }
+   case 50:
+    var $rh26_0136_2;
+    var $j_4135_2;
+    var $en03_0134_2;
+    var $l2_0133_2;
+    var $236 = $j_4135_2 + 1 | 0;
+    var $237 = $cod_info + ($j_4135_2 << 2) | 0;
+    var $238 = HEAPF32[$237 >> 2];
+    var $239 = $238 * $238;
+    var $240 = $en03_0134_2 + $239;
+    var $241 = $239 < $130;
+    var $242 = $241 ? $239 : $130;
+    var $243 = $rh26_0136_2 + $242;
+    var $244 = $l2_0133_2 + 1 | 0;
+    var $exitcond_2 = ($244 | 0) == ($128 | 0);
+    if ($exitcond_2) {
+      label = 51;
+      break;
+    } else {
+      var $l2_0133_2 = $244;
+      var $en03_0134_2 = $240;
+      var $j_4135_2 = $236;
+      var $rh26_0136_2 = $243;
+      label = 50;
+      break;
+    }
+   case 51:
+    var $245 = $128 + $j_4_lcssa_1 | 0;
+    var $en03_0_lcssa_2 = $240;
+    var $j_4_lcssa_2 = $245;
+    var $rh26_0_lcssa_2 = $243;
+    label = 52;
+    break;
+   case 52:
+    var $rh26_0_lcssa_2;
+    var $j_4_lcssa_2;
+    var $en03_0_lcssa_2;
+    var $247 = $en03_0_lcssa_2 > $126;
+    var $248 = $247 & 1;
+    var $ath_over_4_2 = $248 + $ath_over_4_1 | 0;
+    var $249 = $en03_0_lcssa_2 < $126;
+    if ($249) {
+      var $rh37_0_2 = $en03_0_lcssa_2;
+      label = 54;
+      break;
+    } else {
+      label = 53;
+      break;
+    }
+   case 53:
+    var $251 = $rh26_0_lcssa_2 < $126;
+    var $_rh26_0_2 = $251 ? $126 : $rh26_0_lcssa_2;
+    var $rh37_0_2 = $_rh26_0_2;
+    label = 54;
+    break;
+   case 54:
+    var $rh37_0_2;
+    var $253 = $ratio + 332 + $sfb_0146 * 12 + 8 | 0;
+    var $254 = HEAPF32[$253 >> 2];
+    var $255 = $254 > 9.999999960041972e-13;
+    if ($255) {
+      label = 55;
+      break;
+    } else {
+      var $xmin4_0_2 = $rh37_0_2;
+      label = 57;
+      break;
+    }
+   case 55:
+    var $257 = $ratio + 88 + $sfb_0146 * 12 + 8 | 0;
+    var $258 = HEAPF32[$257 >> 2];
+    var $259 = $en03_0_lcssa_2 * $258;
+    var $260 = $259 / $254;
+    var $261 = HEAPF32[$124 >> 2];
+    var $262 = $260 * $261;
+    var $263 = $rh37_0_2 < $262;
+    if ($263) {
+      label = 56;
+      break;
+    } else {
+      var $xmin4_0_2 = $rh37_0_2;
+      label = 57;
+      break;
+    }
+   case 56:
+    var $xmin4_0_2 = $262;
+    label = 57;
+    break;
+   case 57:
+    var $xmin4_0_2;
+    var $266 = $xmin4_0_2 > 2.220446049250313e-16;
+    var $267 = $266 ? $xmin4_0_2 : 2.220446049250313e-16;
+    var $268 = $267 + 9.9999998245167e-15;
+    var $269 = $en03_0_lcssa_2 > $268;
+    var $270 = $269 & 1;
+    var $271 = $gsfb_1145 + 2 | 0;
+    var $272 = $271 + ($cod_info + 5212) | 0;
+    HEAP8[$272] = $270;
+    HEAPF32[$235 >> 2] = $267;
+    var $scevgep = $_1147 + 12 | 0;
+    var $273 = HEAP32[$114 >> 2];
+    var $274 = ($273 | 0) == 0;
+    if ($274) {
+      label = 40;
+      break;
+    } else {
+      label = 36;
+      break;
+    }
+  }
+}
+_calc_xmin["X"] = 1;
+function _calc_noise($cod_info, $l3_xmin, $distort, $res, $prev_noise) {
+  var label = 0;
+  var __stackBase__ = STACKTOP;
+  STACKTOP = STACKTOP + 4 | 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $j = __stackBase__;
+    HEAP32[$j >> 2] = 0;
+    var $1 = $res + 16 | 0;
+    HEAP32[$1 >> 2] = 0;
+    var $2 = $cod_info + 4864 | 0;
+    var $3 = HEAP32[$2 >> 2];
+    var $4 = ($3 | 0) > 0;
+    if ($4) {
+      label = 3;
+      break;
+    } else {
+      var $over_noise_db_0_lcssa = 0;
+      var $tot_noise_db_0_lcssa = 0;
+      var $max_noise_0_lcssa = -20;
+      var $over_0_lcssa = 0;
+      label = 20;
+      break;
+    }
+   case 3:
+    var $5 = $cod_info + 4608 | 0;
+    var $6 = $cod_info + 4780 | 0;
+    var $7 = $cod_info + 4832 | 0;
+    var $8 = $cod_info + 4836 | 0;
+    var $9 = ($prev_noise | 0) != 0;
+    var $10 = $prev_noise | 0;
+    var $11 = $cod_info + 5208 | 0;
+    var $over_noise_db_071 = 0;
+    var $tot_noise_db_072 = 0;
+    var $max_noise_073 = -20;
+    var $scalefac_074 = $5;
+    var $over_075 = 0;
+    var $sfb_076 = 0;
+    var $_06779 = $distort;
+    var $_080 = $l3_xmin;
+    label = 4;
+    break;
+   case 4:
+    var $_080;
+    var $_06779;
+    var $sfb_076;
+    var $over_075;
+    var $scalefac_074;
+    var $max_noise_073;
+    var $tot_noise_db_072;
+    var $over_noise_db_071;
+    var $13 = HEAP32[$6 >> 2];
+    var $14 = $scalefac_074 + 4 | 0;
+    var $15 = HEAP32[$scalefac_074 >> 2];
+    var $16 = HEAP32[$7 >> 2];
+    var $17 = ($16 | 0) == 0;
+    if ($17) {
+      var $22 = 0;
+      label = 6;
+      break;
+    } else {
+      label = 5;
+      break;
+    }
+   case 5:
+    var $19 = 5257016 + ($sfb_076 << 2) | 0;
+    var $20 = HEAP32[$19 >> 2];
+    var $22 = $20;
+    label = 6;
+    break;
+   case 6:
+    var $22;
+    var $23 = $22 + $15 | 0;
+    var $24 = HEAP32[$8 >> 2];
+    var $25 = $24 + 1 | 0;
+    var $26 = $23 << $25;
+    var $27 = $13 - $26 | 0;
+    var $28 = $cod_info + 5028 + ($sfb_076 << 2) | 0;
+    var $29 = HEAP32[$28 >> 2];
+    var $30 = $cod_info + 4808 + ($29 << 2) | 0;
+    var $31 = HEAP32[$30 >> 2];
+    var $32 = $31 << 3;
+    var $33 = $27 - $32 | 0;
+    var $34 = $_080 + 4 | 0;
+    var $35 = HEAPF32[$_080 >> 2];
+    var $36 = 1 / $35;
+    if ($9) {
+      label = 7;
+      break;
+    } else {
+      label = 9;
+      break;
+    }
+   case 7:
+    var $38 = $prev_noise + 8 + ($sfb_076 << 2) | 0;
+    var $39 = HEAP32[$38 >> 2];
+    var $40 = ($39 | 0) == ($33 | 0);
+    if ($40) {
+      label = 8;
+      break;
+    } else {
+      label = 9;
+      break;
+    }
+   case 8:
+    var $42 = $cod_info + 4872 + ($sfb_076 << 2) | 0;
+    var $43 = HEAP32[$42 >> 2];
+    var $44 = HEAP32[$j >> 2];
+    var $45 = $44 + $43 | 0;
+    HEAP32[$j >> 2] = $45;
+    var $46 = $prev_noise + 164 + ($sfb_076 << 2) | 0;
+    var $47 = HEAPF32[$46 >> 2];
+    var $48 = $36 * $47;
+    var $49 = $prev_noise + 320 + ($sfb_076 << 2) | 0;
+    var $50 = HEAPF32[$49 >> 2];
+    var $noise_0_ph = $50;
+    var $distort__0_ph = $48;
+    label = 16;
+    break;
+   case 9:
+    var $52 = $33 + 116 | 0;
+    var $53 = 5289936 + ($52 << 2) | 0;
+    var $54 = HEAPF32[$53 >> 2];
+    var $55 = $cod_info + 4872 + ($sfb_076 << 2) | 0;
+    var $56 = HEAP32[$55 >> 2];
+    var $57 = $56 >> 1;
+    var $58 = HEAP32[$j >> 2];
+    var $59 = $58 + $56 | 0;
+    var $60 = HEAP32[$11 >> 2];
+    var $61 = ($59 | 0) > ($60 | 0);
+    if ($61) {
+      label = 10;
+      break;
+    } else {
+      var $l_0 = $57;
+      label = 11;
+      break;
+    }
+   case 10:
+    var $63 = $60 - $58 | 0;
+    var $64 = $63 + 1 | 0;
+    var $65 = ($64 | 0) > 0;
+    var $66 = $64 >> 1;
+    var $_68 = $65 ? $66 : 0;
+    var $l_0 = $_68;
+    label = 11;
+    break;
+   case 11:
+    var $l_0;
+    var $68 = _calc_noise_core_c($cod_info, $j, $l_0, $54);
+    if ($9) {
+      label = 12;
+      break;
+    } else {
+      label = 13;
+      break;
+    }
+   case 12:
+    var $70 = $prev_noise + 8 + ($sfb_076 << 2) | 0;
+    HEAP32[$70 >> 2] = $33;
+    var $71 = $prev_noise + 164 + ($sfb_076 << 2) | 0;
+    HEAPF32[$71 >> 2] = $68;
+    label = 13;
+    break;
+   case 13:
+    var $73 = $36 * $68;
+    var $74 = $73 > 9.999999682655225e-21;
+    var $75 = $74 ? $73 : 9.999999682655225e-21;
+    var $76 = _fast_log2($75);
+    var $77 = $76;
+    var $78 = $77 * .30102999566398114;
+    var $79 = $78;
+    if ($9) {
+      label = 14;
+      break;
+    } else {
+      label = 15;
+      break;
+    }
+   case 14:
+    var $81 = $prev_noise + 320 + ($sfb_076 << 2) | 0;
+    HEAPF32[$81 >> 2] = $79;
+    var $noise_0_ph = $79;
+    var $distort__0_ph = $73;
+    label = 16;
+    break;
+   case 15:
+    HEAPF32[$_06779 >> 2] = $73;
+    var $noise_069 = $79;
+    label = 17;
+    break;
+   case 16:
+    var $distort__0_ph;
+    var $noise_0_ph;
+    HEAPF32[$_06779 >> 2] = $distort__0_ph;
+    var $84 = HEAP32[$6 >> 2];
+    HEAP32[$10 >> 2] = $84;
+    var $noise_069 = $noise_0_ph;
+    label = 17;
+    break;
+   case 17:
+    var $noise_069;
+    var $86 = $_06779 + 4 | 0;
+    var $87 = $tot_noise_db_072 + $noise_069;
+    var $88 = $noise_069 > 0;
+    if ($88) {
+      label = 18;
+      break;
+    } else {
+      var $over_1 = $over_075;
+      var $over_noise_db_1 = $over_noise_db_071;
+      label = 19;
+      break;
+    }
+   case 18:
+    var $90 = $noise_069 * 10;
+    var $91 = $90;
+    var $92 = $91 + .5;
+    var $93 = $92 & -1;
+    var $94 = ($93 | 0) > 1;
+    var $_ = $94 ? $93 : 1;
+    var $95 = $_ * $_ & -1;
+    var $96 = HEAP32[$1 >> 2];
+    var $97 = $96 + $95 | 0;
+    HEAP32[$1 >> 2] = $97;
+    var $98 = $over_075 + 1 | 0;
+    var $99 = $over_noise_db_071 + $noise_069;
+    var $over_1 = $98;
+    var $over_noise_db_1 = $99;
+    label = 19;
+    break;
+   case 19:
+    var $over_noise_db_1;
+    var $over_1;
+    var $101 = $max_noise_073 > $noise_069;
+    var $102 = $101 ? $max_noise_073 : $noise_069;
+    var $103 = $sfb_076 + 1 | 0;
+    var $104 = HEAP32[$2 >> 2];
+    var $105 = ($103 | 0) < ($104 | 0);
+    if ($105) {
+      var $over_noise_db_071 = $over_noise_db_1;
+      var $tot_noise_db_072 = $87;
+      var $max_noise_073 = $102;
+      var $scalefac_074 = $14;
+      var $over_075 = $over_1;
+      var $sfb_076 = $103;
+      var $_06779 = $86;
+      var $_080 = $34;
+      label = 4;
+      break;
+    } else {
+      var $over_noise_db_0_lcssa = $over_noise_db_1;
+      var $tot_noise_db_0_lcssa = $87;
+      var $max_noise_0_lcssa = $102;
+      var $over_0_lcssa = $over_1;
+      label = 20;
+      break;
+    }
+   case 20:
+    var $over_0_lcssa;
+    var $max_noise_0_lcssa;
+    var $tot_noise_db_0_lcssa;
+    var $over_noise_db_0_lcssa;
+    var $106 = $res + 12 | 0;
+    HEAP32[$106 >> 2] = $over_0_lcssa;
+    var $107 = $res + 4 | 0;
+    HEAPF32[$107 >> 2] = $tot_noise_db_0_lcssa;
+    var $108 = $res | 0;
+    HEAPF32[$108 >> 2] = $over_noise_db_0_lcssa;
+    var $109 = $res + 8 | 0;
+    HEAPF32[$109 >> 2] = $max_noise_0_lcssa;
+    STACKTOP = __stackBase__;
+    return $over_0_lcssa;
+  }
+}
+_calc_noise["X"] = 1;
+function _calc_noise_core_c($cod_info, $startline, $l, $step) {
+  var label = 0;
+  var __stackBase__ = STACKTOP;
+  STACKTOP = STACKTOP + 8 | 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $ix01 = __stackBase__;
+    var $1 = HEAP32[$startline >> 2];
+    var $2 = $cod_info + 4776 | 0;
+    var $3 = HEAP32[$2 >> 2];
+    var $4 = ($1 | 0) > ($3 | 0);
+    if ($4) {
+      label = 3;
+      break;
+    } else {
+      label = 6;
+      break;
+    }
+   case 3:
+    var $5 = ($l | 0) == 0;
+    if ($5) {
+      var $noise_3 = 0;
+      var $j_3 = $1;
+      label = 16;
+      break;
+    } else {
+      label = 4;
+      break;
+    }
+   case 4:
+    var $6 = $l << 1;
+    var $j_056 = $1;
+    var $noise_057 = 0;
+    var $_058 = $l;
+    label = 5;
+    break;
+   case 5:
+    var $_058;
+    var $noise_057;
+    var $j_056;
+    var $8 = $_058 - 1 | 0;
+    var $9 = $cod_info + ($j_056 << 2) | 0;
+    var $10 = HEAPF32[$9 >> 2];
+    var $11 = $j_056 + 1 | 0;
+    var $12 = $10 * $10;
+    var $13 = $noise_057 + $12;
+    var $14 = $cod_info + ($11 << 2) | 0;
+    var $15 = HEAPF32[$14 >> 2];
+    var $16 = $j_056 + 2 | 0;
+    var $17 = $15 * $15;
+    var $18 = $13 + $17;
+    var $19 = ($8 | 0) == 0;
+    if ($19) {
+      label = 13;
+      break;
+    } else {
+      var $j_056 = $16;
+      var $noise_057 = $18;
+      var $_058 = $8;
+      label = 5;
+      break;
+    }
+   case 6:
+    var $21 = $cod_info + 4772 | 0;
+    var $22 = HEAP32[$21 >> 2];
+    var $23 = ($1 | 0) > ($22 | 0);
+    if ($23) {
+      label = 9;
+      break;
+    } else {
+      label = 7;
+      break;
+    }
+   case 7:
+    var $24 = ($l | 0) == 0;
+    if ($24) {
+      var $noise_3 = 0;
+      var $j_3 = $1;
+      label = 16;
+      break;
+    } else {
+      label = 8;
+      break;
+    }
+   case 8:
+    var $25 = $l << 1;
+    var $j_269 = $1;
+    var $noise_270 = 0;
+    var $_271 = $l;
+    label = 12;
+    break;
+   case 9:
+    var $27 = $ix01 | 0;
+    HEAPF32[$27 >> 2] = 0;
+    var $28 = $ix01 + 4 | 0;
+    HEAPF32[$28 >> 2] = $step;
+    var $29 = ($l | 0) == 0;
+    if ($29) {
+      var $noise_3 = 0;
+      var $j_3 = $1;
+      label = 16;
+      break;
+    } else {
+      label = 10;
+      break;
+    }
+   case 10:
+    var $30 = $l << 1;
+    var $j_161 = $1;
+    var $noise_162 = 0;
+    var $_163 = $l;
+    label = 11;
+    break;
+   case 11:
+    var $_163;
+    var $noise_162;
+    var $j_161;
+    var $32 = $_163 - 1 | 0;
+    var $33 = $cod_info + ($j_161 << 2) | 0;
+    var $34 = HEAPF32[$33 >> 2];
+    var $fabsf = Math.abs($34);
+    var $35 = $cod_info + 2304 + ($j_161 << 2) | 0;
+    var $36 = HEAP32[$35 >> 2];
+    var $37 = $ix01 + ($36 << 2) | 0;
+    var $38 = HEAPF32[$37 >> 2];
+    var $39 = $fabsf - $38;
+    var $40 = $j_161 + 1 | 0;
+    var $41 = $39 * $39;
+    var $42 = $noise_162 + $41;
+    var $43 = $cod_info + ($40 << 2) | 0;
+    var $44 = HEAPF32[$43 >> 2];
+    var $fabsf53 = Math.abs($44);
+    var $45 = $cod_info + 2304 + ($40 << 2) | 0;
+    var $46 = HEAP32[$45 >> 2];
+    var $47 = $ix01 + ($46 << 2) | 0;
+    var $48 = HEAPF32[$47 >> 2];
+    var $49 = $fabsf53 - $48;
+    var $50 = $j_161 + 2 | 0;
+    var $51 = $49 * $49;
+    var $52 = $42 + $51;
+    var $53 = ($32 | 0) == 0;
+    if ($53) {
+      label = 14;
+      break;
+    } else {
+      var $j_161 = $50;
+      var $noise_162 = $52;
+      var $_163 = $32;
+      label = 11;
+      break;
+    }
+   case 12:
+    var $_271;
+    var $noise_270;
+    var $j_269;
+    var $55 = $_271 - 1 | 0;
+    var $56 = $cod_info + ($j_269 << 2) | 0;
+    var $57 = HEAPF32[$56 >> 2];
+    var $fabsf54 = Math.abs($57);
+    var $58 = $cod_info + 2304 + ($j_269 << 2) | 0;
+    var $59 = HEAP32[$58 >> 2];
+    var $60 = 5257104 + ($59 << 2) | 0;
+    var $61 = HEAPF32[$60 >> 2];
+    var $62 = $61 * $step;
+    var $63 = $fabsf54 - $62;
+    var $64 = $j_269 + 1 | 0;
+    var $65 = $63 * $63;
+    var $66 = $noise_270 + $65;
+    var $67 = $cod_info + ($64 << 2) | 0;
+    var $68 = HEAPF32[$67 >> 2];
+    var $fabsf55 = Math.abs($68);
+    var $69 = $cod_info + 2304 + ($64 << 2) | 0;
+    var $70 = HEAP32[$69 >> 2];
+    var $71 = 5257104 + ($70 << 2) | 0;
+    var $72 = HEAPF32[$71 >> 2];
+    var $73 = $72 * $step;
+    var $74 = $fabsf55 - $73;
+    var $75 = $j_269 + 2 | 0;
+    var $76 = $74 * $74;
+    var $77 = $66 + $76;
+    var $78 = ($55 | 0) == 0;
+    if ($78) {
+      label = 15;
+      break;
+    } else {
+      var $j_269 = $75;
+      var $noise_270 = $77;
+      var $_271 = $55;
+      label = 12;
+      break;
+    }
+   case 13:
+    var $79 = $1 + $6 | 0;
+    var $noise_3 = $18;
+    var $j_3 = $79;
+    label = 16;
+    break;
+   case 14:
+    var $80 = $1 + $30 | 0;
+    var $noise_3 = $52;
+    var $j_3 = $80;
+    label = 16;
+    break;
+   case 15:
+    var $81 = $1 + $25 | 0;
+    var $noise_3 = $77;
+    var $j_3 = $81;
+    label = 16;
+    break;
+   case 16:
+    var $j_3;
+    var $noise_3;
+    HEAP32[$startline >> 2] = $j_3;
+    STACKTOP = __stackBase__;
+    return $noise_3;
+  }
+}
+_calc_noise_core_c["X"] = 1;
+function _lame_set_ogg($gfp, $ogg) {
+  return -1;
+}
+function _lame_get_ogg($gfp) {
+  return 0;
+}
+function _ResvMaxBits($gfc, $mean_bits, $targ_bits, $extra_bits, $cbr) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = $gfc + 52136 | 0;
+    var $2 = HEAP32[$1 >> 2];
+    var $3 = $gfc + 52140 | 0;
+    var $4 = HEAP32[$3 >> 2];
+    var $5 = ($cbr | 0) == 0;
+    var $6 = $5 ? 0 : $mean_bits;
+    var $ResvSize_0 = $2 + $6 | 0;
+    var $7 = $gfc + 85092 | 0;
+    var $8 = HEAP32[$7 >> 2];
+    var $9 = $8 & 1;
+    var $10 = ($9 | 0) == 0;
+    if ($10) {
+      var $ResvMax_0 = $4;
+      label = 4;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 3:
+    var $12 = $4 | 0;
+    var $13 = $12 * .9;
+    var $14 = $13 & -1;
+    var $ResvMax_0 = $14;
+    label = 4;
+    break;
+   case 4:
+    var $ResvMax_0;
+    var $16 = $ResvSize_0 * 10 & -1;
+    var $17 = $ResvMax_0 * 9 & -1;
+    var $18 = ($16 | 0) > ($17 | 0);
+    if ($18) {
+      label = 5;
+      break;
+    } else {
+      label = 6;
+      break;
+    }
+   case 5:
+    var $20 = ($17 | 0) / 10 & -1;
+    var $21 = $ResvSize_0 - $20 | 0;
+    var $22 = $21 + $mean_bits | 0;
+    var $23 = HEAP32[$7 >> 2];
+    var $24 = $23 | 128;
+    HEAP32[$7 >> 2] = $24;
+    var $targBits_0 = $22;
+    var $add_bits_0 = $21;
+    label = 9;
+    break;
+   case 6:
+    var $26 = HEAP32[$7 >> 2];
+    var $27 = $26 & 127;
+    HEAP32[$7 >> 2] = $27;
+    var $28 = $gfc + 144 | 0;
+    var $29 = HEAP32[$28 >> 2];
+    var $30 = ($29 | 0) == 0;
+    if ($30) {
+      label = 7;
+      break;
+    } else {
+      var $targBits_0 = $mean_bits;
+      var $add_bits_0 = 0;
+      label = 9;
+      break;
+    }
+   case 7:
+    var $32 = $26 & 1;
+    var $33 = ($32 | 0) == 0;
+    if ($33) {
+      label = 8;
+      break;
+    } else {
+      var $targBits_0 = $mean_bits;
+      var $add_bits_0 = 0;
+      label = 9;
+      break;
+    }
+   case 8:
+    var $35 = $mean_bits | 0;
+    var $36 = $35 * .1;
+    var $37 = $35 - $36;
+    var $38 = $37 & -1;
+    var $targBits_0 = $38;
+    var $add_bits_0 = 0;
+    label = 9;
+    break;
+   case 9:
+    var $add_bits_0;
+    var $targBits_0;
+    var $40 = HEAP32[$3 >> 2];
+    var $41 = $40 * 6 & -1;
+    var $42 = ($41 | 0) / 10 & -1;
+    var $43 = ($ResvSize_0 | 0) < ($42 | 0);
+    var $ResvSize_0_ = $43 ? $ResvSize_0 : $42;
+    var $44 = $ResvSize_0_ - $add_bits_0 | 0;
+    var $45 = ($44 | 0) < 0;
+    var $extraBits_0 = $45 ? 0 : $44;
+    HEAP32[$targ_bits >> 2] = $targBits_0;
+    HEAP32[$extra_bits >> 2] = $extraBits_0;
+    return;
+  }
+}
+_ResvMaxBits["X"] = 1;
+function _ResvAdjust($gfc, $gi) {
+  var $5 = $gfc + 52136 | 0;
+  HEAP32[$5 >> 2] = HEAP32[$5 >> 2] - (HEAP32[$gi + 4844 >> 2] + HEAP32[$gi + 4768 >> 2]) | 0;
+  return;
+}
+function _ResvFrameEnd($gfc, $mean_bits) {
+  var $4 = $gfc + 52136 | 0;
+  HEAP32[$4 >> 2] = HEAP32[$4 >> 2] + (HEAP32[$gfc + 76 >> 2] * $mean_bits & -1) | 0;
+  var $7 = $gfc + 21324 | 0;
+  HEAP32[$7 >> 2] = 0;
+  var $9 = HEAP32[$4 >> 2];
+  var $10 = ($9 | 0) % 8;
+  var $14 = $9 - $10 - HEAP32[$gfc + 52140 >> 2] | 0;
+  var $stuffingBits_1 = (($14 | 0) > 0 ? $14 : 0) + $10 | 0;
+  var $17 = $gfc + 21312 | 0;
+  var $19 = HEAP32[$17 >> 2] << 3;
+  var $21 = ((($19 | 0) < ($stuffingBits_1 | 0) ? $19 : $stuffingBits_1) | 0) / 8 & -1;
+  var $22 = $21 << 3;
+  HEAP32[$gfc + 21320 >> 2] = $22;
+  var $23 = $stuffingBits_1 - $22 | 0;
+  HEAP32[$4 >> 2] = HEAP32[$4 >> 2] - $22 | 0;
+  HEAP32[$17 >> 2] = HEAP32[$17 >> 2] - $21 | 0;
+  HEAP32[$7 >> 2] = HEAP32[$7 >> 2] + $23 | 0;
+  HEAP32[$4 >> 2] = HEAP32[$4 >> 2] - $23 | 0;
+  return;
+}
+function _set_frame_pinfo($gfc, $ratio) {
+  var label = 0;
+  var __stackBase__ = STACKTOP;
+  STACKTOP = STACKTOP + 156 | 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $scalefac_sav = __stackBase__;
+    var $1 = $gfc + 76 | 0;
+    var $2 = HEAP32[$1 >> 2];
+    var $3 = ($2 | 0) > 0;
+    if ($3) {
+      label = 3;
+      break;
+    } else {
+      label = 13;
+      break;
+    }
+   case 3:
+    var $4 = $gfc + 72 | 0;
+    var $5 = $scalefac_sav;
+    var $gr_031 = 0;
+    label = 4;
+    break;
+   case 4:
+    var $gr_031;
+    var $6 = HEAP32[$4 >> 2];
+    var $7 = ($6 | 0) > 0;
+    if ($7) {
+      label = 5;
+      break;
+    } else {
+      label = 12;
+      break;
+    }
+   case 5:
+    var $8 = ($gr_031 | 0) == 1;
+    var $ch_027 = 0;
+    label = 6;
+    break;
+   case 6:
+    var $ch_027;
+    var $10 = $gfc + 304 + $gr_031 * 10504 + $ch_027 * 5252 | 0;
+    var $11 = $gfc + 304 + $gr_031 * 10504 + $ch_027 * 5252 + 4608 | 0;
+    var $12 = $11;
+    for (var $$src = $12 >> 2, $$dest = $5 >> 2, $$stop = $$src + 39; $$src < $$stop; $$src++, $$dest++) {
+      HEAP32[$$dest] = HEAP32[$$src];
+    }
+    if ($8) {
+      label = 7;
+      break;
+    } else {
+      label = 11;
+      break;
+    }
+   case 7:
+    var $13 = $gfc + 304 + $gr_031 * 10504 + $ch_027 * 5252 + 4848 | 0;
+    var $14 = HEAP32[$13 >> 2];
+    var $15 = ($14 | 0) > 0;
+    if ($15) {
+      var $sfb_025 = 0;
+      label = 8;
+      break;
+    } else {
+      label = 11;
+      break;
+    }
+   case 8:
+    var $sfb_025;
+    var $16 = $gfc + 304 + $gr_031 * 10504 + $ch_027 * 5252 + 4608 + ($sfb_025 << 2) | 0;
+    var $17 = HEAP32[$16 >> 2];
+    var $18 = ($17 | 0) < 0;
+    if ($18) {
+      label = 9;
+      break;
+    } else {
+      label = 10;
+      break;
+    }
+   case 9:
+    var $20 = $gfc + 304 + $ch_027 * 5252 + 4608 + ($sfb_025 << 2) | 0;
+    var $21 = HEAP32[$20 >> 2];
+    HEAP32[$16 >> 2] = $21;
+    label = 10;
+    break;
+   case 10:
+    var $23 = $sfb_025 + 1 | 0;
+    var $24 = HEAP32[$13 >> 2];
+    var $25 = ($23 | 0) < ($24 | 0);
+    if ($25) {
+      var $sfb_025 = $23;
+      label = 8;
+      break;
+    } else {
+      label = 11;
+      break;
+    }
+   case 11:
+    var $26 = $ratio + $gr_031 * 976 + $ch_027 * 488 | 0;
+    _set_pinfo($gfc, $10, $26, $gr_031, $ch_027);
+    for (var $$src = $5 >> 2, $$dest = $12 >> 2, $$stop = $$src + 39; $$src < $$stop; $$src++, $$dest++) {
+      HEAP32[$$dest] = HEAP32[$$src];
+    }
+    var $27 = $ch_027 + 1 | 0;
+    var $28 = HEAP32[$4 >> 2];
+    var $29 = ($27 | 0) < ($28 | 0);
+    if ($29) {
+      var $ch_027 = $27;
+      label = 6;
+      break;
+    } else {
+      label = 12;
+      break;
+    }
+   case 12:
+    var $30 = $gr_031 + 1 | 0;
+    var $31 = HEAP32[$1 >> 2];
+    var $32 = ($30 | 0) < ($31 | 0);
+    if ($32) {
+      var $gr_031 = $30;
+      label = 4;
+      break;
+    } else {
+      label = 13;
+      break;
+    }
+   case 13:
+    STACKTOP = __stackBase__;
+    return;
+  }
+}
+function _set_pinfo($gfc, $cod_info, $ratio, $gr, $ch) {
+  var label = 0;
+  var __stackBase__ = STACKTOP;
+  STACKTOP = STACKTOP + 336 | 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $l3_xmin = __stackBase__;
+    var $xfsf = __stackBase__ + 156;
+    var $noise = __stackBase__ + 312;
+    var $1 = $cod_info + 4836 | 0;
+    var $2 = HEAP32[$1 >> 2];
+    var $3 = ($2 | 0) == 0;
+    var $4 = $3 ? .5 : 1;
+    var $5 = $l3_xmin | 0;
+    var $6 = _calc_xmin($gfc, $ratio, $cod_info, $5);
+    var $7 = $xfsf | 0;
+    var $8 = _calc_noise($cod_info, $5, $7, $noise, 0);
+    var $9 = $cod_info + 4848 | 0;
+    var $10 = HEAP32[$9 >> 2];
+    var $11 = $cod_info + 4788 | 0;
+    var $12 = HEAP32[$11 >> 2];
+    var $13 = ($12 | 0) == 2;
+    if ($13) {
+      var $sfb2_0 = $10;
+      label = 4;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 3:
+    var $15 = $cod_info + 4792 | 0;
+    var $16 = HEAP32[$15 >> 2];
+    var $17 = ($16 | 0) == 0;
+    var $_ = $17 ? 22 : $10;
+    var $sfb2_0 = $_;
+    label = 4;
+    break;
+   case 4:
+    var $sfb2_0;
+    var $19 = ($sfb2_0 | 0) > 0;
+    if ($19) {
+      label = 5;
+      break;
+    } else {
+      var $j_0_lcssa = 0;
+      var $sfb_0_lcssa = 0;
+      label = 16;
+      break;
+    }
+   case 5:
+    var $20 = $gfc + 85800 | 0;
+    var $21 = $gfc + 212 | 0;
+    var $22 = $gfc + 85792 | 0;
+    var $23 = $cod_info + 4832 | 0;
+    var $24 = -$4;
+    var $j_0208 = 0;
+    var $sfb_0209 = 0;
+    label = 6;
+    break;
+   case 6:
+    var $sfb_0209;
+    var $j_0208;
+    var $26 = $gfc + 21360 + ($sfb_0209 << 2) | 0;
+    var $27 = HEAP32[$26 >> 2];
+    var $28 = $sfb_0209 + 1 | 0;
+    var $29 = $gfc + 21360 + ($28 << 2) | 0;
+    var $30 = HEAP32[$29 >> 2];
+    var $31 = $30 - $27 | 0;
+    var $32 = ($j_0208 | 0) < ($30 | 0);
+    if ($32) {
+      var $j_1201 = $j_0208;
+      var $en0_0202 = 0;
+      label = 7;
+      break;
+    } else {
+      var $j_1_lcssa = $j_0208;
+      var $en0_0_lcssa = 0;
+      label = 8;
+      break;
+    }
+   case 7:
+    var $en0_0202;
+    var $j_1201;
+    var $33 = $cod_info + ($j_1201 << 2) | 0;
+    var $34 = HEAPF32[$33 >> 2];
+    var $35 = $34 * $34;
+    var $36 = $en0_0202 + $35;
+    var $37 = $j_1201 + 1 | 0;
+    var $exitcond221 = ($37 | 0) == ($30 | 0);
+    if ($exitcond221) {
+      var $j_1_lcssa = $30;
+      var $en0_0_lcssa = $36;
+      label = 8;
+      break;
+    } else {
+      var $j_1201 = $37;
+      var $en0_0202 = $36;
+      label = 7;
+      break;
+    }
+   case 8:
+    var $en0_0_lcssa;
+    var $j_1_lcssa;
+    var $38 = $31 | 0;
+    var $39 = $en0_0_lcssa / $38;
+    var $40 = $39 * 999999986991104;
+    var $41 = $40;
+    var $42 = HEAP32[$20 >> 2];
+    var $43 = $42 + 190708 + $gr * 704 + $ch * 176 + ($sfb_0209 << 3) | 0;
+    HEAPF64[tempDoublePtr >> 3] = $41, HEAP32[$43 >> 2] = HEAP32[tempDoublePtr >> 2], HEAP32[$43 + 4 >> 2] = HEAP32[tempDoublePtr + 4 >> 2];
+    var $44 = $l3_xmin + ($sfb_0209 << 2) | 0;
+    var $45 = HEAPF32[$44 >> 2];
+    var $46 = $45 * 999999986991104;
+    var $47 = $xfsf + ($sfb_0209 << 2) | 0;
+    var $48 = HEAPF32[$47 >> 2];
+    var $49 = $46 * $48;
+    var $50 = $49 / $38;
+    var $51 = $50;
+    var $52 = HEAP32[$20 >> 2];
+    var $53 = $52 + 201204 + $gr * 352 + $ch * 176 + ($sfb_0209 << 3) | 0;
+    HEAPF64[tempDoublePtr >> 3] = $51, HEAP32[$53 >> 2] = HEAP32[tempDoublePtr >> 2], HEAP32[$53 + 4 >> 2] = HEAP32[tempDoublePtr + 4 >> 2];
+    var $54 = $ratio + 244 + ($sfb_0209 << 2) | 0;
+    var $55 = HEAPF32[$54 >> 2];
+    var $56 = $55 > 0;
+    if ($56) {
+      label = 9;
+      break;
+    } else {
+      var $en0_1 = 0;
+      label = 11;
+      break;
+    }
+   case 9:
+    var $58 = HEAP32[$21 >> 2];
+    var $59 = ($58 | 0) == 0;
+    if ($59) {
+      label = 10;
+      break;
+    } else {
+      var $en0_1 = 0;
+      label = 11;
+      break;
+    }
+   case 10:
+    var $61 = $39 / $55;
+    var $en0_1 = $61;
+    label = 11;
+    break;
+   case 11:
+    var $en0_1;
+    var $63 = $ratio + ($sfb_0209 << 2) | 0;
+    var $64 = HEAPF32[$63 >> 2];
+    var $65 = $en0_1 * $64;
+    var $66 = HEAP32[$22 >> 2];
+    var $67 = $66 + 24 + ($sfb_0209 << 2) | 0;
+    var $68 = HEAPF32[$67 >> 2];
+    var $69 = $65 > $68;
+    var $_186 = $69 ? $65 : $68;
+    var $70 = $_186 * 999999986991104;
+    var $71 = $70;
+    var $72 = HEAP32[$20 >> 2];
+    var $73 = $72 + 189300 + $gr * 704 + $ch * 176 + ($sfb_0209 << 3) | 0;
+    HEAPF64[tempDoublePtr >> 3] = $71, HEAP32[$73 >> 2] = HEAP32[tempDoublePtr >> 2], HEAP32[$73 + 4 >> 2] = HEAP32[tempDoublePtr + 4 >> 2];
+    var $74 = HEAP32[$20 >> 2];
+    var $75 = $74 + 199156 + $gr * 352 + $ch * 176 + ($sfb_0209 << 3) | 0;
+    HEAPF64[tempDoublePtr >> 3] = 0, HEAP32[$75 >> 2] = HEAP32[tempDoublePtr >> 2], HEAP32[$75 + 4 >> 2] = HEAP32[tempDoublePtr + 4 >> 2];
+    var $76 = HEAP32[$23 >> 2];
+    var $77 = ($76 | 0) != 0;
+    var $78 = ($sfb_0209 | 0) > 10;
+    var $or_cond = $77 & $78;
+    if ($or_cond) {
+      label = 12;
+      break;
+    } else {
+      label = 13;
+      break;
+    }
+   case 12:
+    var $80 = 5257016 + ($sfb_0209 << 2) | 0;
+    var $81 = HEAP32[$80 >> 2];
+    var $82 = $81 | 0;
+    var $83 = $82 * $24;
+    var $84 = $83;
+    var $85 = HEAP32[$20 >> 2];
+    var $86 = $85 + 199156 + $gr * 352 + $ch * 176 + ($sfb_0209 << 3) | 0;
+    HEAPF64[tempDoublePtr >> 3] = $84, HEAP32[$86 >> 2] = HEAP32[tempDoublePtr >> 2], HEAP32[$86 + 4 >> 2] = HEAP32[tempDoublePtr + 4 >> 2];
+    label = 13;
+    break;
+   case 13:
+    var $88 = ($sfb_0209 | 0) < 21;
+    if ($88) {
+      label = 15;
+      break;
+    } else {
+      label = 14;
+      break;
+    }
+   case 14:
+    var $exitcond223 = ($28 | 0) == ($sfb2_0 | 0);
+    if ($exitcond223) {
+      var $j_0_lcssa = $j_1_lcssa;
+      var $sfb_0_lcssa = $sfb2_0;
+      label = 16;
+      break;
+    } else {
+      var $j_0208 = $j_1_lcssa;
+      var $sfb_0209 = $28;
+      label = 6;
+      break;
+    }
+   case 15:
+    var $90 = $cod_info + 4608 + ($sfb_0209 << 2) | 0;
+    var $91 = HEAP32[$90 >> 2];
+    var $92 = $91 | 0;
+    var $93 = $4 * $92;
+    var $94 = $93;
+    var $95 = HEAP32[$20 >> 2];
+    var $96 = $95 + 199156 + $gr * 352 + $ch * 176 + ($sfb_0209 << 3) | 0;
+    var $97 = (HEAP32[tempDoublePtr >> 2] = HEAP32[$96 >> 2], HEAP32[tempDoublePtr + 4 >> 2] = HEAP32[$96 + 4 >> 2], HEAPF64[tempDoublePtr >> 3]);
+    var $98 = $97 - $94;
+    HEAPF64[tempDoublePtr >> 3] = $98, HEAP32[$96 >> 2] = HEAP32[tempDoublePtr >> 2], HEAP32[$96 + 4 >> 2] = HEAP32[tempDoublePtr + 4 >> 2];
+    label = 14;
+    break;
+   case 16:
+    var $sfb_0_lcssa;
+    var $j_0_lcssa;
+    var $99 = HEAP32[$11 >> 2];
+    var $100 = ($99 | 0) == 2;
+    if ($100) {
+      label = 17;
+      break;
+    } else {
+      label = 32;
+      break;
+    }
+   case 17:
+    var $102 = $cod_info + 4852 | 0;
+    var $103 = HEAP32[$102 >> 2];
+    var $104 = ($103 | 0) < 13;
+    if ($104) {
+      label = 18;
+      break;
+    } else {
+      label = 32;
+      break;
+    }
+   case 18:
+    var $105 = $gfc + 85800 | 0;
+    var $106 = $gfc + 212 | 0;
+    var $107 = $gfc + 216 | 0;
+    var $108 = $gfc + 85792 | 0;
+    var $j_2196 = $j_0_lcssa;
+    var $sfb2_1197 = $sfb_0_lcssa;
+    var $sfb_1198 = $103;
+    label = 20;
+    break;
+   case 19:
+    var $109 = $sfb2_1197 + 3 | 0;
+    var $exitcond218 = ($113 | 0) == 13;
+    if ($exitcond218) {
+      label = 32;
+      break;
+    } else {
+      var $j_2196 = $j_4_lcssa;
+      var $sfb2_1197 = $109;
+      var $sfb_1198 = $113;
+      label = 20;
+      break;
+    }
+   case 20:
+    var $sfb_1198;
+    var $sfb2_1197;
+    var $j_2196;
+    var $111 = $gfc + 21452 + ($sfb_1198 << 2) | 0;
+    var $112 = HEAP32[$111 >> 2];
+    var $113 = $sfb_1198 + 1 | 0;
+    var $114 = $gfc + 21452 + ($113 << 2) | 0;
+    var $115 = HEAP32[$114 >> 2];
+    var $116 = $115 - $112 | 0;
+    var $117 = ($112 | 0) < ($115 | 0);
+    var $118 = $116 | 0;
+    var $119 = $sfb_1198 * 3 & -1;
+    var $120 = ($sfb_1198 | 0) < 12;
+    var $121 = $115 - $112 | 0;
+    var $j_3192 = $j_2196;
+    var $i_0193 = 0;
+    var $sfb2_2194 = $sfb2_1197;
+    label = 21;
+    break;
+   case 21:
+    var $sfb2_2194;
+    var $i_0193;
+    var $j_3192;
+    if ($117) {
+      var $j_4188 = $j_3192;
+      var $l_0189 = $112;
+      var $en0_2190 = 0;
+      label = 22;
+      break;
+    } else {
+      var $j_4_lcssa = $j_3192;
+      var $en0_2_lcssa = 0;
+      label = 24;
+      break;
+    }
+   case 22:
+    var $en0_2190;
+    var $l_0189;
+    var $j_4188;
+    var $122 = $cod_info + ($j_4188 << 2) | 0;
+    var $123 = HEAPF32[$122 >> 2];
+    var $124 = $123 * $123;
+    var $125 = $en0_2190 + $124;
+    var $126 = $j_4188 + 1 | 0;
+    var $127 = $l_0189 + 1 | 0;
+    var $exitcond = ($127 | 0) == ($115 | 0);
+    if ($exitcond) {
+      label = 23;
+      break;
+    } else {
+      var $j_4188 = $126;
+      var $l_0189 = $127;
+      var $en0_2190 = $125;
+      label = 22;
+      break;
+    }
+   case 23:
+    var $128 = $121 + $j_3192 | 0;
+    var $j_4_lcssa = $128;
+    var $en0_2_lcssa = $125;
+    label = 24;
+    break;
+   case 24:
+    var $en0_2_lcssa;
+    var $j_4_lcssa;
+    var $130 = $en0_2_lcssa / $118;
+    var $131 = $130;
+    var $132 = $131 > 1e-20;
+    var $133 = $132 ? $130 : 9.999999682655225e-21;
+    var $134 = $133 * 999999986991104;
+    var $135 = $134;
+    var $136 = $i_0193 + $119 | 0;
+    var $137 = HEAP32[$105 >> 2];
+    var $138 = $137 + 194612 + $gr * 1248 + $ch * 312 + ($136 << 3) | 0;
+    HEAPF64[tempDoublePtr >> 3] = $135, HEAP32[$138 >> 2] = HEAP32[tempDoublePtr >> 2], HEAP32[$138 + 4 >> 2] = HEAP32[tempDoublePtr + 4 >> 2];
+    var $139 = $l3_xmin + ($sfb2_2194 << 2) | 0;
+    var $140 = HEAPF32[$139 >> 2];
+    var $141 = $140 * 999999986991104;
+    var $142 = $xfsf + ($sfb2_2194 << 2) | 0;
+    var $143 = HEAPF32[$142 >> 2];
+    var $144 = $141 * $143;
+    var $145 = $144 / $118;
+    var $146 = $145;
+    var $147 = HEAP32[$105 >> 2];
+    var $148 = $147 + 201908 + $gr * 624 + $ch * 312 + ($136 << 3) | 0;
+    HEAPF64[tempDoublePtr >> 3] = $146, HEAP32[$148 >> 2] = HEAP32[tempDoublePtr >> 2], HEAP32[$148 + 4 >> 2] = HEAP32[tempDoublePtr + 4 >> 2];
+    var $149 = $ratio + 332 + $sfb_1198 * 12 + ($i_0193 << 2) | 0;
+    var $150 = HEAPF32[$149 >> 2];
+    var $151 = $150 > 0;
+    if ($151) {
+      label = 25;
+      break;
+    } else {
+      var $en0_3 = 0;
+      label = 26;
+      break;
+    }
+   case 25:
+    var $153 = $133 / $150;
+    var $en0_3 = $153;
+    label = 26;
+    break;
+   case 26:
+    var $en0_3;
+    var $155 = HEAP32[$106 >> 2];
+    var $156 = ($155 | 0) == 0;
+    if ($156) {
+      label = 27;
+      break;
+    } else {
+      label = 28;
+      break;
+    }
+   case 27:
+    var $158 = HEAP32[$107 >> 2];
+    var $159 = ($158 | 0) == 0;
+    if ($159) {
+      var $en0_4 = $en0_3;
+      label = 29;
+      break;
+    } else {
+      label = 28;
+      break;
+    }
+   case 28:
+    var $en0_4 = 0;
+    label = 29;
+    break;
+   case 29:
+    var $en0_4;
+    var $162 = $ratio + 88 + $sfb_1198 * 12 + ($i_0193 << 2) | 0;
+    var $163 = HEAPF32[$162 >> 2];
+    var $164 = $en0_4 * $163;
+    var $165 = HEAP32[$108 >> 2];
+    var $166 = $165 + 112 + ($sfb_1198 << 2) | 0;
+    var $167 = HEAPF32[$166 >> 2];
+    var $168 = $164 > $167;
+    var $_187 = $168 ? $164 : $167;
+    var $169 = $_187 * 999999986991104;
+    var $170 = $169;
+    var $171 = HEAP32[$105 >> 2];
+    var $172 = $171 + 192116 + $gr * 1248 + $ch * 312 + ($136 << 3) | 0;
+    HEAPF64[tempDoublePtr >> 3] = $170, HEAP32[$172 >> 2] = HEAP32[tempDoublePtr >> 2], HEAP32[$172 + 4 >> 2] = HEAP32[tempDoublePtr + 4 >> 2];
+    var $173 = $cod_info + 4808 + ($i_0193 << 2) | 0;
+    var $174 = HEAP32[$173 >> 2];
+    var $175 = $174 | 0;
+    var $176 = $175 * -2;
+    var $177 = HEAP32[$105 >> 2];
+    var $178 = $177 + 199860 + $gr * 624 + $ch * 312 + ($136 << 3) | 0;
+    HEAPF64[tempDoublePtr >> 3] = $176, HEAP32[$178 >> 2] = HEAP32[tempDoublePtr >> 2], HEAP32[$178 + 4 >> 2] = HEAP32[tempDoublePtr + 4 >> 2];
+    if ($120) {
+      label = 30;
+      break;
+    } else {
+      label = 31;
+      break;
+    }
+   case 30:
+    var $180 = $cod_info + 4608 + ($sfb2_2194 << 2) | 0;
+    var $181 = HEAP32[$180 >> 2];
+    var $182 = $181 | 0;
+    var $183 = $4 * $182;
+    var $184 = $183;
+    var $185 = HEAP32[$105 >> 2];
+    var $186 = $185 + 199860 + $gr * 624 + $ch * 312 + ($136 << 3) | 0;
+    var $187 = (HEAP32[tempDoublePtr >> 2] = HEAP32[$186 >> 2], HEAP32[tempDoublePtr + 4 >> 2] = HEAP32[$186 + 4 >> 2], HEAPF64[tempDoublePtr >> 3]);
+    var $188 = $187 - $184;
+    HEAPF64[tempDoublePtr >> 3] = $188, HEAP32[$186 >> 2] = HEAP32[tempDoublePtr >> 2], HEAP32[$186 + 4 >> 2] = HEAP32[tempDoublePtr + 4 >> 2];
+    label = 31;
+    break;
+   case 31:
+    var $190 = $sfb2_2194 + 1 | 0;
+    var $191 = $i_0193 + 1 | 0;
+    var $exitcond217 = ($191 | 0) == 3;
+    if ($exitcond217) {
+      label = 19;
+      break;
+    } else {
+      var $j_3192 = $j_4_lcssa;
+      var $i_0193 = $191;
+      var $sfb2_2194 = $190;
+      label = 21;
+      break;
+    }
+   case 32:
+    var $192 = $cod_info + 4780 | 0;
+    var $193 = HEAP32[$192 >> 2];
+    var $194 = $gfc + 85800 | 0;
+    var $195 = HEAP32[$194 >> 2];
+    var $196 = $195 + 201108 + ($gr << 3) + ($ch << 2) | 0;
+    HEAP32[$196 >> 2] = $193;
+    var $197 = $cod_info + 4768 | 0;
+    var $198 = HEAP32[$197 >> 2];
+    var $199 = $cod_info + 4844 | 0;
+    var $200 = HEAP32[$199 >> 2];
+    var $201 = $200 + $198 | 0;
+    var $202 = HEAP32[$194 >> 2];
+    var $203 = $202 + 203396 + ($gr << 3) + ($ch << 2) | 0;
+    HEAP32[$203 >> 2] = $201;
+    var $204 = HEAP32[$199 >> 2];
+    var $205 = HEAP32[$194 >> 2];
+    var $206 = $205 + 203412 + ($gr << 3) + ($ch << 2) | 0;
+    HEAP32[$206 >> 2] = $204;
+    var $207 = $noise + 12 | 0;
+    var $208 = HEAP32[$207 >> 2];
+    var $209 = HEAP32[$194 >> 2];
+    var $210 = $209 + 203156 + ($gr << 3) + ($ch << 2) | 0;
+    HEAP32[$210 >> 2] = $208;
+    var $211 = $noise + 8 | 0;
+    var $212 = HEAPF32[$211 >> 2];
+    var $213 = $212;
+    var $214 = $213 * 10;
+    var $215 = HEAP32[$194 >> 2];
+    var $216 = $215 + 203204 + ($gr << 4) + ($ch << 3) | 0;
+    HEAPF64[tempDoublePtr >> 3] = $214, HEAP32[$216 >> 2] = HEAP32[tempDoublePtr >> 2], HEAP32[$216 + 4 >> 2] = HEAP32[tempDoublePtr + 4 >> 2];
+    var $217 = $noise | 0;
+    var $218 = HEAPF32[$217 >> 2];
+    var $219 = $218;
+    var $220 = $219 * 10;
+    var $221 = HEAP32[$194 >> 2];
+    var $222 = $221 + 203236 + ($gr << 4) + ($ch << 3) | 0;
+    HEAPF64[tempDoublePtr >> 3] = $220, HEAP32[$222 >> 2] = HEAP32[tempDoublePtr >> 2], HEAP32[$222 + 4 >> 2] = HEAP32[tempDoublePtr + 4 >> 2];
+    var $223 = $noise + 4 | 0;
+    var $224 = HEAPF32[$223 >> 2];
+    var $225 = $224;
+    var $226 = $225 * 10;
+    var $227 = HEAP32[$194 >> 2];
+    var $228 = $227 + 203172 + ($gr << 4) + ($ch << 3) | 0;
+    HEAPF64[tempDoublePtr >> 3] = $226, HEAP32[$228 >> 2] = HEAP32[tempDoublePtr >> 2], HEAP32[$228 + 4 >> 2] = HEAP32[tempDoublePtr + 4 >> 2];
+    var $229 = $noise + 16 | 0;
+    var $230 = HEAP32[$229 >> 2];
+    var $231 = HEAP32[$194 >> 2];
+    var $232 = $231 + 203268 + ($gr << 3) + ($ch << 2) | 0;
+    HEAP32[$232 >> 2] = $230;
+    STACKTOP = __stackBase__;
+    return;
+  }
+}
+_set_pinfo["X"] = 1;
+function _ATHmdct($cfg, $f) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = _ATHformula($cfg, $f);
+    var $2 = $cfg + 208 | 0;
+    var $3 = HEAPF32[$2 >> 2];
+    var $4 = $3 > 0;
+    if ($4) {
+      label = 3;
+      break;
+    } else {
+      label = 4;
+      break;
+    }
+   case 3:
+    var $6 = $1 - $3;
+    var $ath_0 = $6;
+    label = 5;
+    break;
+   case 4:
+    var $8 = $1 - 100;
+    var $ath_0 = $8;
+    label = 5;
+    break;
+   case 5:
+    var $ath_0;
+    var $10 = $cfg + 180 | 0;
+    var $11 = HEAPF32[$10 >> 2];
+    var $12 = $ath_0 + $11;
+    var $13 = $12 * .10000000149011612;
+    var $14 = Math.pow(10, $13);
+    return $14;
+  }
+}
+function _ResvFrameBegin($gfc, $mean_bits) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = _getframebits($gfc);
+    var $2 = $gfc + 24 | 0;
+    var $3 = HEAP32[$2 >> 2];
+    var $4 = $3 << 3;
+    var $5 = $1 - $4 | 0;
+    var $6 = $gfc + 76 | 0;
+    var $7 = HEAP32[$6 >> 2];
+    var $8 = ($5 | 0) / ($7 | 0) & -1;
+    var $9 = $7 << 11;
+    var $10 = $9 - 8 | 0;
+    var $11 = $gfc + 148 | 0;
+    var $12 = HEAP32[$11 >> 2];
+    var $13 = $12 - $1 | 0;
+    var $14 = $gfc + 52140 | 0;
+    var $15 = ($13 | 0) > ($10 | 0);
+    var $_ = $15 ? $10 : $13;
+    HEAP32[$14 >> 2] = $_;
+    var $16 = ($_ | 0) < 0;
+    if ($16) {
+      label = 4;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 3:
+    var $18 = $gfc + 144 | 0;
+    var $19 = HEAP32[$18 >> 2];
+    var $20 = ($19 | 0) == 0;
+    if ($20) {
+      label = 5;
+      break;
+    } else {
+      label = 4;
+      break;
+    }
+   case 4:
+    HEAP32[$14 >> 2] = 0;
+    label = 5;
+    break;
+   case 5:
+    var $23 = HEAP32[$6 >> 2];
+    var $24 = $23 * $8 & -1;
+    var $25 = $gfc + 52136 | 0;
+    var $26 = HEAP32[$25 >> 2];
+    var $27 = HEAP32[$14 >> 2];
+    var $28 = ($26 | 0) < ($27 | 0);
+    var $_28 = $28 ? $26 : $27;
+    var $29 = $_28 + $24 | 0;
+    var $30 = ($29 | 0) > ($12 | 0);
+    var $fullFrameBits_0 = $30 ? $12 : $29;
+    var $31 = $gfc + 21320 | 0;
+    HEAP32[$31 >> 2] = 0;
+    var $32 = $gfc + 85800 | 0;
+    var $33 = HEAP32[$32 >> 2];
+    var $34 = ($33 | 0) == 0;
+    if ($34) {
+      label = 7;
+      break;
+    } else {
+      label = 6;
+      break;
+    }
+   case 6:
+    var $36 = ($8 | 0) / 2 & -1;
+    var $37 = $33 + 203480 | 0;
+    HEAP32[$37 >> 2] = $36;
+    var $38 = HEAP32[$25 >> 2];
+    var $39 = HEAP32[$32 >> 2];
+    var $40 = $39 + 203484 | 0;
+    HEAP32[$40 >> 2] = $38;
+    label = 7;
+    break;
+   case 7:
+    HEAP32[$mean_bits >> 2] = $8;
+    return $fullFrameBits_0;
+  }
+}
+_ResvFrameBegin["X"] = 1;
+function _lame_set_num_samples($gfp, $num_samples) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = _is_lame_global_flags_valid($gfp);
+    var $2 = ($1 | 0) == 0;
+    if ($2) {
+      var $_0 = -1;
+      label = 4;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 3:
+    var $4 = $gfp + 4 | 0;
+    HEAP32[$4 >> 2] = $num_samples;
+    var $_0 = 0;
+    label = 4;
+    break;
+   case 4:
+    var $_0;
+    return $_0;
+  }
+}
+function _lame_get_num_samples($gfp) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = _is_lame_global_flags_valid($gfp);
+    var $2 = ($1 | 0) == 0;
+    if ($2) {
+      var $_0 = 0;
+      label = 4;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 3:
+    var $4 = $gfp + 4 | 0;
+    var $5 = HEAP32[$4 >> 2];
+    var $_0 = $5;
+    label = 4;
+    break;
+   case 4:
+    var $_0;
+    return $_0;
+  }
+}
+function _lame_set_in_samplerate($gfp, $in_samplerate) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = _is_lame_global_flags_valid($gfp);
+    var $2 = ($1 | 0) == 0;
+    if ($2) {
+      var $_0 = -1;
+      label = 4;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 3:
+    var $4 = $gfp + 12 | 0;
+    HEAP32[$4 >> 2] = $in_samplerate;
+    var $_0 = 0;
+    label = 4;
+    break;
+   case 4:
+    var $_0;
+    return $_0;
+  }
+}
+function _lame_get_in_samplerate($gfp) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = _is_lame_global_flags_valid($gfp);
+    var $2 = ($1 | 0) == 0;
+    if ($2) {
+      var $_0 = 0;
+      label = 4;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 3:
+    var $4 = $gfp + 12 | 0;
+    var $5 = HEAP32[$4 >> 2];
+    var $_0 = $5;
+    label = 4;
+    break;
+   case 4:
+    var $_0;
+    return $_0;
+  }
+}
+function _lame_set_num_channels($gfp, $num_channels) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = _is_lame_global_flags_valid($gfp);
+    var $2 = ($1 | 0) == 0;
+    if ($2) {
+      var $_0 = -1;
+      label = 5;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 3:
+    var $4 = ($num_channels | 0) > 2;
+    var $5 = ($num_channels | 0) == 0;
+    var $or_cond = $4 | $5;
+    if ($or_cond) {
+      var $_0 = -1;
+      label = 5;
+      break;
+    } else {
+      label = 4;
+      break;
+    }
+   case 4:
+    var $7 = $gfp + 8 | 0;
+    HEAP32[$7 >> 2] = $num_channels;
+    var $_0 = 0;
+    label = 5;
+    break;
+   case 5:
+    var $_0;
+    return $_0;
+  }
+}
+function _lame_get_num_channels($gfp) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = _is_lame_global_flags_valid($gfp);
+    var $2 = ($1 | 0) == 0;
+    if ($2) {
+      var $_0 = 0;
+      label = 4;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 3:
+    var $4 = $gfp + 8 | 0;
+    var $5 = HEAP32[$4 >> 2];
+    var $_0 = $5;
+    label = 4;
+    break;
+   case 4:
+    var $_0;
+    return $_0;
+  }
+}
+function _lame_set_scale($gfp, $scale) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = _is_lame_global_flags_valid($gfp);
+    var $2 = ($1 | 0) == 0;
+    if ($2) {
+      var $_0 = -1;
+      label = 4;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 3:
+    var $4 = $gfp + 20 | 0;
+    HEAPF32[$4 >> 2] = $scale;
+    var $_0 = 0;
+    label = 4;
+    break;
+   case 4:
+    var $_0;
+    return $_0;
+  }
+}
+function _lame_get_scale($gfp) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = _is_lame_global_flags_valid($gfp);
+    var $2 = ($1 | 0) == 0;
+    if ($2) {
+      var $_0 = 0;
+      label = 4;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 3:
+    var $4 = $gfp + 20 | 0;
+    var $5 = HEAPF32[$4 >> 2];
+    var $_0 = $5;
+    label = 4;
+    break;
+   case 4:
+    var $_0;
+    return $_0;
+  }
+}
+function _lame_set_scale_left($gfp, $scale) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = _is_lame_global_flags_valid($gfp);
+    var $2 = ($1 | 0) == 0;
+    if ($2) {
+      var $_0 = -1;
+      label = 4;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 3:
+    var $4 = $gfp + 24 | 0;
+    HEAPF32[$4 >> 2] = $scale;
+    var $_0 = 0;
+    label = 4;
+    break;
+   case 4:
+    var $_0;
+    return $_0;
+  }
+}
+function _lame_get_scale_left($gfp) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = _is_lame_global_flags_valid($gfp);
+    var $2 = ($1 | 0) == 0;
+    if ($2) {
+      var $_0 = 0;
+      label = 4;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 3:
+    var $4 = $gfp + 24 | 0;
+    var $5 = HEAPF32[$4 >> 2];
+    var $_0 = $5;
+    label = 4;
+    break;
+   case 4:
+    var $_0;
+    return $_0;
+  }
+}
+function _lame_set_scale_right($gfp, $scale) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = _is_lame_global_flags_valid($gfp);
+    var $2 = ($1 | 0) == 0;
+    if ($2) {
+      var $_0 = -1;
+      label = 4;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 3:
+    var $4 = $gfp + 28 | 0;
+    HEAPF32[$4 >> 2] = $scale;
+    var $_0 = 0;
+    label = 4;
+    break;
+   case 4:
+    var $_0;
+    return $_0;
+  }
+}
+function _lame_get_scale_right($gfp) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = _is_lame_global_flags_valid($gfp);
+    var $2 = ($1 | 0) == 0;
+    if ($2) {
+      var $_0 = 0;
+      label = 4;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 3:
+    var $4 = $gfp + 28 | 0;
+    var $5 = HEAPF32[$4 >> 2];
+    var $_0 = $5;
+    label = 4;
+    break;
+   case 4:
+    var $_0;
+    return $_0;
+  }
+}
+function _lame_set_out_samplerate($gfp, $out_samplerate) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = _is_lame_global_flags_valid($gfp);
+    var $2 = ($1 | 0) == 0;
+    if ($2) {
+      var $_0 = -1;
+      label = 4;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 3:
+    var $4 = $gfp + 16 | 0;
+    HEAP32[$4 >> 2] = $out_samplerate;
+    var $_0 = 0;
+    label = 4;
+    break;
+   case 4:
+    var $_0;
+    return $_0;
+  }
+}
+function _lame_get_out_samplerate($gfp) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = _is_lame_global_flags_valid($gfp);
+    var $2 = ($1 | 0) == 0;
+    if ($2) {
+      var $_0 = 0;
+      label = 4;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 3:
+    var $4 = $gfp + 16 | 0;
+    var $5 = HEAP32[$4 >> 2];
+    var $_0 = $5;
+    label = 4;
+    break;
+   case 4:
+    var $_0;
+    return $_0;
+  }
+}
+function _lame_set_analysis($gfp, $analysis) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = _is_lame_global_flags_valid($gfp);
+    var $2 = ($1 | 0) == 0;
+    var $3 = $analysis >>> 0 > 1;
+    var $or_cond = $2 | $3;
+    if ($or_cond) {
+      var $_0 = -1;
+      label = 4;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 3:
+    var $5 = $gfp + 32 | 0;
+    HEAP32[$5 >> 2] = $analysis;
+    var $_0 = 0;
+    label = 4;
+    break;
+   case 4:
+    var $_0;
+    return $_0;
+  }
+}
+function _lame_get_analysis($gfp) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = _is_lame_global_flags_valid($gfp);
+    var $2 = ($1 | 0) == 0;
+    if ($2) {
+      var $_0 = 0;
+      label = 4;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 3:
+    var $4 = $gfp + 32 | 0;
+    var $5 = HEAP32[$4 >> 2];
+    var $_0 = $5;
+    label = 4;
+    break;
+   case 4:
+    var $_0;
+    return $_0;
+  }
+}
+function _lame_set_bWriteVbrTag($gfp, $bWriteVbrTag) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = _is_lame_global_flags_valid($gfp);
+    var $2 = ($1 | 0) == 0;
+    var $3 = $bWriteVbrTag >>> 0 > 1;
+    var $or_cond = $2 | $3;
+    if ($or_cond) {
+      var $_0 = -1;
+      label = 4;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 3:
+    var $5 = $gfp + 36 | 0;
+    HEAP32[$5 >> 2] = $bWriteVbrTag;
+    var $_0 = 0;
+    label = 4;
+    break;
+   case 4:
+    var $_0;
+    return $_0;
+  }
+}
+function _lame_get_bWriteVbrTag($gfp) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = _is_lame_global_flags_valid($gfp);
+    var $2 = ($1 | 0) == 0;
+    if ($2) {
+      var $_0 = 0;
+      label = 4;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 3:
+    var $4 = $gfp + 36 | 0;
+    var $5 = HEAP32[$4 >> 2];
+    var $_0 = $5;
+    label = 4;
+    break;
+   case 4:
+    var $_0;
+    return $_0;
+  }
+}
+function _lame_set_decode_only($gfp, $decode_only) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = _is_lame_global_flags_valid($gfp);
+    var $2 = ($1 | 0) == 0;
+    var $3 = $decode_only >>> 0 > 1;
+    var $or_cond = $2 | $3;
+    if ($or_cond) {
+      var $_0 = -1;
+      label = 4;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 3:
+    var $5 = $gfp + 40 | 0;
+    HEAP32[$5 >> 2] = $decode_only;
+    var $_0 = 0;
+    label = 4;
+    break;
+   case 4:
+    var $_0;
+    return $_0;
+  }
+}
+function _lame_get_decode_only($gfp) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = _is_lame_global_flags_valid($gfp);
+    var $2 = ($1 | 0) == 0;
+    if ($2) {
+      var $_0 = 0;
+      label = 4;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 3:
+    var $4 = $gfp + 40 | 0;
+    var $5 = HEAP32[$4 >> 2];
+    var $_0 = $5;
+    label = 4;
+    break;
+   case 4:
+    var $_0;
+    return $_0;
+  }
+}
+function _lame_set_quality($gfp, $quality) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = _is_lame_global_flags_valid($gfp);
+    var $2 = ($1 | 0) == 0;
+    if ($2) {
+      var $_0 = -1;
+      label = 8;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 3:
+    var $4 = ($quality | 0) < 0;
+    if ($4) {
+      label = 4;
+      break;
+    } else {
+      label = 5;
+      break;
+    }
+   case 4:
+    var $6 = $gfp + 44 | 0;
+    HEAP32[$6 >> 2] = 0;
+    var $_0 = 0;
+    label = 8;
+    break;
+   case 5:
+    var $8 = ($quality | 0) > 9;
+    var $9 = $gfp + 44 | 0;
+    if ($8) {
+      label = 6;
+      break;
+    } else {
+      label = 7;
+      break;
+    }
+   case 6:
+    HEAP32[$9 >> 2] = 9;
+    var $_0 = 0;
+    label = 8;
+    break;
+   case 7:
+    HEAP32[$9 >> 2] = $quality;
+    var $_0 = 0;
+    label = 8;
+    break;
+   case 8:
+    var $_0;
+    return $_0;
+  }
+}
+function _lame_get_quality($gfp) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = _is_lame_global_flags_valid($gfp);
+    var $2 = ($1 | 0) == 0;
+    if ($2) {
+      var $_0 = 0;
+      label = 4;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 3:
+    var $4 = $gfp + 44 | 0;
+    var $5 = HEAP32[$4 >> 2];
+    var $_0 = $5;
+    label = 4;
+    break;
+   case 4:
+    var $_0;
+    return $_0;
+  }
+}
+function _lame_get_mode_automs($gfp) {
+  return 1;
+}
+function _lame_set_padding_type($gfp, $padding_type) {
+  return 0;
+}
+function _lame_get_padding_type($gfp) {
+  return 2;
+}
+function _lame_set_mode($gfp, $mode) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = _is_lame_global_flags_valid($gfp);
+    var $2 = ($1 | 0) == 0;
+    var $3 = $mode >>> 0 > 4;
+    var $or_cond = $2 | $3;
+    if ($or_cond) {
+      var $_0 = -1;
+      label = 4;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 3:
+    var $5 = $gfp + 48 | 0;
+    HEAP32[$5 >> 2] = $mode;
+    var $_0 = 0;
+    label = 4;
+    break;
+   case 4:
+    var $_0;
+    return $_0;
+  }
+}
+function _lame_get_mode($gfp) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = _is_lame_global_flags_valid($gfp);
+    var $2 = ($1 | 0) == 0;
+    if ($2) {
+      var $_0 = 4;
+      label = 4;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 3:
+    var $4 = $gfp + 48 | 0;
+    var $5 = HEAP32[$4 >> 2];
+    var $_0 = $5;
+    label = 4;
+    break;
+   case 4:
+    var $_0;
+    return $_0;
+  }
+}
+function _lame_set_mode_automs($gfp, $mode_automs) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = _is_lame_global_flags_valid($gfp);
+    var $2 = ($1 | 0) == 0;
+    var $3 = $mode_automs >>> 0 > 1;
+    var $or_cond = $2 | $3;
+    if ($or_cond) {
+      var $_0 = -1;
+      label = 4;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 3:
+    var $5 = _lame_set_mode($gfp, 1);
+    var $_0 = 0;
+    label = 4;
+    break;
+   case 4:
+    var $_0;
+    return $_0;
+  }
+}
+function _lame_set_force_ms($gfp, $force_ms) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = _is_lame_global_flags_valid($gfp);
+    var $2 = ($1 | 0) == 0;
+    var $3 = $force_ms >>> 0 > 1;
+    var $or_cond = $2 | $3;
+    if ($or_cond) {
+      var $_0 = -1;
+      label = 4;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 3:
+    var $5 = $gfp + 52 | 0;
+    HEAP32[$5 >> 2] = $force_ms;
+    var $_0 = 0;
+    label = 4;
+    break;
+   case 4:
+    var $_0;
+    return $_0;
+  }
+}
+function _lame_get_force_ms($gfp) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = _is_lame_global_flags_valid($gfp);
+    var $2 = ($1 | 0) == 0;
+    if ($2) {
+      var $_0 = 0;
+      label = 4;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 3:
+    var $4 = $gfp + 52 | 0;
+    var $5 = HEAP32[$4 >> 2];
+    var $_0 = $5;
+    label = 4;
+    break;
+   case 4:
+    var $_0;
+    return $_0;
+  }
+}
+function _lame_set_free_format($gfp, $free_format) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = _is_lame_global_flags_valid($gfp);
+    var $2 = ($1 | 0) == 0;
+    var $3 = $free_format >>> 0 > 1;
+    var $or_cond = $2 | $3;
+    if ($or_cond) {
+      var $_0 = -1;
+      label = 4;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 3:
+    var $5 = $gfp + 56 | 0;
+    HEAP32[$5 >> 2] = $free_format;
+    var $_0 = 0;
+    label = 4;
+    break;
+   case 4:
+    var $_0;
+    return $_0;
+  }
+}
+function _lame_get_free_format($gfp) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = _is_lame_global_flags_valid($gfp);
+    var $2 = ($1 | 0) == 0;
+    if ($2) {
+      var $_0 = 0;
+      label = 4;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 3:
+    var $4 = $gfp + 56 | 0;
+    var $5 = HEAP32[$4 >> 2];
+    var $_0 = $5;
+    label = 4;
+    break;
+   case 4:
+    var $_0;
+    return $_0;
+  }
+}
+function _lame_set_findReplayGain($gfp, $findReplayGain) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = _is_lame_global_flags_valid($gfp);
+    var $2 = ($1 | 0) == 0;
+    var $3 = $findReplayGain >>> 0 > 1;
+    var $or_cond = $2 | $3;
+    if ($or_cond) {
+      var $_0 = -1;
+      label = 4;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 3:
+    var $5 = $gfp + 60 | 0;
+    HEAP32[$5 >> 2] = $findReplayGain;
+    var $_0 = 0;
+    label = 4;
+    break;
+   case 4:
+    var $_0;
+    return $_0;
+  }
+}
+function _lame_get_findReplayGain($gfp) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = _is_lame_global_flags_valid($gfp);
+    var $2 = ($1 | 0) == 0;
+    if ($2) {
+      var $_0 = 0;
+      label = 4;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 3:
+    var $4 = $gfp + 60 | 0;
+    var $5 = HEAP32[$4 >> 2];
+    var $_0 = $5;
+    label = 4;
+    break;
+   case 4:
+    var $_0;
+    return $_0;
+  }
+}
+function _lame_set_decode_on_the_fly($gfp, $decode_on_the_fly) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = _is_lame_global_flags_valid($gfp);
+    var $2 = ($1 | 0) == 0;
+    var $3 = $decode_on_the_fly >>> 0 > 1;
+    var $or_cond = $2 | $3;
+    if ($or_cond) {
+      var $_0 = -1;
+      label = 4;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 3:
+    var $5 = $gfp + 64 | 0;
+    HEAP32[$5 >> 2] = $decode_on_the_fly;
+    var $_0 = 0;
+    label = 4;
+    break;
+   case 4:
+    var $_0;
+    return $_0;
+  }
+}
+function _lame_get_decode_on_the_fly($gfp) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = _is_lame_global_flags_valid($gfp);
+    var $2 = ($1 | 0) == 0;
+    if ($2) {
+      var $_0 = 0;
+      label = 4;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 3:
+    var $4 = $gfp + 64 | 0;
+    var $5 = HEAP32[$4 >> 2];
+    var $_0 = $5;
+    label = 4;
+    break;
+   case 4:
+    var $_0;
+    return $_0;
+  }
+}
+function _lame_set_findPeakSample($gfp, $arg) {
+  return _lame_set_decode_on_the_fly($gfp, $arg);
+}
+function _lame_get_findPeakSample($gfp) {
+  return _lame_get_decode_on_the_fly($gfp);
+}
+function _lame_set_ReplayGain_input($gfp, $arg) {
+  return _lame_set_findReplayGain($gfp, $arg);
+}
+function _lame_get_ReplayGain_input($gfp) {
+  return _lame_get_findReplayGain($gfp);
+}
+function _lame_set_ReplayGain_decode($gfp, $arg) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = _lame_set_decode_on_the_fly($gfp, $arg);
+    var $2 = ($1 | 0) < 0;
+    if ($2) {
+      label = 4;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 3:
+    var $4 = _lame_set_findReplayGain($gfp, $arg);
+    var $_lobit = $4 >> 31;
+    return $_lobit;
+   case 4:
+    return -1;
+  }
+}
+function _lame_get_ReplayGain_decode($gfp) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = _lame_get_decode_on_the_fly($gfp);
+    var $2 = ($1 | 0) > 0;
+    if ($2) {
+      label = 3;
+      break;
+    } else {
+      label = 4;
+      break;
+    }
+   case 3:
+    var $4 = _lame_get_findReplayGain($gfp);
+    var $5 = ($4 | 0) > 0;
+    if ($5) {
+      var $_0 = 1;
+      label = 5;
+      break;
+    } else {
+      label = 4;
+      break;
+    }
+   case 4:
+    var $_0 = 0;
+    label = 5;
+    break;
+   case 5:
+    var $_0;
+    return $_0;
+  }
+}
+function _lame_set_nogap_total($gfp, $the_nogap_total) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = _is_lame_global_flags_valid($gfp);
+    var $2 = ($1 | 0) == 0;
+    if ($2) {
+      var $_0 = -1;
+      label = 4;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 3:
+    var $4 = $gfp + 72 | 0;
+    HEAP32[$4 >> 2] = $the_nogap_total;
+    var $_0 = 0;
+    label = 4;
+    break;
+   case 4:
+    var $_0;
+    return $_0;
+  }
+}
+function _lame_get_nogap_total($gfp) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = _is_lame_global_flags_valid($gfp);
+    var $2 = ($1 | 0) == 0;
+    if ($2) {
+      var $_0 = 0;
+      label = 4;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 3:
+    var $4 = $gfp + 72 | 0;
+    var $5 = HEAP32[$4 >> 2];
+    var $_0 = $5;
+    label = 4;
+    break;
+   case 4:
+    var $_0;
+    return $_0;
+  }
+}
+function _lame_set_nogap_currentindex($gfp, $the_nogap_index) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = _is_lame_global_flags_valid($gfp);
+    var $2 = ($1 | 0) == 0;
+    if ($2) {
+      var $_0 = -1;
+      label = 4;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 3:
+    var $4 = $gfp + 76 | 0;
+    HEAP32[$4 >> 2] = $the_nogap_index;
+    var $_0 = 0;
+    label = 4;
+    break;
+   case 4:
+    var $_0;
+    return $_0;
+  }
+}
+function _lame_get_nogap_currentindex($gfp) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = _is_lame_global_flags_valid($gfp);
+    var $2 = ($1 | 0) == 0;
+    if ($2) {
+      var $_0 = 0;
+      label = 4;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 3:
+    var $4 = $gfp + 76 | 0;
+    var $5 = HEAP32[$4 >> 2];
+    var $_0 = $5;
+    label = 4;
+    break;
+   case 4:
+    var $_0;
+    return $_0;
+  }
+}
+function _lame_set_errorf($gfp, $func) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = _is_lame_global_flags_valid($gfp);
+    var $2 = ($1 | 0) == 0;
+    if ($2) {
+      var $_0 = -1;
+      label = 4;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 3:
+    var $4 = $gfp + 280 | 0;
+    HEAP32[$4 >> 2] = $func;
+    var $_0 = 0;
+    label = 4;
+    break;
+   case 4:
+    var $_0;
+    return $_0;
+  }
+}
+function _lame_set_debugf($gfp, $func) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = _is_lame_global_flags_valid($gfp);
+    var $2 = ($1 | 0) == 0;
+    if ($2) {
+      var $_0 = -1;
+      label = 4;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 3:
+    var $4 = $gfp + 276 | 0;
+    HEAP32[$4 >> 2] = $func;
+    var $_0 = 0;
+    label = 4;
+    break;
+   case 4:
+    var $_0;
+    return $_0;
+  }
+}
+function _lame_set_msgf($gfp, $func) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = _is_lame_global_flags_valid($gfp);
+    var $2 = ($1 | 0) == 0;
+    if ($2) {
+      var $_0 = -1;
+      label = 4;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 3:
+    var $4 = $gfp + 272 | 0;
+    HEAP32[$4 >> 2] = $func;
+    var $_0 = 0;
+    label = 4;
+    break;
+   case 4:
+    var $_0;
+    return $_0;
+  }
+}
+function _lame_set_brate($gfp, $brate) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = _is_lame_global_flags_valid($gfp);
+    var $2 = ($1 | 0) == 0;
+    if ($2) {
+      var $_0 = -1;
+      label = 5;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 3:
+    var $4 = $gfp + 96 | 0;
+    HEAP32[$4 >> 2] = $brate;
+    var $5 = ($brate | 0) > 320;
+    if ($5) {
+      label = 4;
+      break;
+    } else {
+      var $_0 = 0;
+      label = 5;
+      break;
+    }
+   case 4:
+    var $7 = $gfp + 128 | 0;
+    HEAP32[$7 >> 2] = 1;
+    var $_0 = 0;
+    label = 5;
+    break;
+   case 5:
+    var $_0;
+    return $_0;
+  }
+}
+function _lame_get_brate($gfp) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = _is_lame_global_flags_valid($gfp);
+    var $2 = ($1 | 0) == 0;
+    if ($2) {
+      var $_0 = 0;
+      label = 4;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 3:
+    var $4 = $gfp + 96 | 0;
+    var $5 = HEAP32[$4 >> 2];
+    var $_0 = $5;
+    label = 4;
+    break;
+   case 4:
+    var $_0;
+    return $_0;
+  }
+}
+function _lame_set_compression_ratio($gfp, $compression_ratio) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = _is_lame_global_flags_valid($gfp);
+    var $2 = ($1 | 0) == 0;
+    if ($2) {
+      var $_0 = -1;
+      label = 4;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 3:
+    var $4 = $gfp + 100 | 0;
+    HEAPF32[$4 >> 2] = $compression_ratio;
+    var $_0 = 0;
+    label = 4;
+    break;
+   case 4:
+    var $_0;
+    return $_0;
+  }
+}
+function _lame_get_compression_ratio($gfp) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = _is_lame_global_flags_valid($gfp);
+    var $2 = ($1 | 0) == 0;
+    if ($2) {
+      var $_0 = 0;
+      label = 4;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 3:
+    var $4 = $gfp + 100 | 0;
+    var $5 = HEAPF32[$4 >> 2];
+    var $_0 = $5;
+    label = 4;
+    break;
+   case 4:
+    var $_0;
+    return $_0;
+  }
+}
+function _lame_set_copyright($gfp, $copyright) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = _is_lame_global_flags_valid($gfp);
+    var $2 = ($1 | 0) == 0;
+    var $3 = $copyright >>> 0 > 1;
+    var $or_cond = $2 | $3;
+    if ($or_cond) {
+      var $_0 = -1;
+      label = 4;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 3:
+    var $5 = $gfp + 104 | 0;
+    HEAP32[$5 >> 2] = $copyright;
+    var $_0 = 0;
+    label = 4;
+    break;
+   case 4:
+    var $_0;
+    return $_0;
+  }
+}
+function _lame_get_copyright($gfp) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = _is_lame_global_flags_valid($gfp);
+    var $2 = ($1 | 0) == 0;
+    if ($2) {
+      var $_0 = 0;
+      label = 4;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 3:
+    var $4 = $gfp + 104 | 0;
+    var $5 = HEAP32[$4 >> 2];
+    var $_0 = $5;
+    label = 4;
+    break;
+   case 4:
+    var $_0;
+    return $_0;
+  }
+}
+function _lame_set_original($gfp, $original) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = _is_lame_global_flags_valid($gfp);
+    var $2 = ($1 | 0) == 0;
+    var $3 = $original >>> 0 > 1;
+    var $or_cond = $2 | $3;
+    if ($or_cond) {
+      var $_0 = -1;
+      label = 4;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 3:
+    var $5 = $gfp + 108 | 0;
+    HEAP32[$5 >> 2] = $original;
+    var $_0 = 0;
+    label = 4;
+    break;
+   case 4:
+    var $_0;
+    return $_0;
+  }
+}
+function _lame_get_original($gfp) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = _is_lame_global_flags_valid($gfp);
+    var $2 = ($1 | 0) == 0;
+    if ($2) {
+      var $_0 = 0;
+      label = 4;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 3:
+    var $4 = $gfp + 108 | 0;
+    var $5 = HEAP32[$4 >> 2];
+    var $_0 = $5;
+    label = 4;
+    break;
+   case 4:
+    var $_0;
+    return $_0;
+  }
+}
+function _lame_set_error_protection($gfp, $error_protection) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = _is_lame_global_flags_valid($gfp);
+    var $2 = ($1 | 0) == 0;
+    var $3 = $error_protection >>> 0 > 1;
+    var $or_cond = $2 | $3;
+    if ($or_cond) {
+      var $_0 = -1;
+      label = 4;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 3:
+    var $5 = $gfp + 120 | 0;
+    HEAP32[$5 >> 2] = $error_protection;
+    var $_0 = 0;
+    label = 4;
+    break;
+   case 4:
+    var $_0;
+    return $_0;
+  }
+}
+function _lame_get_error_protection($gfp) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = _is_lame_global_flags_valid($gfp);
+    var $2 = ($1 | 0) == 0;
+    if ($2) {
+      var $_0 = 0;
+      label = 4;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 3:
+    var $4 = $gfp + 120 | 0;
+    var $5 = HEAP32[$4 >> 2];
+    var $_0 = $5;
+    label = 4;
+    break;
+   case 4:
+    var $_0;
+    return $_0;
+  }
+}
+function _lame_set_extension($gfp, $extension) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = _is_lame_global_flags_valid($gfp);
+    var $2 = ($1 | 0) == 0;
+    var $3 = $extension >>> 0 > 1;
+    var $or_cond = $2 | $3;
+    if ($or_cond) {
+      var $_0 = -1;
+      label = 4;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 3:
+    var $5 = $gfp + 112 | 0;
+    HEAP32[$5 >> 2] = $extension;
+    var $_0 = 0;
+    label = 4;
+    break;
+   case 4:
+    var $_0;
+    return $_0;
+  }
+}
+function _lame_get_extension($gfp) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = _is_lame_global_flags_valid($gfp);
+    var $2 = ($1 | 0) == 0;
+    if ($2) {
+      var $_0 = 0;
+      label = 4;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 3:
+    var $4 = $gfp + 112 | 0;
+    var $5 = HEAP32[$4 >> 2];
+    var $_0 = $5;
+    label = 4;
+    break;
+   case 4:
+    var $_0;
+    return $_0;
+  }
+}
+function _lame_set_strict_ISO($gfp, $val) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = _is_lame_global_flags_valid($gfp);
+    var $2 = ($1 | 0) == 0;
+    var $3 = $val >>> 0 > 2;
+    var $or_cond = $2 | $3;
+    if ($or_cond) {
+      var $_0 = -1;
+      label = 4;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 3:
+    var $5 = $gfp + 124 | 0;
+    HEAP32[$5 >> 2] = $val;
+    var $_0 = 0;
+    label = 4;
+    break;
+   case 4:
+    var $_0;
+    return $_0;
+  }
+}
+function _lame_get_strict_ISO($gfp) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = _is_lame_global_flags_valid($gfp);
+    var $2 = ($1 | 0) == 0;
+    if ($2) {
+      var $_0 = 0;
+      label = 4;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 3:
+    var $4 = $gfp + 124 | 0;
+    var $5 = HEAP32[$4 >> 2];
+    var $_0 = $5;
+    label = 4;
+    break;
+   case 4:
+    var $_0;
+    return $_0;
+  }
+}
+function _lame_set_disable_reservoir($gfp, $disable_reservoir) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = _is_lame_global_flags_valid($gfp);
+    var $2 = ($1 | 0) == 0;
+    var $3 = $disable_reservoir >>> 0 > 1;
+    var $or_cond = $2 | $3;
+    if ($or_cond) {
+      var $_0 = -1;
+      label = 4;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 3:
+    var $5 = $gfp + 128 | 0;
+    HEAP32[$5 >> 2] = $disable_reservoir;
+    var $_0 = 0;
+    label = 4;
+    break;
+   case 4:
+    var $_0;
+    return $_0;
+  }
+}
+function _lame_get_disable_reservoir($gfp) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = _is_lame_global_flags_valid($gfp);
+    var $2 = ($1 | 0) == 0;
+    if ($2) {
+      var $_0 = 0;
+      label = 4;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 3:
+    var $4 = $gfp + 128 | 0;
+    var $5 = HEAP32[$4 >> 2];
+    var $_0 = $5;
+    label = 4;
+    break;
+   case 4:
+    var $_0;
+    return $_0;
+  }
+}
+function _lame_set_experimentalX($gfp, $experimentalX) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = _is_lame_global_flags_valid($gfp);
+    var $2 = ($1 | 0) == 0;
+    if ($2) {
+      var $_0 = -1;
+      label = 4;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 3:
+    var $4 = _lame_set_quant_comp($gfp, $experimentalX);
+    var $5 = _lame_set_quant_comp_short($gfp, $experimentalX);
+    var $_0 = 0;
+    label = 4;
+    break;
+   case 4:
+    var $_0;
+    return $_0;
+  }
+}
+function _lame_set_quant_comp($gfp, $quant_type) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = _is_lame_global_flags_valid($gfp);
+    var $2 = ($1 | 0) == 0;
+    if ($2) {
+      var $_0 = -1;
+      label = 4;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 3:
+    var $4 = $gfp + 132 | 0;
+    HEAP32[$4 >> 2] = $quant_type;
+    var $_0 = 0;
+    label = 4;
+    break;
+   case 4:
+    var $_0;
+    return $_0;
+  }
+}
+function _lame_set_quant_comp_short($gfp, $quant_type) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = _is_lame_global_flags_valid($gfp);
+    var $2 = ($1 | 0) == 0;
+    if ($2) {
+      var $_0 = -1;
+      label = 4;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 3:
+    var $4 = $gfp + 136 | 0;
+    HEAP32[$4 >> 2] = $quant_type;
+    var $_0 = 0;
+    label = 4;
+    break;
+   case 4:
+    var $_0;
+    return $_0;
+  }
+}
+function _lame_get_experimentalX($gfp) {
+  return _lame_get_quant_comp($gfp);
+}
+function _lame_get_quant_comp($gfp) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = _is_lame_global_flags_valid($gfp);
+    var $2 = ($1 | 0) == 0;
+    if ($2) {
+      var $_0 = 0;
+      label = 4;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 3:
+    var $4 = $gfp + 132 | 0;
+    var $5 = HEAP32[$4 >> 2];
+    var $_0 = $5;
+    label = 4;
+    break;
+   case 4:
+    var $_0;
+    return $_0;
+  }
+}
+function _lame_get_quant_comp_short($gfp) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = _is_lame_global_flags_valid($gfp);
+    var $2 = ($1 | 0) == 0;
+    if ($2) {
+      var $_0 = 0;
+      label = 4;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 3:
+    var $4 = $gfp + 136 | 0;
+    var $5 = HEAP32[$4 >> 2];
+    var $_0 = $5;
+    label = 4;
+    break;
+   case 4:
+    var $_0;
+    return $_0;
+  }
+}
+function _lame_set_experimentalY($gfp, $experimentalY) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = _is_lame_global_flags_valid($gfp);
+    var $2 = ($1 | 0) == 0;
+    if ($2) {
+      var $_0 = -1;
+      label = 4;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 3:
+    var $4 = $gfp + 140 | 0;
+    HEAP32[$4 >> 2] = $experimentalY;
+    var $_0 = 0;
+    label = 4;
+    break;
+   case 4:
+    var $_0;
+    return $_0;
+  }
+}
+function _lame_get_experimentalY($gfp) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = _is_lame_global_flags_valid($gfp);
+    var $2 = ($1 | 0) == 0;
+    if ($2) {
+      var $_0 = 0;
+      label = 4;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 3:
+    var $4 = $gfp + 140 | 0;
+    var $5 = HEAP32[$4 >> 2];
+    var $_0 = $5;
+    label = 4;
+    break;
+   case 4:
+    var $_0;
+    return $_0;
+  }
+}
+function _lame_set_experimentalZ($gfp, $experimentalZ) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = _is_lame_global_flags_valid($gfp);
+    var $2 = ($1 | 0) == 0;
+    if ($2) {
+      var $_0 = -1;
+      label = 4;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 3:
+    var $4 = $gfp + 144 | 0;
+    HEAP32[$4 >> 2] = $experimentalZ;
+    var $_0 = 0;
+    label = 4;
+    break;
+   case 4:
+    var $_0;
+    return $_0;
+  }
+}
+function _lame_get_experimentalZ($gfp) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = _is_lame_global_flags_valid($gfp);
+    var $2 = ($1 | 0) == 0;
+    if ($2) {
+      var $_0 = 0;
+      label = 4;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 3:
+    var $4 = $gfp + 144 | 0;
+    var $5 = HEAP32[$4 >> 2];
+    var $_0 = $5;
+    label = 4;
+    break;
+   case 4:
+    var $_0;
+    return $_0;
+  }
+}
+function _lame_set_exp_nspsytune($gfp, $exp_nspsytune) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = _is_lame_global_flags_valid($gfp);
+    var $2 = ($1 | 0) == 0;
+    if ($2) {
+      var $_0 = -1;
+      label = 4;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 3:
+    var $4 = $gfp + 148 | 0;
+    HEAP32[$4 >> 2] = $exp_nspsytune;
+    var $_0 = 0;
+    label = 4;
+    break;
+   case 4:
+    var $_0;
+    return $_0;
+  }
+}
+function _lame_get_exp_nspsytune($gfp) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = _is_lame_global_flags_valid($gfp);
+    var $2 = ($1 | 0) == 0;
+    if ($2) {
+      var $_0 = 0;
+      label = 4;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 3:
+    var $4 = $gfp + 148 | 0;
+    var $5 = HEAP32[$4 >> 2];
+    var $_0 = $5;
+    label = 4;
+    break;
+   case 4:
+    var $_0;
+    return $_0;
+  }
+}
+function _lame_set_VBR($gfp, $VBR) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = _is_lame_global_flags_valid($gfp);
+    var $2 = ($1 | 0) == 0;
+    var $3 = $VBR >>> 0 > 4;
+    var $or_cond = $2 | $3;
+    if ($or_cond) {
+      var $_0 = -1;
+      label = 4;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 3:
+    var $5 = $gfp + 156 | 0;
+    HEAP32[$5 >> 2] = $VBR;
+    var $_0 = 0;
+    label = 4;
+    break;
+   case 4:
+    var $_0;
+    return $_0;
+  }
+}
+function _lame_get_VBR($gfp) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = _is_lame_global_flags_valid($gfp);
+    var $2 = ($1 | 0) == 0;
+    if ($2) {
+      var $_0 = 0;
+      label = 4;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 3:
+    var $4 = $gfp + 156 | 0;
+    var $5 = HEAP32[$4 >> 2];
+    var $_0 = $5;
+    label = 4;
+    break;
+   case 4:
+    var $_0;
+    return $_0;
+  }
+}
+function _lame_set_VBR_q($gfp, $VBR_q) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = _is_lame_global_flags_valid($gfp);
+    var $2 = ($1 | 0) == 0;
+    if ($2) {
+      var $_07 = -1;
+      label = 4;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 3:
+    var $4 = ($VBR_q | 0) < 0;
+    var $_VBR_q = $4 ? 0 : $VBR_q;
+    var $VBR_q_lobit = $VBR_q >> 31;
+    var $5 = ($_VBR_q | 0) > 9;
+    var $_1 = $5 ? 9 : $_VBR_q;
+    var $ret_1 = $5 ? -1 : $VBR_q_lobit;
+    var $6 = $gfp + 164 | 0;
+    HEAP32[$6 >> 2] = $_1;
+    var $7 = $gfp + 160 | 0;
+    HEAPF32[$7 >> 2] = 0;
+    var $_07 = $ret_1;
+    label = 4;
+    break;
+   case 4:
+    var $_07;
+    return $_07;
+  }
+}
+function _lame_get_VBR_q($gfp) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = _is_lame_global_flags_valid($gfp);
+    var $2 = ($1 | 0) == 0;
+    if ($2) {
+      var $_0 = 0;
+      label = 4;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 3:
+    var $4 = $gfp + 164 | 0;
+    var $5 = HEAP32[$4 >> 2];
+    var $_0 = $5;
+    label = 4;
+    break;
+   case 4:
+    var $_0;
+    return $_0;
+  }
+}
+function _lame_set_VBR_quality($gfp, $VBR_q) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = _is_lame_global_flags_valid($gfp);
+    var $2 = ($1 | 0) == 0;
+    if ($2) {
+      var $_09 = -1;
+      label = 4;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 3:
+    var $4 = $VBR_q < 0;
+    var $_0 = $4 ? 0 : $VBR_q;
+    var $ret_0 = $4 << 31 >> 31;
+    var $5 = $_0;
+    var $6 = $5 > 9.999;
+    var $_1 = $6 ? 9.99899959564209 : $_0;
+    var $ret_1 = $6 ? -1 : $ret_0;
+    var $7 = $_1 & -1;
+    var $8 = $gfp + 164 | 0;
+    HEAP32[$8 >> 2] = $7;
+    var $9 = $7 | 0;
+    var $10 = $_1 - $9;
+    var $11 = $gfp + 160 | 0;
+    HEAPF32[$11 >> 2] = $10;
+    var $_09 = $ret_1;
+    label = 4;
+    break;
+   case 4:
+    var $_09;
+    return $_09;
+  }
+}
+function _lame_get_VBR_quality($gfp) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = _is_lame_global_flags_valid($gfp);
+    var $2 = ($1 | 0) == 0;
+    if ($2) {
+      var $_0 = 0;
+      label = 4;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 3:
+    var $4 = $gfp + 164 | 0;
+    var $5 = HEAP32[$4 >> 2];
+    var $6 = $5 | 0;
+    var $7 = $gfp + 160 | 0;
+    var $8 = HEAPF32[$7 >> 2];
+    var $9 = $6 + $8;
+    var $_0 = $9;
+    label = 4;
+    break;
+   case 4:
+    var $_0;
+    return $_0;
+  }
+}
+function _lame_set_VBR_mean_bitrate_kbps($gfp, $VBR_mean_bitrate_kbps) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = _is_lame_global_flags_valid($gfp);
+    var $2 = ($1 | 0) == 0;
+    if ($2) {
+      var $_0 = -1;
+      label = 4;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 3:
+    var $4 = $gfp + 168 | 0;
+    HEAP32[$4 >> 2] = $VBR_mean_bitrate_kbps;
+    var $_0 = 0;
+    label = 4;
+    break;
+   case 4:
+    var $_0;
+    return $_0;
+  }
+}
+function _lame_get_VBR_mean_bitrate_kbps($gfp) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = _is_lame_global_flags_valid($gfp);
+    var $2 = ($1 | 0) == 0;
+    if ($2) {
+      var $_0 = 0;
+      label = 4;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 3:
+    var $4 = $gfp + 168 | 0;
+    var $5 = HEAP32[$4 >> 2];
+    var $_0 = $5;
+    label = 4;
+    break;
+   case 4:
+    var $_0;
+    return $_0;
+  }
+}
+function _lame_set_VBR_min_bitrate_kbps($gfp, $VBR_min_bitrate_kbps) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = _is_lame_global_flags_valid($gfp);
+    var $2 = ($1 | 0) == 0;
+    if ($2) {
+      var $_0 = -1;
+      label = 4;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 3:
+    var $4 = $gfp + 172 | 0;
+    HEAP32[$4 >> 2] = $VBR_min_bitrate_kbps;
+    var $_0 = 0;
+    label = 4;
+    break;
+   case 4:
+    var $_0;
+    return $_0;
+  }
+}
+function _lame_get_VBR_min_bitrate_kbps($gfp) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = _is_lame_global_flags_valid($gfp);
+    var $2 = ($1 | 0) == 0;
+    if ($2) {
+      var $_0 = 0;
+      label = 4;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 3:
+    var $4 = $gfp + 172 | 0;
+    var $5 = HEAP32[$4 >> 2];
+    var $_0 = $5;
+    label = 4;
+    break;
+   case 4:
+    var $_0;
+    return $_0;
+  }
+}
+function _lame_set_VBR_max_bitrate_kbps($gfp, $VBR_max_bitrate_kbps) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = _is_lame_global_flags_valid($gfp);
+    var $2 = ($1 | 0) == 0;
+    if ($2) {
+      var $_0 = -1;
+      label = 4;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 3:
+    var $4 = $gfp + 176 | 0;
+    HEAP32[$4 >> 2] = $VBR_max_bitrate_kbps;
+    var $_0 = 0;
+    label = 4;
+    break;
+   case 4:
+    var $_0;
+    return $_0;
+  }
+}
+function _lame_get_VBR_max_bitrate_kbps($gfp) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = _is_lame_global_flags_valid($gfp);
+    var $2 = ($1 | 0) == 0;
+    if ($2) {
+      var $_0 = 0;
+      label = 4;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 3:
+    var $4 = $gfp + 176 | 0;
+    var $5 = HEAP32[$4 >> 2];
+    var $_0 = $5;
+    label = 4;
+    break;
+   case 4:
+    var $_0;
+    return $_0;
+  }
+}
+function _lame_set_VBR_hard_min($gfp, $VBR_hard_min) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = _is_lame_global_flags_valid($gfp);
+    var $2 = ($1 | 0) == 0;
+    var $3 = $VBR_hard_min >>> 0 > 1;
+    var $or_cond = $2 | $3;
+    if ($or_cond) {
+      var $_0 = -1;
+      label = 4;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 3:
+    var $5 = $gfp + 180 | 0;
+    HEAP32[$5 >> 2] = $VBR_hard_min;
+    var $_0 = 0;
+    label = 4;
+    break;
+   case 4:
+    var $_0;
+    return $_0;
+  }
+}
+function _lame_get_VBR_hard_min($gfp) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = _is_lame_global_flags_valid($gfp);
+    var $2 = ($1 | 0) == 0;
+    if ($2) {
+      var $_0 = 0;
+      label = 4;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 3:
+    var $4 = $gfp + 180 | 0;
+    var $5 = HEAP32[$4 >> 2];
+    var $_0 = $5;
+    label = 4;
+    break;
+   case 4:
+    var $_0;
+    return $_0;
+  }
+}
+function _lame_set_lowpassfreq($gfp, $lowpassfreq) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = _is_lame_global_flags_valid($gfp);
+    var $2 = ($1 | 0) == 0;
+    if ($2) {
+      var $_0 = -1;
+      label = 4;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 3:
+    var $4 = $gfp + 184 | 0;
+    HEAP32[$4 >> 2] = $lowpassfreq;
+    var $_0 = 0;
+    label = 4;
+    break;
+   case 4:
+    var $_0;
+    return $_0;
+  }
+}
+function _lame_get_lowpassfreq($gfp) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = _is_lame_global_flags_valid($gfp);
+    var $2 = ($1 | 0) == 0;
+    if ($2) {
+      var $_0 = 0;
+      label = 4;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 3:
+    var $4 = $gfp + 184 | 0;
+    var $5 = HEAP32[$4 >> 2];
+    var $_0 = $5;
+    label = 4;
+    break;
+   case 4:
+    var $_0;
+    return $_0;
+  }
+}
+function _lame_set_lowpasswidth($gfp, $lowpasswidth) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = _is_lame_global_flags_valid($gfp);
+    var $2 = ($1 | 0) == 0;
+    if ($2) {
+      var $_0 = -1;
+      label = 4;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 3:
+    var $4 = $gfp + 192 | 0;
+    HEAP32[$4 >> 2] = $lowpasswidth;
+    var $_0 = 0;
+    label = 4;
+    break;
+   case 4:
+    var $_0;
+    return $_0;
+  }
+}
+function _lame_get_lowpasswidth($gfp) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = _is_lame_global_flags_valid($gfp);
+    var $2 = ($1 | 0) == 0;
+    if ($2) {
+      var $_0 = 0;
+      label = 4;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 3:
+    var $4 = $gfp + 192 | 0;
+    var $5 = HEAP32[$4 >> 2];
+    var $_0 = $5;
+    label = 4;
+    break;
+   case 4:
+    var $_0;
+    return $_0;
+  }
+}
+function _lame_set_athaa_loudapprox($gfp, $athaa_loudapprox) {
+  return 0;
+}
+function _lame_get_athaa_loudapprox($gfp) {
+  return 2;
+}
+function _lame_set_cwlimit($gfp, $cwlimit) {
+  return 0;
+}
+function _lame_get_cwlimit($gfp) {
+  return 0;
+}
+function _lame_get_AudiophileGain($gfp) {
+  return 0;
+}
+function _lame_set_highpassfreq($gfp, $highpassfreq) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = _is_lame_global_flags_valid($gfp);
+    var $2 = ($1 | 0) == 0;
+    if ($2) {
+      var $_0 = -1;
+      label = 4;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 3:
+    var $4 = $gfp + 188 | 0;
+    HEAP32[$4 >> 2] = $highpassfreq;
+    var $_0 = 0;
+    label = 4;
+    break;
+   case 4:
+    var $_0;
+    return $_0;
+  }
+}
+function _lame_get_highpassfreq($gfp) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = _is_lame_global_flags_valid($gfp);
+    var $2 = ($1 | 0) == 0;
+    if ($2) {
+      var $_0 = 0;
+      label = 4;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 3:
+    var $4 = $gfp + 188 | 0;
+    var $5 = HEAP32[$4 >> 2];
+    var $_0 = $5;
+    label = 4;
+    break;
+   case 4:
+    var $_0;
+    return $_0;
+  }
+}
+function _lame_set_highpasswidth($gfp, $highpasswidth) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = _is_lame_global_flags_valid($gfp);
+    var $2 = ($1 | 0) == 0;
+    if ($2) {
+      var $_0 = -1;
+      label = 4;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 3:
+    var $4 = $gfp + 196 | 0;
+    HEAP32[$4 >> 2] = $highpasswidth;
+    var $_0 = 0;
+    label = 4;
+    break;
+   case 4:
+    var $_0;
+    return $_0;
+  }
+}
+function _lame_get_highpasswidth($gfp) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = _is_lame_global_flags_valid($gfp);
+    var $2 = ($1 | 0) == 0;
+    if ($2) {
+      var $_0 = 0;
+      label = 4;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 3:
+    var $4 = $gfp + 196 | 0;
+    var $5 = HEAP32[$4 >> 2];
+    var $_0 = $5;
+    label = 4;
+    break;
+   case 4:
+    var $_0;
+    return $_0;
+  }
+}
+function _lame_set_maskingadjust($gfp, $adjust) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = _is_lame_global_flags_valid($gfp);
+    var $2 = ($1 | 0) == 0;
+    if ($2) {
+      var $_0 = -1;
+      label = 4;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 3:
+    var $4 = $gfp + 200 | 0;
+    HEAPF32[$4 >> 2] = $adjust;
+    var $_0 = 0;
+    label = 4;
+    break;
+   case 4:
+    var $_0;
+    return $_0;
+  }
+}
+function _lame_get_maskingadjust($gfp) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = _is_lame_global_flags_valid($gfp);
+    var $2 = ($1 | 0) == 0;
+    if ($2) {
+      var $_0 = 0;
+      label = 4;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 3:
+    var $4 = $gfp + 200 | 0;
+    var $5 = HEAPF32[$4 >> 2];
+    var $_0 = $5;
+    label = 4;
+    break;
+   case 4:
+    var $_0;
+    return $_0;
+  }
+}
+function _lame_set_maskingadjust_short($gfp, $adjust) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = _is_lame_global_flags_valid($gfp);
+    var $2 = ($1 | 0) == 0;
+    if ($2) {
+      var $_0 = -1;
+      label = 4;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 3:
+    var $4 = $gfp + 204 | 0;
+    HEAPF32[$4 >> 2] = $adjust;
+    var $_0 = 0;
+    label = 4;
+    break;
+   case 4:
+    var $_0;
+    return $_0;
+  }
+}
+function _lame_get_maskingadjust_short($gfp) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = _is_lame_global_flags_valid($gfp);
+    var $2 = ($1 | 0) == 0;
+    if ($2) {
+      var $_0 = 0;
+      label = 4;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 3:
+    var $4 = $gfp + 204 | 0;
+    var $5 = HEAPF32[$4 >> 2];
+    var $_0 = $5;
+    label = 4;
+    break;
+   case 4:
+    var $_0;
+    return $_0;
+  }
+}
+function _lame_set_ATHonly($gfp, $ATHonly) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = _is_lame_global_flags_valid($gfp);
+    var $2 = ($1 | 0) == 0;
+    if ($2) {
+      var $_0 = -1;
+      label = 4;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 3:
+    var $4 = $gfp + 208 | 0;
+    HEAP32[$4 >> 2] = $ATHonly;
+    var $_0 = 0;
+    label = 4;
+    break;
+   case 4:
+    var $_0;
+    return $_0;
+  }
+}
+function _lame_get_ATHonly($gfp) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = _is_lame_global_flags_valid($gfp);
+    var $2 = ($1 | 0) == 0;
+    if ($2) {
+      var $_0 = 0;
+      label = 4;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 3:
+    var $4 = $gfp + 208 | 0;
+    var $5 = HEAP32[$4 >> 2];
+    var $_0 = $5;
+    label = 4;
+    break;
+   case 4:
+    var $_0;
+    return $_0;
+  }
+}
+function _lame_set_ATHshort($gfp, $ATHshort) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = _is_lame_global_flags_valid($gfp);
+    var $2 = ($1 | 0) == 0;
+    if ($2) {
+      var $_0 = -1;
+      label = 4;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 3:
+    var $4 = $gfp + 212 | 0;
+    HEAP32[$4 >> 2] = $ATHshort;
+    var $_0 = 0;
+    label = 4;
+    break;
+   case 4:
+    var $_0;
+    return $_0;
+  }
+}
+function _lame_get_ATHshort($gfp) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = _is_lame_global_flags_valid($gfp);
+    var $2 = ($1 | 0) == 0;
+    if ($2) {
+      var $_0 = 0;
+      label = 4;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 3:
+    var $4 = $gfp + 212 | 0;
+    var $5 = HEAP32[$4 >> 2];
+    var $_0 = $5;
+    label = 4;
+    break;
+   case 4:
+    var $_0;
+    return $_0;
+  }
+}
+function _lame_set_noATH($gfp, $noATH) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = _is_lame_global_flags_valid($gfp);
+    var $2 = ($1 | 0) == 0;
+    if ($2) {
+      var $_0 = -1;
+      label = 4;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 3:
+    var $4 = $gfp + 216 | 0;
+    HEAP32[$4 >> 2] = $noATH;
+    var $_0 = 0;
+    label = 4;
+    break;
+   case 4:
+    var $_0;
+    return $_0;
+  }
+}
+function _lame_get_noATH($gfp) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = _is_lame_global_flags_valid($gfp);
+    var $2 = ($1 | 0) == 0;
+    if ($2) {
+      var $_0 = 0;
+      label = 4;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 3:
+    var $4 = $gfp + 216 | 0;
+    var $5 = HEAP32[$4 >> 2];
+    var $_0 = $5;
+    label = 4;
+    break;
+   case 4:
+    var $_0;
+    return $_0;
+  }
+}
+function _lame_set_ATHtype($gfp, $ATHtype) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = _is_lame_global_flags_valid($gfp);
+    var $2 = ($1 | 0) == 0;
+    if ($2) {
+      var $_0 = -1;
+      label = 4;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 3:
+    var $4 = $gfp + 220 | 0;
+    HEAP32[$4 >> 2] = $ATHtype;
+    var $_0 = 0;
+    label = 4;
+    break;
+   case 4:
+    var $_0;
+    return $_0;
+  }
+}
+function _lame_get_ATHtype($gfp) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = _is_lame_global_flags_valid($gfp);
+    var $2 = ($1 | 0) == 0;
+    if ($2) {
+      var $_0 = 0;
+      label = 4;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 3:
+    var $4 = $gfp + 220 | 0;
+    var $5 = HEAP32[$4 >> 2];
+    var $_0 = $5;
+    label = 4;
+    break;
+   case 4:
+    var $_0;
+    return $_0;
+  }
+}
+function _lame_set_ATHcurve($gfp, $ATHcurve) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = _is_lame_global_flags_valid($gfp);
+    var $2 = ($1 | 0) == 0;
+    if ($2) {
+      var $_0 = -1;
+      label = 4;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 3:
+    var $4 = $gfp + 224 | 0;
+    HEAPF32[$4 >> 2] = $ATHcurve;
+    var $_0 = 0;
+    label = 4;
+    break;
+   case 4:
+    var $_0;
+    return $_0;
+  }
+}
+function _lame_get_ATHcurve($gfp) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = _is_lame_global_flags_valid($gfp);
+    var $2 = ($1 | 0) == 0;
+    if ($2) {
+      var $_0 = 0;
+      label = 4;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 3:
+    var $4 = $gfp + 224 | 0;
+    var $5 = HEAPF32[$4 >> 2];
+    var $_0 = $5;
+    label = 4;
+    break;
+   case 4:
+    var $_0;
+    return $_0;
+  }
+}
+function _lame_set_ATHlower($gfp, $ATHlower) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = _is_lame_global_flags_valid($gfp);
+    var $2 = ($1 | 0) == 0;
+    if ($2) {
+      var $_0 = -1;
+      label = 4;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 3:
+    var $4 = $gfp + 228 | 0;
+    HEAPF32[$4 >> 2] = $ATHlower;
+    var $_0 = 0;
+    label = 4;
+    break;
+   case 4:
+    var $_0;
+    return $_0;
+  }
+}
+function _lame_get_ATHlower($gfp) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = _is_lame_global_flags_valid($gfp);
+    var $2 = ($1 | 0) == 0;
+    if ($2) {
+      var $_0 = 0;
+      label = 4;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 3:
+    var $4 = $gfp + 228 | 0;
+    var $5 = HEAPF32[$4 >> 2];
+    var $_0 = $5;
+    label = 4;
+    break;
+   case 4:
+    var $_0;
+    return $_0;
+  }
+}
+function _lame_set_athaa_type($gfp, $athaa_type) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = _is_lame_global_flags_valid($gfp);
+    var $2 = ($1 | 0) == 0;
+    if ($2) {
+      var $_0 = -1;
+      label = 4;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 3:
+    var $4 = $gfp + 232 | 0;
+    HEAP32[$4 >> 2] = $athaa_type;
+    var $_0 = 0;
+    label = 4;
+    break;
+   case 4:
+    var $_0;
+    return $_0;
+  }
+}
+function _lame_get_athaa_type($gfp) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = _is_lame_global_flags_valid($gfp);
+    var $2 = ($1 | 0) == 0;
+    if ($2) {
+      var $_0 = 0;
+      label = 4;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 3:
+    var $4 = $gfp + 232 | 0;
+    var $5 = HEAP32[$4 >> 2];
+    var $_0 = $5;
+    label = 4;
+    break;
+   case 4:
+    var $_0;
+    return $_0;
+  }
+}
+function _lame_set_athaa_sensitivity($gfp, $athaa_sensitivity) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = _is_lame_global_flags_valid($gfp);
+    var $2 = ($1 | 0) == 0;
+    if ($2) {
+      var $_0 = -1;
+      label = 4;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 3:
+    var $4 = $gfp + 236 | 0;
+    HEAPF32[$4 >> 2] = $athaa_sensitivity;
+    var $_0 = 0;
+    label = 4;
+    break;
+   case 4:
+    var $_0;
+    return $_0;
+  }
+}
+function _lame_get_athaa_sensitivity($gfp) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = _is_lame_global_flags_valid($gfp);
+    var $2 = ($1 | 0) == 0;
+    if ($2) {
+      var $_0 = 0;
+      label = 4;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 3:
+    var $4 = $gfp + 236 | 0;
+    var $5 = HEAPF32[$4 >> 2];
+    var $_0 = $5;
+    label = 4;
+    break;
+   case 4:
+    var $_0;
+    return $_0;
+  }
+}
+function _lame_set_allow_diff_short($gfp, $allow_diff_short) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = _is_lame_global_flags_valid($gfp);
+    var $2 = ($1 | 0) == 0;
+    if ($2) {
+      var $_0 = -1;
+      label = 4;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 3:
+    var $not_ = ($allow_diff_short | 0) == 0;
+    var $4 = $not_ & 1;
+    var $5 = $gfp + 240 | 0;
+    HEAP32[$5 >> 2] = $4;
+    var $_0 = 0;
+    label = 4;
+    break;
+   case 4:
+    var $_0;
+    return $_0;
+  }
+}
+function _lame_get_allow_diff_short($gfp) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = _is_lame_global_flags_valid($gfp);
+    var $2 = ($1 | 0) == 0;
+    if ($2) {
+      var $_0 = 0;
+      label = 4;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 3:
+    var $4 = $gfp + 240 | 0;
+    var $5 = HEAP32[$4 >> 2];
+    var $6 = ($5 | 0) == 0;
+    var $_ = $6 & 1;
+    var $_0 = $_;
+    label = 4;
+    break;
+   case 4:
+    var $_0;
+    return $_0;
+  }
+}
+function _lame_set_useTemporal($gfp, $useTemporal) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = _is_lame_global_flags_valid($gfp);
+    var $2 = ($1 | 0) != 0;
+    var $3 = $useTemporal >>> 0 < 2;
+    var $or_cond = $2 & $3;
+    if ($or_cond) {
+      label = 3;
+      break;
+    } else {
+      var $_0 = -1;
+      label = 4;
+      break;
+    }
+   case 3:
+    var $5 = $gfp + 244 | 0;
+    HEAP32[$5 >> 2] = $useTemporal;
+    var $_0 = 0;
+    label = 4;
+    break;
+   case 4:
+    var $_0;
+    return $_0;
+  }
+}
+function _lame_get_useTemporal($gfp) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = _is_lame_global_flags_valid($gfp);
+    var $2 = ($1 | 0) == 0;
+    if ($2) {
+      var $_0 = 0;
+      label = 4;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 3:
+    var $4 = $gfp + 244 | 0;
+    var $5 = HEAP32[$4 >> 2];
+    var $_0 = $5;
+    label = 4;
+    break;
+   case 4:
+    var $_0;
+    return $_0;
+  }
+}
+function _lame_set_interChRatio($gfp, $ratio) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = _is_lame_global_flags_valid($gfp);
+    var $2 = ($1 | 0) == 0;
+    var $3 = $ratio < 0;
+    var $or_cond = $2 | $3;
+    var $4 = $ratio > 1;
+    var $or_cond6 = $or_cond | $4;
+    if ($or_cond6) {
+      var $_0 = -1;
+      label = 4;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 3:
+    var $6 = $gfp + 248 | 0;
+    HEAPF32[$6 >> 2] = $ratio;
+    var $_0 = 0;
+    label = 4;
+    break;
+   case 4:
+    var $_0;
+    return $_0;
+  }
+}
+function _lame_get_interChRatio($gfp) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = _is_lame_global_flags_valid($gfp);
+    var $2 = ($1 | 0) == 0;
+    if ($2) {
+      var $_0 = 0;
+      label = 4;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 3:
+    var $4 = $gfp + 248 | 0;
+    var $5 = HEAPF32[$4 >> 2];
+    var $_0 = $5;
+    label = 4;
+    break;
+   case 4:
+    var $_0;
+    return $_0;
+  }
+}
+function _lame_set_substep($gfp, $method) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = _is_lame_global_flags_valid($gfp);
+    var $2 = ($1 | 0) != 0;
+    var $3 = $method >>> 0 < 8;
+    var $or_cond = $2 & $3;
+    if ($or_cond) {
+      label = 3;
+      break;
+    } else {
+      var $_0 = -1;
+      label = 4;
+      break;
+    }
+   case 3:
+    var $5 = $gfp + 80 | 0;
+    HEAP32[$5 >> 2] = $method;
+    var $_0 = 0;
+    label = 4;
+    break;
+   case 4:
+    var $_0;
+    return $_0;
+  }
+}
+function _lame_get_substep($gfp) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = _is_lame_global_flags_valid($gfp);
+    var $2 = ($1 | 0) == 0;
+    if ($2) {
+      var $_0 = 0;
+      label = 4;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 3:
+    var $4 = $gfp + 80 | 0;
+    var $5 = HEAP32[$4 >> 2];
+    var $_0 = $5;
+    label = 4;
+    break;
+   case 4:
+    var $_0;
+    return $_0;
+  }
+}
+function _lame_set_sfscale($gfp, $val) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = _is_lame_global_flags_valid($gfp);
+    var $2 = ($1 | 0) == 0;
+    if ($2) {
+      var $_0 = -1;
+      label = 4;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 3:
+    var $4 = ($val | 0) != 0;
+    var $5 = $4 ? 2 : 1;
+    var $6 = $gfp + 84 | 0;
+    HEAP32[$6 >> 2] = $5;
+    var $_0 = 0;
+    label = 4;
+    break;
+   case 4:
+    var $_0;
+    return $_0;
+  }
+}
+function _lame_get_sfscale($gfp) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = _is_lame_global_flags_valid($gfp);
+    var $2 = ($1 | 0) == 0;
+    if ($2) {
+      var $_0 = 0;
+      label = 4;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 3:
+    var $4 = $gfp + 84 | 0;
+    var $5 = HEAP32[$4 >> 2];
+    var $6 = ($5 | 0) == 2;
+    var $7 = $6 & 1;
+    var $_0 = $7;
+    label = 4;
+    break;
+   case 4:
+    var $_0;
+    return $_0;
+  }
+}
+function _lame_set_subblock_gain($gfp, $sbgain) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = _is_lame_global_flags_valid($gfp);
+    var $2 = ($1 | 0) == 0;
+    if ($2) {
+      var $_0 = -1;
+      label = 4;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 3:
+    var $4 = $gfp + 88 | 0;
+    HEAP32[$4 >> 2] = $sbgain;
+    var $_0 = 0;
+    label = 4;
+    break;
+   case 4:
+    var $_0;
+    return $_0;
+  }
+}
+function _lame_get_subblock_gain($gfp) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = _is_lame_global_flags_valid($gfp);
+    var $2 = ($1 | 0) == 0;
+    if ($2) {
+      var $_0 = 0;
+      label = 4;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 3:
+    var $4 = $gfp + 88 | 0;
+    var $5 = HEAP32[$4 >> 2];
+    var $_0 = $5;
+    label = 4;
+    break;
+   case 4:
+    var $_0;
+    return $_0;
+  }
+}
+function _lame_set_no_short_blocks($gfp, $no_short_blocks) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = _is_lame_global_flags_valid($gfp);
+    var $2 = ($1 | 0) != 0;
+    var $3 = $no_short_blocks >>> 0 < 2;
+    var $or_cond = $2 & $3;
+    if ($or_cond) {
+      label = 3;
+      break;
+    } else {
+      var $_0 = -1;
+      label = 4;
+      break;
+    }
+   case 3:
+    var $5 = ($no_short_blocks | 0) != 0;
+    var $6 = $5 ? 2 : 0;
+    var $7 = $gfp + 240 | 0;
+    HEAP32[$7 >> 2] = $6;
+    var $_0 = 0;
+    label = 4;
+    break;
+   case 4:
+    var $_0;
+    return $_0;
+  }
+}
+function _lame_get_no_short_blocks($gfp) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = _is_lame_global_flags_valid($gfp);
+    var $2 = ($1 | 0) == 0;
+    if ($2) {
+      var $_0 = -1;
+      label = 6;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 3:
+    var $4 = $gfp + 240 | 0;
+    var $5 = HEAP32[$4 >> 2];
+    if (($5 | 0) == 2) {
+      label = 4;
+      break;
+    } else if (($5 | 0) == 3 | ($5 | 0) == 0 | ($5 | 0) == 1) {
+      label = 5;
+      break;
+    } else {
+      var $_0 = -1;
+      label = 6;
+      break;
+    }
+   case 4:
+    var $_0 = 1;
+    label = 6;
+    break;
+   case 5:
+    var $_0 = 0;
+    label = 6;
+    break;
+   case 6:
+    var $_0;
+    return $_0;
+  }
+}
+function _lame_set_force_short_blocks($gfp, $short_blocks) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = _is_lame_global_flags_valid($gfp);
+    var $2 = ($1 | 0) == 0;
+    var $3 = $short_blocks >>> 0 > 1;
+    var $or_cond = $2 | $3;
+    if ($or_cond) {
+      var $_0 = -1;
+      label = 7;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 3:
+    var $5 = ($short_blocks | 0) == 1;
+    var $6 = $gfp + 240 | 0;
+    if ($5) {
+      label = 4;
+      break;
+    } else {
+      label = 5;
+      break;
+    }
+   case 4:
+    HEAP32[$6 >> 2] = 3;
+    var $_0 = 0;
+    label = 7;
+    break;
+   case 5:
+    var $9 = HEAP32[$6 >> 2];
+    var $10 = ($9 | 0) == 3;
+    if ($10) {
+      label = 6;
+      break;
+    } else {
+      var $_0 = 0;
+      label = 7;
+      break;
+    }
+   case 6:
+    HEAP32[$6 >> 2] = 0;
+    var $_0 = 0;
+    label = 7;
+    break;
+   case 7:
+    var $_0;
+    return $_0;
+  }
+}
+function _lame_get_force_short_blocks($gfp) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = _is_lame_global_flags_valid($gfp);
+    var $2 = ($1 | 0) == 0;
+    if ($2) {
+      var $_0 = -1;
+      label = 6;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 3:
+    var $4 = $gfp + 240 | 0;
+    var $5 = HEAP32[$4 >> 2];
+    if (($5 | 0) == 2 | ($5 | 0) == 0 | ($5 | 0) == 1) {
+      label = 4;
+      break;
+    } else if (($5 | 0) == 3) {
+      label = 5;
+      break;
+    } else {
+      var $_0 = -1;
+      label = 6;
+      break;
+    }
+   case 4:
+    var $_0 = 0;
+    label = 6;
+    break;
+   case 5:
+    var $_0 = 1;
+    label = 6;
+    break;
+   case 6:
+    var $_0;
+    return $_0;
+  }
+}
+function _lame_set_short_threshold_lrm($gfp, $lrm) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = _is_lame_global_flags_valid($gfp);
+    var $2 = ($1 | 0) == 0;
+    if ($2) {
+      var $_0 = -1;
+      label = 4;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 3:
+    var $4 = $gfp + 264 | 0;
+    HEAPF32[$4 >> 2] = $lrm;
+    var $_0 = 0;
+    label = 4;
+    break;
+   case 4:
+    var $_0;
+    return $_0;
+  }
+}
+function _lame_get_short_threshold_lrm($gfp) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = _is_lame_global_flags_valid($gfp);
+    var $2 = ($1 | 0) == 0;
+    if ($2) {
+      var $_0 = 0;
+      label = 4;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 3:
+    var $4 = $gfp + 264 | 0;
+    var $5 = HEAPF32[$4 >> 2];
+    var $_0 = $5;
+    label = 4;
+    break;
+   case 4:
+    var $_0;
+    return $_0;
+  }
+}
+function _lame_set_short_threshold_s($gfp, $s) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = _is_lame_global_flags_valid($gfp);
+    var $2 = ($1 | 0) == 0;
+    if ($2) {
+      var $_0 = -1;
+      label = 4;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 3:
+    var $4 = $gfp + 268 | 0;
+    HEAPF32[$4 >> 2] = $s;
+    var $_0 = 0;
+    label = 4;
+    break;
+   case 4:
+    var $_0;
+    return $_0;
+  }
+}
+function _lame_get_short_threshold_s($gfp) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = _is_lame_global_flags_valid($gfp);
+    var $2 = ($1 | 0) == 0;
+    if ($2) {
+      var $_0 = 0;
+      label = 4;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 3:
+    var $4 = $gfp + 268 | 0;
+    var $5 = HEAPF32[$4 >> 2];
+    var $_0 = $5;
+    label = 4;
+    break;
+   case 4:
+    var $_0;
+    return $_0;
+  }
+}
+function _lame_set_short_threshold($gfp, $lrm, $s) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = _is_lame_global_flags_valid($gfp);
+    var $2 = ($1 | 0) == 0;
+    if ($2) {
+      var $_0 = -1;
+      label = 4;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 3:
+    var $4 = _lame_set_short_threshold_lrm($gfp, $lrm);
+    var $5 = _lame_set_short_threshold_s($gfp, $s);
+    var $_0 = 0;
+    label = 4;
+    break;
+   case 4:
+    var $_0;
+    return $_0;
+  }
+}
+function _lame_set_emphasis($gfp, $emphasis) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = _is_lame_global_flags_valid($gfp);
+    var $2 = ($1 | 0) != 0;
+    var $3 = $emphasis >>> 0 < 4;
+    var $or_cond = $2 & $3;
+    if ($or_cond) {
+      label = 3;
+      break;
+    } else {
+      var $_0 = -1;
+      label = 4;
+      break;
+    }
+   case 3:
+    var $5 = $gfp + 116 | 0;
+    HEAP32[$5 >> 2] = $emphasis;
+    var $_0 = 0;
+    label = 4;
+    break;
+   case 4:
+    var $_0;
+    return $_0;
+  }
+}
+function _lame_get_emphasis($gfp) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = _is_lame_global_flags_valid($gfp);
+    var $2 = ($1 | 0) == 0;
+    if ($2) {
+      var $_0 = 0;
+      label = 4;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 3:
+    var $4 = $gfp + 116 | 0;
+    var $5 = HEAP32[$4 >> 2];
+    var $_0 = $5;
+    label = 4;
+    break;
+   case 4:
+    var $_0;
+    return $_0;
+  }
+}
+function _lame_get_version($gfp) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = _is_lame_global_flags_valid($gfp);
+    var $2 = ($1 | 0) == 0;
+    if ($2) {
+      var $_0 = 0;
+      label = 5;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 3:
+    var $4 = $gfp + 288 | 0;
+    var $5 = HEAP32[$4 >> 2];
+    var $6 = _is_lame_internal_flags_valid($5);
+    var $7 = ($6 | 0) == 0;
+    if ($7) {
+      var $_0 = 0;
+      label = 5;
+      break;
+    } else {
+      label = 4;
+      break;
+    }
+   case 4:
+    var $9 = $5 + 16 | 0;
+    var $10 = HEAP32[$9 >> 2];
+    var $_0 = $10;
+    label = 5;
+    break;
+   case 5:
+    var $_0;
+    return $_0;
+  }
+}
+function _lame_get_encoder_delay($gfp) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = _is_lame_global_flags_valid($gfp);
+    var $2 = ($1 | 0) == 0;
+    if ($2) {
+      var $_0 = 0;
+      label = 5;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 3:
+    var $4 = $gfp + 288 | 0;
+    var $5 = HEAP32[$4 >> 2];
+    var $6 = _is_lame_internal_flags_valid($5);
+    var $7 = ($6 | 0) == 0;
+    if ($7) {
+      var $_0 = 0;
+      label = 5;
+      break;
+    } else {
+      label = 4;
+      break;
+    }
+   case 4:
+    var $9 = $5 + 84756 | 0;
+    var $10 = HEAP32[$9 >> 2];
+    var $_0 = $10;
+    label = 5;
+    break;
+   case 5:
+    var $_0;
+    return $_0;
+  }
+}
+function _lame_get_encoder_padding($gfp) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = _is_lame_global_flags_valid($gfp);
+    var $2 = ($1 | 0) == 0;
+    if ($2) {
+      var $_0 = 0;
+      label = 5;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 3:
+    var $4 = $gfp + 288 | 0;
+    var $5 = HEAP32[$4 >> 2];
+    var $6 = _is_lame_internal_flags_valid($5);
+    var $7 = ($6 | 0) == 0;
+    if ($7) {
+      var $_0 = 0;
+      label = 5;
+      break;
+    } else {
+      label = 4;
+      break;
+    }
+   case 4:
+    var $9 = $5 + 84760 | 0;
+    var $10 = HEAP32[$9 >> 2];
+    var $_0 = $10;
+    label = 5;
+    break;
+   case 5:
+    var $_0;
+    return $_0;
+  }
+}
+function _lame_get_framesize($gfp) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = _is_lame_global_flags_valid($gfp);
+    var $2 = ($1 | 0) == 0;
+    if ($2) {
+      var $_0 = 0;
+      label = 5;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 3:
+    var $4 = $gfp + 288 | 0;
+    var $5 = HEAP32[$4 >> 2];
+    var $6 = _is_lame_internal_flags_valid($5);
+    var $7 = ($6 | 0) == 0;
+    if ($7) {
+      var $_0 = 0;
+      label = 5;
+      break;
+    } else {
+      label = 4;
+      break;
+    }
+   case 4:
+    var $9 = $5 + 76 | 0;
+    var $10 = HEAP32[$9 >> 2];
+    var $11 = $10 * 576 & -1;
+    var $_0 = $11;
+    label = 5;
+    break;
+   case 5:
+    var $_0;
+    return $_0;
+  }
+}
+function _lame_get_frameNum($gfp) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = _is_lame_global_flags_valid($gfp);
+    var $2 = ($1 | 0) == 0;
+    if ($2) {
+      var $_0 = 0;
+      label = 5;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 3:
+    var $4 = $gfp + 288 | 0;
+    var $5 = HEAP32[$4 >> 2];
+    var $6 = _is_lame_internal_flags_valid($5);
+    var $7 = ($6 | 0) == 0;
+    if ($7) {
+      var $_0 = 0;
+      label = 5;
+      break;
+    } else {
+      label = 4;
+      break;
+    }
+   case 4:
+    var $9 = $5 + 84744 | 0;
+    var $10 = HEAP32[$9 >> 2];
+    var $_0 = $10;
+    label = 5;
+    break;
+   case 5:
+    var $_0;
+    return $_0;
+  }
+}
+function _lame_get_mf_samples_to_encode($gfp) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = _is_lame_global_flags_valid($gfp);
+    var $2 = ($1 | 0) == 0;
+    if ($2) {
+      var $_0 = 0;
+      label = 5;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 3:
+    var $4 = $gfp + 288 | 0;
+    var $5 = HEAP32[$4 >> 2];
+    var $6 = _is_lame_internal_flags_valid($5);
+    var $7 = ($6 | 0) == 0;
+    if ($7) {
+      var $_0 = 0;
+      label = 5;
+      break;
+    } else {
+      label = 4;
+      break;
+    }
+   case 4:
+    var $9 = $5 + 84028 | 0;
+    var $10 = HEAP32[$9 >> 2];
+    var $_0 = $10;
+    label = 5;
+    break;
+   case 5:
+    var $_0;
+    return $_0;
+  }
+}
+function _lame_get_size_mp3buffer($gfp) {
+  var label = 0;
+  var __stackBase__ = STACKTOP;
+  STACKTOP = STACKTOP + 4 | 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $size = __stackBase__;
+    var $1 = _is_lame_global_flags_valid($gfp);
+    var $2 = ($1 | 0) == 0;
+    if ($2) {
+      var $_0 = 0;
+      label = 5;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 3:
+    var $4 = $gfp + 288 | 0;
+    var $5 = HEAP32[$4 >> 2];
+    var $6 = _is_lame_internal_flags_valid($5);
+    var $7 = ($6 | 0) == 0;
+    if ($7) {
+      var $_0 = 0;
+      label = 5;
+      break;
+    } else {
+      label = 4;
+      break;
+    }
+   case 4:
+    var $9 = _compute_flushbits($5, $size);
+    var $10 = HEAP32[$size >> 2];
+    var $_0 = $10;
+    label = 5;
+    break;
+   case 5:
+    var $_0;
+    STACKTOP = __stackBase__;
+    return $_0;
+  }
+}
+function _lame_get_RadioGain($gfp) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = _is_lame_global_flags_valid($gfp);
+    var $2 = ($1 | 0) == 0;
+    if ($2) {
+      var $_0 = 0;
+      label = 5;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 3:
+    var $4 = $gfp + 288 | 0;
+    var $5 = HEAP32[$4 >> 2];
+    var $6 = _is_lame_internal_flags_valid($5);
+    var $7 = ($6 | 0) == 0;
+    if ($7) {
+      var $_0 = 0;
+      label = 5;
+      break;
+    } else {
+      label = 4;
+      break;
+    }
+   case 4:
+    var $9 = $5 + 85684 | 0;
+    var $10 = HEAP32[$9 >> 2];
+    var $_0 = $10;
+    label = 5;
+    break;
+   case 5:
+    var $_0;
+    return $_0;
+  }
+}
+function _lame_get_PeakSample($gfp) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = _is_lame_global_flags_valid($gfp);
+    var $2 = ($1 | 0) == 0;
+    if ($2) {
+      var $_0 = 0;
+      label = 5;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 3:
+    var $4 = $gfp + 288 | 0;
+    var $5 = HEAP32[$4 >> 2];
+    var $6 = _is_lame_internal_flags_valid($5);
+    var $7 = ($6 | 0) == 0;
+    if ($7) {
+      var $_0 = 0;
+      label = 5;
+      break;
+    } else {
+      label = 4;
+      break;
+    }
+   case 4:
+    var $9 = $5 + 85680 | 0;
+    var $10 = HEAPF32[$9 >> 2];
+    var $_0 = $10;
+    label = 5;
+    break;
+   case 5:
+    var $_0;
+    return $_0;
+  }
+}
+function _lame_get_noclipGainChange($gfp) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = _is_lame_global_flags_valid($gfp);
+    var $2 = ($1 | 0) == 0;
+    if ($2) {
+      var $_0 = 0;
+      label = 5;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 3:
+    var $4 = $gfp + 288 | 0;
+    var $5 = HEAP32[$4 >> 2];
+    var $6 = _is_lame_internal_flags_valid($5);
+    var $7 = ($6 | 0) == 0;
+    if ($7) {
+      var $_0 = 0;
+      label = 5;
+      break;
+    } else {
+      label = 4;
+      break;
+    }
+   case 4:
+    var $9 = $5 + 85688 | 0;
+    var $10 = HEAP32[$9 >> 2];
+    var $_0 = $10;
+    label = 5;
+    break;
+   case 5:
+    var $_0;
+    return $_0;
+  }
+}
+function _lame_get_noclipScale($gfp) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = _is_lame_global_flags_valid($gfp);
+    var $2 = ($1 | 0) == 0;
+    if ($2) {
+      var $_0 = 0;
+      label = 5;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 3:
+    var $4 = $gfp + 288 | 0;
+    var $5 = HEAP32[$4 >> 2];
+    var $6 = _is_lame_internal_flags_valid($5);
+    var $7 = ($6 | 0) == 0;
+    if ($7) {
+      var $_0 = 0;
+      label = 5;
+      break;
+    } else {
+      label = 4;
+      break;
+    }
+   case 4:
+    var $9 = $5 + 85676 | 0;
+    var $10 = HEAPF32[$9 >> 2];
+    var $_0 = $10;
+    label = 5;
+    break;
+   case 5:
+    var $_0;
+    return $_0;
+  }
+}
+function _lame_set_preset_expopts($gfp, $preset_expopts) {
+  return 0;
+}
+function _lame_set_preset_notune($gfp, $preset_notune) {
+  return 0;
+}
+function _lame_get_bitrate($mpeg_version, $table_index) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = $mpeg_version >>> 0 < 3;
+    var $2 = $table_index >>> 0 < 16;
+    var $or_cond = $1 & $2;
+    if ($or_cond) {
+      label = 3;
+      break;
+    } else {
+      var $_0 = -1;
+      label = 4;
+      break;
+    }
+   case 3:
+    var $4 = 5348684 + ($mpeg_version << 6) + ($table_index << 2) | 0;
+    var $5 = HEAP32[$4 >> 2];
+    var $_0 = $5;
+    label = 4;
+    break;
+   case 4:
+    var $_0;
+    return $_0;
+  }
+}
+function _lame_get_samplerate($mpeg_version, $table_index) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = $mpeg_version >>> 0 < 3;
+    var $2 = $table_index >>> 0 < 4;
+    var $or_cond = $1 & $2;
+    if ($or_cond) {
+      label = 3;
+      break;
+    } else {
+      var $_0 = -1;
+      label = 4;
+      break;
+    }
+   case 3:
+    var $4 = 5256796 + ($mpeg_version << 4) + ($table_index << 2) | 0;
+    var $5 = HEAP32[$4 >> 2];
+    var $_0 = $5;
+    label = 4;
+    break;
+   case 4:
+    var $_0;
+    return $_0;
+  }
+}
+function _lame_get_totalframes($gfp) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = _is_lame_global_flags_valid($gfp);
+    var $2 = ($1 | 0) == 0;
+    if ($2) {
+      var $_0 = 0;
+      label = 8;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 3:
+    var $4 = $gfp + 288 | 0;
+    var $5 = HEAP32[$4 >> 2];
+    var $6 = _is_lame_internal_flags_valid($5);
+    var $7 = ($6 | 0) == 0;
+    if ($7) {
+      var $_0 = 0;
+      label = 8;
+      break;
+    } else {
+      label = 4;
+      break;
+    }
+   case 4:
+    var $9 = $5 + 76 | 0;
+    var $10 = HEAP32[$9 >> 2];
+    var $11 = $10 * 576 & -1;
+    var $12 = $gfp + 4 | 0;
+    var $13 = HEAP32[$12 >> 2];
+    var $14 = ($13 | 0) == -1;
+    if ($14) {
+      var $_0 = 0;
+      label = 8;
+      break;
+    } else {
+      label = 5;
+      break;
+    }
+   case 5:
+    var $16 = $gfp + 12 | 0;
+    var $17 = HEAP32[$16 >> 2];
+    var $18 = $gfp + 16 | 0;
+    var $19 = HEAP32[$18 >> 2];
+    var $20 = ($17 | 0) != ($19 | 0);
+    var $21 = ($17 | 0) > 0;
+    var $or_cond = $20 & $21;
+    if ($or_cond) {
+      label = 6;
+      break;
+    } else {
+      var $pcm_samples_to_encode_0 = $13;
+      label = 7;
+      break;
+    }
+   case 6:
+    var $23 = $19 | 0;
+    var $24 = $17 | 0;
+    var $25 = $23 / $24;
+    var $26 = $13 >>> 0;
+    var $27 = $26 * $25;
+    var $28 = $27 >= 0 ? Math.floor($27) : Math.ceil($27);
+    var $pcm_samples_to_encode_0 = $28;
+    label = 7;
+    break;
+   case 7:
+    var $pcm_samples_to_encode_0;
+    var $30 = $pcm_samples_to_encode_0 + 576 | 0;
+    var $31 = ($30 >>> 0) % ($11 >>> 0);
+    var $32 = $11 - $31 | 0;
+    var $33 = $32 >>> 0 < 576;
+    var $34 = $33 ? $11 : 0;
+    var $end_padding_0 = $32 + $30 | 0;
+    var $35 = $end_padding_0 + $34 | 0;
+    var $36 = Math.floor(($35 >>> 0) / ($11 >>> 0));
+    var $_0 = $36;
+    label = 8;
+    break;
+   case 8:
+    var $_0;
+    return $_0;
+  }
+}
+function _lame_set_preset($gfp, $preset) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = _is_lame_global_flags_valid($gfp);
+    var $2 = ($1 | 0) == 0;
+    if ($2) {
+      var $_0 = -1;
+      label = 4;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 3:
+    var $4 = $gfp + 152 | 0;
+    HEAP32[$4 >> 2] = $preset;
+    var $5 = _apply_preset($gfp, $preset, 1);
+    var $_0 = $5;
+    label = 4;
+    break;
+   case 4:
+    var $_0;
+    return $_0;
+  }
+}
+function _lame_set_asm_optimizations($gfp, $optim, $mode) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = _is_lame_global_flags_valid($gfp);
+    var $2 = ($1 | 0) == 0;
+    if ($2) {
+      var $_0 = -1;
+      label = 7;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 3:
+    var $4 = ($mode | 0) == 1;
+    var $5 = $4 & 1;
+    if (($optim | 0) == 1) {
+      label = 4;
+      break;
+    } else if (($optim | 0) == 2) {
+      label = 5;
+      break;
+    } else if (($optim | 0) == 3) {
+      label = 6;
+      break;
+    } else {
+      var $_0 = $optim;
+      label = 7;
+      break;
+    }
+   case 4:
+    var $7 = $gfp + 292 | 0;
+    HEAP32[$7 >> 2] = $5;
+    var $_0 = 1;
+    label = 7;
+    break;
+   case 5:
+    var $9 = $gfp + 296 | 0;
+    HEAP32[$9 >> 2] = $5;
+    var $_0 = 2;
+    label = 7;
+    break;
+   case 6:
+    var $11 = $gfp + 300 | 0;
+    HEAP32[$11 >> 2] = $5;
+    var $_0 = 3;
+    label = 7;
+    break;
+   case 7:
+    var $_0;
+    return $_0;
+  }
+}
+function _lame_set_write_id3tag_automatic($gfp, $v) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = _is_lame_global_flags_valid($gfp);
+    var $2 = ($1 | 0) == 0;
+    if ($2) {
+      label = 4;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 3:
+    var $4 = $gfp + 68 | 0;
+    HEAP32[$4 >> 2] = $v;
+    label = 4;
+    break;
+   case 4:
+    return;
+  }
+}
+function _lame_get_write_id3tag_automatic($gfp) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = _is_lame_global_flags_valid($gfp);
+    var $2 = ($1 | 0) == 0;
+    if ($2) {
+      var $_0 = 1;
+      label = 4;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 3:
+    var $4 = $gfp + 68 | 0;
+    var $5 = HEAP32[$4 >> 2];
+    var $_0 = $5;
+    label = 4;
+    break;
+   case 4:
+    var $_0;
+    return $_0;
+  }
+}
+function _lame_set_tune($gfp, $val) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = _is_lame_global_flags_valid($gfp);
+    var $2 = ($1 | 0) == 0;
+    if ($2) {
+      label = 4;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 3:
+    var $4 = $gfp + 260 | 0;
+    HEAPF32[$4 >> 2] = $val;
+    var $5 = $gfp + 256 | 0;
+    HEAP32[$5 >> 2] = 1;
+    label = 4;
+    break;
+   case 4:
+    return;
+  }
+}
+function _lame_set_msfix($gfp, $msfix) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = _is_lame_global_flags_valid($gfp);
+    var $2 = ($1 | 0) == 0;
+    if ($2) {
+      label = 4;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 3:
+    var $4 = $msfix;
+    var $5 = $gfp + 252 | 0;
+    HEAPF32[$5 >> 2] = $4;
+    label = 4;
+    break;
+   case 4:
+    return;
+  }
+}
+function _lame_get_msfix($gfp) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = _is_lame_global_flags_valid($gfp);
+    var $2 = ($1 | 0) == 0;
+    if ($2) {
+      var $_0 = 0;
+      label = 4;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 3:
+    var $4 = $gfp + 252 | 0;
+    var $5 = HEAPF32[$4 >> 2];
+    var $_0 = $5;
+    label = 4;
+    break;
+   case 4:
+    var $_0;
+    return $_0;
+  }
+}
+function _noquant_count_bits($gfc, $gi, $prev_noise) {
+  var label = 0;
+  var __stackBase__ = STACKTOP;
+  STACKTOP = STACKTOP + 4 | 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $bits = __stackBase__;
+    HEAP32[$bits >> 2] = 0;
+    var $1 = $gi + 2304 | 0;
+    var $2 = $gi + 5208 | 0;
+    var $3 = HEAP32[$2 >> 2];
+    var $4 = $3 + 2 | 0;
+    var $5 = $4 & -2;
+    var $6 = ($5 | 0) > 576;
+    var $_ = $6 ? 576 : $5;
+    var $7 = ($prev_noise | 0) != 0;
+    if ($7) {
+      label = 3;
+      break;
+    } else {
+      var $i_0 = $_;
+      label = 4;
+      break;
+    }
+   case 3:
+    var $9 = $prev_noise + 4 | 0;
+    HEAP32[$9 >> 2] = 0;
+    var $i_0 = $_;
+    label = 4;
+    break;
+   case 4:
+    var $i_0;
+    var $10 = ($i_0 | 0) > 1;
+    if ($10) {
+      label = 6;
+      break;
+    } else {
+      label = 5;
+      break;
+    }
+   case 5:
+    var $11 = $gi + 4776 | 0;
+    HEAP32[$11 >> 2] = $i_0;
+    label = 10;
+    break;
+   case 6:
+    var $13 = $i_0 - 1 | 0;
+    var $14 = $gi + 2304 + ($13 << 2) | 0;
+    var $15 = HEAP32[$14 >> 2];
+    var $16 = $i_0 - 2 | 0;
+    var $17 = $gi + 2304 + ($16 << 2) | 0;
+    var $18 = HEAP32[$17 >> 2];
+    var $19 = $18 | $15;
+    var $20 = ($19 | 0) == 0;
+    if ($20) {
+      var $i_0 = $16;
+      label = 4;
+      break;
+    } else {
+      label = 7;
+      break;
+    }
+   case 7:
+    var $22 = $gi + 4776 | 0;
+    HEAP32[$22 >> 2] = $i_0;
+    var $23 = ($i_0 | 0) > 3;
+    if ($23) {
+      var $a2_0104 = 0;
+      var $a1_0105 = 0;
+      var $i_1106 = $i_0;
+      label = 8;
+      break;
+    } else {
+      label = 10;
+      break;
+    }
+   case 8:
+    var $i_1106;
+    var $a1_0105;
+    var $a2_0104;
+    var $24 = $i_1106 - 4 | 0;
+    var $25 = $gi + 2304 + ($24 << 2) | 0;
+    var $26 = HEAP32[$25 >> 2];
+    var $27 = $i_1106 - 3 | 0;
+    var $28 = $gi + 2304 + ($27 << 2) | 0;
+    var $29 = HEAP32[$28 >> 2];
+    var $30 = $i_1106 - 2 | 0;
+    var $31 = $gi + 2304 + ($30 << 2) | 0;
+    var $32 = HEAP32[$31 >> 2];
+    var $33 = $i_1106 - 1 | 0;
+    var $34 = $gi + 2304 + ($33 << 2) | 0;
+    var $35 = HEAP32[$34 >> 2];
+    var $36 = $29 | $26;
+    var $37 = $36 | $32;
+    var $38 = $37 | $35;
+    var $39 = $38 >>> 0 > 1;
+    if ($39) {
+      var $a2_0_lcssa = $a2_0104;
+      var $a1_0_lcssa = $a1_0105;
+      var $i_1_lcssa = $i_1106;
+      label = 11;
+      break;
+    } else {
+      label = 9;
+      break;
+    }
+   case 9:
+    var $41 = $26 << 1;
+    var $42 = $41 + $29 | 0;
+    var $43 = $42 << 1;
+    var $44 = $43 + $32 | 0;
+    var $45 = $44 << 1;
+    var $46 = $45 + $35 | 0;
+    var $47 = $46 + 5250312 | 0;
+    var $48 = HEAP8[$47];
+    var $49 = $48 & 255;
+    var $50 = $49 + $a1_0105 | 0;
+    var $51 = $46 + 5250264 | 0;
+    var $52 = HEAP8[$51];
+    var $53 = $52 & 255;
+    var $54 = $53 + $a2_0104 | 0;
+    var $55 = ($24 | 0) > 3;
+    if ($55) {
+      var $a2_0104 = $54;
+      var $a1_0105 = $50;
+      var $i_1106 = $24;
+      label = 8;
+      break;
+    } else {
+      var $a2_0_lcssa = $54;
+      var $a1_0_lcssa = $50;
+      var $i_1_lcssa = $24;
+      label = 11;
+      break;
+    }
+   case 10:
+    HEAP32[$bits >> 2] = 0;
+    var $56 = $gi + 4840 | 0;
+    HEAP32[$56 >> 2] = 0;
+    var $i_1_lcssa116 = $i_0;
+    label = 13;
+    break;
+   case 11:
+    var $i_1_lcssa;
+    var $a1_0_lcssa;
+    var $a2_0_lcssa;
+    HEAP32[$bits >> 2] = $a1_0_lcssa;
+    var $57 = $gi + 4840 | 0;
+    HEAP32[$57 >> 2] = 0;
+    var $58 = ($a1_0_lcssa | 0) > ($a2_0_lcssa | 0);
+    if ($58) {
+      label = 12;
+      break;
+    } else {
+      var $i_1_lcssa116 = $i_1_lcssa;
+      label = 13;
+      break;
+    }
+   case 12:
+    HEAP32[$bits >> 2] = $a2_0_lcssa;
+    HEAP32[$57 >> 2] = 1;
+    var $i_1_lcssa116 = $i_1_lcssa;
+    label = 13;
+    break;
+   case 13:
+    var $i_1_lcssa116;
+    var $61 = HEAP32[$bits >> 2];
+    var $62 = $gi + 5184 | 0;
+    HEAP32[$62 >> 2] = $61;
+    var $63 = $gi + 4772 | 0;
+    HEAP32[$63 >> 2] = $i_1_lcssa116;
+    var $64 = ($i_1_lcssa116 | 0) == 0;
+    if ($64) {
+      label = 30;
+      break;
+    } else {
+      label = 14;
+      break;
+    }
+   case 14:
+    var $66 = $gi + 4788 | 0;
+    var $67 = HEAP32[$66 >> 2];
+    if (($67 | 0) == 2) {
+      label = 15;
+      break;
+    } else if (($67 | 0) == 0) {
+      label = 16;
+      break;
+    } else {
+      label = 18;
+      break;
+    }
+   case 15:
+    var $69 = $gfc + 21464 | 0;
+    var $70 = HEAP32[$69 >> 2];
+    var $71 = $70 * 3 & -1;
+    var $72 = ($71 | 0) > ($i_1_lcssa116 | 0);
+    var $i_1_ = $72 ? $i_1_lcssa116 : $71;
+    var $a1_2 = $i_1_;
+    var $a2_1 = $i_1_lcssa116;
+    label = 19;
+    break;
+   case 16:
+    var $74 = $i_1_lcssa116 - 2 | 0;
+    var $75 = $74 + ($gfc + 85096) | 0;
+    var $76 = HEAP8[$75];
+    var $77 = $76 << 24 >> 24;
+    var $78 = $gi + 4824 | 0;
+    HEAP32[$78 >> 2] = $77;
+    var $79 = $i_1_lcssa116 - 1 | 0;
+    var $80 = $79 + ($gfc + 85096) | 0;
+    var $81 = HEAP8[$80];
+    var $82 = $81 << 24 >> 24;
+    var $83 = $gi + 4828 | 0;
+    HEAP32[$83 >> 2] = $82;
+    var $84 = $77 + 2 | 0;
+    var $85 = $84 + $82 | 0;
+    var $86 = $gfc + 21360 + ($85 << 2) | 0;
+    var $87 = HEAP32[$86 >> 2];
+    var $88 = $77 + 1 | 0;
+    var $89 = $gfc + 21360 + ($88 << 2) | 0;
+    var $90 = HEAP32[$89 >> 2];
+    var $91 = ($87 | 0) < ($i_1_lcssa116 | 0);
+    if ($91) {
+      label = 17;
+      break;
+    } else {
+      var $a1_2 = $90;
+      var $a2_1 = $87;
+      label = 19;
+      break;
+    }
+   case 17:
+    var $93 = $gfc + 85812 | 0;
+    var $94 = HEAP32[$93 >> 2];
+    var $95 = $gi + 2304 + ($87 << 2) | 0;
+    var $96 = $gi + 2304 + ($i_1_lcssa116 << 2) | 0;
+    var $97 = FUNCTION_TABLE[$94]($95, $96, $bits);
+    var $98 = $gi + 4804 | 0;
+    HEAP32[$98 >> 2] = $97;
+    var $a1_2 = $90;
+    var $a2_1 = $87;
+    label = 19;
+    break;
+   case 18:
+    var $100 = $gi + 4824 | 0;
+    HEAP32[$100 >> 2] = 7;
+    var $101 = $gi + 4828 | 0;
+    HEAP32[$101 >> 2] = 13;
+    var $102 = $gfc + 21392 | 0;
+    var $103 = HEAP32[$102 >> 2];
+    var $104 = ($103 | 0) > ($i_1_lcssa116 | 0);
+    var $i_1_103 = $104 ? $i_1_lcssa116 : $103;
+    var $a1_2 = $i_1_103;
+    var $a2_1 = $i_1_lcssa116;
+    label = 19;
+    break;
+   case 19:
+    var $a2_1;
+    var $a1_2;
+    var $106 = ($a1_2 | 0) < ($i_1_lcssa116 | 0);
+    var $107 = $106 ? $a1_2 : $i_1_lcssa116;
+    var $108 = ($a2_1 | 0) < ($i_1_lcssa116 | 0);
+    var $109 = $108 ? $a2_1 : $i_1_lcssa116;
+    var $110 = ($107 | 0) > 0;
+    if ($110) {
+      label = 20;
+      break;
+    } else {
+      label = 21;
+      break;
+    }
+   case 20:
+    var $112 = $gfc + 85812 | 0;
+    var $113 = HEAP32[$112 >> 2];
+    var $114 = $gi + 2304 + ($107 << 2) | 0;
+    var $115 = FUNCTION_TABLE[$113]($1, $114, $bits);
+    var $116 = $gi + 4796 | 0;
+    HEAP32[$116 >> 2] = $115;
+    label = 21;
+    break;
+   case 21:
+    var $118 = ($107 | 0) < ($109 | 0);
+    if ($118) {
+      label = 22;
+      break;
+    } else {
+      label = 23;
+      break;
+    }
+   case 22:
+    var $120 = $gfc + 85812 | 0;
+    var $121 = HEAP32[$120 >> 2];
+    var $122 = $gi + 2304 + ($107 << 2) | 0;
+    var $123 = $gi + 2304 + ($109 << 2) | 0;
+    var $124 = FUNCTION_TABLE[$121]($122, $123, $bits);
+    var $125 = $gi + 4800 | 0;
+    HEAP32[$125 >> 2] = $124;
+    label = 23;
+    break;
+   case 23:
+    var $127 = $gfc + 36 | 0;
+    var $128 = HEAP32[$127 >> 2];
+    var $129 = ($128 | 0) == 2;
+    if ($129) {
+      label = 24;
+      break;
+    } else {
+      label = 25;
+      break;
+    }
+   case 24:
+    var $131 = HEAP32[$bits >> 2];
+    var $132 = $gi + 4768 | 0;
+    HEAP32[$132 >> 2] = $131;
+    _best_huffman_divide($gfc, $gi);
+    var $133 = HEAP32[$132 >> 2];
+    HEAP32[$bits >> 2] = $133;
+    label = 25;
+    break;
+   case 25:
+    if ($7) {
+      label = 26;
+      break;
+    } else {
+      label = 30;
+      break;
+    }
+   case 26:
+    var $136 = HEAP32[$66 >> 2];
+    var $137 = ($136 | 0) == 0;
+    if ($137) {
+      label = 27;
+      break;
+    } else {
+      label = 30;
+      break;
+    }
+   case 27:
+    var $138 = HEAP32[$63 >> 2];
+    var $sfb_0 = 0;
+    label = 28;
+    break;
+   case 28:
+    var $sfb_0;
+    var $140 = $gfc + 21360 + ($sfb_0 << 2) | 0;
+    var $141 = HEAP32[$140 >> 2];
+    var $142 = ($141 | 0) < ($138 | 0);
+    var $143 = $sfb_0 + 1 | 0;
+    if ($142) {
+      var $sfb_0 = $143;
+      label = 28;
+      break;
+    } else {
+      label = 29;
+      break;
+    }
+   case 29:
+    var $145 = $prev_noise + 4 | 0;
+    HEAP32[$145 >> 2] = $sfb_0;
+    label = 30;
+    break;
+   case 30:
+    var $_0 = HEAP32[$bits >> 2];
+    STACKTOP = __stackBase__;
+    return $_0;
+  }
+}
+_noquant_count_bits["X"] = 1;
+function _best_huffman_divide($gfc, $gi) {
+  var label = 0;
+  var __stackBase__ = STACKTOP;
+  STACKTOP = STACKTOP + 5620 | 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $cod_info2 = __stackBase__;
+    var $r01_bits = __stackBase__ + 5252;
+    var $r01_div = __stackBase__ + 5344;
+    var $r0_tbl = __stackBase__ + 5436;
+    var $r1_tbl = __stackBase__ + 5528;
+    var $1 = $gi + 2304 | 0;
+    var $2 = $gi + 4788 | 0;
+    var $3 = HEAP32[$2 >> 2];
+    var $4 = ($3 | 0) == 2;
+    if ($4) {
+      label = 3;
+      break;
+    } else {
+      label = 4;
+      break;
+    }
+   case 3:
+    var $6 = $gfc + 76 | 0;
+    var $7 = HEAP32[$6 >> 2];
+    var $8 = ($7 | 0) == 1;
+    if ($8) {
+      label = 20;
+      break;
+    } else {
+      label = 4;
+      break;
+    }
+   case 4:
+    var $10 = $cod_info2;
+    var $11 = $gi;
+    for (var $$src = $11 >> 2, $$dest = $10 >> 2, $$stop = $$src + 1313; $$src < $$stop; $$src++, $$dest++) {
+      HEAP32[$$dest] = HEAP32[$$src];
+    }
+    var $12 = HEAP32[$2 >> 2];
+    var $13 = ($12 | 0) == 0;
+    if ($13) {
+      label = 5;
+      break;
+    } else {
+      label = 6;
+      break;
+    }
+   case 5:
+    var $15 = $r01_bits | 0;
+    var $16 = $r01_div | 0;
+    var $17 = $r0_tbl | 0;
+    var $18 = $r1_tbl | 0;
+    _recalc_divide_init($gfc, $gi, $1, $15, $16, $17, $18);
+    _recalc_divide_sub($gfc, $cod_info2, $gi, $1, $15, $16, $17, $18);
+    label = 6;
+    break;
+   case 6:
+    var $20 = $cod_info2 + 4772 | 0;
+    var $21 = HEAP32[$20 >> 2];
+    var $22 = ($21 | 0) == 0;
+    if ($22) {
+      label = 20;
+      break;
+    } else {
+      label = 7;
+      break;
+    }
+   case 7:
+    var $24 = $21 - 2 | 0;
+    var $25 = $gi + 2304 + ($24 << 2) | 0;
+    var $26 = HEAP32[$25 >> 2];
+    var $27 = $21 - 1 | 0;
+    var $28 = $gi + 2304 + ($27 << 2) | 0;
+    var $29 = HEAP32[$28 >> 2];
+    var $30 = $29 | $26;
+    var $31 = $30 >>> 0 > 1;
+    if ($31) {
+      label = 20;
+      break;
+    } else {
+      label = 8;
+      break;
+    }
+   case 8:
+    var $33 = $gi + 4776 | 0;
+    var $34 = HEAP32[$33 >> 2];
+    var $35 = $34 + 2 | 0;
+    var $36 = ($35 | 0) > 576;
+    if ($36) {
+      label = 20;
+      break;
+    } else {
+      label = 9;
+      break;
+    }
+   case 9:
+    for (var $$src = $11 >> 2, $$dest = $10 >> 2, $$stop = $$src + 1313; $$src < $$stop; $$src++, $$dest++) {
+      HEAP32[$$dest] = HEAP32[$$src];
+    }
+    var $38 = $cod_info2 + 4776 | 0;
+    HEAP32[$38 >> 2] = $35;
+    var $39 = HEAP32[$20 >> 2];
+    var $40 = ($35 | 0) > ($39 | 0);
+    if ($40) {
+      label = 10;
+      break;
+    } else {
+      var $a2_0_lcssa = 0;
+      var $a1_0_lcssa = 0;
+      var $i_0_lcssa = $35;
+      label = 12;
+      break;
+    }
+   case 10:
+    var $41 = HEAP32[$20 >> 2];
+    var $a2_055 = 0;
+    var $a1_056 = 0;
+    var $i_057 = $35;
+    label = 11;
+    break;
+   case 11:
+    var $i_057;
+    var $a1_056;
+    var $a2_055;
+    var $43 = $i_057 - 4 | 0;
+    var $44 = $gi + 2304 + ($43 << 2) | 0;
+    var $45 = HEAP32[$44 >> 2];
+    var $46 = $45 << 1;
+    var $47 = $i_057 - 3 | 0;
+    var $48 = $gi + 2304 + ($47 << 2) | 0;
+    var $49 = HEAP32[$48 >> 2];
+    var $50 = $46 + $49 | 0;
+    var $51 = $50 << 1;
+    var $52 = $i_057 - 2 | 0;
+    var $53 = $gi + 2304 + ($52 << 2) | 0;
+    var $54 = HEAP32[$53 >> 2];
+    var $55 = $51 + $54 | 0;
+    var $56 = $55 << 1;
+    var $57 = $i_057 - 1 | 0;
+    var $58 = $gi + 2304 + ($57 << 2) | 0;
+    var $59 = HEAP32[$58 >> 2];
+    var $60 = $56 + $59 | 0;
+    var $61 = $60 + 5250312 | 0;
+    var $62 = HEAP8[$61];
+    var $63 = $62 & 255;
+    var $64 = $63 + $a1_056 | 0;
+    var $65 = $60 + 5250264 | 0;
+    var $66 = HEAP8[$65];
+    var $67 = $66 & 255;
+    var $68 = $67 + $a2_055 | 0;
+    var $69 = ($43 | 0) > ($41 | 0);
+    if ($69) {
+      var $a2_055 = $68;
+      var $a1_056 = $64;
+      var $i_057 = $43;
+      label = 11;
+      break;
+    } else {
+      var $a2_0_lcssa = $68;
+      var $a1_0_lcssa = $64;
+      var $i_0_lcssa = $43;
+      label = 12;
+      break;
+    }
+   case 12:
+    var $i_0_lcssa;
+    var $a1_0_lcssa;
+    var $a2_0_lcssa;
+    HEAP32[$20 >> 2] = $i_0_lcssa;
+    var $70 = $cod_info2 + 4840 | 0;
+    var $71 = ($a1_0_lcssa | 0) > ($a2_0_lcssa | 0);
+    var $_ = $71 & 1;
+    var $a2_0_a1_0 = $71 ? $a2_0_lcssa : $a1_0_lcssa;
+    HEAP32[$70 >> 2] = $_;
+    var $72 = $cod_info2 + 5184 | 0;
+    HEAP32[$72 >> 2] = $a2_0_a1_0;
+    var $73 = $cod_info2 + 4788 | 0;
+    var $74 = HEAP32[$73 >> 2];
+    var $75 = ($74 | 0) == 0;
+    if ($75) {
+      label = 13;
+      break;
+    } else {
+      label = 14;
+      break;
+    }
+   case 13:
+    var $77 = $r01_bits | 0;
+    var $78 = $r01_div | 0;
+    var $79 = $r0_tbl | 0;
+    var $80 = $r1_tbl | 0;
+    _recalc_divide_sub($gfc, $cod_info2, $gi, $1, $77, $78, $79, $80);
+    label = 20;
+    break;
+   case 14:
+    var $82 = $cod_info2 + 4768 | 0;
+    HEAP32[$82 >> 2] = $a2_0_a1_0;
+    var $83 = $gfc + 21392 | 0;
+    var $84 = HEAP32[$83 >> 2];
+    var $85 = ($84 | 0) > ($i_0_lcssa | 0);
+    var $i_0_ = $85 ? $i_0_lcssa : $84;
+    var $86 = ($i_0_ | 0) > 0;
+    if ($86) {
+      label = 15;
+      break;
+    } else {
+      label = 16;
+      break;
+    }
+   case 15:
+    var $88 = $gfc + 85812 | 0;
+    var $89 = HEAP32[$88 >> 2];
+    var $90 = $gi + 2304 + ($i_0_ << 2) | 0;
+    var $91 = FUNCTION_TABLE[$89]($1, $90, $82);
+    var $92 = $cod_info2 + 4796 | 0;
+    HEAP32[$92 >> 2] = $91;
+    label = 16;
+    break;
+   case 16:
+    var $94 = ($i_0_lcssa | 0) > ($i_0_ | 0);
+    if ($94) {
+      label = 17;
+      break;
+    } else {
+      label = 18;
+      break;
+    }
+   case 17:
+    var $96 = $gfc + 85812 | 0;
+    var $97 = HEAP32[$96 >> 2];
+    var $98 = $gi + 2304 + ($i_0_ << 2) | 0;
+    var $99 = $gi + 2304 + ($i_0_lcssa << 2) | 0;
+    var $100 = FUNCTION_TABLE[$97]($98, $99, $82);
+    var $101 = $cod_info2 + 4800 | 0;
+    HEAP32[$101 >> 2] = $100;
+    label = 18;
+    break;
+   case 18:
+    var $103 = $gi + 4768 | 0;
+    var $104 = HEAP32[$103 >> 2];
+    var $105 = HEAP32[$82 >> 2];
+    var $106 = ($104 | 0) > ($105 | 0);
+    if ($106) {
+      label = 19;
+      break;
+    } else {
+      label = 20;
+      break;
+    }
+   case 19:
+    for (var $$src = $10 >> 2, $$dest = $11 >> 2, $$stop = $$src + 1313; $$src < $$stop; $$src++, $$dest++) {
+      HEAP32[$$dest] = HEAP32[$$src];
+    }
+    label = 20;
+    break;
+   case 20:
+    STACKTOP = __stackBase__;
+    return;
+  }
+}
+_best_huffman_divide["X"] = 1;
+function _count_bits($gfc, $xr, $gi, $prev_noise) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = $gi + 4780 | 0;
+    var $2 = HEAP32[$1 >> 2];
+    var $3 = 5326164 + ($2 << 2) | 0;
+    var $4 = HEAPF32[$3 >> 2];
+    var $5 = 8206 / $4;
+    var $6 = $gi + 4764 | 0;
+    var $7 = HEAPF32[$6 >> 2];
+    var $8 = $7 > $5;
+    if ($8) {
+      var $_0 = 1e5;
+      label = 11;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 3:
+    var $10 = $gi + 2304 | 0;
+    _quantize_xrpow($xr, $10, $4, $gi, $prev_noise);
+    var $11 = $gfc + 85092 | 0;
+    var $12 = HEAP32[$11 >> 2];
+    var $13 = $12 & 2;
+    var $14 = ($13 | 0) == 0;
+    if ($14) {
+      label = 10;
+      break;
+    } else {
+      label = 4;
+      break;
+    }
+   case 4:
+    var $16 = HEAP32[$1 >> 2];
+    var $17 = $gi + 4836 | 0;
+    var $18 = HEAP32[$17 >> 2];
+    var $19 = $18 + $16 | 0;
+    var $20 = 5326164 + ($19 << 2) | 0;
+    var $21 = HEAPF32[$20 >> 2];
+    var $22 = $21;
+    var $23 = .634521682242439 / $22;
+    var $24 = $23;
+    var $25 = $gi + 4860 | 0;
+    var $26 = HEAP32[$25 >> 2];
+    var $27 = ($26 | 0) > 0;
+    if ($27) {
+      var $j_033 = 0;
+      var $sfb_034 = 0;
+      label = 5;
+      break;
+    } else {
+      label = 10;
+      break;
+    }
+   case 5:
+    var $sfb_034;
+    var $j_033;
+    var $28 = $gi + 4872 + ($sfb_034 << 2) | 0;
+    var $29 = HEAP32[$28 >> 2];
+    var $30 = $gfc + 84932 + ($sfb_034 << 2) | 0;
+    var $31 = HEAP32[$30 >> 2];
+    var $32 = ($31 | 0) != 0;
+    var $33 = $29 + $j_033 | 0;
+    var $34 = ($29 | 0) > 0;
+    var $or_cond = $32 & $34;
+    if ($or_cond) {
+      var $k_031 = $j_033;
+      label = 6;
+      break;
+    } else {
+      label = 9;
+      break;
+    }
+   case 6:
+    var $k_031;
+    var $35 = $xr + ($k_031 << 2) | 0;
+    var $36 = HEAPF32[$35 >> 2];
+    var $37 = $36 < $24;
+    if ($37) {
+      var $42 = 0;
+      label = 8;
+      break;
+    } else {
+      label = 7;
+      break;
+    }
+   case 7:
+    var $39 = $gi + 2304 + ($k_031 << 2) | 0;
+    var $40 = HEAP32[$39 >> 2];
+    var $42 = $40;
+    label = 8;
+    break;
+   case 8:
+    var $42;
+    var $43 = $gi + 2304 + ($k_031 << 2) | 0;
+    HEAP32[$43 >> 2] = $42;
+    var $44 = $k_031 + 1 | 0;
+    var $45 = ($44 | 0) < ($33 | 0);
+    if ($45) {
+      var $k_031 = $44;
+      label = 6;
+      break;
+    } else {
+      label = 9;
+      break;
+    }
+   case 9:
+    var $46 = $sfb_034 + 1 | 0;
+    var $47 = HEAP32[$25 >> 2];
+    var $48 = ($46 | 0) < ($47 | 0);
+    if ($48) {
+      var $j_033 = $33;
+      var $sfb_034 = $46;
+      label = 5;
+      break;
+    } else {
+      label = 10;
+      break;
+    }
+   case 10:
+    var $49 = _noquant_count_bits($gfc, $gi, $prev_noise);
+    var $_0 = $49;
+    label = 11;
+    break;
+   case 11:
+    var $_0;
+    return $_0;
+  }
+}
+_count_bits["X"] = 1;
+function _quantize_xrpow($xp, $pi, $istep, $cod_info, $prev_noise) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = ($prev_noise | 0) != 0;
+    if ($1) {
+      label = 3;
+      break;
+    } else {
+      var $9 = 0;
+      label = 4;
+      break;
+    }
+   case 3:
+    var $3 = $cod_info + 4780 | 0;
+    var $4 = HEAP32[$3 >> 2];
+    var $5 = $prev_noise | 0;
+    var $6 = HEAP32[$5 >> 2];
+    var $7 = ($4 | 0) == ($6 | 0);
+    var $9 = $7;
+    label = 4;
+    break;
+   case 4:
+    var $9;
+    var $10 = $cod_info + 4788 | 0;
+    var $11 = HEAP32[$10 >> 2];
+    var $12 = ($11 | 0) == 2;
+    var $_ = $12 ? 38 : 21;
+    var $13 = $cod_info + 4780 | 0;
+    var $14 = $cod_info + 4832 | 0;
+    var $15 = $cod_info + 4836 | 0;
+    var $16 = $cod_info + 5208 | 0;
+    var $17 = $_ + 1 | 0;
+    var $18 = $prev_noise + 4 | 0;
+    var $j_0112 = 0;
+    var $sfb_0113 = 0;
+    var $iData_0115 = $pi;
+    var $accumulate_0118 = 0;
+    var $accumulate01_0119 = 0;
+    var $acc_iData_0120 = $pi;
+    var $acc_xp_0121 = $xp;
+    var $_0122 = $xp;
+    label = 5;
+    break;
+   case 5:
+    var $_0122;
+    var $acc_xp_0121;
+    var $acc_iData_0120;
+    var $accumulate01_0119;
+    var $accumulate_0118;
+    var $iData_0115;
+    var $sfb_0113;
+    var $j_0112;
+    if ($9) {
+      label = 7;
+      break;
+    } else {
+      label = 6;
+      break;
+    }
+   case 6:
+    var $21 = HEAP32[$10 >> 2];
+    var $22 = ($21 | 0) == 0;
+    if ($22) {
+      label = 7;
+      break;
+    } else {
+      var $step_0103 = -1;
+      label = 15;
+      break;
+    }
+   case 7:
+    var $24 = HEAP32[$13 >> 2];
+    var $25 = $cod_info + 4608 + ($sfb_0113 << 2) | 0;
+    var $26 = HEAP32[$25 >> 2];
+    var $27 = HEAP32[$14 >> 2];
+    var $28 = ($27 | 0) == 0;
+    if ($28) {
+      var $33 = 0;
+      label = 9;
+      break;
+    } else {
+      label = 8;
+      break;
+    }
+   case 8:
+    var $30 = 5257016 + ($sfb_0113 << 2) | 0;
+    var $31 = HEAP32[$30 >> 2];
+    var $33 = $31;
+    label = 9;
+    break;
+   case 9:
+    var $33;
+    var $34 = $33 + $26 | 0;
+    var $35 = HEAP32[$15 >> 2];
+    var $36 = $35 + 1 | 0;
+    var $37 = $34 << $36;
+    var $38 = $24 - $37 | 0;
+    var $39 = $cod_info + 5028 + ($sfb_0113 << 2) | 0;
+    var $40 = HEAP32[$39 >> 2];
+    var $41 = $cod_info + 4808 + ($40 << 2) | 0;
+    var $42 = HEAP32[$41 >> 2];
+    var $43 = $42 << 3;
+    var $44 = $38 - $43 | 0;
+    if ($9) {
+      label = 10;
+      break;
+    } else {
+      var $step_0103 = $44;
+      label = 15;
+      break;
+    }
+   case 10:
+    var $46 = $prev_noise + 8 + ($sfb_0113 << 2) | 0;
+    var $47 = HEAP32[$46 >> 2];
+    var $48 = ($47 | 0) == ($44 | 0);
+    if ($48) {
+      label = 11;
+      break;
+    } else {
+      var $step_0103 = $44;
+      label = 15;
+      break;
+    }
+   case 11:
+    var $50 = ($accumulate_0118 | 0) == 0;
+    if ($50) {
+      label = 13;
+      break;
+    } else {
+      label = 12;
+      break;
+    }
+   case 12:
+    _quantize_lines_xrpow($accumulate_0118, $istep, $acc_xp_0121, $acc_iData_0120);
+    label = 13;
+    break;
+   case 13:
+    var $53 = ($accumulate01_0119 | 0) == 0;
+    if ($53) {
+      var $acc_xp_5 = $acc_xp_0121;
+      var $acc_iData_5 = $acc_iData_0120;
+      var $accumulate01_4 = 0;
+      var $accumulate_4 = 0;
+      var $sfb_2 = $sfb_0113;
+      label = 31;
+      break;
+    } else {
+      label = 14;
+      break;
+    }
+   case 14:
+    _quantize_lines_xrpow_01($accumulate01_0119, $istep, $acc_xp_0121, $acc_iData_0120);
+    var $acc_xp_5 = $acc_xp_0121;
+    var $acc_iData_5 = $acc_iData_0120;
+    var $accumulate01_4 = 0;
+    var $accumulate_4 = 0;
+    var $sfb_2 = $sfb_0113;
+    label = 31;
+    break;
+   case 15:
+    var $step_0103;
+    var $55 = $cod_info + 4872 + ($sfb_0113 << 2) | 0;
+    var $56 = HEAP32[$55 >> 2];
+    var $57 = $56 + $j_0112 | 0;
+    var $58 = HEAP32[$16 >> 2];
+    var $59 = ($57 | 0) > ($58 | 0);
+    if ($59) {
+      label = 16;
+      break;
+    } else {
+      var $l_1 = $56;
+      var $sfb_1 = $sfb_0113;
+      label = 17;
+      break;
+    }
+   case 16:
+    var $61 = $58 - $j_0112 | 0;
+    var $62 = $61 + 1 | 0;
+    var $63 = $pi + ($58 << 2) | 0;
+    var $64 = $63;
+    var $65 = 576 - $58 | 0;
+    var $66 = $65 << 2;
+    _memset($64, 0, $66);
+    var $67 = ($62 | 0) < 0;
+    var $_100 = $67 ? 0 : $62;
+    var $l_1 = $_100;
+    var $sfb_1 = $17;
+    label = 17;
+    break;
+   case 17:
+    var $sfb_1;
+    var $l_1;
+    var $69 = ($accumulate_0118 | 0) != 0;
+    var $_not = $69 ^ 1;
+    var $70 = ($accumulate01_0119 | 0) == 0;
+    var $or_cond = $70 & $_not;
+    var $acc_iData_1 = $or_cond ? $iData_0115 : $acc_iData_0120;
+    var $acc_xp_1 = $or_cond ? $_0122 : $acc_xp_0121;
+    if ($1) {
+      label = 18;
+      break;
+    } else {
+      label = 23;
+      break;
+    }
+   case 18:
+    var $72 = HEAP32[$18 >> 2];
+    var $73 = ($72 | 0) < 1;
+    var $74 = ($sfb_1 | 0) < ($72 | 0);
+    var $or_cond101 = $73 | $74;
+    if ($or_cond101) {
+      label = 23;
+      break;
+    } else {
+      label = 19;
+      break;
+    }
+   case 19:
+    var $76 = $prev_noise + 8 + ($sfb_1 << 2) | 0;
+    var $77 = HEAP32[$76 >> 2];
+    var $78 = ($77 | 0) < 1;
+    var $79 = ($step_0103 | 0) < ($77 | 0);
+    var $or_cond102 = $78 | $79;
+    if ($or_cond102) {
+      label = 23;
+      break;
+    } else {
+      label = 20;
+      break;
+    }
+   case 20:
+    if ($69) {
+      label = 21;
+      break;
+    } else {
+      var $acc_xp_2 = $acc_xp_1;
+      var $acc_iData_2 = $acc_iData_1;
+      label = 22;
+      break;
+    }
+   case 21:
+    _quantize_lines_xrpow($accumulate_0118, $istep, $acc_xp_1, $acc_iData_1);
+    var $acc_xp_2 = $_0122;
+    var $acc_iData_2 = $iData_0115;
+    label = 22;
+    break;
+   case 22:
+    var $acc_iData_2;
+    var $acc_xp_2;
+    var $83 = $l_1 + $accumulate01_0119 | 0;
+    var $acc_xp_4 = $acc_xp_2;
+    var $acc_iData_4 = $acc_iData_2;
+    var $accumulate01_2 = $83;
+    var $accumulate_3 = 0;
+    label = 26;
+    break;
+   case 23:
+    if ($70) {
+      var $acc_xp_3 = $acc_xp_1;
+      var $acc_iData_3 = $acc_iData_1;
+      label = 25;
+      break;
+    } else {
+      label = 24;
+      break;
+    }
+   case 24:
+    _quantize_lines_xrpow_01($accumulate01_0119, $istep, $acc_xp_1, $acc_iData_1);
+    var $acc_xp_3 = $_0122;
+    var $acc_iData_3 = $iData_0115;
+    label = 25;
+    break;
+   case 25:
+    var $acc_iData_3;
+    var $acc_xp_3;
+    var $87 = $l_1 + $accumulate_0118 | 0;
+    var $acc_xp_4 = $acc_xp_3;
+    var $acc_iData_4 = $acc_iData_3;
+    var $accumulate01_2 = 0;
+    var $accumulate_3 = $87;
+    label = 26;
+    break;
+   case 26:
+    var $accumulate_3;
+    var $accumulate01_2;
+    var $acc_iData_4;
+    var $acc_xp_4;
+    var $89 = ($l_1 | 0) < 1;
+    if ($89) {
+      label = 27;
+      break;
+    } else {
+      var $acc_xp_5 = $acc_xp_4;
+      var $acc_iData_5 = $acc_iData_4;
+      var $accumulate01_4 = $accumulate01_2;
+      var $accumulate_4 = $accumulate_3;
+      var $sfb_2 = $sfb_1;
+      label = 31;
+      break;
+    }
+   case 27:
+    var $91 = ($accumulate01_2 | 0) == 0;
+    if ($91) {
+      label = 29;
+      break;
+    } else {
+      label = 28;
+      break;
+    }
+   case 28:
+    _quantize_lines_xrpow_01($accumulate01_2, $istep, $acc_xp_4, $acc_iData_4);
+    label = 29;
+    break;
+   case 29:
+    var $94 = ($accumulate_3 | 0) == 0;
+    if ($94) {
+      label = 38;
+      break;
+    } else {
+      label = 30;
+      break;
+    }
+   case 30:
+    _quantize_lines_xrpow($accumulate_3, $istep, $acc_xp_4, $acc_iData_4);
+    label = 38;
+    break;
+   case 31:
+    var $sfb_2;
+    var $accumulate_4;
+    var $accumulate01_4;
+    var $acc_iData_5;
+    var $acc_xp_5;
+    var $96 = ($sfb_2 | 0) > ($_ | 0);
+    if ($96) {
+      var $_1 = $_0122;
+      var $iData_1 = $iData_0115;
+      var $j_1 = $j_0112;
+      label = 33;
+      break;
+    } else {
+      label = 32;
+      break;
+    }
+   case 32:
+    var $98 = $cod_info + 4872 + ($sfb_2 << 2) | 0;
+    var $99 = HEAP32[$98 >> 2];
+    var $100 = $iData_0115 + ($99 << 2) | 0;
+    var $101 = $_0122 + ($99 << 2) | 0;
+    var $102 = $99 + $j_0112 | 0;
+    var $_1 = $101;
+    var $iData_1 = $100;
+    var $j_1 = $102;
+    label = 33;
+    break;
+   case 33:
+    var $j_1;
+    var $iData_1;
+    var $_1;
+    var $104 = $sfb_2 + 1 | 0;
+    var $105 = ($104 | 0) > ($_ | 0);
+    if ($105) {
+      label = 34;
+      break;
+    } else {
+      var $j_0112 = $j_1;
+      var $sfb_0113 = $104;
+      var $iData_0115 = $iData_1;
+      var $accumulate_0118 = $accumulate_4;
+      var $accumulate01_0119 = $accumulate01_4;
+      var $acc_iData_0120 = $acc_iData_5;
+      var $acc_xp_0121 = $acc_xp_5;
+      var $_0122 = $_1;
+      label = 5;
+      break;
+    }
+   case 34:
+    var $107 = ($accumulate_4 | 0) == 0;
+    if ($107) {
+      label = 36;
+      break;
+    } else {
+      label = 35;
+      break;
+    }
+   case 35:
+    _quantize_lines_xrpow($accumulate_4, $istep, $acc_xp_5, $acc_iData_5);
+    label = 36;
+    break;
+   case 36:
+    var $109 = ($accumulate01_4 | 0) == 0;
+    if ($109) {
+      label = 38;
+      break;
+    } else {
+      label = 37;
+      break;
+    }
+   case 37:
+    _quantize_lines_xrpow_01($accumulate01_4, $istep, $acc_xp_5, $acc_iData_5);
+    label = 38;
+    break;
+   case 38:
+    return;
+  }
+}
+_quantize_xrpow["X"] = 1;
+function _recalc_divide_init($gfc, $cod_info, $ix, $r01_bits, $r01_div, $r0_tbl, $r1_tbl) {
+  var label = 0;
+  var __stackBase__ = STACKTOP;
+  STACKTOP = STACKTOP + 8 | 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $bits = __stackBase__;
+    var $r0bits = __stackBase__ + 4;
+    var $0 = $cod_info + 4772 | 0;
+    var $1 = HEAP32[$0 >> 2];
+    HEAP32[$r01_bits >> 2] = 1e5;
+    var $2 = $r01_bits + 4 | 0;
+    HEAP32[$2 >> 2] = 1e5;
+    var $3 = $r01_bits + 8 | 0;
+    HEAP32[$3 >> 2] = 1e5;
+    var $4 = $r01_bits + 12 | 0;
+    HEAP32[$4 >> 2] = 1e5;
+    var $5 = $r01_bits + 16 | 0;
+    HEAP32[$5 >> 2] = 1e5;
+    var $6 = $r01_bits + 20 | 0;
+    HEAP32[$6 >> 2] = 1e5;
+    var $7 = $r01_bits + 24 | 0;
+    HEAP32[$7 >> 2] = 1e5;
+    var $8 = $r01_bits + 28 | 0;
+    HEAP32[$8 >> 2] = 1e5;
+    var $9 = $r01_bits + 32 | 0;
+    HEAP32[$9 >> 2] = 1e5;
+    var $10 = $r01_bits + 36 | 0;
+    HEAP32[$10 >> 2] = 1e5;
+    var $11 = $r01_bits + 40 | 0;
+    HEAP32[$11 >> 2] = 1e5;
+    var $12 = $r01_bits + 44 | 0;
+    HEAP32[$12 >> 2] = 1e5;
+    var $13 = $r01_bits + 48 | 0;
+    HEAP32[$13 >> 2] = 1e5;
+    var $14 = $r01_bits + 52 | 0;
+    HEAP32[$14 >> 2] = 1e5;
+    var $15 = $r01_bits + 56 | 0;
+    HEAP32[$15 >> 2] = 1e5;
+    var $16 = $r01_bits + 60 | 0;
+    HEAP32[$16 >> 2] = 1e5;
+    var $17 = $r01_bits + 64 | 0;
+    HEAP32[$17 >> 2] = 1e5;
+    var $18 = $r01_bits + 68 | 0;
+    HEAP32[$18 >> 2] = 1e5;
+    var $19 = $r01_bits + 72 | 0;
+    HEAP32[$19 >> 2] = 1e5;
+    var $20 = $r01_bits + 76 | 0;
+    HEAP32[$20 >> 2] = 1e5;
+    var $21 = $r01_bits + 80 | 0;
+    HEAP32[$21 >> 2] = 1e5;
+    var $22 = $r01_bits + 84 | 0;
+    HEAP32[$22 >> 2] = 1e5;
+    var $23 = $r01_bits + 88 | 0;
+    HEAP32[$23 >> 2] = 1e5;
+    var $24 = $gfc + 85812 | 0;
+    var $r0_139 = 0;
+    label = 4;
+    break;
+   case 3:
+    var $25 = ($27 | 0) < 16;
+    if ($25) {
+      var $r0_139 = $27;
+      label = 4;
+      break;
+    } else {
+      label = 10;
+      break;
+    }
+   case 4:
+    var $r0_139;
+    var $27 = $r0_139 + 1 | 0;
+    var $28 = $gfc + 21360 + ($27 << 2) | 0;
+    var $29 = HEAP32[$28 >> 2];
+    var $30 = ($29 | 0) < ($1 | 0);
+    if ($30) {
+      label = 5;
+      break;
+    } else {
+      label = 10;
+      break;
+    }
+   case 5:
+    HEAP32[$r0bits >> 2] = 0;
+    var $32 = HEAP32[$24 >> 2];
+    var $33 = $ix + ($29 << 2) | 0;
+    var $34 = FUNCTION_TABLE[$32]($ix, $33, $r0bits);
+    var $r1_038 = 0;
+    label = 6;
+    break;
+   case 6:
+    var $r1_038;
+    var $36 = $r1_038 + $r0_139 | 0;
+    var $37 = $36 + 2 | 0;
+    var $38 = $gfc + 21360 + ($37 << 2) | 0;
+    var $39 = HEAP32[$38 >> 2];
+    var $40 = ($39 | 0) < ($1 | 0);
+    if ($40) {
+      label = 7;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 7:
+    var $42 = HEAP32[$r0bits >> 2];
+    HEAP32[$bits >> 2] = $42;
+    var $43 = HEAP32[$24 >> 2];
+    var $44 = $ix + ($39 << 2) | 0;
+    var $45 = FUNCTION_TABLE[$43]($33, $44, $bits);
+    var $46 = $r01_bits + ($36 << 2) | 0;
+    var $47 = HEAP32[$46 >> 2];
+    var $48 = HEAP32[$bits >> 2];
+    var $49 = ($47 | 0) > ($48 | 0);
+    if ($49) {
+      label = 8;
+      break;
+    } else {
+      label = 9;
+      break;
+    }
+   case 8:
+    HEAP32[$46 >> 2] = $48;
+    var $51 = $r01_div + ($36 << 2) | 0;
+    HEAP32[$51 >> 2] = $r0_139;
+    var $52 = $r0_tbl + ($36 << 2) | 0;
+    HEAP32[$52 >> 2] = $34;
+    var $53 = $r1_tbl + ($36 << 2) | 0;
+    HEAP32[$53 >> 2] = $45;
+    label = 9;
+    break;
+   case 9:
+    var $55 = $r1_038 + 1 | 0;
+    var $56 = ($55 | 0) < 8;
+    if ($56) {
+      var $r1_038 = $55;
+      label = 6;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 10:
+    STACKTOP = __stackBase__;
+    return;
+  }
+}
+_recalc_divide_init["X"] = 1;
+function _recalc_divide_sub($gfc, $cod_info2, $gi, $ix, $r01_bits, $r01_div, $r0_tbl, $r1_tbl) {
+  var label = 0;
+  var __stackBase__ = STACKTOP;
+  STACKTOP = STACKTOP + 4 | 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $bits = __stackBase__;
+    var $1 = $cod_info2 + 4772 | 0;
+    var $2 = HEAP32[$1 >> 2];
+    var $3 = $cod_info2 + 5184 | 0;
+    var $4 = $gi + 4768 | 0;
+    var $5 = $gfc + 85812 | 0;
+    var $6 = $ix + ($2 << 2) | 0;
+    var $7 = $gi;
+    var $8 = $cod_info2;
+    var $9 = $gi + 4824 | 0;
+    var $10 = $gi + 4828 | 0;
+    var $11 = $gi + 4796 | 0;
+    var $12 = $gi + 4800 | 0;
+    var $13 = $gi + 4804 | 0;
+    var $r2_031 = 2;
+    label = 3;
+    break;
+   case 3:
+    var $r2_031;
+    var $15 = $gfc + 21360 + ($r2_031 << 2) | 0;
+    var $16 = HEAP32[$15 >> 2];
+    var $17 = ($16 | 0) < ($2 | 0);
+    if ($17) {
+      label = 4;
+      break;
+    } else {
+      label = 8;
+      break;
+    }
+   case 4:
+    var $19 = $r2_031 - 2 | 0;
+    var $20 = $r01_bits + ($19 << 2) | 0;
+    var $21 = HEAP32[$20 >> 2];
+    var $22 = HEAP32[$3 >> 2];
+    var $23 = $22 + $21 | 0;
+    HEAP32[$bits >> 2] = $23;
+    var $24 = HEAP32[$4 >> 2];
+    var $25 = ($24 | 0) > ($23 | 0);
+    if ($25) {
+      label = 5;
+      break;
+    } else {
+      label = 8;
+      break;
+    }
+   case 5:
+    var $27 = HEAP32[$5 >> 2];
+    var $28 = $ix + ($16 << 2) | 0;
+    var $29 = FUNCTION_TABLE[$27]($28, $6, $bits);
+    var $30 = HEAP32[$4 >> 2];
+    var $31 = HEAP32[$bits >> 2];
+    var $32 = ($30 | 0) > ($31 | 0);
+    if ($32) {
+      label = 6;
+      break;
+    } else {
+      label = 7;
+      break;
+    }
+   case 6:
+    for (var $$src = $8 >> 2, $$dest = $7 >> 2, $$stop = $$src + 1313; $$src < $$stop; $$src++, $$dest++) {
+      HEAP32[$$dest] = HEAP32[$$src];
+    }
+    var $34 = HEAP32[$bits >> 2];
+    HEAP32[$4 >> 2] = $34;
+    var $35 = $r01_div + ($19 << 2) | 0;
+    var $36 = HEAP32[$35 >> 2];
+    HEAP32[$9 >> 2] = $36;
+    var $37 = HEAP32[$35 >> 2];
+    var $38 = $19 - $37 | 0;
+    HEAP32[$10 >> 2] = $38;
+    var $39 = $r0_tbl + ($19 << 2) | 0;
+    var $40 = HEAP32[$39 >> 2];
+    HEAP32[$11 >> 2] = $40;
+    var $41 = $r1_tbl + ($19 << 2) | 0;
+    var $42 = HEAP32[$41 >> 2];
+    HEAP32[$12 >> 2] = $42;
+    HEAP32[$13 >> 2] = $29;
+    label = 7;
+    break;
+   case 7:
+    var $44 = $r2_031 + 1 | 0;
+    var $45 = ($44 | 0) < 23;
+    if ($45) {
+      var $r2_031 = $44;
+      label = 3;
+      break;
+    } else {
+      label = 8;
+      break;
+    }
+   case 8:
+    STACKTOP = __stackBase__;
+    return;
+  }
+}
+_recalc_divide_sub["X"] = 1;
+function _best_scalefac_store($gfc, $gr, $ch, $l3_side) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = $l3_side + $gr * 10504 + $ch * 5252 | 0;
+    var $2 = $l3_side + $gr * 10504 + $ch * 5252 + 4860 | 0;
+    var $3 = HEAP32[$2 >> 2];
+    var $4 = ($3 | 0) > 0;
+    if ($4) {
+      var $j_090 = 0;
+      var $recalc_091 = 0;
+      var $sfb_092 = 0;
+      label = 3;
+      break;
+    } else {
+      var $recalc_0_lcssa = 0;
+      label = 9;
+      break;
+    }
+   case 3:
+    var $sfb_092;
+    var $recalc_091;
+    var $j_090;
+    var $5 = $l3_side + $gr * 10504 + $ch * 5252 + 4872 + ($sfb_092 << 2) | 0;
+    var $6 = HEAP32[$5 >> 2];
+    var $7 = $6 + $j_090 | 0;
+    var $l_0 = $j_090;
+    label = 4;
+    break;
+   case 4:
+    var $l_0;
+    var $9 = ($l_0 | 0) < ($7 | 0);
+    if ($9) {
+      label = 5;
+      break;
+    } else {
+      label = 6;
+      break;
+    }
+   case 5:
+    var $11 = $l3_side + $gr * 10504 + $ch * 5252 + 2304 + ($l_0 << 2) | 0;
+    var $12 = HEAP32[$11 >> 2];
+    var $13 = ($12 | 0) == 0;
+    var $14 = $l_0 + 1 | 0;
+    if ($13) {
+      var $l_0 = $14;
+      label = 4;
+      break;
+    } else {
+      label = 6;
+      break;
+    }
+   case 6:
+    var $16 = ($l_0 | 0) == ($7 | 0);
+    if ($16) {
+      label = 7;
+      break;
+    } else {
+      var $recalc_1 = $recalc_091;
+      label = 8;
+      break;
+    }
+   case 7:
+    var $18 = $l3_side + $gr * 10504 + $ch * 5252 + 4608 + ($sfb_092 << 2) | 0;
+    HEAP32[$18 >> 2] = -2;
+    var $recalc_1 = -2;
+    label = 8;
+    break;
+   case 8:
+    var $recalc_1;
+    var $20 = $sfb_092 + 1 | 0;
+    var $21 = HEAP32[$2 >> 2];
+    var $22 = ($20 | 0) < ($21 | 0);
+    if ($22) {
+      var $j_090 = $7;
+      var $recalc_091 = $recalc_1;
+      var $sfb_092 = $20;
+      label = 3;
+      break;
+    } else {
+      var $recalc_0_lcssa = $recalc_1;
+      label = 9;
+      break;
+    }
+   case 9:
+    var $recalc_0_lcssa;
+    var $23 = $l3_side + $gr * 10504 + $ch * 5252 + 4836 | 0;
+    var $24 = HEAP32[$23 >> 2];
+    var $25 = ($24 | 0) == 0;
+    if ($25) {
+      label = 10;
+      break;
+    } else {
+      var $recalc_2 = $recalc_0_lcssa;
+      label = 20;
+      break;
+    }
+   case 10:
+    var $27 = $l3_side + $gr * 10504 + $ch * 5252 + 4832 | 0;
+    var $28 = HEAP32[$27 >> 2];
+    var $29 = ($28 | 0) == 0;
+    if ($29) {
+      label = 11;
+      break;
+    } else {
+      var $recalc_2 = $recalc_0_lcssa;
+      label = 20;
+      break;
+    }
+   case 11:
+    var $30 = HEAP32[$2 >> 2];
+    var $31 = ($30 | 0) > 0;
+    if ($31) {
+      label = 12;
+      break;
+    } else {
+      var $recalc_2 = $recalc_0_lcssa;
+      label = 20;
+      break;
+    }
+   case 12:
+    var $32 = HEAP32[$2 >> 2];
+    var $sfb_186 = 0;
+    var $s_087 = 0;
+    label = 13;
+    break;
+   case 13:
+    var $s_087;
+    var $sfb_186;
+    var $34 = $l3_side + $gr * 10504 + $ch * 5252 + 4608 + ($sfb_186 << 2) | 0;
+    var $35 = HEAP32[$34 >> 2];
+    var $36 = ($35 | 0) > 0;
+    var $37 = $36 ? $35 : 0;
+    var $_s_0 = $37 | $s_087;
+    var $38 = $sfb_186 + 1 | 0;
+    var $39 = ($38 | 0) < ($32 | 0);
+    if ($39) {
+      var $sfb_186 = $38;
+      var $s_087 = $_s_0;
+      label = 13;
+      break;
+    } else {
+      label = 14;
+      break;
+    }
+   case 14:
+    var $40 = $_s_0 & 1;
+    var $41 = ($40 | 0) == 0;
+    var $42 = ($_s_0 | 0) != 0;
+    var $or_cond = $41 & $42;
+    if ($or_cond) {
+      label = 15;
+      break;
+    } else {
+      var $recalc_2 = $recalc_0_lcssa;
+      label = 20;
+      break;
+    }
+   case 15:
+    var $43 = HEAP32[$2 >> 2];
+    var $44 = ($43 | 0) > 0;
+    if ($44) {
+      var $sfb_282 = 0;
+      label = 16;
+      break;
+    } else {
+      label = 19;
+      break;
+    }
+   case 16:
+    var $sfb_282;
+    var $45 = $l3_side + $gr * 10504 + $ch * 5252 + 4608 + ($sfb_282 << 2) | 0;
+    var $46 = HEAP32[$45 >> 2];
+    var $47 = ($46 | 0) > 0;
+    if ($47) {
+      label = 17;
+      break;
+    } else {
+      label = 18;
+      break;
+    }
+   case 17:
+    var $49 = $46 >> 1;
+    HEAP32[$45 >> 2] = $49;
+    label = 18;
+    break;
+   case 18:
+    var $51 = $sfb_282 + 1 | 0;
+    var $52 = HEAP32[$2 >> 2];
+    var $53 = ($51 | 0) < ($52 | 0);
+    if ($53) {
+      var $sfb_282 = $51;
+      label = 16;
+      break;
+    } else {
+      label = 19;
+      break;
+    }
+   case 19:
+    HEAP32[$23 >> 2] = 1;
+    var $recalc_2 = 1;
+    label = 20;
+    break;
+   case 20:
+    var $recalc_2;
+    var $54 = $l3_side + $gr * 10504 + $ch * 5252 + 4832 | 0;
+    var $55 = HEAP32[$54 >> 2];
+    var $56 = ($55 | 0) == 0;
+    if ($56) {
+      label = 21;
+      break;
+    } else {
+      var $recalc_3 = $recalc_2;
+      label = 29;
+      break;
+    }
+   case 21:
+    var $58 = $l3_side + $gr * 10504 + $ch * 5252 + 4788 | 0;
+    var $59 = HEAP32[$58 >> 2];
+    var $60 = ($59 | 0) == 2;
+    if ($60) {
+      var $recalc_3 = $recalc_2;
+      label = 29;
+      break;
+    } else {
+      label = 22;
+      break;
+    }
+   case 22:
+    var $62 = $gfc + 76 | 0;
+    var $63 = HEAP32[$62 >> 2];
+    var $64 = ($63 | 0) == 2;
+    if ($64) {
+      var $sfb_3 = 11;
+      label = 23;
+      break;
+    } else {
+      var $recalc_3 = $recalc_2;
+      label = 29;
+      break;
+    }
+   case 23:
+    var $sfb_3;
+    var $65 = ($sfb_3 | 0) < 21;
+    if ($65) {
+      label = 24;
+      break;
+    } else {
+      label = 25;
+      break;
+    }
+   case 24:
+    var $67 = $l3_side + $gr * 10504 + $ch * 5252 + 4608 + ($sfb_3 << 2) | 0;
+    var $68 = HEAP32[$67 >> 2];
+    var $69 = 5257016 + ($sfb_3 << 2) | 0;
+    var $70 = HEAP32[$69 >> 2];
+    var $71 = ($68 | 0) >= ($70 | 0);
+    var $72 = ($68 | 0) == -2;
+    var $or_cond75 = $71 | $72;
+    var $73 = $sfb_3 + 1 | 0;
+    if ($or_cond75) {
+      var $sfb_3 = $73;
+      label = 23;
+      break;
+    } else {
+      label = 25;
+      break;
+    }
+   case 25:
+    var $75 = ($sfb_3 | 0) == 21;
+    if ($75) {
+      label = 26;
+      break;
+    } else {
+      var $recalc_3 = $recalc_2;
+      label = 29;
+      break;
+    }
+   case 26:
+    var $76 = $l3_side + $gr * 10504 + $ch * 5252 + 4652 | 0;
+    var $77 = HEAP32[$76 >> 2];
+    var $78 = ($77 | 0) > 0;
+    if ($78) {
+      label = 27;
+      break;
+    } else {
+      label = 28;
+      break;
+    }
+   case 27:
+    var $80 = $77 - 1 | 0;
+    HEAP32[$76 >> 2] = $80;
+    label = 28;
+    break;
+   case 28:
+    var $82 = $l3_side + $gr * 10504 + $ch * 5252 + 4656 | 0;
+    var $83 = HEAP32[$82 >> 2];
+    var $84 = ($83 | 0) > 0;
+    if ($84) {
+      label = 40;
+      break;
+    } else {
+      label = 41;
+      break;
+    }
+   case 29:
+    var $recalc_3;
+    var $86 = $ch << 2;
+    var $87 = $86 + 4 | 0;
+    var $scevgep = $87 + ($l3_side + 21008) | 0;
+    var $scevgep98 = $scevgep;
+    HEAP32[$scevgep98 >> 2] = 0;
+    HEAP32[$scevgep98 + 4 >> 2] = 0;
+    HEAP32[$scevgep98 + 8 >> 2] = 0;
+    HEAP32[$scevgep98 + 12 >> 2] = 0;
+    var $88 = $gfc + 76 | 0;
+    var $89 = HEAP32[$88 >> 2];
+    var $90 = ($89 | 0) == 2;
+    var $91 = ($gr | 0) == 1;
+    var $or_cond76 = $90 & $91;
+    if ($or_cond76) {
+      label = 30;
+      break;
+    } else {
+      var $recalc_4 = $recalc_3;
+      label = 33;
+      break;
+    }
+   case 30:
+    var $93 = $l3_side + $ch * 5252 + 4788 | 0;
+    var $94 = HEAP32[$93 >> 2];
+    var $95 = ($94 | 0) == 2;
+    if ($95) {
+      var $recalc_4 = $recalc_3;
+      label = 33;
+      break;
+    } else {
+      label = 31;
+      break;
+    }
+   case 31:
+    var $97 = $l3_side + 10504 + $ch * 5252 + 4788 | 0;
+    var $98 = HEAP32[$97 >> 2];
+    var $99 = ($98 | 0) == 2;
+    if ($99) {
+      var $recalc_4 = $recalc_3;
+      label = 33;
+      break;
+    } else {
+      label = 32;
+      break;
+    }
+   case 32:
+    _scfsi_calc($ch, $l3_side);
+    var $recalc_4 = 0;
+    label = 33;
+    break;
+   case 33:
+    var $recalc_4;
+    var $102 = HEAP32[$2 >> 2];
+    var $103 = ($102 | 0) > 0;
+    if ($103) {
+      var $sfb_577 = 0;
+      label = 34;
+      break;
+    } else {
+      label = 37;
+      break;
+    }
+   case 34:
+    var $sfb_577;
+    var $104 = $l3_side + $gr * 10504 + $ch * 5252 + 4608 + ($sfb_577 << 2) | 0;
+    var $105 = HEAP32[$104 >> 2];
+    var $106 = ($105 | 0) == -2;
+    if ($106) {
+      label = 35;
+      break;
+    } else {
+      label = 36;
+      break;
+    }
+   case 35:
+    HEAP32[$104 >> 2] = 0;
+    label = 36;
+    break;
+   case 36:
+    var $109 = $sfb_577 + 1 | 0;
+    var $110 = HEAP32[$2 >> 2];
+    var $111 = ($109 | 0) < ($110 | 0);
+    if ($111) {
+      var $sfb_577 = $109;
+      label = 34;
+      break;
+    } else {
+      label = 37;
+      break;
+    }
+   case 37:
+    var $112 = ($recalc_4 | 0) == 0;
+    if ($112) {
+      label = 39;
+      break;
+    } else {
+      label = 38;
+      break;
+    }
+   case 38:
+    var $114 = _scale_bitcount($gfc, $1);
+    label = 39;
+    break;
+   case 39:
+    return;
+   case 40:
+    var $117 = $83 - 1 | 0;
+    HEAP32[$82 >> 2] = $117;
+    label = 41;
+    break;
+   case 41:
+    var $119 = $l3_side + $gr * 10504 + $ch * 5252 + 4660 | 0;
+    var $120 = HEAP32[$119 >> 2];
+    var $121 = ($120 | 0) > 0;
+    if ($121) {
+      label = 42;
+      break;
+    } else {
+      label = 43;
+      break;
+    }
+   case 42:
+    var $123 = $120 - 1 | 0;
+    HEAP32[$119 >> 2] = $123;
+    label = 43;
+    break;
+   case 43:
+    var $125 = $l3_side + $gr * 10504 + $ch * 5252 + 4664 | 0;
+    var $126 = HEAP32[$125 >> 2];
+    var $127 = ($126 | 0) > 0;
+    if ($127) {
+      label = 44;
+      break;
+    } else {
+      label = 45;
+      break;
+    }
+   case 44:
+    var $129 = $126 - 1 | 0;
+    HEAP32[$125 >> 2] = $129;
+    label = 45;
+    break;
+   case 45:
+    var $131 = $l3_side + $gr * 10504 + $ch * 5252 + 4668 | 0;
+    var $132 = HEAP32[$131 >> 2];
+    var $133 = ($132 | 0) > 0;
+    if ($133) {
+      label = 46;
+      break;
+    } else {
+      label = 47;
+      break;
+    }
+   case 46:
+    var $135 = $132 - 2 | 0;
+    HEAP32[$131 >> 2] = $135;
+    label = 47;
+    break;
+   case 47:
+    var $137 = $l3_side + $gr * 10504 + $ch * 5252 + 4672 | 0;
+    var $138 = HEAP32[$137 >> 2];
+    var $139 = ($138 | 0) > 0;
+    if ($139) {
+      label = 48;
+      break;
+    } else {
+      label = 49;
+      break;
+    }
+   case 48:
+    var $141 = $138 - 2 | 0;
+    HEAP32[$137 >> 2] = $141;
+    label = 49;
+    break;
+   case 49:
+    var $143 = $l3_side + $gr * 10504 + $ch * 5252 + 4676 | 0;
+    var $144 = HEAP32[$143 >> 2];
+    var $145 = ($144 | 0) > 0;
+    if ($145) {
+      label = 50;
+      break;
+    } else {
+      label = 51;
+      break;
+    }
+   case 50:
+    var $147 = $144 - 3 | 0;
+    HEAP32[$143 >> 2] = $147;
+    label = 51;
+    break;
+   case 51:
+    var $149 = $l3_side + $gr * 10504 + $ch * 5252 + 4680 | 0;
+    var $150 = HEAP32[$149 >> 2];
+    var $151 = ($150 | 0) > 0;
+    if ($151) {
+      label = 52;
+      break;
+    } else {
+      label = 53;
+      break;
+    }
+   case 52:
+    var $153 = $150 - 3 | 0;
+    HEAP32[$149 >> 2] = $153;
+    label = 53;
+    break;
+   case 53:
+    var $155 = $l3_side + $gr * 10504 + $ch * 5252 + 4684 | 0;
+    var $156 = HEAP32[$155 >> 2];
+    var $157 = ($156 | 0) > 0;
+    if ($157) {
+      label = 54;
+      break;
+    } else {
+      label = 55;
+      break;
+    }
+   case 54:
+    var $159 = $156 - 3 | 0;
+    HEAP32[$155 >> 2] = $159;
+    label = 55;
+    break;
+   case 55:
+    var $161 = $l3_side + $gr * 10504 + $ch * 5252 + 4688 | 0;
+    var $162 = HEAP32[$161 >> 2];
+    var $163 = ($162 | 0) > 0;
+    if ($163) {
+      label = 56;
+      break;
+    } else {
+      label = 57;
+      break;
+    }
+   case 56:
+    var $165 = $162 - 2 | 0;
+    HEAP32[$161 >> 2] = $165;
+    label = 57;
+    break;
+   case 57:
+    HEAP32[$54 >> 2] = 1;
+    var $recalc_3 = 1;
+    label = 29;
+    break;
+  }
+}
+_best_scalefac_store["X"] = 1;
+function _scfsi_calc($ch, $l3_side) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $i_067 = 0;
+    label = 3;
+    break;
+   case 3:
+    var $i_067;
+    var $2 = 5256584 + ($i_067 << 2) | 0;
+    var $3 = HEAP32[$2 >> 2];
+    var $4 = $i_067 + 1 | 0;
+    var $5 = 5256584 + ($4 << 2) | 0;
+    var $6 = HEAP32[$5 >> 2];
+    var $sfb_0 = $3;
+    label = 4;
+    break;
+   case 4:
+    var $sfb_0;
+    var $8 = ($sfb_0 | 0) < ($6 | 0);
+    if ($8) {
+      label = 5;
+      break;
+    } else {
+      label = 6;
+      break;
+    }
+   case 5:
+    var $10 = $l3_side + $ch * 5252 + 4608 + ($sfb_0 << 2) | 0;
+    var $11 = HEAP32[$10 >> 2];
+    var $12 = $l3_side + 10504 + $ch * 5252 + 4608 + ($sfb_0 << 2) | 0;
+    var $13 = HEAP32[$12 >> 2];
+    var $14 = ($11 | 0) != ($13 | 0);
+    var $15 = ($13 | 0) > -1;
+    var $or_cond = $14 & $15;
+    var $16 = $sfb_0 + 1 | 0;
+    if ($or_cond) {
+      label = 6;
+      break;
+    } else {
+      var $sfb_0 = $16;
+      label = 4;
+      break;
+    }
+   case 6:
+    var $18 = HEAP32[$5 >> 2];
+    var $19 = ($sfb_0 | 0) == ($18 | 0);
+    if ($19) {
+      label = 8;
+      break;
+    } else {
+      label = 7;
+      break;
+    }
+   case 7:
+    var $exitcond72 = ($4 | 0) == 4;
+    if ($exitcond72) {
+      label = 11;
+      break;
+    } else {
+      var $i_067 = $4;
+      label = 3;
+      break;
+    }
+   case 8:
+    var $21 = HEAP32[$2 >> 2];
+    var $22 = HEAP32[$5 >> 2];
+    var $23 = ($21 | 0) < ($22 | 0);
+    if ($23) {
+      label = 9;
+      break;
+    } else {
+      label = 10;
+      break;
+    }
+   case 9:
+    var $24 = HEAP32[$5 >> 2];
+    var $scevgep70 = $l3_side + 10504 + $ch * 5252 + 4608 + ($21 << 2) | 0;
+    var $scevgep7071 = $scevgep70;
+    var $25 = $21 + 1 | 0;
+    var $26 = ($24 | 0) > ($25 | 0);
+    var $smax = $26 ? $24 : $25;
+    var $27 = $smax - $21 | 0;
+    var $28 = $27 << 2;
+    _memset($scevgep7071, -1, $28);
+    label = 10;
+    break;
+   case 10:
+    var $30 = $l3_side + 21024 + ($ch << 4) + ($i_067 << 2) | 0;
+    HEAP32[$30 >> 2] = 1;
+    label = 7;
+    break;
+   case 11:
+    var $31 = $l3_side + 10504 + $ch * 5252 + 4608 | 0;
+    var $32 = HEAP32[$31 >> 2];
+    var $33 = ($32 | 0) == -1;
+    if ($33) {
+      var $s1_1 = 0;
+      var $c1_1 = 0;
+      label = 13;
+      break;
+    } else {
+      label = 12;
+      break;
+    }
+   case 12:
+    var $35 = ($32 | 0) > 0;
+    var $_s1_0 = $35 ? $32 : 0;
+    var $s1_1 = $_s1_0;
+    var $c1_1 = 1;
+    label = 13;
+    break;
+   case 13:
+    var $c1_1;
+    var $s1_1;
+    var $37 = $l3_side + 10504 + $ch * 5252 + 4612 | 0;
+    var $38 = HEAP32[$37 >> 2];
+    var $39 = ($38 | 0) == -1;
+    if ($39) {
+      var $s1_1_1 = $s1_1;
+      var $c1_1_1 = $c1_1;
+      label = 42;
+      break;
+    } else {
+      label = 41;
+      break;
+    }
+   case 14:
+    var $s2_0_lcssa;
+    var $c2_0_lcssa;
+    var $40 = $l3_side + 10504 + $ch * 5252 + 4844 | 0;
+    var $41 = $l3_side + 10504 + $ch * 5252 + 4784 | 0;
+    var $i_154 = 0;
+    label = 18;
+    break;
+   case 15:
+    var $c1_1_10;
+    var $s1_1_10;
+    var $42 = $l3_side + 10504 + $ch * 5252 + 4652 | 0;
+    var $43 = HEAP32[$42 >> 2];
+    var $44 = ($43 | 0) == -1;
+    if ($44) {
+      var $s2_1 = 0;
+      var $c2_1 = 0;
+      label = 17;
+      break;
+    } else {
+      label = 16;
+      break;
+    }
+   case 16:
+    var $46 = ($43 | 0) > 0;
+    var $_s2_0 = $46 ? $43 : 0;
+    var $s2_1 = $_s2_0;
+    var $c2_1 = 1;
+    label = 17;
+    break;
+   case 17:
+    var $c2_1;
+    var $s2_1;
+    var $48 = $l3_side + 10504 + $ch * 5252 + 4656 | 0;
+    var $49 = HEAP32[$48 >> 2];
+    var $50 = ($49 | 0) == -1;
+    if ($50) {
+      var $s2_1_1 = $s2_1;
+      var $c2_1_1 = $c2_1;
+      label = 25;
+      break;
+    } else {
+      label = 24;
+      break;
+    }
+   case 18:
+    var $i_154;
+    var $52 = 5254684 + ($i_154 << 2) | 0;
+    var $53 = HEAP32[$52 >> 2];
+    var $54 = ($s1_1_10 | 0) < ($53 | 0);
+    if ($54) {
+      label = 19;
+      break;
+    } else {
+      label = 22;
+      break;
+    }
+   case 19:
+    var $56 = 5254556 + ($i_154 << 2) | 0;
+    var $57 = HEAP32[$56 >> 2];
+    var $58 = ($s2_0_lcssa | 0) < ($57 | 0);
+    if ($58) {
+      label = 20;
+      break;
+    } else {
+      label = 22;
+      break;
+    }
+   case 20:
+    var $60 = 5254620 + ($i_154 << 2) | 0;
+    var $61 = HEAP32[$60 >> 2];
+    var $62 = $61 * $c1_1_10 & -1;
+    var $63 = 5254492 + ($i_154 << 2) | 0;
+    var $64 = HEAP32[$63 >> 2];
+    var $65 = $64 * $c2_0_lcssa & -1;
+    var $66 = $65 + $62 | 0;
+    var $67 = HEAP32[$40 >> 2];
+    var $68 = ($67 | 0) > ($66 | 0);
+    if ($68) {
+      label = 21;
+      break;
+    } else {
+      label = 22;
+      break;
+    }
+   case 21:
+    HEAP32[$40 >> 2] = $66;
+    HEAP32[$41 >> 2] = $i_154;
+    label = 22;
+    break;
+   case 22:
+    var $71 = $i_154 + 1 | 0;
+    var $exitcond = ($71 | 0) == 16;
+    if ($exitcond) {
+      label = 23;
+      break;
+    } else {
+      var $i_154 = $71;
+      label = 18;
+      break;
+    }
+   case 23:
+    return;
+   case 24:
+    var $74 = $c2_1 + 1 | 0;
+    var $75 = ($s2_1 | 0) < ($49 | 0);
+    var $_s2_0_1 = $75 ? $49 : $s2_1;
+    var $s2_1_1 = $_s2_0_1;
+    var $c2_1_1 = $74;
+    label = 25;
+    break;
+   case 25:
+    var $c2_1_1;
+    var $s2_1_1;
+    var $77 = $l3_side + 10504 + $ch * 5252 + 4660 | 0;
+    var $78 = HEAP32[$77 >> 2];
+    var $79 = ($78 | 0) == -1;
+    if ($79) {
+      var $s2_1_2 = $s2_1_1;
+      var $c2_1_2 = $c2_1_1;
+      label = 27;
+      break;
+    } else {
+      label = 26;
+      break;
+    }
+   case 26:
+    var $81 = $c2_1_1 + 1 | 0;
+    var $82 = ($s2_1_1 | 0) < ($78 | 0);
+    var $_s2_0_2 = $82 ? $78 : $s2_1_1;
+    var $s2_1_2 = $_s2_0_2;
+    var $c2_1_2 = $81;
+    label = 27;
+    break;
+   case 27:
+    var $c2_1_2;
+    var $s2_1_2;
+    var $84 = $l3_side + 10504 + $ch * 5252 + 4664 | 0;
+    var $85 = HEAP32[$84 >> 2];
+    var $86 = ($85 | 0) == -1;
+    if ($86) {
+      var $s2_1_3 = $s2_1_2;
+      var $c2_1_3 = $c2_1_2;
+      label = 29;
+      break;
+    } else {
+      label = 28;
+      break;
+    }
+   case 28:
+    var $88 = $c2_1_2 + 1 | 0;
+    var $89 = ($s2_1_2 | 0) < ($85 | 0);
+    var $_s2_0_3 = $89 ? $85 : $s2_1_2;
+    var $s2_1_3 = $_s2_0_3;
+    var $c2_1_3 = $88;
+    label = 29;
+    break;
+   case 29:
+    var $c2_1_3;
+    var $s2_1_3;
+    var $91 = $l3_side + 10504 + $ch * 5252 + 4668 | 0;
+    var $92 = HEAP32[$91 >> 2];
+    var $93 = ($92 | 0) == -1;
+    if ($93) {
+      var $s2_1_4 = $s2_1_3;
+      var $c2_1_4 = $c2_1_3;
+      label = 31;
+      break;
+    } else {
+      label = 30;
+      break;
+    }
+   case 30:
+    var $95 = $c2_1_3 + 1 | 0;
+    var $96 = ($s2_1_3 | 0) < ($92 | 0);
+    var $_s2_0_4 = $96 ? $92 : $s2_1_3;
+    var $s2_1_4 = $_s2_0_4;
+    var $c2_1_4 = $95;
+    label = 31;
+    break;
+   case 31:
+    var $c2_1_4;
+    var $s2_1_4;
+    var $98 = $l3_side + 10504 + $ch * 5252 + 4672 | 0;
+    var $99 = HEAP32[$98 >> 2];
+    var $100 = ($99 | 0) == -1;
+    if ($100) {
+      var $s2_1_5 = $s2_1_4;
+      var $c2_1_5 = $c2_1_4;
+      label = 33;
+      break;
+    } else {
+      label = 32;
+      break;
+    }
+   case 32:
+    var $102 = $c2_1_4 + 1 | 0;
+    var $103 = ($s2_1_4 | 0) < ($99 | 0);
+    var $_s2_0_5 = $103 ? $99 : $s2_1_4;
+    var $s2_1_5 = $_s2_0_5;
+    var $c2_1_5 = $102;
+    label = 33;
+    break;
+   case 33:
+    var $c2_1_5;
+    var $s2_1_5;
+    var $105 = $l3_side + 10504 + $ch * 5252 + 4676 | 0;
+    var $106 = HEAP32[$105 >> 2];
+    var $107 = ($106 | 0) == -1;
+    if ($107) {
+      var $s2_1_6 = $s2_1_5;
+      var $c2_1_6 = $c2_1_5;
+      label = 35;
+      break;
+    } else {
+      label = 34;
+      break;
+    }
+   case 34:
+    var $109 = $c2_1_5 + 1 | 0;
+    var $110 = ($s2_1_5 | 0) < ($106 | 0);
+    var $_s2_0_6 = $110 ? $106 : $s2_1_5;
+    var $s2_1_6 = $_s2_0_6;
+    var $c2_1_6 = $109;
+    label = 35;
+    break;
+   case 35:
+    var $c2_1_6;
+    var $s2_1_6;
+    var $112 = $l3_side + 10504 + $ch * 5252 + 4680 | 0;
+    var $113 = HEAP32[$112 >> 2];
+    var $114 = ($113 | 0) == -1;
+    if ($114) {
+      var $s2_1_7 = $s2_1_6;
+      var $c2_1_7 = $c2_1_6;
+      label = 37;
+      break;
+    } else {
+      label = 36;
+      break;
+    }
+   case 36:
+    var $116 = $c2_1_6 + 1 | 0;
+    var $117 = ($s2_1_6 | 0) < ($113 | 0);
+    var $_s2_0_7 = $117 ? $113 : $s2_1_6;
+    var $s2_1_7 = $_s2_0_7;
+    var $c2_1_7 = $116;
+    label = 37;
+    break;
+   case 37:
+    var $c2_1_7;
+    var $s2_1_7;
+    var $119 = $l3_side + 10504 + $ch * 5252 + 4684 | 0;
+    var $120 = HEAP32[$119 >> 2];
+    var $121 = ($120 | 0) == -1;
+    if ($121) {
+      var $s2_1_8 = $s2_1_7;
+      var $c2_1_8 = $c2_1_7;
+      label = 39;
+      break;
+    } else {
+      label = 38;
+      break;
+    }
+   case 38:
+    var $123 = $c2_1_7 + 1 | 0;
+    var $124 = ($s2_1_7 | 0) < ($120 | 0);
+    var $_s2_0_8 = $124 ? $120 : $s2_1_7;
+    var $s2_1_8 = $_s2_0_8;
+    var $c2_1_8 = $123;
+    label = 39;
+    break;
+   case 39:
+    var $c2_1_8;
+    var $s2_1_8;
+    var $126 = $l3_side + 10504 + $ch * 5252 + 4688 | 0;
+    var $127 = HEAP32[$126 >> 2];
+    var $128 = ($127 | 0) == -1;
+    if ($128) {
+      var $c2_0_lcssa = $c2_1_8;
+      var $s2_0_lcssa = $s2_1_8;
+      label = 14;
+      break;
+    } else {
+      label = 40;
+      break;
+    }
+   case 40:
+    var $130 = $c2_1_8 + 1 | 0;
+    var $131 = ($s2_1_8 | 0) < ($127 | 0);
+    var $_s2_0_9 = $131 ? $127 : $s2_1_8;
+    var $c2_0_lcssa = $130;
+    var $s2_0_lcssa = $_s2_0_9;
+    label = 14;
+    break;
+   case 41:
+    var $133 = $c1_1 + 1 | 0;
+    var $134 = ($s1_1 | 0) < ($38 | 0);
+    var $_s1_0_1 = $134 ? $38 : $s1_1;
+    var $s1_1_1 = $_s1_0_1;
+    var $c1_1_1 = $133;
+    label = 42;
+    break;
+   case 42:
+    var $c1_1_1;
+    var $s1_1_1;
+    var $136 = $l3_side + 10504 + $ch * 5252 + 4616 | 0;
+    var $137 = HEAP32[$136 >> 2];
+    var $138 = ($137 | 0) == -1;
+    if ($138) {
+      var $s1_1_2 = $s1_1_1;
+      var $c1_1_2 = $c1_1_1;
+      label = 44;
+      break;
+    } else {
+      label = 43;
+      break;
+    }
+   case 43:
+    var $140 = $c1_1_1 + 1 | 0;
+    var $141 = ($s1_1_1 | 0) < ($137 | 0);
+    var $_s1_0_2 = $141 ? $137 : $s1_1_1;
+    var $s1_1_2 = $_s1_0_2;
+    var $c1_1_2 = $140;
+    label = 44;
+    break;
+   case 44:
+    var $c1_1_2;
+    var $s1_1_2;
+    var $143 = $l3_side + 10504 + $ch * 5252 + 4620 | 0;
+    var $144 = HEAP32[$143 >> 2];
+    var $145 = ($144 | 0) == -1;
+    if ($145) {
+      var $s1_1_3 = $s1_1_2;
+      var $c1_1_3 = $c1_1_2;
+      label = 46;
+      break;
+    } else {
+      label = 45;
+      break;
+    }
+   case 45:
+    var $147 = $c1_1_2 + 1 | 0;
+    var $148 = ($s1_1_2 | 0) < ($144 | 0);
+    var $_s1_0_3 = $148 ? $144 : $s1_1_2;
+    var $s1_1_3 = $_s1_0_3;
+    var $c1_1_3 = $147;
+    label = 46;
+    break;
+   case 46:
+    var $c1_1_3;
+    var $s1_1_3;
+    var $150 = $l3_side + 10504 + $ch * 5252 + 4624 | 0;
+    var $151 = HEAP32[$150 >> 2];
+    var $152 = ($151 | 0) == -1;
+    if ($152) {
+      var $s1_1_4 = $s1_1_3;
+      var $c1_1_4 = $c1_1_3;
+      label = 48;
+      break;
+    } else {
+      label = 47;
+      break;
+    }
+   case 47:
+    var $154 = $c1_1_3 + 1 | 0;
+    var $155 = ($s1_1_3 | 0) < ($151 | 0);
+    var $_s1_0_4 = $155 ? $151 : $s1_1_3;
+    var $s1_1_4 = $_s1_0_4;
+    var $c1_1_4 = $154;
+    label = 48;
+    break;
+   case 48:
+    var $c1_1_4;
+    var $s1_1_4;
+    var $157 = $l3_side + 10504 + $ch * 5252 + 4628 | 0;
+    var $158 = HEAP32[$157 >> 2];
+    var $159 = ($158 | 0) == -1;
+    if ($159) {
+      var $s1_1_5 = $s1_1_4;
+      var $c1_1_5 = $c1_1_4;
+      label = 50;
+      break;
+    } else {
+      label = 49;
+      break;
+    }
+   case 49:
+    var $161 = $c1_1_4 + 1 | 0;
+    var $162 = ($s1_1_4 | 0) < ($158 | 0);
+    var $_s1_0_5 = $162 ? $158 : $s1_1_4;
+    var $s1_1_5 = $_s1_0_5;
+    var $c1_1_5 = $161;
+    label = 50;
+    break;
+   case 50:
+    var $c1_1_5;
+    var $s1_1_5;
+    var $164 = $l3_side + 10504 + $ch * 5252 + 4632 | 0;
+    var $165 = HEAP32[$164 >> 2];
+    var $166 = ($165 | 0) == -1;
+    if ($166) {
+      var $s1_1_6 = $s1_1_5;
+      var $c1_1_6 = $c1_1_5;
+      label = 52;
+      break;
+    } else {
+      label = 51;
+      break;
+    }
+   case 51:
+    var $168 = $c1_1_5 + 1 | 0;
+    var $169 = ($s1_1_5 | 0) < ($165 | 0);
+    var $_s1_0_6 = $169 ? $165 : $s1_1_5;
+    var $s1_1_6 = $_s1_0_6;
+    var $c1_1_6 = $168;
+    label = 52;
+    break;
+   case 52:
+    var $c1_1_6;
+    var $s1_1_6;
+    var $171 = $l3_side + 10504 + $ch * 5252 + 4636 | 0;
+    var $172 = HEAP32[$171 >> 2];
+    var $173 = ($172 | 0) == -1;
+    if ($173) {
+      var $s1_1_7 = $s1_1_6;
+      var $c1_1_7 = $c1_1_6;
+      label = 54;
+      break;
+    } else {
+      label = 53;
+      break;
+    }
+   case 53:
+    var $175 = $c1_1_6 + 1 | 0;
+    var $176 = ($s1_1_6 | 0) < ($172 | 0);
+    var $_s1_0_7 = $176 ? $172 : $s1_1_6;
+    var $s1_1_7 = $_s1_0_7;
+    var $c1_1_7 = $175;
+    label = 54;
+    break;
+   case 54:
+    var $c1_1_7;
+    var $s1_1_7;
+    var $178 = $l3_side + 10504 + $ch * 5252 + 4640 | 0;
+    var $179 = HEAP32[$178 >> 2];
+    var $180 = ($179 | 0) == -1;
+    if ($180) {
+      var $s1_1_8 = $s1_1_7;
+      var $c1_1_8 = $c1_1_7;
+      label = 56;
+      break;
+    } else {
+      label = 55;
+      break;
+    }
+   case 55:
+    var $182 = $c1_1_7 + 1 | 0;
+    var $183 = ($s1_1_7 | 0) < ($179 | 0);
+    var $_s1_0_8 = $183 ? $179 : $s1_1_7;
+    var $s1_1_8 = $_s1_0_8;
+    var $c1_1_8 = $182;
+    label = 56;
+    break;
+   case 56:
+    var $c1_1_8;
+    var $s1_1_8;
+    var $185 = $l3_side + 10504 + $ch * 5252 + 4644 | 0;
+    var $186 = HEAP32[$185 >> 2];
+    var $187 = ($186 | 0) == -1;
+    if ($187) {
+      var $s1_1_9 = $s1_1_8;
+      var $c1_1_9 = $c1_1_8;
+      label = 58;
+      break;
+    } else {
+      label = 57;
+      break;
+    }
+   case 57:
+    var $189 = $c1_1_8 + 1 | 0;
+    var $190 = ($s1_1_8 | 0) < ($186 | 0);
+    var $_s1_0_9 = $190 ? $186 : $s1_1_8;
+    var $s1_1_9 = $_s1_0_9;
+    var $c1_1_9 = $189;
+    label = 58;
+    break;
+   case 58:
+    var $c1_1_9;
+    var $s1_1_9;
+    var $192 = $l3_side + 10504 + $ch * 5252 + 4648 | 0;
+    var $193 = HEAP32[$192 >> 2];
+    var $194 = ($193 | 0) == -1;
+    if ($194) {
+      var $s1_1_10 = $s1_1_9;
+      var $c1_1_10 = $c1_1_9;
+      label = 15;
+      break;
+    } else {
+      label = 59;
+      break;
+    }
+   case 59:
+    var $196 = $c1_1_9 + 1 | 0;
+    var $197 = ($s1_1_9 | 0) < ($193 | 0);
+    var $_s1_0_10 = $197 ? $193 : $s1_1_9;
+    var $s1_1_10 = $_s1_0_10;
+    var $c1_1_10 = $196;
+    label = 15;
+    break;
+  }
+}
+_scfsi_calc["X"] = 1;
+function _scale_bitcount($gfc, $cod_info) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = $gfc + 76 | 0;
+    var $2 = HEAP32[$1 >> 2];
+    var $3 = ($2 | 0) == 2;
+    if ($3) {
+      label = 3;
+      break;
+    } else {
+      label = 4;
+      break;
+    }
+   case 3:
+    var $5 = _mpeg1_scale_bitcount($cod_info);
+    var $_0 = $5;
+    label = 5;
+    break;
+   case 4:
+    var $7 = _mpeg2_scale_bitcount($gfc, $cod_info);
+    var $_0 = $7;
+    label = 5;
+    break;
+   case 5:
+    var $_0;
+    return $_0;
+  }
+}
+function _count_bit_null($ix, $end, $max, $s) {
+  return 0;
+}
+function _mpeg1_scale_bitcount($cod_info) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = $cod_info + 4788 | 0;
+    var $2 = HEAP32[$1 >> 2];
+    var $3 = ($2 | 0) == 2;
+    if ($3) {
+      label = 3;
+      break;
+    } else {
+      label = 4;
+      break;
+    }
+   case 3:
+    var $5 = $cod_info + 4792 | 0;
+    var $6 = HEAP32[$5 >> 2];
+    var $7 = ($6 | 0) == 0;
+    var $_ = $7 ? 5256604 : 5256668;
+    var $tab_0 = $_;
+    label = 9;
+    break;
+   case 4:
+    var $9 = $cod_info + 4832 | 0;
+    var $10 = HEAP32[$9 >> 2];
+    var $11 = ($10 | 0) == 0;
+    if ($11) {
+      var $sfb_0 = 11;
+      label = 5;
+      break;
+    } else {
+      var $tab_0 = 5256732;
+      label = 9;
+      break;
+    }
+   case 5:
+    var $sfb_0;
+    var $12 = ($sfb_0 | 0) < 21;
+    if ($12) {
+      label = 6;
+      break;
+    } else {
+      label = 7;
+      break;
+    }
+   case 6:
+    var $14 = $cod_info + 4608 + ($sfb_0 << 2) | 0;
+    var $15 = HEAP32[$14 >> 2];
+    var $16 = 5257016 + ($sfb_0 << 2) | 0;
+    var $17 = HEAP32[$16 >> 2];
+    var $18 = ($15 | 0) < ($17 | 0);
+    var $19 = $sfb_0 + 1 | 0;
+    if ($18) {
+      label = 7;
+      break;
+    } else {
+      var $sfb_0 = $19;
+      label = 5;
+      break;
+    }
+   case 7:
+    var $21 = ($sfb_0 | 0) == 21;
+    if ($21) {
+      label = 8;
+      break;
+    } else {
+      var $tab_0 = 5256732;
+      label = 9;
+      break;
+    }
+   case 8:
+    HEAP32[$9 >> 2] = 1;
+    var $22 = $cod_info + 4652 | 0;
+    var $23 = HEAP32[$22 >> 2];
+    var $24 = $23 - 1 | 0;
+    HEAP32[$22 >> 2] = $24;
+    var $25 = $cod_info + 4656 | 0;
+    var $26 = HEAP32[$25 >> 2];
+    var $27 = $26 - 1 | 0;
+    HEAP32[$25 >> 2] = $27;
+    var $28 = $cod_info + 4660 | 0;
+    var $29 = HEAP32[$28 >> 2];
+    var $30 = $29 - 1 | 0;
+    HEAP32[$28 >> 2] = $30;
+    var $31 = $cod_info + 4664 | 0;
+    var $32 = HEAP32[$31 >> 2];
+    var $33 = $32 - 1 | 0;
+    HEAP32[$31 >> 2] = $33;
+    var $34 = $cod_info + 4668 | 0;
+    var $35 = HEAP32[$34 >> 2];
+    var $36 = $35 - 2 | 0;
+    HEAP32[$34 >> 2] = $36;
+    var $37 = $cod_info + 4672 | 0;
+    var $38 = HEAP32[$37 >> 2];
+    var $39 = $38 - 2 | 0;
+    HEAP32[$37 >> 2] = $39;
+    var $40 = $cod_info + 4676 | 0;
+    var $41 = HEAP32[$40 >> 2];
+    var $42 = $41 - 3 | 0;
+    HEAP32[$40 >> 2] = $42;
+    var $43 = $cod_info + 4680 | 0;
+    var $44 = HEAP32[$43 >> 2];
+    var $45 = $44 - 3 | 0;
+    HEAP32[$43 >> 2] = $45;
+    var $46 = $cod_info + 4684 | 0;
+    var $47 = HEAP32[$46 >> 2];
+    var $48 = $47 - 3 | 0;
+    HEAP32[$46 >> 2] = $48;
+    var $49 = $cod_info + 4688 | 0;
+    var $50 = HEAP32[$49 >> 2];
+    var $51 = $50 - 2 | 0;
+    HEAP32[$49 >> 2] = $51;
+    var $tab_0 = 5256732;
+    label = 9;
+    break;
+   case 9:
+    var $tab_0;
+    var $53 = $cod_info + 4868 | 0;
+    var $54 = HEAP32[$53 >> 2];
+    var $55 = ($54 | 0) > 0;
+    if ($55) {
+      label = 10;
+      break;
+    } else {
+      var $sfb_2_lcssa = 0;
+      var $max_slen1_0_lcssa = 0;
+      label = 12;
+      break;
+    }
+   case 10:
+    var $56 = HEAP32[$53 >> 2];
+    var $57 = ($56 | 0) > 1;
+    var $sfb_24 = 0;
+    var $max_slen1_05 = 0;
+    label = 14;
+    break;
+   case 11:
+    var $smax = $57 ? $56 : 1;
+    var $sfb_2_lcssa = $smax;
+    var $max_slen1_0_lcssa = $_max_slen1_0;
+    label = 12;
+    break;
+   case 12:
+    var $max_slen1_0_lcssa;
+    var $sfb_2_lcssa;
+    var $58 = $cod_info + 4860 | 0;
+    var $59 = HEAP32[$58 >> 2];
+    var $60 = ($sfb_2_lcssa | 0) < ($59 | 0);
+    if ($60) {
+      label = 13;
+      break;
+    } else {
+      var $max_slen2_0_lcssa = 0;
+      label = 16;
+      break;
+    }
+   case 13:
+    var $61 = HEAP32[$58 >> 2];
+    var $sfb_32 = $sfb_2_lcssa;
+    var $max_slen2_03 = 0;
+    label = 15;
+    break;
+   case 14:
+    var $max_slen1_05;
+    var $sfb_24;
+    var $63 = $cod_info + 4608 + ($sfb_24 << 2) | 0;
+    var $64 = HEAP32[$63 >> 2];
+    var $65 = ($max_slen1_05 | 0) < ($64 | 0);
+    var $_max_slen1_0 = $65 ? $64 : $max_slen1_05;
+    var $66 = $sfb_24 + 1 | 0;
+    var $67 = ($66 | 0) < ($56 | 0);
+    if ($67) {
+      var $sfb_24 = $66;
+      var $max_slen1_05 = $_max_slen1_0;
+      label = 14;
+      break;
+    } else {
+      label = 11;
+      break;
+    }
+   case 15:
+    var $max_slen2_03;
+    var $sfb_32;
+    var $69 = $cod_info + 4608 + ($sfb_32 << 2) | 0;
+    var $70 = HEAP32[$69 >> 2];
+    var $71 = ($max_slen2_03 | 0) < ($70 | 0);
+    var $_max_slen2_0 = $71 ? $70 : $max_slen2_03;
+    var $72 = $sfb_32 + 1 | 0;
+    var $73 = ($72 | 0) < ($61 | 0);
+    if ($73) {
+      var $sfb_32 = $72;
+      var $max_slen2_03 = $_max_slen2_0;
+      label = 15;
+      break;
+    } else {
+      var $max_slen2_0_lcssa = $_max_slen2_0;
+      label = 16;
+      break;
+    }
+   case 16:
+    var $max_slen2_0_lcssa;
+    var $74 = $cod_info + 4844 | 0;
+    HEAP32[$74 >> 2] = 1e5;
+    var $75 = $cod_info + 4784 | 0;
+    var $k_01 = 0;
+    label = 17;
+    break;
+   case 17:
+    var $k_01;
+    var $77 = 5254684 + ($k_01 << 2) | 0;
+    var $78 = HEAP32[$77 >> 2];
+    var $79 = ($max_slen1_0_lcssa | 0) < ($78 | 0);
+    if ($79) {
+      label = 18;
+      break;
+    } else {
+      label = 21;
+      break;
+    }
+   case 18:
+    var $81 = 5254556 + ($k_01 << 2) | 0;
+    var $82 = HEAP32[$81 >> 2];
+    var $83 = ($max_slen2_0_lcssa | 0) < ($82 | 0);
+    if ($83) {
+      label = 19;
+      break;
+    } else {
+      label = 21;
+      break;
+    }
+   case 19:
+    var $85 = HEAP32[$74 >> 2];
+    var $86 = $tab_0 + ($k_01 << 2) | 0;
+    var $87 = HEAP32[$86 >> 2];
+    var $88 = ($85 | 0) > ($87 | 0);
+    if ($88) {
+      label = 20;
+      break;
+    } else {
+      label = 21;
+      break;
+    }
+   case 20:
+    HEAP32[$74 >> 2] = $87;
+    HEAP32[$75 >> 2] = $k_01;
+    label = 21;
+    break;
+   case 21:
+    var $91 = $k_01 + 1 | 0;
+    var $exitcond = ($91 | 0) == 16;
+    if ($exitcond) {
+      label = 22;
+      break;
+    } else {
+      var $k_01 = $91;
+      label = 17;
+      break;
+    }
+   case 22:
+    var $93 = HEAP32[$74 >> 2];
+    var $94 = ($93 | 0) == 1e5;
+    var $95 = $94 & 1;
+    return $95;
+  }
+}
+_mpeg1_scale_bitcount["X"] = 1;
+function _huffman_init($gfc) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = $gfc + 85812 | 0;
+    HEAP32[$1 >> 2] = 38;
+    var $i_023 = 2;
+    label = 3;
+    break;
+   case 3:
+    var $i_023;
+    var $scfb_anz_0 = 0;
+    label = 4;
+    break;
+   case 4:
+    var $scfb_anz_0;
+    var $3 = $scfb_anz_0 + 1 | 0;
+    var $4 = $gfc + 21360 + ($3 << 2) | 0;
+    var $5 = HEAP32[$4 >> 2];
+    var $6 = ($5 | 0) < ($i_023 | 0);
+    if ($6) {
+      var $scfb_anz_0 = $3;
+      label = 4;
+      break;
+    } else {
+      label = 5;
+      break;
+    }
+   case 5:
+    var $8 = 5254308 + ($3 << 3) | 0;
+    var $9 = HEAP32[$8 >> 2];
+    var $bv_index_0 = $9;
+    label = 6;
+    break;
+   case 6:
+    var $bv_index_0;
+    var $11 = $bv_index_0 + 1 | 0;
+    var $12 = $gfc + 21360 + ($11 << 2) | 0;
+    var $13 = HEAP32[$12 >> 2];
+    var $14 = ($13 | 0) > ($i_023 | 0);
+    var $15 = $bv_index_0 - 1 | 0;
+    if ($14) {
+      var $bv_index_0 = $15;
+      label = 6;
+      break;
+    } else {
+      label = 7;
+      break;
+    }
+   case 7:
+    var $17 = ($bv_index_0 | 0) < 0;
+    if ($17) {
+      label = 8;
+      break;
+    } else {
+      var $bv_index_1 = $bv_index_0;
+      label = 9;
+      break;
+    }
+   case 8:
+    var $19 = HEAP32[$8 >> 2];
+    var $bv_index_1 = $19;
+    label = 9;
+    break;
+   case 9:
+    var $bv_index_1;
+    var $21 = $bv_index_1 & 255;
+    var $22 = $i_023 - 2 | 0;
+    var $23 = $22 + ($gfc + 85096) | 0;
+    HEAP8[$23] = $21;
+    var $24 = 5254312 + ($3 << 3) | 0;
+    var $25 = HEAP32[$24 >> 2];
+    var $sext = $bv_index_1 << 24;
+    var $26 = $sext >> 24;
+    var $bv_index_2 = $25;
+    label = 10;
+    break;
+   case 10:
+    var $bv_index_2;
+    var $28 = $bv_index_2 + 2 | 0;
+    var $29 = $28 + $26 | 0;
+    var $30 = $gfc + 21360 + ($29 << 2) | 0;
+    var $31 = HEAP32[$30 >> 2];
+    var $32 = ($31 | 0) > ($i_023 | 0);
+    var $33 = $bv_index_2 - 1 | 0;
+    if ($32) {
+      var $bv_index_2 = $33;
+      label = 10;
+      break;
+    } else {
+      label = 11;
+      break;
+    }
+   case 11:
+    var $35 = ($bv_index_2 | 0) < 0;
+    if ($35) {
+      label = 12;
+      break;
+    } else {
+      var $bv_index_3 = $bv_index_2;
+      label = 13;
+      break;
+    }
+   case 12:
+    var $37 = HEAP32[$24 >> 2];
+    var $bv_index_3 = $37;
+    label = 13;
+    break;
+   case 13:
+    var $bv_index_3;
+    var $39 = $bv_index_3 & 255;
+    var $40 = $i_023 - 1 | 0;
+    var $41 = $40 + ($gfc + 85096) | 0;
+    HEAP8[$41] = $39;
+    var $42 = $i_023 + 2 | 0;
+    var $43 = ($42 | 0) < 577;
+    if ($43) {
+      var $i_023 = $42;
+      label = 3;
+      break;
+    } else {
+      label = 14;
+      break;
+    }
+   case 14:
+    return;
+  }
+}
+_huffman_init["X"] = 1;
+function _ix_max($ix, $end) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $_0 = $ix;
+    var $max1_0 = 0;
+    var $max2_0 = 0;
+    label = 3;
+    break;
+   case 3:
+    var $max2_0;
+    var $max1_0;
+    var $_0;
+    var $2 = $_0 + 4 | 0;
+    var $3 = HEAP32[$_0 >> 2];
+    var $4 = $_0 + 8 | 0;
+    var $5 = HEAP32[$2 >> 2];
+    var $6 = ($max1_0 | 0) < ($3 | 0);
+    var $_max1_0 = $6 ? $3 : $max1_0;
+    var $7 = ($max2_0 | 0) < ($5 | 0);
+    var $max2_1 = $7 ? $5 : $max2_0;
+    var $8 = $4 >>> 0 < $end >>> 0;
+    if ($8) {
+      var $_0 = $4;
+      var $max1_0 = $_max1_0;
+      var $max2_0 = $max2_1;
+      label = 3;
+      break;
+    } else {
+      label = 4;
+      break;
+    }
+   case 4:
+    var $10 = ($_max1_0 | 0) < ($max2_1 | 0);
+    var $max2_1__max1_0 = $10 ? $max2_1 : $_max1_0;
+    return $max2_1__max1_0;
+  }
+}
+function _count_bit_ESC($ix, $end, $t1, $t2, $s) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = 5327256 + ($t1 << 4) | 0;
+    var $2 = HEAP32[$1 >> 2];
+    var $3 = $2 << 16;
+    var $4 = 5327256 + ($t2 << 4) | 0;
+    var $5 = HEAP32[$4 >> 2];
+    var $6 = $3 + $5 | 0;
+    var $_0 = $ix;
+    var $sum_0 = 0;
+    label = 3;
+    break;
+   case 3:
+    var $sum_0;
+    var $_0;
+    var $8 = $_0 + 4 | 0;
+    var $9 = HEAP32[$_0 >> 2];
+    var $10 = $_0 + 8 | 0;
+    var $11 = HEAP32[$8 >> 2];
+    var $12 = $9 >>> 0 > 14;
+    var $13 = $12 ? $6 : 0;
+    var $sum_1 = $13 + $sum_0 | 0;
+    var $14 = $11 >>> 0 > 14;
+    var $15 = $14 ? $6 : 0;
+    var $_ = $14 ? 15 : $11;
+    var $_op = $9 << 4;
+    var $16 = $12 ? 240 : $_op;
+    var $17 = $_ + $16 | 0;
+    var $18 = 5316516 + ($17 << 2) | 0;
+    var $19 = HEAP32[$18 >> 2];
+    var $_sum_1 = $sum_1 + $19 | 0;
+    var $20 = $_sum_1 + $15 | 0;
+    var $21 = $10 >>> 0 < $end >>> 0;
+    if ($21) {
+      var $_0 = $10;
+      var $sum_0 = $20;
+      label = 3;
+      break;
+    } else {
+      label = 4;
+      break;
+    }
+   case 4:
+    var $23 = $20 & 65535;
+    var $24 = $20 >>> 16;
+    var $25 = $24 >>> 0 > $23 >>> 0;
+    var $t2_t1 = $25 ? $t2 : $t1;
+    var $_22 = $25 ? $23 : $24;
+    var $26 = HEAP32[$s >> 2];
+    var $27 = $26 + $_22 | 0;
+    HEAP32[$s >> 2] = $27;
+    return $t2_t1;
+  }
+}
+function _count_bit_noESC($ix, $end, $mx, $s) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $_0 = $ix;
+    var $sum1_0 = 0;
+    label = 3;
+    break;
+   case 3:
+    var $sum1_0;
+    var $_0;
+    var $2 = $_0 + 4 | 0;
+    var $3 = HEAP32[$_0 >> 2];
+    var $4 = $_0 + 8 | 0;
+    var $5 = HEAP32[$2 >> 2];
+    var $6 = $3 << 1;
+    var $7 = $6 + $5 | 0;
+    var $8 = $7 + 5251160 | 0;
+    var $9 = HEAP8[$8];
+    var $10 = $9 & 255;
+    var $11 = $10 + $sum1_0 | 0;
+    var $12 = $4 >>> 0 < $end >>> 0;
+    if ($12) {
+      var $_0 = $4;
+      var $sum1_0 = $11;
+      label = 3;
+      break;
+    } else {
+      label = 4;
+      break;
+    }
+   case 4:
+    var $14 = HEAP32[$s >> 2];
+    var $15 = $14 + $11 | 0;
+    HEAP32[$s >> 2] = $15;
+    return 1;
+  }
+}
+function _count_bit_noESC_from2($ix, $end, $max, $s) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = $max - 1 | 0;
+    var $2 = 5327196 + ($1 << 2) | 0;
+    var $3 = HEAP32[$2 >> 2];
+    var $4 = 5327256 + ($3 << 4) | 0;
+    var $5 = HEAP32[$4 >> 2];
+    var $6 = ($1 | 0) == 1;
+    var $7 = $6 ? 5249704 : 5249640;
+    var $_0 = $ix;
+    var $sum_0 = 0;
+    label = 3;
+    break;
+   case 3:
+    var $sum_0;
+    var $_0;
+    var $9 = $_0 + 4 | 0;
+    var $10 = HEAP32[$_0 >> 2];
+    var $11 = $_0 + 8 | 0;
+    var $12 = HEAP32[$9 >> 2];
+    var $13 = $10 * $5 & -1;
+    var $14 = $13 + $12 | 0;
+    var $15 = $7 + ($14 << 2) | 0;
+    var $16 = HEAP32[$15 >> 2];
+    var $17 = $16 + $sum_0 | 0;
+    var $18 = $11 >>> 0 < $end >>> 0;
+    if ($18) {
+      var $_0 = $11;
+      var $sum_0 = $17;
+      label = 3;
+      break;
+    } else {
+      label = 4;
+      break;
+    }
+   case 4:
+    var $20 = $17 & 65535;
+    var $21 = $17 >>> 16;
+    var $22 = $21 >>> 0 > $20 >>> 0;
+    var $_ = $22 ? $20 : $21;
+    var $23 = $22 & 1;
+    var $_14 = $23 + $3 | 0;
+    var $24 = HEAP32[$s >> 2];
+    var $25 = $24 + $_ | 0;
+    HEAP32[$s >> 2] = $25;
+    return $_14;
+  }
+}
+function _count_bit_noESC_from3($ix, $end, $max, $s) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = $max - 1 | 0;
+    var $2 = 5327196 + ($1 << 2) | 0;
+    var $3 = HEAP32[$2 >> 2];
+    var $4 = 5327256 + ($3 << 4) | 0;
+    var $5 = HEAP32[$4 >> 2];
+    var $6 = 5327268 + ($3 << 4) | 0;
+    var $7 = HEAP32[$6 >> 2];
+    var $8 = $3 + 1 | 0;
+    var $9 = 5327268 + ($8 << 4) | 0;
+    var $10 = HEAP32[$9 >> 2];
+    var $11 = $3 + 2 | 0;
+    var $12 = 5327268 + ($11 << 4) | 0;
+    var $13 = HEAP32[$12 >> 2];
+    var $_0 = $ix;
+    var $sum1_0 = 0;
+    var $sum2_0 = 0;
+    var $sum3_0 = 0;
+    label = 3;
+    break;
+   case 3:
+    var $sum3_0;
+    var $sum2_0;
+    var $sum1_0;
+    var $_0;
+    var $15 = $_0 + 4 | 0;
+    var $16 = HEAP32[$_0 >> 2];
+    var $17 = $_0 + 8 | 0;
+    var $18 = HEAP32[$15 >> 2];
+    var $19 = $16 * $5 & -1;
+    var $20 = $19 + $18 | 0;
+    var $21 = $7 + $20 | 0;
+    var $22 = HEAP8[$21];
+    var $23 = $22 & 255;
+    var $24 = $23 + $sum1_0 | 0;
+    var $25 = $10 + $20 | 0;
+    var $26 = HEAP8[$25];
+    var $27 = $26 & 255;
+    var $28 = $27 + $sum2_0 | 0;
+    var $29 = $13 + $20 | 0;
+    var $30 = HEAP8[$29];
+    var $31 = $30 & 255;
+    var $32 = $31 + $sum3_0 | 0;
+    var $33 = $17 >>> 0 < $end >>> 0;
+    if ($33) {
+      var $_0 = $17;
+      var $sum1_0 = $24;
+      var $sum2_0 = $28;
+      var $sum3_0 = $32;
+      label = 3;
+      break;
+    } else {
+      label = 4;
+      break;
+    }
+   case 4:
+    var $35 = $24 >>> 0 > $28 >>> 0;
+    var $_ = $35 ? $8 : $3;
+    var $_21 = $35 ? $28 : $24;
+    var $36 = $_21 >>> 0 > $32 >>> 0;
+    var $t_1 = $36 ? $11 : $_;
+    var $sum1_2 = $36 ? $32 : $_21;
+    var $37 = HEAP32[$s >> 2];
+    var $38 = $37 + $sum1_2 | 0;
+    HEAP32[$s >> 2] = $38;
+    return $t_1;
+  }
+}
+function _quantize_lines_xrpow($l, $istep, $xp, $pi) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = $pi;
+    var $2 = $l & 2;
+    var $3 = $l >>> 2;
+    var $4 = ($3 | 0) == 0;
+    if ($4) {
+      var $fi_0_lcssa = $1;
+      var $_054_lcssa = $xp;
+      label = 6;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 3:
+    var $5 = $l & -4;
+    var $scevgep60 = $pi + ($5 << 2) | 0;
+    var $fi_055 = $1;
+    var $_05456 = $xp;
+    var $_057 = $3;
+    label = 4;
+    break;
+   case 4:
+    var $_057;
+    var $_05456;
+    var $fi_055;
+    var $7 = $_057 - 1 | 0;
+    var $8 = HEAPF32[$_05456 >> 2];
+    var $9 = $8 * $istep;
+    var $10 = $9;
+    var $11 = $_05456 + 4 | 0;
+    var $12 = HEAPF32[$11 >> 2];
+    var $13 = $12 * $istep;
+    var $14 = $13;
+    var $15 = $_05456 + 8 | 0;
+    var $16 = HEAPF32[$15 >> 2];
+    var $17 = $16 * $istep;
+    var $18 = $17;
+    var $19 = $_05456 + 12 | 0;
+    var $20 = HEAPF32[$19 >> 2];
+    var $21 = $20 * $istep;
+    var $22 = $21;
+    var $23 = $10 + 8388608;
+    var $24 = $23;
+    var $25 = $fi_055 | 0;
+    HEAPF32[$25 >> 2] = $24;
+    var $26 = $14 + 8388608;
+    var $27 = $26;
+    var $28 = $fi_055 + 4 | 0;
+    var $29 = $28 | 0;
+    HEAPF32[$29 >> 2] = $27;
+    var $30 = $18 + 8388608;
+    var $31 = $30;
+    var $32 = $fi_055 + 8 | 0;
+    var $33 = $32 | 0;
+    HEAPF32[$33 >> 2] = $31;
+    var $34 = $22 + 8388608;
+    var $35 = $34;
+    var $36 = $fi_055 + 12 | 0;
+    var $37 = $36 | 0;
+    HEAPF32[$37 >> 2] = $35;
+    var $38 = $fi_055;
+    var $39 = HEAP32[$38 >> 2];
+    var $40 = $39 - 1258291200 | 0;
+    var $41 = 5349760 + ($40 << 2) | 0;
+    var $42 = HEAPF32[$41 >> 2];
+    var $43 = $42;
+    var $44 = $23 + $43;
+    var $45 = $44;
+    HEAPF32[$25 >> 2] = $45;
+    var $46 = $28;
+    var $47 = HEAP32[$46 >> 2];
+    var $48 = $47 - 1258291200 | 0;
+    var $49 = 5349760 + ($48 << 2) | 0;
+    var $50 = HEAPF32[$49 >> 2];
+    var $51 = $50;
+    var $52 = $26 + $51;
+    var $53 = $52;
+    HEAPF32[$29 >> 2] = $53;
+    var $54 = $32;
+    var $55 = HEAP32[$54 >> 2];
+    var $56 = $55 - 1258291200 | 0;
+    var $57 = 5349760 + ($56 << 2) | 0;
+    var $58 = HEAPF32[$57 >> 2];
+    var $59 = $58;
+    var $60 = $30 + $59;
+    var $61 = $60;
+    HEAPF32[$33 >> 2] = $61;
+    var $62 = $36;
+    var $63 = HEAP32[$62 >> 2];
+    var $64 = $63 - 1258291200 | 0;
+    var $65 = 5349760 + ($64 << 2) | 0;
+    var $66 = HEAPF32[$65 >> 2];
+    var $67 = $66;
+    var $68 = $34 + $67;
+    var $69 = $68;
+    HEAPF32[$37 >> 2] = $69;
+    var $70 = HEAP32[$38 >> 2];
+    var $71 = $70 - 1258291200 | 0;
+    HEAP32[$38 >> 2] = $71;
+    var $72 = HEAP32[$46 >> 2];
+    var $73 = $72 - 1258291200 | 0;
+    HEAP32[$46 >> 2] = $73;
+    var $74 = HEAP32[$54 >> 2];
+    var $75 = $74 - 1258291200 | 0;
+    HEAP32[$54 >> 2] = $75;
+    var $76 = HEAP32[$62 >> 2];
+    var $77 = $76 - 1258291200 | 0;
+    HEAP32[$62 >> 2] = $77;
+    var $78 = $fi_055 + 16 | 0;
+    var $79 = $_05456 + 16 | 0;
+    var $80 = ($7 | 0) == 0;
+    if ($80) {
+      label = 5;
+      break;
+    } else {
+      var $fi_055 = $78;
+      var $_05456 = $79;
+      var $_057 = $7;
+      label = 4;
+      break;
+    }
+   case 5:
+    var $scevgep = $xp + ($5 << 2) | 0;
+    var $scevgep6061 = $scevgep60;
+    var $fi_0_lcssa = $scevgep6061;
+    var $_054_lcssa = $scevgep;
+    label = 6;
+    break;
+   case 6:
+    var $_054_lcssa;
+    var $fi_0_lcssa;
+    var $82 = ($2 | 0) == 0;
+    if ($82) {
+      label = 8;
+      break;
+    } else {
+      label = 7;
+      break;
+    }
+   case 7:
+    var $84 = HEAPF32[$_054_lcssa >> 2];
+    var $85 = $84 * $istep;
+    var $86 = $85;
+    var $87 = $_054_lcssa + 4 | 0;
+    var $88 = HEAPF32[$87 >> 2];
+    var $89 = $88 * $istep;
+    var $90 = $89;
+    var $91 = $86 + 8388608;
+    var $92 = $91;
+    var $93 = $fi_0_lcssa | 0;
+    HEAPF32[$93 >> 2] = $92;
+    var $94 = $90 + 8388608;
+    var $95 = $94;
+    var $96 = $fi_0_lcssa + 4 | 0;
+    var $97 = $96 | 0;
+    HEAPF32[$97 >> 2] = $95;
+    var $98 = $fi_0_lcssa;
+    var $99 = HEAP32[$98 >> 2];
+    var $100 = $99 - 1258291200 | 0;
+    var $101 = 5349760 + ($100 << 2) | 0;
+    var $102 = HEAPF32[$101 >> 2];
+    var $103 = $102;
+    var $104 = $91 + $103;
+    var $105 = $104;
+    HEAPF32[$93 >> 2] = $105;
+    var $106 = $96;
+    var $107 = HEAP32[$106 >> 2];
+    var $108 = $107 - 1258291200 | 0;
+    var $109 = 5349760 + ($108 << 2) | 0;
+    var $110 = HEAPF32[$109 >> 2];
+    var $111 = $110;
+    var $112 = $94 + $111;
+    var $113 = $112;
+    HEAPF32[$97 >> 2] = $113;
+    var $114 = HEAP32[$98 >> 2];
+    var $115 = $114 - 1258291200 | 0;
+    HEAP32[$98 >> 2] = $115;
+    var $116 = HEAP32[$106 >> 2];
+    var $117 = $116 - 1258291200 | 0;
+    HEAP32[$106 >> 2] = $117;
+    label = 8;
+    break;
+   case 8:
+    return;
+  }
+}
+_quantize_lines_xrpow["X"] = 1;
+function _mpeg2_scale_bitcount($gfc, $cod_info) {
+  var label = 0;
+  var __stackBase__ = STACKTOP;
+  STACKTOP = STACKTOP + 16 | 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $max_sfac = __stackBase__;
+    var $max_sfac94 = $max_sfac;
+    var $1 = $cod_info + 4832 | 0;
+    var $2 = HEAP32[$1 >> 2];
+    var $3 = ($2 | 0) == 0;
+    HEAP32[$max_sfac94 >> 2] = 0;
+    HEAP32[$max_sfac94 + 4 >> 2] = 0;
+    HEAP32[$max_sfac94 + 8 >> 2] = 0;
+    HEAP32[$max_sfac94 + 12 >> 2] = 0;
+    var $_ = $3 ? 0 : 2;
+    var $4 = $cod_info + 4788 | 0;
+    var $5 = HEAP32[$4 >> 2];
+    var $6 = ($5 | 0) == 2;
+    if ($6) {
+      var $sfb_079 = 0;
+      var $partition_080 = 0;
+      label = 3;
+      break;
+    } else {
+      label = 10;
+      break;
+    }
+   case 3:
+    var $partition_080;
+    var $sfb_079;
+    var $7 = 5291844 + $_ * 48 + ($partition_080 << 2) | 0;
+    var $8 = HEAP32[$7 >> 2];
+    var $9 = ($8 | 0) / 3 & -1;
+    var $10 = ($8 | 0) > 2;
+    if ($10) {
+      label = 4;
+      break;
+    } else {
+      var $sfb_1_lcssa = $sfb_079;
+      label = 9;
+      break;
+    }
+   case 4:
+    var $11 = $max_sfac + ($partition_080 << 2) | 0;
+    var $12 = ($9 | 0) > 1;
+    var $smax = $12 ? $9 : 1;
+    var $i_176 = 0;
+    var $sfb_177 = $sfb_079;
+    label = 5;
+    break;
+   case 5:
+    var $sfb_177;
+    var $i_176;
+    var $14 = $sfb_177 * 3 & -1;
+    var $15 = $cod_info + 4608 + ($14 << 2) | 0;
+    var $16 = HEAP32[$15 >> 2];
+    var $17 = HEAP32[$11 >> 2];
+    var $18 = ($16 | 0) > ($17 | 0);
+    if ($18) {
+      label = 6;
+      break;
+    } else {
+      label = 7;
+      break;
+    }
+   case 6:
+    HEAP32[$11 >> 2] = $16;
+    label = 7;
+    break;
+   case 7:
+    var $21 = $14 + 1 | 0;
+    var $22 = $cod_info + 4608 + ($21 << 2) | 0;
+    var $23 = HEAP32[$22 >> 2];
+    var $24 = HEAP32[$11 >> 2];
+    var $25 = ($23 | 0) > ($24 | 0);
+    if ($25) {
+      label = 20;
+      break;
+    } else {
+      label = 21;
+      break;
+    }
+   case 8:
+    var $26 = $sfb_079 + $smax | 0;
+    var $sfb_1_lcssa = $26;
+    label = 9;
+    break;
+   case 9:
+    var $sfb_1_lcssa;
+    var $28 = $partition_080 + 1 | 0;
+    var $exitcond = ($28 | 0) == 4;
+    if ($exitcond) {
+      var $row_in_table_0 = 1;
+      label = 14;
+      break;
+    } else {
+      var $sfb_079 = $sfb_1_lcssa;
+      var $partition_080 = $28;
+      label = 3;
+      break;
+    }
+   case 10:
+    var $29 = 5291828 + $_ * 48 | 0;
+    var $30 = HEAP32[$29 >> 2];
+    var $31 = $max_sfac | 0;
+    var $i_281 = 0;
+    var $sfb_382 = 0;
+    label = 11;
+    break;
+   case 11:
+    var $sfb_382;
+    var $i_281;
+    var $33 = $cod_info + 4608 + ($sfb_382 << 2) | 0;
+    var $34 = HEAP32[$33 >> 2];
+    var $35 = HEAP32[$31 >> 2];
+    var $36 = ($34 | 0) > ($35 | 0);
+    if ($36) {
+      label = 12;
+      break;
+    } else {
+      label = 13;
+      break;
+    }
+   case 12:
+    HEAP32[$31 >> 2] = $34;
+    label = 13;
+    break;
+   case 13:
+    var $39 = $i_281 + 1 | 0;
+    var $40 = $sfb_382 + 1 | 0;
+    var $exitcond91 = ($39 | 0) == ($30 | 0);
+    if ($exitcond91) {
+      label = 24;
+      break;
+    } else {
+      var $i_281 = $39;
+      var $sfb_382 = $40;
+      label = 11;
+      break;
+    }
+   case 14:
+    var $row_in_table_0;
+    var $41 = $max_sfac | 0;
+    var $42 = HEAP32[$41 >> 2];
+    var $43 = 5314312 + ($_ << 4) | 0;
+    var $44 = HEAP32[$43 >> 2];
+    var $45 = ($42 | 0) > ($44 | 0);
+    var $46 = $45 & 1;
+    var $47 = $max_sfac + 4 | 0;
+    var $48 = HEAP32[$47 >> 2];
+    var $49 = 5314316 + ($_ << 4) | 0;
+    var $50 = HEAP32[$49 >> 2];
+    var $51 = ($48 | 0) > ($50 | 0);
+    var $52 = $51 & 1;
+    var $_over_0_1 = $52 + $46 | 0;
+    var $53 = $max_sfac + 8 | 0;
+    var $54 = HEAP32[$53 >> 2];
+    var $55 = 5314320 + ($_ << 4) | 0;
+    var $56 = HEAP32[$55 >> 2];
+    var $57 = ($54 | 0) > ($56 | 0);
+    var $58 = $57 & 1;
+    var $_over_0_2 = $58 + $_over_0_1 | 0;
+    var $59 = $max_sfac + 12 | 0;
+    var $60 = HEAP32[$59 >> 2];
+    var $61 = 5314324 + ($_ << 4) | 0;
+    var $62 = HEAP32[$61 >> 2];
+    var $63 = ($60 | 0) > ($62 | 0);
+    var $64 = $63 & 1;
+    var $_over_0_3 = $64 + $_over_0_2 | 0;
+    var $65 = ($_over_0_3 | 0) == 0;
+    if ($65) {
+      label = 15;
+      break;
+    } else {
+      label = 19;
+      break;
+    }
+   case 15:
+    var $67 = 5291828 + $_ * 48 + ($row_in_table_0 << 4) | 0;
+    var $68 = $cod_info + 5188 | 0;
+    HEAP32[$68 >> 2] = $67;
+    var $69 = $max_sfac | 0;
+    var $70 = HEAP32[$69 >> 2];
+    var $71 = 5292184 + ($70 << 2) | 0;
+    var $72 = HEAP32[$71 >> 2];
+    var $73 = $cod_info + 5192 | 0;
+    HEAP32[$73 >> 2] = $72;
+    var $74 = $max_sfac + 4 | 0;
+    var $75 = HEAP32[$74 >> 2];
+    var $76 = 5292184 + ($75 << 2) | 0;
+    var $77 = HEAP32[$76 >> 2];
+    var $78 = $cod_info + 5196 | 0;
+    HEAP32[$78 >> 2] = $77;
+    var $79 = $max_sfac + 8 | 0;
+    var $80 = HEAP32[$79 >> 2];
+    var $81 = 5292184 + ($80 << 2) | 0;
+    var $82 = HEAP32[$81 >> 2];
+    var $83 = $cod_info + 5200 | 0;
+    HEAP32[$83 >> 2] = $82;
+    var $84 = $max_sfac + 12 | 0;
+    var $85 = HEAP32[$84 >> 2];
+    var $86 = 5292184 + ($85 << 2) | 0;
+    var $87 = HEAP32[$86 >> 2];
+    var $88 = $cod_info + 5204 | 0;
+    HEAP32[$88 >> 2] = $87;
+    var $89 = $cod_info + 5192 | 0;
+    var $90 = HEAP32[$89 >> 2];
+    var $91 = $cod_info + 5196 | 0;
+    var $92 = HEAP32[$91 >> 2];
+    if ($3) {
+      label = 17;
+      break;
+    } else {
+      label = 16;
+      break;
+    }
+   case 16:
+    var $93 = $90 * 3 & -1;
+    var $94 = $93 + 500 | 0;
+    var $95 = $94 + $92 | 0;
+    var $96 = $cod_info + 4784 | 0;
+    HEAP32[$96 >> 2] = $95;
+    label = 18;
+    break;
+   case 17:
+    var $98 = $cod_info + 5200 | 0;
+    var $99 = HEAP32[$98 >> 2];
+    var $100 = $cod_info + 5204 | 0;
+    var $101 = HEAP32[$100 >> 2];
+    var $102 = $90 * 5 & -1;
+    var $103 = $102 + $92 | 0;
+    var $104 = $103 << 4;
+    var $105 = $99 << 2;
+    var $106 = $105 + $104 | 0;
+    var $107 = $106 + $101 | 0;
+    var $108 = $cod_info + 4784 | 0;
+    HEAP32[$108 >> 2] = $107;
+    label = 18;
+    break;
+   case 18:
+    var $109 = $cod_info + 4844 | 0;
+    HEAP32[$109 >> 2] = 0;
+    var $110 = $cod_info + 5192 | 0;
+    var $111 = HEAP32[$110 >> 2];
+    var $112 = HEAP32[$68 >> 2];
+    var $113 = HEAP32[$112 >> 2];
+    var $114 = $113 * $111 & -1;
+    HEAP32[$109 >> 2] = $114;
+    var $115 = $cod_info + 5196 | 0;
+    var $116 = HEAP32[$115 >> 2];
+    var $117 = HEAP32[$68 >> 2];
+    var $118 = $117 + 4 | 0;
+    var $119 = HEAP32[$118 >> 2];
+    var $120 = $119 * $116 & -1;
+    var $121 = HEAP32[$109 >> 2];
+    var $122 = $121 + $120 | 0;
+    HEAP32[$109 >> 2] = $122;
+    var $123 = $cod_info + 5200 | 0;
+    var $124 = HEAP32[$123 >> 2];
+    var $125 = HEAP32[$68 >> 2];
+    var $126 = $125 + 8 | 0;
+    var $127 = HEAP32[$126 >> 2];
+    var $128 = $127 * $124 & -1;
+    var $129 = HEAP32[$109 >> 2];
+    var $130 = $129 + $128 | 0;
+    HEAP32[$109 >> 2] = $130;
+    var $131 = $cod_info + 5204 | 0;
+    var $132 = HEAP32[$131 >> 2];
+    var $133 = HEAP32[$68 >> 2];
+    var $134 = $133 + 12 | 0;
+    var $135 = HEAP32[$134 >> 2];
+    var $136 = $135 * $132 & -1;
+    var $137 = HEAP32[$109 >> 2];
+    var $138 = $137 + $136 | 0;
+    HEAP32[$109 >> 2] = $138;
+    label = 19;
+    break;
+   case 19:
+    STACKTOP = __stackBase__;
+    return $_over_0_3;
+   case 20:
+    HEAP32[$11 >> 2] = $23;
+    label = 21;
+    break;
+   case 21:
+    var $141 = $14 + 2 | 0;
+    var $142 = $cod_info + 4608 + ($141 << 2) | 0;
+    var $143 = HEAP32[$142 >> 2];
+    var $144 = HEAP32[$11 >> 2];
+    var $145 = ($143 | 0) > ($144 | 0);
+    if ($145) {
+      label = 22;
+      break;
+    } else {
+      label = 23;
+      break;
+    }
+   case 22:
+    HEAP32[$11 >> 2] = $143;
+    label = 23;
+    break;
+   case 23:
+    var $148 = $i_176 + 1 | 0;
+    var $149 = $sfb_177 + 1 | 0;
+    var $150 = ($148 | 0) < ($9 | 0);
+    if ($150) {
+      var $i_176 = $148;
+      var $sfb_177 = $149;
+      label = 5;
+      break;
+    } else {
+      label = 8;
+      break;
+    }
+   case 24:
+    var $151 = 5291832 + $_ * 48 | 0;
+    var $152 = HEAP32[$151 >> 2];
+    var $153 = $max_sfac + 4 | 0;
+    var $i_281_1 = 0;
+    var $sfb_382_1 = $30;
+    label = 25;
+    break;
+   case 25:
+    var $sfb_382_1;
+    var $i_281_1;
+    var $155 = $cod_info + 4608 + ($sfb_382_1 << 2) | 0;
+    var $156 = HEAP32[$155 >> 2];
+    var $157 = HEAP32[$153 >> 2];
+    var $158 = ($156 | 0) > ($157 | 0);
+    if ($158) {
+      label = 26;
+      break;
+    } else {
+      label = 27;
+      break;
+    }
+   case 26:
+    HEAP32[$153 >> 2] = $156;
+    label = 27;
+    break;
+   case 27:
+    var $161 = $i_281_1 + 1 | 0;
+    var $162 = $sfb_382_1 + 1 | 0;
+    var $exitcond91_1 = ($161 | 0) == ($152 | 0);
+    if ($exitcond91_1) {
+      label = 28;
+      break;
+    } else {
+      var $i_281_1 = $161;
+      var $sfb_382_1 = $162;
+      label = 25;
+      break;
+    }
+   case 28:
+    var $164 = $30 + $152 | 0;
+    var $165 = 5291836 + $_ * 48 | 0;
+    var $166 = HEAP32[$165 >> 2];
+    if ($3) {
+      label = 29;
+      break;
+    } else {
+      var $sfb_3_lcssa_2 = $164;
+      label = 34;
+      break;
+    }
+   case 29:
+    var $167 = $max_sfac + 8 | 0;
+    var $i_281_2 = 0;
+    var $sfb_382_2 = $164;
+    label = 30;
+    break;
+   case 30:
+    var $sfb_382_2;
+    var $i_281_2;
+    var $169 = $cod_info + 4608 + ($sfb_382_2 << 2) | 0;
+    var $170 = HEAP32[$169 >> 2];
+    var $171 = HEAP32[$167 >> 2];
+    var $172 = ($170 | 0) > ($171 | 0);
+    if ($172) {
+      label = 31;
+      break;
+    } else {
+      label = 32;
+      break;
+    }
+   case 31:
+    HEAP32[$167 >> 2] = $170;
+    label = 32;
+    break;
+   case 32:
+    var $175 = $i_281_2 + 1 | 0;
+    var $176 = $sfb_382_2 + 1 | 0;
+    var $exitcond91_2 = ($175 | 0) == ($166 | 0);
+    if ($exitcond91_2) {
+      label = 33;
+      break;
+    } else {
+      var $i_281_2 = $175;
+      var $sfb_382_2 = $176;
+      label = 30;
+      break;
+    }
+   case 33:
+    var $177 = $164 + $166 | 0;
+    var $sfb_3_lcssa_2 = $177;
+    label = 34;
+    break;
+   case 34:
+    var $sfb_3_lcssa_2;
+    var $179 = 5291840 + $_ * 48 | 0;
+    var $180 = HEAP32[$179 >> 2];
+    var $181 = 19 >>> ($_ >>> 0);
+    var $182 = $181 & 1;
+    var $183 = ($182 | 0) == 0;
+    if ($183) {
+      var $row_in_table_0 = 0;
+      label = 14;
+      break;
+    } else {
+      label = 35;
+      break;
+    }
+   case 35:
+    var $184 = $max_sfac + 12 | 0;
+    var $i_281_3 = 0;
+    var $sfb_382_3 = $sfb_3_lcssa_2;
+    label = 36;
+    break;
+   case 36:
+    var $sfb_382_3;
+    var $i_281_3;
+    var $186 = $cod_info + 4608 + ($sfb_382_3 << 2) | 0;
+    var $187 = HEAP32[$186 >> 2];
+    var $188 = HEAP32[$184 >> 2];
+    var $189 = ($187 | 0) > ($188 | 0);
+    if ($189) {
+      label = 37;
+      break;
+    } else {
+      label = 38;
+      break;
+    }
+   case 37:
+    HEAP32[$184 >> 2] = $187;
+    label = 38;
+    break;
+   case 38:
+    var $192 = $i_281_3 + 1 | 0;
+    var $193 = $sfb_382_3 + 1 | 0;
+    var $exitcond91_3 = ($192 | 0) == ($180 | 0);
+    if ($exitcond91_3) {
+      var $row_in_table_0 = 0;
+      label = 14;
+      break;
+    } else {
+      var $i_281_3 = $192;
+      var $sfb_382_3 = $193;
+      label = 36;
+      break;
+    }
+  }
+}
+_mpeg2_scale_bitcount["X"] = 1;
+function _choose_table_nonMMX($ix, $end, $_s) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = _ix_max($ix, $end);
+    var $2 = $1 >>> 0 < 16;
+    if ($2) {
+      label = 3;
+      break;
+    } else {
+      label = 4;
+      break;
+    }
+   case 3:
+    var $4 = 5348588 + ($1 << 2) | 0;
+    var $5 = HEAP32[$4 >> 2];
+    var $6 = FUNCTION_TABLE[$5]($ix, $end, $1, $_s);
+    var $_0 = $6;
+    label = 13;
+    break;
+   case 4:
+    var $8 = $1 >>> 0 > 8206;
+    if ($8) {
+      label = 5;
+      break;
+    } else {
+      label = 6;
+      break;
+    }
+   case 5:
+    HEAP32[$_s >> 2] = 1e5;
+    var $_0 = -1;
+    label = 13;
+    break;
+   case 6:
+    var $11 = $1 - 15 | 0;
+    var $choice2_0 = 24;
+    label = 7;
+    break;
+   case 7:
+    var $choice2_0;
+    var $13 = ($choice2_0 | 0) < 32;
+    if ($13) {
+      label = 8;
+      break;
+    } else {
+      label = 9;
+      break;
+    }
+   case 8:
+    var $15 = 5327260 + ($choice2_0 << 4) | 0;
+    var $16 = HEAP32[$15 >> 2];
+    var $17 = $16 >>> 0 < $11 >>> 0;
+    var $18 = $choice2_0 + 1 | 0;
+    if ($17) {
+      var $choice2_0 = $18;
+      label = 7;
+      break;
+    } else {
+      label = 9;
+      break;
+    }
+   case 9:
+    var $20 = $choice2_0 - 8 | 0;
+    var $choice_0 = $20;
+    label = 10;
+    break;
+   case 10:
+    var $choice_0;
+    var $22 = ($choice_0 | 0) < 24;
+    if ($22) {
+      label = 11;
+      break;
+    } else {
+      label = 12;
+      break;
+    }
+   case 11:
+    var $24 = 5327260 + ($choice_0 << 4) | 0;
+    var $25 = HEAP32[$24 >> 2];
+    var $26 = $25 >>> 0 < $11 >>> 0;
+    var $27 = $choice_0 + 1 | 0;
+    if ($26) {
+      var $choice_0 = $27;
+      label = 10;
+      break;
+    } else {
+      label = 12;
+      break;
+    }
+   case 12:
+    var $29 = _count_bit_ESC($ix, $end, $choice_0, $choice2_0, $_s);
+    var $_0 = $29;
+    label = 13;
+    break;
+   case 13:
+    var $_0;
+    return $_0;
+  }
+}
+function _SmpFrqIndex($sample_freq, $version) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    if (($sample_freq | 0) == 44100) {
+      label = 3;
+      break;
+    } else if (($sample_freq | 0) == 48e3) {
+      label = 4;
+      break;
+    } else if (($sample_freq | 0) == 32e3) {
+      label = 5;
+      break;
+    } else if (($sample_freq | 0) == 22050) {
+      label = 6;
+      break;
+    } else if (($sample_freq | 0) == 24e3) {
+      label = 7;
+      break;
+    } else if (($sample_freq | 0) == 16e3) {
+      label = 8;
+      break;
+    } else if (($sample_freq | 0) == 11025) {
+      label = 9;
+      break;
+    } else if (($sample_freq | 0) == 12e3) {
+      label = 10;
+      break;
+    } else if (($sample_freq | 0) == 8e3) {
+      label = 11;
+      break;
+    } else {
+      label = 12;
+      break;
+    }
+   case 3:
+    HEAP32[$version >> 2] = 1;
+    var $_0 = 0;
+    label = 13;
+    break;
+   case 4:
+    HEAP32[$version >> 2] = 1;
+    var $_0 = 1;
+    label = 13;
+    break;
+   case 5:
+    HEAP32[$version >> 2] = 1;
+    var $_0 = 2;
+    label = 13;
+    break;
+   case 6:
+    HEAP32[$version >> 2] = 0;
+    var $_0 = 0;
+    label = 13;
+    break;
+   case 7:
+    HEAP32[$version >> 2] = 0;
+    var $_0 = 1;
+    label = 13;
+    break;
+   case 8:
+    HEAP32[$version >> 2] = 0;
+    var $_0 = 2;
+    label = 13;
+    break;
+   case 9:
+    HEAP32[$version >> 2] = 0;
+    var $_0 = 0;
+    label = 13;
+    break;
+   case 10:
+    HEAP32[$version >> 2] = 0;
+    var $_0 = 1;
+    label = 13;
+    break;
+   case 11:
+    HEAP32[$version >> 2] = 0;
+    var $_0 = 2;
+    label = 13;
+    break;
+   case 12:
+    HEAP32[$version >> 2] = 0;
+    var $_0 = -1;
+    label = 13;
+    break;
+   case 13:
+    var $_0;
+    return $_0;
+  }
+}
+function _map2MP3Frequency($freq) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = ($freq | 0) < 8001;
+    if ($1) {
+      var $_0 = 8e3;
+      label = 10;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 3:
+    var $3 = ($freq | 0) < 11026;
+    if ($3) {
+      var $_0 = 11025;
+      label = 10;
+      break;
+    } else {
+      label = 4;
+      break;
+    }
+   case 4:
+    var $5 = ($freq | 0) < 12001;
+    if ($5) {
+      var $_0 = 12e3;
+      label = 10;
+      break;
+    } else {
+      label = 5;
+      break;
+    }
+   case 5:
+    var $7 = ($freq | 0) < 16001;
+    if ($7) {
+      var $_0 = 16e3;
+      label = 10;
+      break;
+    } else {
+      label = 6;
+      break;
+    }
+   case 6:
+    var $9 = ($freq | 0) < 22051;
+    if ($9) {
+      var $_0 = 22050;
+      label = 10;
+      break;
+    } else {
+      label = 7;
+      break;
+    }
+   case 7:
+    var $11 = ($freq | 0) < 24001;
+    if ($11) {
+      var $_0 = 24e3;
+      label = 10;
+      break;
+    } else {
+      label = 8;
+      break;
+    }
+   case 8:
+    var $13 = ($freq | 0) < 32001;
+    if ($13) {
+      var $_0 = 32e3;
+      label = 10;
+      break;
+    } else {
+      label = 9;
+      break;
+    }
+   case 9:
+    var $15 = ($freq | 0) < 44101;
+    var $_ = $15 ? 44100 : 48e3;
+    var $_0 = $_;
+    label = 10;
+    break;
+   case 10:
+    var $_0;
+    return $_0;
+  }
+}
+function _quantize_lines_xrpow_01($l, $istep, $xr, $ix) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = .5945999622344971 / $istep;
+    var $2 = ($l | 0) == 0;
+    if ($2) {
+      label = 4;
+      break;
+    } else {
+      var $i_013 = 0;
+      label = 3;
+      break;
+    }
+   case 3:
+    var $i_013;
+    var $3 = $xr + ($i_013 << 2) | 0;
+    var $4 = HEAPF32[$3 >> 2];
+    var $5 = $i_013 | 1;
+    var $6 = $xr + ($5 << 2) | 0;
+    var $7 = HEAPF32[$6 >> 2];
+    var $not_ = $1 <= $4;
+    var $8 = $not_ & 1;
+    var $not_12 = $1 <= $7;
+    var $9 = $not_12 & 1;
+    var $10 = $ix + ($i_013 << 2) | 0;
+    HEAP32[$10 >> 2] = $8;
+    var $11 = $ix + ($5 << 2) | 0;
+    HEAP32[$11 >> 2] = $9;
+    var $12 = $i_013 + 2 | 0;
+    var $13 = $12 >>> 0 < $l >>> 0;
+    if ($13) {
+      var $i_013 = $12;
+      label = 3;
+      break;
+    } else {
+      label = 4;
+      break;
+    }
+   case 4:
+    return;
+  }
+}
+function _FindNearestBitrate($bRate, $version, $samplerate) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = ($samplerate | 0) < 16e3;
+    var $_version = $1 ? 2 : $version;
+    var $2 = 5348688 + ($_version << 6) | 0;
+    var $3 = HEAP32[$2 >> 2];
+    var $bitrate_017 = $3;
+    var $i_018 = 2;
+    label = 3;
+    break;
+   case 3:
+    var $i_018;
+    var $bitrate_017;
+    var $5 = 5348684 + ($_version << 6) + ($i_018 << 2) | 0;
+    var $6 = HEAP32[$5 >> 2];
+    var $7 = ($6 | 0) > 0;
+    if ($7) {
+      label = 4;
+      break;
+    } else {
+      var $bitrate_1 = $bitrate_017;
+      label = 5;
+      break;
+    }
+   case 4:
+    var $9 = $6 - $bRate | 0;
+    var $10 = ($9 | 0) > 0;
+    var $11 = -$9 | 0;
+    var $12 = $10 ? $9 : $11;
+    var $13 = $bitrate_017 - $bRate | 0;
+    var $14 = ($13 | 0) > 0;
+    var $15 = -$13 | 0;
+    var $16 = $14 ? $13 : $15;
+    var $17 = ($12 | 0) < ($16 | 0);
+    var $_bitrate_0 = $17 ? $6 : $bitrate_017;
+    var $bitrate_1 = $_bitrate_0;
+    label = 5;
+    break;
+   case 5:
+    var $bitrate_1;
+    var $19 = $i_018 + 1 | 0;
+    var $exitcond = ($19 | 0) == 15;
+    if ($exitcond) {
+      label = 6;
+      break;
+    } else {
+      var $bitrate_017 = $bitrate_1;
+      var $i_018 = $19;
+      label = 3;
+      break;
+    }
+   case 6:
+    return $bitrate_1;
+  }
+}
+function _nearestBitrateFullIndex($bitrate) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = $bitrate & 65535;
+    var $b_0 = 0;
+    label = 3;
+    break;
+   case 3:
+    var $b_0;
+    var $3 = ($b_0 | 0) < 16;
+    if ($3) {
+      label = 4;
+      break;
+    } else {
+      var $upper_range_kbps_0 = 320;
+      var $upper_range_0 = 16;
+      var $lower_range_kbps_0 = 320;
+      var $lower_range_0 = 16;
+      label = 6;
+      break;
+    }
+   case 4:
+    var $5 = $b_0 + 1 | 0;
+    var $6 = 5292116 + ($5 << 2) | 0;
+    var $7 = HEAP32[$6 >> 2];
+    var $8 = ($1 | 0) > ($7 | 0);
+    var $_ = $8 ? $1 : $7;
+    var $9 = ($_ | 0) == ($1 | 0);
+    if ($9) {
+      var $b_0 = $5;
+      label = 3;
+      break;
+    } else {
+      label = 5;
+      break;
+    }
+   case 5:
+    var $11 = 5292116 + ($b_0 << 2) | 0;
+    var $12 = HEAP32[$11 >> 2];
+    var $upper_range_kbps_0 = $7;
+    var $upper_range_0 = $5;
+    var $lower_range_kbps_0 = $12;
+    var $lower_range_0 = $b_0;
+    label = 6;
+    break;
+   case 6:
+    var $lower_range_0;
+    var $lower_range_kbps_0;
+    var $upper_range_0;
+    var $upper_range_kbps_0;
+    var $13 = $bitrate & 65535;
+    var $14 = $upper_range_kbps_0 - $13 | 0;
+    var $15 = $13 - $lower_range_kbps_0 | 0;
+    var $16 = ($14 | 0) > ($15 | 0);
+    var $lower_range_0_upper_range_0 = $16 ? $lower_range_0 : $upper_range_0;
+    return $lower_range_0_upper_range_0;
+  }
+}
+function _BitrateIndex($bRate, $version, $samplerate) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = ($samplerate | 0) < 16e3;
+    var $_version = $1 ? 2 : $version;
+    var $i_0 = 0;
+    label = 3;
+    break;
+   case 3:
+    var $i_0;
+    var $3 = ($i_0 | 0) < 15;
+    if ($3) {
+      label = 4;
+      break;
+    } else {
+      var $_0 = -1;
+      label = 5;
+      break;
+    }
+   case 4:
+    var $5 = 5348684 + ($_version << 6) + ($i_0 << 2) | 0;
+    var $6 = HEAP32[$5 >> 2];
+    var $7 = ($6 | 0) > 0;
+    var $8 = ($6 | 0) == ($bRate | 0);
+    var $or_cond = $7 & $8;
+    var $9 = $i_0 + 1 | 0;
+    if ($or_cond) {
+      var $_0 = $i_0;
+      label = 5;
+      break;
+    } else {
+      var $i_0 = $9;
+      label = 3;
+      break;
+    }
+   case 5:
+    var $_0;
+    return $_0;
+  }
+}
+function _isResamplingNecessary($cfg) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = $cfg + 48 | 0;
+    var $2 = HEAP32[$1 >> 2];
+    var $3 = $2 | 0;
+    var $4 = $3 * .9994999766349792;
+    var $5 = $4 & -1;
+    var $6 = $cfg + 44 | 0;
+    var $7 = HEAP32[$6 >> 2];
+    var $8 = ($7 | 0) < ($5 | 0);
+    if ($8) {
+      var $14 = 1;
+      label = 4;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 3:
+    var $10 = $3 * 1.000499963760376;
+    var $11 = $10 & -1;
+    var $12 = ($11 | 0) < ($7 | 0);
+    var $14 = $12;
+    label = 4;
+    break;
+   case 4:
+    var $14;
+    var $15 = $14 & 1;
+    return $15;
+  }
+}
+function _free_id3tag($gfc) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = $gfc + 85700 | 0;
+    var $2 = HEAP32[$1 >> 2];
+    var $3 = ($2 | 0) == 0;
+    if ($3) {
+      label = 4;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 3:
+    _free($2);
+    HEAP32[$1 >> 2] = 0;
+    label = 4;
+    break;
+   case 4:
+    var $6 = $gfc + 85704 | 0;
+    var $7 = HEAP32[$6 >> 2];
+    var $8 = ($7 | 0) == 0;
+    if ($8) {
+      label = 6;
+      break;
+    } else {
+      label = 5;
+      break;
+    }
+   case 5:
+    _free($7);
+    HEAP32[$6 >> 2] = 0;
+    label = 6;
+    break;
+   case 6:
+    var $11 = $gfc + 85708 | 0;
+    var $12 = HEAP32[$11 >> 2];
+    var $13 = ($12 | 0) == 0;
+    if ($13) {
+      label = 8;
+      break;
+    } else {
+      label = 7;
+      break;
+    }
+   case 7:
+    _free($12);
+    HEAP32[$11 >> 2] = 0;
+    label = 8;
+    break;
+   case 8:
+    var $16 = $gfc + 85712 | 0;
+    var $17 = HEAP32[$16 >> 2];
+    var $18 = ($17 | 0) == 0;
+    if ($18) {
+      label = 10;
+      break;
+    } else {
+      label = 9;
+      break;
+    }
+   case 9:
+    _free($17);
+    HEAP32[$16 >> 2] = 0;
+    label = 10;
+    break;
+   case 10:
+    var $21 = $gfc + 85724 | 0;
+    var $22 = HEAP32[$21 >> 2];
+    var $23 = ($22 | 0) == 0;
+    if ($23) {
+      label = 12;
+      break;
+    } else {
+      label = 11;
+      break;
+    }
+   case 11:
+    _free($22);
+    HEAP32[$21 >> 2] = 0;
+    var $25 = $gfc + 85728 | 0;
+    HEAP32[$25 >> 2] = 0;
+    var $26 = $gfc + 85736 | 0;
+    HEAP32[$26 >> 2] = 0;
+    label = 12;
+    break;
+   case 12:
+    var $28 = $gfc + 85740 | 0;
+    var $29 = HEAP32[$28 >> 2];
+    var $30 = ($29 | 0) == 0;
+    if ($30) {
+      label = 15;
+      break;
+    } else {
+      var $node_0 = $29;
+      label = 13;
+      break;
+    }
+   case 13:
+    var $node_0;
+    var $31 = $node_0 + 12 | 0;
+    var $32 = HEAP32[$31 >> 2];
+    var $33 = $node_0 + 24 | 0;
+    var $34 = HEAP32[$33 >> 2];
+    var $35 = $node_0;
+    var $36 = $node_0 | 0;
+    var $37 = HEAP32[$36 >> 2];
+    _free($32);
+    _free($34);
+    _free($35);
+    var $38 = ($37 | 0) == 0;
+    if ($38) {
+      label = 14;
+      break;
+    } else {
+      var $node_0 = $37;
+      label = 13;
+      break;
+    }
+   case 14:
+    HEAP32[$28 >> 2] = 0;
+    var $40 = $gfc + 85744 | 0;
+    HEAP32[$40 >> 2] = 0;
+    label = 15;
+    break;
+   case 15:
+    return;
+  }
+}
+_free_id3tag["X"] = 1;
+function _freegfc($gfc) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $i_034 = 0;
+    label = 3;
+    break;
+   case 3:
+    var $i_034;
+    var $2 = $gfc + 37188 + ($i_034 << 2) | 0;
+    var $3 = HEAP32[$2 >> 2];
+    var $4 = ($3 | 0) == 0;
+    if ($4) {
+      label = 5;
+      break;
+    } else {
+      label = 4;
+      break;
+    }
+   case 4:
+    var $6 = $3;
+    _free($6);
+    HEAP32[$2 >> 2] = 0;
+    label = 5;
+    break;
+   case 5:
+    var $8 = $i_034 + 1 | 0;
+    var $exitcond = ($8 | 0) == 641;
+    if ($exitcond) {
+      label = 6;
+      break;
+    } else {
+      var $i_034 = $8;
+      label = 3;
+      break;
+    }
+   case 6:
+    var $10 = $gfc + 37180 | 0;
+    var $11 = HEAP32[$10 >> 2];
+    var $12 = ($11 | 0) == 0;
+    if ($12) {
+      label = 8;
+      break;
+    } else {
+      label = 7;
+      break;
+    }
+   case 7:
+    var $14 = $11;
+    _free($14);
+    HEAP32[$10 >> 2] = 0;
+    label = 8;
+    break;
+   case 8:
+    var $16 = $gfc + 37184 | 0;
+    var $17 = HEAP32[$16 >> 2];
+    var $18 = ($17 | 0) == 0;
+    if ($18) {
+      label = 10;
+      break;
+    } else {
+      label = 9;
+      break;
+    }
+   case 9:
+    var $20 = $17;
+    _free($20);
+    HEAP32[$16 >> 2] = 0;
+    label = 10;
+    break;
+   case 10:
+    var $22 = $gfc + 284 | 0;
+    var $23 = HEAP32[$22 >> 2];
+    var $24 = ($23 | 0) == 0;
+    if ($24) {
+      label = 12;
+      break;
+    } else {
+      label = 11;
+      break;
+    }
+   case 11:
+    _free($23);
+    HEAP32[$22 >> 2] = 0;
+    label = 12;
+    break;
+   case 12:
+    var $27 = $gfc + 85776 | 0;
+    var $28 = HEAP32[$27 >> 2];
+    var $29 = ($28 | 0) == 0;
+    if ($29) {
+      label = 14;
+      break;
+    } else {
+      label = 13;
+      break;
+    }
+   case 13:
+    var $31 = $28;
+    _free($31);
+    HEAP32[$27 >> 2] = 0;
+    var $32 = $gfc + 85772 | 0;
+    HEAP32[$32 >> 2] = 0;
+    label = 14;
+    break;
+   case 14:
+    var $34 = $gfc + 85792 | 0;
+    var $35 = HEAP32[$34 >> 2];
+    var $36 = ($35 | 0) == 0;
+    if ($36) {
+      label = 16;
+      break;
+    } else {
+      label = 15;
+      break;
+    }
+   case 15:
+    var $38 = $35;
+    _free($38);
+    label = 16;
+    break;
+   case 16:
+    var $40 = $gfc + 85672 | 0;
+    var $41 = HEAP32[$40 >> 2];
+    var $42 = ($41 | 0) == 0;
+    if ($42) {
+      label = 18;
+      break;
+    } else {
+      label = 17;
+      break;
+    }
+   case 17:
+    var $44 = $41;
+    _free($44);
+    label = 18;
+    break;
+   case 18:
+    var $46 = $gfc + 52148 | 0;
+    var $47 = HEAP32[$46 >> 2];
+    var $48 = ($47 | 0) == 0;
+    if ($48) {
+      label = 20;
+      break;
+    } else {
+      label = 19;
+      break;
+    }
+   case 19:
+    var $50 = $47;
+    _free($50);
+    label = 20;
+    break;
+   case 20:
+    var $52 = $gfc + 52152 | 0;
+    var $53 = HEAP32[$52 >> 2];
+    var $54 = ($53 | 0) == 0;
+    if ($54) {
+      label = 22;
+      break;
+    } else {
+      label = 21;
+      break;
+    }
+   case 21:
+    var $56 = $53;
+    _free($56);
+    label = 22;
+    break;
+   case 22:
+    _free_id3tag($gfc);
+    var $58 = $gfc + 85804 | 0;
+    var $59 = HEAP32[$58 >> 2];
+    var $60 = ($59 | 0) == 0;
+    if ($60) {
+      label = 24;
+      break;
+    } else {
+      label = 23;
+      break;
+    }
+   case 23:
+    var $62 = _hip_decode_exit($59);
+    HEAP32[$58 >> 2] = 0;
+    label = 24;
+    break;
+   case 24:
+    _free_global_data($gfc);
+    var $64 = $gfc;
+    _free($64);
+    return;
+  }
+}
+_freegfc["X"] = 1;
+function _free_global_data($gfc) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = ($gfc | 0) == 0;
+    if ($1) {
+      label = 9;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 3:
+    var $3 = $gfc + 85796 | 0;
+    var $4 = HEAP32[$3 >> 2];
+    var $5 = ($4 | 0) == 0;
+    if ($5) {
+      label = 9;
+      break;
+    } else {
+      label = 4;
+      break;
+    }
+   case 4:
+    var $7 = $4 + 2156 | 0;
+    var $8 = HEAP32[$7 >> 2];
+    var $9 = ($8 | 0) == 0;
+    if ($9) {
+      label = 6;
+      break;
+    } else {
+      label = 5;
+      break;
+    }
+   case 5:
+    var $11 = $8;
+    _free($11);
+    label = 6;
+    break;
+   case 6:
+    var $13 = HEAP32[$3 >> 2];
+    var $14 = $13 + 4316 | 0;
+    var $15 = HEAP32[$14 >> 2];
+    var $16 = ($15 | 0) == 0;
+    if ($16) {
+      label = 8;
+      break;
+    } else {
+      label = 7;
+      break;
+    }
+   case 7:
+    var $18 = $15;
+    _free($18);
+    label = 8;
+    break;
+   case 8:
+    var $20 = HEAP32[$3 >> 2];
+    var $21 = $20;
+    _free($21);
+    HEAP32[$3 >> 2] = 0;
+    label = 9;
+    break;
+   case 9:
+    return;
+  }
+}
+function _malloc_aligned($ptr, $size, $bytes) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = ($ptr | 0) == 0;
+    if ($1) {
+      label = 7;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 3:
+    var $3 = $ptr + 4 | 0;
+    var $4 = HEAP32[$3 >> 2];
+    var $5 = ($4 | 0) == 0;
+    if ($5) {
+      label = 4;
+      break;
+    } else {
+      label = 7;
+      break;
+    }
+   case 4:
+    var $7 = $bytes + $size | 0;
+    var $8 = _malloc($7);
+    HEAP32[$3 >> 2] = $8;
+    var $9 = ($bytes | 0) == 0;
+    if ($9) {
+      label = 6;
+      break;
+    } else {
+      label = 5;
+      break;
+    }
+   case 5:
+    var $11 = $8;
+    var $12 = $bytes - 1 | 0;
+    var $13 = $12 + $11 | 0;
+    var $14 = ($13 >>> 0) % ($bytes >>> 0);
+    var $15 = $13 - $14 | 0;
+    var $16 = $15;
+    var $17 = $ptr | 0;
+    HEAP32[$17 >> 2] = $16;
+    label = 7;
+    break;
+   case 6:
+    var $19 = $ptr | 0;
+    HEAP32[$19 >> 2] = $8;
+    label = 7;
+    break;
+   case 7:
+    return;
+  }
+}
+function _free_aligned($ptr) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = ($ptr | 0) == 0;
+    if ($1) {
+      label = 5;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 3:
+    var $3 = $ptr + 4 | 0;
+    var $4 = HEAP32[$3 >> 2];
+    var $5 = ($4 | 0) == 0;
+    if ($5) {
+      label = 5;
+      break;
+    } else {
+      label = 4;
+      break;
+    }
+   case 4:
+    _free($4);
+    HEAP32[$3 >> 2] = 0;
+    var $7 = $ptr | 0;
+    HEAP32[$7 >> 2] = 0;
+    label = 5;
+    break;
+   case 5:
+    return;
+  }
+}
+function _ATHformula($cfg, $f) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = $cfg + 192 | 0;
+    var $2 = HEAP32[$1 >> 2];
+    if (($2 | 0) == 0) {
+      label = 3;
+      break;
+    } else if (($2 | 0) == 1) {
+      label = 4;
+      break;
+    } else if (($2 | 0) == 2) {
+      label = 5;
+      break;
+    } else if (($2 | 0) == 3) {
+      label = 6;
+      break;
+    } else if (($2 | 0) == 4) {
+      label = 7;
+      break;
+    } else if (($2 | 0) == 5) {
+      label = 8;
+      break;
+    } else {
+      label = 9;
+      break;
+    }
+   case 3:
+    var $4 = _ATHformula_GB($f, 9, .10000000149011612, 24);
+    var $ath_0 = $4;
+    label = 10;
+    break;
+   case 4:
+    var $6 = _ATHformula_GB($f, -1, .10000000149011612, 24);
+    var $ath_0 = $6;
+    label = 10;
+    break;
+   case 5:
+    var $8 = _ATHformula_GB($f, 0, .10000000149011612, 24);
+    var $ath_0 = $8;
+    label = 10;
+    break;
+   case 6:
+    var $10 = _ATHformula_GB($f, 1, .10000000149011612, 24);
+    var $11 = $10 + 6;
+    var $ath_0 = $11;
+    label = 10;
+    break;
+   case 7:
+    var $13 = $cfg + 188 | 0;
+    var $14 = HEAPF32[$13 >> 2];
+    var $15 = _ATHformula_GB($f, $14, .10000000149011612, 24);
+    var $ath_0 = $15;
+    label = 10;
+    break;
+   case 8:
+    var $17 = $cfg + 188 | 0;
+    var $18 = HEAPF32[$17 >> 2];
+    var $19 = _ATHformula_GB($f, $18, 3.4100000858306885, 16.100000381469727);
+    var $ath_0 = $19;
+    label = 10;
+    break;
+   case 9:
+    var $21 = _ATHformula_GB($f, 0, .10000000149011612, 24);
+    var $ath_0 = $21;
+    label = 10;
+    break;
+   case 10:
+    var $ath_0;
+    return $ath_0;
+  }
+}
+function _ATHformula_GB($f, $value, $f_min, $f_max) {
+  var $3 = ($f < -.3 ? 3410 : $f) / 1e3;
+  var $5 = $3 < $f_min ? $f_min : $3;
+  var $8 = $5 > $f_max ? $f_max : $5;
+  var $10 = Math.pow($8, -.8) * 3.64;
+  var $11 = $8 - 3.4;
+  var $15 = $10 - Math.exp($11 * $11 * -.6) * 6.8;
+  var $16 = $8 - 8.7;
+  var $20 = $15 + Math.exp($16 * $16 * -.15) * 6;
+  return $20 + ($value * .04 + .6) * .001 * Math.pow($8, 4);
+}
+function _freq2bark($freq) {
+  var $4 = $freq < 0 ? 0 : $freq * .001;
+  var $8 = Math.atan($4 * .76) * 13;
+  return $8 + Math.atan($4 * $4 / 56.25) * 3.5;
+}
+function _fill_buffer($gfc, $mfbuf, $in_buffer, $nsamples, $n_in, $n_out) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = $gfc + 16 | 0;
+    var $2 = $gfc + 84032 | 0;
+    var $3 = HEAP32[$2 >> 2];
+    var $4 = $gfc + 76 | 0;
+    var $5 = HEAP32[$4 >> 2];
+    var $6 = $5 * 576 & -1;
+    var $7 = $gfc + 72 | 0;
+    var $8 = HEAP32[$7 >> 2];
+    var $9 = _isResamplingNecessary($1);
+    var $10 = ($9 | 0) == 0;
+    if ($10) {
+      label = 5;
+      break;
+    } else {
+      var $ch_0 = 0;
+      label = 3;
+      break;
+    }
+   case 3:
+    var $ch_0;
+    var $11 = $mfbuf + ($ch_0 << 2) | 0;
+    var $12 = HEAP32[$11 >> 2];
+    var $13 = $12 + ($3 << 2) | 0;
+    var $14 = $in_buffer + ($ch_0 << 2) | 0;
+    var $15 = HEAP32[$14 >> 2];
+    var $16 = _fill_buffer_resample($gfc, $13, $6, $15, $nsamples, $n_in, $ch_0);
+    var $17 = $ch_0 + 1 | 0;
+    var $18 = ($17 | 0) < ($8 | 0);
+    if ($18) {
+      var $ch_0 = $17;
+      label = 3;
+      break;
+    } else {
+      label = 4;
+      break;
+    }
+   case 4:
+    HEAP32[$n_out >> 2] = $16;
+    label = 8;
+    break;
+   case 5:
+    var $21 = ($6 | 0) < ($nsamples | 0);
+    var $22 = $21 ? $6 : $nsamples;
+    var $23 = $22 << 2;
+    var $ch_1 = 0;
+    label = 6;
+    break;
+   case 6:
+    var $ch_1;
+    var $25 = $mfbuf + ($ch_1 << 2) | 0;
+    var $26 = HEAP32[$25 >> 2];
+    var $27 = $26 + ($3 << 2) | 0;
+    var $28 = $27;
+    var $29 = $in_buffer + ($ch_1 << 2) | 0;
+    var $30 = HEAP32[$29 >> 2];
+    var $31 = $30;
+    _memcpy($28, $31, $23);
+    var $32 = $ch_1 + 1 | 0;
+    var $33 = ($32 | 0) < ($8 | 0);
+    if ($33) {
+      var $ch_1 = $32;
+      label = 6;
+      break;
+    } else {
+      label = 7;
+      break;
+    }
+   case 7:
+    HEAP32[$n_out >> 2] = $22;
+    HEAP32[$n_in >> 2] = $22;
+    label = 8;
+    break;
+   case 8:
+    return;
+  }
+}
+function _has_MMX() {
+  return 0;
+}
+function _has_3DNow() {
+  return 0;
+}
+function _has_SSE() {
+  return 0;
+}
+function _has_SSE2() {
+  return 0;
+}
+function _disable_FPE() {
+  return;
+}
+function _gcd($i, $j) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = ($j | 0) == 0;
+    if ($1) {
+      var $i_tr_lcssa = $i;
+      label = 4;
+      break;
+    } else {
+      var $i_tr5 = $i;
+      var $j_tr6 = $j;
+      label = 3;
+      break;
+    }
+   case 3:
+    var $j_tr6;
+    var $i_tr5;
+    var $2 = ($i_tr5 | 0) % ($j_tr6 | 0);
+    var $3 = ($2 | 0) == 0;
+    if ($3) {
+      var $i_tr_lcssa = $j_tr6;
+      label = 4;
+      break;
+    } else {
+      var $i_tr5 = $j_tr6;
+      var $j_tr6 = $2;
+      label = 3;
+      break;
+    }
+   case 4:
+    var $i_tr_lcssa;
+    return $i_tr_lcssa;
+  }
+}
+function _fast_log2($x) {
+  var $1 = (HEAPF32[tempDoublePtr >> 2] = $x, HEAP32[tempDoublePtr >> 2]);
+  var $8 = ($1 & 16383 | 0) * 6103515625e-14;
+  var $10 = $1 >>> 14 & 511;
+  return (($1 >>> 23 & 255) - 127 | 0) + ((1 - $8) * HEAPF32[5314464 + ($10 << 2) >> 2] + $8 * HEAPF32[5314464 + ($10 + 1 << 2) >> 2]);
+}
+function _fill_buffer_resample($gfc, $outbuf, $desired_len, $inbuf, $len, $num_used, $ch) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = $gfc + 60 | 0;
+    var $2 = HEAP32[$1 >> 2];
+    var $3 = $2 | 0;
+    var $4 = $gfc + 64 | 0;
+    var $5 = HEAP32[$4 >> 2];
+    var $6 = $5 | 0;
+    var $7 = $3 / $6;
+    var $8 = _gcd($5, $2);
+    var $9 = ($5 | 0) / ($8 | 0) & -1;
+    var $10 = ($9 | 0) > 320;
+    var $_ = $10 ? 320 : $9;
+    var $11 = $7 + .5;
+    var $12 = Math.floor($11);
+    var $13 = $7 - $12;
+    var $14 = Math.abs($13);
+    var $15 = $14 < 1e-4;
+    var $16 = 1 / $7;
+    var $17 = $16;
+    var $18 = $17 > 1;
+    var $fcn_0 = $18 ? 1 : $17;
+    var $19 = $15 ? 32 : 31;
+    var $20 = $19 + 1 | 0;
+    var $21 = $gfc + 12 | 0;
+    var $22 = HEAP32[$21 >> 2];
+    var $23 = ($22 | 0) == 0;
+    if ($23) {
+      label = 3;
+      break;
+    } else {
+      var $j_1 = 0;
+      label = 15;
+      break;
+    }
+   case 3:
+    var $25 = _calloc($20, 4);
+    var $26 = $25;
+    var $27 = $gfc + 37180 | 0;
+    HEAP32[$27 >> 2] = $26;
+    var $28 = _calloc($20, 4);
+    var $29 = $28;
+    var $30 = $gfc + 37184 | 0;
+    HEAP32[$30 >> 2] = $29;
+    var $31 = $_ << 1;
+    var $32 = ($31 | 0) < 0;
+    if ($32) {
+      label = 4;
+      break;
+    } else {
+      label = 5;
+      break;
+    }
+   case 4:
+    var $33 = $gfc + 37164 | 0;
+    var $34 = $33;
+    HEAP32[$34 >> 2] = 0;
+    HEAP32[$34 + 4 >> 2] = 0;
+    HEAP32[$34 + 8 >> 2] = 0;
+    HEAP32[$34 + 12 >> 2] = 0;
+    var $j_0_lcssa = 0;
+    label = 14;
+    break;
+   case 5:
+    var $35 = ($9 | 0) < 320;
+    var $36 = $9 << 1;
+    var $_op_op160 = $36 | 1;
+    var $37 = $35 ? $_op_op160 : 641;
+    var $i_0144 = 0;
+    label = 6;
+    break;
+   case 6:
+    var $i_0144;
+    var $39 = _calloc($20, 4);
+    var $40 = $39;
+    var $41 = $gfc + 37188 + ($i_0144 << 2) | 0;
+    HEAP32[$41 >> 2] = $40;
+    var $42 = $i_0144 + 1 | 0;
+    var $exitcond159 = ($42 | 0) == ($37 | 0);
+    if ($exitcond159) {
+      label = 7;
+      break;
+    } else {
+      var $i_0144 = $42;
+      label = 6;
+      break;
+    }
+   case 7:
+    var $43 = $gfc + 37164 | 0;
+    var $44 = ($31 | 0) < 0;
+    var $45 = $43;
+    HEAP32[$45 >> 2] = 0;
+    HEAP32[$45 + 4 >> 2] = 0;
+    HEAP32[$45 + 8 >> 2] = 0;
+    HEAP32[$45 + 12 >> 2] = 0;
+    if ($44) {
+      var $j_0_lcssa = 0;
+      label = 14;
+      break;
+    } else {
+      label = 8;
+      break;
+    }
+   case 8:
+    var $46 = $_ | 0;
+    var $47 = $46 * 2;
+    var $48 = ($9 | 0) < 320;
+    var $49 = $9 << 1;
+    var $_op161_op162 = $49 | 1;
+    var $50 = $48 ? $_op161_op162 : 641;
+    var $j_0139 = 0;
+    label = 9;
+    break;
+   case 9:
+    var $j_0139;
+    var $52 = $j_0139 - $_ | 0;
+    var $53 = $52 | 0;
+    var $54 = $53 / $47;
+    var $55 = $54;
+    var $56 = $gfc + 37188 + ($j_0139 << 2) | 0;
+    var $sum_0136 = 0;
+    var $i_1137 = 0;
+    label = 10;
+    break;
+   case 10:
+    var $i_1137;
+    var $sum_0136;
+    var $58 = $i_1137 | 0;
+    var $59 = $58 - $55;
+    var $60 = _blackman($59, $fcn_0, $19);
+    var $61 = HEAP32[$56 >> 2];
+    var $62 = $61 + ($i_1137 << 2) | 0;
+    HEAPF32[$62 >> 2] = $60;
+    var $63 = $sum_0136 + $60;
+    var $64 = $i_1137 + 1 | 0;
+    var $65 = ($64 | 0) > ($19 | 0);
+    if ($65) {
+      label = 11;
+      break;
+    } else {
+      var $sum_0136 = $63;
+      var $i_1137 = $64;
+      label = 10;
+      break;
+    }
+   case 11:
+    var $66 = $gfc + 37188 + ($j_0139 << 2) | 0;
+    var $i_2138 = 0;
+    label = 12;
+    break;
+   case 12:
+    var $i_2138;
+    var $68 = HEAP32[$66 >> 2];
+    var $69 = $68 + ($i_2138 << 2) | 0;
+    var $70 = HEAPF32[$69 >> 2];
+    var $71 = $70 / $63;
+    HEAPF32[$69 >> 2] = $71;
+    var $72 = $i_2138 + 1 | 0;
+    var $73 = ($72 | 0) > ($19 | 0);
+    if ($73) {
+      label = 13;
+      break;
+    } else {
+      var $i_2138 = $72;
+      label = 12;
+      break;
+    }
+   case 13:
+    var $75 = $j_0139 + 1 | 0;
+    var $exitcond157 = ($75 | 0) == ($50 | 0);
+    if ($exitcond157) {
+      var $j_0_lcssa = $50;
+      label = 14;
+      break;
+    } else {
+      var $j_0139 = $75;
+      label = 9;
+      break;
+    }
+   case 14:
+    var $j_0_lcssa;
+    HEAP32[$21 >> 2] = 1;
+    var $j_1 = $j_0_lcssa;
+    label = 15;
+    break;
+   case 15:
+    var $j_1;
+    var $77 = $gfc + 37180 + ($ch << 2) | 0;
+    var $78 = HEAP32[$77 >> 2];
+    var $79 = ($desired_len | 0) > 0;
+    if ($79) {
+      label = 16;
+      break;
+    } else {
+      var $j_3 = $j_1;
+      var $k_0_lcssa = 0;
+      label = 24;
+      break;
+    }
+   case 16:
+    var $80 = $gfc + 37164 + ($ch << 3) | 0;
+    var $81 = $19 >>> 1;
+    var $82 = $19 - $81 | 0;
+    var $83 = $19 & 1;
+    var $84 = $83 | 0;
+    var $85 = $84 * .5;
+    var $86 = $_ | 0;
+    var $k_0130 = 0;
+    label = 17;
+    break;
+   case 17:
+    var $k_0130;
+    var $88 = $k_0130 | 0;
+    var $89 = $7 * $88;
+    var $90 = (HEAP32[tempDoublePtr >> 2] = HEAP32[$80 >> 2], HEAP32[tempDoublePtr + 4 >> 2] = HEAP32[$80 + 4 >> 2], HEAPF64[tempDoublePtr >> 3]);
+    var $91 = $89 - $90;
+    var $92 = Math.floor($91);
+    var $93 = $92 & -1;
+    var $94 = $82 + $93 | 0;
+    var $95 = ($94 | 0) < ($len | 0);
+    if ($95) {
+      label = 18;
+      break;
+    } else {
+      var $j_3 = $93;
+      var $k_0_lcssa = $k_0130;
+      label = 24;
+      break;
+    }
+   case 18:
+    var $97 = $93 | 0;
+    var $98 = $85 + $97;
+    var $99 = $91 - $98;
+    var $100 = $99;
+    var $101 = $100 * 2;
+    var $102 = $86 * $101;
+    var $103 = $86 + $102;
+    var $104 = $103;
+    var $105 = $104 + .5;
+    var $106 = Math.floor($105);
+    var $107 = $106 & -1;
+    var $108 = $93 - $81 | 0;
+    var $109 = $gfc + 37188 + ($107 << 2) | 0;
+    var $110 = HEAP32[$109 >> 2];
+    var $i_3128 = 0;
+    var $xvalue_0129 = 0;
+    label = 19;
+    break;
+   case 19:
+    var $xvalue_0129;
+    var $i_3128;
+    var $112 = $108 + $i_3128 | 0;
+    var $113 = ($112 | 0) < 0;
+    if ($113) {
+      label = 20;
+      break;
+    } else {
+      label = 21;
+      break;
+    }
+   case 20:
+    var $115 = $112 + $20 | 0;
+    var $116 = $78 + ($115 << 2) | 0;
+    var $_in = $116;
+    label = 22;
+    break;
+   case 21:
+    var $118 = $inbuf + ($112 << 2) | 0;
+    var $_in = $118;
+    label = 22;
+    break;
+   case 22:
+    var $_in;
+    var $120 = HEAPF32[$_in >> 2];
+    var $121 = $110 + ($i_3128 << 2) | 0;
+    var $122 = HEAPF32[$121 >> 2];
+    var $123 = $120 * $122;
+    var $124 = $xvalue_0129 + $123;
+    var $125 = $i_3128 + 1 | 0;
+    var $126 = ($125 | 0) > ($19 | 0);
+    if ($126) {
+      label = 23;
+      break;
+    } else {
+      var $i_3128 = $125;
+      var $xvalue_0129 = $124;
+      label = 19;
+      break;
+    }
+   case 23:
+    var $128 = $outbuf + ($k_0130 << 2) | 0;
+    HEAPF32[$128 >> 2] = $124;
+    var $129 = $k_0130 + 1 | 0;
+    var $130 = ($129 | 0) < ($desired_len | 0);
+    if ($130) {
+      var $k_0130 = $129;
+      label = 17;
+      break;
+    } else {
+      var $j_3 = $93;
+      var $k_0_lcssa = $129;
+      label = 24;
+      break;
+    }
+   case 24:
+    var $k_0_lcssa;
+    var $j_3;
+    var $131 = $19 >>> 1;
+    var $132 = $19 - $131 | 0;
+    var $133 = $132 + $j_3 | 0;
+    var $134 = ($133 | 0) > ($len | 0);
+    var $len_ = $134 ? $len : $133;
+    HEAP32[$num_used >> 2] = $len_;
+    var $135 = $len_ | 0;
+    var $136 = $k_0_lcssa | 0;
+    var $137 = $7 * $136;
+    var $138 = $135 - $137;
+    var $139 = $gfc + 37164 + ($ch << 3) | 0;
+    var $140 = (HEAP32[tempDoublePtr >> 2] = HEAP32[$139 >> 2], HEAP32[tempDoublePtr + 4 >> 2] = HEAP32[$139 + 4 >> 2], HEAPF64[tempDoublePtr >> 3]);
+    var $141 = $140 + $138;
+    HEAPF64[tempDoublePtr >> 3] = $141, HEAP32[$139 >> 2] = HEAP32[tempDoublePtr >> 2], HEAP32[$139 + 4 >> 2] = HEAP32[tempDoublePtr + 4 >> 2];
+    var $142 = HEAP32[$num_used >> 2];
+    var $143 = ($142 | 0) < ($20 | 0);
+    if ($143) {
+      label = 27;
+      break;
+    } else {
+      label = 25;
+      break;
+    }
+   case 25:
+    var $_neg120 = $19 ^ -1;
+    var $i_4127 = 0;
+    label = 26;
+    break;
+   case 26:
+    var $i_4127;
+    var $145 = HEAP32[$num_used >> 2];
+    var $146 = $i_4127 + $_neg120 | 0;
+    var $147 = $146 + $145 | 0;
+    var $148 = $inbuf + ($147 << 2) | 0;
+    var $149 = HEAPF32[$148 >> 2];
+    var $150 = $78 + ($i_4127 << 2) | 0;
+    HEAPF32[$150 >> 2] = $149;
+    var $151 = $i_4127 + 1 | 0;
+    var $152 = ($151 | 0) < ($20 | 0);
+    if ($152) {
+      var $i_4127 = $151;
+      label = 26;
+      break;
+    } else {
+      label = 33;
+      break;
+    }
+   case 27:
+    var $154 = $20 - $142 | 0;
+    var $155 = ($154 | 0) > 0;
+    if ($155) {
+      label = 28;
+      break;
+    } else {
+      var $i_5_lcssa163 = 0;
+      label = 30;
+      break;
+    }
+   case 28:
+    var $156 = $19 + 1 | 0;
+    var $157 = $156 - $142 | 0;
+    var $i_5123 = 0;
+    label = 31;
+    break;
+   case 29:
+    var $158 = ($157 | 0) < ($20 | 0);
+    if ($158) {
+      var $i_5_lcssa163 = $157;
+      label = 30;
+      break;
+    } else {
+      label = 33;
+      break;
+    }
+   case 30:
+    var $i_5_lcssa163;
+    var $159 = $19 + 1 | 0;
+    var $160 = $159 - $i_5_lcssa163 | 0;
+    var $j_4121 = 0;
+    var $i_6122 = $i_5_lcssa163;
+    label = 32;
+    break;
+   case 31:
+    var $i_5123;
+    var $162 = HEAP32[$num_used >> 2];
+    var $163 = $162 + $i_5123 | 0;
+    var $164 = $78 + ($163 << 2) | 0;
+    var $165 = HEAPF32[$164 >> 2];
+    var $166 = $78 + ($i_5123 << 2) | 0;
+    HEAPF32[$166 >> 2] = $165;
+    var $167 = $i_5123 + 1 | 0;
+    var $exitcond150 = ($167 | 0) == ($157 | 0);
+    if ($exitcond150) {
+      label = 29;
+      break;
+    } else {
+      var $i_5123 = $167;
+      label = 31;
+      break;
+    }
+   case 32:
+    var $i_6122;
+    var $j_4121;
+    var $169 = $inbuf + ($j_4121 << 2) | 0;
+    var $170 = HEAPF32[$169 >> 2];
+    var $171 = $78 + ($i_6122 << 2) | 0;
+    HEAPF32[$171 >> 2] = $170;
+    var $172 = $i_6122 + 1 | 0;
+    var $173 = $j_4121 + 1 | 0;
+    var $exitcond = ($173 | 0) == ($160 | 0);
+    if ($exitcond) {
+      label = 33;
+      break;
+    } else {
+      var $j_4121 = $173;
+      var $i_6122 = $172;
+      label = 32;
+      break;
+    }
+   case 33:
+    return $k_0_lcssa;
+  }
+}
+_fill_buffer_resample["X"] = 1;
+function _lame_report_def($format, $args) {
+  _fprintf(HEAP32[_stderr >> 2], $format, $args);
+  _fflush(HEAP32[_stderr >> 2]);
+  return;
+}
+function _lame_report_fnc($print_f, $format, varrp) {
+  var label = 0;
+  var __stackBase__ = STACKTOP;
+  STACKTOP = STACKTOP + 4 | 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $args = __stackBase__;
+    var $1 = ($print_f | 0) == 0;
+    if ($1) {
+      label = 4;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 3:
+    var $3 = $args;
+    HEAP32[$3 >> 2] = varrp;
+    var $4 = HEAP32[$args >> 2];
+    FUNCTION_TABLE[$print_f]($format, $4);
+    label = 4;
+    break;
+   case 4:
+    STACKTOP = __stackBase__;
+    return;
+  }
+}
+function _lame_debugf($gfc, $format, varrp) {
+  var label = 0;
+  var __stackBase__ = STACKTOP;
+  STACKTOP = STACKTOP + 4 | 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $args = __stackBase__;
+    var $1 = ($gfc | 0) == 0;
+    if ($1) {
+      label = 5;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 3:
+    var $3 = $gfc + 85828 | 0;
+    var $4 = HEAP32[$3 >> 2];
+    var $5 = ($4 | 0) == 0;
+    if ($5) {
+      label = 5;
+      break;
+    } else {
+      label = 4;
+      break;
+    }
+   case 4:
+    var $7 = $args;
+    HEAP32[$7 >> 2] = varrp;
+    var $8 = HEAP32[$3 >> 2];
+    var $9 = HEAP32[$args >> 2];
+    FUNCTION_TABLE[$8]($format, $9);
+    label = 5;
+    break;
+   case 5:
+    STACKTOP = __stackBase__;
+    return;
+  }
+}
+function _lame_msgf($gfc, $format, varrp) {
+  var label = 0;
+  var __stackBase__ = STACKTOP;
+  STACKTOP = STACKTOP + 4 | 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $args = __stackBase__;
+    var $1 = ($gfc | 0) == 0;
+    if ($1) {
+      label = 5;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 3:
+    var $3 = $gfc + 85824 | 0;
+    var $4 = HEAP32[$3 >> 2];
+    var $5 = ($4 | 0) == 0;
+    if ($5) {
+      label = 5;
+      break;
+    } else {
+      label = 4;
+      break;
+    }
+   case 4:
+    var $7 = $args;
+    HEAP32[$7 >> 2] = varrp;
+    var $8 = HEAP32[$3 >> 2];
+    var $9 = HEAP32[$args >> 2];
+    FUNCTION_TABLE[$8]($format, $9);
+    label = 5;
+    break;
+   case 5:
+    STACKTOP = __stackBase__;
+    return;
+  }
+}
+function _lame_errorf($gfc, $format, varrp) {
+  var label = 0;
+  var __stackBase__ = STACKTOP;
+  STACKTOP = STACKTOP + 4 | 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $args = __stackBase__;
+    var $1 = ($gfc | 0) == 0;
+    if ($1) {
+      label = 5;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 3:
+    var $3 = $gfc + 85832 | 0;
+    var $4 = HEAP32[$3 >> 2];
+    var $5 = ($4 | 0) == 0;
+    if ($5) {
+      label = 5;
+      break;
+    } else {
+      label = 4;
+      break;
+    }
+   case 4:
+    var $7 = $args;
+    HEAP32[$7 >> 2] = varrp;
+    var $8 = HEAP32[$3 >> 2];
+    var $9 = HEAP32[$args >> 2];
+    FUNCTION_TABLE[$8]($format, $9);
+    label = 5;
+    break;
+   case 5:
+    STACKTOP = __stackBase__;
+    return;
+  }
+}
+function _init_log_table() {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $_b = HEAP8[5327192];
+    if ($_b) {
+      label = 4;
+      break;
+    } else {
+      var $j_04 = 0;
+      label = 3;
+      break;
+    }
+   case 3:
+    var $j_04;
+    var $1 = $j_04 | 0;
+    var $2 = $1 * .001953125;
+    var $3 = $2 + 1;
+    var $4 = $3;
+    var $5 = Math.log($4);
+    var $6 = $5 / .6931471805599453;
+    var $7 = $6;
+    var $8 = 5314464 + ($j_04 << 2) | 0;
+    HEAPF32[$8 >> 2] = $7;
+    var $9 = $j_04 + 1 | 0;
+    var $exitcond = ($9 | 0) == 513;
+    if ($exitcond) {
+      label = 4;
+      break;
+    } else {
+      var $j_04 = $9;
+      label = 3;
+      break;
+    }
+   case 4:
+    HEAP8[5327192] = 1;
+    return;
+  }
+}
+function _blackman($x, $fcn, $l) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = $fcn;
+    var $2 = $1 * 3.141592653589793;
+    var $3 = $2;
+    var $4 = $l | 0;
+    var $5 = $x / $4;
+    var $6 = $5 < 0;
+    var $_014 = $6 ? 0 : $5;
+    var $7 = $_014 > 1;
+    var $_1 = $7 ? 1 : $_014;
+    var $8 = $_1 - .5;
+    var $fabsf = Math.abs($8);
+    var $9 = $fabsf;
+    var $10 = $9 < 1e-9;
+    if ($10) {
+      label = 3;
+      break;
+    } else {
+      label = 4;
+      break;
+    }
+   case 3:
+    var $12 = $3;
+    var $13 = $12 / 3.141592653589793;
+    var $_0_in = $13;
+    label = 5;
+    break;
+   case 4:
+    var $15 = $8;
+    var $16 = $_1 * 2;
+    var $17 = $_1 * 4;
+    var $18 = $16;
+    var $19 = $17;
+    var $20 = $18 * 3.141592653589793;
+    var $21 = $19 * 3.141592653589793;
+    var $22 = Math.cos($20);
+    var $23 = Math.cos($21);
+    var $24 = $22 * .5;
+    var $25 = $23 * .08;
+    var $26 = .42 - $24;
+    var $27 = $26 + $25;
+    var $28 = $27;
+    var $29 = $28;
+    var $30 = $4 * $3;
+    var $31 = $30 * $8;
+    var $32 = $31;
+    var $33 = Math.sin($32);
+    var $34 = $33 * $29;
+    var $35 = $l | 0;
+    var $36 = $35 * 3.141592653589793;
+    var $37 = $36 * $15;
+    var $38 = $34 / $37;
+    var $_0_in = $38;
+    label = 5;
+    break;
+   case 5:
+    var $_0_in;
+    var $_0 = $_0_in;
+    return $_0;
+  }
+}
+function _guess_scalefac_x34($xr, $xr34, $l3_xmin, $bw, $sf_min) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = _calc_scalefac($l3_xmin, $bw);
+    var $2 = $sf_min & 255;
+    var $3 = ($1 | 0) < ($2 | 0);
+    if ($3) {
+      label = 4;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 3:
+    var $5 = ($1 | 0) > 254;
+    var $6 = $1 & 255;
+    var $_ = $5 ? -1 : $6;
+    return $_;
+   case 4:
+    return $sf_min;
+  }
+}
+function _find_scalefac_x34($xr, $xr34, $l3_xmin, $bw, $sf_min) {
+  var label = 0;
+  var __stackBase__ = STACKTOP;
+  STACKTOP = STACKTOP + 2048 | 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $did_it = __stackBase__;
+    var $1 = $did_it;
+    for (var $$dest = $1 >> 2, $$stop = $$dest + 512; $$dest < $$stop; $$dest++) {
+      HEAP32[$$dest] = 0;
+    }
+    var $2 = $did_it | 0;
+    var $sf_ok_018 = -1;
+    var $delsf_019 = 64;
+    var $seen_good_one_020 = 0;
+    var $i_021 = 0;
+    var $sf_022 = -128;
+    label = 3;
+    break;
+   case 3:
+    var $sf_022;
+    var $i_021;
+    var $seen_good_one_020;
+    var $delsf_019;
+    var $sf_ok_018;
+    var $4 = $sf_022 & 255;
+    var $5 = ($sf_022 & 255) > ($sf_min & 255);
+    if ($5) {
+      label = 5;
+      break;
+    } else {
+      label = 4;
+      break;
+    }
+   case 4:
+    var $7 = $delsf_019 & 255;
+    var $8 = $4 + $7 | 0;
+    var $sf_1_in = $8;
+    var $seen_good_one_1 = $seen_good_one_020;
+    var $sf_ok_1 = $sf_ok_018;
+    label = 8;
+    break;
+   case 5:
+    var $10 = _tri_calc_sfb_noise_x34($xr, $xr34, $l3_xmin, $bw, $sf_022, $2);
+    var $11 = $10 << 24 >> 24 == 0;
+    if ($11) {
+      label = 7;
+      break;
+    } else {
+      label = 6;
+      break;
+    }
+   case 6:
+    var $13 = $delsf_019 & 255;
+    var $14 = $4 - $13 | 0;
+    var $sf_1_in = $14;
+    var $seen_good_one_1 = $seen_good_one_020;
+    var $sf_ok_1 = $sf_ok_018;
+    label = 8;
+    break;
+   case 7:
+    var $16 = $4 + $delsf_019 | 0;
+    var $sf_1_in = $16;
+    var $seen_good_one_1 = 1;
+    var $sf_ok_1 = $sf_022;
+    label = 8;
+    break;
+   case 8:
+    var $sf_ok_1;
+    var $seen_good_one_1;
+    var $sf_1_in;
+    var $sf_1 = $sf_1_in & 255;
+    var $18 = $i_021 + 1 & 255;
+    var $phitmp = $delsf_019 >> 1;
+    var $exitcond = $18 << 24 >> 24 == 8;
+    if ($exitcond) {
+      label = 9;
+      break;
+    } else {
+      var $sf_ok_018 = $sf_ok_1;
+      var $delsf_019 = $phitmp;
+      var $seen_good_one_020 = $seen_good_one_1;
+      var $i_021 = $18;
+      var $sf_022 = $sf_1;
+      label = 3;
+      break;
+    }
+   case 9:
+    var $20 = $seen_good_one_1 << 24 >> 24 == 0;
+    var $sf_0_sf_ok_0 = $20 ? $sf_1 : $sf_ok_1;
+    var $21 = ($sf_0_sf_ok_0 & 255) > ($sf_min & 255);
+    var $sf_3 = $21 ? $sf_0_sf_ok_0 : $sf_min;
+    STACKTOP = __stackBase__;
+    return $sf_3;
+  }
+}
+function _VBR_encode_frame($gfc, $xr34orig, $l3_xmin, $max_bits) {
+  var label = 0;
+  var __stackBase__ = STACKTOP;
+  STACKTOP = STACKTOP + 1464 | 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $sfwork_ = __stackBase__;
+    var $vbrsfmin_ = __stackBase__ + 624;
+    var $that_ = __stackBase__ + 1248;
+    var $max_nbits_ch = __stackBase__ + 1392;
+    var $max_nbits_gr = __stackBase__ + 1408;
+    var $use_nbits_ch = __stackBase__ + 1416;
+    var $use_nbits_gr = __stackBase__ + 1432;
+    var $f = __stackBase__ + 1440;
+    var $f2 = __stackBase__ + 1448;
+    var $f4 = __stackBase__ + 1456;
+    var $1 = $gfc + 76 | 0;
+    var $2 = HEAP32[$1 >> 2];
+    var $3 = $gfc + 72 | 0;
+    var $4 = HEAP32[$3 >> 2];
+    var $5 = $max_nbits_ch;
+    HEAP32[$5 >> 2] = 0;
+    HEAP32[$5 + 4 >> 2] = 0;
+    HEAP32[$5 + 8 >> 2] = 0;
+    HEAP32[$5 + 12 >> 2] = 0;
+    var $6 = $max_nbits_gr;
+    var $$etemp$0$0 = 0;
+    var $$etemp$0$1 = 0;
+    var $st$19$0 = $6 | 0;
+    HEAP32[$st$19$0 >> 2] = $$etemp$0$0;
+    var $st$19$1 = $6 + 4 | 0;
+    HEAP32[$st$19$1 >> 2] = $$etemp$0$1;
+    var $7 = $use_nbits_ch;
+    HEAP32[$7 >> 2] = HEAP32[5388104 >> 2];
+    HEAP32[$7 + 4 >> 2] = HEAP32[5388108 >> 2];
+    HEAP32[$7 + 8 >> 2] = HEAP32[5388112 >> 2];
+    HEAP32[$7 + 12 >> 2] = HEAP32[5388116 >> 2];
+    var $8 = $use_nbits_gr;
+    var $$etemp$1$0 = 7681;
+    var $$etemp$1$1 = 7681;
+    var $st$28$0 = $8 | 0;
+    HEAP32[$st$28$0 >> 2] = $$etemp$1$0;
+    var $st$28$1 = $8 + 4 | 0;
+    HEAP32[$st$28$1 >> 2] = $$etemp$1$1;
+    var $9 = ($2 | 0) > 0;
+    if ($9) {
+      label = 3;
+      break;
+    } else {
+      var $_0 = 0;
+      label = 136;
+      break;
+    }
+   case 3:
+    var $10 = ($4 | 0) > 0;
+    var $11 = $gfc + 48 | 0;
+    var $12 = $4 << 2;
+    var $gr_0469 = 0;
+    var $max_nbits_fr_0471 = 0;
+    label = 6;
+    break;
+   case 4:
+    var $13 = ($2 | 0) > 0;
+    if ($13) {
+      label = 5;
+      break;
+    } else {
+      var $use_nbits_fr_0_lcssa = 0;
+      label = 25;
+      break;
+    }
+   case 5:
+    var $14 = ($4 | 0) > 0;
+    var $gr_1459 = 0;
+    label = 11;
+    break;
+   case 6:
+    var $max_nbits_fr_0471;
+    var $gr_0469;
+    var $16 = $max_nbits_gr + ($gr_0469 << 2) | 0;
+    HEAP32[$16 >> 2] = 0;
+    if ($10) {
+      label = 7;
+      break;
+    } else {
+      var $max_nbits_fr_1_lcssa = $max_nbits_fr_0471;
+      label = 10;
+      break;
+    }
+   case 7:
+    var $scevgep521 = $use_nbits_ch + ($gr_0469 << 3) | 0;
+    var $scevgep521522 = $scevgep521;
+    var $_promoted467 = HEAP32[$16 >> 2];
+    _memset($scevgep521522, 0, $12);
+    var $ch_0461 = 0;
+    var $max_nbits_fr_1462 = $max_nbits_fr_0471;
+    var $18 = $_promoted467;
+    label = 8;
+    break;
+   case 8:
+    var $18;
+    var $max_nbits_fr_1462;
+    var $ch_0461;
+    var $19 = $max_bits + ($gr_0469 << 3) + ($ch_0461 << 2) | 0;
+    var $20 = HEAP32[$19 >> 2];
+    var $21 = $max_nbits_ch + ($gr_0469 << 3) + ($ch_0461 << 2) | 0;
+    HEAP32[$21 >> 2] = $20;
+    var $22 = HEAP32[$19 >> 2];
+    var $23 = $18 + $22 | 0;
+    var $24 = $22 + $max_nbits_fr_1462 | 0;
+    var $25 = HEAP32[$11 >> 2];
+    var $26 = ($25 | 0) < 0;
+    var $27 = $26 ? 36 : 16;
+    var $28 = $that_ + $gr_0469 * 72 + $ch_0461 * 36 + 4 | 0;
+    HEAP32[$28 >> 2] = $27;
+    var $29 = $that_ + $gr_0469 * 72 + $ch_0461 * 36 + 12 | 0;
+    HEAP32[$29 >> 2] = $gfc;
+    var $30 = $gfc + 304 + $gr_0469 * 10504 + $ch_0461 * 5252 | 0;
+    var $31 = $that_ + $gr_0469 * 72 + $ch_0461 * 36 + 16 | 0;
+    HEAP32[$31 >> 2] = $30;
+    var $32 = $xr34orig + $gr_0469 * 4608 + $ch_0461 * 2304 | 0;
+    var $33 = $that_ + $gr_0469 * 72 + $ch_0461 * 36 + 8 | 0;
+    HEAP32[$33 >> 2] = $32;
+    var $34 = HEAP32[$31 >> 2];
+    var $35 = $34 + 4788 | 0;
+    var $36 = HEAP32[$35 >> 2];
+    var $37 = ($36 | 0) == 2;
+    var $38 = $that_ + $gr_0469 * 72 + $ch_0461 * 36 | 0;
+    var $short_block_constrain_long_block_constrain = $37 ? 34 : 22;
+    HEAP32[$38 >> 2] = $short_block_constrain_long_block_constrain;
+    var $39 = $ch_0461 + 1 | 0;
+    var $exitcond518 = ($39 | 0) == ($4 | 0);
+    if ($exitcond518) {
+      label = 9;
+      break;
+    } else {
+      var $ch_0461 = $39;
+      var $max_nbits_fr_1462 = $24;
+      var $18 = $23;
+      label = 8;
+      break;
+    }
+   case 9:
+    HEAP32[$16 >> 2] = $23;
+    var $max_nbits_fr_1_lcssa = $24;
+    label = 10;
+    break;
+   case 10:
+    var $max_nbits_fr_1_lcssa;
+    var $41 = $gr_0469 + 1 | 0;
+    var $exitcond523 = ($41 | 0) == ($2 | 0);
+    if ($exitcond523) {
+      label = 4;
+      break;
+    } else {
+      var $gr_0469 = $41;
+      var $max_nbits_fr_0471 = $max_nbits_fr_1_lcssa;
+      label = 6;
+      break;
+    }
+   case 11:
+    var $gr_1459;
+    if ($14) {
+      var $ch_1455 = 0;
+      label = 14;
+      break;
+    } else {
+      label = 17;
+      break;
+    }
+   case 12:
+    var $42 = ($2 | 0) > 0;
+    if ($42) {
+      label = 13;
+      break;
+    } else {
+      var $use_nbits_fr_0_lcssa = 0;
+      label = 25;
+      break;
+    }
+   case 13:
+    var $43 = ($4 | 0) > 0;
+    var $gr_2448 = 0;
+    var $use_nbits_fr_0450 = 0;
+    label = 18;
+    break;
+   case 14:
+    var $ch_1455;
+    var $44 = $max_bits + ($gr_1459 << 3) + ($ch_1455 << 2) | 0;
+    var $45 = HEAP32[$44 >> 2];
+    var $46 = ($45 | 0) > 0;
+    if ($46) {
+      label = 15;
+      break;
+    } else {
+      label = 16;
+      break;
+    }
+   case 15:
+    var $48 = $that_ + $gr_1459 * 72 + $ch_1455 * 36 | 0;
+    var $49 = $sfwork_ + $gr_1459 * 312 + $ch_1455 * 156 | 0;
+    var $50 = $vbrsfmin_ + $gr_1459 * 312 + $ch_1455 * 156 | 0;
+    var $51 = $l3_xmin + $gr_1459 * 312 + $ch_1455 * 156 | 0;
+    var $52 = _block_sf($48, $51, $49, $50);
+    var $53 = $48 | 0;
+    var $54 = HEAP32[$53 >> 2];
+    FUNCTION_TABLE[$54]($48, $49, $50, $52);
+    _bitcount($48);
+    label = 16;
+    break;
+   case 16:
+    var $56 = $ch_1455 + 1 | 0;
+    var $exitcond514 = ($56 | 0) == ($4 | 0);
+    if ($exitcond514) {
+      label = 17;
+      break;
+    } else {
+      var $ch_1455 = $56;
+      label = 14;
+      break;
+    }
+   case 17:
+    var $57 = $gr_1459 + 1 | 0;
+    var $exitcond515 = ($57 | 0) == ($2 | 0);
+    if ($exitcond515) {
+      label = 12;
+      break;
+    } else {
+      var $gr_1459 = $57;
+      label = 11;
+      break;
+    }
+   case 18:
+    var $use_nbits_fr_0450;
+    var $gr_2448;
+    var $59 = $use_nbits_gr + ($gr_2448 << 2) | 0;
+    HEAP32[$59 >> 2] = 0;
+    if ($43) {
+      label = 19;
+      break;
+    } else {
+      label = 24;
+      break;
+    }
+   case 19:
+    var $_promoted445 = HEAP32[$59 >> 2];
+    var $ch_2441 = 0;
+    var $61 = $_promoted445;
+    label = 20;
+    break;
+   case 20:
+    var $61;
+    var $ch_2441;
+    var $62 = $max_bits + ($gr_2448 << 3) + ($ch_2441 << 2) | 0;
+    var $63 = HEAP32[$62 >> 2];
+    var $64 = ($63 | 0) > 0;
+    if ($64) {
+      label = 21;
+      break;
+    } else {
+      label = 22;
+      break;
+    }
+   case 21:
+    var $66 = $that_ + $gr_2448 * 72 + $ch_2441 * 36 | 0;
+    var $67 = $that_ + $gr_2448 * 72 + $ch_2441 * 36 + 16 | 0;
+    var $68 = HEAP32[$67 >> 2];
+    var $69 = $68 + 2304 | 0;
+    var $70 = $69;
+    for (var $$dest = $70 >> 2, $$stop = $$dest + 576; $$dest < $$stop; $$dest++) {
+      HEAP32[$$dest] = 0;
+    }
+    var $71 = _quantizeAndCountBits($66);
+    label = 22;
+    break;
+   case 22:
+    var $73 = _reduce_bit_usage($gfc, $gr_2448, $ch_2441);
+    var $74 = $use_nbits_ch + ($gr_2448 << 3) + ($ch_2441 << 2) | 0;
+    HEAP32[$74 >> 2] = $73;
+    var $75 = $61 + $73 | 0;
+    var $76 = $ch_2441 + 1 | 0;
+    var $exitcond510 = ($76 | 0) == ($4 | 0);
+    if ($exitcond510) {
+      label = 23;
+      break;
+    } else {
+      var $ch_2441 = $76;
+      var $61 = $75;
+      label = 20;
+      break;
+    }
+   case 23:
+    HEAP32[$59 >> 2] = $75;
+    label = 24;
+    break;
+   case 24:
+    var $78 = HEAP32[$59 >> 2];
+    var $79 = $78 + $use_nbits_fr_0450 | 0;
+    var $80 = $gr_2448 + 1 | 0;
+    var $exitcond512 = ($80 | 0) == ($2 | 0);
+    if ($exitcond512) {
+      var $use_nbits_fr_0_lcssa = $79;
+      label = 25;
+      break;
+    } else {
+      var $gr_2448 = $80;
+      var $use_nbits_fr_0450 = $79;
+      label = 18;
+      break;
+    }
+   case 25:
+    var $use_nbits_fr_0_lcssa;
+    var $81 = ($use_nbits_fr_0_lcssa | 0) > ($max_nbits_fr_1_lcssa | 0);
+    if ($81) {
+      label = 32;
+      break;
+    } else {
+      label = 26;
+      break;
+    }
+   case 26:
+    var $82 = ($2 | 0) > 0;
+    if ($82) {
+      label = 27;
+      break;
+    } else {
+      var $_0 = $use_nbits_fr_0_lcssa;
+      label = 136;
+      break;
+    }
+   case 27:
+    var $83 = ($4 | 0) > 0;
+    var $ok_0435 = 1;
+    var $gr_3436 = 0;
+    label = 28;
+    break;
+   case 28:
+    var $gr_3436;
+    var $ok_0435;
+    var $85 = $use_nbits_gr + ($gr_3436 << 2) | 0;
+    var $86 = HEAP32[$85 >> 2];
+    var $87 = ($86 | 0) > 7680;
+    var $_ok_0 = $87 ? 0 : $ok_0435;
+    if ($83) {
+      var $ok_2428 = $_ok_0;
+      var $ch_3429 = 0;
+      label = 29;
+      break;
+    } else {
+      var $ok_2_lcssa = $_ok_0;
+      label = 30;
+      break;
+    }
+   case 29:
+    var $ch_3429;
+    var $ok_2428;
+    var $88 = $use_nbits_ch + ($gr_3436 << 3) + ($ch_3429 << 2) | 0;
+    var $89 = HEAP32[$88 >> 2];
+    var $90 = ($89 | 0) > 4095;
+    var $_ok_2 = $90 ? 0 : $ok_2428;
+    var $91 = $ch_3429 + 1 | 0;
+    var $exitcond507 = ($91 | 0) == ($4 | 0);
+    if ($exitcond507) {
+      var $ok_2_lcssa = $_ok_2;
+      label = 30;
+      break;
+    } else {
+      var $ok_2428 = $_ok_2;
+      var $ch_3429 = $91;
+      label = 29;
+      break;
+    }
+   case 30:
+    var $ok_2_lcssa;
+    var $92 = $gr_3436 + 1 | 0;
+    var $exitcond508 = ($92 | 0) == ($2 | 0);
+    if ($exitcond508) {
+      label = 31;
+      break;
+    } else {
+      var $ok_0435 = $ok_2_lcssa;
+      var $gr_3436 = $92;
+      label = 28;
+      break;
+    }
+   case 31:
+    var $93 = ($ok_2_lcssa | 0) == 0;
+    if ($93) {
+      label = 32;
+      break;
+    } else {
+      var $_0 = $use_nbits_fr_0_lcssa;
+      label = 136;
+      break;
+    }
+   case 32:
+    var $94 = ($2 | 0) > 0;
+    if ($94) {
+      label = 33;
+      break;
+    } else {
+      var $sum_fr_0_lcssa = 0;
+      label = 63;
+      break;
+    }
+   case 33:
+    var $95 = ($4 | 0) > 0;
+    var $96 = $f;
+    var $97 = ($4 | 0) > 0;
+    var $98 = ($4 | 0) > 0;
+    var $99 = ($4 | 0) > 1;
+    var $100 = ($4 | 0) > 0;
+    var $sum_fr_0420 = 0;
+    var $gr_4421 = 0;
+    label = 34;
+    break;
+   case 34:
+    var $gr_4421;
+    var $sum_fr_0420;
+    var $102 = $max_nbits_gr + ($gr_4421 << 2) | 0;
+    HEAP32[$102 >> 2] = 0;
+    if ($95) {
+      label = 35;
+      break;
+    } else {
+      label = 62;
+      break;
+    }
+   case 35:
+    var $_promoted402 = HEAP32[$102 >> 2];
+    var $ch_4398 = 0;
+    var $104 = $_promoted402;
+    label = 36;
+    break;
+   case 36:
+    var $104;
+    var $ch_4398;
+    var $105 = $use_nbits_ch + ($gr_4421 << 3) + ($ch_4398 << 2) | 0;
+    var $106 = HEAP32[$105 >> 2];
+    var $107 = ($106 | 0) > 4095;
+    var $108 = $max_nbits_ch + ($gr_4421 << 3) + ($ch_4398 << 2) | 0;
+    var $_ = $107 ? 4095 : $106;
+    HEAP32[$108 >> 2] = $_;
+    var $109 = $_ + $104 | 0;
+    var $110 = $ch_4398 + 1 | 0;
+    var $exitcond499 = ($110 | 0) == ($4 | 0);
+    if ($exitcond499) {
+      label = 37;
+      break;
+    } else {
+      var $ch_4398 = $110;
+      var $104 = $109;
+      label = 36;
+      break;
+    }
+   case 37:
+    HEAP32[$102 >> 2] = $109;
+    var $112 = ($109 | 0) > 7680;
+    if ($112) {
+      label = 38;
+      break;
+    } else {
+      label = 62;
+      break;
+    }
+   case 38:
+    var $$etemp$2$0 = 0;
+    var $$etemp$2$1 = 0;
+    var $st$2$0 = $96 | 0;
+    HEAP32[$st$2$0 >> 2] = $$etemp$2$0;
+    var $st$2$1 = $96 + 4 | 0;
+    HEAP32[$st$2$1 >> 2] = $$etemp$2$1;
+    if ($97) {
+      var $ch_5405 = 0;
+      var $s_0406 = 0;
+      label = 39;
+      break;
+    } else {
+      var $s_0_lcssa = 0;
+      label = 43;
+      break;
+    }
+   case 39:
+    var $s_0406;
+    var $ch_5405;
+    var $114 = $max_nbits_ch + ($gr_4421 << 3) + ($ch_5405 << 2) | 0;
+    var $115 = HEAP32[$114 >> 2];
+    var $116 = ($115 | 0) > 0;
+    if ($116) {
+      label = 40;
+      break;
+    } else {
+      label = 41;
+      break;
+    }
+   case 40:
+    var $118 = $115 | 0;
+    var $119 = Math.sqrt($118);
+    var $120 = Math.sqrt($119);
+    var $121 = $120;
+    var $122 = $f + ($ch_5405 << 2) | 0;
+    HEAPF32[$122 >> 2] = $121;
+    var $123 = $s_0406 + $121;
+    var $s_1 = $123;
+    label = 42;
+    break;
+   case 41:
+    var $125 = $f + ($ch_5405 << 2) | 0;
+    HEAPF32[$125 >> 2] = 0;
+    var $s_1 = $s_0406;
+    label = 42;
+    break;
+   case 42:
+    var $s_1;
+    var $127 = $ch_5405 + 1 | 0;
+    var $exitcond500 = ($127 | 0) == ($4 | 0);
+    if ($exitcond500) {
+      var $s_0_lcssa = $s_1;
+      label = 43;
+      break;
+    } else {
+      var $ch_5405 = $127;
+      var $s_0406 = $s_1;
+      label = 39;
+      break;
+    }
+   case 43:
+    var $s_0_lcssa;
+    if ($98) {
+      label = 44;
+      break;
+    } else {
+      label = 49;
+      break;
+    }
+   case 44:
+    var $128 = $s_0_lcssa > 0;
+    var $ch_6410 = 0;
+    label = 45;
+    break;
+   case 45:
+    var $ch_6410;
+    if ($128) {
+      label = 46;
+      break;
+    } else {
+      label = 47;
+      break;
+    }
+   case 46:
+    var $131 = $f + ($ch_6410 << 2) | 0;
+    var $132 = HEAPF32[$131 >> 2];
+    var $133 = $132 * 7680;
+    var $134 = $133 / $s_0_lcssa;
+    var $135 = $134 & -1;
+    var $136 = $max_nbits_ch + ($gr_4421 << 3) + ($ch_6410 << 2) | 0;
+    HEAP32[$136 >> 2] = $135;
+    label = 48;
+    break;
+   case 47:
+    var $138 = $max_nbits_ch + ($gr_4421 << 3) + ($ch_6410 << 2) | 0;
+    HEAP32[$138 >> 2] = 0;
+    label = 48;
+    break;
+   case 48:
+    var $140 = $ch_6410 + 1 | 0;
+    var $exitcond501 = ($140 | 0) == ($4 | 0);
+    if ($exitcond501) {
+      label = 49;
+      break;
+    } else {
+      var $ch_6410 = $140;
+      label = 45;
+      break;
+    }
+   case 49:
+    if ($99) {
+      label = 50;
+      break;
+    } else {
+      label = 58;
+      break;
+    }
+   case 50:
+    var $142 = $max_nbits_ch + ($gr_4421 << 3) | 0;
+    var $143 = HEAP32[$142 >> 2];
+    var $144 = $use_nbits_ch + ($gr_4421 << 3) | 0;
+    var $145 = HEAP32[$144 >> 2];
+    var $146 = $145 + 32 | 0;
+    var $147 = ($143 | 0) > ($146 | 0);
+    if ($147) {
+      label = 51;
+      break;
+    } else {
+      label = 52;
+      break;
+    }
+   case 51:
+    var $149 = $max_nbits_ch + ($gr_4421 << 3) + 4 | 0;
+    var $150 = HEAP32[$149 >> 2];
+    var $151 = $150 + $143 | 0;
+    var $152 = HEAP32[$144 >> 2];
+    var $_neg319 = -32 - $152 | 0;
+    var $153 = $_neg319 + $151 | 0;
+    HEAP32[$149 >> 2] = $153;
+    var $154 = HEAP32[$144 >> 2];
+    var $155 = $154 + 32 | 0;
+    HEAP32[$142 >> 2] = $155;
+    label = 52;
+    break;
+   case 52:
+    var $157 = $max_nbits_ch + ($gr_4421 << 3) + 4 | 0;
+    var $158 = HEAP32[$157 >> 2];
+    var $159 = $use_nbits_ch + ($gr_4421 << 3) + 4 | 0;
+    var $160 = HEAP32[$159 >> 2];
+    var $161 = $160 + 32 | 0;
+    var $162 = ($158 | 0) > ($161 | 0);
+    if ($162) {
+      label = 53;
+      break;
+    } else {
+      label = 54;
+      break;
+    }
+   case 53:
+    var $164 = HEAP32[$142 >> 2];
+    var $165 = $164 + $158 | 0;
+    var $166 = HEAP32[$159 >> 2];
+    var $_neg321 = -32 - $166 | 0;
+    var $167 = $_neg321 + $165 | 0;
+    HEAP32[$142 >> 2] = $167;
+    var $168 = HEAP32[$159 >> 2];
+    var $169 = $168 + 32 | 0;
+    HEAP32[$157 >> 2] = $169;
+    label = 54;
+    break;
+   case 54:
+    var $171 = HEAP32[$142 >> 2];
+    var $172 = ($171 | 0) > 4095;
+    if ($172) {
+      label = 55;
+      break;
+    } else {
+      label = 56;
+      break;
+    }
+   case 55:
+    HEAP32[$142 >> 2] = 4095;
+    label = 56;
+    break;
+   case 56:
+    var $175 = HEAP32[$157 >> 2];
+    var $176 = ($175 | 0) > 4095;
+    if ($176) {
+      label = 57;
+      break;
+    } else {
+      label = 58;
+      break;
+    }
+   case 57:
+    HEAP32[$157 >> 2] = 4095;
+    label = 58;
+    break;
+   case 58:
+    HEAP32[$102 >> 2] = 0;
+    if ($100) {
+      label = 59;
+      break;
+    } else {
+      label = 62;
+      break;
+    }
+   case 59:
+    var $_promoted417 = HEAP32[$102 >> 2];
+    var $ch_7414 = 0;
+    var $180 = $_promoted417;
+    label = 60;
+    break;
+   case 60:
+    var $180;
+    var $ch_7414;
+    var $181 = $max_nbits_ch + ($gr_4421 << 3) + ($ch_7414 << 2) | 0;
+    var $182 = HEAP32[$181 >> 2];
+    var $183 = $180 + $182 | 0;
+    var $184 = $ch_7414 + 1 | 0;
+    var $exitcond503 = ($184 | 0) == ($4 | 0);
+    if ($exitcond503) {
+      label = 61;
+      break;
+    } else {
+      var $ch_7414 = $184;
+      var $180 = $183;
+      label = 60;
+      break;
+    }
+   case 61:
+    HEAP32[$102 >> 2] = $183;
+    label = 62;
+    break;
+   case 62:
+    var $185 = HEAP32[$102 >> 2];
+    var $186 = $185 + $sum_fr_0420 | 0;
+    var $187 = $gr_4421 + 1 | 0;
+    var $exitcond505 = ($187 | 0) == ($2 | 0);
+    if ($exitcond505) {
+      var $sum_fr_0_lcssa = $186;
+      label = 63;
+      break;
+    } else {
+      var $sum_fr_0420 = $186;
+      var $gr_4421 = $187;
+      label = 34;
+      break;
+    }
+   case 63:
+    var $sum_fr_0_lcssa;
+    var $188 = ($sum_fr_0_lcssa | 0) > ($max_nbits_fr_1_lcssa | 0);
+    if ($188) {
+      label = 66;
+      break;
+    } else {
+      label = 64;
+      break;
+    }
+   case 64:
+    var $189 = ($2 | 0) > 0;
+    if ($189) {
+      label = 65;
+      break;
+    } else {
+      var $sum_fr_1_lcssa = 0;
+      var $ok_4_lcssa = 0;
+      label = 113;
+      break;
+    }
+   case 65:
+    var $190 = ($4 | 0) > 0;
+    var $sum_fr_1362 = 0;
+    var $ok_4363 = 1;
+    var $gr_9364 = 0;
+    label = 109;
+    break;
+   case 66:
+    var $192 = $f2;
+    var $$etemp$3$0 = 0;
+    var $$etemp$3$1 = 0;
+    var $st$3$0 = $192 | 0;
+    HEAP32[$st$3$0 >> 2] = $$etemp$3$0;
+    var $st$3$1 = $192 + 4 | 0;
+    HEAP32[$st$3$1 >> 2] = $$etemp$3$1;
+    var $193 = ($2 | 0) > 0;
+    if ($193) {
+      var $gr_5393 = 0;
+      var $s3_0394 = 0;
+      label = 69;
+      break;
+    } else {
+      var $sum_fr_1_lcssa = 0;
+      var $ok_4_lcssa = 0;
+      label = 113;
+      break;
+    }
+   case 67:
+    var $194 = ($2 | 0) > 0;
+    if ($194) {
+      label = 68;
+      break;
+    } else {
+      var $sum_fr_1_lcssa = 0;
+      var $ok_4_lcssa = 0;
+      label = 113;
+      break;
+    }
+   case 68:
+    var $195 = $s3_1 > 0;
+    var $196 = $max_nbits_fr_1_lcssa | 0;
+    var $gr_6390 = 0;
+    label = 73;
+    break;
+   case 69:
+    var $s3_0394;
+    var $gr_5393;
+    var $197 = $max_nbits_gr + ($gr_5393 << 2) | 0;
+    var $198 = HEAP32[$197 >> 2];
+    var $199 = ($198 | 0) > 0;
+    if ($199) {
+      label = 70;
+      break;
+    } else {
+      label = 71;
+      break;
+    }
+   case 70:
+    var $201 = $198 | 0;
+    var $202 = Math.sqrt($201);
+    var $203 = $202;
+    var $204 = $f2 + ($gr_5393 << 2) | 0;
+    HEAPF32[$204 >> 2] = $203;
+    var $205 = $s3_0394 + $203;
+    var $s3_1 = $205;
+    label = 72;
+    break;
+   case 71:
+    var $207 = $f2 + ($gr_5393 << 2) | 0;
+    HEAPF32[$207 >> 2] = 0;
+    var $s3_1 = $s3_0394;
+    label = 72;
+    break;
+   case 72:
+    var $s3_1;
+    var $209 = $gr_5393 + 1 | 0;
+    var $exitcond497 = ($209 | 0) == ($2 | 0);
+    if ($exitcond497) {
+      label = 67;
+      break;
+    } else {
+      var $gr_5393 = $209;
+      var $s3_0394 = $s3_1;
+      label = 69;
+      break;
+    }
+   case 73:
+    var $gr_6390;
+    if ($195) {
+      label = 74;
+      break;
+    } else {
+      label = 75;
+      break;
+    }
+   case 74:
+    var $212 = $f2 + ($gr_6390 << 2) | 0;
+    var $213 = HEAPF32[$212 >> 2];
+    var $214 = $196 * $213;
+    var $215 = $214 / $s3_1;
+    var $216 = $215 & -1;
+    var $217 = $max_nbits_gr + ($gr_6390 << 2) | 0;
+    HEAP32[$217 >> 2] = $216;
+    label = 76;
+    break;
+   case 75:
+    var $219 = $max_nbits_gr + ($gr_6390 << 2) | 0;
+    HEAP32[$219 >> 2] = 0;
+    label = 76;
+    break;
+   case 76:
+    var $221 = $gr_6390 + 1 | 0;
+    var $exitcond496 = ($221 | 0) == ($2 | 0);
+    if ($exitcond496) {
+      label = 77;
+      break;
+    } else {
+      var $gr_6390 = $221;
+      label = 73;
+      break;
+    }
+   case 77:
+    var $222 = ($2 | 0) > 1;
+    if ($222) {
+      label = 80;
+      break;
+    } else {
+      label = 78;
+      break;
+    }
+   case 78:
+    var $223 = ($2 | 0) > 0;
+    if ($223) {
+      label = 79;
+      break;
+    } else {
+      var $sum_fr_1_lcssa = 0;
+      var $ok_4_lcssa = 0;
+      label = 113;
+      break;
+    }
+   case 79:
+    var $224 = $f4;
+    var $225 = ($4 | 0) > 0;
+    var $226 = ($4 | 0) > 0;
+    var $227 = ($4 | 0) > 1;
+    var $228 = ($4 | 0) > 0;
+    var $gr_8382 = 0;
+    label = 88;
+    break;
+   case 80:
+    var $230 = $max_nbits_gr | 0;
+    var $231 = HEAP32[$230 >> 2];
+    var $232 = $use_nbits_gr | 0;
+    var $233 = HEAP32[$232 >> 2];
+    var $234 = $233 + 125 | 0;
+    var $235 = ($231 | 0) > ($234 | 0);
+    if ($235) {
+      label = 81;
+      break;
+    } else {
+      label = 82;
+      break;
+    }
+   case 81:
+    var $237 = $max_nbits_gr + 4 | 0;
+    var $238 = HEAP32[$237 >> 2];
+    var $239 = $238 + $231 | 0;
+    var $240 = HEAP32[$232 >> 2];
+    var $_neg323 = -125 - $240 | 0;
+    var $241 = $_neg323 + $239 | 0;
+    HEAP32[$237 >> 2] = $241;
+    var $242 = HEAP32[$232 >> 2];
+    var $243 = $242 + 125 | 0;
+    HEAP32[$230 >> 2] = $243;
+    label = 82;
+    break;
+   case 82:
+    var $245 = $max_nbits_gr + 4 | 0;
+    var $246 = HEAP32[$245 >> 2];
+    var $247 = $use_nbits_gr + 4 | 0;
+    var $248 = HEAP32[$247 >> 2];
+    var $249 = $248 + 125 | 0;
+    var $250 = ($246 | 0) > ($249 | 0);
+    if ($250) {
+      label = 83;
+      break;
+    } else {
+      label = 84;
+      break;
+    }
+   case 83:
+    var $252 = HEAP32[$230 >> 2];
+    var $253 = $252 + $246 | 0;
+    var $254 = HEAP32[$247 >> 2];
+    var $_neg325 = -125 - $254 | 0;
+    var $255 = $_neg325 + $253 | 0;
+    HEAP32[$230 >> 2] = $255;
+    var $256 = HEAP32[$247 >> 2];
+    var $257 = $256 + 125 | 0;
+    HEAP32[$245 >> 2] = $257;
+    label = 84;
+    break;
+   case 84:
+    var $258 = ($2 | 0) > 0;
+    if ($258) {
+      var $gr_7387 = 0;
+      label = 85;
+      break;
+    } else {
+      var $sum_fr_1_lcssa = 0;
+      var $ok_4_lcssa = 0;
+      label = 113;
+      break;
+    }
+   case 85:
+    var $gr_7387;
+    var $259 = $max_nbits_gr + ($gr_7387 << 2) | 0;
+    var $260 = HEAP32[$259 >> 2];
+    var $261 = ($260 | 0) > 7680;
+    if ($261) {
+      label = 86;
+      break;
+    } else {
+      label = 87;
+      break;
+    }
+   case 86:
+    HEAP32[$259 >> 2] = 7680;
+    label = 87;
+    break;
+   case 87:
+    var $264 = $gr_7387 + 1 | 0;
+    var $exitcond495 = ($264 | 0) == ($2 | 0);
+    if ($exitcond495) {
+      label = 78;
+      break;
+    } else {
+      var $gr_7387 = $264;
+      label = 85;
+      break;
+    }
+   case 88:
+    var $gr_8382;
+    var $$etemp$4$0 = 0;
+    var $$etemp$4$1 = 0;
+    var $st$3$0 = $224 | 0;
+    HEAP32[$st$3$0 >> 2] = $$etemp$4$0;
+    var $st$3$1 = $224 + 4 | 0;
+    HEAP32[$st$3$1 >> 2] = $$etemp$4$1;
+    if ($225) {
+      var $ch_8369 = 0;
+      var $s5_0370 = 0;
+      label = 89;
+      break;
+    } else {
+      var $s5_0_lcssa = 0;
+      label = 93;
+      break;
+    }
+   case 89:
+    var $s5_0370;
+    var $ch_8369;
+    var $266 = $max_nbits_ch + ($gr_8382 << 3) + ($ch_8369 << 2) | 0;
+    var $267 = HEAP32[$266 >> 2];
+    var $268 = ($267 | 0) > 0;
+    if ($268) {
+      label = 90;
+      break;
+    } else {
+      label = 91;
+      break;
+    }
+   case 90:
+    var $270 = $267 | 0;
+    var $271 = Math.sqrt($270);
+    var $272 = $271;
+    var $273 = $f4 + ($ch_8369 << 2) | 0;
+    HEAPF32[$273 >> 2] = $272;
+    var $274 = $s5_0370 + $272;
+    var $s5_1 = $274;
+    label = 92;
+    break;
+   case 91:
+    var $276 = $f4 + ($ch_8369 << 2) | 0;
+    HEAPF32[$276 >> 2] = 0;
+    var $s5_1 = $s5_0370;
+    label = 92;
+    break;
+   case 92:
+    var $s5_1;
+    var $278 = $ch_8369 + 1 | 0;
+    var $exitcond491 = ($278 | 0) == ($4 | 0);
+    if ($exitcond491) {
+      var $s5_0_lcssa = $s5_1;
+      label = 93;
+      break;
+    } else {
+      var $ch_8369 = $278;
+      var $s5_0370 = $s5_1;
+      label = 89;
+      break;
+    }
+   case 93:
+    var $s5_0_lcssa;
+    if ($226) {
+      label = 94;
+      break;
+    } else {
+      label = 99;
+      break;
+    }
+   case 94:
+    var $279 = $s5_0_lcssa > 0;
+    var $280 = $max_nbits_gr + ($gr_8382 << 2) | 0;
+    var $ch_9374 = 0;
+    label = 95;
+    break;
+   case 95:
+    var $ch_9374;
+    if ($279) {
+      label = 96;
+      break;
+    } else {
+      label = 97;
+      break;
+    }
+   case 96:
+    var $283 = HEAP32[$280 >> 2];
+    var $284 = $283 | 0;
+    var $285 = $f4 + ($ch_9374 << 2) | 0;
+    var $286 = HEAPF32[$285 >> 2];
+    var $287 = $284 * $286;
+    var $288 = $287 / $s5_0_lcssa;
+    var $289 = $288 & -1;
+    var $290 = $max_nbits_ch + ($gr_8382 << 3) + ($ch_9374 << 2) | 0;
+    HEAP32[$290 >> 2] = $289;
+    label = 98;
+    break;
+   case 97:
+    var $292 = $max_nbits_ch + ($gr_8382 << 3) + ($ch_9374 << 2) | 0;
+    HEAP32[$292 >> 2] = 0;
+    label = 98;
+    break;
+   case 98:
+    var $294 = $ch_9374 + 1 | 0;
+    var $exitcond492 = ($294 | 0) == ($4 | 0);
+    if ($exitcond492) {
+      label = 99;
+      break;
+    } else {
+      var $ch_9374 = $294;
+      label = 95;
+      break;
+    }
+   case 99:
+    if ($227) {
+      label = 100;
+      break;
+    } else {
+      label = 108;
+      break;
+    }
+   case 100:
+    var $296 = $max_nbits_ch + ($gr_8382 << 3) | 0;
+    var $297 = HEAP32[$296 >> 2];
+    var $298 = $use_nbits_ch + ($gr_8382 << 3) | 0;
+    var $299 = HEAP32[$298 >> 2];
+    var $300 = $299 + 32 | 0;
+    var $301 = ($297 | 0) > ($300 | 0);
+    if ($301) {
+      label = 101;
+      break;
+    } else {
+      label = 102;
+      break;
+    }
+   case 101:
+    var $303 = $max_nbits_ch + ($gr_8382 << 3) + 4 | 0;
+    var $304 = HEAP32[$303 >> 2];
+    var $305 = $304 + $297 | 0;
+    var $306 = HEAP32[$298 >> 2];
+    var $_neg327 = -32 - $306 | 0;
+    var $307 = $_neg327 + $305 | 0;
+    HEAP32[$303 >> 2] = $307;
+    var $308 = HEAP32[$298 >> 2];
+    var $309 = $308 + 32 | 0;
+    HEAP32[$296 >> 2] = $309;
+    label = 102;
+    break;
+   case 102:
+    var $311 = $max_nbits_ch + ($gr_8382 << 3) + 4 | 0;
+    var $312 = HEAP32[$311 >> 2];
+    var $313 = $use_nbits_ch + ($gr_8382 << 3) + 4 | 0;
+    var $314 = HEAP32[$313 >> 2];
+    var $315 = $314 + 32 | 0;
+    var $316 = ($312 | 0) > ($315 | 0);
+    if ($316) {
+      label = 103;
+      break;
+    } else {
+      label = 104;
+      break;
+    }
+   case 103:
+    var $318 = HEAP32[$296 >> 2];
+    var $319 = $318 + $312 | 0;
+    var $320 = HEAP32[$313 >> 2];
+    var $_neg329 = -32 - $320 | 0;
+    var $321 = $_neg329 + $319 | 0;
+    HEAP32[$296 >> 2] = $321;
+    var $322 = HEAP32[$313 >> 2];
+    var $323 = $322 + 32 | 0;
+    HEAP32[$311 >> 2] = $323;
+    label = 104;
+    break;
+   case 104:
+    if ($228) {
+      var $ch_10379 = 0;
+      label = 105;
+      break;
+    } else {
+      label = 108;
+      break;
+    }
+   case 105:
+    var $ch_10379;
+    var $324 = $max_nbits_ch + ($gr_8382 << 3) + ($ch_10379 << 2) | 0;
+    var $325 = HEAP32[$324 >> 2];
+    var $326 = ($325 | 0) > 4095;
+    if ($326) {
+      label = 106;
+      break;
+    } else {
+      label = 107;
+      break;
+    }
+   case 106:
+    HEAP32[$324 >> 2] = 4095;
+    label = 107;
+    break;
+   case 107:
+    var $329 = $ch_10379 + 1 | 0;
+    var $exitcond493 = ($329 | 0) == ($4 | 0);
+    if ($exitcond493) {
+      label = 108;
+      break;
+    } else {
+      var $ch_10379 = $329;
+      label = 105;
+      break;
+    }
+   case 108:
+    var $330 = $gr_8382 + 1 | 0;
+    var $exitcond494 = ($330 | 0) == ($2 | 0);
+    if ($exitcond494) {
+      label = 64;
+      break;
+    } else {
+      var $gr_8382 = $330;
+      label = 88;
+      break;
+    }
+   case 109:
+    var $gr_9364;
+    var $ok_4363;
+    var $sum_fr_1362;
+    if ($190) {
+      var $ok_5354 = $ok_4363;
+      var $ch_11355 = 0;
+      var $sum_gr_0356 = 0;
+      label = 110;
+      break;
+    } else {
+      var $ok_5_lcssa = $ok_4363;
+      var $sum_gr_0_lcssa = 0;
+      label = 111;
+      break;
+    }
+   case 110:
+    var $sum_gr_0356;
+    var $ch_11355;
+    var $ok_5354;
+    var $331 = $max_nbits_ch + ($gr_9364 << 3) + ($ch_11355 << 2) | 0;
+    var $332 = HEAP32[$331 >> 2];
+    var $333 = $332 + $sum_gr_0356 | 0;
+    var $334 = ($332 | 0) > 4095;
+    var $_ok_5 = $334 ? 0 : $ok_5354;
+    var $335 = $ch_11355 + 1 | 0;
+    var $exitcond488 = ($335 | 0) == ($4 | 0);
+    if ($exitcond488) {
+      var $ok_5_lcssa = $_ok_5;
+      var $sum_gr_0_lcssa = $333;
+      label = 111;
+      break;
+    } else {
+      var $ok_5354 = $_ok_5;
+      var $ch_11355 = $335;
+      var $sum_gr_0356 = $333;
+      label = 110;
+      break;
+    }
+   case 111:
+    var $sum_gr_0_lcssa;
+    var $ok_5_lcssa;
+    var $336 = $sum_gr_0_lcssa + $sum_fr_1362 | 0;
+    var $337 = ($sum_gr_0_lcssa | 0) > 7680;
+    var $_ok_5318 = $337 ? 0 : $ok_5_lcssa;
+    var $338 = $gr_9364 + 1 | 0;
+    var $exitcond490 = ($338 | 0) == ($2 | 0);
+    if ($exitcond490) {
+      label = 112;
+      break;
+    } else {
+      var $sum_fr_1362 = $336;
+      var $ok_4363 = $_ok_5318;
+      var $gr_9364 = $338;
+      label = 109;
+      break;
+    }
+   case 112:
+    var $phitmp = ($_ok_5318 | 0) == 0;
+    var $sum_fr_1_lcssa = $336;
+    var $ok_4_lcssa = $phitmp;
+    label = 113;
+    break;
+   case 113:
+    var $ok_4_lcssa;
+    var $sum_fr_1_lcssa;
+    var $339 = ($sum_fr_1_lcssa | 0) > ($max_nbits_fr_1_lcssa | 0);
+    var $340 = $339 | $ok_4_lcssa;
+    var $341 = ($2 | 0) > 0;
+    var $or_cond = $340 & $341;
+    if ($or_cond) {
+      label = 114;
+      break;
+    } else {
+      label = 116;
+      break;
+    }
+   case 114:
+    var $342 = ($4 | 0) > 0;
+    var $343 = $4 << 2;
+    var $gr_10351 = 0;
+    label = 115;
+    break;
+   case 115:
+    var $gr_10351;
+    if ($342) {
+      label = 117;
+      break;
+    } else {
+      label = 118;
+      break;
+    }
+   case 116:
+    var $344 = ($4 | 0) > 0;
+    if ($344) {
+      var $ch_13344 = 0;
+      label = 121;
+      break;
+    } else {
+      label = 119;
+      break;
+    }
+   case 117:
+    var $scevgep484 = $max_bits + ($gr_10351 << 3) | 0;
+    var $scevgep = $max_nbits_ch + ($gr_10351 << 3) | 0;
+    var $scevgep484485 = $scevgep484;
+    var $scevgep483 = $scevgep;
+    _memcpy($scevgep483, $scevgep484485, $343);
+    label = 118;
+    break;
+   case 118:
+    var $346 = $gr_10351 + 1 | 0;
+    var $exitcond486 = ($346 | 0) == ($2 | 0);
+    if ($exitcond486) {
+      label = 116;
+      break;
+    } else {
+      var $gr_10351 = $346;
+      label = 115;
+      break;
+    }
+   case 119:
+    var $347 = ($2 | 0) > 0;
+    if ($347) {
+      label = 120;
+      break;
+    } else {
+      var $use_nbits_fr_1_lcssa = 0;
+      label = 134;
+      break;
+    }
+   case 120:
+    var $348 = ($4 | 0) > 0;
+    var $gr_11341 = 0;
+    label = 122;
+    break;
+   case 121:
+    var $ch_13344;
+    var $349 = $gfc + 21328 + ($ch_13344 << 4) | 0;
+    var $350 = $ch_13344 + 1 | 0;
+    var $exitcond481 = ($350 | 0) == ($4 | 0);
+    var $351 = $349;
+    HEAP32[$351 >> 2] = 0;
+    HEAP32[$351 + 4 >> 2] = 0;
+    HEAP32[$351 + 8 >> 2] = 0;
+    HEAP32[$351 + 12 >> 2] = 0;
+    if ($exitcond481) {
+      label = 119;
+      break;
+    } else {
+      var $ch_13344 = $350;
+      label = 121;
+      break;
+    }
+   case 122:
+    var $gr_11341;
+    if ($348) {
+      var $ch_14337 = 0;
+      label = 125;
+      break;
+    } else {
+      label = 126;
+      break;
+    }
+   case 123:
+    var $352 = ($2 | 0) > 0;
+    if ($352) {
+      label = 124;
+      break;
+    } else {
+      var $use_nbits_fr_1_lcssa = 0;
+      label = 134;
+      break;
+    }
+   case 124:
+    var $353 = ($4 | 0) > 0;
+    var $gr_12331 = 0;
+    var $use_nbits_fr_1333 = 0;
+    label = 127;
+    break;
+   case 125:
+    var $ch_14337;
+    var $354 = $gfc + 304 + $gr_11341 * 10504 + $ch_14337 * 5252 + 4784 | 0;
+    HEAP32[$354 >> 2] = 0;
+    var $355 = $ch_14337 + 1 | 0;
+    var $exitcond479 = ($355 | 0) == ($4 | 0);
+    if ($exitcond479) {
+      label = 126;
+      break;
+    } else {
+      var $ch_14337 = $355;
+      label = 125;
+      break;
+    }
+   case 126:
+    var $356 = $gr_11341 + 1 | 0;
+    var $exitcond480 = ($356 | 0) == ($2 | 0);
+    if ($exitcond480) {
+      label = 123;
+      break;
+    } else {
+      var $gr_11341 = $356;
+      label = 122;
+      break;
+    }
+   case 127:
+    var $use_nbits_fr_1333;
+    var $gr_12331;
+    var $358 = $use_nbits_gr + ($gr_12331 << 2) | 0;
+    HEAP32[$358 >> 2] = 0;
+    if ($353) {
+      label = 128;
+      break;
+    } else {
+      label = 133;
+      break;
+    }
+   case 128:
+    var $_promoted = HEAP32[$358 >> 2];
+    var $ch_15330 = 0;
+    var $360 = $_promoted;
+    label = 129;
+    break;
+   case 129:
+    var $360;
+    var $ch_15330;
+    var $361 = $use_nbits_ch + ($gr_12331 << 3) + ($ch_15330 << 2) | 0;
+    HEAP32[$361 >> 2] = 0;
+    var $362 = $max_bits + ($gr_12331 << 3) + ($ch_15330 << 2) | 0;
+    var $363 = HEAP32[$362 >> 2];
+    var $364 = ($363 | 0) > 0;
+    if ($364) {
+      label = 130;
+      break;
+    } else {
+      label = 131;
+      break;
+    }
+   case 130:
+    var $366 = $that_ + $gr_12331 * 72 + $ch_15330 * 36 | 0;
+    var $367 = $sfwork_ + $gr_12331 * 312 + $ch_15330 * 156 | 0;
+    var $368 = $vbrsfmin_ + $gr_12331 * 312 + $ch_15330 * 156 | 0;
+    var $369 = $that_ + $gr_12331 * 72 + $ch_15330 * 36 + 16 | 0;
+    var $370 = HEAP32[$369 >> 2];
+    var $371 = $370 + 4780 | 0;
+    var $372 = HEAP32[$371 >> 2];
+    _cutDistribution($367, $367, $372);
+    var $373 = $max_nbits_ch + ($gr_12331 << 3) + ($ch_15330 << 2) | 0;
+    var $374 = HEAP32[$373 >> 2];
+    _outOfBitsStrategy($366, $367, $368, $374);
+    label = 131;
+    break;
+   case 131:
+    var $376 = _reduce_bit_usage($gfc, $gr_12331, $ch_15330);
+    HEAP32[$361 >> 2] = $376;
+    var $377 = $360 + $376 | 0;
+    var $378 = $ch_15330 + 1 | 0;
+    var $exitcond = ($378 | 0) == ($4 | 0);
+    if ($exitcond) {
+      label = 132;
+      break;
+    } else {
+      var $ch_15330 = $378;
+      var $360 = $377;
+      label = 129;
+      break;
+    }
+   case 132:
+    HEAP32[$358 >> 2] = $377;
+    label = 133;
+    break;
+   case 133:
+    var $380 = HEAP32[$358 >> 2];
+    var $381 = $380 + $use_nbits_fr_1333 | 0;
+    var $382 = $gr_12331 + 1 | 0;
+    var $exitcond477 = ($382 | 0) == ($2 | 0);
+    if ($exitcond477) {
+      var $use_nbits_fr_1_lcssa = $381;
+      label = 134;
+      break;
+    } else {
+      var $gr_12331 = $382;
+      var $use_nbits_fr_1333 = $381;
+      label = 127;
+      break;
+    }
+   case 134:
+    var $use_nbits_fr_1_lcssa;
+    var $383 = ($use_nbits_fr_1_lcssa | 0) > ($max_nbits_fr_1_lcssa | 0);
+    if ($383) {
+      label = 135;
+      break;
+    } else {
+      var $_0 = $use_nbits_fr_1_lcssa;
+      label = 136;
+      break;
+    }
+   case 135:
+    _lame_errorf($gfc, 5384732, (tempInt = STACKTOP, STACKTOP = STACKTOP + 8 | 0, HEAP32[tempInt >> 2] = $max_nbits_fr_1_lcssa, HEAP32[tempInt + 4 >> 2] = $use_nbits_fr_1_lcssa, tempInt));
+    _exit(-1);
+   case 136:
+    var $_0;
+    STACKTOP = __stackBase__;
+    return $_0;
+  }
+}
+_VBR_encode_frame["X"] = 1;
+function _cutDistribution($sfwork, $sf_out, $cut) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $j_08 = 39;
+    var $i_09 = 0;
+    label = 3;
+    break;
+   case 3:
+    var $i_09;
+    var $j_08;
+    var $2 = $sfwork + ($i_09 << 2) | 0;
+    var $3 = HEAP32[$2 >> 2];
+    var $4 = ($3 | 0) < ($cut | 0);
+    var $5 = $4 ? $3 : $cut;
+    var $6 = $sf_out + ($i_09 << 2) | 0;
+    HEAP32[$6 >> 2] = $5;
+    var $7 = $j_08 - 1 | 0;
+    var $8 = $i_09 + 1 | 0;
+    var $9 = ($7 | 0) == 0;
+    if ($9) {
+      label = 4;
+      break;
+    } else {
+      var $j_08 = $7;
+      var $i_09 = $8;
+      label = 3;
+      break;
+    }
+   case 4:
+    return;
+  }
+}
+function _sfDepth($sfwork) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $i_05 = 0;
+    var $j_06 = 39;
+    var $m_07 = 0;
+    label = 3;
+    break;
+   case 3:
+    var $m_07;
+    var $j_06;
+    var $i_05;
+    var $2 = $sfwork + ($i_05 << 2) | 0;
+    var $3 = HEAP32[$2 >> 2];
+    var $4 = 255 - $3 | 0;
+    var $5 = ($m_07 | 0) < ($4 | 0);
+    var $_m_0 = $5 ? $4 : $m_07;
+    var $6 = $j_06 - 1 | 0;
+    var $7 = $i_05 + 1 | 0;
+    var $8 = ($6 | 0) == 0;
+    if ($8) {
+      label = 4;
+      break;
+    } else {
+      var $i_05 = $7;
+      var $j_06 = $6;
+      var $m_07 = $_m_0;
+      label = 3;
+      break;
+    }
+   case 4:
+    return $_m_0;
+  }
+}
+function _flattenDistribution($sfwork, $sf_out, $dm, $k, $p) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = ($dm | 0) > 0;
+    if ($1) {
+      var $j_027 = 39;
+      var $sfmax_028 = 0;
+      var $i_029 = 0;
+      label = 3;
+      break;
+    } else {
+      var $j_132 = 39;
+      var $sfmax_233 = 0;
+      var $i_134 = 0;
+      label = 6;
+      break;
+    }
+   case 3:
+    var $i_029;
+    var $sfmax_028;
+    var $j_027;
+    var $2 = $sfwork + ($i_029 << 2) | 0;
+    var $3 = HEAP32[$2 >> 2];
+    var $4 = $p - $3 | 0;
+    var $5 = $4 * $k & -1;
+    var $6 = ($5 | 0) / ($dm | 0) & -1;
+    var $7 = $6 + $3 | 0;
+    var $8 = ($7 | 0) < 0;
+    if ($8) {
+      var $x_0 = 0;
+      label = 5;
+      break;
+    } else {
+      label = 4;
+      break;
+    }
+   case 4:
+    var $10 = ($7 | 0) > 255;
+    var $_ = $10 ? 255 : $7;
+    var $x_0 = $_;
+    label = 5;
+    break;
+   case 5:
+    var $x_0;
+    var $12 = $sf_out + ($i_029 << 2) | 0;
+    HEAP32[$12 >> 2] = $x_0;
+    var $13 = ($sfmax_028 | 0) < ($x_0 | 0);
+    var $x_0_sfmax_0 = $13 ? $x_0 : $sfmax_028;
+    var $14 = $j_027 - 1 | 0;
+    var $15 = $i_029 + 1 | 0;
+    var $16 = ($14 | 0) == 0;
+    if ($16) {
+      var $sfmax_4 = $x_0_sfmax_0;
+      label = 7;
+      break;
+    } else {
+      var $j_027 = $14;
+      var $sfmax_028 = $x_0_sfmax_0;
+      var $i_029 = $15;
+      label = 3;
+      break;
+    }
+   case 6:
+    var $i_134;
+    var $sfmax_233;
+    var $j_132;
+    var $17 = $sfwork + ($i_134 << 2) | 0;
+    var $18 = HEAP32[$17 >> 2];
+    var $19 = $sf_out + ($i_134 << 2) | 0;
+    HEAP32[$19 >> 2] = $18;
+    var $20 = ($sfmax_233 | 0) < ($18 | 0);
+    var $_sfmax_2 = $20 ? $18 : $sfmax_233;
+    var $21 = $j_132 - 1 | 0;
+    var $22 = $i_134 + 1 | 0;
+    var $23 = ($21 | 0) == 0;
+    if ($23) {
+      var $sfmax_4 = $_sfmax_2;
+      label = 7;
+      break;
+    } else {
+      var $j_132 = $21;
+      var $sfmax_233 = $_sfmax_2;
+      var $i_134 = $22;
+      label = 6;
+      break;
+    }
+   case 7:
+    var $sfmax_4;
+    return $sfmax_4;
+  }
+}
+
+
+
+function _short_block_constrain($that, $vbrsf, $vbrsfmin, $vbrmax) {
+  var label = 0;
+  var __stackBase__ = STACKTOP;
+  STACKTOP = STACKTOP + 156 | 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $sf_temp = __stackBase__;
+    var $1 = $that + 16 | 0;
+    var $2 = HEAP32[$1 >> 2];
+    var $3 = $that + 12 | 0;
+    var $4 = HEAP32[$3 >> 2];
+    var $5 = $that + 20 | 0;
+    var $6 = HEAP32[$5 >> 2];
+    var $7 = $2 + 4864 | 0;
+    var $8 = HEAP32[$7 >> 2];
+    var $9 = ($8 | 0) > 0;
+    if ($9) {
+      var $delta_051 = 0;
+      var $maxover1_052 = 0;
+      var $maxover0_053 = 0;
+      var $sfb_054 = 0;
+      label = 3;
+      break;
+    } else {
+      var $delta_0_lcssa = 0;
+      var $maxover1_0_lcssa = 0;
+      var $maxover0_0_lcssa = 0;
+      label = 4;
+      break;
+    }
+   case 3:
+    var $sfb_054;
+    var $maxover0_053;
+    var $maxover1_052;
+    var $delta_051;
+    var $10 = $vbrsf + ($sfb_054 << 2) | 0;
+    var $11 = HEAP32[$10 >> 2];
+    var $12 = $vbrmax - $11 | 0;
+    var $13 = ($delta_051 | 0) < ($12 | 0);
+    var $_delta_0 = $13 ? $12 : $delta_051;
+    var $14 = $sfb_054 + 5314272 | 0;
+    var $15 = HEAP8[$14];
+    var $16 = $15 & 255;
+    var $17 = $16 << 1;
+    var $_neg47 = $12 - 56 | 0;
+    var $18 = $_neg47 - $17 | 0;
+    var $19 = $16 << 2;
+    var $_neg49 = $12 - 56 | 0;
+    var $20 = $_neg49 - $19 | 0;
+    var $21 = ($maxover0_053 | 0) < ($18 | 0);
+    var $maxover0_1 = $21 ? $18 : $maxover0_053;
+    var $22 = ($maxover1_052 | 0) < ($20 | 0);
+    var $_maxover1_0 = $22 ? $20 : $maxover1_052;
+    var $23 = $sfb_054 + 1 | 0;
+    var $exitcond57 = ($23 | 0) == ($8 | 0);
+    if ($exitcond57) {
+      var $delta_0_lcssa = $_delta_0;
+      var $maxover1_0_lcssa = $_maxover1_0;
+      var $maxover0_0_lcssa = $maxover0_1;
+      label = 4;
+      break;
+    } else {
+      var $delta_051 = $_delta_0;
+      var $maxover1_052 = $_maxover1_0;
+      var $maxover0_053 = $maxover0_1;
+      var $sfb_054 = $23;
+      label = 3;
+      break;
+    }
+   case 4:
+    var $maxover0_0_lcssa;
+    var $maxover1_0_lcssa;
+    var $delta_0_lcssa;
+    var $24 = $4 + 28 | 0;
+    var $25 = HEAP32[$24 >> 2];
+    var $26 = ($25 | 0) == 2;
+    if ($26) {
+      label = 5;
+      break;
+    } else {
+      var $mover_0 = $maxover0_0_lcssa;
+      label = 6;
+      break;
+    }
+   case 5:
+    var $28 = ($maxover0_0_lcssa | 0) < ($maxover1_0_lcssa | 0);
+    var $29 = $28 ? $maxover0_0_lcssa : $maxover1_0_lcssa;
+    var $mover_0 = $29;
+    label = 6;
+    break;
+   case 6:
+    var $mover_0;
+    var $31 = ($delta_0_lcssa | 0) > ($mover_0 | 0);
+    var $mover_0_delta_0 = $31 ? $mover_0 : $delta_0_lcssa;
+    var $32 = $vbrmax - $mover_0_delta_0 | 0;
+    var $33 = ($maxover0_0_lcssa | 0) == ($mover_0 | 0);
+    if ($33) {
+      label = 7;
+      break;
+    } else {
+      label = 8;
+      break;
+    }
+   case 7:
+    var $35 = $2 + 4836 | 0;
+    HEAP32[$35 >> 2] = 0;
+    label = 10;
+    break;
+   case 8:
+    var $37 = ($maxover1_0_lcssa | 0) == ($mover_0 | 0);
+    if ($37) {
+      label = 9;
+      break;
+    } else {
+      label = 10;
+      break;
+    }
+   case 9:
+    var $39 = $2 + 4836 | 0;
+    HEAP32[$39 >> 2] = 1;
+    label = 10;
+    break;
+   case 10:
+    var $41 = ($32 | 0) < ($6 | 0);
+    var $_ = $41 ? $6 : $32;
+    var $42 = $2 + 4780 | 0;
+    HEAP32[$42 >> 2] = $_;
+    var $43 = ($_ | 0) < 0;
+    if ($43) {
+      label = 11;
+      break;
+    } else {
+      label = 12;
+      break;
+    }
+   case 11:
+    HEAP32[$42 >> 2] = 0;
+    var $sfb_150 = 0;
+    label = 14;
+    break;
+   case 12:
+    var $46 = ($_ | 0) > 255;
+    if ($46) {
+      label = 13;
+      break;
+    } else {
+      var $sfb_150 = 0;
+      label = 14;
+      break;
+    }
+   case 13:
+    HEAP32[$42 >> 2] = 255;
+    var $sfb_150 = 0;
+    label = 14;
+    break;
+   case 14:
+    var $sfb_150;
+    var $48 = $vbrsf + ($sfb_150 << 2) | 0;
+    var $49 = HEAP32[$48 >> 2];
+    var $50 = $49 - $_ | 0;
+    var $51 = $sf_temp + ($sfb_150 << 2) | 0;
+    HEAP32[$51 >> 2] = $50;
+    var $52 = $sfb_150 + 1 | 0;
+    var $exitcond = ($52 | 0) == 39;
+    if ($exitcond) {
+      label = 15;
+      break;
+    } else {
+      var $sfb_150 = $52;
+      label = 14;
+      break;
+    }
+   case 15:
+    var $54 = $that + 24 | 0;
+    var $55 = $sf_temp | 0;
+    _set_subblock_gain($2, $54, $55);
+    _set_scalefacs($2, $vbrsfmin, $55, 5314272);
+    STACKTOP = __stackBase__;
+    return;
+  }
+}
+_short_block_constrain["X"] = 1;
+function _long_block_constrain($that, $vbrsf, $vbrsfmin, $vbrmax) {
+  var label = 0;
+  var __stackBase__ = STACKTOP;
+  STACKTOP = STACKTOP + 156 | 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $sf_temp = __stackBase__;
+    var $1 = $that + 16 | 0;
+    var $2 = HEAP32[$1 >> 2];
+    var $3 = $that + 12 | 0;
+    var $4 = HEAP32[$3 >> 2];
+    var $5 = $that + 20 | 0;
+    var $6 = HEAP32[$5 >> 2];
+    var $7 = $2 + 4864 | 0;
+    var $8 = HEAP32[$7 >> 2];
+    var $9 = $4 + 76 | 0;
+    var $10 = HEAP32[$9 >> 2];
+    var $11 = ($10 | 0) == 2;
+    var $12 = $11 ? 5314432 : 5314408;
+    var $13 = ($8 | 0) > 0;
+    if ($13) {
+      var $delta_0115 = 0;
+      var $maxover1p_0116 = 0;
+      var $maxover0p_0117 = 0;
+      var $maxover1_0118 = 0;
+      var $maxover0_0119 = 0;
+      var $sfb_0120 = 0;
+      label = 3;
+      break;
+    } else {
+      var $delta_0_lcssa = 0;
+      var $maxover1p_0_lcssa = 0;
+      var $maxover0p_0_lcssa = 0;
+      var $maxover1_0_lcssa = 0;
+      var $maxover0_0_lcssa = 0;
+      label = 4;
+      break;
+    }
+   case 3:
+    var $sfb_0120;
+    var $maxover0_0119;
+    var $maxover1_0118;
+    var $maxover0p_0117;
+    var $maxover1p_0116;
+    var $delta_0115;
+    var $14 = $vbrsf + ($sfb_0120 << 2) | 0;
+    var $15 = HEAP32[$14 >> 2];
+    var $16 = $vbrmax - $15 | 0;
+    var $17 = ($delta_0115 | 0) < ($16 | 0);
+    var $_delta_0 = $17 ? $16 : $delta_0115;
+    var $18 = $sfb_0120 + 5314432 | 0;
+    var $19 = HEAP8[$18];
+    var $20 = $19 & 255;
+    var $21 = $20 << 1;
+    var $22 = $16 - $21 | 0;
+    var $23 = $20 << 2;
+    var $24 = $16 - $23 | 0;
+    var $25 = $12 + $sfb_0120 | 0;
+    var $26 = HEAP8[$25];
+    var $27 = $26 & 255;
+    var $28 = 5257016 + ($sfb_0120 << 2) | 0;
+    var $29 = HEAP32[$28 >> 2];
+    var $30 = $27 + $29 | 0;
+    var $31 = $30 << 1;
+    var $32 = $16 - $31 | 0;
+    var $33 = $30 << 2;
+    var $34 = $16 - $33 | 0;
+    var $35 = ($maxover0_0119 | 0) < ($22 | 0);
+    var $maxover0_1 = $35 ? $22 : $maxover0_0119;
+    var $36 = ($maxover1_0118 | 0) < ($24 | 0);
+    var $_maxover1_0 = $36 ? $24 : $maxover1_0118;
+    var $37 = ($maxover0p_0117 | 0) < ($32 | 0);
+    var $maxover0p_1 = $37 ? $32 : $maxover0p_0117;
+    var $38 = ($maxover1p_0116 | 0) < ($34 | 0);
+    var $_maxover1p_0 = $38 ? $34 : $maxover1p_0116;
+    var $39 = $sfb_0120 + 1 | 0;
+    var $exitcond125 = ($39 | 0) == ($8 | 0);
+    if ($exitcond125) {
+      var $delta_0_lcssa = $_delta_0;
+      var $maxover1p_0_lcssa = $_maxover1p_0;
+      var $maxover0p_0_lcssa = $maxover0p_1;
+      var $maxover1_0_lcssa = $_maxover1_0;
+      var $maxover0_0_lcssa = $maxover0_1;
+      label = 4;
+      break;
+    } else {
+      var $delta_0115 = $_delta_0;
+      var $maxover1p_0116 = $_maxover1p_0;
+      var $maxover0p_0117 = $maxover0p_1;
+      var $maxover1_0118 = $_maxover1_0;
+      var $maxover0_0119 = $maxover0_1;
+      var $sfb_0120 = $39;
+      label = 3;
+      break;
+    }
+   case 4:
+    var $maxover0_0_lcssa;
+    var $maxover1_0_lcssa;
+    var $maxover0p_0_lcssa;
+    var $maxover1p_0_lcssa;
+    var $delta_0_lcssa;
+    var $40 = $vbrmax - $maxover0p_0_lcssa | 0;
+    var $41 = ($40 | 0) < ($6 | 0);
+    var $_ = $41 ? $6 : $40;
+    var $sfb_1 = 0;
+    label = 5;
+    break;
+   case 5:
+    var $sfb_1;
+    var $43 = ($sfb_1 | 0) < ($8 | 0);
+    if ($43) {
+      label = 6;
+      break;
+    } else {
+      label = 7;
+      break;
+    }
+   case 6:
+    var $45 = $vbrsfmin + ($sfb_1 << 2) | 0;
+    var $46 = HEAP32[$45 >> 2];
+    var $47 = $_ - $46 | 0;
+    var $48 = 5257016 + ($sfb_1 << 2) | 0;
+    var $49 = HEAP32[$48 >> 2];
+    var $50 = $49 << 1;
+    var $51 = $47 - $50 | 0;
+    var $52 = ($51 | 0) < 1;
+    var $53 = $sfb_1 + 1 | 0;
+    if ($52) {
+      var $vm1p_1 = $maxover1_0_lcssa;
+      var $vm0p_0106 = $maxover0_0_lcssa;
+      label = 10;
+      break;
+    } else {
+      var $sfb_1 = $53;
+      label = 5;
+      break;
+    }
+   case 7:
+    var $55 = $vbrmax - $maxover1p_0_lcssa | 0;
+    var $56 = ($55 | 0) < ($6 | 0);
+    var $_104 = $56 ? $6 : $55;
+    var $sfb_2 = 0;
+    label = 8;
+    break;
+   case 8:
+    var $sfb_2;
+    var $58 = ($sfb_2 | 0) < ($8 | 0);
+    if ($58) {
+      label = 9;
+      break;
+    } else {
+      var $vm1p_1 = $maxover1p_0_lcssa;
+      var $vm0p_0106 = $maxover0p_0_lcssa;
+      label = 10;
+      break;
+    }
+   case 9:
+    var $60 = $vbrsfmin + ($sfb_2 << 2) | 0;
+    var $61 = HEAP32[$60 >> 2];
+    var $62 = $_104 - $61 | 0;
+    var $63 = 5257016 + ($sfb_2 << 2) | 0;
+    var $64 = HEAP32[$63 >> 2];
+    var $65 = $64 << 2;
+    var $66 = $62 - $65 | 0;
+    var $67 = ($66 | 0) < 1;
+    var $68 = $sfb_2 + 1 | 0;
+    if ($67) {
+      var $vm1p_1 = $maxover1_0_lcssa;
+      var $vm0p_0106 = $maxover0p_0_lcssa;
+      label = 10;
+      break;
+    } else {
+      var $sfb_2 = $68;
+      label = 8;
+      break;
+    }
+   case 10:
+    var $vm0p_0106;
+    var $vm1p_1;
+    var $69 = $4 + 28 | 0;
+    var $70 = HEAP32[$69 >> 2];
+    var $71 = ($70 | 0) == 2;
+    var $maxover1p_2_maxover0_0_maxover0p_0 = $71 ? $vm1p_1 : $vm0p_0106;
+    var $maxover1_0_maxover0_0 = $71 ? $maxover1_0_lcssa : $maxover0_0_lcssa;
+    var $72 = ($maxover0_0_lcssa | 0) < ($vm0p_0106 | 0);
+    var $73 = $72 ? $maxover0_0_lcssa : $vm0p_0106;
+    var $74 = ($73 | 0) < ($maxover1_0_maxover0_0 | 0);
+    var $75 = $74 ? $73 : $maxover1_0_maxover0_0;
+    var $76 = ($75 | 0) < ($maxover1p_2_maxover0_0_maxover0p_0 | 0);
+    var $77 = $76 ? $75 : $maxover1p_2_maxover0_0_maxover0p_0;
+    var $78 = ($delta_0_lcssa | 0) > ($77 | 0);
+    var $delta_2 = $78 ? $77 : $delta_0_lcssa;
+    var $79 = $vbrmax - $delta_2 | 0;
+    var $80 = ($79 | 0) < ($6 | 0);
+    var $_105 = $80 ? $6 : $79;
+    var $81 = ($maxover0_0_lcssa | 0) == ($77 | 0);
+    if ($81) {
+      label = 11;
+      break;
+    } else {
+      label = 12;
+      break;
+    }
+   case 11:
+    var $83 = $2 + 4836 | 0;
+    HEAP32[$83 >> 2] = 0;
+    var $84 = $2 + 4832 | 0;
+    HEAP32[$84 >> 2] = 0;
+    var $max_rangep_0 = 5314432;
+    label = 18;
+    break;
+   case 12:
+    var $86 = ($vm0p_0106 | 0) == ($77 | 0);
+    if ($86) {
+      label = 13;
+      break;
+    } else {
+      label = 14;
+      break;
+    }
+   case 13:
+    var $88 = $2 + 4836 | 0;
+    HEAP32[$88 >> 2] = 0;
+    var $89 = $2 + 4832 | 0;
+    HEAP32[$89 >> 2] = 1;
+    var $max_rangep_0 = $12;
+    label = 18;
+    break;
+   case 14:
+    var $91 = ($maxover1_0_maxover0_0 | 0) == ($77 | 0);
+    if ($91) {
+      label = 15;
+      break;
+    } else {
+      label = 16;
+      break;
+    }
+   case 15:
+    var $93 = $2 + 4836 | 0;
+    HEAP32[$93 >> 2] = 1;
+    var $94 = $2 + 4832 | 0;
+    HEAP32[$94 >> 2] = 0;
+    var $max_rangep_0 = 5314432;
+    label = 18;
+    break;
+   case 16:
+    var $96 = ($maxover1p_2_maxover0_0_maxover0p_0 | 0) == ($77 | 0);
+    if ($96) {
+      label = 17;
+      break;
+    } else {
+      var $max_rangep_0 = $12;
+      label = 18;
+      break;
+    }
+   case 17:
+    var $98 = $2 + 4836 | 0;
+    HEAP32[$98 >> 2] = 1;
+    var $99 = $2 + 4832 | 0;
+    HEAP32[$99 >> 2] = 1;
+    var $max_rangep_0 = $12;
+    label = 18;
+    break;
+   case 18:
+    var $max_rangep_0;
+    var $101 = $2 + 4780 | 0;
+    HEAP32[$101 >> 2] = $_105;
+    var $102 = ($_105 | 0) < 0;
+    if ($102) {
+      label = 19;
+      break;
+    } else {
+      label = 20;
+      break;
+    }
+   case 19:
+    HEAP32[$101 >> 2] = 0;
+    var $sfb_3112 = 0;
+    label = 22;
+    break;
+   case 20:
+    var $105 = ($_105 | 0) > 255;
+    if ($105) {
+      label = 21;
+      break;
+    } else {
+      var $sfb_3112 = 0;
+      label = 22;
+      break;
+    }
+   case 21:
+    HEAP32[$101 >> 2] = 255;
+    var $sfb_3112 = 0;
+    label = 22;
+    break;
+   case 22:
+    var $sfb_3112;
+    var $107 = $vbrsf + ($sfb_3112 << 2) | 0;
+    var $108 = HEAP32[$107 >> 2];
+    var $109 = $108 - $_105 | 0;
+    var $110 = $sf_temp + ($sfb_3112 << 2) | 0;
+    HEAP32[$110 >> 2] = $109;
+    var $111 = $sfb_3112 + 1 | 0;
+    var $exitcond = ($111 | 0) == 39;
+    if ($exitcond) {
+      label = 23;
+      break;
+    } else {
+      var $sfb_3112 = $111;
+      label = 22;
+      break;
+    }
+   case 23:
+    var $113 = $sf_temp | 0;
+    _set_scalefacs($2, $vbrsfmin, $113, $max_rangep_0);
+    STACKTOP = __stackBase__;
+    return;
+  }
+}
+_long_block_constrain["X"] = 1;
+function _block_sf($that, $l3_xmin, $vbrsf, $vbrsfmin) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = $that + 16 | 0;
+    var $2 = HEAP32[$1 >> 2];
+    var $3 = $that + 8 | 0;
+    var $4 = HEAP32[$3 >> 2];
+    var $5 = $2 + 5208 | 0;
+    var $6 = HEAP32[$5 >> 2];
+    var $7 = $2 + 4864 | 0;
+    var $8 = HEAP32[$7 >> 2];
+    var $9 = $that + 20 | 0;
+    var $10 = $that + 4 | 0;
+    var $11 = $9;
+    HEAP32[$11 >> 2] = 0;
+    HEAP32[$11 + 4 >> 2] = 0;
+    HEAP32[$11 + 8 >> 2] = 0;
+    HEAP32[$11 + 12 >> 2] = 0;
+    var $i_074 = 0;
+    var $j_075 = 0;
+    var $m_o_076 = -1;
+    var $sfb_077 = 0;
+    var $maxsf_078 = 0;
+    label = 5;
+    break;
+   case 3:
+    var $12 = ($57 | 0) < 39;
+    if ($12) {
+      label = 4;
+      break;
+    } else {
+      label = 15;
+      break;
+    }
+   case 4:
+    var $13 = $maxsf_3 & 255;
+    var $sfb_173 = $57;
+    label = 14;
+    break;
+   case 5:
+    var $maxsf_078;
+    var $sfb_077;
+    var $m_o_076;
+    var $j_075;
+    var $i_074;
+    var $15 = $2 + 4872 + ($sfb_077 << 2) | 0;
+    var $16 = HEAP32[$15 >> 2];
+    var $17 = $6 - $j_075 | 0;
+    var $18 = $17 + 1 | 0;
+    var $19 = $16 >>> 0 > $18 >>> 0;
+    var $_ = $19 ? $18 : $16;
+    var $20 = $4 + ($j_075 << 2) | 0;
+    var $21 = _vec_max_c($20, $_);
+    var $22 = _find_lowest_scalefac($21);
+    var $23 = $22 & 255;
+    var $24 = $vbrsfmin + ($sfb_077 << 2) | 0;
+    HEAP32[$24 >> 2] = $23;
+    var $25 = HEAP32[$9 >> 2];
+    var $26 = ($25 | 0) < ($23 | 0);
+    if ($26) {
+      label = 6;
+      break;
+    } else {
+      label = 7;
+      break;
+    }
+   case 6:
+    HEAP32[$9 >> 2] = $23;
+    label = 7;
+    break;
+   case 7:
+    var $29 = $that + 24 + ($i_074 << 2) | 0;
+    var $30 = HEAP32[$29 >> 2];
+    var $31 = ($30 | 0) < ($23 | 0);
+    if ($31) {
+      label = 8;
+      break;
+    } else {
+      label = 9;
+      break;
+    }
+   case 8:
+    HEAP32[$29 >> 2] = $23;
+    label = 9;
+    break;
+   case 9:
+    var $34 = $i_074 + 1 | 0;
+    var $35 = $34 >>> 0 > 2;
+    var $_69 = $35 ? 0 : $34;
+    var $36 = ($sfb_077 | 0) < ($8 | 0);
+    var $37 = $16 >>> 0 > 2;
+    var $or_cond = $36 & $37;
+    if ($or_cond) {
+      label = 10;
+      break;
+    } else {
+      label = 12;
+      break;
+    }
+   case 10:
+    var $39 = $sfb_077 + ($2 + 5212) | 0;
+    var $40 = HEAP8[$39];
+    var $41 = $40 << 24 >> 24 == 0;
+    if ($41) {
+      var $m2_0 = -1;
+      var $maxsf_3 = -1;
+      var $m_o_1 = $m_o_076;
+      label = 13;
+      break;
+    } else {
+      label = 11;
+      break;
+    }
+   case 11:
+    var $43 = HEAP32[$10 >> 2];
+    var $44 = $2 + ($j_075 << 2) | 0;
+    var $45 = $l3_xmin + ($sfb_077 << 2) | 0;
+    var $46 = HEAPF32[$45 >> 2];
+    var $47 = FUNCTION_TABLE[$43]($44, $20, $46, $_, $22);
+    var $48 = $47 & 255;
+    var $49 = ($maxsf_078 & 255) < ($47 & 255);
+    var $_maxsf_0 = $49 ? $47 : $maxsf_078;
+    var $50 = ($m_o_076 | 0) >= ($48 | 0);
+    var $51 = $47 << 24 >> 24 == -1;
+    var $or_cond70 = $50 | $51;
+    var $m_o_0_ = $or_cond70 ? $m_o_076 : $48;
+    var $m2_0 = $47;
+    var $maxsf_3 = $_maxsf_0;
+    var $m_o_1 = $m_o_0_;
+    label = 13;
+    break;
+   case 12:
+    var $53 = ($maxsf_078 & 255) < ($22 & 255);
+    var $_maxsf_071 = $53 ? $22 : $maxsf_078;
+    var $m2_0 = $_maxsf_071;
+    var $maxsf_3 = $_maxsf_071;
+    var $m_o_1 = $m_o_076;
+    label = 13;
+    break;
+   case 13:
+    var $m_o_1;
+    var $maxsf_3;
+    var $m2_0;
+    var $55 = $m2_0 & 255;
+    var $56 = $vbrsf + ($sfb_077 << 2) | 0;
+    HEAP32[$56 >> 2] = $55;
+    var $57 = $sfb_077 + 1 | 0;
+    var $58 = $16 + $j_075 | 0;
+    var $59 = $58 >>> 0 > $6 >>> 0;
+    if ($59) {
+      label = 3;
+      break;
+    } else {
+      var $i_074 = $_69;
+      var $j_075 = $58;
+      var $m_o_076 = $m_o_1;
+      var $sfb_077 = $57;
+      var $maxsf_078 = $maxsf_3;
+      label = 5;
+      break;
+    }
+   case 14:
+    var $sfb_173;
+    var $61 = $vbrsf + ($sfb_173 << 2) | 0;
+    HEAP32[$61 >> 2] = $13;
+    var $62 = $vbrsfmin + ($sfb_173 << 2) | 0;
+    HEAP32[$62 >> 2] = 0;
+    var $63 = $sfb_173 + 1 | 0;
+    var $exitcond79 = ($63 | 0) == 39;
+    if ($exitcond79) {
+      label = 15;
+      break;
+    } else {
+      var $sfb_173 = $63;
+      label = 14;
+      break;
+    }
+   case 15:
+    var $64 = ($m_o_1 | 0) > -1;
+    if ($64) {
+      var $sfb_272 = 0;
+      label = 16;
+      break;
+    } else {
+      var $maxsf_4 = $maxsf_3;
+      label = 20;
+      break;
+    }
+   case 16:
+    var $sfb_272;
+    var $66 = $vbrsf + ($sfb_272 << 2) | 0;
+    var $67 = HEAP32[$66 >> 2];
+    var $68 = ($67 | 0) == 255;
+    if ($68) {
+      label = 17;
+      break;
+    } else {
+      label = 18;
+      break;
+    }
+   case 17:
+    HEAP32[$66 >> 2] = $m_o_1;
+    label = 18;
+    break;
+   case 18:
+    var $71 = $sfb_272 + 1 | 0;
+    var $exitcond = ($71 | 0) == 39;
+    if ($exitcond) {
+      label = 19;
+      break;
+    } else {
+      var $sfb_272 = $71;
+      label = 16;
+      break;
+    }
+   case 19:
+    var $72 = $m_o_1 & 255;
+    var $maxsf_4 = $72;
+    label = 20;
+    break;
+   case 20:
+    var $maxsf_4;
+    var $74 = $maxsf_4 & 255;
+    return $74;
+  }
+}
+_block_sf["X"] = 1;
+function _quantizeAndCountBits($that) {
+  _quantize_x34($that);
+  var $3 = $that + 16 | 0;
+  var $5 = _noquant_count_bits(HEAP32[$that + 12 >> 2], HEAP32[$3 >> 2], 0);
+  HEAP32[HEAP32[$3 >> 2] + 4768 >> 2] = $5;
+  return HEAP32[HEAP32[$3 >> 2] + 4768 >> 2];
+}
+function _reduce_bit_usage($gfc, $gr, $ch) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = $gfc + 304 | 0;
+    _best_scalefac_store($gfc, $gr, $ch, $1);
+    var $2 = $gfc + 36 | 0;
+    var $3 = HEAP32[$2 >> 2];
+    var $4 = ($3 | 0) == 1;
+    if ($4) {
+      label = 3;
+      break;
+    } else {
+      label = 4;
+      break;
+    }
+   case 3:
+    var $6 = $gfc + 304 + $gr * 10504 + $ch * 5252 | 0;
+    _best_huffman_divide($gfc, $6);
+    label = 4;
+    break;
+   case 4:
+    var $8 = $gfc + 304 + $gr * 10504 + $ch * 5252 + 4768 | 0;
+    var $9 = HEAP32[$8 >> 2];
+    var $10 = $gfc + 304 + $gr * 10504 + $ch * 5252 + 4844 | 0;
+    var $11 = HEAP32[$10 >> 2];
+    var $12 = $11 + $9 | 0;
+    return $12;
+  }
+}
+function _outOfBitsStrategy($that, $sfwork, $vbrsfmin, $target) {
+  var label = 0;
+  var __stackBase__ = STACKTOP;
+  STACKTOP = STACKTOP + 156 | 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $wrk = __stackBase__;
+    var $1 = _sfDepth($sfwork);
+    var $2 = $that + 16 | 0;
+    var $3 = HEAP32[$2 >> 2];
+    var $4 = $3 + 4780 | 0;
+    var $5 = HEAP32[$4 >> 2];
+    var $6 = $wrk | 0;
+    var $bi_0_in = $1;
+    var $bi_ok_0 = -1;
+    var $bu_0 = 0;
+    var $bo_0 = $1;
+    label = 3;
+    break;
+   case 3:
+    var $bo_0;
+    var $bu_0;
+    var $bi_ok_0;
+    var $bi_0_in;
+    var $bi_0 = ($bi_0_in | 0) / 2 & -1;
+    var $8 = _flattenDistribution($sfwork, $6, $1, $bi_0, $5);
+    var $9 = _tryThatOne($that, $6, $vbrsfmin, $8);
+    var $10 = ($9 | 0) > ($target | 0);
+    var $11 = $bi_0 - 1 | 0;
+    var $12 = $bi_0 + 1 | 0;
+    var $bo_1 = $10 ? $bo_0 : $11;
+    var $bu_1 = $10 ? $12 : $bu_0;
+    var $bi_ok_1 = $10 ? $bi_ok_0 : $bi_0;
+    var $13 = ($bu_1 | 0) > ($bo_1 | 0);
+    var $14 = $bu_1 + $bo_1 | 0;
+    if ($13) {
+      label = 4;
+      break;
+    } else {
+      var $bi_0_in = $14;
+      var $bi_ok_0 = $bi_ok_1;
+      var $bu_0 = $bu_1;
+      var $bo_0 = $bo_1;
+      label = 3;
+      break;
+    }
+   case 4:
+    var $16 = ($bi_ok_1 | 0) > -1;
+    if ($16) {
+      label = 5;
+      break;
+    } else {
+      label = 7;
+      break;
+    }
+   case 5:
+    var $18 = ($bi_0 | 0) == ($bi_ok_1 | 0);
+    if ($18) {
+      label = 13;
+      break;
+    } else {
+      label = 6;
+      break;
+    }
+   case 6:
+    var $20 = _flattenDistribution($sfwork, $6, $1, $bi_ok_1, $5);
+    var $21 = _tryThatOne($that, $6, $vbrsfmin, $20);
+    label = 13;
+    break;
+   case 7:
+    var $23 = $5 + 255 | 0;
+    var $bo5_0 = 255;
+    var $bu4_0 = $5;
+    var $bi_ok3_0 = -1;
+    var $bi2_0_in = $23;
+    label = 8;
+    break;
+   case 8:
+    var $bi2_0_in;
+    var $bi_ok3_0;
+    var $bu4_0;
+    var $bo5_0;
+    var $bi2_0 = ($bi2_0_in | 0) / 2 & -1;
+    var $25 = _flattenDistribution($sfwork, $6, $1, $1, $bi2_0);
+    var $26 = _tryThatOne($that, $6, $vbrsfmin, $25);
+    var $27 = ($26 | 0) > ($target | 0);
+    var $28 = $bi2_0 - 1 | 0;
+    var $29 = $bi2_0 + 1 | 0;
+    var $bi_ok3_1 = $27 ? $bi_ok3_0 : $bi2_0;
+    var $bu4_1 = $27 ? $29 : $bu4_0;
+    var $bo5_1 = $27 ? $bo5_0 : $28;
+    var $30 = ($bu4_1 | 0) > ($bo5_1 | 0);
+    var $31 = $bu4_1 + $bo5_1 | 0;
+    if ($30) {
+      label = 9;
+      break;
+    } else {
+      var $bo5_0 = $bo5_1;
+      var $bu4_0 = $bu4_1;
+      var $bi_ok3_0 = $bi_ok3_1;
+      var $bi2_0_in = $31;
+      label = 8;
+      break;
+    }
+   case 9:
+    var $33 = ($bi_ok3_1 | 0) > -1;
+    if ($33) {
+      label = 10;
+      break;
+    } else {
+      label = 12;
+      break;
+    }
+   case 10:
+    var $35 = ($bi2_0 | 0) == ($bi_ok3_1 | 0);
+    if ($35) {
+      label = 13;
+      break;
+    } else {
+      label = 11;
+      break;
+    }
+   case 11:
+    var $37 = _flattenDistribution($sfwork, $6, $1, $1, $bi_ok3_1);
+    var $38 = _tryThatOne($that, $6, $vbrsfmin, $37);
+    label = 13;
+    break;
+   case 12:
+    _searchGlobalStepsizeMax($that, $6, $vbrsfmin, $target);
+    label = 13;
+    break;
+   case 13:
+    STACKTOP = __stackBase__;
+    return;
+  }
+}
+_outOfBitsStrategy["X"] = 1;
+function _tryThatOne($that, $sftemp, $vbrsfmin, $vbrmax) {
+  var $1 = $that + 16 | 0;
+  var $4 = HEAPF32[HEAP32[$1 >> 2] + 4764 >> 2];
+  FUNCTION_TABLE[HEAP32[$that >> 2]]($that, $sftemp, $vbrsfmin, $vbrmax);
+  _bitcount($that);
+  var $7 = _quantizeAndCountBits($that);
+  var $8 = HEAP32[$1 >> 2];
+  var $11 = HEAP32[$8 + 4844 >> 2] + $7 | 0;
+  HEAPF32[$8 + 4764 >> 2] = $4;
+  return $11;
+}
+function _searchGlobalStepsizeMax($that, $sfwork, $vbrsfmin, $target) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = $that + 16 | 0;
+    var $2 = HEAP32[$1 >> 2];
+    var $3 = $2 + 4780 | 0;
+    var $4 = HEAP32[$3 >> 2];
+    var $5 = ($4 | 0) > 512;
+    if ($5) {
+      var $curr_0_lcssa = $4;
+      var $gain_ok_0_lcssa = 1024;
+      label = 9;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 3:
+    var $6 = $2 + 4844 | 0;
+    var $gain_ok_0_ph31 = 1024;
+    var $l_0_ph32 = $4;
+    var $r_0_ph33 = 512;
+    label = 4;
+    break;
+   case 4:
+    var $r_0_ph33;
+    var $l_0_ph32;
+    var $gain_ok_0_ph31;
+    var $gain_ok_026 = $gain_ok_0_ph31;
+    var $r_027 = $r_0_ph33;
+    label = 5;
+    break;
+   case 5:
+    var $r_027;
+    var $gain_ok_026;
+    var $8 = $r_027 + $l_0_ph32 | 0;
+    var $9 = $8 >> 1;
+    var $10 = $9 - $4 | 0;
+    var $11 = _tryGlobalStepsize($that, $sfwork, $vbrsfmin, $10);
+    var $12 = ($11 | 0) == 0;
+    if ($12) {
+      label = 7;
+      break;
+    } else {
+      label = 6;
+      break;
+    }
+   case 6:
+    var $14 = HEAP32[$6 >> 2];
+    var $15 = $14 + $11 | 0;
+    var $16 = ($15 | 0) < ($target | 0);
+    if ($16) {
+      label = 7;
+      break;
+    } else {
+      label = 8;
+      break;
+    }
+   case 7:
+    var $18 = $9 - 1 | 0;
+    var $19 = ($l_0_ph32 | 0) > ($18 | 0);
+    if ($19) {
+      label = 11;
+      break;
+    } else {
+      var $gain_ok_026 = $9;
+      var $r_027 = $18;
+      label = 5;
+      break;
+    }
+   case 8:
+    var $20 = $9 + 1 | 0;
+    var $21 = ($gain_ok_026 | 0) == 1024;
+    var $_gain_ok_0 = $21 ? $9 : $gain_ok_026;
+    var $22 = ($20 | 0) > ($r_027 | 0);
+    if ($22) {
+      var $curr_0_lcssa = $9;
+      var $gain_ok_0_lcssa = $_gain_ok_0;
+      label = 9;
+      break;
+    } else {
+      var $gain_ok_0_ph31 = $_gain_ok_0;
+      var $l_0_ph32 = $20;
+      var $r_0_ph33 = $r_027;
+      label = 4;
+      break;
+    }
+   case 9:
+    var $gain_ok_0_lcssa;
+    var $curr_0_lcssa;
+    var $23 = ($gain_ok_0_lcssa | 0) == ($curr_0_lcssa | 0);
+    if ($23) {
+      label = 11;
+      break;
+    } else {
+      label = 10;
+      break;
+    }
+   case 10:
+    var $25 = $gain_ok_0_lcssa - $4 | 0;
+    var $26 = _tryGlobalStepsize($that, $sfwork, $vbrsfmin, $25);
+    label = 11;
+    break;
+   case 11:
+    return;
+  }
+}
+function _tryGlobalStepsize($that, $sfwork, $vbrsfmin, $delta) {
+  var label = 0;
+  var __stackBase__ = STACKTOP;
+  STACKTOP = STACKTOP + 156 | 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $sftemp = __stackBase__;
+    var $1 = $that + 16 | 0;
+    var $2 = HEAP32[$1 >> 2];
+    var $3 = $2 + 4764 | 0;
+    var $4 = HEAPF32[$3 >> 2];
+    var $i_021 = 0;
+    var $vbrmax_022 = 0;
+    label = 3;
+    break;
+   case 3:
+    var $vbrmax_022;
+    var $i_021;
+    var $6 = $sfwork + ($i_021 << 2) | 0;
+    var $7 = HEAP32[$6 >> 2];
+    var $8 = $7 + $delta | 0;
+    var $9 = $vbrsfmin + ($i_021 << 2) | 0;
+    var $10 = HEAP32[$9 >> 2];
+    var $11 = ($8 | 0) < ($10 | 0);
+    var $_ = $11 ? $10 : $8;
+    var $12 = ($_ | 0) > 255;
+    var $gain_1 = $12 ? 255 : $_;
+    var $13 = ($vbrmax_022 | 0) < ($gain_1 | 0);
+    var $gain_1_vbrmax_0 = $13 ? $gain_1 : $vbrmax_022;
+    var $14 = $sftemp + ($i_021 << 2) | 0;
+    HEAP32[$14 >> 2] = $gain_1;
+    var $15 = $i_021 + 1 | 0;
+    var $exitcond = ($15 | 0) == 39;
+    if ($exitcond) {
+      label = 4;
+      break;
+    } else {
+      var $i_021 = $15;
+      var $vbrmax_022 = $gain_1_vbrmax_0;
+      label = 3;
+      break;
+    }
+   case 4:
+    var $17 = $that | 0;
+    var $18 = HEAP32[$17 >> 2];
+    var $19 = $sftemp | 0;
+    FUNCTION_TABLE[$18]($that, $19, $vbrsfmin, $gain_1_vbrmax_0);
+    _bitcount($that);
+    var $20 = _quantizeAndCountBits($that);
+    var $21 = HEAP32[$1 >> 2];
+    var $22 = $21 + 4764 | 0;
+    HEAPF32[$22 >> 2] = $4;
+    STACKTOP = __stackBase__;
+    return $20;
+  }
+}
+function _bitcount($that) {
+  var label = 0;
+  var __stackBase__ = STACKTOP;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = $that + 12 | 0;
+    var $2 = HEAP32[$1 >> 2];
+    var $3 = $that + 16 | 0;
+    var $4 = HEAP32[$3 >> 2];
+    var $5 = _scale_bitcount($2, $4);
+    var $6 = ($5 | 0) == 0;
+    if ($6) {
+      label = 3;
+      break;
+    } else {
+      label = 4;
+      break;
+    }
+   case 3:
+    STACKTOP = __stackBase__;
+    return;
+   case 4:
+    var $9 = HEAP32[$1 >> 2];
+    _lame_errorf($9, 5386640, (tempInt = STACKTOP, STACKTOP = STACKTOP + 1 | 0, STACKTOP = STACKTOP + 3 >> 2 << 2, HEAP32[tempInt >> 2] = 0, tempInt));
+    _exit(-1);
+  }
+}
+function _k_34_4($x, $l3) {
+  var $2 = (HEAP32[tempDoublePtr >> 2] = HEAP32[$x >> 2], HEAP32[tempDoublePtr + 4 >> 2] = HEAP32[$x + 4 >> 2], HEAPF64[tempDoublePtr >> 3]) + 8388608;
+  HEAPF64[tempDoublePtr >> 3] = $2, HEAP32[$x >> 2] = HEAP32[tempDoublePtr >> 2], HEAP32[$x + 4 >> 2] = HEAP32[tempDoublePtr + 4 >> 2];
+  var $4 = (HEAPF32[tempDoublePtr >> 2] = $2, HEAP32[tempDoublePtr >> 2]);
+  var $5 = $x + 8 | 0;
+  var $7 = (HEAP32[tempDoublePtr >> 2] = HEAP32[$5 >> 2], HEAP32[tempDoublePtr + 4 >> 2] = HEAP32[$5 + 4 >> 2], HEAPF64[tempDoublePtr >> 3]) + 8388608;
+  HEAPF64[tempDoublePtr >> 3] = $7, HEAP32[$5 >> 2] = HEAP32[tempDoublePtr >> 2], HEAP32[$5 + 4 >> 2] = HEAP32[tempDoublePtr + 4 >> 2];
+  var $9 = (HEAPF32[tempDoublePtr >> 2] = $7, HEAP32[tempDoublePtr >> 2]);
+  var $10 = $x + 16 | 0;
+  var $12 = (HEAP32[tempDoublePtr >> 2] = HEAP32[$10 >> 2], HEAP32[tempDoublePtr + 4 >> 2] = HEAP32[$10 + 4 >> 2], HEAPF64[tempDoublePtr >> 3]) + 8388608;
+  HEAPF64[tempDoublePtr >> 3] = $12, HEAP32[$10 >> 2] = HEAP32[tempDoublePtr >> 2], HEAP32[$10 + 4 >> 2] = HEAP32[tempDoublePtr + 4 >> 2];
+  var $14 = (HEAPF32[tempDoublePtr >> 2] = $12, HEAP32[tempDoublePtr >> 2]);
+  var $15 = $x + 24 | 0;
+  var $17 = (HEAP32[tempDoublePtr >> 2] = HEAP32[$15 >> 2], HEAP32[tempDoublePtr + 4 >> 2] = HEAP32[$15 + 4 >> 2], HEAPF64[tempDoublePtr >> 3]) + 8388608;
+  HEAPF64[tempDoublePtr >> 3] = $17, HEAP32[$15 >> 2] = HEAP32[tempDoublePtr >> 2], HEAP32[$15 + 4 >> 2] = HEAP32[tempDoublePtr + 4 >> 2];
+  var $19 = (HEAPF32[tempDoublePtr >> 2] = $17, HEAP32[tempDoublePtr >> 2]);
+  var $27 = (HEAPF32[tempDoublePtr >> 2] = (HEAP32[tempDoublePtr >> 2] = HEAP32[$x >> 2], HEAP32[tempDoublePtr + 4 >> 2] = HEAP32[$x + 4 >> 2], HEAPF64[tempDoublePtr >> 3]) + HEAPF32[5349760 + ($4 - 1258291200 << 2) >> 2], HEAP32[tempDoublePtr >> 2]);
+  var $35 = (HEAPF32[tempDoublePtr >> 2] = (HEAP32[tempDoublePtr >> 2] = HEAP32[$5 >> 2], HEAP32[tempDoublePtr + 4 >> 2] = HEAP32[$5 + 4 >> 2], HEAPF64[tempDoublePtr >> 3]) + HEAPF32[5349760 + ($9 - 1258291200 << 2) >> 2], HEAP32[tempDoublePtr >> 2]);
+  var $43 = (HEAPF32[tempDoublePtr >> 2] = (HEAP32[tempDoublePtr >> 2] = HEAP32[$10 >> 2], HEAP32[tempDoublePtr + 4 >> 2] = HEAP32[$10 + 4 >> 2], HEAPF64[tempDoublePtr >> 3]) + HEAPF32[5349760 + ($14 - 1258291200 << 2) >> 2], HEAP32[tempDoublePtr >> 2]);
+  var $50 = (HEAPF32[tempDoublePtr >> 2] = $17 + HEAPF32[5349760 + ($19 - 1258291200 << 2) >> 2], HEAP32[tempDoublePtr >> 2]);
+  HEAP32[$l3 >> 2] = $27 - 1258291200 | 0;
+  HEAP32[$l3 + 4 >> 2] = $35 - 1258291200 | 0;
+  HEAP32[$l3 + 8 >> 2] = $43 - 1258291200 | 0;
+  HEAP32[$l3 + 12 >> 2] = $50 - 1258291200 | 0;
+  return;
+}
+_k_34_4["X"] = 1;
+function _vec_max_c($xr34, $bw) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = $bw >>> 2;
+    var $2 = $bw & 3;
+    var $3 = ($1 | 0) == 0;
+    if ($3) {
+      var $xfsf_0_lcssa = 0;
+      var $_0_lcssa = $xr34;
+      label = 6;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 3:
+    var $4 = $bw & -4;
+    var $xfsf_024 = 0;
+    var $i_025 = $1;
+    var $_026 = $xr34;
+    label = 4;
+    break;
+   case 4:
+    var $_026;
+    var $i_025;
+    var $xfsf_024;
+    var $6 = $i_025 - 1 | 0;
+    var $7 = HEAPF32[$_026 >> 2];
+    var $8 = $xfsf_024 < $7;
+    var $xfsf_1 = $8 ? $7 : $xfsf_024;
+    var $9 = $_026 + 4 | 0;
+    var $10 = HEAPF32[$9 >> 2];
+    var $11 = $xfsf_1 < $10;
+    var $xfsf_2 = $11 ? $10 : $xfsf_1;
+    var $12 = $_026 + 8 | 0;
+    var $13 = HEAPF32[$12 >> 2];
+    var $14 = $xfsf_2 < $13;
+    var $xfsf_3 = $14 ? $13 : $xfsf_2;
+    var $15 = $_026 + 12 | 0;
+    var $16 = HEAPF32[$15 >> 2];
+    var $17 = $xfsf_3 < $16;
+    var $xfsf_4 = $17 ? $16 : $xfsf_3;
+    var $18 = $_026 + 16 | 0;
+    var $19 = ($6 | 0) == 0;
+    if ($19) {
+      label = 5;
+      break;
+    } else {
+      var $xfsf_024 = $xfsf_4;
+      var $i_025 = $6;
+      var $_026 = $18;
+      label = 4;
+      break;
+    }
+   case 5:
+    var $scevgep = $xr34 + ($4 << 2) | 0;
+    var $xfsf_0_lcssa = $xfsf_4;
+    var $_0_lcssa = $scevgep;
+    label = 6;
+    break;
+   case 6:
+    var $_0_lcssa;
+    var $xfsf_0_lcssa;
+    if (($2 | 0) == 3) {
+      label = 7;
+      break;
+    } else if (($2 | 0) == 2) {
+      var $xfsf_5 = $xfsf_0_lcssa;
+      label = 9;
+      break;
+    } else if (($2 | 0) == 1) {
+      var $xfsf_6 = $xfsf_0_lcssa;
+      label = 11;
+      break;
+    } else {
+      var $xfsf_7 = $xfsf_0_lcssa;
+      label = 13;
+      break;
+    }
+   case 7:
+    var $22 = $_0_lcssa + 8 | 0;
+    var $23 = HEAPF32[$22 >> 2];
+    var $24 = $xfsf_0_lcssa < $23;
+    if ($24) {
+      label = 8;
+      break;
+    } else {
+      var $xfsf_5 = $xfsf_0_lcssa;
+      label = 9;
+      break;
+    }
+   case 8:
+    var $xfsf_5 = $23;
+    label = 9;
+    break;
+   case 9:
+    var $xfsf_5;
+    var $27 = $_0_lcssa + 4 | 0;
+    var $28 = HEAPF32[$27 >> 2];
+    var $29 = $xfsf_5 < $28;
+    if ($29) {
+      label = 10;
+      break;
+    } else {
+      var $xfsf_6 = $xfsf_5;
+      label = 11;
+      break;
+    }
+   case 10:
+    var $xfsf_6 = $28;
+    label = 11;
+    break;
+   case 11:
+    var $xfsf_6;
+    var $32 = HEAPF32[$_0_lcssa >> 2];
+    var $33 = $xfsf_6 < $32;
+    if ($33) {
+      label = 12;
+      break;
+    } else {
+      var $xfsf_7 = $xfsf_6;
+      label = 13;
+      break;
+    }
+   case 12:
+    var $xfsf_7 = $32;
+    label = 13;
+    break;
+   case 13:
+    var $xfsf_7;
+    return $xfsf_7;
+  }
+}
+_vec_max_c["X"] = 1;
+function _find_lowest_scalefac($xr34) {
+  var $3 = HEAPF32[5326676 >> 2] * $xr34 > 8206;
+  var $sf_1 = $3 ? -64 : 64;
+  var $8 = HEAPF32[5326164 + (($sf_1 & 255) << 2) >> 2] * $xr34 > 8206;
+  var $sf_1_in_1 = ($8 ? 32 : -32) + $sf_1 & 255;
+  var $13 = HEAPF32[5326164 + (($sf_1_in_1 & 255) << 2) >> 2] * $xr34 > 8206;
+  var $sf_1_in_2 = ($13 ? 16 : -16) + $sf_1_in_1 & 255;
+  var $18 = HEAPF32[5326164 + (($sf_1_in_2 & 255) << 2) >> 2] * $xr34 > 8206;
+  var $sf_1_in_3 = ($18 ? 8 : -8) + $sf_1_in_2 & 255;
+  var $23 = HEAPF32[5326164 + (($sf_1_in_3 & 255) << 2) >> 2] * $xr34 > 8206;
+  var $sf_1_in_4 = ($23 ? 4 : -4) + $sf_1_in_3 & 255;
+  var $28 = HEAPF32[5326164 + (($sf_1_in_4 & 255) << 2) >> 2] * $xr34 > 8206;
+  var $sf_1_in_5 = ($28 ? 2 : -2) + $sf_1_in_4 & 255;
+  var $33 = HEAPF32[5326164 + (($sf_1_in_5 & 255) << 2) >> 2] * $xr34 > 8206;
+  var $sf_1_in_6 = ($33 ? 1 : -1) + $sf_1_in_5 & 255;
+  return HEAPF32[5326164 + (($sf_1_in_6 & 255) << 2) >> 2] * $xr34 > 8206 ? $33 ? $28 ? $23 ? $18 ? $13 ? $8 ? $3 ? -1 : -128 : $sf_1 : $sf_1_in_1 : $sf_1_in_2 : $sf_1_in_3 : $sf_1_in_4 : $sf_1_in_5 : $sf_1_in_6;
+}
+_find_lowest_scalefac["X"] = 1;
+function _set_subblock_gain($cod_info, $mingain_s, $sf) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = $cod_info + 4836 | 0;
+    var $2 = HEAP32[$1 >> 2];
+    var $3 = ($2 | 0) == 0;
+    var $4 = $3 ? 1 : 2;
+    var $5 = $cod_info + 4864 | 0;
+    var $6 = HEAP32[$5 >> 2];
+    var $7 = $6 >>> 0 < 18;
+    var $_ = $7 ? $6 : 18;
+    var $8 = 15 << $4;
+    var $9 = 7 << $4;
+    var $10 = $cod_info + 4780 | 0;
+    var $min_sbg_091 = 7;
+    var $i_092 = 0;
+    label = 3;
+    break;
+   case 3:
+    var $i_092;
+    var $min_sbg_091;
+    var $11 = $i_092 >>> 0 < $_ >>> 0;
+    if ($11) {
+      var $minsf_080 = 1e3;
+      var $maxsf1_081 = 0;
+      var $sfb_082 = $i_092;
+      label = 4;
+      break;
+    } else {
+      var $minsf_0_lcssa = 1e3;
+      var $maxsf1_0_lcssa = 0;
+      var $sfb_0_lcssa = $i_092;
+      label = 5;
+      break;
+    }
+   case 4:
+    var $sfb_082;
+    var $maxsf1_081;
+    var $minsf_080;
+    var $12 = $sf + ($sfb_082 << 2) | 0;
+    var $13 = HEAP32[$12 >> 2];
+    var $14 = -$13 | 0;
+    var $15 = ($maxsf1_081 | 0) < ($14 | 0);
+    var $_maxsf1_0 = $15 ? $14 : $maxsf1_081;
+    var $16 = ($minsf_080 | 0) > ($14 | 0);
+    var $minsf_1 = $16 ? $14 : $minsf_080;
+    var $17 = $sfb_082 + 3 | 0;
+    var $18 = $17 >>> 0 < $_ >>> 0;
+    if ($18) {
+      var $minsf_080 = $minsf_1;
+      var $maxsf1_081 = $_maxsf1_0;
+      var $sfb_082 = $17;
+      label = 4;
+      break;
+    } else {
+      var $minsf_0_lcssa = $minsf_1;
+      var $maxsf1_0_lcssa = $_maxsf1_0;
+      var $sfb_0_lcssa = $17;
+      label = 5;
+      break;
+    }
+   case 5:
+    var $sfb_0_lcssa;
+    var $maxsf1_0_lcssa;
+    var $minsf_0_lcssa;
+    var $19 = $sfb_0_lcssa >>> 0 < 39;
+    if ($19) {
+      var $minsf_285 = $minsf_0_lcssa;
+      var $maxsf2_086 = 0;
+      var $sfb_187 = $sfb_0_lcssa;
+      label = 6;
+      break;
+    } else {
+      var $minsf_2_lcssa = $minsf_0_lcssa;
+      var $maxsf2_0_lcssa = 0;
+      label = 7;
+      break;
+    }
+   case 6:
+    var $sfb_187;
+    var $maxsf2_086;
+    var $minsf_285;
+    var $20 = $sf + ($sfb_187 << 2) | 0;
+    var $21 = HEAP32[$20 >> 2];
+    var $22 = -$21 | 0;
+    var $23 = ($maxsf2_086 | 0) < ($22 | 0);
+    var $_maxsf2_0 = $23 ? $22 : $maxsf2_086;
+    var $24 = ($minsf_285 | 0) > ($22 | 0);
+    var $minsf_3 = $24 ? $22 : $minsf_285;
+    var $25 = $sfb_187 + 3 | 0;
+    var $26 = $25 >>> 0 < 39;
+    if ($26) {
+      var $minsf_285 = $minsf_3;
+      var $maxsf2_086 = $_maxsf2_0;
+      var $sfb_187 = $25;
+      label = 6;
+      break;
+    } else {
+      var $minsf_2_lcssa = $minsf_3;
+      var $maxsf2_0_lcssa = $_maxsf2_0;
+      label = 7;
+      break;
+    }
+   case 7:
+    var $maxsf2_0_lcssa;
+    var $minsf_2_lcssa;
+    var $27 = $maxsf1_0_lcssa - $8 | 0;
+    var $28 = $maxsf2_0_lcssa - $9 | 0;
+    var $29 = ($27 | 0) > ($28 | 0);
+    var $30 = $29 ? $27 : $28;
+    var $31 = ($minsf_2_lcssa | 0) > 0;
+    if ($31) {
+      label = 8;
+      break;
+    } else {
+      label = 9;
+      break;
+    }
+   case 8:
+    var $33 = $minsf_2_lcssa >> 3;
+    var $34 = $cod_info + 4808 + ($i_092 << 2) | 0;
+    HEAP32[$34 >> 2] = $33;
+    label = 10;
+    break;
+   case 9:
+    var $36 = $cod_info + 4808 + ($i_092 << 2) | 0;
+    HEAP32[$36 >> 2] = 0;
+    label = 10;
+    break;
+   case 10:
+    var $38 = ($30 | 0) > 0;
+    if ($38) {
+      label = 11;
+      break;
+    } else {
+      label = 12;
+      break;
+    }
+   case 11:
+    var $40 = $cod_info + 4808 + ($i_092 << 2) | 0;
+    var $41 = HEAP32[$40 >> 2];
+    var $42 = $30 + 7 | 0;
+    var $43 = $42 >> 3;
+    var $44 = ($41 | 0) > ($43 | 0);
+    var $45 = $44 ? $41 : $43;
+    HEAP32[$40 >> 2] = $45;
+    label = 12;
+    break;
+   case 12:
+    var $47 = $cod_info + 4808 + ($i_092 << 2) | 0;
+    var $48 = HEAP32[$47 >> 2];
+    var $49 = ($48 | 0) > 0;
+    if ($49) {
+      label = 13;
+      break;
+    } else {
+      label = 18;
+      break;
+    }
+   case 13:
+    var $51 = $mingain_s + ($i_092 << 2) | 0;
+    var $52 = HEAP32[$51 >> 2];
+    var $53 = HEAP32[$10 >> 2];
+    var $54 = $48 << 3;
+    var $55 = $53 - $54 | 0;
+    var $56 = ($52 | 0) > ($55 | 0);
+    if ($56) {
+      label = 14;
+      break;
+    } else {
+      label = 15;
+      break;
+    }
+   case 14:
+    var $58 = $53 - $52 | 0;
+    var $59 = $58 >> 3;
+    HEAP32[$47 >> 2] = $59;
+    var $61 = $59;
+    label = 16;
+    break;
+   case 15:
+    var $_pr = HEAP32[$47 >> 2];
+    var $61 = $_pr;
+    label = 16;
+    break;
+   case 16:
+    var $61;
+    var $62 = ($61 | 0) > 7;
+    if ($62) {
+      label = 17;
+      break;
+    } else {
+      label = 18;
+      break;
+    }
+   case 17:
+    HEAP32[$47 >> 2] = 7;
+    label = 18;
+    break;
+   case 18:
+    var $64 = HEAP32[$47 >> 2];
+    var $65 = ($min_sbg_091 | 0) > ($64 | 0);
+    var $_min_sbg_0 = $65 ? $64 : $min_sbg_091;
+    var $66 = $i_092 + 1 | 0;
+    var $exitcond = ($66 | 0) == 3;
+    if ($exitcond) {
+      label = 19;
+      break;
+    } else {
+      var $min_sbg_091 = $_min_sbg_0;
+      var $i_092 = $66;
+      label = 3;
+      break;
+    }
+   case 19:
+    var $68 = $cod_info + 4808 | 0;
+    var $69 = HEAP32[$68 >> 2];
+    var $70 = $69 << 3;
+    var $71 = $cod_info + 4812 | 0;
+    var $72 = HEAP32[$71 >> 2];
+    var $73 = $72 << 3;
+    var $74 = $cod_info + 4816 | 0;
+    var $75 = HEAP32[$74 >> 2];
+    var $76 = $75 << 3;
+    var $sfb_278 = 0;
+    label = 20;
+    break;
+   case 20:
+    var $sfb_278;
+    var $78 = $sf + ($sfb_278 << 2) | 0;
+    var $79 = HEAP32[$78 >> 2];
+    var $80 = $79 + $70 | 0;
+    HEAP32[$78 >> 2] = $80;
+    var $81 = $sfb_278 + 1 | 0;
+    var $82 = $sf + ($81 << 2) | 0;
+    var $83 = HEAP32[$82 >> 2];
+    var $84 = $83 + $73 | 0;
+    HEAP32[$82 >> 2] = $84;
+    var $85 = $sfb_278 + 2 | 0;
+    var $86 = $sf + ($85 << 2) | 0;
+    var $87 = HEAP32[$86 >> 2];
+    var $88 = $87 + $76 | 0;
+    HEAP32[$86 >> 2] = $88;
+    var $89 = $sfb_278 + 3 | 0;
+    var $90 = $89 >>> 0 < 39;
+    if ($90) {
+      var $sfb_278 = $89;
+      label = 20;
+      break;
+    } else {
+      label = 21;
+      break;
+    }
+   case 21:
+    var $92 = ($_min_sbg_0 | 0) > 0;
+    if ($92) {
+      label = 22;
+      break;
+    } else {
+      label = 23;
+      break;
+    }
+   case 22:
+    var $93 = $cod_info + 4808 | 0;
+    var $94 = HEAP32[$93 >> 2];
+    var $95 = $94 - $_min_sbg_0 | 0;
+    HEAP32[$93 >> 2] = $95;
+    var $96 = $cod_info + 4812 | 0;
+    var $97 = HEAP32[$96 >> 2];
+    var $98 = $97 - $_min_sbg_0 | 0;
+    HEAP32[$96 >> 2] = $98;
+    var $99 = $cod_info + 4816 | 0;
+    var $100 = HEAP32[$99 >> 2];
+    var $101 = $100 - $_min_sbg_0 | 0;
+    HEAP32[$99 >> 2] = $101;
+    var $102 = $_min_sbg_0 << 3;
+    var $103 = $cod_info + 4780 | 0;
+    var $104 = HEAP32[$103 >> 2];
+    var $105 = $104 - $102 | 0;
+    HEAP32[$103 >> 2] = $105;
+    label = 23;
+    break;
+   case 23:
+    return;
+  }
+}
+_set_subblock_gain["X"] = 1;
+function _quantize_x34($that) {
+  var label = 0;
+  var __stackBase__ = STACKTOP;
+  STACKTOP = STACKTOP + 48 | 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $x = __stackBase__;
+    var $tmp_l3 = __stackBase__ + 32;
+    var $1 = $that + 8 | 0;
+    var $2 = HEAP32[$1 >> 2];
+    var $3 = $that + 16 | 0;
+    var $4 = HEAP32[$3 >> 2];
+    var $5 = $4 + 4836 | 0;
+    var $6 = HEAP32[$5 >> 2];
+    var $7 = ($6 | 0) == 0;
+    var $8 = $7 ? 2 : 4;
+    var $9 = $4 + 2304 | 0;
+    var $10 = $4 + 5208 | 0;
+    var $11 = HEAP32[$10 >> 2];
+    var $12 = $4 + 4832 | 0;
+    var $13 = $4 + 4780 | 0;
+    var $14 = $x + 16 | 0;
+    var $15 = $x + 8 | 0;
+    var $16 = $x | 0;
+    var $17 = $tmp_l3 | 0;
+    var $18 = $tmp_l3 + 8 | 0;
+    var $19 = $tmp_l3 + 4 | 0;
+    var $20 = $x | 0;
+    var $21 = $x + 8 | 0;
+    var $22 = $x + 16 | 0;
+    var $23 = $x + 24 | 0;
+    var $24 = -2 - $11 | 0;
+    var $sfb_053 = 0;
+    var $j_054 = 0;
+    var $l3_055 = $9;
+    var $xr34_orig_056 = $2;
+    label = 3;
+    break;
+   case 3:
+    var $xr34_orig_056;
+    var $l3_055;
+    var $j_054;
+    var $sfb_053;
+    var $26 = $4 + 4608 + ($sfb_053 << 2) | 0;
+    var $27 = HEAP32[$26 >> 2];
+    var $28 = HEAP32[$12 >> 2];
+    var $29 = ($28 | 0) == 0;
+    if ($29) {
+      var $34 = 0;
+      label = 5;
+      break;
+    } else {
+      label = 4;
+      break;
+    }
+   case 4:
+    var $31 = 5257016 + ($sfb_053 << 2) | 0;
+    var $32 = HEAP32[$31 >> 2];
+    var $34 = $32;
+    label = 5;
+    break;
+   case 5:
+    var $34;
+    var $35 = $34 + $27 | 0;
+    var $36 = $35 * $8 & -1;
+    var $37 = $4 + 5028 + ($sfb_053 << 2) | 0;
+    var $38 = HEAP32[$37 >> 2];
+    var $39 = $4 + 4808 + ($38 << 2) | 0;
+    var $40 = HEAP32[$39 >> 2];
+    var $41 = $40 << 3;
+    var $42 = HEAP32[$13 >> 2];
+    var $sum = $41 + $36 | 0;
+    var $43 = $42 - $sum | 0;
+    var $44 = $43 & 255;
+    var $45 = 5326164 + ($44 << 2) | 0;
+    var $46 = HEAPF32[$45 >> 2];
+    var $47 = $4 + 4872 + ($sfb_053 << 2) | 0;
+    var $48 = HEAP32[$47 >> 2];
+    var $49 = $11 - $j_054 | 0;
+    var $50 = $49 + 1 | 0;
+    var $51 = $48 + $j_054 | 0;
+    var $52 = $sfb_053 + 1 | 0;
+    var $53 = $48 >>> 0 <= $50 >>> 0;
+    var $54 = $53 ? $48 : $50;
+    var $55 = $54 & 3;
+    var $56 = $54 >>> 2;
+    var $57 = ($56 | 0) == 0;
+    if ($57) {
+      var $l3_1_lcssa = $l3_055;
+      var $xr34_orig_1_lcssa = $xr34_orig_056;
+      label = 9;
+      break;
+    } else {
+      label = 6;
+      break;
+    }
+   case 6:
+    var $58 = $48 ^ -1;
+    var $59 = $24 + $j_054 | 0;
+    var $60 = $59 >>> 0 < $58 >>> 0;
+    var $umax = $60 ? $58 : $59;
+    var $61 = $umax & -4;
+    var $62 = $61 ^ -4;
+    var $scevgep = $xr34_orig_056 + ($62 << 2) | 0;
+    var $l3_149 = $l3_055;
+    var $i_050 = $56;
+    var $xr34_orig_151 = $xr34_orig_056;
+    label = 7;
+    break;
+   case 7:
+    var $xr34_orig_151;
+    var $i_050;
+    var $l3_149;
+    var $64 = $i_050 - 1 | 0;
+    var $65 = HEAPF32[$xr34_orig_151 >> 2];
+    var $66 = $46 * $65;
+    var $67 = $66;
+    HEAPF64[tempDoublePtr >> 3] = $67, HEAP32[$20 >> 2] = HEAP32[tempDoublePtr >> 2], HEAP32[$20 + 4 >> 2] = HEAP32[tempDoublePtr + 4 >> 2];
+    var $68 = $xr34_orig_151 + 4 | 0;
+    var $69 = HEAPF32[$68 >> 2];
+    var $70 = $46 * $69;
+    var $71 = $70;
+    HEAPF64[tempDoublePtr >> 3] = $71, HEAP32[$21 >> 2] = HEAP32[tempDoublePtr >> 2], HEAP32[$21 + 4 >> 2] = HEAP32[tempDoublePtr + 4 >> 2];
+    var $72 = $xr34_orig_151 + 8 | 0;
+    var $73 = HEAPF32[$72 >> 2];
+    var $74 = $46 * $73;
+    var $75 = $74;
+    HEAPF64[tempDoublePtr >> 3] = $75, HEAP32[$22 >> 2] = HEAP32[tempDoublePtr >> 2], HEAP32[$22 + 4 >> 2] = HEAP32[tempDoublePtr + 4 >> 2];
+    var $76 = $xr34_orig_151 + 12 | 0;
+    var $77 = HEAPF32[$76 >> 2];
+    var $78 = $46 * $77;
+    var $79 = $78;
+    HEAPF64[tempDoublePtr >> 3] = $79, HEAP32[$23 >> 2] = HEAP32[tempDoublePtr >> 2], HEAP32[$23 + 4 >> 2] = HEAP32[tempDoublePtr + 4 >> 2];
+    _k_34_4($20, $l3_149);
+    var $80 = $l3_149 + 16 | 0;
+    var $81 = $xr34_orig_151 + 16 | 0;
+    var $82 = ($64 | 0) == 0;
+    if ($82) {
+      label = 8;
+      break;
+    } else {
+      var $l3_149 = $80;
+      var $i_050 = $64;
+      var $xr34_orig_151 = $81;
+      label = 7;
+      break;
+    }
+   case 8:
+    var $scevgep58 = $l3_055 + ($62 << 2) | 0;
+    var $l3_1_lcssa = $scevgep58;
+    var $xr34_orig_1_lcssa = $scevgep;
+    label = 9;
+    break;
+   case 9:
+    var $xr34_orig_1_lcssa;
+    var $l3_1_lcssa;
+    var $84 = ($55 | 0) == 0;
+    if ($84) {
+      var $xr34_orig_0_be = $xr34_orig_1_lcssa;
+      var $l3_0_be = $l3_1_lcssa;
+      label = 19;
+      break;
+    } else {
+      label = 10;
+      break;
+    }
+   case 10:
+    var $86 = $x;
+    HEAP32[$86 >> 2] = 0;
+    HEAP32[$86 + 4 >> 2] = 0;
+    HEAP32[$86 + 8 >> 2] = 0;
+    HEAP32[$86 + 12 >> 2] = 0;
+    HEAP32[$86 + 16 >> 2] = 0;
+    HEAP32[$86 + 20 >> 2] = 0;
+    HEAP32[$86 + 24 >> 2] = 0;
+    HEAP32[$86 + 28 >> 2] = 0;
+    if (($55 | 0) == 3) {
+      label = 11;
+      break;
+    } else if (($55 | 0) == 2) {
+      label = 12;
+      break;
+    } else if (($55 | 0) == 1) {
+      label = 13;
+      break;
+    } else {
+      label = 14;
+      break;
+    }
+   case 11:
+    var $88 = $xr34_orig_1_lcssa + 8 | 0;
+    var $89 = HEAPF32[$88 >> 2];
+    var $90 = $46 * $89;
+    var $91 = $90;
+    HEAPF64[tempDoublePtr >> 3] = $91, HEAP32[$14 >> 2] = HEAP32[tempDoublePtr >> 2], HEAP32[$14 + 4 >> 2] = HEAP32[tempDoublePtr + 4 >> 2];
+    label = 12;
+    break;
+   case 12:
+    var $93 = $xr34_orig_1_lcssa + 4 | 0;
+    var $94 = HEAPF32[$93 >> 2];
+    var $95 = $46 * $94;
+    var $96 = $95;
+    HEAPF64[tempDoublePtr >> 3] = $96, HEAP32[$15 >> 2] = HEAP32[tempDoublePtr >> 2], HEAP32[$15 + 4 >> 2] = HEAP32[tempDoublePtr + 4 >> 2];
+    label = 13;
+    break;
+   case 13:
+    var $98 = HEAPF32[$xr34_orig_1_lcssa >> 2];
+    var $99 = $46 * $98;
+    var $100 = $99;
+    HEAPF64[tempDoublePtr >> 3] = $100, HEAP32[$16 >> 2] = HEAP32[tempDoublePtr >> 2], HEAP32[$16 + 4 >> 2] = HEAP32[tempDoublePtr + 4 >> 2];
+    label = 14;
+    break;
+   case 14:
+    _k_34_4($16, $17);
+    if (($55 | 0) == 3) {
+      label = 15;
+      break;
+    } else if (($55 | 0) == 2) {
+      label = 16;
+      break;
+    } else if (($55 | 0) == 1) {
+      label = 17;
+      break;
+    } else {
+      label = 18;
+      break;
+    }
+   case 15:
+    var $103 = HEAP32[$18 >> 2];
+    var $104 = $l3_1_lcssa + 8 | 0;
+    HEAP32[$104 >> 2] = $103;
+    label = 16;
+    break;
+   case 16:
+    var $106 = HEAP32[$19 >> 2];
+    var $107 = $l3_1_lcssa + 4 | 0;
+    HEAP32[$107 >> 2] = $106;
+    label = 17;
+    break;
+   case 17:
+    var $109 = HEAP32[$17 >> 2];
+    HEAP32[$l3_1_lcssa >> 2] = $109;
+    label = 18;
+    break;
+   case 18:
+    var $111 = $l3_1_lcssa + ($55 << 2) | 0;
+    var $112 = $xr34_orig_1_lcssa + ($55 << 2) | 0;
+    var $xr34_orig_0_be = $112;
+    var $l3_0_be = $111;
+    label = 19;
+    break;
+   case 19:
+    var $l3_0_be;
+    var $xr34_orig_0_be;
+    var $113 = $51 >>> 0 > $11 >>> 0;
+    if ($113) {
+      label = 20;
+      break;
+    } else {
+      var $sfb_053 = $52;
+      var $j_054 = $51;
+      var $l3_055 = $l3_0_be;
+      var $xr34_orig_056 = $xr34_orig_0_be;
+      label = 3;
+      break;
+    }
+   case 20:
+    STACKTOP = __stackBase__;
+    return;
+  }
+}
+_quantize_x34["X"] = 1;
+function _set_scalefacs($cod_info, $vbrsfmin, $sf, $max_range) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = $cod_info + 4836 | 0;
+    var $2 = HEAP32[$1 >> 2];
+    var $3 = ($2 | 0) == 0;
+    var $4 = $3 ? 2 : 4;
+    var $5 = $3 ? 1 : 2;
+    var $6 = $cod_info + 4860 | 0;
+    var $7 = HEAP32[$6 >> 2];
+    var $8 = $cod_info + 4832 | 0;
+    var $9 = HEAP32[$8 >> 2];
+    var $10 = ($9 | 0) != 0;
+    var $11 = ($7 | 0) > 11;
+    var $or_cond64 = $10 & $11;
+    if ($or_cond64) {
+      var $sfb_059 = 11;
+      label = 5;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 3:
+    var $12 = ($7 | 0) > 0;
+    if ($12) {
+      label = 4;
+      break;
+    } else {
+      var $sfb_1_lcssa63 = 0;
+      label = 16;
+      break;
+    }
+   case 4:
+    var $13 = $cod_info + 4780 | 0;
+    var $14 = $4 - 1 | 0;
+    var $sfb_156 = 0;
+    label = 7;
+    break;
+   case 5:
+    var $sfb_059;
+    var $15 = 5257016 + ($sfb_059 << 2) | 0;
+    var $16 = HEAP32[$15 >> 2];
+    var $17 = $16 * $4 & -1;
+    var $18 = $sf + ($sfb_059 << 2) | 0;
+    var $19 = HEAP32[$18 >> 2];
+    var $20 = $19 + $17 | 0;
+    HEAP32[$18 >> 2] = $20;
+    var $21 = $sfb_059 + 1 | 0;
+    var $exitcond62 = ($21 | 0) == ($7 | 0);
+    if ($exitcond62) {
+      label = 3;
+      break;
+    } else {
+      var $sfb_059 = $21;
+      label = 5;
+      break;
+    }
+   case 6:
+    var $22 = ($7 | 0) < 39;
+    if ($22) {
+      var $sfb_1_lcssa63 = $7;
+      label = 16;
+      break;
+    } else {
+      label = 17;
+      break;
+    }
+   case 7:
+    var $sfb_156;
+    var $24 = HEAP32[$13 >> 2];
+    var $25 = $cod_info + 5028 + ($sfb_156 << 2) | 0;
+    var $26 = HEAP32[$25 >> 2];
+    var $27 = $cod_info + 4808 + ($26 << 2) | 0;
+    var $28 = HEAP32[$27 >> 2];
+    var $29 = $28 << 3;
+    var $30 = $24 - $29 | 0;
+    if ($10) {
+      label = 8;
+      break;
+    } else {
+      var $35 = 0;
+      label = 9;
+      break;
+    }
+   case 8:
+    var $32 = 5257016 + ($sfb_156 << 2) | 0;
+    var $33 = HEAP32[$32 >> 2];
+    var $35 = $33;
+    label = 9;
+    break;
+   case 9:
+    var $35;
+    var $36 = $sf + ($sfb_156 << 2) | 0;
+    var $37 = HEAP32[$36 >> 2];
+    var $38 = ($37 | 0) < 0;
+    if ($38) {
+      label = 10;
+      break;
+    } else {
+      label = 14;
+      break;
+    }
+   case 10:
+    var $40 = $35 * $4 & -1;
+    var $41 = $30 - $40 | 0;
+    var $42 = $vbrsfmin + ($sfb_156 << 2) | 0;
+    var $43 = HEAP32[$42 >> 2];
+    var $44 = $41 - $43 | 0;
+    var $45 = $14 - $37 | 0;
+    var $46 = $45 >> $5;
+    var $47 = $cod_info + 4608 + ($sfb_156 << 2) | 0;
+    HEAP32[$47 >> 2] = $46;
+    var $48 = $max_range + $sfb_156 | 0;
+    var $49 = HEAP8[$48];
+    var $50 = $49 & 255;
+    var $51 = ($46 | 0) > ($50 | 0);
+    if ($51) {
+      label = 11;
+      break;
+    } else {
+      var $54 = $46;
+      label = 12;
+      break;
+    }
+   case 11:
+    HEAP32[$47 >> 2] = $50;
+    var $54 = $50;
+    label = 12;
+    break;
+   case 12:
+    var $54;
+    var $55 = ($54 | 0) > 0;
+    var $56 = $54 << $5;
+    var $57 = ($56 | 0) > ($44 | 0);
+    var $or_cond = $55 & $57;
+    if ($or_cond) {
+      label = 13;
+      break;
+    } else {
+      label = 15;
+      break;
+    }
+   case 13:
+    var $59 = $44 >> $5;
+    HEAP32[$47 >> 2] = $59;
+    label = 15;
+    break;
+   case 14:
+    var $61 = $cod_info + 4608 + ($sfb_156 << 2) | 0;
+    HEAP32[$61 >> 2] = 0;
+    label = 15;
+    break;
+   case 15:
+    var $63 = $sfb_156 + 1 | 0;
+    var $exitcond = ($63 | 0) == ($7 | 0);
+    if ($exitcond) {
+      label = 6;
+      break;
+    } else {
+      var $sfb_156 = $63;
+      label = 7;
+      break;
+    }
+   case 16:
+    var $sfb_1_lcssa63;
+    var $64 = $sfb_1_lcssa63 + 1152 | 0;
+    var $scevgep = $cod_info + ($64 << 2) | 0;
+    var $scevgep61 = $scevgep;
+    var $65 = $sfb_1_lcssa63 << 2;
+    var $66 = 156 - $65 | 0;
+    _memset($scevgep61, 0, $66);
+    label = 17;
+    break;
+   case 17:
+    return;
+  }
+}
+_set_scalefacs["X"] = 1;
+function _tri_calc_sfb_noise_x34($xr, $xr34, $l3_xmin, $bw, $sf, $did_it) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = $sf & 255;
+    var $2 = $did_it + ($1 << 3) | 0;
+    var $3 = HEAP32[$2 >> 2];
+    var $4 = ($3 | 0) == 0;
+    if ($4) {
+      label = 3;
+      break;
+    } else {
+      label = 4;
+      break;
+    }
+   case 3:
+    HEAP32[$2 >> 2] = 1;
+    var $6 = _calc_sfb_noise_x34($xr, $xr34, $bw, $sf);
+    var $7 = $did_it + ($1 << 3) + 4 | 0;
+    HEAPF32[$7 >> 2] = $6;
+    label = 4;
+    break;
+   case 4:
+    var $9 = $did_it + ($1 << 3) + 4 | 0;
+    var $10 = HEAPF32[$9 >> 2];
+    var $11 = $10 > $l3_xmin;
+    if ($11) {
+      var $_0 = 1;
+      label = 14;
+      break;
+    } else {
+      label = 5;
+      break;
+    }
+   case 5:
+    var $cond = $sf << 24 >> 24 == -1;
+    if ($cond) {
+      label = 10;
+      break;
+    } else {
+      label = 6;
+      break;
+    }
+   case 6:
+    var $14 = $sf + 1 & 255;
+    var $15 = $14 & 255;
+    var $16 = $did_it + ($15 << 3) | 0;
+    var $17 = HEAP32[$16 >> 2];
+    var $18 = ($17 | 0) == 0;
+    if ($18) {
+      label = 7;
+      break;
+    } else {
+      label = 8;
+      break;
+    }
+   case 7:
+    HEAP32[$16 >> 2] = 1;
+    var $20 = _calc_sfb_noise_x34($xr, $xr34, $bw, $14);
+    var $21 = $did_it + ($15 << 3) + 4 | 0;
+    HEAPF32[$21 >> 2] = $20;
+    label = 8;
+    break;
+   case 8:
+    var $23 = $did_it + ($15 << 3) + 4 | 0;
+    var $24 = HEAPF32[$23 >> 2];
+    var $25 = $24 > $l3_xmin;
+    if ($25) {
+      var $_0 = 1;
+      label = 14;
+      break;
+    } else {
+      label = 9;
+      break;
+    }
+   case 9:
+    var $27 = $sf << 24 >> 24 == 0;
+    if ($27) {
+      label = 13;
+      break;
+    } else {
+      label = 10;
+      break;
+    }
+   case 10:
+    var $29 = $sf - 1 & 255;
+    var $30 = $29 & 255;
+    var $31 = $did_it + ($30 << 3) | 0;
+    var $32 = HEAP32[$31 >> 2];
+    var $33 = ($32 | 0) == 0;
+    if ($33) {
+      label = 11;
+      break;
+    } else {
+      label = 12;
+      break;
+    }
+   case 11:
+    HEAP32[$31 >> 2] = 1;
+    var $35 = _calc_sfb_noise_x34($xr, $xr34, $bw, $29);
+    var $36 = $did_it + ($30 << 3) + 4 | 0;
+    HEAPF32[$36 >> 2] = $35;
+    label = 12;
+    break;
+   case 12:
+    var $38 = $did_it + ($30 << 3) + 4 | 0;
+    var $39 = HEAPF32[$38 >> 2];
+    var $40 = $39 > $l3_xmin;
+    if ($40) {
+      var $_0 = 1;
+      label = 14;
+      break;
+    } else {
+      label = 13;
+      break;
+    }
+   case 13:
+    var $_0 = 0;
+    label = 14;
+    break;
+   case 14:
+    var $_0;
+    return $_0;
+  }
+}
+_tri_calc_sfb_noise_x34["X"] = 1;
+function _addVbr($v, $bitrate) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = $v + 24 | 0;
+    var $2 = HEAP32[$1 >> 2];
+    var $3 = $2 + 1 | 0;
+    HEAP32[$1 >> 2] = $3;
+    var $4 = $v | 0;
+    var $5 = HEAP32[$4 >> 2];
+    var $6 = $5 + $bitrate | 0;
+    HEAP32[$4 >> 2] = $6;
+    var $7 = $v + 4 | 0;
+    var $8 = HEAP32[$7 >> 2];
+    var $9 = $8 + 1 | 0;
+    HEAP32[$7 >> 2] = $9;
+    var $10 = $v + 8 | 0;
+    var $11 = HEAP32[$10 >> 2];
+    var $12 = ($9 | 0) < ($11 | 0);
+    if ($12) {
+      label = 10;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 3:
+    var $14 = $v + 12 | 0;
+    var $15 = HEAP32[$14 >> 2];
+    var $16 = $v + 16 | 0;
+    var $17 = HEAP32[$16 >> 2];
+    var $18 = ($15 | 0) < ($17 | 0);
+    if ($18) {
+      label = 4;
+      break;
+    } else {
+      label = 5;
+      break;
+    }
+   case 4:
+    var $20 = HEAP32[$4 >> 2];
+    var $21 = $v + 20 | 0;
+    var $22 = HEAP32[$21 >> 2];
+    var $23 = $22 + ($15 << 2) | 0;
+    HEAP32[$23 >> 2] = $20;
+    var $24 = HEAP32[$14 >> 2];
+    var $25 = $24 + 1 | 0;
+    HEAP32[$14 >> 2] = $25;
+    HEAP32[$7 >> 2] = 0;
+    label = 5;
+    break;
+   case 5:
+    var $27 = HEAP32[$14 >> 2];
+    var $28 = HEAP32[$16 >> 2];
+    var $29 = ($27 | 0) == ($28 | 0);
+    if ($29) {
+      label = 6;
+      break;
+    } else {
+      label = 10;
+      break;
+    }
+   case 6:
+    var $30 = HEAP32[$16 >> 2];
+    var $31 = ($30 | 0) > 1;
+    if ($31) {
+      label = 7;
+      break;
+    } else {
+      label = 9;
+      break;
+    }
+   case 7:
+    var $32 = $v + 20 | 0;
+    var $i_023 = 1;
+    label = 8;
+    break;
+   case 8:
+    var $i_023;
+    var $34 = HEAP32[$32 >> 2];
+    var $35 = $34 + ($i_023 << 2) | 0;
+    var $36 = HEAP32[$35 >> 2];
+    var $37 = ($i_023 | 0) / 2 & -1;
+    var $38 = $34 + ($37 << 2) | 0;
+    HEAP32[$38 >> 2] = $36;
+    var $39 = $i_023 + 2 | 0;
+    var $40 = HEAP32[$16 >> 2];
+    var $41 = ($39 | 0) < ($40 | 0);
+    if ($41) {
+      var $i_023 = $39;
+      label = 8;
+      break;
+    } else {
+      label = 9;
+      break;
+    }
+   case 9:
+    var $42 = HEAP32[$10 >> 2];
+    var $43 = $42 << 1;
+    HEAP32[$10 >> 2] = $43;
+    var $44 = HEAP32[$14 >> 2];
+    var $45 = ($44 | 0) / 2 & -1;
+    HEAP32[$14 >> 2] = $45;
+    label = 10;
+    break;
+   case 10:
+    return;
+  }
+}
+_addVbr["X"] = 1;
+function _IsVbrTag($buf) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = HEAP8[$buf];
+    var $2 = $1 << 24 >> 24 == 88;
+    if ($2) {
+      label = 3;
+      break;
+    } else {
+      var $17 = 0;
+      var $16 = $1;
+      label = 7;
+      break;
+    }
+   case 3:
+    var $4 = $buf + 1 | 0;
+    var $5 = HEAP8[$4];
+    var $6 = $5 << 24 >> 24 == 105;
+    if ($6) {
+      label = 4;
+      break;
+    } else {
+      var $_ph = 0;
+      label = 6;
+      break;
+    }
+   case 4:
+    var $8 = $buf + 2 | 0;
+    var $9 = HEAP8[$8];
+    var $10 = $9 << 24 >> 24 == 110;
+    if ($10) {
+      label = 5;
+      break;
+    } else {
+      var $_ph = 0;
+      label = 6;
+      break;
+    }
+   case 5:
+    var $12 = $buf + 3 | 0;
+    var $13 = HEAP8[$12];
+    var $14 = $13 << 24 >> 24 == 103;
+    var $_ph = $14;
+    label = 6;
+    break;
+   case 6:
+    var $_ph;
+    var $_pr = HEAP8[$buf];
+    var $17 = $_ph;
+    var $16 = $_pr;
+    label = 7;
+    break;
+   case 7:
+    var $16;
+    var $17;
+    var $18 = $16 << 24 >> 24 == 73;
+    if ($18) {
+      label = 8;
+      break;
+    } else {
+      var $32 = 0;
+      label = 11;
+      break;
+    }
+   case 8:
+    var $20 = $buf + 1 | 0;
+    var $21 = HEAP8[$20];
+    var $22 = $21 << 24 >> 24 == 110;
+    if ($22) {
+      label = 9;
+      break;
+    } else {
+      var $32 = 0;
+      label = 11;
+      break;
+    }
+   case 9:
+    var $24 = $buf + 2 | 0;
+    var $25 = HEAP8[$24];
+    var $26 = $25 << 24 >> 24 == 102;
+    if ($26) {
+      label = 10;
+      break;
+    } else {
+      var $32 = 0;
+      label = 11;
+      break;
+    }
+   case 10:
+    var $28 = $buf + 3 | 0;
+    var $29 = HEAP8[$28];
+    var $30 = $29 << 24 >> 24 == 111;
+    var $32 = $30;
+    label = 11;
+    break;
+   case 11:
+    var $32;
+    var $_ = $17 | $32;
+    var $33 = $_ & 1;
+    return $33;
+  }
+}
+function _ExtractI4($buf) {
+  return ((HEAPU8[$buf] << 8 | HEAPU8[$buf + 1 | 0]) << 8 | HEAPU8[$buf + 2 | 0]) << 8 | HEAPU8[$buf + 3 | 0];
+}
+function _CRC_update_lookup($value, $crc) {
+  return (HEAP32[5347564 + ((($crc ^ $value) & 255) << 2) >> 2] ^ ($crc & 65535) >>> 8) & 65535;
+}
+function _calc_sfb_noise_x34($xr, $xr34, $bw, $sf) {
+  var label = 0;
+  var __stackBase__ = STACKTOP;
+  STACKTOP = STACKTOP + 48 | 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $x = __stackBase__;
+    var $l3 = __stackBase__ + 32;
+    var $1 = $sf & 255;
+    var $2 = $1 + 116 | 0;
+    var $3 = 5289936 + ($2 << 2) | 0;
+    var $4 = HEAPF32[$3 >> 2];
+    var $5 = 5326164 + ($1 << 2) | 0;
+    var $6 = HEAPF32[$5 >> 2];
+    var $7 = $bw >>> 2;
+    var $8 = $bw & 3;
+    var $9 = ($7 | 0) == 0;
+    if ($9) {
+      var $_036_lcssa = $xr34;
+      var $xfsf_0_lcssa = 0;
+      var $_0_lcssa = $xr;
+      label = 6;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 3:
+    var $10 = $x | 0;
+    var $11 = $x + 8 | 0;
+    var $12 = $x + 16 | 0;
+    var $13 = $x + 24 | 0;
+    var $14 = $l3 | 0;
+    var $15 = $l3 + 4 | 0;
+    var $16 = $l3 + 8 | 0;
+    var $17 = $l3 + 12 | 0;
+    var $18 = $bw & -4;
+    var $scevgep = $xr34 + ($18 << 2) | 0;
+    var $_03637 = $xr34;
+    var $xfsf_038 = 0;
+    var $i_039 = $7;
+    var $_040 = $xr;
+    label = 4;
+    break;
+   case 4:
+    var $_040;
+    var $i_039;
+    var $xfsf_038;
+    var $_03637;
+    var $20 = $i_039 - 1 | 0;
+    var $21 = HEAPF32[$_03637 >> 2];
+    var $22 = $6 * $21;
+    var $23 = $22;
+    HEAPF64[tempDoublePtr >> 3] = $23, HEAP32[$10 >> 2] = HEAP32[tempDoublePtr >> 2], HEAP32[$10 + 4 >> 2] = HEAP32[tempDoublePtr + 4 >> 2];
+    var $24 = $_03637 + 4 | 0;
+    var $25 = HEAPF32[$24 >> 2];
+    var $26 = $6 * $25;
+    var $27 = $26;
+    HEAPF64[tempDoublePtr >> 3] = $27, HEAP32[$11 >> 2] = HEAP32[tempDoublePtr >> 2], HEAP32[$11 + 4 >> 2] = HEAP32[tempDoublePtr + 4 >> 2];
+    var $28 = $_03637 + 8 | 0;
+    var $29 = HEAPF32[$28 >> 2];
+    var $30 = $6 * $29;
+    var $31 = $30;
+    HEAPF64[tempDoublePtr >> 3] = $31, HEAP32[$12 >> 2] = HEAP32[tempDoublePtr >> 2], HEAP32[$12 + 4 >> 2] = HEAP32[tempDoublePtr + 4 >> 2];
+    var $32 = $_03637 + 12 | 0;
+    var $33 = HEAPF32[$32 >> 2];
+    var $34 = $6 * $33;
+    var $35 = $34;
+    HEAPF64[tempDoublePtr >> 3] = $35, HEAP32[$13 >> 2] = HEAP32[tempDoublePtr >> 2], HEAP32[$13 + 4 >> 2] = HEAP32[tempDoublePtr + 4 >> 2];
+    _k_34_4($10, $14);
+    var $36 = HEAPF32[$_040 >> 2];
+    var $37 = Math.abs($36);
+    var $38 = HEAP32[$14 >> 2];
+    var $39 = 5257104 + ($38 << 2) | 0;
+    var $40 = HEAPF32[$39 >> 2];
+    var $41 = $4 * $40;
+    var $42 = $37 - $41;
+    var $43 = $42;
+    HEAPF64[tempDoublePtr >> 3] = $43, HEAP32[$10 >> 2] = HEAP32[tempDoublePtr >> 2], HEAP32[$10 + 4 >> 2] = HEAP32[tempDoublePtr + 4 >> 2];
+    var $44 = $_040 + 4 | 0;
+    var $45 = HEAPF32[$44 >> 2];
+    var $46 = Math.abs($45);
+    var $47 = HEAP32[$15 >> 2];
+    var $48 = 5257104 + ($47 << 2) | 0;
+    var $49 = HEAPF32[$48 >> 2];
+    var $50 = $4 * $49;
+    var $51 = $46 - $50;
+    var $52 = $51;
+    HEAPF64[tempDoublePtr >> 3] = $52, HEAP32[$11 >> 2] = HEAP32[tempDoublePtr >> 2], HEAP32[$11 + 4 >> 2] = HEAP32[tempDoublePtr + 4 >> 2];
+    var $53 = $_040 + 8 | 0;
+    var $54 = HEAPF32[$53 >> 2];
+    var $55 = Math.abs($54);
+    var $56 = HEAP32[$16 >> 2];
+    var $57 = 5257104 + ($56 << 2) | 0;
+    var $58 = HEAPF32[$57 >> 2];
+    var $59 = $4 * $58;
+    var $60 = $55 - $59;
+    var $61 = $60;
+    HEAPF64[tempDoublePtr >> 3] = $61, HEAP32[$12 >> 2] = HEAP32[tempDoublePtr >> 2], HEAP32[$12 + 4 >> 2] = HEAP32[tempDoublePtr + 4 >> 2];
+    var $62 = $_040 + 12 | 0;
+    var $63 = HEAPF32[$62 >> 2];
+    var $64 = Math.abs($63);
+    var $65 = HEAP32[$17 >> 2];
+    var $66 = 5257104 + ($65 << 2) | 0;
+    var $67 = HEAPF32[$66 >> 2];
+    var $68 = $4 * $67;
+    var $69 = $64 - $68;
+    var $70 = $69;
+    HEAPF64[tempDoublePtr >> 3] = $70, HEAP32[$13 >> 2] = HEAP32[tempDoublePtr >> 2], HEAP32[$13 + 4 >> 2] = HEAP32[tempDoublePtr + 4 >> 2];
+    var $71 = (HEAP32[tempDoublePtr >> 2] = HEAP32[$10 >> 2], HEAP32[tempDoublePtr + 4 >> 2] = HEAP32[$10 + 4 >> 2], HEAPF64[tempDoublePtr >> 3]);
+    var $72 = $71 * $71;
+    var $73 = (HEAP32[tempDoublePtr >> 2] = HEAP32[$11 >> 2], HEAP32[tempDoublePtr + 4 >> 2] = HEAP32[$11 + 4 >> 2], HEAPF64[tempDoublePtr >> 3]);
+    var $74 = $73 * $73;
+    var $75 = $72 + $74;
+    var $76 = (HEAP32[tempDoublePtr >> 2] = HEAP32[$12 >> 2], HEAP32[tempDoublePtr + 4 >> 2] = HEAP32[$12 + 4 >> 2], HEAPF64[tempDoublePtr >> 3]);
+    var $77 = $76 * $76;
+    var $78 = $70 * $70;
+    var $79 = $77 + $78;
+    var $80 = $75 + $79;
+    var $81 = $xfsf_038;
+    var $82 = $81 + $80;
+    var $83 = $82;
+    var $84 = $_040 + 16 | 0;
+    var $85 = $_03637 + 16 | 0;
+    var $86 = ($20 | 0) == 0;
+    if ($86) {
+      label = 5;
+      break;
+    } else {
+      var $_03637 = $85;
+      var $xfsf_038 = $83;
+      var $i_039 = $20;
+      var $_040 = $84;
+      label = 4;
+      break;
+    }
+   case 5:
+    var $scevgep45 = $xr + ($18 << 2) | 0;
+    var $_036_lcssa = $scevgep;
+    var $xfsf_0_lcssa = $83;
+    var $_0_lcssa = $scevgep45;
+    label = 6;
+    break;
+   case 6:
+    var $_0_lcssa;
+    var $xfsf_0_lcssa;
+    var $_036_lcssa;
+    var $88 = ($8 | 0) == 0;
+    if ($88) {
+      var $xfsf_1 = $xfsf_0_lcssa;
+      label = 16;
+      break;
+    } else {
+      label = 7;
+      break;
+    }
+   case 7:
+    var $90 = $x + 24 | 0;
+    var $91 = $x + 16 | 0;
+    var $92 = $x + 8 | 0;
+    var $93 = $x | 0;
+    var $94 = $x;
+    HEAP32[$94 >> 2] = 0;
+    HEAP32[$94 + 4 >> 2] = 0;
+    HEAP32[$94 + 8 >> 2] = 0;
+    HEAP32[$94 + 12 >> 2] = 0;
+    HEAP32[$94 + 16 >> 2] = 0;
+    HEAP32[$94 + 20 >> 2] = 0;
+    HEAP32[$94 + 24 >> 2] = 0;
+    HEAP32[$94 + 28 >> 2] = 0;
+    if (($8 | 0) == 3) {
+      label = 8;
+      break;
+    } else if (($8 | 0) == 2) {
+      label = 9;
+      break;
+    } else if (($8 | 0) == 1) {
+      label = 10;
+      break;
+    } else {
+      label = 11;
+      break;
+    }
+   case 8:
+    var $96 = $_036_lcssa + 8 | 0;
+    var $97 = HEAPF32[$96 >> 2];
+    var $98 = $6 * $97;
+    var $99 = $98;
+    HEAPF64[tempDoublePtr >> 3] = $99, HEAP32[$91 >> 2] = HEAP32[tempDoublePtr >> 2], HEAP32[$91 + 4 >> 2] = HEAP32[tempDoublePtr + 4 >> 2];
+    label = 9;
+    break;
+   case 9:
+    var $101 = $_036_lcssa + 4 | 0;
+    var $102 = HEAPF32[$101 >> 2];
+    var $103 = $6 * $102;
+    var $104 = $103;
+    HEAPF64[tempDoublePtr >> 3] = $104, HEAP32[$92 >> 2] = HEAP32[tempDoublePtr >> 2], HEAP32[$92 + 4 >> 2] = HEAP32[tempDoublePtr + 4 >> 2];
+    label = 10;
+    break;
+   case 10:
+    var $106 = HEAPF32[$_036_lcssa >> 2];
+    var $107 = $6 * $106;
+    var $108 = $107;
+    HEAPF64[tempDoublePtr >> 3] = $108, HEAP32[$93 >> 2] = HEAP32[tempDoublePtr >> 2], HEAP32[$93 + 4 >> 2] = HEAP32[tempDoublePtr + 4 >> 2];
+    label = 11;
+    break;
+   case 11:
+    var $110 = $l3 | 0;
+    _k_34_4($93, $110);
+    var $111 = $x;
+    HEAP32[$111 >> 2] = 0;
+    HEAP32[$111 + 4 >> 2] = 0;
+    HEAP32[$111 + 8 >> 2] = 0;
+    HEAP32[$111 + 12 >> 2] = 0;
+    HEAP32[$111 + 16 >> 2] = 0;
+    HEAP32[$111 + 20 >> 2] = 0;
+    HEAP32[$111 + 24 >> 2] = 0;
+    HEAP32[$111 + 28 >> 2] = 0;
+    if (($8 | 0) == 3) {
+      label = 12;
+      break;
+    } else if (($8 | 0) == 2) {
+      label = 13;
+      break;
+    } else if (($8 | 0) == 1) {
+      label = 14;
+      break;
+    } else {
+      label = 15;
+      break;
+    }
+   case 12:
+    var $113 = $_0_lcssa + 8 | 0;
+    var $114 = HEAPF32[$113 >> 2];
+    var $115 = Math.abs($114);
+    var $116 = $l3 + 8 | 0;
+    var $117 = HEAP32[$116 >> 2];
+    var $118 = 5257104 + ($117 << 2) | 0;
+    var $119 = HEAPF32[$118 >> 2];
+    var $120 = $4 * $119;
+    var $121 = $115 - $120;
+    var $122 = $121;
+    HEAPF64[tempDoublePtr >> 3] = $122, HEAP32[$91 >> 2] = HEAP32[tempDoublePtr >> 2], HEAP32[$91 + 4 >> 2] = HEAP32[tempDoublePtr + 4 >> 2];
+    label = 13;
+    break;
+   case 13:
+    var $124 = $_0_lcssa + 4 | 0;
+    var $125 = HEAPF32[$124 >> 2];
+    var $126 = Math.abs($125);
+    var $127 = $l3 + 4 | 0;
+    var $128 = HEAP32[$127 >> 2];
+    var $129 = 5257104 + ($128 << 2) | 0;
+    var $130 = HEAPF32[$129 >> 2];
+    var $131 = $4 * $130;
+    var $132 = $126 - $131;
+    var $133 = $132;
+    HEAPF64[tempDoublePtr >> 3] = $133, HEAP32[$92 >> 2] = HEAP32[tempDoublePtr >> 2], HEAP32[$92 + 4 >> 2] = HEAP32[tempDoublePtr + 4 >> 2];
+    label = 14;
+    break;
+   case 14:
+    var $135 = HEAPF32[$_0_lcssa >> 2];
+    var $136 = Math.abs($135);
+    var $137 = HEAP32[$110 >> 2];
+    var $138 = 5257104 + ($137 << 2) | 0;
+    var $139 = HEAPF32[$138 >> 2];
+    var $140 = $4 * $139;
+    var $141 = $136 - $140;
+    var $142 = $141;
+    HEAPF64[tempDoublePtr >> 3] = $142, HEAP32[$93 >> 2] = HEAP32[tempDoublePtr >> 2], HEAP32[$93 + 4 >> 2] = HEAP32[tempDoublePtr + 4 >> 2];
+    label = 15;
+    break;
+   case 15:
+    var $144 = (HEAP32[tempDoublePtr >> 2] = HEAP32[$93 >> 2], HEAP32[tempDoublePtr + 4 >> 2] = HEAP32[$93 + 4 >> 2], HEAPF64[tempDoublePtr >> 3]);
+    var $145 = $144 * $144;
+    var $146 = (HEAP32[tempDoublePtr >> 2] = HEAP32[$92 >> 2], HEAP32[tempDoublePtr + 4 >> 2] = HEAP32[$92 + 4 >> 2], HEAPF64[tempDoublePtr >> 3]);
+    var $147 = $146 * $146;
+    var $148 = $145 + $147;
+    var $149 = (HEAP32[tempDoublePtr >> 2] = HEAP32[$91 >> 2], HEAP32[tempDoublePtr + 4 >> 2] = HEAP32[$91 + 4 >> 2], HEAPF64[tempDoublePtr >> 3]);
+    var $150 = $149 * $149;
+    var $151 = (HEAP32[tempDoublePtr >> 2] = HEAP32[$90 >> 2], HEAP32[tempDoublePtr + 4 >> 2] = HEAP32[$90 + 4 >> 2], HEAPF64[tempDoublePtr >> 3]);
+    var $152 = $151 * $151;
+    var $153 = $150 + $152;
+    var $154 = $148 + $153;
+    var $155 = $xfsf_0_lcssa;
+    var $156 = $155 + $154;
+    var $157 = $156;
+    var $xfsf_1 = $157;
+    label = 16;
+    break;
+   case 16:
+    var $xfsf_1;
+    STACKTOP = __stackBase__;
+    return $xfsf_1;
+  }
+}
+_calc_sfb_noise_x34["X"] = 1;
+function _calc_scalefac($l3_xmin, $bw) {
+  return (_log10($l3_xmin / ($bw | 0)) * 5.799142360687256 - .5 & -1) + 210 | 0;
+}
+function _AddVbrFrame($gfc) {
+  _addVbr($gfc + 85756 | 0, HEAP32[5348684 + (HEAP32[$gfc + 16 >> 2] << 6) + (HEAP32[$gfc + 84740 >> 2] << 2) >> 2]);
+  return;
+}
+function _GetVbrTag($pTagData, $buf) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = $pTagData + 8 | 0;
+    HEAP32[$1 >> 2] = 0;
+    var $2 = $buf + 1 | 0;
+    var $3 = HEAP8[$2];
+    var $4 = $3 & 255;
+    var $5 = $4 & 6;
+    var $6 = ($5 | 0) == 2;
+    if ($6) {
+      label = 3;
+      break;
+    } else {
+      var $_0 = 0;
+      label = 25;
+      break;
+    }
+   case 3:
+    var $8 = $4 >>> 3;
+    var $9 = $8 & 1;
+    var $10 = $buf + 2 | 0;
+    var $11 = HEAP8[$10];
+    var $12 = $11 & 255;
+    var $13 = $12 >>> 2;
+    var $14 = $13 & 3;
+    var $15 = $buf + 3 | 0;
+    var $16 = HEAP8[$15];
+    var $17 = $12 >>> 4;
+    var $18 = 5348684 + ($9 << 6) + ($17 << 2) | 0;
+    var $19 = HEAP32[$18 >> 2];
+    var $_mask = $4 & 240;
+    var $20 = ($_mask | 0) == 224;
+    if ($20) {
+      label = 4;
+      break;
+    } else {
+      label = 5;
+      break;
+    }
+   case 4:
+    var $22 = 5256828 + ($14 << 2) | 0;
+    var $23 = HEAP32[$22 >> 2];
+    var $24 = $pTagData + 4 | 0;
+    HEAP32[$24 >> 2] = $23;
+    label = 6;
+    break;
+   case 5:
+    var $26 = 5256796 + ($9 << 4) + ($14 << 2) | 0;
+    var $27 = HEAP32[$26 >> 2];
+    var $28 = $pTagData + 4 | 0;
+    HEAP32[$28 >> 2] = $27;
+    label = 6;
+    break;
+   case 6:
+    var $30 = ($9 | 0) == 0;
+    var $_mask61 = $16 & -64;
+    var $31 = $_mask61 << 24 >> 24 != -64;
+    if ($30) {
+      label = 10;
+      break;
+    } else {
+      label = 7;
+      break;
+    }
+   case 7:
+    if ($31) {
+      label = 8;
+      break;
+    } else {
+      label = 9;
+      break;
+    }
+   case 8:
+    var $34 = $buf + 36 | 0;
+    var $_060 = $34;
+    label = 13;
+    break;
+   case 9:
+    var $36 = $buf + 21 | 0;
+    var $_060 = $36;
+    label = 13;
+    break;
+   case 10:
+    if ($31) {
+      label = 11;
+      break;
+    } else {
+      label = 12;
+      break;
+    }
+   case 11:
+    var $39 = $buf + 21 | 0;
+    var $_060 = $39;
+    label = 13;
+    break;
+   case 12:
+    var $41 = $buf + 13 | 0;
+    var $_060 = $41;
+    label = 13;
+    break;
+   case 13:
+    var $_060;
+    var $43 = _IsVbrTag($_060);
+    var $44 = ($43 | 0) == 0;
+    if ($44) {
+      var $_0 = 0;
+      label = 25;
+      break;
+    } else {
+      label = 14;
+      break;
+    }
+   case 14:
+    var $46 = $_060 + 4 | 0;
+    var $47 = $pTagData | 0;
+    HEAP32[$47 >> 2] = $9;
+    var $48 = _ExtractI4($46);
+    HEAP32[$1 >> 2] = $48;
+    var $49 = $_060 + 8 | 0;
+    var $50 = $48 & 1;
+    var $51 = ($50 | 0) == 0;
+    if ($51) {
+      var $_1 = $49;
+      label = 16;
+      break;
+    } else {
+      label = 15;
+      break;
+    }
+   case 15:
+    var $53 = _ExtractI4($49);
+    var $54 = $pTagData + 12 | 0;
+    HEAP32[$54 >> 2] = $53;
+    var $55 = $_060 + 12 | 0;
+    var $_1 = $55;
+    label = 16;
+    break;
+   case 16:
+    var $_1;
+    var $57 = $48 & 2;
+    var $58 = ($57 | 0) == 0;
+    if ($58) {
+      var $_2 = $_1;
+      label = 18;
+      break;
+    } else {
+      label = 17;
+      break;
+    }
+   case 17:
+    var $60 = _ExtractI4($_1);
+    var $61 = $pTagData + 16 | 0;
+    HEAP32[$61 >> 2] = $60;
+    var $62 = $_1 + 4 | 0;
+    var $_2 = $62;
+    label = 18;
+    break;
+   case 18:
+    var $_2;
+    var $64 = $48 & 4;
+    var $65 = ($64 | 0) == 0;
+    if ($65) {
+      var $_3 = $_2;
+      label = 22;
+      break;
+    } else {
+      label = 19;
+      break;
+    }
+   case 19:
+    var $67 = $pTagData + 24 | 0;
+    var $68 = ($67 | 0) == 0;
+    if ($68) {
+      label = 21;
+      break;
+    } else {
+      var $i_062 = 0;
+      label = 20;
+      break;
+    }
+   case 20:
+    var $i_062;
+    var $69 = $_2 + $i_062 | 0;
+    var $70 = HEAP8[$69];
+    var $71 = $i_062 + ($pTagData + 24) | 0;
+    HEAP8[$71] = $70;
+    var $72 = $i_062 + 1 | 0;
+    var $exitcond = ($72 | 0) == 100;
+    if ($exitcond) {
+      label = 21;
+      break;
+    } else {
+      var $i_062 = $72;
+      label = 20;
+      break;
+    }
+   case 21:
+    var $73 = $_2 + 100 | 0;
+    var $_3 = $73;
+    label = 22;
+    break;
+   case 22:
+    var $_3;
+    var $75 = $pTagData + 20 | 0;
+    HEAP32[$75 >> 2] = -1;
+    var $76 = $48 & 8;
+    var $77 = ($76 | 0) == 0;
+    if ($77) {
+      var $_4 = $_3;
+      label = 24;
+      break;
+    } else {
+      label = 23;
+      break;
+    }
+   case 23:
+    var $79 = _ExtractI4($_3);
+    HEAP32[$75 >> 2] = $79;
+    var $80 = $_3 + 4 | 0;
+    var $_4 = $80;
+    label = 24;
+    break;
+   case 24:
+    var $_4;
+    var $82 = -$9 | 0;
+    var $83 = $82 & 72e3;
+    var $84 = $83 + 72e3 | 0;
+    var $85 = $19 * $84 & -1;
+    var $86 = $pTagData + 4 | 0;
+    var $87 = HEAP32[$86 >> 2];
+    var $88 = ($85 | 0) / ($87 | 0) & -1;
+    var $89 = $pTagData + 124 | 0;
+    HEAP32[$89 >> 2] = $88;
+    var $90 = $_4 + 21 | 0;
+    var $91 = HEAP8[$90];
+    var $92 = $91 & 255;
+    var $93 = $92 << 4;
+    var $94 = $_4 + 22 | 0;
+    var $95 = HEAP8[$94];
+    var $96 = $95 & 255;
+    var $97 = $96 >>> 4;
+    var $98 = $97 | $93;
+    var $99 = $96 << 8;
+    var $100 = $99 & 3840;
+    var $101 = $_4 + 23 | 0;
+    var $102 = HEAP8[$101];
+    var $103 = $102 & 255;
+    var $104 = $100 | $103;
+    var $105 = $98 >>> 0 > 3e3;
+    var $_ = $105 ? -1 : $98;
+    var $106 = $104 >>> 0 > 3e3;
+    var $enc_padding_0 = $106 ? -1 : $104;
+    var $107 = $pTagData + 128 | 0;
+    HEAP32[$107 >> 2] = $_;
+    var $108 = $pTagData + 132 | 0;
+    HEAP32[$108 >> 2] = $enc_padding_0;
+    var $_0 = 1;
+    label = 25;
+    break;
+   case 25:
+    var $_0;
+    return $_0;
+  }
+}
+_GetVbrTag["X"] = 1;
+function _InitVbrTag($gfp) {
+  var label = 0;
+  var __stackBase__ = STACKTOP;
+  STACKTOP = STACKTOP + 2880 | 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $buffer = __stackBase__;
+    var $1 = $gfp + 288 | 0;
+    var $2 = HEAP32[$1 >> 2];
+    var $3 = $2 + 16 | 0;
+    var $4 = HEAP32[$3 >> 2];
+    var $5 = ($4 | 0) == 1;
+    if ($5) {
+      var $kbps_header_0 = 128;
+      label = 4;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 3:
+    var $7 = $2 + 64 | 0;
+    var $8 = HEAP32[$7 >> 2];
+    var $9 = ($8 | 0) < 16e3;
+    var $_ = $9 ? 32 : 64;
+    var $kbps_header_0 = $_;
+    label = 4;
+    break;
+   case 4:
+    var $kbps_header_0;
+    var $11 = $2 + 104 | 0;
+    var $12 = HEAP32[$11 >> 2];
+    var $13 = ($12 | 0) == 0;
+    if ($13) {
+      label = 5;
+      break;
+    } else {
+      var $kbps_header_1 = $kbps_header_0;
+      label = 6;
+      break;
+    }
+   case 5:
+    var $15 = $2 + 120 | 0;
+    var $16 = HEAP32[$15 >> 2];
+    var $kbps_header_1 = $16;
+    label = 6;
+    break;
+   case 6:
+    var $kbps_header_1;
+    var $18 = HEAP32[$3 >> 2];
+    var $19 = $18 * 72e3 & -1;
+    var $20 = $19 + 72e3 | 0;
+    var $21 = $20 * $kbps_header_1 & -1;
+    var $22 = $2 + 64 | 0;
+    var $23 = HEAP32[$22 >> 2];
+    var $24 = ($21 | 0) / ($23 | 0) & -1;
+    var $25 = $2 + 24 | 0;
+    var $26 = HEAP32[$25 >> 2];
+    var $27 = $26 + 156 | 0;
+    var $28 = $2 + 85788 | 0;
+    HEAP32[$28 >> 2] = $24;
+    var $29 = ($24 | 0) < ($27 | 0);
+    var $30 = ($24 | 0) > 2880;
+    var $or_cond = $29 | $30;
+    if ($or_cond) {
+      label = 7;
+      break;
+    } else {
+      label = 8;
+      break;
+    }
+   case 7:
+    var $32 = $2 + 156 | 0;
+    HEAP32[$32 >> 2] = 0;
+    var $_0 = 0;
+    label = 14;
+    break;
+   case 8:
+    var $34 = $2 + 85780 | 0;
+    HEAP32[$34 >> 2] = 0;
+    var $35 = $2 + 85784 | 0;
+    HEAP32[$35 >> 2] = 0;
+    var $36 = $2 + 85756 | 0;
+    HEAP32[$36 >> 2] = 0;
+    var $37 = $2 + 85760 | 0;
+    HEAP32[$37 >> 2] = 0;
+    var $38 = $2 + 85764 | 0;
+    HEAP32[$38 >> 2] = 1;
+    var $39 = $2 + 85768 | 0;
+    HEAP32[$39 >> 2] = 0;
+    var $40 = $2 + 85776 | 0;
+    var $41 = HEAP32[$40 >> 2];
+    var $42 = ($41 | 0) == 0;
+    if ($42) {
+      label = 9;
+      break;
+    } else {
+      label = 12;
+      break;
+    }
+   case 9:
+    var $44 = _malloc(1600);
+    var $45 = $44;
+    HEAP32[$40 >> 2] = $45;
+    var $46 = ($44 | 0) == 0;
+    var $47 = $2 + 85772 | 0;
+    if ($46) {
+      label = 11;
+      break;
+    } else {
+      label = 10;
+      break;
+    }
+   case 10:
+    HEAP32[$47 >> 2] = 400;
+    label = 12;
+    break;
+   case 11:
+    HEAP32[$47 >> 2] = 0;
+    _lame_errorf($2, 5384688, (tempInt = STACKTOP, STACKTOP = STACKTOP + 1 | 0, STACKTOP = STACKTOP + 3 >> 2 << 2, HEAP32[tempInt >> 2] = 0, tempInt));
+    var $50 = $2 + 156 | 0;
+    HEAP32[$50 >> 2] = 0;
+    var $_0 = -1;
+    label = 14;
+    break;
+   case 12:
+    var $52 = $buffer | 0;
+    _memset($52, 0, 2880);
+    _setLameTagFrameHeader($2, $52);
+    var $53 = HEAP32[$28 >> 2];
+    var $54 = ($53 | 0) == 0;
+    if ($54) {
+      var $_0 = 0;
+      label = 14;
+      break;
+    } else {
+      var $i_029 = 0;
+      label = 13;
+      break;
+    }
+   case 13:
+    var $i_029;
+    var $55 = $buffer + $i_029 | 0;
+    var $56 = HEAP8[$55];
+    _add_dummy_byte($2, $56, 1);
+    var $57 = $i_029 + 1 | 0;
+    var $exitcond = ($57 | 0) == ($53 | 0);
+    if ($exitcond) {
+      var $_0 = 0;
+      label = 14;
+      break;
+    } else {
+      var $i_029 = $57;
+      label = 13;
+      break;
+    }
+   case 14:
+    var $_0;
+    STACKTOP = __stackBase__;
+    return $_0;
+  }
+}
+_InitVbrTag["X"] = 1;
+function _setLameTagFrameHeader($gfc, $buffer) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    HEAP8[$buffer] = -1;
+    var $1 = $buffer + 1 | 0;
+    var $2 = HEAP8[$1];
+    var $3 = $2 << 3;
+    var $4 = $3 | 7;
+    HEAP8[$1] = $4;
+    var $5 = $4 << 1;
+    var $6 = $gfc + 64 | 0;
+    var $7 = HEAP32[$6 >> 2];
+    var $not_ = ($7 | 0) > 15999;
+    var $8 = $not_ & 1;
+    var $9 = $5 | $8;
+    HEAP8[$1] = $9;
+    var $10 = $9 & 255;
+    var $11 = $10 << 1;
+    var $12 = $gfc + 16 | 0;
+    var $13 = HEAP32[$12 >> 2];
+    var $14 = $13 & 1;
+    var $_masked = $11 & 62;
+    var $15 = $_masked | $14;
+    var $16 = $15 << 2;
+    var $17 = $16 | 1;
+    var $18 = $17 & 255;
+    HEAP8[$1] = $18;
+    var $19 = $17 << 1;
+    var $20 = $gfc + 160 | 0;
+    var $21 = HEAP32[$20 >> 2];
+    var $22 = ($21 | 0) == 0;
+    var $23 = $22 & 1;
+    var $24 = $19 | $23;
+    var $25 = $24 & 255;
+    HEAP8[$1] = $25;
+    var $26 = $buffer + 2 | 0;
+    var $27 = HEAP8[$26];
+    var $28 = $27 & 255;
+    var $29 = $28 << 4;
+    var $30 = $gfc + 84740 | 0;
+    var $31 = HEAP32[$30 >> 2];
+    var $32 = $31 & 15;
+    var $33 = $29 | $32;
+    var $34 = $33 & 255;
+    HEAP8[$26] = $34;
+    var $35 = $33 << 2;
+    var $36 = $gfc + 20 | 0;
+    var $37 = HEAP32[$36 >> 2];
+    var $38 = $37 & 3;
+    var $_masked60 = $35 & 124;
+    var $39 = $_masked60 | $38;
+    var $40 = $39 << 1;
+    var $41 = $40 & 255;
+    HEAP8[$26] = $41;
+    var $42 = $39 << 2;
+    var $43 = $gfc + 172 | 0;
+    var $44 = HEAP32[$43 >> 2];
+    var $45 = $44 & 1;
+    var $46 = $42 | $45;
+    var $47 = $46 & 255;
+    HEAP8[$26] = $47;
+    var $48 = $buffer + 3 | 0;
+    var $49 = HEAP8[$48];
+    var $50 = $49 & 255;
+    var $51 = $50 << 2;
+    var $52 = $gfc + 180 | 0;
+    var $53 = HEAP32[$52 >> 2];
+    var $54 = $53 & 3;
+    var $55 = $51 | $54;
+    var $56 = $55 & 255;
+    HEAP8[$48] = $56;
+    var $57 = $55 << 2;
+    var $58 = $gfc + 84752 | 0;
+    var $59 = HEAP32[$58 >> 2];
+    var $60 = $59 & 3;
+    var $61 = $57 | $60;
+    var $62 = $61 & 255;
+    HEAP8[$48] = $62;
+    var $63 = $61 << 1;
+    var $64 = $gfc + 164 | 0;
+    var $65 = HEAP32[$64 >> 2];
+    var $66 = $65 & 1;
+    var $67 = $63 | $66;
+    var $68 = $67 & 255;
+    HEAP8[$48] = $68;
+    var $69 = $67 << 1;
+    var $70 = $gfc + 168 | 0;
+    var $71 = HEAP32[$70 >> 2];
+    var $72 = $71 & 1;
+    var $73 = $69 | $72;
+    var $74 = $73 & 255;
+    HEAP8[$48] = $74;
+    var $75 = $73 << 2;
+    var $76 = $gfc + 176 | 0;
+    var $77 = HEAP32[$76 >> 2];
+    var $78 = $77 & 3;
+    var $79 = $75 | $78;
+    var $80 = $79 & 255;
+    HEAP8[$48] = $80;
+    HEAP8[$buffer] = -1;
+    var $81 = HEAP8[$1];
+    var $82 = $81 & -15;
+    var $83 = HEAP32[$12 >> 2];
+    var $84 = ($83 | 0) == 1;
+    if ($84) {
+      var $bitrate_0 = 128;
+      label = 4;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 3:
+    var $86 = HEAP32[$6 >> 2];
+    var $87 = ($86 | 0) < 16e3;
+    var $_ = $87 ? 32 : 64;
+    var $bitrate_0 = $_;
+    label = 4;
+    break;
+   case 4:
+    var $bitrate_0;
+    var $89 = $gfc + 104 | 0;
+    var $90 = HEAP32[$89 >> 2];
+    var $91 = ($90 | 0) == 0;
+    if ($91) {
+      label = 5;
+      break;
+    } else {
+      var $bitrate_1 = $bitrate_0;
+      label = 6;
+      break;
+    }
+   case 5:
+    var $93 = $gfc + 120 | 0;
+    var $94 = HEAP32[$93 >> 2];
+    var $bitrate_1 = $94;
+    label = 6;
+    break;
+   case 6:
+    var $bitrate_1;
+    var $96 = $gfc + 152 | 0;
+    var $97 = HEAP32[$96 >> 2];
+    var $98 = ($97 | 0) == 0;
+    if ($98) {
+      label = 7;
+      break;
+    } else {
+      var $bbyte_0 = 0;
+      label = 8;
+      break;
+    }
+   case 7:
+    var $100 = HEAP32[$12 >> 2];
+    var $101 = HEAP32[$6 >> 2];
+    var $102 = _BitrateIndex($bitrate_1, $100, $101);
+    var $103 = $102 << 28;
+    var $phitmp = $103 >> 24;
+    var $bbyte_0 = $phitmp;
+    label = 8;
+    break;
+   case 8:
+    var $bbyte_0;
+    var $105 = HEAP32[$12 >> 2];
+    var $106 = ($105 | 0) == 1;
+    var $storemerge61_v = $106 ? 10 : 2;
+    var $storemerge61 = $storemerge61_v | $82;
+    HEAP8[$1] = $storemerge61;
+    var $_pn_in_in = HEAP8[$26];
+    var $_pn_in = $_pn_in_in & 13;
+    var $_pn = $_pn_in & 255;
+    var $storemerge_in = $_pn | $bbyte_0;
+    var $storemerge = $storemerge_in & 255;
+    HEAP8[$26] = $storemerge;
+    return;
+  }
+}
+_setLameTagFrameHeader["X"] = 1;
+function _UpdateMusicCRC($crc, $buffer, $size) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = ($size | 0) > 0;
+    if ($1) {
+      var $i_06 = 0;
+      label = 3;
+      break;
+    } else {
+      label = 4;
+      break;
+    }
+   case 3:
+    var $i_06;
+    var $2 = $buffer + $i_06 | 0;
+    var $3 = HEAP8[$2];
+    var $4 = $3 & 255;
+    var $5 = HEAP16[$crc >> 1];
+    var $6 = _CRC_update_lookup($4, $5);
+    HEAP16[$crc >> 1] = $6;
+    var $7 = $i_06 + 1 | 0;
+    var $exitcond = ($7 | 0) == ($size | 0);
+    if ($exitcond) {
+      label = 4;
+      break;
+    } else {
+      var $i_06 = $7;
+      label = 3;
+      break;
+    }
+   case 4:
+    return;
+  }
+}
+function _get_lame_version() {
+  return 5384648;
+}
+function _get_lame_short_version() {
+  return 5384648;
+}
+function _get_lame_very_short_version() {
+  return 5386588;
+}
+function _get_lame_tag_encoder_short_version() {
+  return 5385568;
+}
+function _get_psy_version() {
+  return 5385200;
+}
+function _get_lame_url() {
+  return 5384668;
+}
+function _get_lame_os_bitness() {
+  return 5383868;
+}
+function _CreateI4($buf, $nValue) {
+  HEAP8[$buf] = $nValue >>> 24 & 255;
+  HEAP8[$buf + 1 | 0] = $nValue >>> 16 & 255;
+  HEAP8[$buf + 2 | 0] = $nValue >>> 8 & 255;
+  HEAP8[$buf + 3 | 0] = $nValue & 255;
+  return;
+}
+function _CreateI2($buf, $nValue) {
+  HEAP8[$buf] = $nValue >>> 8 & 255;
+  HEAP8[$buf + 1 | 0] = $nValue & 255;
+  return;
+}
+function _get_lame_version_numerical($lvp) {
+  HEAP32[$lvp >> 2] = 3;
+  HEAP32[$lvp + 4 >> 2] = 99;
+  HEAP32[$lvp + 8 >> 2] = 0;
+  HEAP32[$lvp + 12 >> 2] = 0;
+  HEAP32[$lvp + 16 >> 2] = 1;
+  HEAP32[$lvp + 20 >> 2] = 0;
+  HEAP32[$lvp + 24 >> 2] = 0;
+  HEAP32[$lvp + 28 >> 2] = 0;
+  HEAP32[$lvp + 32 >> 2] = 5384244;
+  return;
+}
+function _lame_get_lametag_frame($gfp, $buffer, $size) {
+  var label = 0;
+  var __stackBase__ = STACKTOP;
+  STACKTOP = STACKTOP + 100 | 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $btToc = __stackBase__;
+    var $1 = ($gfp | 0) == 0;
+    if ($1) {
+      var $_0 = 0;
+      label = 21;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 3:
+    var $3 = $gfp + 288 | 0;
+    var $4 = HEAP32[$3 >> 2];
+    var $5 = ($4 | 0) == 0;
+    if ($5) {
+      var $_0 = 0;
+      label = 21;
+      break;
+    } else {
+      label = 4;
+      break;
+    }
+   case 4:
+    var $7 = $4 | 0;
+    var $8 = HEAP32[$7 >> 2];
+    var $9 = ($8 | 0) == -487877;
+    if ($9) {
+      label = 5;
+      break;
+    } else {
+      var $_0 = 0;
+      label = 21;
+      break;
+    }
+   case 5:
+    var $11 = $4 + 156 | 0;
+    var $12 = HEAP32[$11 >> 2];
+    var $13 = ($12 | 0) == 0;
+    if ($13) {
+      var $_0 = 0;
+      label = 21;
+      break;
+    } else {
+      label = 6;
+      break;
+    }
+   case 6:
+    var $15 = $4 + 85756 | 0;
+    var $16 = $4 + 85768 | 0;
+    var $17 = HEAP32[$16 >> 2];
+    var $18 = ($17 | 0) < 1;
+    if ($18) {
+      var $_0 = 0;
+      label = 21;
+      break;
+    } else {
+      label = 7;
+      break;
+    }
+   case 7:
+    var $20 = $4 + 85788 | 0;
+    var $21 = HEAP32[$20 >> 2];
+    var $22 = $21 >>> 0 > $size >>> 0;
+    if ($22) {
+      var $_0 = $21;
+      label = 21;
+      break;
+    } else {
+      label = 8;
+      break;
+    }
+   case 8:
+    var $24 = ($buffer | 0) == 0;
+    if ($24) {
+      var $_0 = 0;
+      label = 21;
+      break;
+    } else {
+      label = 9;
+      break;
+    }
+   case 9:
+    _memset($buffer, 0, $21);
+    _setLameTagFrameHeader($4, $buffer);
+    var $26 = $btToc | 0;
+    _memset($26, 0, 100);
+    var $27 = $4 + 152 | 0;
+    var $28 = HEAP32[$27 >> 2];
+    var $29 = ($28 | 0) == 0;
+    if ($29) {
+      label = 11;
+      break;
+    } else {
+      var $i_070 = 1;
+      label = 10;
+      break;
+    }
+   case 10:
+    var $i_070;
+    var $30 = $i_070 * 255 & -1;
+    var $31 = ($30 | 0) / 100 & -1;
+    var $32 = $31 & 255;
+    var $33 = $btToc + $i_070 | 0;
+    HEAP8[$33] = $32;
+    var $34 = $i_070 + 1 | 0;
+    var $exitcond71 = ($34 | 0) == 100;
+    if ($exitcond71) {
+      label = 12;
+      break;
+    } else {
+      var $i_070 = $34;
+      label = 10;
+      break;
+    }
+   case 11:
+    _Xing_seek_table($15, $26);
+    label = 12;
+    break;
+   case 12:
+    var $36 = $4 + 24 | 0;
+    var $37 = HEAP32[$36 >> 2];
+    var $38 = $4 + 160 | 0;
+    var $39 = HEAP32[$38 >> 2];
+    var $40 = ($39 | 0) == 0;
+    var $41 = $37 - 2 | 0;
+    var $nStreamIndex_0 = $40 ? $37 : $41;
+    var $42 = $4 + 104 | 0;
+    var $43 = HEAP32[$42 >> 2];
+    var $44 = ($43 | 0) == 0;
+    var $45 = $nStreamIndex_0 + 1 | 0;
+    var $46 = $buffer + $nStreamIndex_0 | 0;
+    if ($44) {
+      label = 13;
+      break;
+    } else {
+      label = 14;
+      break;
+    }
+   case 13:
+    HEAP8[$46] = 73;
+    var $48 = $nStreamIndex_0 + 2 | 0;
+    var $49 = $buffer + $45 | 0;
+    HEAP8[$49] = 110;
+    var $50 = $nStreamIndex_0 + 3 | 0;
+    var $51 = $buffer + $48 | 0;
+    HEAP8[$51] = 102;
+    var $52 = $buffer + $50 | 0;
+    HEAP8[$52] = 111;
+    label = 15;
+    break;
+   case 14:
+    HEAP8[$46] = 88;
+    var $54 = $nStreamIndex_0 + 2 | 0;
+    var $55 = $buffer + $45 | 0;
+    HEAP8[$55] = 105;
+    var $56 = $nStreamIndex_0 + 3 | 0;
+    var $57 = $buffer + $54 | 0;
+    HEAP8[$57] = 110;
+    var $58 = $buffer + $56 | 0;
+    HEAP8[$58] = 103;
+    label = 15;
+    break;
+   case 15:
+    var $nStreamIndex_1 = $nStreamIndex_0 + 4 | 0;
+    var $60 = $buffer + $nStreamIndex_1 | 0;
+    _CreateI4($60, 15);
+    var $61 = $nStreamIndex_0 + 8 | 0;
+    var $62 = $buffer + $61 | 0;
+    var $63 = $4 + 85780 | 0;
+    var $64 = HEAP32[$63 >> 2];
+    _CreateI4($62, $64);
+    var $65 = $nStreamIndex_0 + 12 | 0;
+    var $66 = $4 + 85784 | 0;
+    var $67 = HEAP32[$66 >> 2];
+    var $68 = HEAP32[$20 >> 2];
+    var $69 = $68 + $67 | 0;
+    var $70 = $buffer + $65 | 0;
+    _CreateI4($70, $69);
+    var $71 = $nStreamIndex_0 + 16 | 0;
+    var $72 = $buffer + $71 | 0;
+    _memcpy($72, $26, 100);
+    var $73 = $nStreamIndex_0 + 116 | 0;
+    var $74 = HEAP32[$38 >> 2];
+    var $75 = ($74 | 0) == 0;
+    if ($75) {
+      label = 17;
+      break;
+    } else {
+      label = 16;
+      break;
+    }
+   case 16:
+    _CRC_writeheader($4, $buffer);
+    label = 17;
+    break;
+   case 17:
+    var $77 = ($73 | 0) == 0;
+    if ($77) {
+      var $crc_0_lcssa = 0;
+      label = 20;
+      break;
+    } else {
+      label = 18;
+      break;
+    }
+   case 18:
+    var $78 = $nStreamIndex_0 + 116 | 0;
+    var $crc_067 = 0;
+    var $i1_068 = 0;
+    label = 19;
+    break;
+   case 19:
+    var $i1_068;
+    var $crc_067;
+    var $80 = $buffer + $i1_068 | 0;
+    var $81 = HEAP8[$80];
+    var $82 = $81 & 255;
+    var $83 = _CRC_update_lookup($82, $crc_067);
+    var $84 = $i1_068 + 1 | 0;
+    var $exitcond = ($84 | 0) == ($78 | 0);
+    if ($exitcond) {
+      var $crc_0_lcssa = $83;
+      label = 20;
+      break;
+    } else {
+      var $crc_067 = $83;
+      var $i1_068 = $84;
+      label = 19;
+      break;
+    }
+   case 20:
+    var $crc_0_lcssa;
+    var $85 = $buffer + $73 | 0;
+    _PutLameVBR($gfp, $69, $85, $crc_0_lcssa);
+    var $86 = HEAP32[$20 >> 2];
+    var $_0 = $86;
+    label = 21;
+    break;
+   case 21:
+    var $_0;
+    STACKTOP = __stackBase__;
+    return $_0;
+  }
+}
+_lame_get_lametag_frame["X"] = 1;
+function _Xing_seek_table($v, $t) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = $v + 12 | 0;
+    var $2 = HEAP32[$1 >> 2];
+    var $3 = ($2 | 0) < 1;
+    if ($3) {
+      label = 5;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 3:
+    var $4 = $v + 20 | 0;
+    var $5 = $v | 0;
+    var $i_012 = 1;
+    label = 4;
+    break;
+   case 4:
+    var $i_012;
+    var $7 = $i_012 | 0;
+    var $8 = $7 / 100;
+    var $9 = HEAP32[$1 >> 2];
+    var $10 = $9 | 0;
+    var $11 = $8 * $10;
+    var $floorf = Math.floor($11);
+    var $12 = $floorf & -1;
+    var $13 = $9 - 1 | 0;
+    var $14 = ($12 | 0) > ($13 | 0);
+    var $_ = $14 ? $13 : $12;
+    var $15 = HEAP32[$4 >> 2];
+    var $16 = $15 + ($_ << 2) | 0;
+    var $17 = HEAP32[$16 >> 2];
+    var $18 = $17 | 0;
+    var $19 = HEAP32[$5 >> 2];
+    var $20 = $19 | 0;
+    var $21 = $18;
+    var $22 = $21 * 256;
+    var $23 = $20;
+    var $24 = $22 / $23;
+    var $25 = $24 & -1;
+    var $26 = ($25 | 0) > 255;
+    var $27 = $25 & 255;
+    var $28 = $26 ? -1 : $27;
+    var $29 = $t + $i_012 | 0;
+    HEAP8[$29] = $28;
+    var $30 = $i_012 + 1 | 0;
+    var $exitcond = ($30 | 0) == 100;
+    if ($exitcond) {
+      label = 5;
+      break;
+    } else {
+      var $i_012 = $30;
+      label = 4;
+      break;
+    }
+   case 5:
+    return;
+  }
+}
+function _PutLameVBR($gfp, $nMusicLength, $pbtStreamBuffer, $crc) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = $gfp + 288 | 0;
+    var $2 = HEAP32[$1 >> 2];
+    var $3 = $2 + 84756 | 0;
+    var $4 = HEAP32[$3 >> 2];
+    var $5 = $2 + 84760 | 0;
+    var $6 = HEAP32[$5 >> 2];
+    var $7 = $gfp + 164 | 0;
+    var $8 = HEAP32[$7 >> 2];
+    var $9 = $8 * -10 & -1;
+    var $10 = $9 + 100 | 0;
+    var $11 = $gfp + 44 | 0;
+    var $12 = HEAP32[$11 >> 2];
+    var $13 = $10 - $12 | 0;
+    var $14 = $2 + 52 | 0;
+    var $15 = HEAP32[$14 >> 2];
+    var $16 = $15 | 0;
+    var $17 = $16 / 100;
+    var $18 = $17 + .5;
+    var $19 = $18 > 255;
+    if ($19) {
+      var $22 = -1;
+      label = 4;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 3:
+    var $phitmp = $18 >= 0 ? Math.floor($18) : Math.ceil($18);
+    var $22 = $phitmp;
+    label = 4;
+    break;
+   case 4:
+    var $22;
+    var $23 = $2 + 28 | 0;
+    var $24 = HEAP32[$23 >> 2];
+    var $25 = $2 + 96 | 0;
+    var $26 = HEAP32[$25 >> 2];
+    var $27 = ($26 | 0) != 0;
+    var $28 = $gfp + 72 | 0;
+    var $29 = HEAP32[$28 >> 2];
+    var $30 = $gfp + 76 | 0;
+    var $31 = HEAP32[$30 >> 2];
+    var $32 = $2 + 208 | 0;
+    var $33 = HEAP32[$32 >> 2];
+    var $34 = $2 + 104 | 0;
+    var $35 = HEAP32[$34 >> 2];
+    if (($35 | 0) == 3) {
+      label = 5;
+      break;
+    } else if (($35 | 0) == 0) {
+      label = 6;
+      break;
+    } else {
+      label = 7;
+      break;
+    }
+   case 5:
+    var $37 = $2 + 108 | 0;
+    var $nABRBitrate_0_in = $37;
+    label = 8;
+    break;
+   case 6:
+    var $39 = $2 + 120 | 0;
+    var $nABRBitrate_0_in = $39;
+    label = 8;
+    break;
+   case 7:
+    var $41 = $2 + 112 | 0;
+    var $42 = HEAP32[$41 >> 2];
+    var $43 = $2 + 16 | 0;
+    var $44 = HEAP32[$43 >> 2];
+    var $45 = 5348684 + ($44 << 6) + ($42 << 2) | 0;
+    var $nABRBitrate_0_in = $45;
+    label = 8;
+    break;
+   case 8:
+    var $nABRBitrate_0_in;
+    var $nABRBitrate_0 = HEAP32[$nABRBitrate_0_in >> 2];
+    var $47 = HEAP32[$34 >> 2];
+    var $48 = $47 >>> 0 < 7;
+    if ($48) {
+      label = 9;
+      break;
+    } else {
+      var $nVBR_0 = 0;
+      label = 10;
+      break;
+    }
+   case 9:
+    var $50 = $47 + 5388120 | 0;
+    var $51 = HEAP8[$50];
+    var $nVBR_0 = $51;
+    label = 10;
+    break;
+   case 10:
+    var $nVBR_0;
+    var $53 = $2 + 128 | 0;
+    var $54 = HEAP32[$53 >> 2];
+    var $55 = ($54 | 0) == 0;
+    if ($55) {
+      var $nRadioReplayGain_0 = 0;
+      label = 14;
+      break;
+    } else {
+      label = 11;
+      break;
+    }
+   case 11:
+    var $57 = $2 + 85684 | 0;
+    var $58 = HEAP32[$57 >> 2];
+    var $59 = ($58 | 0) > 510;
+    var $_ = $59 ? 510 : $58;
+    var $60 = ($_ | 0) < -510;
+    var $RadioGain_1 = $60 ? -510 : $_;
+    var $61 = ($RadioGain_1 | 0) > -1;
+    if ($61) {
+      label = 12;
+      break;
+    } else {
+      label = 13;
+      break;
+    }
+   case 12:
+    var $63 = $RadioGain_1 | 11264;
+    var $nRadioReplayGain_0 = $63;
+    label = 14;
+    break;
+   case 13:
+    var $65 = -$RadioGain_1 | 0;
+    var $66 = $65 | 11776;
+    var $nRadioReplayGain_0 = $66;
+    label = 14;
+    break;
+   case 14:
+    var $nRadioReplayGain_0;
+    var $68 = $2 + 132 | 0;
+    var $69 = HEAP32[$68 >> 2];
+    var $70 = ($69 | 0) == 0;
+    if ($70) {
+      var $nPeakSignalAmplitude_0 = 0;
+      label = 16;
+      break;
+    } else {
+      label = 15;
+      break;
+    }
+   case 15:
+    var $72 = $2 + 85680 | 0;
+    var $73 = HEAPF32[$72 >> 2];
+    var $74 = $73;
+    var $75 = $74 / 32767;
+    var $76 = $75 * 8388608;
+    var $77 = $76 + .5;
+    var $78 = $77 & -1;
+    var $ispos = ($78 | 0) > -1;
+    var $neg = -$78 | 0;
+    var $79 = $ispos ? $78 : $neg;
+    var $nPeakSignalAmplitude_0 = $79;
+    label = 16;
+    break;
+   case 16:
+    var $nPeakSignalAmplitude_0;
+    var $81 = ($29 | 0) == -1;
+    if ($81) {
+      var $bNoGapPrevious_1 = 0;
+      var $bNoGapMore_0 = 0;
+      label = 18;
+      break;
+    } else {
+      label = 17;
+      break;
+    }
+   case 17:
+    var $83 = ($31 | 0) > 0;
+    var $84 = $29 - 1 | 0;
+    var $85 = ($31 | 0) < ($84 | 0);
+    var $_5 = $85 ? 64 : 0;
+    var $phitmp6 = $83 & 1;
+    var $phitmp7 = $phitmp6 << 7;
+    var $bNoGapPrevious_1 = $phitmp7;
+    var $bNoGapMore_0 = $_5;
+    label = 18;
+    break;
+   case 18:
+    var $bNoGapMore_0;
+    var $bNoGapPrevious_1;
+    var $87 = $33 & 255;
+    var $88 = $33 + 16 | 0;
+    var $89 = $27 & 1;
+    var $90 = $89 << 5;
+    var $91 = $88 + $90 | 0;
+    var $92 = $91 + $bNoGapMore_0 | 0;
+    var $93 = $92 + $bNoGapPrevious_1 | 0;
+    var $94 = $93 & 255;
+    var $95 = ($13 | 0) < 0;
+    var $_2 = $95 ? 0 : $13;
+    var $96 = $2 + 180 | 0;
+    var $97 = HEAP32[$96 >> 2];
+    if (($97 | 0) == 0) {
+      label = 19;
+      break;
+    } else if (($97 | 0) == 2) {
+      label = 20;
+      break;
+    } else if (($97 | 0) == 1) {
+      label = 21;
+      break;
+    } else if (($97 | 0) == 3) {
+      var $nStereoMode_0 = 0;
+      label = 23;
+      break;
+    } else {
+      label = 22;
+      break;
+    }
+   case 19:
+    var $nStereoMode_0 = 4;
+    label = 23;
+    break;
+   case 20:
+    var $nStereoMode_0 = 8;
+    label = 23;
+    break;
+   case 21:
+    var $101 = $2 + 80 | 0;
+    var $102 = HEAP32[$101 >> 2];
+    var $103 = ($102 | 0) == 0;
+    var $_3 = $103 ? 12 : 16;
+    var $nStereoMode_0 = $_3;
+    label = 23;
+    break;
+   case 22:
+    var $nStereoMode_0 = 28;
+    label = 23;
+    break;
+   case 23:
+    var $nStereoMode_0;
+    var $106 = $2 + 60 | 0;
+    var $107 = HEAP32[$106 >> 2];
+    var $108 = ($107 | 0) < 32001;
+    if ($108) {
+      var $nSourceFreq_0 = 0;
+      label = 26;
+      break;
+    } else {
+      label = 24;
+      break;
+    }
+   case 24:
+    var $110 = ($107 | 0) == 48e3;
+    if ($110) {
+      var $nSourceFreq_0 = 128;
+      label = 26;
+      break;
+    } else {
+      label = 25;
+      break;
+    }
+   case 25:
+    var $112 = ($107 | 0) > 48e3;
+    var $_4 = $112 ? 192 : 64;
+    var $nSourceFreq_0 = $_4;
+    label = 26;
+    break;
+   case 26:
+    var $nSourceFreq_0;
+    var $114 = $2 + 184 | 0;
+    var $115 = HEAP32[$114 >> 2];
+    var $_off = $115 - 2 | 0;
+    var $switch = $_off >>> 0 < 2;
+    if ($switch) {
+      label = 34;
+      break;
+    } else {
+      label = 27;
+      break;
+    }
+   case 27:
+    var $117 = HEAP32[$14 >> 2];
+    var $118 = ($117 | 0) == -1;
+    if ($118) {
+      label = 28;
+      break;
+    } else {
+      label = 29;
+      break;
+    }
+   case 28:
+    var $120 = $2 + 56 | 0;
+    var $121 = HEAP32[$120 >> 2];
+    var $122 = ($121 | 0) == -1;
+    if ($122) {
+      label = 34;
+      break;
+    } else {
+      label = 29;
+      break;
+    }
+   case 29:
+    var $124 = $2 + 144 | 0;
+    var $125 = HEAP32[$124 >> 2];
+    var $126 = ($125 | 0) == 0;
+    if ($126) {
+      label = 31;
+      break;
+    } else {
+      label = 30;
+      break;
+    }
+   case 30:
+    var $128 = $2 + 120 | 0;
+    var $129 = HEAP32[$128 >> 2];
+    var $130 = ($129 | 0) < 320;
+    if ($130) {
+      label = 34;
+      break;
+    } else {
+      label = 31;
+      break;
+    }
+   case 31:
+    var $132 = $2 + 220 | 0;
+    var $133 = HEAP32[$132 >> 2];
+    var $134 = ($133 | 0) == 0;
+    if ($134) {
+      label = 32;
+      break;
+    } else {
+      label = 34;
+      break;
+    }
+   case 32:
+    var $136 = $2 + 212 | 0;
+    var $137 = HEAP32[$136 >> 2];
+    var $138 = ($137 | 0) != 0;
+    var $139 = ($87 | 0) == 0;
+    var $or_cond = $138 | $139;
+    if ($or_cond) {
+      label = 34;
+      break;
+    } else {
+      label = 33;
+      break;
+    }
+   case 33:
+    var $141 = HEAP32[$106 >> 2];
+    var $142 = ($141 | 0) < 32001;
+    if ($142) {
+      label = 34;
+      break;
+    } else {
+      var $bNonOptimal_0 = 0;
+      label = 35;
+      break;
+    }
+   case 34:
+    var $bNonOptimal_0 = 32;
+    label = 35;
+    break;
+   case 35:
+    var $bNonOptimal_0;
+    var $145 = $nStereoMode_0 + $24 | 0;
+    var $146 = $145 + $nSourceFreq_0 | 0;
+    var $147 = $146 + $bNonOptimal_0 | 0;
+    var $148 = $147 & 255;
+    var $149 = $2 + 85748 | 0;
+    var $150 = HEAP16[$149 >> 1];
+    _CreateI4($pbtStreamBuffer, $_2);
+    var $151 = $pbtStreamBuffer + 4 | 0;
+    for (var $$src = 5385568, $$dest = $151, $$stop = $$src + 9; $$src < $$stop; $$src++, $$dest++) {
+      HEAP8[$$dest] = HEAP8[$$src];
+    }
+    var $152 = $pbtStreamBuffer + 13 | 0;
+    HEAP8[$152] = $nVBR_0;
+    var $153 = $pbtStreamBuffer + 14 | 0;
+    HEAP8[$153] = $22;
+    var $154 = $pbtStreamBuffer + 15 | 0;
+    _CreateI4($154, $nPeakSignalAmplitude_0);
+    var $155 = $pbtStreamBuffer + 19 | 0;
+    var $156 = $nRadioReplayGain_0 & 65535;
+    _CreateI2($155, $156);
+    var $157 = $pbtStreamBuffer + 21 | 0;
+    _CreateI2($157, 0);
+    var $158 = $pbtStreamBuffer + 23 | 0;
+    HEAP8[$158] = $94;
+    var $159 = ($nABRBitrate_0 | 0) > 254;
+    if ($159) {
+      label = 36;
+      break;
+    } else {
+      label = 37;
+      break;
+    }
+   case 36:
+    var $161 = $pbtStreamBuffer + 24 | 0;
+    HEAP8[$161] = -1;
+    label = 38;
+    break;
+   case 37:
+    var $163 = $nABRBitrate_0 & 255;
+    var $164 = $pbtStreamBuffer + 24 | 0;
+    HEAP8[$164] = $163;
+    label = 38;
+    break;
+   case 38:
+    var $166 = $4 >>> 4;
+    var $167 = $166 & 255;
+    var $168 = $pbtStreamBuffer + 25 | 0;
+    HEAP8[$168] = $167;
+    var $169 = $4 << 4;
+    var $170 = $6 >>> 8;
+    var $171 = $170 + $169 | 0;
+    var $172 = $171 & 255;
+    var $173 = $pbtStreamBuffer + 26 | 0;
+    HEAP8[$173] = $172;
+    var $174 = $6 & 255;
+    var $175 = $pbtStreamBuffer + 27 | 0;
+    HEAP8[$175] = $174;
+    var $176 = $pbtStreamBuffer + 28 | 0;
+    HEAP8[$176] = $148;
+    var $177 = $pbtStreamBuffer + 29 | 0;
+    HEAP8[$177] = 0;
+    var $178 = $pbtStreamBuffer + 30 | 0;
+    var $179 = $2 + 100 | 0;
+    var $180 = HEAP32[$179 >> 2];
+    _CreateI2($178, $180);
+    var $181 = $pbtStreamBuffer + 32 | 0;
+    _CreateI4($181, $nMusicLength);
+    var $182 = $pbtStreamBuffer + 36 | 0;
+    var $183 = $150 & 65535;
+    _CreateI2($182, $183);
+    var $i_08 = 0;
+    var $_09 = $crc;
+    label = 39;
+    break;
+   case 39:
+    var $_09;
+    var $i_08;
+    var $185 = $pbtStreamBuffer + $i_08 | 0;
+    var $186 = HEAP8[$185];
+    var $187 = $186 & 255;
+    var $188 = _CRC_update_lookup($187, $_09);
+    var $189 = $i_08 + 1 | 0;
+    var $exitcond = ($189 | 0) == 38;
+    if ($exitcond) {
+      label = 40;
+      break;
+    } else {
+      var $i_08 = $189;
+      var $_09 = $188;
+      label = 39;
+      break;
+    }
+   case 40:
+    var $191 = $pbtStreamBuffer + 38 | 0;
+    var $192 = $188 & 65535;
+    _CreateI2($191, $192);
+    return;
+  }
+}
+_PutLameVBR["X"] = 1;
+function _PutVbrTag($gfp, $fpStream) {
+  var label = 0;
+  var __stackBase__ = STACKTOP;
+  STACKTOP = STACKTOP + 2880 | 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $buffer = __stackBase__;
+    var $1 = $gfp + 288 | 0;
+    var $2 = HEAP32[$1 >> 2];
+    var $3 = $2 + 85768 | 0;
+    var $4 = HEAP32[$3 >> 2];
+    var $5 = ($4 | 0) < 1;
+    if ($5) {
+      var $_0 = -1;
+      label = 8;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 3:
+    var $7 = _fseek($fpStream, 0, 2);
+    var $8 = _ftell($fpStream);
+    var $9 = ($8 | 0) == 0;
+    if ($9) {
+      var $_0 = -1;
+      label = 8;
+      break;
+    } else {
+      label = 4;
+      break;
+    }
+   case 4:
+    var $11 = _skipId3v2($fpStream);
+    var $12 = ($11 | 0) < 0;
+    if ($12) {
+      var $_0 = $11;
+      label = 8;
+      break;
+    } else {
+      label = 5;
+      break;
+    }
+   case 5:
+    var $14 = _fseek($fpStream, $11, 0);
+    var $15 = $buffer | 0;
+    var $16 = _lame_get_lametag_frame($gfp, $15, 2880);
+    var $17 = $16 >>> 0 > 2880;
+    if ($17) {
+      var $_0 = -1;
+      label = 8;
+      break;
+    } else {
+      label = 6;
+      break;
+    }
+   case 6:
+    var $19 = ($16 | 0) == 0;
+    if ($19) {
+      var $_0 = 0;
+      label = 8;
+      break;
+    } else {
+      label = 7;
+      break;
+    }
+   case 7:
+    var $21 = _fwrite($15, $16, 1, $fpStream);
+    var $not_ = ($21 | 0) != 1;
+    var $_ = $not_ << 31 >> 31;
+    var $_0 = $_;
+    label = 8;
+    break;
+   case 8:
+    var $_0;
+    STACKTOP = __stackBase__;
+    return $_0;
+  }
+}
+function _skipId3v2($fpStream) {
+  var label = 0;
+  var __stackBase__ = STACKTOP;
+  STACKTOP = STACKTOP + 12 | 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $id3v2Header = __stackBase__;
+    var $1 = _fseek($fpStream, 0, 0);
+    var $2 = ($1 | 0) == 0;
+    if ($2) {
+      label = 3;
+      break;
+    } else {
+      var $_0 = -2;
+      label = 6;
+      break;
+    }
+   case 3:
+    var $4 = $id3v2Header | 0;
+    var $5 = _fread($4, 1, 10, $fpStream);
+    var $6 = ($5 | 0) == 10;
+    if ($6) {
+      label = 4;
+      break;
+    } else {
+      var $_0 = -3;
+      label = 6;
+      break;
+    }
+   case 4:
+    var $8 = _strncmp($4, 5386636, 3);
+    var $9 = ($8 | 0) == 0;
+    if ($9) {
+      label = 5;
+      break;
+    } else {
+      var $_0 = 0;
+      label = 6;
+      break;
+    }
+   case 5:
+    var $11 = $id3v2Header + 6 | 0;
+    var $12 = HEAP8[$11];
+    var $13 = $12 & 255;
+    var $14 = $13 << 21;
+    var $15 = $14 & 266338304;
+    var $16 = $id3v2Header + 7 | 0;
+    var $17 = HEAP8[$16];
+    var $18 = $17 & 255;
+    var $19 = $18 << 14;
+    var $20 = $19 & 2080768;
+    var $21 = $20 | $15;
+    var $22 = $id3v2Header + 8 | 0;
+    var $23 = HEAP8[$22];
+    var $24 = $23 & 255;
+    var $25 = $24 << 7;
+    var $26 = $25 & 16256;
+    var $27 = $21 | $26;
+    var $28 = $id3v2Header + 9 | 0;
+    var $29 = HEAP8[$28];
+    var $30 = $29 & 255;
+    var $31 = $30 & 127;
+    var $32 = $27 | $31;
+    var $33 = $32 + 10 | 0;
+    var $_0 = $33;
+    label = 6;
+    break;
+   case 6:
+    var $_0;
+    STACKTOP = __stackBase__;
+    return $_0;
+  }
+}
+function _malloc($bytes) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = $bytes >>> 0 < 245;
+    if ($1) {
+      label = 3;
+      break;
+    } else {
+      label = 28;
+      break;
+    }
+   case 3:
+    var $3 = $bytes >>> 0 < 11;
+    if ($3) {
+      var $8 = 16;
+      label = 5;
+      break;
+    } else {
+      label = 4;
+      break;
+    }
+   case 4:
+    var $5 = $bytes + 11 | 0;
+    var $6 = $5 & -8;
+    var $8 = $6;
+    label = 5;
+    break;
+   case 5:
+    var $8;
+    var $9 = $8 >>> 3;
+    var $10 = HEAP32[5387504 >> 2];
+    var $11 = $10 >>> ($9 >>> 0);
+    var $12 = $11 & 3;
+    var $13 = ($12 | 0) == 0;
+    if ($13) {
+      label = 12;
+      break;
+    } else {
+      label = 6;
+      break;
+    }
+   case 6:
+    var $15 = $11 & 1;
+    var $16 = $15 ^ 1;
+    var $17 = $16 + $9 | 0;
+    var $18 = $17 << 1;
+    var $19 = 5387544 + ($18 << 2) | 0;
+    var $20 = $19;
+    var $_sum106 = $18 + 2 | 0;
+    var $21 = 5387544 + ($_sum106 << 2) | 0;
+    var $22 = HEAP32[$21 >> 2];
+    var $23 = $22 + 8 | 0;
+    var $24 = HEAP32[$23 >> 2];
+    var $25 = ($20 | 0) == ($24 | 0);
+    if ($25) {
+      label = 7;
+      break;
+    } else {
+      label = 8;
+      break;
+    }
+   case 7:
+    var $27 = 1 << $17;
+    var $28 = $27 ^ -1;
+    var $29 = $10 & $28;
+    HEAP32[5387504 >> 2] = $29;
+    label = 11;
+    break;
+   case 8:
+    var $31 = $24;
+    var $32 = HEAP32[5387520 >> 2];
+    var $33 = $31 >>> 0 < $32 >>> 0;
+    if ($33) {
+      label = 10;
+      break;
+    } else {
+      label = 9;
+      break;
+    }
+   case 9:
+    HEAP32[$21 >> 2] = $24;
+    var $35 = $24 + 12 | 0;
+    HEAP32[$35 >> 2] = $20;
+    label = 11;
+    break;
+   case 10:
+    _abort();
+   case 11:
+    var $38 = $17 << 3;
+    var $39 = $38 | 3;
+    var $40 = $22 + 4 | 0;
+    HEAP32[$40 >> 2] = $39;
+    var $41 = $22;
+    var $_sum107108 = $38 | 4;
+    var $42 = $41 + $_sum107108 | 0;
+    var $43 = $42;
+    var $44 = HEAP32[$43 >> 2];
+    var $45 = $44 | 1;
+    HEAP32[$43 >> 2] = $45;
+    var $46 = $23;
+    var $mem_0 = $46;
+    label = 39;
+    break;
+   case 12:
+    var $48 = HEAP32[5387512 >> 2];
+    var $49 = $8 >>> 0 > $48 >>> 0;
+    if ($49) {
+      label = 13;
+      break;
+    } else {
+      var $nb_0 = $8;
+      label = 31;
+      break;
+    }
+   case 13:
+    var $51 = ($11 | 0) == 0;
+    if ($51) {
+      label = 26;
+      break;
+    } else {
+      label = 14;
+      break;
+    }
+   case 14:
+    var $53 = $11 << $9;
+    var $54 = 2 << $9;
+    var $55 = -$54 | 0;
+    var $56 = $54 | $55;
+    var $57 = $53 & $56;
+    var $58 = -$57 | 0;
+    var $59 = $57 & $58;
+    var $60 = $59 - 1 | 0;
+    var $61 = $60 >>> 12;
+    var $62 = $61 & 16;
+    var $63 = $60 >>> ($62 >>> 0);
+    var $64 = $63 >>> 5;
+    var $65 = $64 & 8;
+    var $66 = $65 | $62;
+    var $67 = $63 >>> ($65 >>> 0);
+    var $68 = $67 >>> 2;
+    var $69 = $68 & 4;
+    var $70 = $66 | $69;
+    var $71 = $67 >>> ($69 >>> 0);
+    var $72 = $71 >>> 1;
+    var $73 = $72 & 2;
+    var $74 = $70 | $73;
+    var $75 = $71 >>> ($73 >>> 0);
+    var $76 = $75 >>> 1;
+    var $77 = $76 & 1;
+    var $78 = $74 | $77;
+    var $79 = $75 >>> ($77 >>> 0);
+    var $80 = $78 + $79 | 0;
+    var $81 = $80 << 1;
+    var $82 = 5387544 + ($81 << 2) | 0;
+    var $83 = $82;
+    var $_sum100 = $81 + 2 | 0;
+    var $84 = 5387544 + ($_sum100 << 2) | 0;
+    var $85 = HEAP32[$84 >> 2];
+    var $86 = $85 + 8 | 0;
+    var $87 = HEAP32[$86 >> 2];
+    var $88 = ($83 | 0) == ($87 | 0);
+    if ($88) {
+      label = 15;
+      break;
+    } else {
+      label = 16;
+      break;
+    }
+   case 15:
+    var $90 = 1 << $80;
+    var $91 = $90 ^ -1;
+    var $92 = $10 & $91;
+    HEAP32[5387504 >> 2] = $92;
+    label = 19;
+    break;
+   case 16:
+    var $94 = $87;
+    var $95 = HEAP32[5387520 >> 2];
+    var $96 = $94 >>> 0 < $95 >>> 0;
+    if ($96) {
+      label = 18;
+      break;
+    } else {
+      label = 17;
+      break;
+    }
+   case 17:
+    HEAP32[$84 >> 2] = $87;
+    var $98 = $87 + 12 | 0;
+    HEAP32[$98 >> 2] = $83;
+    label = 19;
+    break;
+   case 18:
+    _abort();
+   case 19:
+    var $101 = $80 << 3;
+    var $102 = $101 - $8 | 0;
+    var $103 = $8 | 3;
+    var $104 = $85 + 4 | 0;
+    HEAP32[$104 >> 2] = $103;
+    var $105 = $85;
+    var $106 = $105 + $8 | 0;
+    var $107 = $106;
+    var $108 = $102 | 1;
+    var $_sum101102 = $8 | 4;
+    var $109 = $105 + $_sum101102 | 0;
+    var $110 = $109;
+    HEAP32[$110 >> 2] = $108;
+    var $111 = $105 + $101 | 0;
+    var $112 = $111;
+    HEAP32[$112 >> 2] = $102;
+    var $113 = HEAP32[5387512 >> 2];
+    var $114 = ($113 | 0) == 0;
+    if ($114) {
+      label = 25;
+      break;
+    } else {
+      label = 20;
+      break;
+    }
+   case 20:
+    var $116 = HEAP32[5387524 >> 2];
+    var $117 = $113 >>> 3;
+    var $118 = $117 << 1;
+    var $119 = 5387544 + ($118 << 2) | 0;
+    var $120 = $119;
+    var $121 = HEAP32[5387504 >> 2];
+    var $122 = 1 << $117;
+    var $123 = $121 & $122;
+    var $124 = ($123 | 0) == 0;
+    if ($124) {
+      label = 21;
+      break;
+    } else {
+      label = 22;
+      break;
+    }
+   case 21:
+    var $126 = $121 | $122;
+    HEAP32[5387504 >> 2] = $126;
+    var $F4_0 = $120;
+    label = 24;
+    break;
+   case 22:
+    var $_sum105 = $118 + 2 | 0;
+    var $128 = 5387544 + ($_sum105 << 2) | 0;
+    var $129 = HEAP32[$128 >> 2];
+    var $130 = $129;
+    var $131 = HEAP32[5387520 >> 2];
+    var $132 = $130 >>> 0 < $131 >>> 0;
+    if ($132) {
+      label = 23;
+      break;
+    } else {
+      var $F4_0 = $129;
+      label = 24;
+      break;
+    }
+   case 23:
+    _abort();
+   case 24:
+    var $F4_0;
+    var $_sum104 = $118 + 2 | 0;
+    var $135 = 5387544 + ($_sum104 << 2) | 0;
+    HEAP32[$135 >> 2] = $116;
+    var $136 = $F4_0 + 12 | 0;
+    HEAP32[$136 >> 2] = $116;
+    var $137 = $116 + 8 | 0;
+    HEAP32[$137 >> 2] = $F4_0;
+    var $138 = $116 + 12 | 0;
+    HEAP32[$138 >> 2] = $120;
+    label = 25;
+    break;
+   case 25:
+    HEAP32[5387512 >> 2] = $102;
+    HEAP32[5387524 >> 2] = $107;
+    var $140 = $86;
+    var $mem_0 = $140;
+    label = 39;
+    break;
+   case 26:
+    var $142 = HEAP32[5387508 >> 2];
+    var $143 = ($142 | 0) == 0;
+    if ($143) {
+      var $nb_0 = $8;
+      label = 31;
+      break;
+    } else {
+      label = 27;
+      break;
+    }
+   case 27:
+    var $145 = _tmalloc_small($8);
+    var $146 = ($145 | 0) == 0;
+    if ($146) {
+      var $nb_0 = $8;
+      label = 31;
+      break;
+    } else {
+      var $mem_0 = $145;
+      label = 39;
+      break;
+    }
+   case 28:
+    var $148 = $bytes >>> 0 > 4294967231;
+    if ($148) {
+      var $nb_0 = -1;
+      label = 31;
+      break;
+    } else {
+      label = 29;
+      break;
+    }
+   case 29:
+    var $150 = $bytes + 11 | 0;
+    var $151 = $150 & -8;
+    var $152 = HEAP32[5387508 >> 2];
+    var $153 = ($152 | 0) == 0;
+    if ($153) {
+      var $nb_0 = $151;
+      label = 31;
+      break;
+    } else {
+      label = 30;
+      break;
+    }
+   case 30:
+    var $155 = _tmalloc_large($151);
+    var $156 = ($155 | 0) == 0;
+    if ($156) {
+      var $nb_0 = $151;
+      label = 31;
+      break;
+    } else {
+      var $mem_0 = $155;
+      label = 39;
+      break;
+    }
+   case 31:
+    var $nb_0;
+    var $158 = HEAP32[5387512 >> 2];
+    var $159 = $nb_0 >>> 0 > $158 >>> 0;
+    if ($159) {
+      label = 36;
+      break;
+    } else {
+      label = 32;
+      break;
+    }
+   case 32:
+    var $161 = $158 - $nb_0 | 0;
+    var $162 = HEAP32[5387524 >> 2];
+    var $163 = $161 >>> 0 > 15;
+    if ($163) {
+      label = 33;
+      break;
+    } else {
+      label = 34;
+      break;
+    }
+   case 33:
+    var $165 = $162;
+    var $166 = $165 + $nb_0 | 0;
+    var $167 = $166;
+    HEAP32[5387524 >> 2] = $167;
+    HEAP32[5387512 >> 2] = $161;
+    var $168 = $161 | 1;
+    var $_sum98 = $nb_0 + 4 | 0;
+    var $169 = $165 + $_sum98 | 0;
+    var $170 = $169;
+    HEAP32[$170 >> 2] = $168;
+    var $171 = $165 + $158 | 0;
+    var $172 = $171;
+    HEAP32[$172 >> 2] = $161;
+    var $173 = $nb_0 | 3;
+    var $174 = $162 + 4 | 0;
+    HEAP32[$174 >> 2] = $173;
+    label = 35;
+    break;
+   case 34:
+    HEAP32[5387512 >> 2] = 0;
+    HEAP32[5387524 >> 2] = 0;
+    var $176 = $158 | 3;
+    var $177 = $162 + 4 | 0;
+    HEAP32[$177 >> 2] = $176;
+    var $178 = $162;
+    var $_sum97 = $158 + 4 | 0;
+    var $179 = $178 + $_sum97 | 0;
+    var $180 = $179;
+    var $181 = HEAP32[$180 >> 2];
+    var $182 = $181 | 1;
+    HEAP32[$180 >> 2] = $182;
+    label = 35;
+    break;
+   case 35:
+    var $184 = $162 + 8 | 0;
+    var $185 = $184;
+    var $mem_0 = $185;
+    label = 39;
+    break;
+   case 36:
+    var $187 = HEAP32[5387516 >> 2];
+    var $188 = $nb_0 >>> 0 < $187 >>> 0;
+    if ($188) {
+      label = 37;
+      break;
+    } else {
+      label = 38;
+      break;
+    }
+   case 37:
+    var $190 = $187 - $nb_0 | 0;
+    HEAP32[5387516 >> 2] = $190;
+    var $191 = HEAP32[5387528 >> 2];
+    var $192 = $191;
+    var $193 = $192 + $nb_0 | 0;
+    var $194 = $193;
+    HEAP32[5387528 >> 2] = $194;
+    var $195 = $190 | 1;
+    var $_sum = $nb_0 + 4 | 0;
+    var $196 = $192 + $_sum | 0;
+    var $197 = $196;
+    HEAP32[$197 >> 2] = $195;
+    var $198 = $nb_0 | 3;
+    var $199 = $191 + 4 | 0;
+    HEAP32[$199 >> 2] = $198;
+    var $200 = $191 + 8 | 0;
+    var $201 = $200;
+    var $mem_0 = $201;
+    label = 39;
+    break;
+   case 38:
+    var $203 = _sys_alloc($nb_0);
+    var $mem_0 = $203;
+    label = 39;
+    break;
+   case 39:
+    var $mem_0;
+    return $mem_0;
+  }
+}
+_malloc["X"] = 1;
+function _tmalloc_small($nb) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = HEAP32[5387508 >> 2];
+    var $2 = -$1 | 0;
+    var $3 = $1 & $2;
+    var $4 = $3 - 1 | 0;
+    var $5 = $4 >>> 12;
+    var $6 = $5 & 16;
+    var $7 = $4 >>> ($6 >>> 0);
+    var $8 = $7 >>> 5;
+    var $9 = $8 & 8;
+    var $10 = $9 | $6;
+    var $11 = $7 >>> ($9 >>> 0);
+    var $12 = $11 >>> 2;
+    var $13 = $12 & 4;
+    var $14 = $10 | $13;
+    var $15 = $11 >>> ($13 >>> 0);
+    var $16 = $15 >>> 1;
+    var $17 = $16 & 2;
+    var $18 = $14 | $17;
+    var $19 = $15 >>> ($17 >>> 0);
+    var $20 = $19 >>> 1;
+    var $21 = $20 & 1;
+    var $22 = $18 | $21;
+    var $23 = $19 >>> ($21 >>> 0);
+    var $24 = $22 + $23 | 0;
+    var $25 = 5387808 + ($24 << 2) | 0;
+    var $26 = HEAP32[$25 >> 2];
+    var $27 = $26 + 4 | 0;
+    var $28 = HEAP32[$27 >> 2];
+    var $29 = $28 & -8;
+    var $30 = $29 - $nb | 0;
+    var $t_0 = $26;
+    var $v_0 = $26;
+    var $rsize_0 = $30;
+    label = 3;
+    break;
+   case 3:
+    var $rsize_0;
+    var $v_0;
+    var $t_0;
+    var $32 = $t_0 + 16 | 0;
+    var $33 = HEAP32[$32 >> 2];
+    var $34 = ($33 | 0) == 0;
+    if ($34) {
+      label = 4;
+      break;
+    } else {
+      var $39 = $33;
+      label = 5;
+      break;
+    }
+   case 4:
+    var $36 = $t_0 + 20 | 0;
+    var $37 = HEAP32[$36 >> 2];
+    var $38 = ($37 | 0) == 0;
+    if ($38) {
+      label = 6;
+      break;
+    } else {
+      var $39 = $37;
+      label = 5;
+      break;
+    }
+   case 5:
+    var $39;
+    var $40 = $39 + 4 | 0;
+    var $41 = HEAP32[$40 >> 2];
+    var $42 = $41 & -8;
+    var $43 = $42 - $nb | 0;
+    var $44 = $43 >>> 0 < $rsize_0 >>> 0;
+    var $_rsize_0 = $44 ? $43 : $rsize_0;
+    var $_v_0 = $44 ? $39 : $v_0;
+    var $t_0 = $39;
+    var $v_0 = $_v_0;
+    var $rsize_0 = $_rsize_0;
+    label = 3;
+    break;
+   case 6:
+    var $46 = $v_0;
+    var $47 = HEAP32[5387520 >> 2];
+    var $48 = $46 >>> 0 < $47 >>> 0;
+    if ($48) {
+      label = 50;
+      break;
+    } else {
+      label = 7;
+      break;
+    }
+   case 7:
+    var $50 = $46 + $nb | 0;
+    var $51 = $50;
+    var $52 = $46 >>> 0 < $50 >>> 0;
+    if ($52) {
+      label = 8;
+      break;
+    } else {
+      label = 50;
+      break;
+    }
+   case 8:
+    var $54 = $v_0 + 24 | 0;
+    var $55 = HEAP32[$54 >> 2];
+    var $56 = $v_0 + 12 | 0;
+    var $57 = HEAP32[$56 >> 2];
+    var $58 = ($57 | 0) == ($v_0 | 0);
+    if ($58) {
+      label = 12;
+      break;
+    } else {
+      label = 9;
+      break;
+    }
+   case 9:
+    var $60 = $v_0 + 8 | 0;
+    var $61 = HEAP32[$60 >> 2];
+    var $62 = $61;
+    var $63 = $62 >>> 0 < $47 >>> 0;
+    if ($63) {
+      label = 11;
+      break;
+    } else {
+      label = 10;
+      break;
+    }
+   case 10:
+    var $65 = $61 + 12 | 0;
+    HEAP32[$65 >> 2] = $57;
+    var $66 = $57 + 8 | 0;
+    HEAP32[$66 >> 2] = $61;
+    var $R_1 = $57;
+    label = 20;
+    break;
+   case 11:
+    _abort();
+   case 12:
+    var $69 = $v_0 + 20 | 0;
+    var $70 = HEAP32[$69 >> 2];
+    var $71 = ($70 | 0) == 0;
+    if ($71) {
+      label = 13;
+      break;
+    } else {
+      var $R_0 = $70;
+      var $RP_0 = $69;
+      label = 14;
+      break;
+    }
+   case 13:
+    var $73 = $v_0 + 16 | 0;
+    var $74 = HEAP32[$73 >> 2];
+    var $75 = ($74 | 0) == 0;
+    if ($75) {
+      var $R_1 = 0;
+      label = 20;
+      break;
+    } else {
+      var $R_0 = $74;
+      var $RP_0 = $73;
+      label = 14;
+      break;
+    }
+   case 14:
+    var $RP_0;
+    var $R_0;
+    var $76 = $R_0 + 20 | 0;
+    var $77 = HEAP32[$76 >> 2];
+    var $78 = ($77 | 0) == 0;
+    if ($78) {
+      label = 15;
+      break;
+    } else {
+      var $CP_0 = $76;
+      label = 16;
+      break;
+    }
+   case 15:
+    var $80 = $R_0 + 16 | 0;
+    var $81 = HEAP32[$80 >> 2];
+    var $82 = ($81 | 0) == 0;
+    if ($82) {
+      label = 17;
+      break;
+    } else {
+      var $CP_0 = $80;
+      label = 16;
+      break;
+    }
+   case 16:
+    var $CP_0;
+    var $83 = HEAP32[$CP_0 >> 2];
+    var $R_0 = $83;
+    var $RP_0 = $CP_0;
+    label = 14;
+    break;
+   case 17:
+    var $85 = $RP_0;
+    var $86 = HEAP32[5387520 >> 2];
+    var $87 = $85 >>> 0 < $86 >>> 0;
+    if ($87) {
+      label = 19;
+      break;
+    } else {
+      label = 18;
+      break;
+    }
+   case 18:
+    HEAP32[$RP_0 >> 2] = 0;
+    var $R_1 = $R_0;
+    label = 20;
+    break;
+   case 19:
+    _abort();
+   case 20:
+    var $R_1;
+    var $91 = ($55 | 0) == 0;
+    if ($91) {
+      label = 40;
+      break;
+    } else {
+      label = 21;
+      break;
+    }
+   case 21:
+    var $93 = $v_0 + 28 | 0;
+    var $94 = HEAP32[$93 >> 2];
+    var $95 = 5387808 + ($94 << 2) | 0;
+    var $96 = HEAP32[$95 >> 2];
+    var $97 = ($v_0 | 0) == ($96 | 0);
+    if ($97) {
+      label = 22;
+      break;
+    } else {
+      label = 24;
+      break;
+    }
+   case 22:
+    HEAP32[$95 >> 2] = $R_1;
+    var $cond = ($R_1 | 0) == 0;
+    if ($cond) {
+      label = 23;
+      break;
+    } else {
+      label = 30;
+      break;
+    }
+   case 23:
+    var $99 = HEAP32[$93 >> 2];
+    var $100 = 1 << $99;
+    var $101 = $100 ^ -1;
+    var $102 = HEAP32[5387508 >> 2];
+    var $103 = $102 & $101;
+    HEAP32[5387508 >> 2] = $103;
+    label = 40;
+    break;
+   case 24:
+    var $105 = $55;
+    var $106 = HEAP32[5387520 >> 2];
+    var $107 = $105 >>> 0 < $106 >>> 0;
+    if ($107) {
+      label = 28;
+      break;
+    } else {
+      label = 25;
+      break;
+    }
+   case 25:
+    var $109 = $55 + 16 | 0;
+    var $110 = HEAP32[$109 >> 2];
+    var $111 = ($110 | 0) == ($v_0 | 0);
+    if ($111) {
+      label = 26;
+      break;
+    } else {
+      label = 27;
+      break;
+    }
+   case 26:
+    HEAP32[$109 >> 2] = $R_1;
+    label = 29;
+    break;
+   case 27:
+    var $114 = $55 + 20 | 0;
+    HEAP32[$114 >> 2] = $R_1;
+    label = 29;
+    break;
+   case 28:
+    _abort();
+   case 29:
+    var $117 = ($R_1 | 0) == 0;
+    if ($117) {
+      label = 40;
+      break;
+    } else {
+      label = 30;
+      break;
+    }
+   case 30:
+    var $119 = $R_1;
+    var $120 = HEAP32[5387520 >> 2];
+    var $121 = $119 >>> 0 < $120 >>> 0;
+    if ($121) {
+      label = 39;
+      break;
+    } else {
+      label = 31;
+      break;
+    }
+   case 31:
+    var $123 = $R_1 + 24 | 0;
+    HEAP32[$123 >> 2] = $55;
+    var $124 = $v_0 + 16 | 0;
+    var $125 = HEAP32[$124 >> 2];
+    var $126 = ($125 | 0) == 0;
+    if ($126) {
+      label = 35;
+      break;
+    } else {
+      label = 32;
+      break;
+    }
+   case 32:
+    var $128 = $125;
+    var $129 = HEAP32[5387520 >> 2];
+    var $130 = $128 >>> 0 < $129 >>> 0;
+    if ($130) {
+      label = 34;
+      break;
+    } else {
+      label = 33;
+      break;
+    }
+   case 33:
+    var $132 = $R_1 + 16 | 0;
+    HEAP32[$132 >> 2] = $125;
+    var $133 = $125 + 24 | 0;
+    HEAP32[$133 >> 2] = $R_1;
+    label = 35;
+    break;
+   case 34:
+    _abort();
+   case 35:
+    var $136 = $v_0 + 20 | 0;
+    var $137 = HEAP32[$136 >> 2];
+    var $138 = ($137 | 0) == 0;
+    if ($138) {
+      label = 40;
+      break;
+    } else {
+      label = 36;
+      break;
+    }
+   case 36:
+    var $140 = $137;
+    var $141 = HEAP32[5387520 >> 2];
+    var $142 = $140 >>> 0 < $141 >>> 0;
+    if ($142) {
+      label = 38;
+      break;
+    } else {
+      label = 37;
+      break;
+    }
+   case 37:
+    var $144 = $R_1 + 20 | 0;
+    HEAP32[$144 >> 2] = $137;
+    var $145 = $137 + 24 | 0;
+    HEAP32[$145 >> 2] = $R_1;
+    label = 40;
+    break;
+   case 38:
+    _abort();
+   case 39:
+    _abort();
+   case 40:
+    var $149 = $rsize_0 >>> 0 < 16;
+    if ($149) {
+      label = 41;
+      break;
+    } else {
+      label = 42;
+      break;
+    }
+   case 41:
+    var $151 = $rsize_0 + $nb | 0;
+    var $152 = $151 | 3;
+    var $153 = $v_0 + 4 | 0;
+    HEAP32[$153 >> 2] = $152;
+    var $_sum4 = $151 + 4 | 0;
+    var $154 = $46 + $_sum4 | 0;
+    var $155 = $154;
+    var $156 = HEAP32[$155 >> 2];
+    var $157 = $156 | 1;
+    HEAP32[$155 >> 2] = $157;
+    label = 49;
+    break;
+   case 42:
+    var $159 = $nb | 3;
+    var $160 = $v_0 + 4 | 0;
+    HEAP32[$160 >> 2] = $159;
+    var $161 = $rsize_0 | 1;
+    var $_sum = $nb + 4 | 0;
+    var $162 = $46 + $_sum | 0;
+    var $163 = $162;
+    HEAP32[$163 >> 2] = $161;
+    var $_sum1 = $rsize_0 + $nb | 0;
+    var $164 = $46 + $_sum1 | 0;
+    var $165 = $164;
+    HEAP32[$165 >> 2] = $rsize_0;
+    var $166 = HEAP32[5387512 >> 2];
+    var $167 = ($166 | 0) == 0;
+    if ($167) {
+      label = 48;
+      break;
+    } else {
+      label = 43;
+      break;
+    }
+   case 43:
+    var $169 = HEAP32[5387524 >> 2];
+    var $170 = $166 >>> 3;
+    var $171 = $170 << 1;
+    var $172 = 5387544 + ($171 << 2) | 0;
+    var $173 = $172;
+    var $174 = HEAP32[5387504 >> 2];
+    var $175 = 1 << $170;
+    var $176 = $174 & $175;
+    var $177 = ($176 | 0) == 0;
+    if ($177) {
+      label = 44;
+      break;
+    } else {
+      label = 45;
+      break;
+    }
+   case 44:
+    var $179 = $174 | $175;
+    HEAP32[5387504 >> 2] = $179;
+    var $F1_0 = $173;
+    label = 47;
+    break;
+   case 45:
+    var $_sum3 = $171 + 2 | 0;
+    var $181 = 5387544 + ($_sum3 << 2) | 0;
+    var $182 = HEAP32[$181 >> 2];
+    var $183 = $182;
+    var $184 = HEAP32[5387520 >> 2];
+    var $185 = $183 >>> 0 < $184 >>> 0;
+    if ($185) {
+      label = 46;
+      break;
+    } else {
+      var $F1_0 = $182;
+      label = 47;
+      break;
+    }
+   case 46:
+    _abort();
+   case 47:
+    var $F1_0;
+    var $_sum2 = $171 + 2 | 0;
+    var $188 = 5387544 + ($_sum2 << 2) | 0;
+    HEAP32[$188 >> 2] = $169;
+    var $189 = $F1_0 + 12 | 0;
+    HEAP32[$189 >> 2] = $169;
+    var $190 = $169 + 8 | 0;
+    HEAP32[$190 >> 2] = $F1_0;
+    var $191 = $169 + 12 | 0;
+    HEAP32[$191 >> 2] = $173;
+    label = 48;
+    break;
+   case 48:
+    HEAP32[5387512 >> 2] = $rsize_0;
+    HEAP32[5387524 >> 2] = $51;
+    label = 49;
+    break;
+   case 49:
+    var $194 = $v_0 + 8 | 0;
+    var $195 = $194;
+    return $195;
+   case 50:
+    _abort();
+  }
+}
+_tmalloc_small["X"] = 1;
+function _sys_alloc($nb) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = HEAP32[5292248 >> 2];
+    var $2 = ($1 | 0) == 0;
+    if ($2) {
+      label = 3;
+      break;
+    } else {
+      label = 4;
+      break;
+    }
+   case 3:
+    _init_mparams();
+    label = 4;
+    break;
+   case 4:
+    var $5 = HEAP32[5387944 >> 2];
+    var $6 = $5 & 4;
+    var $7 = ($6 | 0) == 0;
+    if ($7) {
+      label = 5;
+      break;
+    } else {
+      var $tsize_125 = 0;
+      label = 24;
+      break;
+    }
+   case 5:
+    var $9 = HEAP32[5387528 >> 2];
+    var $10 = ($9 | 0) == 0;
+    if ($10) {
+      label = 7;
+      break;
+    } else {
+      label = 6;
+      break;
+    }
+   case 6:
+    var $12 = $9;
+    var $13 = _segment_holding($12);
+    var $14 = ($13 | 0) == 0;
+    if ($14) {
+      label = 7;
+      break;
+    } else {
+      label = 12;
+      break;
+    }
+   case 7:
+    var $15 = _sbrk(0);
+    var $16 = ($15 | 0) == -1;
+    if ($16) {
+      var $tsize_0121720_ph = 0;
+      label = 22;
+      break;
+    } else {
+      label = 8;
+      break;
+    }
+   case 8:
+    var $18 = HEAP32[5292256 >> 2];
+    var $19 = $nb + 47 | 0;
+    var $20 = $19 + $18 | 0;
+    var $21 = -$18 | 0;
+    var $22 = $20 & $21;
+    var $23 = $15;
+    var $24 = HEAP32[5292252 >> 2];
+    var $25 = $24 - 1 | 0;
+    var $26 = $25 & $23;
+    var $27 = ($26 | 0) == 0;
+    if ($27) {
+      var $asize_0 = $22;
+      label = 10;
+      break;
+    } else {
+      label = 9;
+      break;
+    }
+   case 9:
+    var $29 = $25 + $23 | 0;
+    var $30 = -$24 | 0;
+    var $31 = $29 & $30;
+    var $32 = $22 - $23 | 0;
+    var $33 = $32 + $31 | 0;
+    var $asize_0 = $33;
+    label = 10;
+    break;
+   case 10:
+    var $asize_0;
+    var $35 = $asize_0 >>> 0 < 2147483647;
+    if ($35) {
+      label = 11;
+      break;
+    } else {
+      var $tsize_0121720_ph = 0;
+      label = 22;
+      break;
+    }
+   case 11:
+    var $37 = _sbrk($asize_0);
+    var $38 = ($37 | 0) == ($15 | 0);
+    var $asize_0_ = $38 ? $asize_0 : 0;
+    var $_ = $38 ? $15 : -1;
+    var $tbase_0 = $_;
+    var $tsize_0 = $asize_0_;
+    var $br_0 = $37;
+    var $asize_1 = $asize_0;
+    label = 14;
+    break;
+   case 12:
+    var $40 = HEAP32[5387516 >> 2];
+    var $41 = HEAP32[5292256 >> 2];
+    var $42 = $nb + 47 | 0;
+    var $43 = $42 - $40 | 0;
+    var $44 = $43 + $41 | 0;
+    var $45 = -$41 | 0;
+    var $46 = $44 & $45;
+    var $47 = $46 >>> 0 < 2147483647;
+    if ($47) {
+      label = 13;
+      break;
+    } else {
+      var $tsize_0121720_ph = 0;
+      label = 22;
+      break;
+    }
+   case 13:
+    var $49 = _sbrk($46);
+    var $50 = $13 | 0;
+    var $51 = HEAP32[$50 >> 2];
+    var $52 = $13 + 4 | 0;
+    var $53 = HEAP32[$52 >> 2];
+    var $54 = $51 + $53 | 0;
+    var $55 = ($49 | 0) == ($54 | 0);
+    var $_1 = $55 ? $46 : 0;
+    var $_2 = $55 ? $49 : -1;
+    var $tbase_0 = $_2;
+    var $tsize_0 = $_1;
+    var $br_0 = $49;
+    var $asize_1 = $46;
+    label = 14;
+    break;
+   case 14:
+    var $asize_1;
+    var $br_0;
+    var $tsize_0;
+    var $tbase_0;
+    var $57 = -$asize_1 | 0;
+    var $58 = ($tbase_0 | 0) == -1;
+    if ($58) {
+      label = 15;
+      break;
+    } else {
+      var $tsize_229 = $tsize_0;
+      var $tbase_230 = $tbase_0;
+      label = 27;
+      break;
+    }
+   case 15:
+    var $60 = ($br_0 | 0) != -1;
+    var $61 = $asize_1 >>> 0 < 2147483647;
+    var $or_cond = $60 & $61;
+    if ($or_cond) {
+      label = 16;
+      break;
+    } else {
+      var $asize_2 = $asize_1;
+      label = 21;
+      break;
+    }
+   case 16:
+    var $63 = $nb + 48 | 0;
+    var $64 = $asize_1 >>> 0 < $63 >>> 0;
+    if ($64) {
+      label = 17;
+      break;
+    } else {
+      var $asize_2 = $asize_1;
+      label = 21;
+      break;
+    }
+   case 17:
+    var $66 = HEAP32[5292256 >> 2];
+    var $67 = $nb + 47 | 0;
+    var $68 = $67 - $asize_1 | 0;
+    var $69 = $68 + $66 | 0;
+    var $70 = -$66 | 0;
+    var $71 = $69 & $70;
+    var $72 = $71 >>> 0 < 2147483647;
+    if ($72) {
+      label = 18;
+      break;
+    } else {
+      var $asize_2 = $asize_1;
+      label = 21;
+      break;
+    }
+   case 18:
+    var $74 = _sbrk($71);
+    var $75 = ($74 | 0) == -1;
+    if ($75) {
+      label = 20;
+      break;
+    } else {
+      label = 19;
+      break;
+    }
+   case 19:
+    var $77 = $71 + $asize_1 | 0;
+    var $asize_2 = $77;
+    label = 21;
+    break;
+   case 20:
+    var $79 = _sbrk($57);
+    var $tsize_0121720_ph = $tsize_0;
+    label = 22;
+    break;
+   case 21:
+    var $asize_2;
+    var $81 = ($br_0 | 0) == -1;
+    if ($81) {
+      label = 23;
+      break;
+    } else {
+      var $tsize_229 = $asize_2;
+      var $tbase_230 = $br_0;
+      label = 27;
+      break;
+    }
+   case 22:
+    var $tsize_0121720_ph;
+    var $82 = HEAP32[5387944 >> 2];
+    var $83 = $82 | 4;
+    HEAP32[5387944 >> 2] = $83;
+    var $tsize_125 = $tsize_0121720_ph;
+    label = 24;
+    break;
+   case 23:
+    var $84 = HEAP32[5387944 >> 2];
+    var $85 = $84 | 4;
+    HEAP32[5387944 >> 2] = $85;
+    var $tsize_125 = $tsize_0;
+    label = 24;
+    break;
+   case 24:
+    var $tsize_125;
+    var $86 = HEAP32[5292256 >> 2];
+    var $87 = $nb + 47 | 0;
+    var $88 = $87 + $86 | 0;
+    var $89 = -$86 | 0;
+    var $90 = $88 & $89;
+    var $91 = $90 >>> 0 < 2147483647;
+    if ($91) {
+      label = 25;
+      break;
+    } else {
+      label = 48;
+      break;
+    }
+   case 25:
+    var $93 = _sbrk($90);
+    var $94 = _sbrk(0);
+    var $notlhs = ($93 | 0) != -1;
+    var $notrhs = ($94 | 0) != -1;
+    var $or_cond3_not = $notrhs & $notlhs;
+    var $95 = $93 >>> 0 < $94 >>> 0;
+    var $or_cond4 = $or_cond3_not & $95;
+    if ($or_cond4) {
+      label = 26;
+      break;
+    } else {
+      label = 48;
+      break;
+    }
+   case 26:
+    var $96 = $94;
+    var $97 = $93;
+    var $98 = $96 - $97 | 0;
+    var $99 = $nb + 40 | 0;
+    var $100 = $98 >>> 0 > $99 >>> 0;
+    var $_tsize_1 = $100 ? $98 : $tsize_125;
+    var $_tbase_1 = $100 ? $93 : -1;
+    var $101 = ($_tbase_1 | 0) == -1;
+    if ($101) {
+      label = 48;
+      break;
+    } else {
+      var $tsize_229 = $_tsize_1;
+      var $tbase_230 = $_tbase_1;
+      label = 27;
+      break;
+    }
+   case 27:
+    var $tbase_230;
+    var $tsize_229;
+    var $102 = HEAP32[5387936 >> 2];
+    var $103 = $102 + $tsize_229 | 0;
+    HEAP32[5387936 >> 2] = $103;
+    var $104 = HEAP32[5387940 >> 2];
+    var $105 = $103 >>> 0 > $104 >>> 0;
+    if ($105) {
+      label = 28;
+      break;
+    } else {
+      label = 29;
+      break;
+    }
+   case 28:
+    HEAP32[5387940 >> 2] = $103;
+    label = 29;
+    break;
+   case 29:
+    var $108 = HEAP32[5387528 >> 2];
+    var $109 = ($108 | 0) == 0;
+    if ($109) {
+      label = 30;
+      break;
+    } else {
+      var $sp_042 = 5387948;
+      label = 33;
+      break;
+    }
+   case 30:
+    var $111 = HEAP32[5387520 >> 2];
+    var $112 = ($111 | 0) == 0;
+    var $113 = $tbase_230 >>> 0 < $111 >>> 0;
+    var $or_cond5 = $112 | $113;
+    if ($or_cond5) {
+      label = 31;
+      break;
+    } else {
+      label = 32;
+      break;
+    }
+   case 31:
+    HEAP32[5387520 >> 2] = $tbase_230;
+    label = 32;
+    break;
+   case 32:
+    HEAP32[5387948 >> 2] = $tbase_230;
+    HEAP32[5387952 >> 2] = $tsize_229;
+    HEAP32[5387960 >> 2] = 0;
+    var $116 = HEAP32[5292248 >> 2];
+    HEAP32[5387540 >> 2] = $116;
+    HEAP32[5387536 >> 2] = -1;
+    _init_bins();
+    var $117 = $tbase_230;
+    var $118 = $tsize_229 - 40 | 0;
+    _init_top($117, $118);
+    label = 46;
+    break;
+   case 33:
+    var $sp_042;
+    var $119 = $sp_042 | 0;
+    var $120 = HEAP32[$119 >> 2];
+    var $121 = $sp_042 + 4 | 0;
+    var $122 = HEAP32[$121 >> 2];
+    var $123 = $120 + $122 | 0;
+    var $124 = ($tbase_230 | 0) == ($123 | 0);
+    if ($124) {
+      label = 35;
+      break;
+    } else {
+      label = 34;
+      break;
+    }
+   case 34:
+    var $126 = $sp_042 + 8 | 0;
+    var $127 = HEAP32[$126 >> 2];
+    var $128 = ($127 | 0) == 0;
+    if ($128) {
+      label = 38;
+      break;
+    } else {
+      var $sp_042 = $127;
+      label = 33;
+      break;
+    }
+   case 35:
+    var $129 = $sp_042 + 12 | 0;
+    var $130 = HEAP32[$129 >> 2];
+    var $131 = $130 & 8;
+    var $132 = ($131 | 0) == 0;
+    if ($132) {
+      label = 36;
+      break;
+    } else {
+      label = 38;
+      break;
+    }
+   case 36:
+    var $134 = HEAP32[5387528 >> 2];
+    var $135 = $134;
+    var $136 = $135 >>> 0 >= $120 >>> 0;
+    var $137 = $135 >>> 0 < $123 >>> 0;
+    var $or_cond31 = $136 & $137;
+    if ($or_cond31) {
+      label = 37;
+      break;
+    } else {
+      label = 38;
+      break;
+    }
+   case 37:
+    var $139 = $122 + $tsize_229 | 0;
+    HEAP32[$121 >> 2] = $139;
+    var $140 = HEAP32[5387528 >> 2];
+    var $141 = HEAP32[5387516 >> 2];
+    var $142 = $141 + $tsize_229 | 0;
+    _init_top($140, $142);
+    label = 46;
+    break;
+   case 38:
+    var $143 = HEAP32[5387520 >> 2];
+    var $144 = $tbase_230 >>> 0 < $143 >>> 0;
+    if ($144) {
+      label = 39;
+      break;
+    } else {
+      label = 40;
+      break;
+    }
+   case 39:
+    HEAP32[5387520 >> 2] = $tbase_230;
+    label = 40;
+    break;
+   case 40:
+    var $146 = $tbase_230 + $tsize_229 | 0;
+    var $sp_135 = 5387948;
+    label = 41;
+    break;
+   case 41:
+    var $sp_135;
+    var $148 = $sp_135 | 0;
+    var $149 = HEAP32[$148 >> 2];
+    var $150 = ($149 | 0) == ($146 | 0);
+    if ($150) {
+      label = 43;
+      break;
+    } else {
+      label = 42;
+      break;
+    }
+   case 42:
+    var $152 = $sp_135 + 8 | 0;
+    var $153 = HEAP32[$152 >> 2];
+    var $154 = ($153 | 0) == 0;
+    if ($154) {
+      label = 45;
+      break;
+    } else {
+      var $sp_135 = $153;
+      label = 41;
+      break;
+    }
+   case 43:
+    var $155 = $sp_135 + 12 | 0;
+    var $156 = HEAP32[$155 >> 2];
+    var $157 = $156 & 8;
+    var $158 = ($157 | 0) == 0;
+    if ($158) {
+      label = 44;
+      break;
+    } else {
+      label = 45;
+      break;
+    }
+   case 44:
+    HEAP32[$148 >> 2] = $tbase_230;
+    var $160 = $sp_135 + 4 | 0;
+    var $161 = HEAP32[$160 >> 2];
+    var $162 = $161 + $tsize_229 | 0;
+    HEAP32[$160 >> 2] = $162;
+    var $163 = _prepend_alloc($tbase_230, $149, $nb);
+    var $_0 = $163;
+    label = 49;
+    break;
+   case 45:
+    _add_segment($tbase_230, $tsize_229);
+    label = 46;
+    break;
+   case 46:
+    var $165 = HEAP32[5387516 >> 2];
+    var $166 = $165 >>> 0 > $nb >>> 0;
+    if ($166) {
+      label = 47;
+      break;
+    } else {
+      label = 48;
+      break;
+    }
+   case 47:
+    var $168 = $165 - $nb | 0;
+    HEAP32[5387516 >> 2] = $168;
+    var $169 = HEAP32[5387528 >> 2];
+    var $170 = $169;
+    var $171 = $170 + $nb | 0;
+    var $172 = $171;
+    HEAP32[5387528 >> 2] = $172;
+    var $173 = $168 | 1;
+    var $_sum = $nb + 4 | 0;
+    var $174 = $170 + $_sum | 0;
+    var $175 = $174;
+    HEAP32[$175 >> 2] = $173;
+    var $176 = $nb | 3;
+    var $177 = $169 + 4 | 0;
+    HEAP32[$177 >> 2] = $176;
+    var $178 = $169 + 8 | 0;
+    var $179 = $178;
+    var $_0 = $179;
+    label = 49;
+    break;
+   case 48:
+    var $180 = ___errno_location();
+    HEAP32[$180 >> 2] = 12;
+    var $_0 = 0;
+    label = 49;
+    break;
+   case 49:
+    var $_0;
+    return $_0;
+  }
+}
+_sys_alloc["X"] = 1;
+function _tmalloc_large($nb) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = -$nb | 0;
+    var $2 = $nb >>> 8;
+    var $3 = ($2 | 0) == 0;
+    if ($3) {
+      var $idx_0 = 0;
+      label = 5;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 3:
+    var $5 = $nb >>> 0 > 16777215;
+    if ($5) {
+      var $idx_0 = 31;
+      label = 5;
+      break;
+    } else {
+      label = 4;
+      break;
+    }
+   case 4:
+    var $7 = $2 + 1048320 | 0;
+    var $8 = $7 >>> 16;
+    var $9 = $8 & 8;
+    var $10 = $2 << $9;
+    var $11 = $10 + 520192 | 0;
+    var $12 = $11 >>> 16;
+    var $13 = $12 & 4;
+    var $14 = $13 | $9;
+    var $15 = $10 << $13;
+    var $16 = $15 + 245760 | 0;
+    var $17 = $16 >>> 16;
+    var $18 = $17 & 2;
+    var $19 = $14 | $18;
+    var $20 = 14 - $19 | 0;
+    var $21 = $15 << $18;
+    var $22 = $21 >>> 15;
+    var $23 = $20 + $22 | 0;
+    var $24 = $23 << 1;
+    var $25 = $23 + 7 | 0;
+    var $26 = $nb >>> ($25 >>> 0);
+    var $27 = $26 & 1;
+    var $28 = $27 | $24;
+    var $idx_0 = $28;
+    label = 5;
+    break;
+   case 5:
+    var $idx_0;
+    var $30 = 5387808 + ($idx_0 << 2) | 0;
+    var $31 = HEAP32[$30 >> 2];
+    var $32 = ($31 | 0) == 0;
+    if ($32) {
+      var $v_2 = 0;
+      var $rsize_2 = $1;
+      var $t_1 = 0;
+      label = 12;
+      break;
+    } else {
+      label = 6;
+      break;
+    }
+   case 6:
+    var $34 = ($idx_0 | 0) == 31;
+    if ($34) {
+      var $39 = 0;
+      label = 8;
+      break;
+    } else {
+      label = 7;
+      break;
+    }
+   case 7:
+    var $36 = $idx_0 >>> 1;
+    var $37 = 25 - $36 | 0;
+    var $39 = $37;
+    label = 8;
+    break;
+   case 8:
+    var $39;
+    var $40 = $nb << $39;
+    var $v_0 = 0;
+    var $rsize_0 = $1;
+    var $t_0 = $31;
+    var $sizebits_0 = $40;
+    var $rst_0 = 0;
+    label = 9;
+    break;
+   case 9:
+    var $rst_0;
+    var $sizebits_0;
+    var $t_0;
+    var $rsize_0;
+    var $v_0;
+    var $42 = $t_0 + 4 | 0;
+    var $43 = HEAP32[$42 >> 2];
+    var $44 = $43 & -8;
+    var $45 = $44 - $nb | 0;
+    var $46 = $45 >>> 0 < $rsize_0 >>> 0;
+    if ($46) {
+      label = 10;
+      break;
+    } else {
+      var $v_1 = $v_0;
+      var $rsize_1 = $rsize_0;
+      label = 11;
+      break;
+    }
+   case 10:
+    var $48 = ($44 | 0) == ($nb | 0);
+    if ($48) {
+      var $v_2 = $t_0;
+      var $rsize_2 = $45;
+      var $t_1 = $t_0;
+      label = 12;
+      break;
+    } else {
+      var $v_1 = $t_0;
+      var $rsize_1 = $45;
+      label = 11;
+      break;
+    }
+   case 11:
+    var $rsize_1;
+    var $v_1;
+    var $50 = $t_0 + 20 | 0;
+    var $51 = HEAP32[$50 >> 2];
+    var $52 = $sizebits_0 >>> 31;
+    var $53 = $t_0 + 16 + ($52 << 2) | 0;
+    var $54 = HEAP32[$53 >> 2];
+    var $55 = ($51 | 0) == 0;
+    var $56 = ($51 | 0) == ($54 | 0);
+    var $or_cond = $55 | $56;
+    var $rst_1 = $or_cond ? $rst_0 : $51;
+    var $57 = ($54 | 0) == 0;
+    var $58 = $sizebits_0 << 1;
+    if ($57) {
+      var $v_2 = $v_1;
+      var $rsize_2 = $rsize_1;
+      var $t_1 = $rst_1;
+      label = 12;
+      break;
+    } else {
+      var $v_0 = $v_1;
+      var $rsize_0 = $rsize_1;
+      var $t_0 = $54;
+      var $sizebits_0 = $58;
+      var $rst_0 = $rst_1;
+      label = 9;
+      break;
+    }
+   case 12:
+    var $t_1;
+    var $rsize_2;
+    var $v_2;
+    var $59 = ($t_1 | 0) == 0;
+    var $60 = ($v_2 | 0) == 0;
+    var $or_cond19 = $59 & $60;
+    if ($or_cond19) {
+      label = 13;
+      break;
+    } else {
+      var $t_2_ph = $t_1;
+      label = 15;
+      break;
+    }
+   case 13:
+    var $62 = 2 << $idx_0;
+    var $63 = -$62 | 0;
+    var $64 = $62 | $63;
+    var $65 = HEAP32[5387508 >> 2];
+    var $66 = $65 & $64;
+    var $67 = ($66 | 0) == 0;
+    if ($67) {
+      var $t_2_ph = $t_1;
+      label = 15;
+      break;
+    } else {
+      label = 14;
+      break;
+    }
+   case 14:
+    var $69 = -$66 | 0;
+    var $70 = $66 & $69;
+    var $71 = $70 - 1 | 0;
+    var $72 = $71 >>> 12;
+    var $73 = $72 & 16;
+    var $74 = $71 >>> ($73 >>> 0);
+    var $75 = $74 >>> 5;
+    var $76 = $75 & 8;
+    var $77 = $76 | $73;
+    var $78 = $74 >>> ($76 >>> 0);
+    var $79 = $78 >>> 2;
+    var $80 = $79 & 4;
+    var $81 = $77 | $80;
+    var $82 = $78 >>> ($80 >>> 0);
+    var $83 = $82 >>> 1;
+    var $84 = $83 & 2;
+    var $85 = $81 | $84;
+    var $86 = $82 >>> ($84 >>> 0);
+    var $87 = $86 >>> 1;
+    var $88 = $87 & 1;
+    var $89 = $85 | $88;
+    var $90 = $86 >>> ($88 >>> 0);
+    var $91 = $89 + $90 | 0;
+    var $92 = 5387808 + ($91 << 2) | 0;
+    var $93 = HEAP32[$92 >> 2];
+    var $t_2_ph = $93;
+    label = 15;
+    break;
+   case 15:
+    var $t_2_ph;
+    var $94 = ($t_2_ph | 0) == 0;
+    if ($94) {
+      var $rsize_3_lcssa = $rsize_2;
+      var $v_3_lcssa = $v_2;
+      label = 18;
+      break;
+    } else {
+      var $t_224 = $t_2_ph;
+      var $rsize_325 = $rsize_2;
+      var $v_326 = $v_2;
+      label = 16;
+      break;
+    }
+   case 16:
+    var $v_326;
+    var $rsize_325;
+    var $t_224;
+    var $95 = $t_224 + 4 | 0;
+    var $96 = HEAP32[$95 >> 2];
+    var $97 = $96 & -8;
+    var $98 = $97 - $nb | 0;
+    var $99 = $98 >>> 0 < $rsize_325 >>> 0;
+    var $_rsize_3 = $99 ? $98 : $rsize_325;
+    var $t_2_v_3 = $99 ? $t_224 : $v_326;
+    var $100 = $t_224 + 16 | 0;
+    var $101 = HEAP32[$100 >> 2];
+    var $102 = ($101 | 0) == 0;
+    if ($102) {
+      label = 17;
+      break;
+    } else {
+      var $t_224 = $101;
+      var $rsize_325 = $_rsize_3;
+      var $v_326 = $t_2_v_3;
+      label = 16;
+      break;
+    }
+   case 17:
+    var $103 = $t_224 + 20 | 0;
+    var $104 = HEAP32[$103 >> 2];
+    var $105 = ($104 | 0) == 0;
+    if ($105) {
+      var $rsize_3_lcssa = $_rsize_3;
+      var $v_3_lcssa = $t_2_v_3;
+      label = 18;
+      break;
+    } else {
+      var $t_224 = $104;
+      var $rsize_325 = $_rsize_3;
+      var $v_326 = $t_2_v_3;
+      label = 16;
+      break;
+    }
+   case 18:
+    var $v_3_lcssa;
+    var $rsize_3_lcssa;
+    var $106 = ($v_3_lcssa | 0) == 0;
+    if ($106) {
+      var $_0 = 0;
+      label = 81;
+      break;
+    } else {
+      label = 19;
+      break;
+    }
+   case 19:
+    var $108 = HEAP32[5387512 >> 2];
+    var $109 = $108 - $nb | 0;
+    var $110 = $rsize_3_lcssa >>> 0 < $109 >>> 0;
+    if ($110) {
+      label = 20;
+      break;
+    } else {
+      var $_0 = 0;
+      label = 81;
+      break;
+    }
+   case 20:
+    var $112 = $v_3_lcssa;
+    var $113 = HEAP32[5387520 >> 2];
+    var $114 = $112 >>> 0 < $113 >>> 0;
+    if ($114) {
+      label = 80;
+      break;
+    } else {
+      label = 21;
+      break;
+    }
+   case 21:
+    var $116 = $112 + $nb | 0;
+    var $117 = $116;
+    var $118 = $112 >>> 0 < $116 >>> 0;
+    if ($118) {
+      label = 22;
+      break;
+    } else {
+      label = 80;
+      break;
+    }
+   case 22:
+    var $120 = $v_3_lcssa + 24 | 0;
+    var $121 = HEAP32[$120 >> 2];
+    var $122 = $v_3_lcssa + 12 | 0;
+    var $123 = HEAP32[$122 >> 2];
+    var $124 = ($123 | 0) == ($v_3_lcssa | 0);
+    if ($124) {
+      label = 26;
+      break;
+    } else {
+      label = 23;
+      break;
+    }
+   case 23:
+    var $126 = $v_3_lcssa + 8 | 0;
+    var $127 = HEAP32[$126 >> 2];
+    var $128 = $127;
+    var $129 = $128 >>> 0 < $113 >>> 0;
+    if ($129) {
+      label = 25;
+      break;
+    } else {
+      label = 24;
+      break;
+    }
+   case 24:
+    var $131 = $127 + 12 | 0;
+    HEAP32[$131 >> 2] = $123;
+    var $132 = $123 + 8 | 0;
+    HEAP32[$132 >> 2] = $127;
+    var $R_1 = $123;
+    label = 34;
+    break;
+   case 25:
+    _abort();
+   case 26:
+    var $135 = $v_3_lcssa + 20 | 0;
+    var $136 = HEAP32[$135 >> 2];
+    var $137 = ($136 | 0) == 0;
+    if ($137) {
+      label = 27;
+      break;
+    } else {
+      var $R_0 = $136;
+      var $RP_0 = $135;
+      label = 28;
+      break;
+    }
+   case 27:
+    var $139 = $v_3_lcssa + 16 | 0;
+    var $140 = HEAP32[$139 >> 2];
+    var $141 = ($140 | 0) == 0;
+    if ($141) {
+      var $R_1 = 0;
+      label = 34;
+      break;
+    } else {
+      var $R_0 = $140;
+      var $RP_0 = $139;
+      label = 28;
+      break;
+    }
+   case 28:
+    var $RP_0;
+    var $R_0;
+    var $142 = $R_0 + 20 | 0;
+    var $143 = HEAP32[$142 >> 2];
+    var $144 = ($143 | 0) == 0;
+    if ($144) {
+      label = 29;
+      break;
+    } else {
+      var $CP_0 = $142;
+      label = 30;
+      break;
+    }
+   case 29:
+    var $146 = $R_0 + 16 | 0;
+    var $147 = HEAP32[$146 >> 2];
+    var $148 = ($147 | 0) == 0;
+    if ($148) {
+      label = 31;
+      break;
+    } else {
+      var $CP_0 = $146;
+      label = 30;
+      break;
+    }
+   case 30:
+    var $CP_0;
+    var $149 = HEAP32[$CP_0 >> 2];
+    var $R_0 = $149;
+    var $RP_0 = $CP_0;
+    label = 28;
+    break;
+   case 31:
+    var $151 = $RP_0;
+    var $152 = HEAP32[5387520 >> 2];
+    var $153 = $151 >>> 0 < $152 >>> 0;
+    if ($153) {
+      label = 33;
+      break;
+    } else {
+      label = 32;
+      break;
+    }
+   case 32:
+    HEAP32[$RP_0 >> 2] = 0;
+    var $R_1 = $R_0;
+    label = 34;
+    break;
+   case 33:
+    _abort();
+   case 34:
+    var $R_1;
+    var $157 = ($121 | 0) == 0;
+    if ($157) {
+      label = 54;
+      break;
+    } else {
+      label = 35;
+      break;
+    }
+   case 35:
+    var $159 = $v_3_lcssa + 28 | 0;
+    var $160 = HEAP32[$159 >> 2];
+    var $161 = 5387808 + ($160 << 2) | 0;
+    var $162 = HEAP32[$161 >> 2];
+    var $163 = ($v_3_lcssa | 0) == ($162 | 0);
+    if ($163) {
+      label = 36;
+      break;
+    } else {
+      label = 38;
+      break;
+    }
+   case 36:
+    HEAP32[$161 >> 2] = $R_1;
+    var $cond = ($R_1 | 0) == 0;
+    if ($cond) {
+      label = 37;
+      break;
+    } else {
+      label = 44;
+      break;
+    }
+   case 37:
+    var $165 = HEAP32[$159 >> 2];
+    var $166 = 1 << $165;
+    var $167 = $166 ^ -1;
+    var $168 = HEAP32[5387508 >> 2];
+    var $169 = $168 & $167;
+    HEAP32[5387508 >> 2] = $169;
+    label = 54;
+    break;
+   case 38:
+    var $171 = $121;
+    var $172 = HEAP32[5387520 >> 2];
+    var $173 = $171 >>> 0 < $172 >>> 0;
+    if ($173) {
+      label = 42;
+      break;
+    } else {
+      label = 39;
+      break;
+    }
+   case 39:
+    var $175 = $121 + 16 | 0;
+    var $176 = HEAP32[$175 >> 2];
+    var $177 = ($176 | 0) == ($v_3_lcssa | 0);
+    if ($177) {
+      label = 40;
+      break;
+    } else {
+      label = 41;
+      break;
+    }
+   case 40:
+    HEAP32[$175 >> 2] = $R_1;
+    label = 43;
+    break;
+   case 41:
+    var $180 = $121 + 20 | 0;
+    HEAP32[$180 >> 2] = $R_1;
+    label = 43;
+    break;
+   case 42:
+    _abort();
+   case 43:
+    var $183 = ($R_1 | 0) == 0;
+    if ($183) {
+      label = 54;
+      break;
+    } else {
+      label = 44;
+      break;
+    }
+   case 44:
+    var $185 = $R_1;
+    var $186 = HEAP32[5387520 >> 2];
+    var $187 = $185 >>> 0 < $186 >>> 0;
+    if ($187) {
+      label = 53;
+      break;
+    } else {
+      label = 45;
+      break;
+    }
+   case 45:
+    var $189 = $R_1 + 24 | 0;
+    HEAP32[$189 >> 2] = $121;
+    var $190 = $v_3_lcssa + 16 | 0;
+    var $191 = HEAP32[$190 >> 2];
+    var $192 = ($191 | 0) == 0;
+    if ($192) {
+      label = 49;
+      break;
+    } else {
+      label = 46;
+      break;
+    }
+   case 46:
+    var $194 = $191;
+    var $195 = HEAP32[5387520 >> 2];
+    var $196 = $194 >>> 0 < $195 >>> 0;
+    if ($196) {
+      label = 48;
+      break;
+    } else {
+      label = 47;
+      break;
+    }
+   case 47:
+    var $198 = $R_1 + 16 | 0;
+    HEAP32[$198 >> 2] = $191;
+    var $199 = $191 + 24 | 0;
+    HEAP32[$199 >> 2] = $R_1;
+    label = 49;
+    break;
+   case 48:
+    _abort();
+   case 49:
+    var $202 = $v_3_lcssa + 20 | 0;
+    var $203 = HEAP32[$202 >> 2];
+    var $204 = ($203 | 0) == 0;
+    if ($204) {
+      label = 54;
+      break;
+    } else {
+      label = 50;
+      break;
+    }
+   case 50:
+    var $206 = $203;
+    var $207 = HEAP32[5387520 >> 2];
+    var $208 = $206 >>> 0 < $207 >>> 0;
+    if ($208) {
+      label = 52;
+      break;
+    } else {
+      label = 51;
+      break;
+    }
+   case 51:
+    var $210 = $R_1 + 20 | 0;
+    HEAP32[$210 >> 2] = $203;
+    var $211 = $203 + 24 | 0;
+    HEAP32[$211 >> 2] = $R_1;
+    label = 54;
+    break;
+   case 52:
+    _abort();
+   case 53:
+    _abort();
+   case 54:
+    var $215 = $rsize_3_lcssa >>> 0 < 16;
+    if ($215) {
+      label = 55;
+      break;
+    } else {
+      label = 56;
+      break;
+    }
+   case 55:
+    var $217 = $rsize_3_lcssa + $nb | 0;
+    var $218 = $217 | 3;
+    var $219 = $v_3_lcssa + 4 | 0;
+    HEAP32[$219 >> 2] = $218;
+    var $_sum18 = $217 + 4 | 0;
+    var $220 = $112 + $_sum18 | 0;
+    var $221 = $220;
+    var $222 = HEAP32[$221 >> 2];
+    var $223 = $222 | 1;
+    HEAP32[$221 >> 2] = $223;
+    label = 79;
+    break;
+   case 56:
+    var $225 = $nb | 3;
+    var $226 = $v_3_lcssa + 4 | 0;
+    HEAP32[$226 >> 2] = $225;
+    var $227 = $rsize_3_lcssa | 1;
+    var $_sum = $nb + 4 | 0;
+    var $228 = $112 + $_sum | 0;
+    var $229 = $228;
+    HEAP32[$229 >> 2] = $227;
+    var $_sum1 = $rsize_3_lcssa + $nb | 0;
+    var $230 = $112 + $_sum1 | 0;
+    var $231 = $230;
+    HEAP32[$231 >> 2] = $rsize_3_lcssa;
+    var $232 = $rsize_3_lcssa >>> 3;
+    var $233 = $rsize_3_lcssa >>> 0 < 256;
+    if ($233) {
+      label = 57;
+      break;
+    } else {
+      label = 62;
+      break;
+    }
+   case 57:
+    var $235 = $232 << 1;
+    var $236 = 5387544 + ($235 << 2) | 0;
+    var $237 = $236;
+    var $238 = HEAP32[5387504 >> 2];
+    var $239 = 1 << $232;
+    var $240 = $238 & $239;
+    var $241 = ($240 | 0) == 0;
+    if ($241) {
+      label = 58;
+      break;
+    } else {
+      label = 59;
+      break;
+    }
+   case 58:
+    var $243 = $238 | $239;
+    HEAP32[5387504 >> 2] = $243;
+    var $F5_0 = $237;
+    label = 61;
+    break;
+   case 59:
+    var $_sum17 = $235 + 2 | 0;
+    var $245 = 5387544 + ($_sum17 << 2) | 0;
+    var $246 = HEAP32[$245 >> 2];
+    var $247 = $246;
+    var $248 = HEAP32[5387520 >> 2];
+    var $249 = $247 >>> 0 < $248 >>> 0;
+    if ($249) {
+      label = 60;
+      break;
+    } else {
+      var $F5_0 = $246;
+      label = 61;
+      break;
+    }
+   case 60:
+    _abort();
+   case 61:
+    var $F5_0;
+    var $_sum14 = $235 + 2 | 0;
+    var $252 = 5387544 + ($_sum14 << 2) | 0;
+    HEAP32[$252 >> 2] = $117;
+    var $253 = $F5_0 + 12 | 0;
+    HEAP32[$253 >> 2] = $117;
+    var $_sum15 = $nb + 8 | 0;
+    var $254 = $112 + $_sum15 | 0;
+    var $255 = $254;
+    HEAP32[$255 >> 2] = $F5_0;
+    var $_sum16 = $nb + 12 | 0;
+    var $256 = $112 + $_sum16 | 0;
+    var $257 = $256;
+    HEAP32[$257 >> 2] = $237;
+    label = 79;
+    break;
+   case 62:
+    var $259 = $116;
+    var $260 = $rsize_3_lcssa >>> 8;
+    var $261 = ($260 | 0) == 0;
+    if ($261) {
+      var $I7_0 = 0;
+      label = 65;
+      break;
+    } else {
+      label = 63;
+      break;
+    }
+   case 63:
+    var $263 = $rsize_3_lcssa >>> 0 > 16777215;
+    if ($263) {
+      var $I7_0 = 31;
+      label = 65;
+      break;
+    } else {
+      label = 64;
+      break;
+    }
+   case 64:
+    var $265 = $260 + 1048320 | 0;
+    var $266 = $265 >>> 16;
+    var $267 = $266 & 8;
+    var $268 = $260 << $267;
+    var $269 = $268 + 520192 | 0;
+    var $270 = $269 >>> 16;
+    var $271 = $270 & 4;
+    var $272 = $271 | $267;
+    var $273 = $268 << $271;
+    var $274 = $273 + 245760 | 0;
+    var $275 = $274 >>> 16;
+    var $276 = $275 & 2;
+    var $277 = $272 | $276;
+    var $278 = 14 - $277 | 0;
+    var $279 = $273 << $276;
+    var $280 = $279 >>> 15;
+    var $281 = $278 + $280 | 0;
+    var $282 = $281 << 1;
+    var $283 = $281 + 7 | 0;
+    var $284 = $rsize_3_lcssa >>> ($283 >>> 0);
+    var $285 = $284 & 1;
+    var $286 = $285 | $282;
+    var $I7_0 = $286;
+    label = 65;
+    break;
+   case 65:
+    var $I7_0;
+    var $288 = 5387808 + ($I7_0 << 2) | 0;
+    var $_sum2 = $nb + 28 | 0;
+    var $289 = $112 + $_sum2 | 0;
+    var $290 = $289;
+    HEAP32[$290 >> 2] = $I7_0;
+    var $_sum3 = $nb + 16 | 0;
+    var $291 = $112 + $_sum3 | 0;
+    var $_sum4 = $nb + 20 | 0;
+    var $292 = $112 + $_sum4 | 0;
+    var $293 = $292;
+    HEAP32[$293 >> 2] = 0;
+    var $294 = $291;
+    HEAP32[$294 >> 2] = 0;
+    var $295 = HEAP32[5387508 >> 2];
+    var $296 = 1 << $I7_0;
+    var $297 = $295 & $296;
+    var $298 = ($297 | 0) == 0;
+    if ($298) {
+      label = 66;
+      break;
+    } else {
+      label = 67;
+      break;
+    }
+   case 66:
+    var $300 = $295 | $296;
+    HEAP32[5387508 >> 2] = $300;
+    HEAP32[$288 >> 2] = $259;
+    var $301 = $288;
+    var $_sum5 = $nb + 24 | 0;
+    var $302 = $112 + $_sum5 | 0;
+    var $303 = $302;
+    HEAP32[$303 >> 2] = $301;
+    var $_sum6 = $nb + 12 | 0;
+    var $304 = $112 + $_sum6 | 0;
+    var $305 = $304;
+    HEAP32[$305 >> 2] = $259;
+    var $_sum7 = $nb + 8 | 0;
+    var $306 = $112 + $_sum7 | 0;
+    var $307 = $306;
+    HEAP32[$307 >> 2] = $259;
+    label = 79;
+    break;
+   case 67:
+    var $309 = HEAP32[$288 >> 2];
+    var $310 = ($I7_0 | 0) == 31;
+    if ($310) {
+      var $315 = 0;
+      label = 69;
+      break;
+    } else {
+      label = 68;
+      break;
+    }
+   case 68:
+    var $312 = $I7_0 >>> 1;
+    var $313 = 25 - $312 | 0;
+    var $315 = $313;
+    label = 69;
+    break;
+   case 69:
+    var $315;
+    var $316 = $rsize_3_lcssa << $315;
+    var $K12_0 = $316;
+    var $T_0 = $309;
+    label = 70;
+    break;
+   case 70:
+    var $T_0;
+    var $K12_0;
+    var $318 = $T_0 + 4 | 0;
+    var $319 = HEAP32[$318 >> 2];
+    var $320 = $319 & -8;
+    var $321 = ($320 | 0) == ($rsize_3_lcssa | 0);
+    if ($321) {
+      label = 75;
+      break;
+    } else {
+      label = 71;
+      break;
+    }
+   case 71:
+    var $323 = $K12_0 >>> 31;
+    var $324 = $T_0 + 16 + ($323 << 2) | 0;
+    var $325 = HEAP32[$324 >> 2];
+    var $326 = ($325 | 0) == 0;
+    var $327 = $K12_0 << 1;
+    if ($326) {
+      label = 72;
+      break;
+    } else {
+      var $K12_0 = $327;
+      var $T_0 = $325;
+      label = 70;
+      break;
+    }
+   case 72:
+    var $329 = $324;
+    var $330 = HEAP32[5387520 >> 2];
+    var $331 = $329 >>> 0 < $330 >>> 0;
+    if ($331) {
+      label = 74;
+      break;
+    } else {
+      label = 73;
+      break;
+    }
+   case 73:
+    HEAP32[$324 >> 2] = $259;
+    var $_sum11 = $nb + 24 | 0;
+    var $333 = $112 + $_sum11 | 0;
+    var $334 = $333;
+    HEAP32[$334 >> 2] = $T_0;
+    var $_sum12 = $nb + 12 | 0;
+    var $335 = $112 + $_sum12 | 0;
+    var $336 = $335;
+    HEAP32[$336 >> 2] = $259;
+    var $_sum13 = $nb + 8 | 0;
+    var $337 = $112 + $_sum13 | 0;
+    var $338 = $337;
+    HEAP32[$338 >> 2] = $259;
+    label = 79;
+    break;
+   case 74:
+    _abort();
+   case 75:
+    var $341 = $T_0 + 8 | 0;
+    var $342 = HEAP32[$341 >> 2];
+    var $343 = $T_0;
+    var $344 = HEAP32[5387520 >> 2];
+    var $345 = $343 >>> 0 < $344 >>> 0;
+    if ($345) {
+      label = 78;
+      break;
+    } else {
+      label = 76;
+      break;
+    }
+   case 76:
+    var $347 = $342;
+    var $348 = $347 >>> 0 < $344 >>> 0;
+    if ($348) {
+      label = 78;
+      break;
+    } else {
+      label = 77;
+      break;
+    }
+   case 77:
+    var $350 = $342 + 12 | 0;
+    HEAP32[$350 >> 2] = $259;
+    HEAP32[$341 >> 2] = $259;
+    var $_sum8 = $nb + 8 | 0;
+    var $351 = $112 + $_sum8 | 0;
+    var $352 = $351;
+    HEAP32[$352 >> 2] = $342;
+    var $_sum9 = $nb + 12 | 0;
+    var $353 = $112 + $_sum9 | 0;
+    var $354 = $353;
+    HEAP32[$354 >> 2] = $T_0;
+    var $_sum10 = $nb + 24 | 0;
+    var $355 = $112 + $_sum10 | 0;
+    var $356 = $355;
+    HEAP32[$356 >> 2] = 0;
+    label = 79;
+    break;
+   case 78:
+    _abort();
+   case 79:
+    var $358 = $v_3_lcssa + 8 | 0;
+    var $359 = $358;
+    var $_0 = $359;
+    label = 81;
+    break;
+   case 80:
+    _abort();
+   case 81:
+    var $_0;
+    return $_0;
+  }
+}
+_tmalloc_large["X"] = 1;
+function _sys_trim($pad) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = HEAP32[5292248 >> 2];
+    var $2 = ($1 | 0) == 0;
+    if ($2) {
+      label = 3;
+      break;
+    } else {
+      label = 4;
+      break;
+    }
+   case 3:
+    _init_mparams();
+    label = 4;
+    break;
+   case 4:
+    var $5 = $pad >>> 0 < 4294967232;
+    if ($5) {
+      label = 5;
+      break;
+    } else {
+      var $released_2 = 0;
+      label = 14;
+      break;
+    }
+   case 5:
+    var $7 = HEAP32[5387528 >> 2];
+    var $8 = ($7 | 0) == 0;
+    if ($8) {
+      var $released_2 = 0;
+      label = 14;
+      break;
+    } else {
+      label = 6;
+      break;
+    }
+   case 6:
+    var $10 = $pad + 40 | 0;
+    var $11 = HEAP32[5387516 >> 2];
+    var $12 = $11 >>> 0 > $10 >>> 0;
+    if ($12) {
+      label = 7;
+      break;
+    } else {
+      label = 12;
+      break;
+    }
+   case 7:
+    var $14 = HEAP32[5292256 >> 2];
+    var $_neg = -40 - $pad | 0;
+    var $15 = $_neg - 1 | 0;
+    var $16 = $15 + $11 | 0;
+    var $17 = $16 + $14 | 0;
+    var $18 = Math.floor(($17 >>> 0) / ($14 >>> 0));
+    var $19 = $18 - 1 | 0;
+    var $20 = $19 * $14 & -1;
+    var $21 = $7;
+    var $22 = _segment_holding($21);
+    var $23 = $22 + 12 | 0;
+    var $24 = HEAP32[$23 >> 2];
+    var $25 = $24 & 8;
+    var $26 = ($25 | 0) == 0;
+    if ($26) {
+      label = 8;
+      break;
+    } else {
+      label = 12;
+      break;
+    }
+   case 8:
+    var $28 = _sbrk(0);
+    var $29 = $22 | 0;
+    var $30 = HEAP32[$29 >> 2];
+    var $31 = $22 + 4 | 0;
+    var $32 = HEAP32[$31 >> 2];
+    var $33 = $30 + $32 | 0;
+    var $34 = ($28 | 0) == ($33 | 0);
+    if ($34) {
+      label = 9;
+      break;
+    } else {
+      label = 12;
+      break;
+    }
+   case 9:
+    var $36 = -2147483648 - $14 | 0;
+    var $37 = $20 >>> 0 > 2147483646;
+    var $_ = $37 ? $36 : $20;
+    var $38 = -$_ | 0;
+    var $39 = _sbrk($38);
+    var $40 = _sbrk(0);
+    var $41 = ($39 | 0) != -1;
+    var $42 = $40 >>> 0 < $28 >>> 0;
+    var $or_cond = $41 & $42;
+    if ($or_cond) {
+      label = 10;
+      break;
+    } else {
+      label = 12;
+      break;
+    }
+   case 10:
+    var $44 = $28;
+    var $45 = $40;
+    var $46 = $44 - $45 | 0;
+    var $47 = ($28 | 0) == ($40 | 0);
+    if ($47) {
+      label = 12;
+      break;
+    } else {
+      label = 11;
+      break;
+    }
+   case 11:
+    var $49 = $22 + 4 | 0;
+    var $50 = HEAP32[$49 >> 2];
+    var $51 = $50 - $46 | 0;
+    HEAP32[$49 >> 2] = $51;
+    var $52 = HEAP32[5387936 >> 2];
+    var $53 = $52 - $46 | 0;
+    HEAP32[5387936 >> 2] = $53;
+    var $54 = HEAP32[5387528 >> 2];
+    var $55 = HEAP32[5387516 >> 2];
+    var $56 = $55 - $46 | 0;
+    _init_top($54, $56);
+    var $phitmp = ($28 | 0) != ($40 | 0);
+    var $released_2 = $phitmp;
+    label = 14;
+    break;
+   case 12:
+    var $57 = HEAP32[5387516 >> 2];
+    var $58 = HEAP32[5387532 >> 2];
+    var $59 = $57 >>> 0 > $58 >>> 0;
+    if ($59) {
+      label = 13;
+      break;
+    } else {
+      var $released_2 = 0;
+      label = 14;
+      break;
+    }
+   case 13:
+    HEAP32[5387532 >> 2] = -1;
+    var $released_2 = 0;
+    label = 14;
+    break;
+   case 14:
+    var $released_2;
+    var $62 = $released_2 & 1;
+    return $62;
+  }
+}
+_sys_trim["X"] = 1;
+function _free($mem) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = ($mem | 0) == 0;
+    if ($1) {
+      label = 130;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 3:
+    var $3 = $mem - 8 | 0;
+    var $4 = $3;
+    var $5 = HEAP32[5387520 >> 2];
+    var $6 = $3 >>> 0 < $5 >>> 0;
+    if ($6) {
+      label = 129;
+      break;
+    } else {
+      label = 4;
+      break;
+    }
+   case 4:
+    var $8 = $mem - 4 | 0;
+    var $9 = $8;
+    var $10 = HEAP32[$9 >> 2];
+    var $11 = $10 & 3;
+    var $12 = ($11 | 0) == 1;
+    if ($12) {
+      label = 129;
+      break;
+    } else {
+      label = 5;
+      break;
+    }
+   case 5:
+    var $14 = $10 & -8;
+    var $_sum = $14 - 8 | 0;
+    var $15 = $mem + $_sum | 0;
+    var $16 = $15;
+    var $17 = $10 & 1;
+    var $18 = ($17 | 0) == 0;
+    if ($18) {
+      label = 6;
+      break;
+    } else {
+      var $p_0 = $4;
+      var $psize_0 = $14;
+      label = 50;
+      break;
+    }
+   case 6:
+    var $20 = $3;
+    var $21 = HEAP32[$20 >> 2];
+    var $22 = ($11 | 0) == 0;
+    if ($22) {
+      label = 130;
+      break;
+    } else {
+      label = 7;
+      break;
+    }
+   case 7:
+    var $_sum216 = -8 - $21 | 0;
+    var $24 = $mem + $_sum216 | 0;
+    var $25 = $24;
+    var $26 = $21 + $14 | 0;
+    var $27 = $24 >>> 0 < $5 >>> 0;
+    if ($27) {
+      label = 129;
+      break;
+    } else {
+      label = 8;
+      break;
+    }
+   case 8:
+    var $29 = HEAP32[5387524 >> 2];
+    var $30 = ($25 | 0) == ($29 | 0);
+    if ($30) {
+      label = 48;
+      break;
+    } else {
+      label = 9;
+      break;
+    }
+   case 9:
+    var $32 = $21 >>> 3;
+    var $33 = $21 >>> 0 < 256;
+    if ($33) {
+      label = 10;
+      break;
+    } else {
+      label = 16;
+      break;
+    }
+   case 10:
+    var $_sum250 = $_sum216 + 8 | 0;
+    var $35 = $mem + $_sum250 | 0;
+    var $36 = $35;
+    var $37 = HEAP32[$36 >> 2];
+    var $_sum251 = $_sum216 + 12 | 0;
+    var $38 = $mem + $_sum251 | 0;
+    var $39 = $38;
+    var $40 = HEAP32[$39 >> 2];
+    var $41 = ($37 | 0) == ($40 | 0);
+    if ($41) {
+      label = 11;
+      break;
+    } else {
+      label = 12;
+      break;
+    }
+   case 11:
+    var $43 = 1 << $32;
+    var $44 = $43 ^ -1;
+    var $45 = HEAP32[5387504 >> 2];
+    var $46 = $45 & $44;
+    HEAP32[5387504 >> 2] = $46;
+    var $p_0 = $25;
+    var $psize_0 = $26;
+    label = 50;
+    break;
+   case 12:
+    var $48 = $32 << 1;
+    var $49 = 5387544 + ($48 << 2) | 0;
+    var $50 = $49;
+    var $51 = ($37 | 0) != ($50 | 0);
+    var $52 = $37;
+    var $53 = $52 >>> 0 < $5 >>> 0;
+    var $or_cond = $51 & $53;
+    if ($or_cond) {
+      label = 15;
+      break;
+    } else {
+      label = 13;
+      break;
+    }
+   case 13:
+    var $55 = ($40 | 0) == ($50 | 0);
+    var $56 = $40;
+    var $57 = $56 >>> 0 >= $5 >>> 0;
+    var $or_cond263 = $55 | $57;
+    if ($or_cond263) {
+      label = 14;
+      break;
+    } else {
+      label = 15;
+      break;
+    }
+   case 14:
+    var $58 = $37 + 12 | 0;
+    HEAP32[$58 >> 2] = $40;
+    var $59 = $40 + 8 | 0;
+    HEAP32[$59 >> 2] = $37;
+    var $p_0 = $25;
+    var $psize_0 = $26;
+    label = 50;
+    break;
+   case 15:
+    _abort();
+   case 16:
+    var $61 = $24;
+    var $_sum242 = $_sum216 + 24 | 0;
+    var $62 = $mem + $_sum242 | 0;
+    var $63 = $62;
+    var $64 = HEAP32[$63 >> 2];
+    var $_sum243 = $_sum216 + 12 | 0;
+    var $65 = $mem + $_sum243 | 0;
+    var $66 = $65;
+    var $67 = HEAP32[$66 >> 2];
+    var $68 = ($67 | 0) == ($61 | 0);
+    if ($68) {
+      label = 20;
+      break;
+    } else {
+      label = 17;
+      break;
+    }
+   case 17:
+    var $_sum249 = $_sum216 + 8 | 0;
+    var $70 = $mem + $_sum249 | 0;
+    var $71 = $70;
+    var $72 = HEAP32[$71 >> 2];
+    var $73 = $72;
+    var $74 = $73 >>> 0 < $5 >>> 0;
+    if ($74) {
+      label = 19;
+      break;
+    } else {
+      label = 18;
+      break;
+    }
+   case 18:
+    var $76 = $72 + 12 | 0;
+    HEAP32[$76 >> 2] = $67;
+    var $77 = $67 + 8 | 0;
+    HEAP32[$77 >> 2] = $72;
+    var $R_1 = $67;
+    label = 28;
+    break;
+   case 19:
+    _abort();
+   case 20:
+    var $_sum245 = $_sum216 + 20 | 0;
+    var $80 = $mem + $_sum245 | 0;
+    var $81 = $80;
+    var $82 = HEAP32[$81 >> 2];
+    var $83 = ($82 | 0) == 0;
+    if ($83) {
+      label = 21;
+      break;
+    } else {
+      var $R_0 = $82;
+      var $RP_0 = $81;
+      label = 22;
+      break;
+    }
+   case 21:
+    var $_sum244 = $_sum216 + 16 | 0;
+    var $85 = $mem + $_sum244 | 0;
+    var $86 = $85;
+    var $87 = HEAP32[$86 >> 2];
+    var $88 = ($87 | 0) == 0;
+    if ($88) {
+      var $R_1 = 0;
+      label = 28;
+      break;
+    } else {
+      var $R_0 = $87;
+      var $RP_0 = $86;
+      label = 22;
+      break;
+    }
+   case 22:
+    var $RP_0;
+    var $R_0;
+    var $89 = $R_0 + 20 | 0;
+    var $90 = HEAP32[$89 >> 2];
+    var $91 = ($90 | 0) == 0;
+    if ($91) {
+      label = 23;
+      break;
+    } else {
+      var $CP_0 = $89;
+      label = 24;
+      break;
+    }
+   case 23:
+    var $93 = $R_0 + 16 | 0;
+    var $94 = HEAP32[$93 >> 2];
+    var $95 = ($94 | 0) == 0;
+    if ($95) {
+      label = 25;
+      break;
+    } else {
+      var $CP_0 = $93;
+      label = 24;
+      break;
+    }
+   case 24:
+    var $CP_0;
+    var $96 = HEAP32[$CP_0 >> 2];
+    var $R_0 = $96;
+    var $RP_0 = $CP_0;
+    label = 22;
+    break;
+   case 25:
+    var $98 = $RP_0;
+    var $99 = HEAP32[5387520 >> 2];
+    var $100 = $98 >>> 0 < $99 >>> 0;
+    if ($100) {
+      label = 27;
+      break;
+    } else {
+      label = 26;
+      break;
+    }
+   case 26:
+    HEAP32[$RP_0 >> 2] = 0;
+    var $R_1 = $R_0;
+    label = 28;
+    break;
+   case 27:
+    _abort();
+   case 28:
+    var $R_1;
+    var $104 = ($64 | 0) == 0;
+    if ($104) {
+      var $p_0 = $25;
+      var $psize_0 = $26;
+      label = 50;
+      break;
+    } else {
+      label = 29;
+      break;
+    }
+   case 29:
+    var $_sum246 = $_sum216 + 28 | 0;
+    var $106 = $mem + $_sum246 | 0;
+    var $107 = $106;
+    var $108 = HEAP32[$107 >> 2];
+    var $109 = 5387808 + ($108 << 2) | 0;
+    var $110 = HEAP32[$109 >> 2];
+    var $111 = ($61 | 0) == ($110 | 0);
+    if ($111) {
+      label = 30;
+      break;
+    } else {
+      label = 32;
+      break;
+    }
+   case 30:
+    HEAP32[$109 >> 2] = $R_1;
+    var $cond = ($R_1 | 0) == 0;
+    if ($cond) {
+      label = 31;
+      break;
+    } else {
+      label = 38;
+      break;
+    }
+   case 31:
+    var $113 = HEAP32[$107 >> 2];
+    var $114 = 1 << $113;
+    var $115 = $114 ^ -1;
+    var $116 = HEAP32[5387508 >> 2];
+    var $117 = $116 & $115;
+    HEAP32[5387508 >> 2] = $117;
+    var $p_0 = $25;
+    var $psize_0 = $26;
+    label = 50;
+    break;
+   case 32:
+    var $119 = $64;
+    var $120 = HEAP32[5387520 >> 2];
+    var $121 = $119 >>> 0 < $120 >>> 0;
+    if ($121) {
+      label = 36;
+      break;
+    } else {
+      label = 33;
+      break;
+    }
+   case 33:
+    var $123 = $64 + 16 | 0;
+    var $124 = HEAP32[$123 >> 2];
+    var $125 = ($124 | 0) == ($61 | 0);
+    if ($125) {
+      label = 34;
+      break;
+    } else {
+      label = 35;
+      break;
+    }
+   case 34:
+    HEAP32[$123 >> 2] = $R_1;
+    label = 37;
+    break;
+   case 35:
+    var $128 = $64 + 20 | 0;
+    HEAP32[$128 >> 2] = $R_1;
+    label = 37;
+    break;
+   case 36:
+    _abort();
+   case 37:
+    var $131 = ($R_1 | 0) == 0;
+    if ($131) {
+      var $p_0 = $25;
+      var $psize_0 = $26;
+      label = 50;
+      break;
+    } else {
+      label = 38;
+      break;
+    }
+   case 38:
+    var $133 = $R_1;
+    var $134 = HEAP32[5387520 >> 2];
+    var $135 = $133 >>> 0 < $134 >>> 0;
+    if ($135) {
+      label = 47;
+      break;
+    } else {
+      label = 39;
+      break;
+    }
+   case 39:
+    var $137 = $R_1 + 24 | 0;
+    HEAP32[$137 >> 2] = $64;
+    var $_sum247 = $_sum216 + 16 | 0;
+    var $138 = $mem + $_sum247 | 0;
+    var $139 = $138;
+    var $140 = HEAP32[$139 >> 2];
+    var $141 = ($140 | 0) == 0;
+    if ($141) {
+      label = 43;
+      break;
+    } else {
+      label = 40;
+      break;
+    }
+   case 40:
+    var $143 = $140;
+    var $144 = HEAP32[5387520 >> 2];
+    var $145 = $143 >>> 0 < $144 >>> 0;
+    if ($145) {
+      label = 42;
+      break;
+    } else {
+      label = 41;
+      break;
+    }
+   case 41:
+    var $147 = $R_1 + 16 | 0;
+    HEAP32[$147 >> 2] = $140;
+    var $148 = $140 + 24 | 0;
+    HEAP32[$148 >> 2] = $R_1;
+    label = 43;
+    break;
+   case 42:
+    _abort();
+   case 43:
+    var $_sum248 = $_sum216 + 20 | 0;
+    var $151 = $mem + $_sum248 | 0;
+    var $152 = $151;
+    var $153 = HEAP32[$152 >> 2];
+    var $154 = ($153 | 0) == 0;
+    if ($154) {
+      var $p_0 = $25;
+      var $psize_0 = $26;
+      label = 50;
+      break;
+    } else {
+      label = 44;
+      break;
+    }
+   case 44:
+    var $156 = $153;
+    var $157 = HEAP32[5387520 >> 2];
+    var $158 = $156 >>> 0 < $157 >>> 0;
+    if ($158) {
+      label = 46;
+      break;
+    } else {
+      label = 45;
+      break;
+    }
+   case 45:
+    var $160 = $R_1 + 20 | 0;
+    HEAP32[$160 >> 2] = $153;
+    var $161 = $153 + 24 | 0;
+    HEAP32[$161 >> 2] = $R_1;
+    var $p_0 = $25;
+    var $psize_0 = $26;
+    label = 50;
+    break;
+   case 46:
+    _abort();
+   case 47:
+    _abort();
+   case 48:
+    var $_sum217 = $14 - 4 | 0;
+    var $165 = $mem + $_sum217 | 0;
+    var $166 = $165;
+    var $167 = HEAP32[$166 >> 2];
+    var $168 = $167 & 3;
+    var $169 = ($168 | 0) == 3;
+    if ($169) {
+      label = 49;
+      break;
+    } else {
+      var $p_0 = $25;
+      var $psize_0 = $26;
+      label = 50;
+      break;
+    }
+   case 49:
+    HEAP32[5387512 >> 2] = $26;
+    var $171 = HEAP32[$166 >> 2];
+    var $172 = $171 & -2;
+    HEAP32[$166 >> 2] = $172;
+    var $173 = $26 | 1;
+    var $_sum240 = $_sum216 + 4 | 0;
+    var $174 = $mem + $_sum240 | 0;
+    var $175 = $174;
+    HEAP32[$175 >> 2] = $173;
+    var $176 = $15;
+    HEAP32[$176 >> 2] = $26;
+    label = 130;
+    break;
+   case 50:
+    var $psize_0;
+    var $p_0;
+    var $178 = $p_0;
+    var $179 = $178 >>> 0 < $15 >>> 0;
+    if ($179) {
+      label = 51;
+      break;
+    } else {
+      label = 129;
+      break;
+    }
+   case 51:
+    var $_sum239 = $14 - 4 | 0;
+    var $181 = $mem + $_sum239 | 0;
+    var $182 = $181;
+    var $183 = HEAP32[$182 >> 2];
+    var $184 = $183 & 1;
+    var $185 = ($184 | 0) == 0;
+    if ($185) {
+      label = 129;
+      break;
+    } else {
+      label = 52;
+      break;
+    }
+   case 52:
+    var $187 = $183 & 2;
+    var $188 = ($187 | 0) == 0;
+    if ($188) {
+      label = 53;
+      break;
+    } else {
+      label = 103;
+      break;
+    }
+   case 53:
+    var $190 = HEAP32[5387528 >> 2];
+    var $191 = ($16 | 0) == ($190 | 0);
+    if ($191) {
+      label = 54;
+      break;
+    } else {
+      label = 58;
+      break;
+    }
+   case 54:
+    var $193 = HEAP32[5387516 >> 2];
+    var $194 = $193 + $psize_0 | 0;
+    HEAP32[5387516 >> 2] = $194;
+    HEAP32[5387528 >> 2] = $p_0;
+    var $195 = $194 | 1;
+    var $196 = $p_0 + 4 | 0;
+    HEAP32[$196 >> 2] = $195;
+    var $197 = HEAP32[5387524 >> 2];
+    var $198 = ($p_0 | 0) == ($197 | 0);
+    if ($198) {
+      label = 55;
+      break;
+    } else {
+      label = 56;
+      break;
+    }
+   case 55:
+    HEAP32[5387524 >> 2] = 0;
+    HEAP32[5387512 >> 2] = 0;
+    label = 56;
+    break;
+   case 56:
+    var $201 = HEAP32[5387532 >> 2];
+    var $202 = $194 >>> 0 > $201 >>> 0;
+    if ($202) {
+      label = 57;
+      break;
+    } else {
+      label = 130;
+      break;
+    }
+   case 57:
+    var $204 = _sys_trim(0);
+    label = 130;
+    break;
+   case 58:
+    var $206 = HEAP32[5387524 >> 2];
+    var $207 = ($16 | 0) == ($206 | 0);
+    if ($207) {
+      label = 59;
+      break;
+    } else {
+      label = 60;
+      break;
+    }
+   case 59:
+    var $209 = HEAP32[5387512 >> 2];
+    var $210 = $209 + $psize_0 | 0;
+    HEAP32[5387512 >> 2] = $210;
+    HEAP32[5387524 >> 2] = $p_0;
+    var $211 = $210 | 1;
+    var $212 = $p_0 + 4 | 0;
+    HEAP32[$212 >> 2] = $211;
+    var $213 = $178 + $210 | 0;
+    var $214 = $213;
+    HEAP32[$214 >> 2] = $210;
+    label = 130;
+    break;
+   case 60:
+    var $216 = $183 & -8;
+    var $217 = $216 + $psize_0 | 0;
+    var $218 = $183 >>> 3;
+    var $219 = $183 >>> 0 < 256;
+    if ($219) {
+      label = 61;
+      break;
+    } else {
+      label = 69;
+      break;
+    }
+   case 61:
+    var $221 = $mem + $14 | 0;
+    var $222 = $221;
+    var $223 = HEAP32[$222 >> 2];
+    var $_sum237238 = $14 | 4;
+    var $224 = $mem + $_sum237238 | 0;
+    var $225 = $224;
+    var $226 = HEAP32[$225 >> 2];
+    var $227 = ($223 | 0) == ($226 | 0);
+    if ($227) {
+      label = 62;
+      break;
+    } else {
+      label = 63;
+      break;
+    }
+   case 62:
+    var $229 = 1 << $218;
+    var $230 = $229 ^ -1;
+    var $231 = HEAP32[5387504 >> 2];
+    var $232 = $231 & $230;
+    HEAP32[5387504 >> 2] = $232;
+    label = 101;
+    break;
+   case 63:
+    var $234 = $218 << 1;
+    var $235 = 5387544 + ($234 << 2) | 0;
+    var $236 = $235;
+    var $237 = ($223 | 0) == ($236 | 0);
+    if ($237) {
+      label = 65;
+      break;
+    } else {
+      label = 64;
+      break;
+    }
+   case 64:
+    var $239 = $223;
+    var $240 = HEAP32[5387520 >> 2];
+    var $241 = $239 >>> 0 < $240 >>> 0;
+    if ($241) {
+      label = 68;
+      break;
+    } else {
+      label = 65;
+      break;
+    }
+   case 65:
+    var $243 = ($226 | 0) == ($236 | 0);
+    if ($243) {
+      label = 67;
+      break;
+    } else {
+      label = 66;
+      break;
+    }
+   case 66:
+    var $245 = $226;
+    var $246 = HEAP32[5387520 >> 2];
+    var $247 = $245 >>> 0 < $246 >>> 0;
+    if ($247) {
+      label = 68;
+      break;
+    } else {
+      label = 67;
+      break;
+    }
+   case 67:
+    var $248 = $223 + 12 | 0;
+    HEAP32[$248 >> 2] = $226;
+    var $249 = $226 + 8 | 0;
+    HEAP32[$249 >> 2] = $223;
+    label = 101;
+    break;
+   case 68:
+    _abort();
+   case 69:
+    var $251 = $15;
+    var $_sum219 = $14 + 16 | 0;
+    var $252 = $mem + $_sum219 | 0;
+    var $253 = $252;
+    var $254 = HEAP32[$253 >> 2];
+    var $_sum220221 = $14 | 4;
+    var $255 = $mem + $_sum220221 | 0;
+    var $256 = $255;
+    var $257 = HEAP32[$256 >> 2];
+    var $258 = ($257 | 0) == ($251 | 0);
+    if ($258) {
+      label = 73;
+      break;
+    } else {
+      label = 70;
+      break;
+    }
+   case 70:
+    var $260 = $mem + $14 | 0;
+    var $261 = $260;
+    var $262 = HEAP32[$261 >> 2];
+    var $263 = $262;
+    var $264 = HEAP32[5387520 >> 2];
+    var $265 = $263 >>> 0 < $264 >>> 0;
+    if ($265) {
+      label = 72;
+      break;
+    } else {
+      label = 71;
+      break;
+    }
+   case 71:
+    var $267 = $262 + 12 | 0;
+    HEAP32[$267 >> 2] = $257;
+    var $268 = $257 + 8 | 0;
+    HEAP32[$268 >> 2] = $262;
+    var $R7_1 = $257;
+    label = 81;
+    break;
+   case 72:
+    _abort();
+   case 73:
+    var $_sum223 = $14 + 12 | 0;
+    var $271 = $mem + $_sum223 | 0;
+    var $272 = $271;
+    var $273 = HEAP32[$272 >> 2];
+    var $274 = ($273 | 0) == 0;
+    if ($274) {
+      label = 74;
+      break;
+    } else {
+      var $R7_0 = $273;
+      var $RP9_0 = $272;
+      label = 75;
+      break;
+    }
+   case 74:
+    var $_sum222 = $14 + 8 | 0;
+    var $276 = $mem + $_sum222 | 0;
+    var $277 = $276;
+    var $278 = HEAP32[$277 >> 2];
+    var $279 = ($278 | 0) == 0;
+    if ($279) {
+      var $R7_1 = 0;
+      label = 81;
+      break;
+    } else {
+      var $R7_0 = $278;
+      var $RP9_0 = $277;
+      label = 75;
+      break;
+    }
+   case 75:
+    var $RP9_0;
+    var $R7_0;
+    var $280 = $R7_0 + 20 | 0;
+    var $281 = HEAP32[$280 >> 2];
+    var $282 = ($281 | 0) == 0;
+    if ($282) {
+      label = 76;
+      break;
+    } else {
+      var $CP10_0 = $280;
+      label = 77;
+      break;
+    }
+   case 76:
+    var $284 = $R7_0 + 16 | 0;
+    var $285 = HEAP32[$284 >> 2];
+    var $286 = ($285 | 0) == 0;
+    if ($286) {
+      label = 78;
+      break;
+    } else {
+      var $CP10_0 = $284;
+      label = 77;
+      break;
+    }
+   case 77:
+    var $CP10_0;
+    var $287 = HEAP32[$CP10_0 >> 2];
+    var $R7_0 = $287;
+    var $RP9_0 = $CP10_0;
+    label = 75;
+    break;
+   case 78:
+    var $289 = $RP9_0;
+    var $290 = HEAP32[5387520 >> 2];
+    var $291 = $289 >>> 0 < $290 >>> 0;
+    if ($291) {
+      label = 80;
+      break;
+    } else {
+      label = 79;
+      break;
+    }
+   case 79:
+    HEAP32[$RP9_0 >> 2] = 0;
+    var $R7_1 = $R7_0;
+    label = 81;
+    break;
+   case 80:
+    _abort();
+   case 81:
+    var $R7_1;
+    var $295 = ($254 | 0) == 0;
+    if ($295) {
+      label = 101;
+      break;
+    } else {
+      label = 82;
+      break;
+    }
+   case 82:
+    var $_sum232 = $14 + 20 | 0;
+    var $297 = $mem + $_sum232 | 0;
+    var $298 = $297;
+    var $299 = HEAP32[$298 >> 2];
+    var $300 = 5387808 + ($299 << 2) | 0;
+    var $301 = HEAP32[$300 >> 2];
+    var $302 = ($251 | 0) == ($301 | 0);
+    if ($302) {
+      label = 83;
+      break;
+    } else {
+      label = 85;
+      break;
+    }
+   case 83:
+    HEAP32[$300 >> 2] = $R7_1;
+    var $cond261 = ($R7_1 | 0) == 0;
+    if ($cond261) {
+      label = 84;
+      break;
+    } else {
+      label = 91;
+      break;
+    }
+   case 84:
+    var $304 = HEAP32[$298 >> 2];
+    var $305 = 1 << $304;
+    var $306 = $305 ^ -1;
+    var $307 = HEAP32[5387508 >> 2];
+    var $308 = $307 & $306;
+    HEAP32[5387508 >> 2] = $308;
+    label = 101;
+    break;
+   case 85:
+    var $310 = $254;
+    var $311 = HEAP32[5387520 >> 2];
+    var $312 = $310 >>> 0 < $311 >>> 0;
+    if ($312) {
+      label = 89;
+      break;
+    } else {
+      label = 86;
+      break;
+    }
+   case 86:
+    var $314 = $254 + 16 | 0;
+    var $315 = HEAP32[$314 >> 2];
+    var $316 = ($315 | 0) == ($251 | 0);
+    if ($316) {
+      label = 87;
+      break;
+    } else {
+      label = 88;
+      break;
+    }
+   case 87:
+    HEAP32[$314 >> 2] = $R7_1;
+    label = 90;
+    break;
+   case 88:
+    var $319 = $254 + 20 | 0;
+    HEAP32[$319 >> 2] = $R7_1;
+    label = 90;
+    break;
+   case 89:
+    _abort();
+   case 90:
+    var $322 = ($R7_1 | 0) == 0;
+    if ($322) {
+      label = 101;
+      break;
+    } else {
+      label = 91;
+      break;
+    }
+   case 91:
+    var $324 = $R7_1;
+    var $325 = HEAP32[5387520 >> 2];
+    var $326 = $324 >>> 0 < $325 >>> 0;
+    if ($326) {
+      label = 100;
+      break;
+    } else {
+      label = 92;
+      break;
+    }
+   case 92:
+    var $328 = $R7_1 + 24 | 0;
+    HEAP32[$328 >> 2] = $254;
+    var $_sum233 = $14 + 8 | 0;
+    var $329 = $mem + $_sum233 | 0;
+    var $330 = $329;
+    var $331 = HEAP32[$330 >> 2];
+    var $332 = ($331 | 0) == 0;
+    if ($332) {
+      label = 96;
+      break;
+    } else {
+      label = 93;
+      break;
+    }
+   case 93:
+    var $334 = $331;
+    var $335 = HEAP32[5387520 >> 2];
+    var $336 = $334 >>> 0 < $335 >>> 0;
+    if ($336) {
+      label = 95;
+      break;
+    } else {
+      label = 94;
+      break;
+    }
+   case 94:
+    var $338 = $R7_1 + 16 | 0;
+    HEAP32[$338 >> 2] = $331;
+    var $339 = $331 + 24 | 0;
+    HEAP32[$339 >> 2] = $R7_1;
+    label = 96;
+    break;
+   case 95:
+    _abort();
+   case 96:
+    var $_sum234 = $14 + 12 | 0;
+    var $342 = $mem + $_sum234 | 0;
+    var $343 = $342;
+    var $344 = HEAP32[$343 >> 2];
+    var $345 = ($344 | 0) == 0;
+    if ($345) {
+      label = 101;
+      break;
+    } else {
+      label = 97;
+      break;
+    }
+   case 97:
+    var $347 = $344;
+    var $348 = HEAP32[5387520 >> 2];
+    var $349 = $347 >>> 0 < $348 >>> 0;
+    if ($349) {
+      label = 99;
+      break;
+    } else {
+      label = 98;
+      break;
+    }
+   case 98:
+    var $351 = $R7_1 + 20 | 0;
+    HEAP32[$351 >> 2] = $344;
+    var $352 = $344 + 24 | 0;
+    HEAP32[$352 >> 2] = $R7_1;
+    label = 101;
+    break;
+   case 99:
+    _abort();
+   case 100:
+    _abort();
+   case 101:
+    var $356 = $217 | 1;
+    var $357 = $p_0 + 4 | 0;
+    HEAP32[$357 >> 2] = $356;
+    var $358 = $178 + $217 | 0;
+    var $359 = $358;
+    HEAP32[$359 >> 2] = $217;
+    var $360 = HEAP32[5387524 >> 2];
+    var $361 = ($p_0 | 0) == ($360 | 0);
+    if ($361) {
+      label = 102;
+      break;
+    } else {
+      var $psize_1 = $217;
+      label = 104;
+      break;
+    }
+   case 102:
+    HEAP32[5387512 >> 2] = $217;
+    label = 130;
+    break;
+   case 103:
+    var $364 = $183 & -2;
+    HEAP32[$182 >> 2] = $364;
+    var $365 = $psize_0 | 1;
+    var $366 = $p_0 + 4 | 0;
+    HEAP32[$366 >> 2] = $365;
+    var $367 = $178 + $psize_0 | 0;
+    var $368 = $367;
+    HEAP32[$368 >> 2] = $psize_0;
+    var $psize_1 = $psize_0;
+    label = 104;
+    break;
+   case 104:
+    var $psize_1;
+    var $370 = $psize_1 >>> 3;
+    var $371 = $psize_1 >>> 0 < 256;
+    if ($371) {
+      label = 105;
+      break;
+    } else {
+      label = 110;
+      break;
+    }
+   case 105:
+    var $373 = $370 << 1;
+    var $374 = 5387544 + ($373 << 2) | 0;
+    var $375 = $374;
+    var $376 = HEAP32[5387504 >> 2];
+    var $377 = 1 << $370;
+    var $378 = $376 & $377;
+    var $379 = ($378 | 0) == 0;
+    if ($379) {
+      label = 106;
+      break;
+    } else {
+      label = 107;
+      break;
+    }
+   case 106:
+    var $381 = $376 | $377;
+    HEAP32[5387504 >> 2] = $381;
+    var $F16_0 = $375;
+    label = 109;
+    break;
+   case 107:
+    var $_sum231 = $373 + 2 | 0;
+    var $383 = 5387544 + ($_sum231 << 2) | 0;
+    var $384 = HEAP32[$383 >> 2];
+    var $385 = $384;
+    var $386 = HEAP32[5387520 >> 2];
+    var $387 = $385 >>> 0 < $386 >>> 0;
+    if ($387) {
+      label = 108;
+      break;
+    } else {
+      var $F16_0 = $384;
+      label = 109;
+      break;
+    }
+   case 108:
+    _abort();
+   case 109:
+    var $F16_0;
+    var $_sum230 = $373 + 2 | 0;
+    var $390 = 5387544 + ($_sum230 << 2) | 0;
+    HEAP32[$390 >> 2] = $p_0;
+    var $391 = $F16_0 + 12 | 0;
+    HEAP32[$391 >> 2] = $p_0;
+    var $392 = $p_0 + 8 | 0;
+    HEAP32[$392 >> 2] = $F16_0;
+    var $393 = $p_0 + 12 | 0;
+    HEAP32[$393 >> 2] = $375;
+    label = 130;
+    break;
+   case 110:
+    var $395 = $p_0;
+    var $396 = $psize_1 >>> 8;
+    var $397 = ($396 | 0) == 0;
+    if ($397) {
+      var $I18_0 = 0;
+      label = 113;
+      break;
+    } else {
+      label = 111;
+      break;
+    }
+   case 111:
+    var $399 = $psize_1 >>> 0 > 16777215;
+    if ($399) {
+      var $I18_0 = 31;
+      label = 113;
+      break;
+    } else {
+      label = 112;
+      break;
+    }
+   case 112:
+    var $401 = $396 + 1048320 | 0;
+    var $402 = $401 >>> 16;
+    var $403 = $402 & 8;
+    var $404 = $396 << $403;
+    var $405 = $404 + 520192 | 0;
+    var $406 = $405 >>> 16;
+    var $407 = $406 & 4;
+    var $408 = $407 | $403;
+    var $409 = $404 << $407;
+    var $410 = $409 + 245760 | 0;
+    var $411 = $410 >>> 16;
+    var $412 = $411 & 2;
+    var $413 = $408 | $412;
+    var $414 = 14 - $413 | 0;
+    var $415 = $409 << $412;
+    var $416 = $415 >>> 15;
+    var $417 = $414 + $416 | 0;
+    var $418 = $417 << 1;
+    var $419 = $417 + 7 | 0;
+    var $420 = $psize_1 >>> ($419 >>> 0);
+    var $421 = $420 & 1;
+    var $422 = $421 | $418;
+    var $I18_0 = $422;
+    label = 113;
+    break;
+   case 113:
+    var $I18_0;
+    var $424 = 5387808 + ($I18_0 << 2) | 0;
+    var $425 = $p_0 + 28 | 0;
+    var $I18_0_c = $I18_0;
+    HEAP32[$425 >> 2] = $I18_0_c;
+    var $426 = $p_0 + 20 | 0;
+    HEAP32[$426 >> 2] = 0;
+    var $427 = $p_0 + 16 | 0;
+    HEAP32[$427 >> 2] = 0;
+    var $428 = HEAP32[5387508 >> 2];
+    var $429 = 1 << $I18_0;
+    var $430 = $428 & $429;
+    var $431 = ($430 | 0) == 0;
+    if ($431) {
+      label = 114;
+      break;
+    } else {
+      label = 115;
+      break;
+    }
+   case 114:
+    var $433 = $428 | $429;
+    HEAP32[5387508 >> 2] = $433;
+    HEAP32[$424 >> 2] = $395;
+    var $434 = $p_0 + 24 | 0;
+    var $_c = $424;
+    HEAP32[$434 >> 2] = $_c;
+    var $435 = $p_0 + 12 | 0;
+    HEAP32[$435 >> 2] = $p_0;
+    var $436 = $p_0 + 8 | 0;
+    HEAP32[$436 >> 2] = $p_0;
+    label = 127;
+    break;
+   case 115:
+    var $438 = HEAP32[$424 >> 2];
+    var $439 = ($I18_0 | 0) == 31;
+    if ($439) {
+      var $444 = 0;
+      label = 117;
+      break;
+    } else {
+      label = 116;
+      break;
+    }
+   case 116:
+    var $441 = $I18_0 >>> 1;
+    var $442 = 25 - $441 | 0;
+    var $444 = $442;
+    label = 117;
+    break;
+   case 117:
+    var $444;
+    var $445 = $psize_1 << $444;
+    var $K19_0 = $445;
+    var $T_0 = $438;
+    label = 118;
+    break;
+   case 118:
+    var $T_0;
+    var $K19_0;
+    var $447 = $T_0 + 4 | 0;
+    var $448 = HEAP32[$447 >> 2];
+    var $449 = $448 & -8;
+    var $450 = ($449 | 0) == ($psize_1 | 0);
+    if ($450) {
+      label = 123;
+      break;
+    } else {
+      label = 119;
+      break;
+    }
+   case 119:
+    var $452 = $K19_0 >>> 31;
+    var $453 = $T_0 + 16 + ($452 << 2) | 0;
+    var $454 = HEAP32[$453 >> 2];
+    var $455 = ($454 | 0) == 0;
+    var $456 = $K19_0 << 1;
+    if ($455) {
+      label = 120;
+      break;
+    } else {
+      var $K19_0 = $456;
+      var $T_0 = $454;
+      label = 118;
+      break;
+    }
+   case 120:
+    var $458 = $453;
+    var $459 = HEAP32[5387520 >> 2];
+    var $460 = $458 >>> 0 < $459 >>> 0;
+    if ($460) {
+      label = 122;
+      break;
+    } else {
+      label = 121;
+      break;
+    }
+   case 121:
+    HEAP32[$453 >> 2] = $395;
+    var $462 = $p_0 + 24 | 0;
+    var $T_0_c227 = $T_0;
+    HEAP32[$462 >> 2] = $T_0_c227;
+    var $463 = $p_0 + 12 | 0;
+    HEAP32[$463 >> 2] = $p_0;
+    var $464 = $p_0 + 8 | 0;
+    HEAP32[$464 >> 2] = $p_0;
+    label = 127;
+    break;
+   case 122:
+    _abort();
+   case 123:
+    var $467 = $T_0 + 8 | 0;
+    var $468 = HEAP32[$467 >> 2];
+    var $469 = $T_0;
+    var $470 = HEAP32[5387520 >> 2];
+    var $471 = $469 >>> 0 < $470 >>> 0;
+    if ($471) {
+      label = 126;
+      break;
+    } else {
+      label = 124;
+      break;
+    }
+   case 124:
+    var $473 = $468;
+    var $474 = $473 >>> 0 < $470 >>> 0;
+    if ($474) {
+      label = 126;
+      break;
+    } else {
+      label = 125;
+      break;
+    }
+   case 125:
+    var $476 = $468 + 12 | 0;
+    HEAP32[$476 >> 2] = $395;
+    HEAP32[$467 >> 2] = $395;
+    var $477 = $p_0 + 8 | 0;
+    var $_c226 = $468;
+    HEAP32[$477 >> 2] = $_c226;
+    var $478 = $p_0 + 12 | 0;
+    var $T_0_c = $T_0;
+    HEAP32[$478 >> 2] = $T_0_c;
+    var $479 = $p_0 + 24 | 0;
+    HEAP32[$479 >> 2] = 0;
+    label = 127;
+    break;
+   case 126:
+    _abort();
+   case 127:
+    var $481 = HEAP32[5387536 >> 2];
+    var $482 = $481 - 1 | 0;
+    HEAP32[5387536 >> 2] = $482;
+    var $483 = ($482 | 0) == 0;
+    if ($483) {
+      label = 128;
+      break;
+    } else {
+      label = 130;
+      break;
+    }
+   case 128:
+    _release_unused_segments();
+    label = 130;
+    break;
+   case 129:
+    _abort();
+   case 130:
+    return;
+  }
+}
+_free["X"] = 1;
+function _malloc_footprint() {
+  return HEAP32[5387936 >> 2];
+}
+function _malloc_max_footprint() {
+  return HEAP32[5387940 >> 2];
+}
+function _release_unused_segments() {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $sp_0_in = 5387956;
+    label = 3;
+    break;
+   case 3:
+    var $sp_0_in;
+    var $sp_0 = HEAP32[$sp_0_in >> 2];
+    var $2 = ($sp_0 | 0) == 0;
+    var $3 = $sp_0 + 8 | 0;
+    if ($2) {
+      label = 4;
+      break;
+    } else {
+      var $sp_0_in = $3;
+      label = 3;
+      break;
+    }
+   case 4:
+    HEAP32[5387536 >> 2] = -1;
+    return;
+  }
+}
+function _calloc($n_elements, $elem_size) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = ($n_elements | 0) == 0;
+    if ($1) {
+      var $req_0 = 0;
+      label = 5;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 3:
+    var $3 = $elem_size * $n_elements & -1;
+    var $4 = $elem_size | $n_elements;
+    var $5 = $4 >>> 0 > 65535;
+    if ($5) {
+      label = 4;
+      break;
+    } else {
+      var $req_0 = $3;
+      label = 5;
+      break;
+    }
+   case 4:
+    var $7 = Math.floor(($3 >>> 0) / ($n_elements >>> 0));
+    var $8 = ($7 | 0) == ($elem_size | 0);
+    var $_ = $8 ? $3 : -1;
+    var $req_0 = $_;
+    label = 5;
+    break;
+   case 5:
+    var $req_0;
+    var $10 = _malloc($req_0);
+    var $11 = ($10 | 0) == 0;
+    if ($11) {
+      label = 8;
+      break;
+    } else {
+      label = 6;
+      break;
+    }
+   case 6:
+    var $13 = $10 - 4 | 0;
+    var $14 = $13;
+    var $15 = HEAP32[$14 >> 2];
+    var $16 = $15 & 3;
+    var $17 = ($16 | 0) == 0;
+    if ($17) {
+      label = 8;
+      break;
+    } else {
+      label = 7;
+      break;
+    }
+   case 7:
+    _memset($10, 0, $req_0);
+    label = 8;
+    break;
+   case 8:
+    return $10;
+  }
+}
+Module["_calloc"] = _calloc;
+function _realloc($oldmem, $bytes) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = ($oldmem | 0) == 0;
+    if ($1) {
+      label = 3;
+      break;
+    } else {
+      label = 4;
+      break;
+    }
+   case 3:
+    var $3 = _malloc($bytes);
+    var $_0 = $3;
+    label = 5;
+    break;
+   case 4:
+    var $5 = _internal_realloc($oldmem, $bytes);
+    var $_0 = $5;
+    label = 5;
+    break;
+   case 5:
+    var $_0;
+    return $_0;
+  }
+}
+Module["_realloc"] = _realloc;
+function _memalign($alignment, $bytes) {
+  return _internal_memalign($alignment, $bytes);
+}
+function _internal_memalign($alignment, $bytes) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = $alignment >>> 0 < 9;
+    if ($1) {
+      label = 3;
+      break;
+    } else {
+      label = 4;
+      break;
+    }
+   case 3:
+    var $3 = _malloc($bytes);
+    var $_0 = $3;
+    label = 25;
+    break;
+   case 4:
+    var $5 = $alignment >>> 0 < 16;
+    var $_alignment = $5 ? 16 : $alignment;
+    var $6 = $_alignment - 1 | 0;
+    var $7 = $6 & $_alignment;
+    var $8 = ($7 | 0) == 0;
+    if ($8) {
+      var $_1 = $_alignment;
+      label = 6;
+      break;
+    } else {
+      var $a_0 = 16;
+      label = 5;
+      break;
+    }
+   case 5:
+    var $a_0;
+    var $9 = $a_0 >>> 0 < $_alignment >>> 0;
+    var $10 = $a_0 << 1;
+    if ($9) {
+      var $a_0 = $10;
+      label = 5;
+      break;
+    } else {
+      var $_1 = $a_0;
+      label = 6;
+      break;
+    }
+   case 6:
+    var $_1;
+    var $11 = -64 - $_1 | 0;
+    var $12 = $11 >>> 0 > $bytes >>> 0;
+    if ($12) {
+      label = 8;
+      break;
+    } else {
+      label = 7;
+      break;
+    }
+   case 7:
+    var $14 = ___errno_location();
+    HEAP32[$14 >> 2] = 12;
+    var $_0 = 0;
+    label = 25;
+    break;
+   case 8:
+    var $16 = $bytes >>> 0 < 11;
+    if ($16) {
+      var $21 = 16;
+      label = 10;
+      break;
+    } else {
+      label = 9;
+      break;
+    }
+   case 9:
+    var $18 = $bytes + 11 | 0;
+    var $19 = $18 & -8;
+    var $21 = $19;
+    label = 10;
+    break;
+   case 10:
+    var $21;
+    var $22 = $_1 + 12 | 0;
+    var $23 = $22 + $21 | 0;
+    var $24 = _malloc($23);
+    var $25 = ($24 | 0) == 0;
+    if ($25) {
+      var $_0 = 0;
+      label = 25;
+      break;
+    } else {
+      label = 11;
+      break;
+    }
+   case 11:
+    var $27 = $24 - 8 | 0;
+    var $28 = $24;
+    var $29 = ($28 >>> 0) % ($_1 >>> 0);
+    var $30 = ($29 | 0) == 0;
+    if ($30) {
+      var $leader_1 = 0;
+      var $p_0_in = $27;
+      label = 17;
+      break;
+    } else {
+      label = 12;
+      break;
+    }
+   case 12:
+    var $_sum3 = $_1 - 1 | 0;
+    var $32 = $24 + $_sum3 | 0;
+    var $33 = $32;
+    var $34 = -$_1 | 0;
+    var $35 = $33 & $34;
+    var $36 = $35;
+    var $37 = $36 - 8 | 0;
+    var $38 = $37;
+    var $39 = $27;
+    var $40 = $38 - $39 | 0;
+    var $41 = $40 >>> 0 > 15;
+    if ($41) {
+      var $45 = $37;
+      label = 14;
+      break;
+    } else {
+      label = 13;
+      break;
+    }
+   case 13:
+    var $_sum4 = $_1 - 8 | 0;
+    var $43 = $36 + $_sum4 | 0;
+    var $45 = $43;
+    label = 14;
+    break;
+   case 14:
+    var $45;
+    var $46 = $45;
+    var $47 = $46 - $39 | 0;
+    var $48 = $24 - 4 | 0;
+    var $49 = $48;
+    var $50 = HEAP32[$49 >> 2];
+    var $51 = $50 & -8;
+    var $52 = $51 - $47 | 0;
+    var $53 = $50 & 3;
+    var $54 = ($53 | 0) == 0;
+    if ($54) {
+      label = 15;
+      break;
+    } else {
+      label = 16;
+      break;
+    }
+   case 15:
+    var $56 = $27;
+    var $57 = HEAP32[$56 >> 2];
+    var $58 = $57 + $47 | 0;
+    var $59 = $45;
+    HEAP32[$59 >> 2] = $58;
+    var $60 = $45 + 4 | 0;
+    var $61 = $60;
+    HEAP32[$61 >> 2] = $52;
+    var $leader_1 = 0;
+    var $p_0_in = $45;
+    label = 17;
+    break;
+   case 16:
+    var $63 = $45 + 4 | 0;
+    var $64 = $63;
+    var $65 = HEAP32[$64 >> 2];
+    var $66 = $65 & 1;
+    var $67 = $52 | $66;
+    var $68 = $67 | 2;
+    HEAP32[$64 >> 2] = $68;
+    var $_sum5 = $52 + 4 | 0;
+    var $69 = $45 + $_sum5 | 0;
+    var $70 = $69;
+    var $71 = HEAP32[$70 >> 2];
+    var $72 = $71 | 1;
+    HEAP32[$70 >> 2] = $72;
+    var $73 = HEAP32[$49 >> 2];
+    var $74 = $73 & 1;
+    var $75 = $47 | $74;
+    var $76 = $75 | 2;
+    HEAP32[$49 >> 2] = $76;
+    var $_sum7 = $47 - 4 | 0;
+    var $77 = $24 + $_sum7 | 0;
+    var $78 = $77;
+    var $79 = HEAP32[$78 >> 2];
+    var $80 = $79 | 1;
+    HEAP32[$78 >> 2] = $80;
+    var $leader_1 = $24;
+    var $p_0_in = $45;
+    label = 17;
+    break;
+   case 17:
+    var $p_0_in;
+    var $leader_1;
+    var $82 = $p_0_in + 4 | 0;
+    var $83 = $82;
+    var $84 = HEAP32[$83 >> 2];
+    var $85 = $84 & 3;
+    var $86 = ($85 | 0) == 0;
+    if ($86) {
+      var $trailer_0 = 0;
+      label = 20;
+      break;
+    } else {
+      label = 18;
+      break;
+    }
+   case 18:
+    var $88 = $84 & -8;
+    var $89 = $21 + 16 | 0;
+    var $90 = $88 >>> 0 > $89 >>> 0;
+    if ($90) {
+      label = 19;
+      break;
+    } else {
+      var $trailer_0 = 0;
+      label = 20;
+      break;
+    }
+   case 19:
+    var $92 = $88 - $21 | 0;
+    var $93 = $84 & 1;
+    var $94 = $21 | $93;
+    var $95 = $94 | 2;
+    HEAP32[$83 >> 2] = $95;
+    var $_sum1 = $21 | 4;
+    var $96 = $p_0_in + $_sum1 | 0;
+    var $97 = $96;
+    var $98 = $92 | 3;
+    HEAP32[$97 >> 2] = $98;
+    var $_sum2 = $88 | 4;
+    var $99 = $p_0_in + $_sum2 | 0;
+    var $100 = $99;
+    var $101 = HEAP32[$100 >> 2];
+    var $102 = $101 | 1;
+    HEAP32[$100 >> 2] = $102;
+    var $_sum = $21 + 8 | 0;
+    var $103 = $p_0_in + $_sum | 0;
+    var $trailer_0 = $103;
+    label = 20;
+    break;
+   case 20:
+    var $trailer_0;
+    var $105 = ($leader_1 | 0) == 0;
+    if ($105) {
+      label = 22;
+      break;
+    } else {
+      label = 21;
+      break;
+    }
+   case 21:
+    _free($leader_1);
+    label = 22;
+    break;
+   case 22:
+    var $108 = ($trailer_0 | 0) == 0;
+    if ($108) {
+      label = 24;
+      break;
+    } else {
+      label = 23;
+      break;
+    }
+   case 23:
+    _free($trailer_0);
+    label = 24;
+    break;
+   case 24:
+    var $111 = $p_0_in + 8 | 0;
+    var $_0 = $111;
+    label = 25;
+    break;
+   case 25:
+    var $_0;
+    return $_0;
+  }
+}
+_internal_memalign["X"] = 1;
+function _independent_calloc($n_elements, $elem_size, $chunks) {
+  var __stackBase__ = STACKTOP;
+  STACKTOP = STACKTOP + 4 | 0;
+  var $sz = __stackBase__;
+  HEAP32[$sz >> 2] = $elem_size;
+  var $1 = _ialloc($n_elements, $sz, 3, $chunks);
+  STACKTOP = __stackBase__;
+  return $1;
+}
+function _ialloc($n_elements, $sizes, $opts, $chunks) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = HEAP32[5292248 >> 2];
+    var $2 = ($1 | 0) == 0;
+    if ($2) {
+      label = 3;
+      break;
+    } else {
+      label = 4;
+      break;
+    }
+   case 3:
+    _init_mparams();
+    label = 4;
+    break;
+   case 4:
+    var $5 = ($chunks | 0) == 0;
+    var $6 = ($n_elements | 0) == 0;
+    if ($5) {
+      label = 6;
+      break;
+    } else {
+      label = 5;
+      break;
+    }
+   case 5:
+    if ($6) {
+      var $_0 = $chunks;
+      label = 30;
+      break;
+    } else {
+      var $marray_0 = $chunks;
+      var $array_size_0 = 0;
+      label = 10;
+      break;
+    }
+   case 6:
+    if ($6) {
+      label = 7;
+      break;
+    } else {
+      label = 8;
+      break;
+    }
+   case 7:
+    var $10 = _malloc(0);
+    var $11 = $10;
+    var $_0 = $11;
+    label = 30;
+    break;
+   case 8:
+    var $13 = $n_elements << 2;
+    var $14 = $13 >>> 0 < 11;
+    if ($14) {
+      var $marray_0 = 0;
+      var $array_size_0 = 16;
+      label = 10;
+      break;
+    } else {
+      label = 9;
+      break;
+    }
+   case 9:
+    var $16 = $13 + 11 | 0;
+    var $17 = $16 & -8;
+    var $marray_0 = 0;
+    var $array_size_0 = $17;
+    label = 10;
+    break;
+   case 10:
+    var $array_size_0;
+    var $marray_0;
+    var $19 = $opts & 1;
+    var $20 = ($19 | 0) == 0;
+    if ($20) {
+      label = 11;
+      break;
+    } else {
+      label = 12;
+      break;
+    }
+   case 11:
+    var $21 = ($n_elements | 0) == 0;
+    if ($21) {
+      var $element_size_0 = 0;
+      var $contents_size_1 = 0;
+      label = 18;
+      break;
+    } else {
+      var $contents_size_07 = 0;
+      var $i_08 = 0;
+      label = 15;
+      break;
+    }
+   case 12:
+    var $23 = HEAP32[$sizes >> 2];
+    var $24 = $23 >>> 0 < 11;
+    if ($24) {
+      var $29 = 16;
+      label = 14;
+      break;
+    } else {
+      label = 13;
+      break;
+    }
+   case 13:
+    var $26 = $23 + 11 | 0;
+    var $27 = $26 & -8;
+    var $29 = $27;
+    label = 14;
+    break;
+   case 14:
+    var $29;
+    var $30 = $29 * $n_elements & -1;
+    var $element_size_0 = $29;
+    var $contents_size_1 = $30;
+    label = 18;
+    break;
+   case 15:
+    var $i_08;
+    var $contents_size_07;
+    var $31 = $sizes + ($i_08 << 2) | 0;
+    var $32 = HEAP32[$31 >> 2];
+    var $33 = $32 >>> 0 < 11;
+    if ($33) {
+      var $38 = 16;
+      label = 17;
+      break;
+    } else {
+      label = 16;
+      break;
+    }
+   case 16:
+    var $35 = $32 + 11 | 0;
+    var $36 = $35 & -8;
+    var $38 = $36;
+    label = 17;
+    break;
+   case 17:
+    var $38;
+    var $39 = $38 + $contents_size_07 | 0;
+    var $40 = $i_08 + 1 | 0;
+    var $41 = ($40 | 0) == ($n_elements | 0);
+    if ($41) {
+      var $element_size_0 = 0;
+      var $contents_size_1 = $39;
+      label = 18;
+      break;
+    } else {
+      var $contents_size_07 = $39;
+      var $i_08 = $40;
+      label = 15;
+      break;
+    }
+   case 18:
+    var $contents_size_1;
+    var $element_size_0;
+    var $42 = $array_size_0 - 4 | 0;
+    var $43 = $42 + $contents_size_1 | 0;
+    var $44 = _malloc($43);
+    var $45 = ($44 | 0) == 0;
+    if ($45) {
+      var $_0 = 0;
+      label = 30;
+      break;
+    } else {
+      label = 19;
+      break;
+    }
+   case 19:
+    var $47 = $44 - 8 | 0;
+    var $48 = $44 - 4 | 0;
+    var $49 = $48;
+    var $50 = HEAP32[$49 >> 2];
+    var $51 = $50 & -8;
+    var $52 = $opts & 2;
+    var $53 = ($52 | 0) == 0;
+    if ($53) {
+      label = 21;
+      break;
+    } else {
+      label = 20;
+      break;
+    }
+   case 20:
+    var $55 = -4 - $array_size_0 | 0;
+    var $56 = $55 + $51 | 0;
+    _memset($44, 0, $56);
+    label = 21;
+    break;
+   case 21:
+    var $58 = ($marray_0 | 0) == 0;
+    if ($58) {
+      label = 22;
+      break;
+    } else {
+      var $marray_1 = $marray_0;
+      var $remainder_size_0 = $51;
+      label = 23;
+      break;
+    }
+   case 22:
+    var $60 = $51 - $contents_size_1 | 0;
+    var $61 = $44 + $contents_size_1 | 0;
+    var $62 = $61;
+    var $63 = $60 | 3;
+    var $_sum2 = $contents_size_1 - 4 | 0;
+    var $64 = $44 + $_sum2 | 0;
+    var $65 = $64;
+    HEAP32[$65 >> 2] = $63;
+    var $marray_1 = $62;
+    var $remainder_size_0 = $contents_size_1;
+    label = 23;
+    break;
+   case 23:
+    var $remainder_size_0;
+    var $marray_1;
+    HEAP32[$marray_1 >> 2] = $44;
+    var $67 = $n_elements - 1 | 0;
+    var $68 = ($67 | 0) == 0;
+    if ($68) {
+      var $p_0_in_lcssa = $47;
+      var $remainder_size_1_lcssa = $remainder_size_0;
+      label = 29;
+      break;
+    } else {
+      label = 24;
+      break;
+    }
+   case 24:
+    var $69 = ($element_size_0 | 0) == 0;
+    var $p_0_in3 = $47;
+    var $remainder_size_14 = $remainder_size_0;
+    var $i_15 = 0;
+    label = 25;
+    break;
+   case 25:
+    var $i_15;
+    var $remainder_size_14;
+    var $p_0_in3;
+    if ($69) {
+      label = 26;
+      break;
+    } else {
+      var $size_0 = $element_size_0;
+      label = 28;
+      break;
+    }
+   case 26:
+    var $72 = $sizes + ($i_15 << 2) | 0;
+    var $73 = HEAP32[$72 >> 2];
+    var $74 = $73 >>> 0 < 11;
+    if ($74) {
+      var $size_0 = 16;
+      label = 28;
+      break;
+    } else {
+      label = 27;
+      break;
+    }
+   case 27:
+    var $76 = $73 + 11 | 0;
+    var $77 = $76 & -8;
+    var $size_0 = $77;
+    label = 28;
+    break;
+   case 28:
+    var $size_0;
+    var $79 = $remainder_size_14 - $size_0 | 0;
+    var $80 = $size_0 | 3;
+    var $81 = $p_0_in3 + 4 | 0;
+    var $82 = $81;
+    HEAP32[$82 >> 2] = $80;
+    var $83 = $p_0_in3 + $size_0 | 0;
+    var $84 = $i_15 + 1 | 0;
+    var $_sum = $size_0 + 8 | 0;
+    var $85 = $p_0_in3 + $_sum | 0;
+    var $86 = $marray_1 + ($84 << 2) | 0;
+    HEAP32[$86 >> 2] = $85;
+    var $87 = ($84 | 0) == ($67 | 0);
+    if ($87) {
+      var $p_0_in_lcssa = $83;
+      var $remainder_size_1_lcssa = $79;
+      label = 29;
+      break;
+    } else {
+      var $p_0_in3 = $83;
+      var $remainder_size_14 = $79;
+      var $i_15 = $84;
+      label = 25;
+      break;
+    }
+   case 29:
+    var $remainder_size_1_lcssa;
+    var $p_0_in_lcssa;
+    var $88 = $remainder_size_1_lcssa | 3;
+    var $89 = $p_0_in_lcssa + 4 | 0;
+    var $90 = $89;
+    HEAP32[$90 >> 2] = $88;
+    var $_0 = $marray_1;
+    label = 30;
+    break;
+   case 30:
+    var $_0;
+    return $_0;
+  }
+}
+_ialloc["X"] = 1;
+function _independent_comalloc($n_elements, $sizes, $chunks) {
+  return _ialloc($n_elements, $sizes, 0, $chunks);
+}
+function _valloc($bytes) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = HEAP32[5292248 >> 2];
+    var $2 = ($1 | 0) == 0;
+    if ($2) {
+      label = 3;
+      break;
+    } else {
+      label = 4;
+      break;
+    }
+   case 3:
+    _init_mparams();
+    label = 4;
+    break;
+   case 4:
+    var $5 = HEAP32[5292252 >> 2];
+    var $6 = _memalign($5, $bytes);
+    return $6;
+  }
+}
+function _pvalloc($bytes) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = HEAP32[5292248 >> 2];
+    var $2 = ($1 | 0) == 0;
+    if ($2) {
+      label = 3;
+      break;
+    } else {
+      label = 4;
+      break;
+    }
+   case 3:
+    _init_mparams();
+    label = 4;
+    break;
+   case 4:
+    var $5 = HEAP32[5292252 >> 2];
+    var $6 = $bytes - 1 | 0;
+    var $7 = $6 + $5 | 0;
+    var $8 = -$5 | 0;
+    var $9 = $7 & $8;
+    var $10 = _memalign($5, $9);
+    return $10;
+  }
+}
+function _malloc_trim($pad) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = HEAP32[5292248 >> 2];
+    var $2 = ($1 | 0) == 0;
+    if ($2) {
+      label = 3;
+      break;
+    } else {
+      label = 4;
+      break;
+    }
+   case 3:
+    _init_mparams();
+    label = 4;
+    break;
+   case 4:
+    var $5 = _sys_trim($pad);
+    return $5;
+  }
+}
+function _mallinfo($agg_result) {
+  _internal_mallinfo($agg_result);
+  return;
+}
+function _internal_mallinfo($agg_result) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = HEAP32[5292248 >> 2];
+    var $2 = ($1 | 0) == 0;
+    if ($2) {
+      label = 3;
+      break;
+    } else {
+      label = 4;
+      break;
+    }
+   case 3:
+    _init_mparams();
+    label = 4;
+    break;
+   case 4:
+    var $5 = HEAP32[5387528 >> 2];
+    var $6 = ($5 | 0) == 0;
+    if ($6) {
+      var $nm_sroa_8_0 = 0;
+      var $nm_sroa_0_0 = 0;
+      var $nm_sroa_1_0 = 0;
+      var $nm_sroa_3_0 = 0;
+      var $nm_sroa_4_0 = 0;
+      var $nm_sroa_7_0 = 0;
+      var $nm_sroa_6_0 = 0;
+      label = 17;
+      break;
+    } else {
+      label = 5;
+      break;
+    }
+   case 5:
+    var $8 = HEAP32[5387516 >> 2];
+    var $9 = $8 + 40 | 0;
+    var $10 = HEAP32[5387528 >> 2];
+    var $nfree_08 = 1;
+    var $mfree_09 = $9;
+    var $sum_010 = $9;
+    var $s_011 = 5387948;
+    label = 6;
+    break;
+   case 6:
+    var $s_011;
+    var $sum_010;
+    var $mfree_09;
+    var $nfree_08;
+    var $12 = $s_011 | 0;
+    var $13 = HEAP32[$12 >> 2];
+    var $14 = $13 + 8 | 0;
+    var $15 = $14;
+    var $16 = $15 & 7;
+    var $17 = ($16 | 0) == 0;
+    if ($17) {
+      var $22 = 0;
+      label = 8;
+      break;
+    } else {
+      label = 7;
+      break;
+    }
+   case 7:
+    var $19 = -$15 | 0;
+    var $20 = $19 & 7;
+    var $22 = $20;
+    label = 8;
+    break;
+   case 8:
+    var $22;
+    var $23 = $13 + $22 | 0;
+    var $24 = HEAP32[$12 >> 2];
+    var $25 = $23 >>> 0 < $24 >>> 0;
+    if ($25) {
+      var $nfree_1_lcssa = $nfree_08;
+      var $mfree_1_lcssa = $mfree_09;
+      var $sum_1_lcssa = $sum_010;
+      label = 15;
+      break;
+    } else {
+      label = 9;
+      break;
+    }
+   case 9:
+    var $26 = $s_011 + 4 | 0;
+    var $27 = HEAP32[$26 >> 2];
+    var $nfree_12 = $nfree_08;
+    var $mfree_13 = $mfree_09;
+    var $sum_14 = $sum_010;
+    var $q_0_in5 = $23;
+    var $29 = $24;
+    label = 10;
+    break;
+   case 10:
+    var $29;
+    var $q_0_in5;
+    var $sum_14;
+    var $mfree_13;
+    var $nfree_12;
+    var $q_0 = $q_0_in5;
+    var $30 = $29 + $27 | 0;
+    var $31 = $q_0_in5 >>> 0 >= $30 >>> 0;
+    var $32 = ($q_0 | 0) == ($10 | 0);
+    var $or_cond = $31 | $32;
+    if ($or_cond) {
+      var $nfree_1_lcssa = $nfree_12;
+      var $mfree_1_lcssa = $mfree_13;
+      var $sum_1_lcssa = $sum_14;
+      label = 15;
+      break;
+    } else {
+      label = 11;
+      break;
+    }
+   case 11:
+    var $34 = $q_0_in5 + 4 | 0;
+    var $35 = $34;
+    var $36 = HEAP32[$35 >> 2];
+    var $37 = ($36 | 0) == 7;
+    if ($37) {
+      var $nfree_1_lcssa = $nfree_12;
+      var $mfree_1_lcssa = $mfree_13;
+      var $sum_1_lcssa = $sum_14;
+      label = 15;
+      break;
+    } else {
+      label = 12;
+      break;
+    }
+   case 12:
+    var $39 = $36 & -8;
+    var $40 = $39 + $sum_14 | 0;
+    var $41 = $36 & 3;
+    var $42 = ($41 | 0) == 1;
+    if ($42) {
+      label = 13;
+      break;
+    } else {
+      var $mfree_2 = $mfree_13;
+      var $nfree_2 = $nfree_12;
+      label = 14;
+      break;
+    }
+   case 13:
+    var $44 = $39 + $mfree_13 | 0;
+    var $45 = $nfree_12 + 1 | 0;
+    var $mfree_2 = $44;
+    var $nfree_2 = $45;
+    label = 14;
+    break;
+   case 14:
+    var $nfree_2;
+    var $mfree_2;
+    var $47 = HEAP32[$35 >> 2];
+    var $48 = $47 & -8;
+    var $49 = $q_0_in5 + $48 | 0;
+    var $50 = HEAP32[$12 >> 2];
+    var $51 = $49 >>> 0 < $50 >>> 0;
+    if ($51) {
+      var $nfree_1_lcssa = $nfree_2;
+      var $mfree_1_lcssa = $mfree_2;
+      var $sum_1_lcssa = $40;
+      label = 15;
+      break;
+    } else {
+      var $nfree_12 = $nfree_2;
+      var $mfree_13 = $mfree_2;
+      var $sum_14 = $40;
+      var $q_0_in5 = $49;
+      var $29 = $50;
+      label = 10;
+      break;
+    }
+   case 15:
+    var $sum_1_lcssa;
+    var $mfree_1_lcssa;
+    var $nfree_1_lcssa;
+    var $52 = $s_011 + 8 | 0;
+    var $53 = HEAP32[$52 >> 2];
+    var $54 = ($53 | 0) == 0;
+    if ($54) {
+      label = 16;
+      break;
+    } else {
+      var $nfree_08 = $nfree_1_lcssa;
+      var $mfree_09 = $mfree_1_lcssa;
+      var $sum_010 = $sum_1_lcssa;
+      var $s_011 = $53;
+      label = 6;
+      break;
+    }
+   case 16:
+    var $56 = HEAP32[5387936 >> 2];
+    var $57 = $56 - $sum_1_lcssa | 0;
+    var $58 = HEAP32[5387940 >> 2];
+    var $59 = $56 - $mfree_1_lcssa | 0;
+    var $60 = HEAP32[5387516 >> 2];
+    var $nm_sroa_8_0 = $60;
+    var $nm_sroa_0_0 = $sum_1_lcssa;
+    var $nm_sroa_1_0 = $nfree_1_lcssa;
+    var $nm_sroa_3_0 = $57;
+    var $nm_sroa_4_0 = $58;
+    var $nm_sroa_7_0 = $mfree_1_lcssa;
+    var $nm_sroa_6_0 = $59;
+    label = 17;
+    break;
+   case 17:
+    var $nm_sroa_6_0;
+    var $nm_sroa_7_0;
+    var $nm_sroa_4_0;
+    var $nm_sroa_3_0;
+    var $nm_sroa_1_0;
+    var $nm_sroa_0_0;
+    var $nm_sroa_8_0;
+    var $nm_sroa_0_0__idx = $agg_result | 0;
+    HEAP32[$nm_sroa_0_0__idx >> 2] = $nm_sroa_0_0;
+    var $nm_sroa_1_4__idx24 = $agg_result + 4 | 0;
+    HEAP32[$nm_sroa_1_4__idx24 >> 2] = $nm_sroa_1_0;
+    var $nm_sroa_2_8__idx = $agg_result + 8 | 0;
+    var $62 = $nm_sroa_2_8__idx;
+    var $$etemp$0$0 = 0;
+    var $$etemp$0$1 = 0;
+    var $st$15$0 = $62 | 0;
+    HEAP32[$st$15$0 >> 2] = $$etemp$0$0;
+    var $st$15$1 = $62 + 4 | 0;
+    HEAP32[$st$15$1 >> 2] = $$etemp$0$1;
+    var $nm_sroa_3_16__idx26 = $agg_result + 16 | 0;
+    HEAP32[$nm_sroa_3_16__idx26 >> 2] = $nm_sroa_3_0;
+    var $nm_sroa_4_20__idx27 = $agg_result + 20 | 0;
+    HEAP32[$nm_sroa_4_20__idx27 >> 2] = $nm_sroa_4_0;
+    var $nm_sroa_5_24__idx28 = $agg_result + 24 | 0;
+    HEAP32[$nm_sroa_5_24__idx28 >> 2] = 0;
+    var $nm_sroa_6_28__idx29 = $agg_result + 28 | 0;
+    HEAP32[$nm_sroa_6_28__idx29 >> 2] = $nm_sroa_6_0;
+    var $nm_sroa_7_32__idx30 = $agg_result + 32 | 0;
+    HEAP32[$nm_sroa_7_32__idx30 >> 2] = $nm_sroa_7_0;
+    var $nm_sroa_8_36__idx31 = $agg_result + 36 | 0;
+    HEAP32[$nm_sroa_8_36__idx31 >> 2] = $nm_sroa_8_0;
+    return;
+  }
+}
+_internal_mallinfo["X"] = 1;
+function _malloc_stats() {
+  _internal_malloc_stats();
+  return;
+}
+function _internal_malloc_stats() {
+  var label = 0;
+  var __stackBase__ = STACKTOP;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = HEAP32[5292248 >> 2];
+    var $2 = ($1 | 0) == 0;
+    if ($2) {
+      label = 3;
+      break;
+    } else {
+      label = 4;
+      break;
+    }
+   case 3:
+    _init_mparams();
+    label = 4;
+    break;
+   case 4:
+    var $5 = HEAP32[5387528 >> 2];
+    var $6 = ($5 | 0) == 0;
+    if ($6) {
+      var $used_3 = 0;
+      var $fp_0 = 0;
+      var $maxfp_0 = 0;
+      label = 16;
+      break;
+    } else {
+      label = 5;
+      break;
+    }
+   case 5:
+    var $8 = HEAP32[5387940 >> 2];
+    var $9 = HEAP32[5387936 >> 2];
+    var $10 = HEAP32[5387516 >> 2];
+    var $_neg2 = $9 - 40 | 0;
+    var $11 = $_neg2 - $10 | 0;
+    var $12 = HEAP32[5387528 >> 2];
+    var $used_05 = $11;
+    var $s_06 = 5387948;
+    label = 6;
+    break;
+   case 6:
+    var $s_06;
+    var $used_05;
+    var $14 = $s_06 | 0;
+    var $15 = HEAP32[$14 >> 2];
+    var $16 = $15 + 8 | 0;
+    var $17 = $16;
+    var $18 = $17 & 7;
+    var $19 = ($18 | 0) == 0;
+    if ($19) {
+      var $24 = 0;
+      label = 8;
+      break;
+    } else {
+      label = 7;
+      break;
+    }
+   case 7:
+    var $21 = -$17 | 0;
+    var $22 = $21 & 7;
+    var $24 = $22;
+    label = 8;
+    break;
+   case 8:
+    var $24;
+    var $25 = $15 + $24 | 0;
+    var $26 = HEAP32[$14 >> 2];
+    var $27 = $25 >>> 0 < $26 >>> 0;
+    if ($27) {
+      var $used_1_lcssa = $used_05;
+      label = 15;
+      break;
+    } else {
+      label = 9;
+      break;
+    }
+   case 9:
+    var $28 = $s_06 + 4 | 0;
+    var $29 = HEAP32[$28 >> 2];
+    var $used_13 = $used_05;
+    var $q_0_in4 = $25;
+    var $31 = $26;
+    label = 10;
+    break;
+   case 10:
+    var $31;
+    var $q_0_in4;
+    var $used_13;
+    var $q_0 = $q_0_in4;
+    var $32 = $31 + $29 | 0;
+    var $33 = $q_0_in4 >>> 0 >= $32 >>> 0;
+    var $34 = ($q_0 | 0) == ($12 | 0);
+    var $or_cond = $33 | $34;
+    if ($or_cond) {
+      var $used_1_lcssa = $used_13;
+      label = 15;
+      break;
+    } else {
+      label = 11;
+      break;
+    }
+   case 11:
+    var $36 = $q_0_in4 + 4 | 0;
+    var $37 = $36;
+    var $38 = HEAP32[$37 >> 2];
+    var $39 = ($38 | 0) == 7;
+    if ($39) {
+      var $used_1_lcssa = $used_13;
+      label = 15;
+      break;
+    } else {
+      label = 12;
+      break;
+    }
+   case 12:
+    var $41 = $38 & 3;
+    var $42 = ($41 | 0) == 1;
+    if ($42) {
+      label = 13;
+      break;
+    } else {
+      var $used_2 = $used_13;
+      label = 14;
+      break;
+    }
+   case 13:
+    var $44 = $38 & -8;
+    var $45 = $used_13 - $44 | 0;
+    var $used_2 = $45;
+    label = 14;
+    break;
+   case 14:
+    var $used_2;
+    var $47 = HEAP32[$37 >> 2];
+    var $48 = $47 & -8;
+    var $49 = $q_0_in4 + $48 | 0;
+    var $50 = HEAP32[$14 >> 2];
+    var $51 = $49 >>> 0 < $50 >>> 0;
+    if ($51) {
+      var $used_1_lcssa = $used_2;
+      label = 15;
+      break;
+    } else {
+      var $used_13 = $used_2;
+      var $q_0_in4 = $49;
+      var $31 = $50;
+      label = 10;
+      break;
+    }
+   case 15:
+    var $used_1_lcssa;
+    var $52 = $s_06 + 8 | 0;
+    var $53 = HEAP32[$52 >> 2];
+    var $54 = ($53 | 0) == 0;
+    if ($54) {
+      var $used_3 = $used_1_lcssa;
+      var $fp_0 = $9;
+      var $maxfp_0 = $8;
+      label = 16;
+      break;
+    } else {
+      var $used_05 = $used_1_lcssa;
+      var $s_06 = $53;
+      label = 6;
+      break;
+    }
+   case 16:
+    var $maxfp_0;
+    var $fp_0;
+    var $used_3;
+    var $55 = HEAP32[_stderr >> 2];
+    var $56 = _fprintf($55, 5384576, (tempInt = STACKTOP, STACKTOP = STACKTOP + 4 | 0, HEAP32[tempInt >> 2] = $maxfp_0, tempInt));
+    var $57 = HEAP32[_stderr >> 2];
+    var $58 = _fprintf($57, 5386532, (tempInt = STACKTOP, STACKTOP = STACKTOP + 4 | 0, HEAP32[tempInt >> 2] = $fp_0, tempInt));
+    var $59 = HEAP32[_stderr >> 2];
+    var $60 = _fprintf($59, 5385540, (tempInt = STACKTOP, STACKTOP = STACKTOP + 4 | 0, HEAP32[tempInt >> 2] = $used_3, tempInt));
+    STACKTOP = __stackBase__;
+    return;
+  }
+}
+_internal_malloc_stats["X"] = 1;
+function _mallopt($param_number, $value) {
+  return _change_mparam($param_number, $value);
+}
+function _change_mparam($param_number, $value) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = HEAP32[5292248 >> 2];
+    var $2 = ($1 | 0) == 0;
+    if ($2) {
+      label = 3;
+      break;
+    } else {
+      label = 4;
+      break;
+    }
+   case 3:
+    _init_mparams();
+    label = 4;
+    break;
+   case 4:
+    if (($param_number | 0) == -1) {
+      label = 5;
+      break;
+    } else if (($param_number | 0) == -2) {
+      label = 6;
+      break;
+    } else if (($param_number | 0) == -3) {
+      label = 9;
+      break;
+    } else {
+      var $_0 = 0;
+      label = 10;
+      break;
+    }
+   case 5:
+    HEAP32[5292264 >> 2] = $value;
+    var $_0 = 1;
+    label = 10;
+    break;
+   case 6:
+    var $7 = HEAP32[5292252 >> 2];
+    var $8 = $7 >>> 0 > $value >>> 0;
+    if ($8) {
+      var $_0 = 0;
+      label = 10;
+      break;
+    } else {
+      label = 7;
+      break;
+    }
+   case 7:
+    var $10 = $value - 1 | 0;
+    var $11 = $10 & $value;
+    var $12 = ($11 | 0) == 0;
+    if ($12) {
+      label = 8;
+      break;
+    } else {
+      var $_0 = 0;
+      label = 10;
+      break;
+    }
+   case 8:
+    HEAP32[5292256 >> 2] = $value;
+    var $_0 = 1;
+    label = 10;
+    break;
+   case 9:
+    HEAP32[5292260 >> 2] = $value;
+    var $_0 = 1;
+    label = 10;
+    break;
+   case 10:
+    var $_0;
+    return $_0;
+  }
+}
+function _internal_realloc($oldmem, $bytes) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = $bytes >>> 0 > 4294967231;
+    if ($1) {
+      label = 3;
+      break;
+    } else {
+      label = 4;
+      break;
+    }
+   case 3:
+    var $3 = ___errno_location();
+    HEAP32[$3 >> 2] = 12;
+    var $_0 = 0;
+    label = 24;
+    break;
+   case 4:
+    var $5 = $oldmem - 8 | 0;
+    var $6 = $5;
+    var $7 = $oldmem - 4 | 0;
+    var $8 = $7;
+    var $9 = HEAP32[$8 >> 2];
+    var $10 = $9 & -8;
+    var $_sum = $10 - 8 | 0;
+    var $11 = $oldmem + $_sum | 0;
+    var $12 = $11;
+    var $13 = HEAP32[5387520 >> 2];
+    var $14 = $5 >>> 0 < $13 >>> 0;
+    if ($14) {
+      label = 17;
+      break;
+    } else {
+      label = 5;
+      break;
+    }
+   case 5:
+    var $16 = $9 & 3;
+    var $17 = ($16 | 0) != 1;
+    var $18 = ($_sum | 0) > -8;
+    var $or_cond = $17 & $18;
+    if ($or_cond) {
+      label = 6;
+      break;
+    } else {
+      label = 17;
+      break;
+    }
+   case 6:
+    var $_sum8 = $10 - 4 | 0;
+    var $20 = $oldmem + $_sum8 | 0;
+    var $21 = $20;
+    var $22 = HEAP32[$21 >> 2];
+    var $23 = $22 & 1;
+    var $24 = ($23 | 0) == 0;
+    if ($24) {
+      label = 17;
+      break;
+    } else {
+      label = 7;
+      break;
+    }
+   case 7:
+    var $26 = $bytes >>> 0 < 11;
+    if ($26) {
+      var $31 = 16;
+      label = 9;
+      break;
+    } else {
+      label = 8;
+      break;
+    }
+   case 8:
+    var $28 = $bytes + 11 | 0;
+    var $29 = $28 & -8;
+    var $31 = $29;
+    label = 9;
+    break;
+   case 9:
+    var $31;
+    var $32 = HEAP32[$8 >> 2];
+    var $33 = $32 & 3;
+    var $34 = ($33 | 0) == 0;
+    if ($34) {
+      label = 10;
+      break;
+    } else {
+      label = 11;
+      break;
+    }
+   case 10:
+    var $36 = _mmap_resize($6, $31);
+    var $newp_0 = $36;
+    var $extra_0 = 0;
+    label = 18;
+    break;
+   case 11:
+    var $38 = $10 >>> 0 < $31 >>> 0;
+    if ($38) {
+      label = 14;
+      break;
+    } else {
+      label = 12;
+      break;
+    }
+   case 12:
+    var $40 = $10 - $31 | 0;
+    var $41 = $40 >>> 0 > 15;
+    if ($41) {
+      label = 13;
+      break;
+    } else {
+      var $newp_0 = $6;
+      var $extra_0 = 0;
+      label = 18;
+      break;
+    }
+   case 13:
+    var $43 = $32 & 1;
+    var $44 = $31 | $43;
+    var $45 = $44 | 2;
+    HEAP32[$8 >> 2] = $45;
+    var $_sum4 = $31 - 4 | 0;
+    var $46 = $oldmem + $_sum4 | 0;
+    var $47 = $46;
+    var $48 = $40 | 3;
+    HEAP32[$47 >> 2] = $48;
+    var $49 = HEAP32[$21 >> 2];
+    var $50 = $49 | 1;
+    HEAP32[$21 >> 2] = $50;
+    var $51 = $oldmem + $31 | 0;
+    var $newp_0 = $6;
+    var $extra_0 = $51;
+    label = 18;
+    break;
+   case 14:
+    var $53 = HEAP32[5387528 >> 2];
+    var $54 = ($12 | 0) == ($53 | 0);
+    if ($54) {
+      label = 15;
+      break;
+    } else {
+      label = 22;
+      break;
+    }
+   case 15:
+    var $56 = HEAP32[5387516 >> 2];
+    var $57 = $56 + $10 | 0;
+    var $58 = $57 >>> 0 > $31 >>> 0;
+    if ($58) {
+      label = 16;
+      break;
+    } else {
+      label = 22;
+      break;
+    }
+   case 16:
+    var $60 = $57 - $31 | 0;
+    var $_sum1 = $31 - 8 | 0;
+    var $61 = $oldmem + $_sum1 | 0;
+    var $62 = $61;
+    var $63 = $32 & 1;
+    var $64 = $31 | $63;
+    var $65 = $64 | 2;
+    HEAP32[$8 >> 2] = $65;
+    var $_sum2 = $31 - 4 | 0;
+    var $66 = $oldmem + $_sum2 | 0;
+    var $67 = $66;
+    var $68 = $60 | 1;
+    HEAP32[$67 >> 2] = $68;
+    HEAP32[5387528 >> 2] = $62;
+    HEAP32[5387516 >> 2] = $60;
+    var $newp_0 = $6;
+    var $extra_0 = 0;
+    label = 18;
+    break;
+   case 17:
+    _abort();
+   case 18:
+    var $extra_0;
+    var $newp_0;
+    var $70 = ($newp_0 | 0) == 0;
+    if ($70) {
+      label = 22;
+      break;
+    } else {
+      label = 19;
+      break;
+    }
+   case 19:
+    var $72 = ($extra_0 | 0) == 0;
+    if ($72) {
+      label = 21;
+      break;
+    } else {
+      label = 20;
+      break;
+    }
+   case 20:
+    _free($extra_0);
+    label = 21;
+    break;
+   case 21:
+    var $75 = $newp_0 + 8 | 0;
+    var $76 = $75;
+    var $_0 = $76;
+    label = 24;
+    break;
+   case 22:
+    var $77 = _malloc($bytes);
+    var $78 = ($77 | 0) == 0;
+    if ($78) {
+      var $_0 = 0;
+      label = 24;
+      break;
+    } else {
+      label = 23;
+      break;
+    }
+   case 23:
+    var $80 = HEAP32[$8 >> 2];
+    var $81 = $80 & 3;
+    var $82 = ($81 | 0) == 0;
+    var $83 = $82 ? 8 : 4;
+    var $84 = $10 - $83 | 0;
+    var $85 = $84 >>> 0 < $bytes >>> 0;
+    var $86 = $85 ? $84 : $bytes;
+    _memcpy($77, $oldmem, $86);
+    _free($oldmem);
+    var $_0 = $77;
+    label = 24;
+    break;
+   case 24:
+    var $_0;
+    return $_0;
+  }
+}
+_internal_realloc["X"] = 1;
+function _init_mparams() {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = HEAP32[5292248 >> 2];
+    var $2 = ($1 | 0) == 0;
+    if ($2) {
+      label = 3;
+      break;
+    } else {
+      label = 6;
+      break;
+    }
+   case 3:
+    var $4 = _sysconf(8);
+    var $5 = $4 - 1 | 0;
+    var $6 = $5 & $4;
+    var $7 = ($6 | 0) == 0;
+    if ($7) {
+      label = 5;
+      break;
+    } else {
+      label = 4;
+      break;
+    }
+   case 4:
+    _abort();
+   case 5:
+    HEAP32[5292256 >> 2] = $4;
+    HEAP32[5292252 >> 2] = $4;
+    HEAP32[5292260 >> 2] = -1;
+    HEAP32[5292264 >> 2] = 2097152;
+    HEAP32[5292268 >> 2] = 0;
+    HEAP32[5387944 >> 2] = 0;
+    var $10 = _time(0);
+    var $11 = $10 & -16;
+    var $12 = $11 ^ 1431655768;
+    HEAP32[5292248 >> 2] = $12;
+    label = 6;
+    break;
+   case 6:
+    return;
+  }
+}
+function _malloc_usable_size($mem) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = ($mem | 0) == 0;
+    if ($1) {
+      var $_0 = 0;
+      label = 5;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 3:
+    var $3 = $mem - 4 | 0;
+    var $4 = $3;
+    var $5 = HEAP32[$4 >> 2];
+    var $6 = $5 & 3;
+    var $7 = ($6 | 0) == 1;
+    if ($7) {
+      var $_0 = 0;
+      label = 5;
+      break;
+    } else {
+      label = 4;
+      break;
+    }
+   case 4:
+    var $9 = $5 & -8;
+    var $10 = ($6 | 0) == 0;
+    var $11 = $10 ? 8 : 4;
+    var $12 = $9 - $11 | 0;
+    var $_0 = $12;
+    label = 5;
+    break;
+   case 5:
+    var $_0;
+    return $_0;
+  }
+}
+function _mmap_resize($oldp, $nb) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = $oldp + 4 | 0;
+    var $2 = HEAP32[$1 >> 2];
+    var $3 = $2 & -8;
+    var $4 = $nb >>> 0 < 256;
+    if ($4) {
+      var $_0 = 0;
+      label = 6;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 3:
+    var $6 = $nb + 4 | 0;
+    var $7 = $3 >>> 0 < $6 >>> 0;
+    if ($7) {
+      label = 5;
+      break;
+    } else {
+      label = 4;
+      break;
+    }
+   case 4:
+    var $9 = $3 - $nb | 0;
+    var $10 = HEAP32[5292256 >> 2];
+    var $11 = $10 << 1;
+    var $12 = $9 >>> 0 > $11 >>> 0;
+    if ($12) {
+      label = 5;
+      break;
+    } else {
+      var $_0 = $oldp;
+      label = 6;
+      break;
+    }
+   case 5:
+    var $_0 = 0;
+    label = 6;
+    break;
+   case 6:
+    var $_0;
+    return $_0;
+  }
+}
+function _segment_holding($addr) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $sp_0 = 5387948;
+    label = 3;
+    break;
+   case 3:
+    var $sp_0;
+    var $2 = $sp_0 | 0;
+    var $3 = HEAP32[$2 >> 2];
+    var $4 = $3 >>> 0 > $addr >>> 0;
+    if ($4) {
+      label = 5;
+      break;
+    } else {
+      label = 4;
+      break;
+    }
+   case 4:
+    var $6 = $sp_0 + 4 | 0;
+    var $7 = HEAP32[$6 >> 2];
+    var $8 = $3 + $7 | 0;
+    var $9 = $8 >>> 0 > $addr >>> 0;
+    if ($9) {
+      var $_0 = $sp_0;
+      label = 6;
+      break;
+    } else {
+      label = 5;
+      break;
+    }
+   case 5:
+    var $11 = $sp_0 + 8 | 0;
+    var $12 = HEAP32[$11 >> 2];
+    var $13 = ($12 | 0) == 0;
+    if ($13) {
+      var $_0 = 0;
+      label = 6;
+      break;
+    } else {
+      var $sp_0 = $12;
+      label = 3;
+      break;
+    }
+   case 6:
+    var $_0;
+    return $_0;
+  }
+}
+function _init_top($p, $psize) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = $p;
+    var $2 = $p + 8 | 0;
+    var $3 = $2;
+    var $4 = $3 & 7;
+    var $5 = ($4 | 0) == 0;
+    if ($5) {
+      var $10 = 0;
+      label = 4;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 3:
+    var $7 = -$3 | 0;
+    var $8 = $7 & 7;
+    var $10 = $8;
+    label = 4;
+    break;
+   case 4:
+    var $10;
+    var $11 = $1 + $10 | 0;
+    var $12 = $11;
+    var $13 = $psize - $10 | 0;
+    HEAP32[5387528 >> 2] = $12;
+    HEAP32[5387516 >> 2] = $13;
+    var $14 = $13 | 1;
+    var $_sum = $10 + 4 | 0;
+    var $15 = $1 + $_sum | 0;
+    var $16 = $15;
+    HEAP32[$16 >> 2] = $14;
+    var $_sum2 = $psize + 4 | 0;
+    var $17 = $1 + $_sum2 | 0;
+    var $18 = $17;
+    HEAP32[$18 >> 2] = 40;
+    var $19 = HEAP32[5292264 >> 2];
+    HEAP32[5387532 >> 2] = $19;
+    return;
+  }
+}
+function _init_bins() {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $i_02 = 0;
+    label = 3;
+    break;
+   case 3:
+    var $i_02;
+    var $2 = $i_02 << 1;
+    var $3 = 5387544 + ($2 << 2) | 0;
+    var $4 = $3;
+    var $_sum = $2 + 3 | 0;
+    var $5 = 5387544 + ($_sum << 2) | 0;
+    HEAP32[$5 >> 2] = $4;
+    var $_sum1 = $2 + 2 | 0;
+    var $6 = 5387544 + ($_sum1 << 2) | 0;
+    HEAP32[$6 >> 2] = $4;
+    var $7 = $i_02 + 1 | 0;
+    var $exitcond = ($7 | 0) == 32;
+    if ($exitcond) {
+      label = 4;
+      break;
+    } else {
+      var $i_02 = $7;
+      label = 3;
+      break;
+    }
+   case 4:
+    return;
+  }
+}
+function _mmap_alloc() {
+}
+function _prepend_alloc($newbase, $oldbase, $nb) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = $newbase + 8 | 0;
+    var $2 = $1;
+    var $3 = $2 & 7;
+    var $4 = ($3 | 0) == 0;
+    if ($4) {
+      var $9 = 0;
+      label = 4;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 3:
+    var $6 = -$2 | 0;
+    var $7 = $6 & 7;
+    var $9 = $7;
+    label = 4;
+    break;
+   case 4:
+    var $9;
+    var $10 = $newbase + $9 | 0;
+    var $11 = $oldbase + 8 | 0;
+    var $12 = $11;
+    var $13 = $12 & 7;
+    var $14 = ($13 | 0) == 0;
+    if ($14) {
+      var $19 = 0;
+      label = 6;
+      break;
+    } else {
+      label = 5;
+      break;
+    }
+   case 5:
+    var $16 = -$12 | 0;
+    var $17 = $16 & 7;
+    var $19 = $17;
+    label = 6;
+    break;
+   case 6:
+    var $19;
+    var $20 = $oldbase + $19 | 0;
+    var $21 = $20;
+    var $22 = $20;
+    var $23 = $10;
+    var $24 = $22 - $23 | 0;
+    var $_sum = $9 + $nb | 0;
+    var $25 = $newbase + $_sum | 0;
+    var $26 = $25;
+    var $27 = $24 - $nb | 0;
+    var $28 = $nb | 3;
+    var $_sum1 = $9 + 4 | 0;
+    var $29 = $newbase + $_sum1 | 0;
+    var $30 = $29;
+    HEAP32[$30 >> 2] = $28;
+    var $31 = HEAP32[5387528 >> 2];
+    var $32 = ($21 | 0) == ($31 | 0);
+    if ($32) {
+      label = 7;
+      break;
+    } else {
+      label = 8;
+      break;
+    }
+   case 7:
+    var $34 = HEAP32[5387516 >> 2];
+    var $35 = $34 + $27 | 0;
+    HEAP32[5387516 >> 2] = $35;
+    HEAP32[5387528 >> 2] = $26;
+    var $36 = $35 | 1;
+    var $_sum42 = $_sum + 4 | 0;
+    var $37 = $newbase + $_sum42 | 0;
+    var $38 = $37;
+    HEAP32[$38 >> 2] = $36;
+    label = 76;
+    break;
+   case 8:
+    var $40 = HEAP32[5387524 >> 2];
+    var $41 = ($21 | 0) == ($40 | 0);
+    if ($41) {
+      label = 9;
+      break;
+    } else {
+      label = 10;
+      break;
+    }
+   case 9:
+    var $43 = HEAP32[5387512 >> 2];
+    var $44 = $43 + $27 | 0;
+    HEAP32[5387512 >> 2] = $44;
+    HEAP32[5387524 >> 2] = $26;
+    var $45 = $44 | 1;
+    var $_sum40 = $_sum + 4 | 0;
+    var $46 = $newbase + $_sum40 | 0;
+    var $47 = $46;
+    HEAP32[$47 >> 2] = $45;
+    var $_sum41 = $44 + $_sum | 0;
+    var $48 = $newbase + $_sum41 | 0;
+    var $49 = $48;
+    HEAP32[$49 >> 2] = $44;
+    label = 76;
+    break;
+   case 10:
+    var $_sum2 = $19 + 4 | 0;
+    var $51 = $oldbase + $_sum2 | 0;
+    var $52 = $51;
+    var $53 = HEAP32[$52 >> 2];
+    var $54 = $53 & 3;
+    var $55 = ($54 | 0) == 1;
+    if ($55) {
+      label = 11;
+      break;
+    } else {
+      var $oldfirst_0 = $21;
+      var $qsize_0 = $27;
+      label = 53;
+      break;
+    }
+   case 11:
+    var $57 = $53 & -8;
+    var $58 = $53 >>> 3;
+    var $59 = $53 >>> 0 < 256;
+    if ($59) {
+      label = 12;
+      break;
+    } else {
+      label = 20;
+      break;
+    }
+   case 12:
+    var $_sum3738 = $19 | 8;
+    var $61 = $oldbase + $_sum3738 | 0;
+    var $62 = $61;
+    var $63 = HEAP32[$62 >> 2];
+    var $_sum39 = $19 + 12 | 0;
+    var $64 = $oldbase + $_sum39 | 0;
+    var $65 = $64;
+    var $66 = HEAP32[$65 >> 2];
+    var $67 = ($63 | 0) == ($66 | 0);
+    if ($67) {
+      label = 13;
+      break;
+    } else {
+      label = 14;
+      break;
+    }
+   case 13:
+    var $69 = 1 << $58;
+    var $70 = $69 ^ -1;
+    var $71 = HEAP32[5387504 >> 2];
+    var $72 = $71 & $70;
+    HEAP32[5387504 >> 2] = $72;
+    label = 52;
+    break;
+   case 14:
+    var $74 = $58 << 1;
+    var $75 = 5387544 + ($74 << 2) | 0;
+    var $76 = $75;
+    var $77 = ($63 | 0) == ($76 | 0);
+    if ($77) {
+      label = 16;
+      break;
+    } else {
+      label = 15;
+      break;
+    }
+   case 15:
+    var $79 = $63;
+    var $80 = HEAP32[5387520 >> 2];
+    var $81 = $79 >>> 0 < $80 >>> 0;
+    if ($81) {
+      label = 19;
+      break;
+    } else {
+      label = 16;
+      break;
+    }
+   case 16:
+    var $83 = ($66 | 0) == ($76 | 0);
+    if ($83) {
+      label = 18;
+      break;
+    } else {
+      label = 17;
+      break;
+    }
+   case 17:
+    var $85 = $66;
+    var $86 = HEAP32[5387520 >> 2];
+    var $87 = $85 >>> 0 < $86 >>> 0;
+    if ($87) {
+      label = 19;
+      break;
+    } else {
+      label = 18;
+      break;
+    }
+   case 18:
+    var $88 = $63 + 12 | 0;
+    HEAP32[$88 >> 2] = $66;
+    var $89 = $66 + 8 | 0;
+    HEAP32[$89 >> 2] = $63;
+    label = 52;
+    break;
+   case 19:
+    _abort();
+   case 20:
+    var $91 = $20;
+    var $_sum34 = $19 | 24;
+    var $92 = $oldbase + $_sum34 | 0;
+    var $93 = $92;
+    var $94 = HEAP32[$93 >> 2];
+    var $_sum5 = $19 + 12 | 0;
+    var $95 = $oldbase + $_sum5 | 0;
+    var $96 = $95;
+    var $97 = HEAP32[$96 >> 2];
+    var $98 = ($97 | 0) == ($91 | 0);
+    if ($98) {
+      label = 24;
+      break;
+    } else {
+      label = 21;
+      break;
+    }
+   case 21:
+    var $_sum3536 = $19 | 8;
+    var $100 = $oldbase + $_sum3536 | 0;
+    var $101 = $100;
+    var $102 = HEAP32[$101 >> 2];
+    var $103 = $102;
+    var $104 = HEAP32[5387520 >> 2];
+    var $105 = $103 >>> 0 < $104 >>> 0;
+    if ($105) {
+      label = 23;
+      break;
+    } else {
+      label = 22;
+      break;
+    }
+   case 22:
+    var $107 = $102 + 12 | 0;
+    HEAP32[$107 >> 2] = $97;
+    var $108 = $97 + 8 | 0;
+    HEAP32[$108 >> 2] = $102;
+    var $R_1 = $97;
+    label = 32;
+    break;
+   case 23:
+    _abort();
+   case 24:
+    var $_sum67 = $19 | 16;
+    var $_sum8 = $_sum67 + 4 | 0;
+    var $111 = $oldbase + $_sum8 | 0;
+    var $112 = $111;
+    var $113 = HEAP32[$112 >> 2];
+    var $114 = ($113 | 0) == 0;
+    if ($114) {
+      label = 25;
+      break;
+    } else {
+      var $R_0 = $113;
+      var $RP_0 = $112;
+      label = 26;
+      break;
+    }
+   case 25:
+    var $116 = $oldbase + $_sum67 | 0;
+    var $117 = $116;
+    var $118 = HEAP32[$117 >> 2];
+    var $119 = ($118 | 0) == 0;
+    if ($119) {
+      var $R_1 = 0;
+      label = 32;
+      break;
+    } else {
+      var $R_0 = $118;
+      var $RP_0 = $117;
+      label = 26;
+      break;
+    }
+   case 26:
+    var $RP_0;
+    var $R_0;
+    var $120 = $R_0 + 20 | 0;
+    var $121 = HEAP32[$120 >> 2];
+    var $122 = ($121 | 0) == 0;
+    if ($122) {
+      label = 27;
+      break;
+    } else {
+      var $CP_0 = $120;
+      label = 28;
+      break;
+    }
+   case 27:
+    var $124 = $R_0 + 16 | 0;
+    var $125 = HEAP32[$124 >> 2];
+    var $126 = ($125 | 0) == 0;
+    if ($126) {
+      label = 29;
+      break;
+    } else {
+      var $CP_0 = $124;
+      label = 28;
+      break;
+    }
+   case 28:
+    var $CP_0;
+    var $127 = HEAP32[$CP_0 >> 2];
+    var $R_0 = $127;
+    var $RP_0 = $CP_0;
+    label = 26;
+    break;
+   case 29:
+    var $129 = $RP_0;
+    var $130 = HEAP32[5387520 >> 2];
+    var $131 = $129 >>> 0 < $130 >>> 0;
+    if ($131) {
+      label = 31;
+      break;
+    } else {
+      label = 30;
+      break;
+    }
+   case 30:
+    HEAP32[$RP_0 >> 2] = 0;
+    var $R_1 = $R_0;
+    label = 32;
+    break;
+   case 31:
+    _abort();
+   case 32:
+    var $R_1;
+    var $135 = ($94 | 0) == 0;
+    if ($135) {
+      label = 52;
+      break;
+    } else {
+      label = 33;
+      break;
+    }
+   case 33:
+    var $_sum30 = $19 + 28 | 0;
+    var $137 = $oldbase + $_sum30 | 0;
+    var $138 = $137;
+    var $139 = HEAP32[$138 >> 2];
+    var $140 = 5387808 + ($139 << 2) | 0;
+    var $141 = HEAP32[$140 >> 2];
+    var $142 = ($91 | 0) == ($141 | 0);
+    if ($142) {
+      label = 34;
+      break;
+    } else {
+      label = 36;
+      break;
+    }
+   case 34:
+    HEAP32[$140 >> 2] = $R_1;
+    var $cond = ($R_1 | 0) == 0;
+    if ($cond) {
+      label = 35;
+      break;
+    } else {
+      label = 42;
+      break;
+    }
+   case 35:
+    var $144 = HEAP32[$138 >> 2];
+    var $145 = 1 << $144;
+    var $146 = $145 ^ -1;
+    var $147 = HEAP32[5387508 >> 2];
+    var $148 = $147 & $146;
+    HEAP32[5387508 >> 2] = $148;
+    label = 52;
+    break;
+   case 36:
+    var $150 = $94;
+    var $151 = HEAP32[5387520 >> 2];
+    var $152 = $150 >>> 0 < $151 >>> 0;
+    if ($152) {
+      label = 40;
+      break;
+    } else {
+      label = 37;
+      break;
+    }
+   case 37:
+    var $154 = $94 + 16 | 0;
+    var $155 = HEAP32[$154 >> 2];
+    var $156 = ($155 | 0) == ($91 | 0);
+    if ($156) {
+      label = 38;
+      break;
+    } else {
+      label = 39;
+      break;
+    }
+   case 38:
+    HEAP32[$154 >> 2] = $R_1;
+    label = 41;
+    break;
+   case 39:
+    var $159 = $94 + 20 | 0;
+    HEAP32[$159 >> 2] = $R_1;
+    label = 41;
+    break;
+   case 40:
+    _abort();
+   case 41:
+    var $162 = ($R_1 | 0) == 0;
+    if ($162) {
+      label = 52;
+      break;
+    } else {
+      label = 42;
+      break;
+    }
+   case 42:
+    var $164 = $R_1;
+    var $165 = HEAP32[5387520 >> 2];
+    var $166 = $164 >>> 0 < $165 >>> 0;
+    if ($166) {
+      label = 51;
+      break;
+    } else {
+      label = 43;
+      break;
+    }
+   case 43:
+    var $168 = $R_1 + 24 | 0;
+    HEAP32[$168 >> 2] = $94;
+    var $_sum3132 = $19 | 16;
+    var $169 = $oldbase + $_sum3132 | 0;
+    var $170 = $169;
+    var $171 = HEAP32[$170 >> 2];
+    var $172 = ($171 | 0) == 0;
+    if ($172) {
+      label = 47;
+      break;
+    } else {
+      label = 44;
+      break;
+    }
+   case 44:
+    var $174 = $171;
+    var $175 = HEAP32[5387520 >> 2];
+    var $176 = $174 >>> 0 < $175 >>> 0;
+    if ($176) {
+      label = 46;
+      break;
+    } else {
+      label = 45;
+      break;
+    }
+   case 45:
+    var $178 = $R_1 + 16 | 0;
+    HEAP32[$178 >> 2] = $171;
+    var $179 = $171 + 24 | 0;
+    HEAP32[$179 >> 2] = $R_1;
+    label = 47;
+    break;
+   case 46:
+    _abort();
+   case 47:
+    var $_sum33 = $_sum3132 + 4 | 0;
+    var $182 = $oldbase + $_sum33 | 0;
+    var $183 = $182;
+    var $184 = HEAP32[$183 >> 2];
+    var $185 = ($184 | 0) == 0;
+    if ($185) {
+      label = 52;
+      break;
+    } else {
+      label = 48;
+      break;
+    }
+   case 48:
+    var $187 = $184;
+    var $188 = HEAP32[5387520 >> 2];
+    var $189 = $187 >>> 0 < $188 >>> 0;
+    if ($189) {
+      label = 50;
+      break;
+    } else {
+      label = 49;
+      break;
+    }
+   case 49:
+    var $191 = $R_1 + 20 | 0;
+    HEAP32[$191 >> 2] = $184;
+    var $192 = $184 + 24 | 0;
+    HEAP32[$192 >> 2] = $R_1;
+    label = 52;
+    break;
+   case 50:
+    _abort();
+   case 51:
+    _abort();
+   case 52:
+    var $_sum9 = $57 | $19;
+    var $196 = $oldbase + $_sum9 | 0;
+    var $197 = $196;
+    var $198 = $57 + $27 | 0;
+    var $oldfirst_0 = $197;
+    var $qsize_0 = $198;
+    label = 53;
+    break;
+   case 53:
+    var $qsize_0;
+    var $oldfirst_0;
+    var $200 = $oldfirst_0 + 4 | 0;
+    var $201 = HEAP32[$200 >> 2];
+    var $202 = $201 & -2;
+    HEAP32[$200 >> 2] = $202;
+    var $203 = $qsize_0 | 1;
+    var $_sum10 = $_sum + 4 | 0;
+    var $204 = $newbase + $_sum10 | 0;
+    var $205 = $204;
+    HEAP32[$205 >> 2] = $203;
+    var $_sum11 = $qsize_0 + $_sum | 0;
+    var $206 = $newbase + $_sum11 | 0;
+    var $207 = $206;
+    HEAP32[$207 >> 2] = $qsize_0;
+    var $208 = $qsize_0 >>> 3;
+    var $209 = $qsize_0 >>> 0 < 256;
+    if ($209) {
+      label = 54;
+      break;
+    } else {
+      label = 59;
+      break;
+    }
+   case 54:
+    var $211 = $208 << 1;
+    var $212 = 5387544 + ($211 << 2) | 0;
+    var $213 = $212;
+    var $214 = HEAP32[5387504 >> 2];
+    var $215 = 1 << $208;
+    var $216 = $214 & $215;
+    var $217 = ($216 | 0) == 0;
+    if ($217) {
+      label = 55;
+      break;
+    } else {
+      label = 56;
+      break;
+    }
+   case 55:
+    var $219 = $214 | $215;
+    HEAP32[5387504 >> 2] = $219;
+    var $F4_0 = $213;
+    label = 58;
+    break;
+   case 56:
+    var $_sum29 = $211 + 2 | 0;
+    var $221 = 5387544 + ($_sum29 << 2) | 0;
+    var $222 = HEAP32[$221 >> 2];
+    var $223 = $222;
+    var $224 = HEAP32[5387520 >> 2];
+    var $225 = $223 >>> 0 < $224 >>> 0;
+    if ($225) {
+      label = 57;
+      break;
+    } else {
+      var $F4_0 = $222;
+      label = 58;
+      break;
+    }
+   case 57:
+    _abort();
+   case 58:
+    var $F4_0;
+    var $_sum26 = $211 + 2 | 0;
+    var $228 = 5387544 + ($_sum26 << 2) | 0;
+    HEAP32[$228 >> 2] = $26;
+    var $229 = $F4_0 + 12 | 0;
+    HEAP32[$229 >> 2] = $26;
+    var $_sum27 = $_sum + 8 | 0;
+    var $230 = $newbase + $_sum27 | 0;
+    var $231 = $230;
+    HEAP32[$231 >> 2] = $F4_0;
+    var $_sum28 = $_sum + 12 | 0;
+    var $232 = $newbase + $_sum28 | 0;
+    var $233 = $232;
+    HEAP32[$233 >> 2] = $213;
+    label = 76;
+    break;
+   case 59:
+    var $235 = $25;
+    var $236 = $qsize_0 >>> 8;
+    var $237 = ($236 | 0) == 0;
+    if ($237) {
+      var $I7_0 = 0;
+      label = 62;
+      break;
+    } else {
+      label = 60;
+      break;
+    }
+   case 60:
+    var $239 = $qsize_0 >>> 0 > 16777215;
+    if ($239) {
+      var $I7_0 = 31;
+      label = 62;
+      break;
+    } else {
+      label = 61;
+      break;
+    }
+   case 61:
+    var $241 = $236 + 1048320 | 0;
+    var $242 = $241 >>> 16;
+    var $243 = $242 & 8;
+    var $244 = $236 << $243;
+    var $245 = $244 + 520192 | 0;
+    var $246 = $245 >>> 16;
+    var $247 = $246 & 4;
+    var $248 = $247 | $243;
+    var $249 = $244 << $247;
+    var $250 = $249 + 245760 | 0;
+    var $251 = $250 >>> 16;
+    var $252 = $251 & 2;
+    var $253 = $248 | $252;
+    var $254 = 14 - $253 | 0;
+    var $255 = $249 << $252;
+    var $256 = $255 >>> 15;
+    var $257 = $254 + $256 | 0;
+    var $258 = $257 << 1;
+    var $259 = $257 + 7 | 0;
+    var $260 = $qsize_0 >>> ($259 >>> 0);
+    var $261 = $260 & 1;
+    var $262 = $261 | $258;
+    var $I7_0 = $262;
+    label = 62;
+    break;
+   case 62:
+    var $I7_0;
+    var $264 = 5387808 + ($I7_0 << 2) | 0;
+    var $_sum12 = $_sum + 28 | 0;
+    var $265 = $newbase + $_sum12 | 0;
+    var $266 = $265;
+    HEAP32[$266 >> 2] = $I7_0;
+    var $_sum13 = $_sum + 16 | 0;
+    var $267 = $newbase + $_sum13 | 0;
+    var $_sum14 = $_sum + 20 | 0;
+    var $268 = $newbase + $_sum14 | 0;
+    var $269 = $268;
+    HEAP32[$269 >> 2] = 0;
+    var $270 = $267;
+    HEAP32[$270 >> 2] = 0;
+    var $271 = HEAP32[5387508 >> 2];
+    var $272 = 1 << $I7_0;
+    var $273 = $271 & $272;
+    var $274 = ($273 | 0) == 0;
+    if ($274) {
+      label = 63;
+      break;
+    } else {
+      label = 64;
+      break;
+    }
+   case 63:
+    var $276 = $271 | $272;
+    HEAP32[5387508 >> 2] = $276;
+    HEAP32[$264 >> 2] = $235;
+    var $277 = $264;
+    var $_sum15 = $_sum + 24 | 0;
+    var $278 = $newbase + $_sum15 | 0;
+    var $279 = $278;
+    HEAP32[$279 >> 2] = $277;
+    var $_sum16 = $_sum + 12 | 0;
+    var $280 = $newbase + $_sum16 | 0;
+    var $281 = $280;
+    HEAP32[$281 >> 2] = $235;
+    var $_sum17 = $_sum + 8 | 0;
+    var $282 = $newbase + $_sum17 | 0;
+    var $283 = $282;
+    HEAP32[$283 >> 2] = $235;
+    label = 76;
+    break;
+   case 64:
+    var $285 = HEAP32[$264 >> 2];
+    var $286 = ($I7_0 | 0) == 31;
+    if ($286) {
+      var $291 = 0;
+      label = 66;
+      break;
+    } else {
+      label = 65;
+      break;
+    }
+   case 65:
+    var $288 = $I7_0 >>> 1;
+    var $289 = 25 - $288 | 0;
+    var $291 = $289;
+    label = 66;
+    break;
+   case 66:
+    var $291;
+    var $292 = $qsize_0 << $291;
+    var $K8_0 = $292;
+    var $T_0 = $285;
+    label = 67;
+    break;
+   case 67:
+    var $T_0;
+    var $K8_0;
+    var $294 = $T_0 + 4 | 0;
+    var $295 = HEAP32[$294 >> 2];
+    var $296 = $295 & -8;
+    var $297 = ($296 | 0) == ($qsize_0 | 0);
+    if ($297) {
+      label = 72;
+      break;
+    } else {
+      label = 68;
+      break;
+    }
+   case 68:
+    var $299 = $K8_0 >>> 31;
+    var $300 = $T_0 + 16 + ($299 << 2) | 0;
+    var $301 = HEAP32[$300 >> 2];
+    var $302 = ($301 | 0) == 0;
+    var $303 = $K8_0 << 1;
+    if ($302) {
+      label = 69;
+      break;
+    } else {
+      var $K8_0 = $303;
+      var $T_0 = $301;
+      label = 67;
+      break;
+    }
+   case 69:
+    var $305 = $300;
+    var $306 = HEAP32[5387520 >> 2];
+    var $307 = $305 >>> 0 < $306 >>> 0;
+    if ($307) {
+      label = 71;
+      break;
+    } else {
+      label = 70;
+      break;
+    }
+   case 70:
+    HEAP32[$300 >> 2] = $235;
+    var $_sum23 = $_sum + 24 | 0;
+    var $309 = $newbase + $_sum23 | 0;
+    var $310 = $309;
+    HEAP32[$310 >> 2] = $T_0;
+    var $_sum24 = $_sum + 12 | 0;
+    var $311 = $newbase + $_sum24 | 0;
+    var $312 = $311;
+    HEAP32[$312 >> 2] = $235;
+    var $_sum25 = $_sum + 8 | 0;
+    var $313 = $newbase + $_sum25 | 0;
+    var $314 = $313;
+    HEAP32[$314 >> 2] = $235;
+    label = 76;
+    break;
+   case 71:
+    _abort();
+   case 72:
+    var $317 = $T_0 + 8 | 0;
+    var $318 = HEAP32[$317 >> 2];
+    var $319 = $T_0;
+    var $320 = HEAP32[5387520 >> 2];
+    var $321 = $319 >>> 0 < $320 >>> 0;
+    if ($321) {
+      label = 75;
+      break;
+    } else {
+      label = 73;
+      break;
+    }
+   case 73:
+    var $323 = $318;
+    var $324 = $323 >>> 0 < $320 >>> 0;
+    if ($324) {
+      label = 75;
+      break;
+    } else {
+      label = 74;
+      break;
+    }
+   case 74:
+    var $326 = $318 + 12 | 0;
+    HEAP32[$326 >> 2] = $235;
+    HEAP32[$317 >> 2] = $235;
+    var $_sum20 = $_sum + 8 | 0;
+    var $327 = $newbase + $_sum20 | 0;
+    var $328 = $327;
+    HEAP32[$328 >> 2] = $318;
+    var $_sum21 = $_sum + 12 | 0;
+    var $329 = $newbase + $_sum21 | 0;
+    var $330 = $329;
+    HEAP32[$330 >> 2] = $T_0;
+    var $_sum22 = $_sum + 24 | 0;
+    var $331 = $newbase + $_sum22 | 0;
+    var $332 = $331;
+    HEAP32[$332 >> 2] = 0;
+    label = 76;
+    break;
+   case 75:
+    _abort();
+   case 76:
+    var $_sum1819 = $9 | 8;
+    var $334 = $newbase + $_sum1819 | 0;
+    return $334;
+  }
+}
+_prepend_alloc["X"] = 1;
+function __ZNKSt9bad_alloc4whatEv($this) {
+  return 5385184;
+}
+function __ZNKSt20bad_array_new_length4whatEv($this) {
+  return 5386612;
+}
+function __ZSt15get_new_handlerv() {
+  return tempValue = HEAP32[5388092 >> 2], HEAP32[5388092 >> 2] = tempValue + 0, tempValue;
+}
+function __ZSt15set_new_handlerPFvvE($handler) {
+  return tempValue = HEAP32[5388092 >> 2], HEAP32[5388092 >> 2] = $handler, tempValue;
+}
+function __ZNSt9bad_allocC2Ev($this) {
+  HEAP32[$this >> 2] = 5387980;
+  return;
+}
+function __ZdlPv($ptr) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = ($ptr | 0) == 0;
+    if ($1) {
+      label = 4;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 3:
+    _free($ptr);
+    label = 4;
+    break;
+   case 4:
+    return;
+  }
+}
+function __ZdlPvRKSt9nothrow_t($ptr, $0) {
+  __ZdlPv($ptr);
+  return;
+}
+function __ZdaPv($ptr) {
+  __ZdlPv($ptr);
+  return;
+}
+function __ZdaPvRKSt9nothrow_t($ptr, $0) {
+  __ZdaPv($ptr);
+  return;
+}
+function __ZNSt9bad_allocD0Ev($this) {
+  __ZNSt9bad_allocD2Ev($this);
+  __ZdlPv($this);
+  return;
+}
+function __ZNSt9bad_allocD2Ev($this) {
+  return;
+}
+function __ZNSt20bad_array_new_lengthC2Ev($this) {
+  __ZNSt9bad_allocC2Ev($this | 0);
+  HEAP32[$this >> 2] = 5388004;
+  return;
+}
+function __ZNSt20bad_array_new_lengthD0Ev($this) {
+  __ZNSt9bad_allocD2Ev($this | 0);
+  __ZdlPv($this);
+  return;
+}
+function _add_segment($tbase, $tsize) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = HEAP32[5387528 >> 2];
+    var $2 = $1;
+    var $3 = _segment_holding($2);
+    var $4 = $3 | 0;
+    var $5 = HEAP32[$4 >> 2];
+    var $6 = $3 + 4 | 0;
+    var $7 = HEAP32[$6 >> 2];
+    var $8 = $5 + $7 | 0;
+    var $_sum = $7 - 47 | 0;
+    var $_sum1 = $7 - 39 | 0;
+    var $9 = $5 + $_sum1 | 0;
+    var $10 = $9;
+    var $11 = $10 & 7;
+    var $12 = ($11 | 0) == 0;
+    if ($12) {
+      var $17 = 0;
+      label = 4;
+      break;
+    } else {
+      label = 3;
+      break;
+    }
+   case 3:
+    var $14 = -$10 | 0;
+    var $15 = $14 & 7;
+    var $17 = $15;
+    label = 4;
+    break;
+   case 4:
+    var $17;
+    var $_sum2 = $_sum + $17 | 0;
+    var $18 = $5 + $_sum2 | 0;
+    var $19 = $1 + 16 | 0;
+    var $20 = $19;
+    var $21 = $18 >>> 0 < $20 >>> 0;
+    var $22 = $21 ? $2 : $18;
+    var $23 = $22 + 8 | 0;
+    var $24 = $23;
+    var $25 = $tbase;
+    var $26 = $tsize - 40 | 0;
+    _init_top($25, $26);
+    var $27 = $22 + 4 | 0;
+    var $28 = $27;
+    HEAP32[$28 >> 2] = 27;
+    HEAP32[$23 >> 2] = HEAP32[5387948 >> 2];
+    HEAP32[$23 + 4 >> 2] = HEAP32[5387952 >> 2];
+    HEAP32[$23 + 8 >> 2] = HEAP32[5387956 >> 2];
+    HEAP32[$23 + 12 >> 2] = HEAP32[5387960 >> 2];
+    HEAP32[5387948 >> 2] = $tbase;
+    HEAP32[5387952 >> 2] = $tsize;
+    HEAP32[5387960 >> 2] = 0;
+    HEAP32[5387956 >> 2] = $24;
+    var $29 = $22 + 28 | 0;
+    var $30 = $29;
+    HEAP32[$30 >> 2] = 7;
+    var $31 = $22 + 32 | 0;
+    var $32 = $31 >>> 0 < $8 >>> 0;
+    if ($32) {
+      var $33 = $30;
+      label = 5;
+      break;
+    } else {
+      label = 6;
+      break;
+    }
+   case 5:
+    var $33;
+    var $34 = $33 + 4 | 0;
+    HEAP32[$34 >> 2] = 7;
+    var $35 = $33 + 8 | 0;
+    var $36 = $35;
+    var $37 = $36 >>> 0 < $8 >>> 0;
+    if ($37) {
+      var $33 = $34;
+      label = 5;
+      break;
+    } else {
+      label = 6;
+      break;
+    }
+   case 6:
+    var $38 = ($22 | 0) == ($2 | 0);
+    if ($38) {
+      label = 30;
+      break;
+    } else {
+      label = 7;
+      break;
+    }
+   case 7:
+    var $40 = $22;
+    var $41 = $1;
+    var $42 = $40 - $41 | 0;
+    var $43 = $2 + $42 | 0;
+    var $_sum3 = $42 + 4 | 0;
+    var $44 = $2 + $_sum3 | 0;
+    var $45 = $44;
+    var $46 = HEAP32[$45 >> 2];
+    var $47 = $46 & -2;
+    HEAP32[$45 >> 2] = $47;
+    var $48 = $42 | 1;
+    var $49 = $1 + 4 | 0;
+    HEAP32[$49 >> 2] = $48;
+    var $50 = $43;
+    HEAP32[$50 >> 2] = $42;
+    var $51 = $42 >>> 3;
+    var $52 = $42 >>> 0 < 256;
+    if ($52) {
+      label = 8;
+      break;
+    } else {
+      label = 13;
+      break;
+    }
+   case 8:
+    var $54 = $51 << 1;
+    var $55 = 5387544 + ($54 << 2) | 0;
+    var $56 = $55;
+    var $57 = HEAP32[5387504 >> 2];
+    var $58 = 1 << $51;
+    var $59 = $57 & $58;
+    var $60 = ($59 | 0) == 0;
+    if ($60) {
+      label = 9;
+      break;
+    } else {
+      label = 10;
+      break;
+    }
+   case 9:
+    var $62 = $57 | $58;
+    HEAP32[5387504 >> 2] = $62;
+    var $F_0 = $56;
+    label = 12;
+    break;
+   case 10:
+    var $_sum11 = $54 + 2 | 0;
+    var $64 = 5387544 + ($_sum11 << 2) | 0;
+    var $65 = HEAP32[$64 >> 2];
+    var $66 = $65;
+    var $67 = HEAP32[5387520 >> 2];
+    var $68 = $66 >>> 0 < $67 >>> 0;
+    if ($68) {
+      label = 11;
+      break;
+    } else {
+      var $F_0 = $65;
+      label = 12;
+      break;
+    }
+   case 11:
+    _abort();
+   case 12:
+    var $F_0;
+    var $_sum10 = $54 + 2 | 0;
+    var $71 = 5387544 + ($_sum10 << 2) | 0;
+    HEAP32[$71 >> 2] = $1;
+    var $72 = $F_0 + 12 | 0;
+    HEAP32[$72 >> 2] = $1;
+    var $73 = $1 + 8 | 0;
+    HEAP32[$73 >> 2] = $F_0;
+    var $74 = $1 + 12 | 0;
+    HEAP32[$74 >> 2] = $56;
+    label = 30;
+    break;
+   case 13:
+    var $76 = $1;
+    var $77 = $42 >>> 8;
+    var $78 = ($77 | 0) == 0;
+    if ($78) {
+      var $I1_0 = 0;
+      label = 16;
+      break;
+    } else {
+      label = 14;
+      break;
+    }
+   case 14:
+    var $80 = $42 >>> 0 > 16777215;
+    if ($80) {
+      var $I1_0 = 31;
+      label = 16;
+      break;
+    } else {
+      label = 15;
+      break;
+    }
+   case 15:
+    var $82 = $77 + 1048320 | 0;
+    var $83 = $82 >>> 16;
+    var $84 = $83 & 8;
+    var $85 = $77 << $84;
+    var $86 = $85 + 520192 | 0;
+    var $87 = $86 >>> 16;
+    var $88 = $87 & 4;
+    var $89 = $88 | $84;
+    var $90 = $85 << $88;
+    var $91 = $90 + 245760 | 0;
+    var $92 = $91 >>> 16;
+    var $93 = $92 & 2;
+    var $94 = $89 | $93;
+    var $95 = 14 - $94 | 0;
+    var $96 = $90 << $93;
+    var $97 = $96 >>> 15;
+    var $98 = $95 + $97 | 0;
+    var $99 = $98 << 1;
+    var $100 = $98 + 7 | 0;
+    var $101 = $42 >>> ($100 >>> 0);
+    var $102 = $101 & 1;
+    var $103 = $102 | $99;
+    var $I1_0 = $103;
+    label = 16;
+    break;
+   case 16:
+    var $I1_0;
+    var $105 = 5387808 + ($I1_0 << 2) | 0;
+    var $106 = $1 + 28 | 0;
+    var $I1_0_c = $I1_0;
+    HEAP32[$106 >> 2] = $I1_0_c;
+    var $107 = $1 + 20 | 0;
+    HEAP32[$107 >> 2] = 0;
+    var $108 = $1 + 16 | 0;
+    HEAP32[$108 >> 2] = 0;
+    var $109 = HEAP32[5387508 >> 2];
+    var $110 = 1 << $I1_0;
+    var $111 = $109 & $110;
+    var $112 = ($111 | 0) == 0;
+    if ($112) {
+      label = 17;
+      break;
+    } else {
+      label = 18;
+      break;
+    }
+   case 17:
+    var $114 = $109 | $110;
+    HEAP32[5387508 >> 2] = $114;
+    HEAP32[$105 >> 2] = $76;
+    var $115 = $1 + 24 | 0;
+    var $_c = $105;
+    HEAP32[$115 >> 2] = $_c;
+    var $116 = $1 + 12 | 0;
+    HEAP32[$116 >> 2] = $1;
+    var $117 = $1 + 8 | 0;
+    HEAP32[$117 >> 2] = $1;
+    label = 30;
+    break;
+   case 18:
+    var $119 = HEAP32[$105 >> 2];
+    var $120 = ($I1_0 | 0) == 31;
+    if ($120) {
+      var $125 = 0;
+      label = 20;
+      break;
+    } else {
+      label = 19;
+      break;
+    }
+   case 19:
+    var $122 = $I1_0 >>> 1;
+    var $123 = 25 - $122 | 0;
+    var $125 = $123;
+    label = 20;
+    break;
+   case 20:
+    var $125;
+    var $126 = $42 << $125;
+    var $K2_0 = $126;
+    var $T_0 = $119;
+    label = 21;
+    break;
+   case 21:
+    var $T_0;
+    var $K2_0;
+    var $128 = $T_0 + 4 | 0;
+    var $129 = HEAP32[$128 >> 2];
+    var $130 = $129 & -8;
+    var $131 = ($130 | 0) == ($42 | 0);
+    if ($131) {
+      label = 26;
+      break;
+    } else {
+      label = 22;
+      break;
+    }
+   case 22:
+    var $133 = $K2_0 >>> 31;
+    var $134 = $T_0 + 16 + ($133 << 2) | 0;
+    var $135 = HEAP32[$134 >> 2];
+    var $136 = ($135 | 0) == 0;
+    var $137 = $K2_0 << 1;
+    if ($136) {
+      label = 23;
+      break;
+    } else {
+      var $K2_0 = $137;
+      var $T_0 = $135;
+      label = 21;
+      break;
+    }
+   case 23:
+    var $139 = $134;
+    var $140 = HEAP32[5387520 >> 2];
+    var $141 = $139 >>> 0 < $140 >>> 0;
+    if ($141) {
+      label = 25;
+      break;
+    } else {
+      label = 24;
+      break;
+    }
+   case 24:
+    HEAP32[$134 >> 2] = $76;
+    var $143 = $1 + 24 | 0;
+    var $T_0_c7 = $T_0;
+    HEAP32[$143 >> 2] = $T_0_c7;
+    var $144 = $1 + 12 | 0;
+    HEAP32[$144 >> 2] = $1;
+    var $145 = $1 + 8 | 0;
+    HEAP32[$145 >> 2] = $1;
+    label = 30;
+    break;
+   case 25:
+    _abort();
+   case 26:
+    var $148 = $T_0 + 8 | 0;
+    var $149 = HEAP32[$148 >> 2];
+    var $150 = $T_0;
+    var $151 = HEAP32[5387520 >> 2];
+    var $152 = $150 >>> 0 < $151 >>> 0;
+    if ($152) {
+      label = 29;
+      break;
+    } else {
+      label = 27;
+      break;
+    }
+   case 27:
+    var $154 = $149;
+    var $155 = $154 >>> 0 < $151 >>> 0;
+    if ($155) {
+      label = 29;
+      break;
+    } else {
+      label = 28;
+      break;
+    }
+   case 28:
+    var $157 = $149 + 12 | 0;
+    HEAP32[$157 >> 2] = $76;
+    HEAP32[$148 >> 2] = $76;
+    var $158 = $1 + 8 | 0;
+    var $_c6 = $149;
+    HEAP32[$158 >> 2] = $_c6;
+    var $159 = $1 + 12 | 0;
+    var $T_0_c = $T_0;
+    HEAP32[$159 >> 2] = $T_0_c;
+    var $160 = $1 + 24 | 0;
+    HEAP32[$160 >> 2] = 0;
+    label = 30;
+    break;
+   case 29:
+    _abort();
+   case 30:
+    return;
+  }
+}
+_add_segment["X"] = 1;
+function __Znwj($size) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = ($size | 0) == 0;
+    var $_size = $1 ? 1 : $size;
+    label = 3;
+    break;
+   case 3:
+    var $3 = _malloc($_size);
+    var $4 = ($3 | 0) == 0;
+    if ($4) {
+      label = 4;
+      break;
+    } else {
+      label = 11;
+      break;
+    }
+   case 4:
+    var $6 = __ZSt15get_new_handlerv();
+    var $7 = ($6 | 0) == 0;
+    if ($7) {
+      label = 10;
+      break;
+    } else {
+      label = 5;
+      break;
+    }
+   case 5:
+    FUNCTION_TABLE[$6]();
+    label = 3;
+    break;
+   case 6:
+    var $lpad_loopexit$0 = ___cxa_find_matching_catch(HEAP32[_llvm_eh_exception.buf >> 2], HEAP32[_llvm_eh_exception.buf + 4 >> 2], []);
+    $lpad_loopexit$1 = tempRet0;
+    var $lpad_phi$1 = $lpad_loopexit$1;
+    var $lpad_phi$0 = $lpad_loopexit$0;
+    label = 8;
+    break;
+   case 7:
+    var $lpad_nonloopexit$0 = ___cxa_find_matching_catch(HEAP32[_llvm_eh_exception.buf >> 2], HEAP32[_llvm_eh_exception.buf + 4 >> 2], []);
+    $lpad_nonloopexit$1 = tempRet0;
+    var $lpad_phi$1 = $lpad_nonloopexit$1;
+    var $lpad_phi$0 = $lpad_nonloopexit$0;
+    label = 8;
+    break;
+   case 8:
+    var $lpad_phi$0;
+    var $lpad_phi$1;
+    var $10 = $lpad_phi$1;
+    var $11 = ($10 | 0) < 0;
+    if ($11) {
+      label = 9;
+      break;
+    } else {
+      label = 12;
+      break;
+    }
+   case 9:
+    var $13 = $lpad_phi$0;
+    ___cxa_call_unexpected($13);
+   case 10:
+    var $15 = ___cxa_allocate_exception(4);
+    var $16 = $15;
+    __ZNSt9bad_allocC2Ev($16);
+    ___cxa_throw($15, 5388064, 30);
+    label = 13;
+    break;
+   case 11:
+    return $3;
+   case 12:
+    if (HEAP32[_llvm_eh_exception.buf >> 2] == 0) {
+      HEAP32[_llvm_eh_exception.buf >> 2] = $lpad_phi$0;
+    }
+    throw $lpad_phi$0 + " - Exception catching is disabled, this exception cannot be caught. Compile with -s DISABLE_EXCEPTION_CATCHING=0 or DISABLE_EXCEPTION_CATCHING=2 to catch.";
+   case 13:
+  }
+}
+function __ZnwjRKSt9nothrow_t($size, $0) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $2 = __Znwj($size);
+    var $p_0 = $2;
+    label = 4;
+    break;
+   case 3:
+    var $4$0 = ___cxa_find_matching_catch(HEAP32[_llvm_eh_exception.buf >> 2], HEAP32[_llvm_eh_exception.buf + 4 >> 2], [ 0 ]);
+    $4$1 = tempRet0;
+    var $5 = $4$0;
+    var $6 = ___cxa_begin_catch($5);
+    ___cxa_end_catch();
+    var $p_0 = 0;
+    label = 4;
+    break;
+   case 4:
+    var $p_0;
+    return $p_0;
+   case 5:
+    var $9$0 = ___cxa_find_matching_catch(HEAP32[_llvm_eh_exception.buf >> 2], HEAP32[_llvm_eh_exception.buf + 4 >> 2], []);
+    $9$1 = tempRet0;
+    var $10 = $9$0;
+    ___cxa_call_unexpected($10);
+  }
+}
+function __Znaj($size) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = __Znwj($size);
+    label = 3;
+    break;
+   case 3:
+    return $1;
+   case 4:
+    var $4$0 = ___cxa_find_matching_catch(HEAP32[_llvm_eh_exception.buf >> 2], HEAP32[_llvm_eh_exception.buf + 4 >> 2], []);
+    $4$1 = tempRet0;
+    var $5 = $4$1;
+    var $6 = ($5 | 0) < 0;
+    if ($6) {
+      label = 5;
+      break;
+    } else {
+      label = 6;
+      break;
+    }
+   case 5:
+    var $8 = $4$0;
+    ___cxa_call_unexpected($8);
+   case 6:
+    if (HEAP32[_llvm_eh_exception.buf >> 2] == 0) {
+      HEAP32[_llvm_eh_exception.buf >> 2] = $4$0;
+    }
+    throw $4$0 + " - Exception catching is disabled, this exception cannot be caught. Compile with -s DISABLE_EXCEPTION_CATCHING=0 or DISABLE_EXCEPTION_CATCHING=2 to catch.";
+  }
+}
+function __ZnajRKSt9nothrow_t($size, $nothrow) {
+  var label = 0;
+  label = 2;
+  while (1) switch (label) {
+   case 2:
+    var $1 = __Znaj($size);
+    var $p_0 = $1;
+    label = 4;
+    break;
+   case 3:
+    var $3$0 = ___cxa_find_matching_catch(HEAP32[_llvm_eh_exception.buf >> 2], HEAP32[_llvm_eh_exception.buf + 4 >> 2], [ 0 ]);
+    $3$1 = tempRet0;
+    var $4 = $3$0;
+    var $5 = ___cxa_begin_catch($4);
+    ___cxa_end_catch();
+    var $p_0 = 0;
+    label = 4;
+    break;
+   case 4:
+    var $p_0;
+    return $p_0;
+   case 5:
+    var $8$0 = ___cxa_find_matching_catch(HEAP32[_llvm_eh_exception.buf >> 2], HEAP32[_llvm_eh_exception.buf + 4 >> 2], []);
+    $8$1 = tempRet0;
+    var $9 = $8$0;
+    ___cxa_call_unexpected($9);
+  }
+}
+function __ZSt17__throw_bad_allocv() {
+  var $1 = ___cxa_allocate_exception(4);
+  __ZNSt9bad_allocC2Ev($1);
+  ___cxa_throw($1, 5388064, 30);
+}
+
+
+
+
+
+// Warning: printing of i64 values may be slightly rounded! No deep i64 math used, so precise i64 code not included
+var i64Math = null;
+
+// === Auto-generated postamble setup entry stuff ===
+
+Module.callMain = function callMain(args) {
+  var argc = args.length+1;
+  function pad() {
+    for (var i = 0; i < 4-1; i++) {
+      argv.push(0);
+    }
+  }
+  var argv = [allocate(intArrayFromString("/bin/this.program"), 'i8', ALLOC_STATIC) ];
+  pad();
+  for (var i = 0; i < argc-1; i = i + 1) {
+    argv.push(allocate(intArrayFromString(args[i]), 'i8', ALLOC_STATIC));
+    pad();
+  }
+  argv.push(0);
+  argv = allocate(argv, 'i32', ALLOC_STATIC);
+
+
+  var ret;
+
+  ret = Module['_main'](argc, argv, 0);
+
+
+  return ret;
+}
+
+
+
+
+function run(args) {
+  args = args || Module['arguments'];
+
+  if (runDependencies > 0) {
+    Module.printErr('run() called, but dependencies remain, so not running');
+    return 0;
+  }
+
+  if (Module['preRun']) {
+    if (typeof Module['preRun'] == 'function') Module['preRun'] = [Module['preRun']];
+    var toRun = Module['preRun'];
+    Module['preRun'] = [];
+    for (var i = toRun.length-1; i >= 0; i--) {
+      toRun[i]();
+    }
+    if (runDependencies > 0) {
+      // a preRun added a dependency, run will be called later
+      return 0;
+    }
+  }
+
+  function doRun() {
+    var ret = 0;
+    calledRun = true;
+    if (Module['_main']) {
+      preMain();
+      ret = Module.callMain(args);
+      if (!Module['noExitRuntime']) {
+        exitRuntime();
+      }
+    }
+    if (Module['postRun']) {
+      if (typeof Module['postRun'] == 'function') Module['postRun'] = [Module['postRun']];
+      while (Module['postRun'].length > 0) {
+        Module['postRun'].pop()();
+      }
+    }
+    return ret;
+  }
+
+  if (Module['setStatus']) {
+    Module['setStatus']('Running...');
+    setTimeout(function() {
+      setTimeout(function() {
+        Module['setStatus']('');
+      }, 1);
+      doRun();
+    }, 1);
+    return 0;
+  } else {
+    return doRun();
+  }
+}
+Module['run'] = Module.run = run;
+
+// {{PRE_RUN_ADDITIONS}}
+
+if (Module['preInit']) {
+  if (typeof Module['preInit'] == 'function') Module['preInit'] = [Module['preInit']];
+  while (Module['preInit'].length > 0) {
+    Module['preInit'].pop()();
+  }
+}
+
+initRuntime();
+
+var shouldRunNow = true;
+if (Module['noInitialRun']) {
+  shouldRunNow = false;
+}
+
+if (shouldRunNow) {
+  var ret = run();
+}
+
+// {{POST_RUN_ADDITIONS}}
+
+
+
+
+
+
+  // {{MODULE_ADDITIONS}}
+
+
+// EMSCRIPTEN_GENERATED_FUNCTIONS: ["_CRC_writeheader","_lame_get_ATHlower","_id3tag_set_userinfo_ucs2","_id3tag_v1_only","_searchGenre","_id3tag_set_fieldvalue","_id3tag_set_comment_latin1","_lame_get_sfscale","_freq2bark","_lame_get_athaa_type","_encodeSideInfo2","_psymodel_init","_calc_target_bits","_hip_set_errorf","_is_lame_global_flags_valid","__ZdlPvRKSt9nothrow_t","_lame_get_VBR_mean_bitrate_kbps","_isFrameIdMatching","_recalc_divide_init","_ResvFrameEnd","_lame_get_scale","_lame_set_free_format","_lame_set_nogap_total","_sizeOfCommentNode","_lame_get_VBR_hard_min","_lame_set_VBR","_reduce_bit_usage","_sys_alloc","_malloc_aligned","_test_tag_spec_flags","_lame_set_allow_diff_short","_tri_calc_sfb_noise_x34","_lame_get_VBR_q","_lame_get_lowpasswidth","_lame_set_preset_expopts","_lame_get_mode_automs","_lame_set_ogg","_lame_get_mode","_calc_energy","_putbits_noheaders","_lame_set_highpassfreq","_lame_set_short_threshold_lrm","_lame_get_id3v2_tag","_malloc","_lame_set_findReplayGain","_init_s3_values","_lame_get_disable_reservoir","_lame_set_sfscale","_lame_get_ogg","_calc_noise_core_c","__ZNSt9bad_allocD2Ev","_calc_scalefac","__ZNSt9bad_allocD0Ev","_lame_get_VBR_quality","_quantize_x34","_penalties","_id3tag_set_textinfo_utf16","_swap_bytes","_drain_into_ancillary","__ZNSt20bad_array_new_lengthC2Ev","_isResamplingNecessary","_window_subband","_blackman","_lame_get_VBR","_lame_decode_headers","_lame_set_quant_comp_short","_lame_encode_flush_nogap","_valloc","_ix_max","_iteration_finish_one","_VBR_old_iteration_loop","_free_id3tag","_setLameTagFrameHeader","_floatcompare","_id3tag_genre_list","_decode1_headersB_clipchoice","_lame_msgf","_lame_print_config","_vbrpsy_compute_fft_l","_CBR_iteration_loop","_ATHformula","_id3tag_init","_internal_memalign","_lame_get_error_protection","_concatSep","_lame_encode_flush","_convert_partition2scalefac_l_to_s","_lame_set_mode","_VBR_encode_frame","_gcd","_filter_coef","_lame_set_force_short_blocks","_bitcount","_get_lame_url","_lame_bitrate_stereo_mode_hist","_toID3v2TagId","_lame_set_maskingadjust_short","_lame_set_athaa_loudapprox","_hip_decode1_unclipped","_quant_compare","_lame_set_short_threshold","_ms_convert","_malloc_max_footprint","_set_pinfo","_set_frame_custom2","_malloc_footprint","_lame_decode_exit","_inc_subblock_gain","_hip_decode1","_updateStats","_lame_get_in_samplerate","_lame_decode_init","_scale_bitcount","_isMultiFrame","__ZdlPv","_set_4_byte_value","_id3tag_pad_v2","_count_bit_null","_writeLoBytes","_lame_init_params_ppflt","_mallinfo","__ZdaPv","_malloc_stats","_SmpFrqIndex","_vbrpsy_compute_MS_thresholds","_init_mparams","_id3tag_set_comment","_trancate_smallspectrums","_id3tag_set_userinfo_latin1","_lame_get_allow_diff_short","_mdct_short","_id3v2_add_latin1","_convert_partition2scalefac_l","_id3tag_set_track","_internal_mallinfo","_Huffmancode","_writeChars","_fht","_convert_partition2scalefac_s","_toID3v2TagId_ucs2","_isSameDescriptorUcs2","__ZSt15set_new_handlerPFvvE","_lame_encode_buffer_interleaved_ieee_double","_ExtractI4","_lame_set_tune","_format_bitstream","_setLang","_lame_get_emphasis","_lame_set_short_threshold_s","_lame_set_substep","_lame_get_noclipScale","_quantize_lines_xrpow","_calc_noise","_block_sf","_GetTitleGain","_lame_set_noATH","_lame_init_old","_lame_get_ATHshort","_lame_set_decode_only","_toLittleEndian","_lame_set_lowpasswidth","_init_numline","_lame_set_force_ms","_cutDistribution","_independent_comalloc","_writeMainData","__ZdaPvRKSt9nothrow_t","_putheader_bits","_lame_set_errorf","_free","_lame_get_write_id3tag_automatic","_compute_ath","_lame_set_asm_optimizations","_get_klemm_noise","_init_bit_stream_w","_noquant_count_bits","_tryThatOne","_BitrateIndex","_save_gain_values","_lame_get_athaa_sensitivity","_do_gain_analysis","_IsVbrTag","_lame_get_totalframes","_lame_get_samplerate","_lame_get_noATH","_id3v2_add_ucs2","_hip_set_debugf","_vbrpsy_compute_block_type","_bitpressure_strategy","_isSameDescriptor","__ZSt15get_new_handlerv","_lame_set_num_samples","_lame_debugf","_tmalloc_large","_lame_set_analysis","_get_lame_short_version","_best_huffman_divide","_lame_set_quality","_skipId3v2","_lame_get_version","_lame_get_brate","_lame_set_msgf","_set_text_field","_id3tag_set_pad","_lame_set_athaa_type","_disable_FPE","_mdct_long","_has_SSE","__ZNKSt20bad_array_new_length4whatEv","_lookupGenre","_set_frame_pinfo","_get_framebits","_lame_get_maskingadjust","_lame_get_extension","_lame_set_copyright","_maybeLatin1","_reduce_side","_lame_get_force_ms","_lame_get_force_short_blocks","_lame_get_ReplayGain_input","_lame_set_maskingadjust","_min_int","_lame_report_def","_lame_init","_writeUcs2s","_id3tag_set_title","_GetVbrTag","_set_frame_comment","_convert_partition2scalefac","_lame_get_nogap_currentindex","_ialloc","_lame_get_substep","_huffman_coder_count1","_lame_init_params","_set_scalefacs","_NS_INTERP","_lame_print_internals","_lame_set_brate","_lame_errorf","_get_lame_version_numerical","_lame_get_quant_comp_short","_id3tag_set_fieldvalue_ucs2","_AnalyzeSamples","_id3tag_add_v2","_get_lame_version","_tryGlobalStepsize","_vbrpsy_apply_block_type","_has_SSE2","_long_block_constrain","_id3tag_space_v1","__ZNSt20bad_array_new_lengthD0Ev","_apply_preset","_lame_get_maskingadjust_short","_id3tag_v2_only","_lame_set_preset_notune","_init_log_table","_FindNearestBitrate","_VBR_new_iteration_loop","_pecalc_l","_lame_set_lowpassfreq","_lame_get_bWriteVbrTag","_init_top","_is_lame_internal_flags_valid","_lame_get_findPeakSample","_ShortHuffmancodebits","_lame_set_ReplayGain_input","_hasUcs2ByteOrderMarker","_internal_realloc","_hip_decode_exit","_lame_set_extension","_pecalc_s","_lame_set_decode_on_the_fly","_lame_get_interChRatio","_linear_int","_lame_get_ATHonly","_hip_decode_init","_freegfc","_VBR_old_prepare","_lame_set_compression_ratio","_fast_log2","_sizeOfNode","_filterYule","_lame_bitrate_hist","_id3tag_set_fieldvalue_utf16","_lame_set_num_channels","_LongHuffmancodebits","_lame_set_debugf","_lame_set_ATHonly","_lame_encode_buffer_ieee_double","_get_psy_version","_lame_mp3_tags_fid","_id3tag_set_genre","_lame_get_lametag_frame","_filterButter","_lame_bitrate_block_type_hist","_lame_set_preset","_lame_get_VBR_max_bitrate_kbps","_athAdjust","_lame_get_short_threshold_lrm","_lame_get_id3v1_tag","_hip_set_msgf","_lame_set_cwlimit","_lame_get_highpasswidth","_lame_set_ATHshort","_lame_get_exp_nspsytune","_lame_init_bitstream","_sloppyCompared","_lame_get_RadioGain","_vbrpsy_skip_masking_s","_release_unused_segments","_lame_set_VBR_min_bitrate_kbps","_lame_get_noclipGainChange","_local_ucs2_substr","_lame_get_out_samplerate","_init_outer_loop","_compute_flushbits","_lame_set_emphasis","_copy_buffer","_CRC_update_lookup","_hip_decode1_headers","_memalign","_lame_set_interChRatio","_addVbr","_lame_get_compression_ratio","_update_inbuffer_size","_optimum_bandwidth","_short_block_constrain","_init_bins","_inc_scalefac_scale","_nextUpperAlpha","_lame_encode_buffer_int","_id3tag_set_artist","_mmap_alloc","_lame_get_copyright","_getframebits","_hip_decode1_headersB","_lame_get_num_samples","_lame_get_msfix","_id3v2AddLameVersion","_set_subblock_gain","_init_xrpow_core_init","_lame_encode_buffer_interleaved_ieee_float","_set_frame_wxxx","_ResvFrameBegin","_get_lame_os_bitness","_id3tag_set_textinfo_ucs2","_guess_scalefac_x34","_s3_func","_lame_decode1_headers","_frame_id_matches","_CRC_update","_lame_get_short_threshold_s","_init_fft","_lame_encode_frame_init","_vec_max_c","_lame_set_exp_nspsytune","_ResetSampleFrequency","_calc_mask_index_l","_count_bit_noESC_from2","_count_bit_noESC_from3","_count_bit_ESC","_k_34_4","_id3tag_write_v2","_scfsi_calc","_id3tag_write_v1","_bin_search_StepSize","_lame_get_framesize","_lame_set_ATHlower","_lame_get_encoder_delay","_hip_decode","_calc_sfb_noise_x34","_lame_set_write_id3tag_automatic","_lame_decode1_headersB","_Xing_seek_table","_ATHformula_GB","_lame_get_nogap_total","_lame_set_subblock_gain","_mallopt","_lame_set_scale_right","_lame_get_quant_comp","_balance_noise","_putbits2","_lame_set_error_protection","_lame_get_padding_type","_lame_set_out_samplerate","_lame_set_ATHtype","_add_segment","_mask_add_delta","_VBR_encode_granule","_free_global_data","_InitGainAnalysis","_lame_get_strict_ISO","_lame_encode_buffer_template","_lame_get_decode_on_the_fly","__ZSt17__throw_bad_allocv","_lame_set_VBR_mean_bitrate_kbps","_ABR_iteration_loop","_hip_decode_headers","_AddVbrFrame","_calcNeeded","_best_scalefac_store","_lame_set_useTemporal","_lame_stereo_mode_hist","_vbrpsy_compute_fft_s","_lame_get_lowpassfreq","_fft_short","_local_char_pos","_lame_set_bWriteVbrTag","_fill_buffer","_do_copy_buffer","_lame_get_decode_only","_malloc_trim","_lame_set_nogap_currentindex","_init_xrpow","_outer_loop","_quantizeAndCountBits","_ATHmdct","_searchGlobalStepsizeMax","_get_lame_tag_encoder_short_version","_lame_set_VBR_hard_min","_fsqr","_lame_encode_buffer_long2","_set_frame_apic","_CreateI2","_id3v2AddAudioDuration","_lame_get_scale_left","_lame_get_ATHcurve","_get_lame_very_short_version","_flush_bitstream","_lame_set_VBR_quality","_sys_trim","_lame_decode","_compute_bark_values","_writeheader","_find_lowest_scalefac","_pvalloc","__ZNSt9bad_allocC2Ev","_fromLatin1Char","_id3tag_set_textinfo_latin1","_find_scalefac_x34","_lame_set_VBR_max_bitrate_kbps","_calcFrameLength","_lame_get_no_short_blocks","_vbrpsy_mask_add","_local_strdup_utf16_to_latin1","__ZNKSt9bad_alloc4whatEv","_add_dummy_byte","_vbrpsy_compute_masking_s","_ResvAdjust","_vbrpsy_compute_masking_l","_lame_get_free_format","_lame_get_scale_right","_stereo_demask","_id3tag_set_year","_CreateI4","_get_vbr_preset","_quantize_lines_xrpow_01","_malloc_usable_size","_choose_table_nonMMX","_get_max_frame_buffer_size_by_constraint","_id3tag_set_albumart","_isSameLang","_lame_decode1","_lame_set_scale","_change_mparam","_lame_set_disable_reservoir","_lame_set_highpasswidth","_lame_bitrate_kbps","_id3tag_set_album","_init_xrpow_core_c","_vbrpsy_calc_mask_index_s","_mpeg2_scale_bitcount","_lame_get_num_channels","_lame_get_athaa_loudapprox","_lame_set_quant_comp","_lame_set_no_short_blocks","_InitVbrTag","_PutVbrTag","_apply_vbr_preset","_local_ucs2_strlen","_free_aligned","_sfDepth","_UpdateMusicCRC","_vbrpsy_attack_detection","_lame_init_qval","_lame_copy_inbuffer","_nearestBitrateFullIndex","_analyzeResult","_count_bit_noESC","_vbrpsy_compute_loudness_approximation_l","_id3tag_set_comment_utf16","_init_mask_add_max_values","_id3tag_set_comment_ucs2","_local_ucs2_pos","_recalc_divide_sub","_max_int","_huffman_init","_findNode","_lame_block_type_hist","_lame_close","__Znwj","_iteration_init","_lame_get_mf_samples_to_encode","_lame_get_quality","_lame_get_AudiophileGain","_sloppySearchGenre","_has_MMX","_independent_calloc","_mdct_sub48","_lame_get_ReplayGain_decode","_outOfBitsStrategy","_lame_set_mode_automs","_mmap_resize","_lame_get_findReplayGain","_lame_encode_finish","_lame_encode_buffer_float","_lame_encode_buffer","_loop_break","_on_pe","_lame_get_bitrate","_prepend_alloc","_L3psycho_anal_vbr","__ZnwjRKSt9nothrow_t","_map2MP3Frequency","_lame_encode_buffer_interleaved","_flattenDistribution","_lame_get_original","_hip_set_pinfo","_calc_xmin","_lame_set_scale_left","_lame_get_highpassfreq","_lame_get_useTemporal","_apply_abr_preset","_quantize_xrpow","_local_ucs2_strdup","_lame_set_ReplayGain_decode","_lame_get_frameNum","_lame_get_PeakSample","_lame_set_athaa_sensitivity","_lame_encode_buffer_sample_t","_lame_get_VBR_min_bitrate_kbps","_lame_get_subblock_gain","_lame_set_in_samplerate","_lame_set_padding_type","_optimum_samplefreq","_lame_get_ATHtype","__Znaj","_id3tag_set_genre_utf16","_internal_malloc_stats","_tmalloc_small","_count_bits","_adjust_ATH","_lame_get_cwlimit","_psfb21_analogsilence","_lame_get_analysis","_calloc","_lame_set_msfix","_lame_set_original","_ResvMaxBits","_lame_set_findPeakSample","_lame_get_experimentalY","_lame_get_experimentalX","_lame_encode_mp3_frame","_lame_get_experimentalZ","_fill_buffer_resample","_psycho_loudness_approx","_local_strdup","_lame_set_ATHcurve","_lame_set_VBR_q","_realloc","_segment_holding","_copyV1ToV2","_sizeOfWxxxNode","_fft_long","_amp_scalefac_bands","_lame_set_experimentalY","_lame_set_experimentalX","_lame_set_experimentalZ","_lame_report_fnc","_appendNode","_mpeg1_scale_bitcount","_lame_encode_buffer_ieee_float","_lame_set_strict_ISO","_lame_encode_buffer_long","_lame_get_size_mp3buffer","_VBR_new_prepare","_PutLameVBR","__ZnajRKSt9nothrow_t","_local_strcasecmp","_lame_get_encoder_padding","_has_3DNow"]
+
+
+// libmp3lame function wrappers
+
+var BUFSIZE = 8192;
+
+return {
+	STEREO: 0, 
+	JOINT_STEREO: 1, 
+	MONO: 3,
+
+	get_version: Module.cwrap('get_lame_version', 'string'),
+
+	init: Module.cwrap('lame_init', 'number'),
+	init_params: Module.cwrap('lame_init_params', 'number', [ 'number' ]),
+
+	set_mode: Module.cwrap('lame_set_mode', 'number', [ 'number', 'number' ]),
+	get_mode: Module.cwrap('lame_get_mode', 'number', [ 'number' ]),
+
+	set_num_samples: Module.cwrap('lame_set_num_samples', 'number', [ 'number', 'number' ]),
+	get_num_samples: Module.cwrap('lame_get_num_samples', 'number', [ 'number' ]),
+
+	set_num_channels: Module.cwrap('lame_set_num_channels', 'number', [ 'number', 'number' ]),
+	get_num_channels: Module.cwrap('lame_get_num_channels', 'number', [ 'number' ]),
+
+	set_in_samplerate: Module.cwrap('lame_set_in_samplerate', 'number', [ 'number', 'number' ]),
+	get_in_samplerate: Module.cwrap('lame_get_in_samplerate', 'number', [ 'number' ]),
+
+	set_out_samplerate: Module.cwrap('lame_set_out_samplerate', 'number', [ 'number', 'number' ]),
+	get_out_samplerate: Module.cwrap('lame_get_out_samplerate', 'number', [ 'number' ]),
+
+	set_bitrate: Module.cwrap('lame_set_brate', 'number', [ 'number', 'number' ]),
+	get_bitrate: Module.cwrap('lame_get_brate', 'number', [ 'number' ]),
+
+	encode_buffer_ieee_float: function(handle, channel_l, channel_r) {
+		var outbuf = _malloc(BUFSIZE);
+		var inbuf_l = _malloc(channel_l.length * 4);
+		var inbuf_r = _malloc(channel_r.length * 4);
+		for (var i=0;i>1]=d;break;case "i32":a[k>>2]=d;break;case "i64":kj=[d>>>0,Math.min(Math.floor(d/4294967296),4294967295)>>>
+0];a[k>>2]=kj[0];a[k+4>>2]=kj[1];break;case "float":b[k>>2]=d;break;case "double":oa[k>>3]=d;break;default:gi("invalid type for setValue: "+e)}}function Za(k,d,b,f){var c,g;"number"===typeof k?(c=!0,g=k):(c=!1,g=k.length);var h="string"===typeof d?d:null;b=b==hi?f:[Tc,U.stackAlloc,U.staticAlloc,U.dynamicAlloc][void 0===b?Kc:b](Math.max(g,h?1:d.length));if(c){f=b;ac(0==(b&3));for(k=b+(g&-4);f>2]=0;for(k=b+g;f=d?2*Math.abs(1<=a)return a;b=32>=d?Math.abs(1<=b&&(32>=d||a>b)&&(a=-2*b+a);return a}function Qi(a){xf++;Module.monitorRunDependencies&&Module.monitorRunDependencies(xf);a?(ac(!Bk[a]),Bk[a]=1):Module.printErr("warning: run dependency added without ID")}function Ri(a){xf--;Module.monitorRunDependencies&&Module.monitorRunDependencies(xf);a?(ac(Bk[a]),delete Bk[a]):Module.printErr("warning: run dependency removed without ID");0==xf&&(null!==Km&&(clearInterval(Km),
+Km=null),!nl&&Si&&Ck())}function ra(b,d,e){b|=0;d|=0;e|=0;var f=0,c=0,g=0,h=0,f=b+e|0;if(20<=(e|0)){d&=255;h=b&3;c=d|d<<8|d<<16|d<<24;g=f&-4;if(h)for(h=b+4-h|0;(b|0)<(h|0);)l[b]=d,b=b+1|0;for(;(b|0)<(g|0);)a[b>>2]=c,b=b+4|0}for(;(b|0)<(f|0);)l[b]=d,b=b+1|0}function ha(b,d,e){b|=0;d|=0;e|=0;var f=0,f=b|0;if((b&3)==(d&3)){for(;b&3;){if(0==(e|0))return f|0;l[b]=l[d];b=b+1|0;d=d+1|0;e=e-1|0}for(;4<=(e|0);)a[b>>2]=a[d>>2],b=b+4|0,d=d+4|0,e=e-4|0}for(;0<(e|0);)l[b]=l[d],b=b+1|0,d=d+1|0,e=e-1|0;return f|
+0}function Mb(b){return a[ih>>2]=b}function Lm(a,d,b){var f=I.streams[a];if(f&&"socket"in f)return(f=I.streams[a])?(f.sender(bc.subarray(d,d+b)),d=b):d=-1,d;if(f){if(f.isWrite){if(0>b)return Mb(Wb.EINVAL),-1;if(f.object.isDevice){if(f.object.output){for(var c=0;cb||0>c)Mb(Wb.EINVAL),d=-1;else{for(var h=a.object.contents;h.length>3]:"i64"==b?(k=[a[d+c>>2],a[d+(c+8)>>2]],c+=8):(b="i32",k=a[d+c>>2]);c+=Math.max(U.getNativeFieldSize(b),U.getAlignSize(b,null,!0));return k}for(var f=b,c=0,g=[],h,y;;){var kb=f;h=l[f];if(0===h)break;y=l[f+1|0];if(37==h){var p=!1,v=!1,m=!1,z=!1;a:for(;;){switch(y){case 43:p=!0;break;case 45:v=!0;break;case 35:m=!0;break;case 48:if(z)break a;else{z=
+!0;break}default:break a}f++;y=l[f+1|0]}var A=0;if(42==y)A=e("i32"),f++,y=l[f+1|0];else for(;48<=y&&57>=y;)A=10*A+(y-48),f++,y=l[f+1|0];var D=!1;if(46==y){var w=0,D=!0;f++;y=l[f+1|0];if(42==y)w=e("i32"),f++;else for(;;){y=l[f+1|0];if(48>y||57=u){var G=Math.pow(256,u)-1;h=(kb?Jm:Ak)(h&G,8*u)}G=Math.abs(h);kb="";if(100==y||105==y)s=8==u&&ji?ji.stringify(t[0],t[1],null):Jm(h,8*u,1).toString(10);else if(117==y)s=8==u&&ji?ji.stringify(t[0],t[1],!0):Ak(h,8*u,1).toString(10),h=Math.abs(h);else if(111==y)s=(m?"0":"")+G.toString(8);else if(120==
+y||88==y){kb=m&&0!=h?"0x":"";if(8==u&&ji)if(t[1]){s=(t[1]>>>0).toString(16);for(m=(t[0]>>>0).toString(16);8>m.length;)m="0"+m;s+=m}else s=(t[0]>>>0).toString(16);else if(0>h){h=-h;s=(G-1).toString(16);t=[];for(m=0;mh?"-"+kb:"+"+kb);kb.length+
+s.lengthu&&-4<=u?(y=(103==y?"f":"F").charCodeAt(0),w-=u+1):(y=(103==y?"e":"E").charCodeAt(0),w--),u=Math.min(w,20);if(101==y||69==y)s=h.toExponential(u),/[eE][-+]\d$/.test(s)&&(s=s.slice(0,
+-1)+"0"+s.slice(-1));else if(102==y||70==y)s=h.toFixed(u),0===h&&(0>h||0===h&&-Infinity===1/h)&&(s="-"+s);kb=s.split("e");if(D&&!m)for(;1u++;)kb[0]+="0";s=kb[0]+(1h?"-":"")+"inf",z=!1;for(;s.lengthy&&(s=s.toUpperCase());s.split("").forEach(function(a){g.push(a.charCodeAt(0))});break;case "s":z=(p=e("i8*"))?Ag(p):6;D&&(z=Math.min(z,w));if(!v)for(;z>2]=g.length;break;case "%":g.push(h);break;default:for(m=kb;mb){b=-b;var f=Tc(e+1);b=a[b>>2]=f}for(f=0;f(a|0)||90<(a|0)?a|0:a-65+97|0}function ki(a){return(a&255)<<8|a>>8&255}function kd(a){function b(){this.name="ExitStatus";this.message="Program terminated with exit("+a+")";this.status=a;Module.print("Exit Status: "+a)}b.prototype=Error();b.prototype.constructor=b;Xg(pl);Ae=!0;throw new b;}function Cs(a,b,e,f){if(0!=b&&0!=e){for(var c=
+[],g=0;g>12<<12,b.called=!0,ac(U.dynamicAlloc),b.alloc=U.dynamicAlloc,U.dynamicAlloc=function(){gi("cannot dynamically allocate, sbrk now has control")});var e=gd;0!=a&&b.alloc(a);return e}function Nn(){return a[Nn.buf>>2]}function Nm(b){var d,e;Nm.called?(e=a[ql>>2],d=a[e>>2]):(Nm.called=!0,Bg.USER=
+"root",Bg.PATH="/",Bg.PWD="/",Bg.HOME="/home/emscripten",Bg.LANG="en_US.UTF-8",Bg._="./this.program",d=Za(1024,"i8",Kc),e=Za(256,"i8*",Kc),a[e>>2]=d,a[ql>>2]=e);var f=[],c=0,g;for(g in b)if("string"===typeof b[g]){var h=g+"="+b[g];f.push(h);c+=h.length}if(1024>2]=d;d+=h.length+1}a[e+4*f.length>>2]=0}function Eh(a){Eh.buffer||(Eh.buffer=Tc(256));
+var b=Eh.buffer;if(a in rl)if(255>2],d=0==(f|0)?3:2;break;case 2:var c=a[(e|0)>>2],g=106152+(c<<6)+(f<<2)|0,d=4;break;case 3:c=a[(e|0)>>2];g=b+120|0;d=4;break;case 4:return e=
+a[(b+84752|0)>>2],b=a[(b+64|0)>>2],(((Math.imul((72E3*c&-1)+72E3|0,a[g>>2])|0)/(b|0)&-1)+e|0)<<3}}function Dk(b,d,e){for(var f=0,f=1;;)switch(f){case 1:f=0==(e|0)?9:2;break;case 2:var c=d&255,g=b+300|0,h=b+296|0,y=b+284|0,kb=b+292|0,p=e,f=4;break;case 3:f=p-1|0;0==(f|0)?f=9:(p=f,f=4);break;case 4:var v=8,f=5;break;case 5:f=a[g>>2];if(0==(f|0))f=6;else var m=f,f=7;break;case 6:a[g>>2]=8;m=a[h>>2]+1|0;a[h>>2]=m;l[a[y>>2]+m|0]=0;m=a[g>>2];f=7;break;case 7:var f=(v|0)<(m|0)?v:m,z=v-f|0,A=m-f|0;a[g>>2]=
+A;var D=a[y>>2]+a[h>>2]|0;l[D]=(c>>>(z>>>0)<>2]=a[kb>>2]+f|0;if(0<(z|0))v=z,f=5;else var w=0,f=8;break;case 8:f=b+39840+(48*w&-1)|0;a[f>>2]=a[f>>2]+8|0;f=w+1|0;256>(f|0)?(w=f,f=8):f=3;break;case 9:return}}function RA(b,d){for(var e=0,f=m,e=1;;)switch(e){case 1:var c=a[(b+52132|0)>>2],g=a[(b+52128|0)>>2],h=g-1|0,g=0==(g|0)?255:h,h=a[(b+39840+(48*g&-1)|0)>>2]-a[(b+292|0)>>2]|0;a[d>>2]=h;if(-1<(h|0))e=2;else var y=h,e=3;break;case 2:y=g+(1-c|0)|0;e=y+256|0;y=Math.imul(((g|0)<(c|
+0)?e:y)<<3,a[(b+24|0)>>2]);y=h-y|0;e=3;break;case 3:var l=b+16|0,p=a[(b+84744|0)>>2],e=0==(p|0)?5:4;break;case 4:var v=a[(l|0)>>2],E=106152+(v<<6)+(p<<2)|0,e=6;break;case 5:v=a[(l|0)>>2];E=b+120|0;e=6;break;case 6:var z=a[(b+84752|0)>>2],e=a[(b+64|0)>>2],e=(((Math.imul((72E3*v&-1)+72E3|0,a[E>>2])|0)/(e|0)&-1)+z|0)<<3,z=e+y|0,e=e+h|0,e=(0!=(e&7|0)&1)+((e|0)/8&-1)|0;a[d>>2]=e;a[d>>2]=(a[(b+296|0)>>2]+1|0)+e|0;e=0>(z|0)?7:8;break;case 7:Oc(b,143832,(S=m,m=m+1|0,m=m+7>>3<<3,a[S>>2]=0,S));e=8;break;case 8:return m=
+f,z}}function Gs(b,d){for(var e=0,e=1;;)switch(e){case 1:if(7<(d|0))e=5;else var f=d,e=3;break;case 2:f=gb-32|0;e=3;break;case 3:e=0<(f|0)?4:45;break;case 4:var c=b+52136|0,g=b+300|0,h=b+296|0,y=b+52132|0,m=b+292|0,p=b+284|0,v=b+24|0,E=b+144|0,z=f,A=a[c>>2],e=38;break;case 5:var D=b+300|0,w=b+296|0,u=b+52132|0,t=b+292|0,s=b+284|0,G=b+24|0,H=8,e=6;break;case 6:var K=a[D>>2];if(0==(K|0))e=7;else var Q=K,e=10;break;case 7:a[D>>2]=8;var J=a[w>>2]+1|0;a[w>>2]=J;var F=a[u>>2];if((a[(b+39840+(48*F&-1)|0)>>
+2]|0)==(a[t>>2]|0))e=8;else var P=J,e=9;break;case 8:ha(a[s>>2]+J|0,b+39840+(48*F&-1)+8|0,a[G>>2]);var da=a[G>>2],C=a[w>>2]+da|0;a[w>>2]=C;a[t>>2]=a[t>>2]+(da<<3)|0;a[u>>2]=(a[u>>2]+1|0)&255;P=C;e=9;break;case 9:l[a[s>>2]+P|0]=0;Q=a[D>>2];e=10;break;case 10:var ba=(H|0)<(Q|0)?H:Q,L=H-ba|0,O=Q-ba|0;a[D>>2]=O;var B=a[s>>2]+a[w>>2]|0;l[B]=(76>>>(L>>>0)<>2]+ba|0;a[t>>2]=Wa;0<(L|0)?(H=L,e=6):e=11;break;case 11:var V=d-8|0;if(7<(V|0))var Eb=8,la=Wa,e=12;else f=V,e=3;break;case 12:var W=
+a[D>>2];if(0==(W|0))e=13;else var sa=W,e=16;break;case 13:a[D>>2]=8;var Yc=a[w>>2]+1|0;a[w>>2]=Yc;var ee=a[u>>2];if((a[(b+39840+(48*ee&-1)|0)>>2]|0)==(la|0))e=14;else var ja=Yc,e=15;break;case 14:ha(a[s>>2]+Yc|0,b+39840+(48*ee&-1)+8|0,a[G>>2]);var fa=a[G>>2],Cd=a[w>>2]+fa|0;a[w>>2]=Cd;a[t>>2]=a[t>>2]+(fa<<3)|0;a[u>>2]=(a[u>>2]+1|0)&255;ja=Cd;e=15;break;case 15:l[a[s>>2]+ja|0]=0;sa=a[D>>2];e=16;break;case 16:var tc=(Eb|0)<(sa|0)?Eb:sa,aa=Eb-tc|0,ma=sa-tc|0;a[D>>2]=ma;var ia=a[s>>2]+a[w>>2]|0;l[ia]=
+(65>>>(aa>>>0)<>2]+tc|0;a[t>>2]=ea;0<(aa|0)?(Eb=aa,la=ea,e=12):e=17;break;case 17:var Gh=d-16|0;if(7<(Gh|0))var Y=8,Cg=ea,e=18;else f=Gh,e=3;break;case 18:var ta=a[D>>2];if(0==(ta|0))e=19;else var na=ta,e=22;break;case 19:a[D>>2]=8;var Z=a[w>>2]+1|0;a[w>>2]=Z;var Da=a[u>>2];if((a[(b+39840+(48*Da&-1)|0)>>2]|0)==(Cg|0))e=20;else var ka=Z,e=21;break;case 20:ha(a[s>>2]+Z|0,b+39840+(48*Da&-1)+8|0,a[G>>2]);var pa=a[G>>2],za=a[w>>2]+pa|0;a[w>>2]=za;a[t>>2]=a[t>>2]+(pa<<3)|0;
+a[u>>2]=(a[u>>2]+1|0)&255;ka=za;e=21;break;case 21:l[a[s>>2]+ka|0]=0;na=a[D>>2];e=22;break;case 22:var ca=(Y|0)<(na|0)?Y:na,va=Y-ca|0,S=na-ca|0;a[D>>2]=S;var Ea=a[s>>2]+a[w>>2]|0;l[Ea]=(77>>>(va>>>0)<>2]+ca|0;a[t>>2]=Fa;0<(va|0)?(Y=va,Cg=Fa,e=18):e=23;break;case 23:var M=d-24|0;if(7<(M|0))var I=8,Aa=Fa,e=24;else f=M,e=3;break;case 24:var wa=a[D>>2];if(0==(wa|0))e=25;else var Ga=wa,e=28;break;case 25:a[D>>2]=8;var Qa=a[w>>2]+1|0;a[w>>2]=Qa;var R=a[u>>2];if((a[(b+39840+
+(48*R&-1)|0)>>2]|0)==(Aa|0))e=26;else var N=Qa,e=27;break;case 26:ha(a[s>>2]+Qa|0,b+39840+(48*R&-1)+8|0,a[G>>2]);var Ma=a[G>>2],n=a[w>>2]+Ma|0;a[w>>2]=n;a[t>>2]=a[t>>2]+(Ma<<3)|0;a[u>>2]=(a[u>>2]+1|0)&255;N=n;e=27;break;case 27:l[a[s>>2]+N|0]=0;Ga=a[D>>2];e=28;break;case 28:var qa=(I|0)<(Ga|0)?I:Ga,Sa=I-qa|0,Ca=Ga-qa|0;a[D>>2]=Ca;var Va=a[s>>2]+a[w>>2]|0;l[Va]=(69>>>(Sa>>>0)<>2]+qa|0;a[t>>2]=Ha;0<(Sa|0)?(I=Sa,Aa=Ha,e=24):e=29;break;case 29:var Ta=d-32|0;31<(Ta|0)?e=30:
+(f=Ta,e=3);break;case 30:var Ua=d-40|0,T=Ua&-8^-8,gb=(40>Ua>>>0?T:-48)+d|0,Na=0,$a=Ta,e=31;break;case 31:var Gb=l[Na+142432|0]<<24>>24,Ja=8,e=32;break;case 32:var lb=a[D>>2];if(0==(lb|0))e=33;else var Ra=lb,e=36;break;case 33:a[D>>2]=8;var sb=a[w>>2]+1|0;a[w>>2]=sb;var ob=a[u>>2];if((a[(b+39840+(48*ob&-1)|0)>>2]|0)==(a[t>>2]|0))e=34;else var hb=sb,e=35;break;case 34:ha(a[s>>2]+sb|0,b+39840+(48*ob&-1)+8|0,a[G>>2]);var mb=a[G>>2],Oa=a[w>>2]+mb|0;a[w>>2]=Oa;a[t>>2]=a[t>>2]+(mb<<3)|0;a[u>>2]=(a[u>>2]+
+1|0)&255;hb=Oa;e=35;break;case 35:l[a[s>>2]+hb|0]=0;Ra=a[D>>2];e=36;break;case 36:var nb=(Ja|0)<(Ra|0)?Ja:Ra,xb=Ja-nb|0,Ya=Ra-nb|0;a[D>>2]=Ya;var Ia=a[s>>2]+a[w>>2]|0;l[Ia]=(Gb>>xb<>2]=a[t>>2]+nb|0;0<(xb|0)?(Ja=xb,e=32):e=37;break;case 37:var tb=$a-8|0,Ka=Na+1|0;6>(Ka|0)&7<(tb|0)?(Na=Ka,$a=tb,e=31):e=2;break;case 38:var ab=1,e=39;break;case 39:var ga=a[g>>2];if(0==(ga|0))e=40;else var xa=ga,e=43;break;case 40:a[g>>2]=8;var La=a[h>>2]+1|0;a[h>>2]=La;var yb=a[y>>2];if((a[(b+39840+
+(48*yb&-1)|0)>>2]|0)==(a[m>>2]|0))e=41;else var pb=La,e=42;break;case 41:ha(a[p>>2]+La|0,b+39840+(48*yb&-1)+8|0,a[v>>2]);var r=a[v>>2],Hb=a[h>>2]+r|0;a[h>>2]=Hb;a[m>>2]=a[m>>2]+(r<<3)|0;a[y>>2]=(a[y>>2]+1|0)&255;pb=Hb;e=42;break;case 42:l[a[p>>2]+pb|0]=0;xa=a[g>>2];e=43;break;case 43:var Bb=(ab|0)<(xa|0)?ab:xa,Ib=ab-Bb|0,Fb=xa-Bb|0;a[g>>2]=Fb;var bb=a[p>>2]+a[h>>2]|0;l[bb]=(A>>Ib<>2]=a[m>>2]+Bb|0;0<(Ib|0)?(ab=Ib,e=39):e=44;break;case 44:var qb=0==(a[E>>2]|0)&1^a[c>>2];a[c>>
+2]=qb;var cb=z-1|0;0<(cb|0)?(z=cb,A=qb,e=38):e=45;break;case 45:return}}function Vo(k,d,e,f){var c=0,g=m;m=m+9216|0;for(c=1;;)switch(c){case 1:var h=g,y=k+296|0,kb=a[y>>2],p=kb+1|0;if(0>(kb|0))var v=0,c=23;else c=2;break;case 2:0!=(e|0)&(p|0)>(e|0)?(v=-1,c=23):c=3;break;case 3:ha(d,a[(k+284|0)>>2],p);a[y>>2]=-1;a[(k+300|0)>>2]=0;0==(f|0)?(v=p,c=23):c=4;break;case 4:a:for(var E=k+85752|0,z=d,A=p,D=0,D=1;;)switch(D){case 1:D=0<(A|0)?2:4;break;case 2:var w=0,u=Xa[E>>1],D=3;break;case 3:var t=(a[(105032+
+(((l[z+w|0]&255^u)&255)<<2)|0)>>2]^(u&65535)>>>8)&65535;Xa[E>>1]=t;var s=w+1|0;(s|0)<(A|0)?(w=s,u=t,D=3):D=4;break;case 4:break a}var G=k+85788|0;a[G>>2]=a[G>>2]+p|0;0==(a[(k+136|0)>>2]|0)?(v=p,c=23):c=5;break;case 5:var H=k+85676|0,K=k+85808|0,Q=h|0,J=h+4608|0,F=k+132|0,P=k+128|0,da=k+72|0,C=k+85684|0,ba=p,c=6;break;case 6:var L;a:{var O=a[K>>2],B=d,Wa=ba,V=Q,Eb=J,la=0,W=m;m=m+56|0;for(la=1;;)switch(la){case 1:var sa=W,Yc=W+40,ee=W+48;if(0==(O|0))var ja=0,la=3;else la=2;break;case 2:b:{var fa=O,
+Cd=B,tc=Wa,aa=V,ma=Eb,ia=sa,ea=Yc,Gh=ee,Y=0,Cg=m;m=m+8|0;for(Y=1;;)switch(Y){case 1:var ta=Cg,na=ia|0;a[na>>2]=0;var Z=ib[60](fa,Cd,tc,85256,9216,ta),Da=fa+60|0,Y=0==(a[(fa+24|0)>>2]|0)?2:4;break;case 2:Y=0<(a[Da>>2]|0)?4:3;break;case 3:Y=0<(a[(fa+48|0)>>2]|0)?4:11;break;case 4:a[na>>2]=1;a[(ia+4|0)>>2]=a[(fa+68|0)>>2];var ka=a[(Hs+(a[(fa+100|0)>>2]<<2)|0)>>2];a[(ia+8|0)>>2]=ka;a[(ia+16|0)>>2]=a[(fa+112|0)>>2];a[(ia+20|0)>>2]=a[(fa+116|0)>>2];var pa=fa+88|0,za=fa+76|0,ca=a[(105E3+(a[za>>2]<<4)+(a[pa>>
+2]<<2)|0)>>2];a[(ia+24|0)>>2]=ca;var va=a[Da>>2],Y=0<(va|0)?5:6;break;case 5:var S=Math.imul((va<<3)+32|0,ka)|0;a[(ia+12|0)>>2]=S/(1E3*(ca|0))+0.5&-1;Y=9;break;case 6:var Ea=a[(fa+48|0)>>2],Y=0<(Ea|0)?7:8;break;case 7:var Fa=Math.imul((Ea<<3)+32|0,ka)|0;a[(ia+12|0)>>2]=Fa/(1E3*(ca|0))+0.5&-1;Y=9;break;case 8:a[(ia+12|0)>>2]=a[(Is+(192*a[za>>2]&-1)+((a[pa>>2]-1|0)<<6)+(a[(fa+96|0)>>2]<<2)|0)>>2];Y=9;break;case 9:var M=fa+12|0,I=a[M>>2],Y=0<(I|0)?10:11;break;case 10:a[(ia+32|0)>>2]=I;var Aa=Math.imul(a[M>>
+2],ca);a[(ia+28|0)>>2]=Aa;a[ea>>2]=a[(fa+16|0)>>2];a[Gh>>2]=a[(fa+20|0)>>2];Y=11;break;case 11:if(0==(Z|0))Y=12;else if(-1==(Z|0))Y=27;else if(1==(Z|0))var wa=0,Y=29;else Y=28;break;case 12:var Ga=a[(fa+68|0)>>2];1==(Ga|0)?Y=13:2==(Ga|0)?Y=20:(wa=-1,Y=29);break;case 13:var Qa=(a[ta>>2]|0)/4&-1,R=0<(Qa|0),Y=17;break;case 14:R?Y=15:(wa=Qa,Y=29);break;case 15:var N=0,Ma=aa,n=85256,Y=16;break;case 16:var qa=n+2|0,Sa=Ma+2|0;Xa[Ma>>1]=Xa[n>>1];var Ca=N+1|0;(Ca|0)<(Qa|0)?(N=Ca,Ma=Sa,n=qa,Y=16):(wa=Qa,Y=
+29);break;case 17:R?Y=18:(wa=Qa,Y=29);break;case 18:var Va=0,Ha=aa,Ta=85256,Y=19;break;case 19:var Ua=Ta+4|0,T=Ha+4|0;b[Ha>>2]=b[Ta>>2];var gb=Va+1|0;(gb|0)<(Qa|0)?(Va=gb,Ha=T,Ta=Ua,Y=19):(wa=Qa,Y=29);break;case 20:var Na=((a[ta>>2]|0)/4&-1)>>1,$a=0<(Na|0),Y=24;break;case 21:$a?Y=22:(wa=Na,Y=29);break;case 22:var Gb=0,Ja=aa,lb=ma,Ra=85256,Y=23;break;case 23:var sb=Ra+2|0,ob=Ja+2|0;Xa[Ja>>1]=Xa[Ra>>1];var hb=Ra+4|0,mb=lb+2|0;Xa[lb>>1]=Xa[sb>>1];var Oa=Gb+1|0;(Oa|0)<(Na|0)?(Gb=Oa,Ja=ob,lb=mb,Ra=hb,
+Y=23):(wa=Na,Y=29);break;case 24:$a?Y=25:(wa=Na,Y=29);break;case 25:var nb=0,xb=aa,Ya=ma,Ia=85256,Y=26;break;case 26:var tb=Ia+4|0,Ka=xb+4|0;b[xb>>2]=b[Ia>>2];var ab=Ia+8|0,ga=Ya+4|0;b[Ya>>2]=b[tb>>2];var xa=nb+1|0;(xa|0)<(Na|0)?(nb=xa,xb=Ka,Ya=ga,Ia=ab,Y=26):(wa=Na,Y=29);break;case 27:wa=-1;Y=29;break;case 28:wa=-1;Y=29;break;case 29:m=Cg;ja=wa;break b}ja=void 0}la=3;break;case 3:m=W;L=ja;break a}L=void 0}var La=-1==(L|0)?0:L,c=0<(La|0)?7:22;break;case 7:c=0==(a[F>>2]|0)?20:8;break;case 8:var yb=
+0,pb=b[C>>2],c=9;break;case 9:var r=b[(h+(yb<<2)|0)>>2],c=r>pb?10:11;break;case 10:var Hb=b[C>>2]=r,c=13;break;case 11:var Bb=-r;pb>2]=Bb;c=13;break;case 13:var Ib=yb+1|0;(Ib|0)<(La|0)?(yb=Ib,pb=Hb,c=9):c=14;break;case 14:if(1<(a[da>>2]|0))var Fb=0,bb=Hb,c=15;else c=20;break;case 15:var qb=b[(h+4608+(Fb<<2)|0)>>2],c=qb>bb?16:17;break;case 16:var cb=b[C>>2]=qb,c=19;break;case 17:var ya=-qb;bb>2]=ya;c=19;break;case 19:var X=
+Fb+1|0;(X|0)<(La|0)?(Fb=X,bb=cb,c=15):c=20;break;case 20:c=0==(a[P>>2]|0)?22:21;break;case 21:0==(mj(a[H>>2],Q,J,La,a[da>>2])|0)?(v=-6,c=23):c=22;break;case 22:0==(La|0)?(v=p,c=23):(ba=0,c=6);break;case 23:return m=g,v}}function SA(k,d){for(var e=0,e=1;;)switch(e){case 1:var f=a[(d+4840|0)>>2]+32|0,c=a[(d+4772|0)>>2],g=a[(d+4776|0)>>2]-c|0;if(3<(g|0))e=2;else var h=0,e=24;break;case 2:var y=a[(84720+(f<<4)|0)>>2],m=a[(84724+(f<<4)|0)>>2],p=k+300|0,v=k+296|0,E=k+52132|0,z=k+292|0,A=k+284|0,D=k+24|
+0,w=(g|0)/4&-1,u=0,t=d+2304+(c<<2)|0,s=d+(c<<2)|0,e=3;break;case 3:if(0==(a[t>>2]|0))var G=0,H=0,e=6;else e=4;break;case 4:0>b[s>>2]?e=5:(G=8,H=0,e=6);break;case 5:G=8;H=1;e=6;break;case 6:if(0==(a[(t+4|0)>>2]|0))var K=G,Q=H,e=9;else e=7;break;case 7:var J=G|4,F=H<<1;0>b[(s+4|0)>>2]?e=8:(K=J,Q=F,e=9);break;case 8:Q=F|1;K=J;e=9;break;case 9:if(0==(a[(t+8|0)>>2]|0))var P=K,da=Q,e=12;else e=10;break;case 10:var C=K+2|0,ba=Q<<1;0>b[(s+8|0)>>2]?e=11:(P=C,da=ba,e=12);break;case 11:da=ba|1;P=C;e=12;break;
+case 12:if(0==(a[(t+12|0)>>2]|0))var L=P,O=da,e=15;else e=13;break;case 13:var B=P+1|0,Wa=da<<1;0>b[(s+12|0)>>2]?e=14:(L=B,O=Wa,e=15);break;case 14:O=Wa|1;L=B;e=15;break;case 15:var V=t+16|0,Eb=s+16|0,la=(Xa[(y+(L<<1)|0)>>1]&65535)+O|0,W=m+L|0,sa=l[W];if(0==sa<<24>>24)var Yc=0,e=23;else e=16;break;case 16:var ee=sa&255,e=17;break;case 17:e=a[p>>2];if(0==(e|0))e=18;else var ja=e,e=21;break;case 18:a[p>>2]=8;var fa=a[v>>2]+1|0;a[v>>2]=fa;var Cd=a[E>>2];if((a[(k+39840+(48*Cd&-1)|0)>>2]|0)==(a[z>>2]|
+0))e=19;else var tc=fa,e=20;break;case 19:ha(a[A>>2]+fa|0,k+39840+(48*Cd&-1)+8|0,a[D>>2]);tc=a[D>>2];e=a[v>>2]+tc|0;a[v>>2]=e;a[z>>2]=a[z>>2]+(tc<<3)|0;a[E>>2]=(a[E>>2]+1|0)&255;tc=e;e=20;break;case 20:l[a[A>>2]+tc|0]=0;ja=a[p>>2];e=21;break;case 21:var e=(ee|0)<(ja|0)?ee:ja,aa=ee-e|0,ma=ja-e|0;a[p>>2]=ma;var ia=a[A>>2]+a[v>>2]|0;l[ia]=(la>>aa<>2]=a[z>>2]+e|0;0<(aa|0)?(ee=aa,e=17):e=22;break;case 22:Yc=l[W]&255;e=23;break;case 23:e=Yc+u|0;aa=w-1|0;0<(aa|0)?(w=aa,u=e,t=V,s=Eb,
+e=3):(h=e,e=24);break;case 24:return h}}function Qe(k,d,e,f,c){for(var g=0,g=1;;)switch(g){case 1:var h=a[(84712+(d<<4)|0)>>2];if(0!=(d|0)&(e|0)<(f|0))g=2;else var y=0,g=25;break;case 2:var m=15>>0,p=h&65535,v=a[(84724+(d<<4)|0)>>2],E=a[(84720+(d<<4)|0)>>2],z=k+300|0,A=k+296|0,D=k+52132|0,w=k+292|0,u=k+284|0,t=k+24|0,s=0,G=e,g=3;break;case 3:var H=a[(c+2304+(G<<2)|0)>>2],K=G+1|0,Q=a[(c+2304+(K<<2)|0)>>2];if(0==(H|0))var J=0,F=0,g=5;else g=4;break;case 4:J=0>b[(c+(G<<2)|0)>>2]&1;F=-1;g=5;break;
+case 5:if(m)g=6;else var P=H,da=J,C=h,ba=0,g=10;break;case 6:if(14>>0)g=7;else var L=H,O=J,B=0,g=8;break;case 7:O=J|((H<<1)+131042|0)&131070;L=15;B=p;g=8;break;case 8:14>>0?g=9:(P=L,da=O,C=16,ba=B,g=10);break;case 9:var Wa=((B&65535)+h|0)&65535,V=16,Eb=O<b[(c+(K<<2)|0)>>2]&1|Eb<<1;ee=Wa;ja=V;fa=la;Cd=W;g=12;break;case 12:var tc=
+Math.imul(ja,fa)+Cd|0,aa=ee-Yc&65535,g=(l[v+tc|0]&255)+Yc&65535,tc=Xa[(E+(tc<<1)|0)>>1]&65535,ma=g<<16>>16;if(0>16)var ia=ma,g=13;else g=18;break;case 13:g=a[z>>2];if(0==(g|0))g=14;else var ea=g,g=17;break;case 14:a[z>>2]=8;var Gh=a[A>>2]+1|0;a[A>>2]=Gh;var Y=a[D>>2];if((a[(k+39840+(48*Y&-1)|0)>>2]|0)==(a[w>>2]|0))g=15;else var Cg=Gh,g=16;break;case 15:ha(a[u>>2]+Gh|0,k+39840+(48*Y&-1)+8|0,a[t>>2]);Cg=a[t>>2];g=a[A>>2]+Cg|0;a[A>>2]=g;a[w>>2]=a[w>>2]+(Cg<<3)|0;a[D>>2]=(a[D>>2]+1|0)&255;Cg=g;
+g=16;break;case 16:l[a[u>>2]+Cg|0]=0;ea=a[z>>2];g=17;break;case 17:var g=(ia|0)<(ea|0)?ia:ea,ta=ia-g|0,na=ea-g|0;a[z>>2]=na;var Z=a[u>>2]+a[A>>2]|0;l[Z]=(tc>>>(ta>>>0)<>2]=a[w>>2]+g|0;0<(ta|0)?(ia=ta,g=13):g=18;break;case 18:var Da=aa&65535;if(ee<<16>>16==Yc<<16>>16)g=24;else var ka=Da,g=19;break;case 19:g=a[z>>2];if(0==(g|0))g=20;else var pa=g,g=23;break;case 20:a[z>>2]=8;var za=a[A>>2]+1|0;a[A>>2]=za;var ca=a[D>>2];if((a[(k+39840+(48*ca&-1)|0)>>2]|0)==(a[w>>2]|0))g=21;else var va=
+za,g=22;break;case 21:ha(a[u>>2]+za|0,k+39840+(48*ca&-1)+8|0,a[t>>2]);va=a[t>>2];g=a[A>>2]+va|0;a[A>>2]=g;a[w>>2]=a[w>>2]+(va<<3)|0;a[D>>2]=(a[D>>2]+1|0)&255;va=g;g=22;break;case 22:l[a[u>>2]+va|0]=0;pa=a[z>>2];g=23;break;case 23:g=(ka|0)<(pa|0)?ka:pa;ta=ka-g|0;na=pa-g|0;a[z>>2]=na;Z=a[u>>2]+a[A>>2]|0;l[Z]=(sa>>ta<>2]=a[w>>2]+g|0;0<(ta|0)?(ka=ta,g=19):g=24;break;case 24:g=(Da+s|0)+ma|0;ta=G+2|0;(ta|0)<(f|0)?(s=g,G=ta,g=3):(y=g,g=25);break;case 25:return y}}function Om(k,d,e,
+f,c){var g=0,h=m;m=m+20064|0;for(g=1;;)switch(g){case 1:var y=h,kb=h+8056,p=h+16112,v=h+18064,E=h+20016,z=h+20024,A=h+20056,D=A,w=m,u=m=m+16|0,t=m=m+16|0;m=m+8|0;var s=t,G=m;m=m+8|0;a[(A|0)>>2]=1056964608;a[(A+4|0)>>2]=1056964608;var H=w;a[H>>2]=0;a[H+4>>2]=0;a[H+8>>2]=0;a[H+12>>2]=0;var K=u;a[K>>2]=0;a[K+4>>2]=0;a[K+8>>2]=0;a[K+12>>2]=0;var Q=E|0;a[Q>>2]=d;a[(E+4|0)>>2]=e;var J=k+4|0,g=0==(a[J>>2]|0)?2:18;break;case 2:var F=y,P=kb,da=k+76|0,C=a[da>>2],ba=576*C&-1;a[J>>2]=1;ra(F,0,8056);ra(P,0,8056);
+var L=ba+862|0,g=0<(L|0)?3:4;break;case 3:var O=k+72|0,B=0,Wa=0,g=6;break;case 4:g=0<(C|0)?5:17;break;case 5:var V=k+72|0,Eb=0,la=a[V>>2],W=C,g=13;break;case 6:g=(B|0)<(ba|0)?7:9;break;case 7:b[(y+(B<<2)|0)>>2]=0;if(2==(a[O>>2]|0))g=8;else var sa=Wa,g=12;break;case 8:b[(kb+(B<<2)|0)>>2]=0;sa=Wa;g=12;break;case 9:b[(y+(B<<2)|0)>>2]=b[(d+(Wa<<2)|0)>>2];g=2==(a[O>>2]|0)?10:11;break;case 10:b[(kb+(B<<2)|0)>>2]=b[(e+(Wa<<2)|0)>>2];g=11;break;case 11:sa=Wa+1|0;g=12;break;case 12:var Yc=B+1|0;(Yc|0)<(L|
+0)?(B=Yc,Wa=sa,g=6):g=4;break;case 13:if(0<(la|0))var ee=0,g=14;else var ja=la,fa=W,g=16;break;case 14:a[(k+304+(10504*Eb&-1)+(5252*ee&-1)+4788|0)>>2]=2;var Cd=ee+1|0,tc=a[V>>2];(Cd|0)<(tc|0)?(ee=Cd,g=14):g=15;break;case 15:var aa=a[da>>2],ja=tc,fa=aa,g=16;break;case 16:var ma=Eb+1|0;(ma|0)<(fa|0)?(Eb=ma,la=ja,W=fa,g=13):g=17;break;case 17:TA(k,y|0,kb|0);g=18;break;case 18:var ia=k+84752|0;a[ia>>2]=0;var ea=k+39836|0,Gh=a[ea>>2]-a[(k+39832|0)>>2]|0;a[ea>>2]=Gh;g=0>(Gh|0)?19:20;break;case 19:a[ea>>
+2]=a[(k+64|0)>>2]+Gh|0;a[ia>>2]=1;g=20;break;case 20:a[(t|0)>>2]=0;a[(t+4|0)>>2]=0;var Y=k+76|0,Cg=a[Y>>2];if(0<(Cg|0))g=21;else var ta=Cg,g=31;break;case 21:var na=k+72|0,Z=t,Da=p|0,ka=v|0,pa=G|0,za=k+180|0,ca=0,va=a[na>>2],g=22;break;case 22:g=0<(va|0)?23:25;break;case 23:var I=(576*ca&-1)+304|0,Ea=0,g=24;break;case 24:a[(s+(Ea<<2)|0)>>2]=a[(E+(Ea<<2)|0)>>2]+(I<<2)|0;var Fa=Ea+1|0;(Fa|0)<(va|0)?(Ea=Fa,g=24):g=25;break;case 25:a:{var M=k,R=Z,Aa=ca,wa=Da,Ga=ka,Qa=w+(ca<<3)|0,N=u+(ca<<3)|0,T=z+(ca<<
+4)|0,Ma=pa,n=0,qa=m;m=m+26584|0;for(n=1;;)switch(n){case 1:var Sa=qa,Ca=qa+64,Va=qa+120,Ha=qa+176,Ta=qa+432,Ua=qa+688,Nb=qa+760,gb=qa+5368,Na=qa+5416,$a=qa+5464,Gb=qa+5480,Ja=qa+6456,lb=qa+8512,Ra=qa+10064,sb=qa+18256,ob=qa+24400,hb=qa+25424,mb=qa+26448,Oa=qa+26496,nb=qa+26560,xb=qa+26568,Ya=xb,Ia=M+85800|0,tb=a[Ia>>2],Ka=M+140|0,ab=0==(a[Ka>>2]|0);if(ab)var ga=0,n=3;else n=2;break;case 2:ga=a[(M+85804|0)>>2];n=3;break;case 3:var xa=M+192|0;if(0>2])n=4;else var La=1,n=5;break;case 4:La=b[(M+
+200|0)>>2]*b[(a[(M+85796|0)>>2]+8|0)>>2];n=5;break;case 5:var yb=ob|0;ra(Oa,0,64);var pb=M+180|0,r=1==(a[pb>>2]|0);if(r)var Hb=4,n=7;else n=6;break;case 6:Hb=a[(M+72|0)>>2];n=7;break;case 7:ha(Gb,M+25660|0,976);var Bb=nb|0,Ib=Nb,Fb=$a;if(ab)var bb=0,n=9;else n=8;break;case 8:bb=a[(M+85804|0)>>2];n=9;break;case 9:var qb=M+72|0,cb=a[qb>>2],ya=r?4:cb;ra(Ib,0,4608);n=0<(cb|0)?10:14;break;case 10:if(2<(ya|0))var X=0,n=11;else var Jb=0,n=16;break;case 11:var db=a[(R+(X<<2)|0)>>2],jb=0,n=13;break;case 12:ha(wa+
+(976*Aa&-1)+(488*X&-1)+244|0,M+26636+(244*X&-1)|0,244);ha(wa+(976*Aa&-1)+(488*X&-1)|0,M+25660+(244*X&-1)|0,244);var U=X+2|0;ha(Ga+(976*Aa&-1)+(488*X&-1)+244|0,M+26636+(244*U&-1)|0,244);ha(Ga+(976*Aa&-1)+(488*X&-1)|0,M+25660+(244*U&-1)|0,244);var $=X+1|0;($|0)<(cb|0)?(X=$,n=11):n=14;break;case 13:b[(Nb+(2304*X&-1)+(jb<<2)|0)>>2]=b[(db+((jb+407|0)<<2)|0)>>2]+-1.7303260184043527E-17*(b[(db+((jb+397|0)<<2)|0)>>2]+b[(db+((jb+418|0)<<2)|0)>>2])+-1.3495279640235235E-17*(b[(db+((jb+399|0)<<2)|0)>>2]+b[(db+
+((jb+416|0)<<2)|0)>>2])+-6.732779685849225E-17*(b[(db+((jb+401|0)<<2)|0)>>2]+b[(db+((jb+414|0)<<2)|0)>>2])+-3.0835000291318875E-17*(b[(db+((jb+403|0)<<2)|0)>>2]+b[(db+((jb+412|0)<<2)|0)>>2])+-1.1044240253100168E-16*(b[(db+((jb+405|0)<<2)|0)>>2]+b[(db+((jb+410|0)<<2)|0)>>2])+(-0.017031719908118248*(b[(db+((jb+398|0)<<2)|0)>>2]+b[(db+((jb+417|0)<<2)|0)>>2])+0.04180720075964928*(b[(db+((jb+400|0)<<2)|0)>>2]+b[(db+((jb+415|0)<<2)|0)>>2])+-0.08763240277767181*(b[(db+((jb+402|0)<<2)|0)>>2]+b[(db+((jb+413|
+0)<<2)|0)>>2])+0.1863476037979126*(b[(db+((jb+404|0)<<2)|0)>>2]+b[(db+((jb+411|0)<<2)|0)>>2])+-0.6276379823684692*(b[(db+((jb+406|0)<<2)|0)>>2]+b[(db+((jb+409|0)<<2)|0)>>2]));var Ek=jb+1|0;576>(Ek|0)?(jb=Ek,n=13):n=12;break;case 14:n=0<(ya|0)?15:70;break;case 15:var lc=$a|0,vc=0==(bb|0),Qj=nb+4|0,wc=gb|0,Tb=Na|0,Ub=Na+4|0,ub=gb+4|0,fc=Na+8|0,vb=gb+8|0,xc=Na+12|0,Qb=Na+16|0,eb=Na+20|0,Kb=Na+24|0,mc=Na+28|0,gc=Na+32|0,ua=Na+36|0,Zb=Na+40|0,nc=Na+44|0,yc=$a+4|0,rc=$a+8|0,Pc=$a+12|0,cc=gb+12|0,pK=gb+
+16|0,ic=gb+20|0,Wc=gb+24|0,Gc=gb+28|0,Hc=gb+32|0,Lc=gb+36|0,Js=gb+40|0,zc=gb+44|0,zb=0,n=19;break;case 16:var Cb=a[(R+(Jb<<2)|0)>>2],Vb=0,n=17;break;case 17:b[(Nb+(2304*Jb&-1)+(Vb<<2)|0)>>2]=b[(Cb+((Vb+407|0)<<2)|0)>>2]+-1.7303260184043527E-17*(b[(Cb+((Vb+397|0)<<2)|0)>>2]+b[(Cb+((Vb+418|0)<<2)|0)>>2])+-1.3495279640235235E-17*(b[(Cb+((Vb+399|0)<<2)|0)>>2]+b[(Cb+((Vb+416|0)<<2)|0)>>2])+-6.732779685849225E-17*(b[(Cb+((Vb+401|0)<<2)|0)>>2]+b[(Cb+((Vb+414|0)<<2)|0)>>2])+-3.0835000291318875E-17*(b[(Cb+
+((Vb+403|0)<<2)|0)>>2]+b[(Cb+((Vb+412|0)<<2)|0)>>2])+-1.1044240253100168E-16*(b[(Cb+((Vb+405|0)<<2)|0)>>2]+b[(Cb+((Vb+410|0)<<2)|0)>>2])+(-0.017031719908118248*(b[(Cb+((Vb+398|0)<<2)|0)>>2]+b[(Cb+((Vb+417|0)<<2)|0)>>2])+0.04180720075964928*(b[(Cb+((Vb+400|0)<<2)|0)>>2]+b[(Cb+((Vb+415|0)<<2)|0)>>2])+-0.08763240277767181*(b[(Cb+((Vb+402|0)<<2)|0)>>2]+b[(Cb+((Vb+413|0)<<2)|0)>>2])+0.1863476037979126*(b[(Cb+((Vb+404|0)<<2)|0)>>2]+b[(Cb+((Vb+411|0)<<2)|0)>>2])+-0.6276379823684692*(b[(Cb+((Vb+406|0)<<2)|
+0)>>2]+b[(Cb+((Vb+409|0)<<2)|0)>>2]));var $b=Vb+1|0;576>($b|0)?(Vb=$b,n=17):n=18;break;case 18:ha(wa+(976*Aa&-1)+(488*Jb&-1)+244|0,M+26636+(244*Jb&-1)|0,244);ha(wa+(976*Aa&-1)+(488*Jb&-1)|0,M+25660+(244*Jb&-1)|0,244);var Rb=Jb+1|0;(Rb|0)<(cb|0)?(Jb=Rb,n=16):n=14;break;case 19:a[Fb>>2]=0;a[Fb+4>>2]=0;a[Fb+8>>2]=0;a[Fb+12>>2]=0;var Xb=Nb+(2304*(zb&1)&-1)|0;if(2==(zb|0))var sc=576,Qc=0,n=20;else n=21;break;case 20:var Rc=Nb+(Qc<<2)|0,Zc=b[Rc>>2],Td=Nb+2304+(Qc<<2)|0,Ac=b[Td>>2];b[Rc>>2]=Zc+Ac;b[Td>>
+2]=Zc-Ac;var Mc=Qc+1|0,Bc=sc-1|0;0<(Bc|0)?(sc=Bc,Qc=Mc,n=20):n=21;break;case 21:var Cc=b[(M+27636+(36*zb&-1)+24|0)>>2];b[Tb>>2]=Cc;b[wc>>2]=Cc/b[(M+27636+(36*zb&-1)+16|0)>>2];var dd=Cc,Yb=b[(M+27636+(36*zb&-1)+28|0)>>2];b[Ub>>2]=Yb;b[ub>>2]=Yb/b[(M+27636+(36*zb&-1)+20|0)>>2];var Sc=dd+Yb,Dc=b[(M+27636+(36*zb&-1)+32|0)>>2];b[fc>>2]=Dc;b[vb>>2]=Dc/Cc;b[lc>>2]=Sc+Dc;var Ec=Xb,oc=0,n=22;break;case 22:var $c=Ec+256|0,ad=Ec,Ud=1,n=23;break;case 23:var Xa=Math.abs(b[ad>>2]),Ic=Ud>>
+0<$c>>>0?(ad=li,Ud=Ic,n=23):n=24;break;case 24:var qd=oc+3|0;b[(Na+(qd<<2)|0)>>2]=Ic;b[(M+27636+(36*zb&-1)+(oc<<2)|0)>>2]=Ic;var Dd=$a+((((oc|0)/3&-1)+1|0)<<2)|0;b[Dd>>2]=Ic+b[Dd>>2];var rd=oc+1|0,sd=b[(Na+(rd<<2)|0)>>2],n=Ic>sd?25:26;break;case 25:var md=Ic/sd,n=28;break;case 26:var UA=10*Ic;sd>UA?n=27:(md=0,n=28);break;case 27:md=sd/UA;n=28;break;case 28:b[(gb+(qd<<2)|0)>>2]=md;9>(rd|0)?(Ec=li,oc=rd,n=22):n=29;break;case 29:var Wo=b[Qb>>2],Ed=b[eb>>2],Wb=b[xc>>2]+Wo+Ed;if(6*Ed>2]=Vd;var ec=b[mc>>2],Od=b[gc>>2],Wd=b[Kb>>2]+ec+Od;if(6*Od>2],Re=b[ub>>2],Yd=Za>2],ac=Yd>2],Zd=ac>2],nd=Zd>2],$d=nd>2],ne=$d>2],Se=ne>2],ff=Se>2],Te=ff>2],he=Te>
+2],Ue=he>3]=oa[ie>>3];oa[ie>>3]=Ue;n=34;break;case 34:var pe=b[(a[Ia>>2]+6480+(zb<<2)|0)>>2],hf=0,n=35;break;case 35:var Xf=Oa+(zb<<4)+(((hf|0)/3&-1)<<2)|0,n=0==(a[Xf>>2]|0)?36:38;break;case 36:n=b[(gb+(hf<<2)|0)>>2]>pe?37:38;break;case 37:a[Xf>>2]=((hf|0)%3&-1)+1|0;n=38;break;case 38:var Ve=hf+1|0;12>(Ve|0)?(hf=Ve,n=35):n=39;break;case 39:var yf=Oa+(zb<<4)|0,We=b[lc>>2],zd=b[yc>>2],jf=1.7000000476837158*zd,n=4E4>(We>zd?We:zd)&We>2]|0)>(a[De>>2]|0)?42:41;break;case 41:a[yf>>2]=0;n=42;break;case 42:a[De>>2]=0;n=43;break;case 43:var Nc=b[rc>>2],zf=1.7000000476837158*Nc,n=4E4>(zd>Nc?zd:Nc)&zd>2]=0,n=45;break;case 45:var Bf=Oa+(zb<<4)+4|0,Xe=a[Bf>>2],n=3==(Yf|0)?47:46;break;case 46:if(((Xe+Af|0)+a[(Oa+(zb<<4)+8|0)>>2]|0)==(-a[(Oa+(zb<<4)+12|0)>>2]|0))var ae=1,n=55;else n=47;break;case 47:if(0==(Xe|0))var Id=0,
+n=50;else n=48;break;case 48:0==(Af|0)?(Id=Xe,n=50):n=49;break;case 49:Id=a[Bf>>2]=0;n=50;break;case 50:var kf=Oa+(zb<<4)+8|0;0==(a[kf>>2]|0)?(ae=0,n=55):n=51;break;case 51:n=0==(Id|0)?53:52;break;case 52:ae=a[kf>>2]=0;n=55;break;case 53:var jc=Oa+(zb<<4)+12|0;0==(a[jc>>2]|0)?(ae=0,n=55):n=54;break;case 54:ae=a[jc>>2]=0;n=55;break;case 55:n=2>(zb|0)?56:57;break;case 56:a[(nb+(zb<<2)|0)>>2]=ae;n=59;break;case 57:n=0==(ae|0)?58:59;break;case 58:a[Qj>>2]=0;a[Bb>>2]=0;n=59;break;case 59:b[(T+(zb<<2)|
+0)>>2]=b[(M+27620+(zb<<2)|0)>>2];var fb=zb+1|0;(fb|0)<(ya|0)?(zb=fb,n=19):n=70;break;case 60:6*ec>2]=Xd;var lf=b[Zb>>2],mf=b[nc>>2],td=b[ua>>2]+lf+mf;if(6*mf>2]=dc;n=vc?34:33;break;case 66:a[(Oa+(zb<<4)+8|0)>>2]=0;n=67;break;case 67:var Ye=b[Pc>>2],n=4E4>(Nc>Ye?Nc:Ye)&Nc<1.7000000476837158*
+Ye&Ye>2]=0;n=69;break;case 69:var Zf=a[yf>>2],Yf=a[(M+27780+(zb<<2)|0)>>2];(Zf|0)>(Yf|0)?(Af=Zf,n=45):n=44;break;case 70:var Ee=a[(M+184|0)>>2],n=1==(Ee|0)?71:74;break;case 71:var nf=nb+4|0,n=0==(a[Bb>>2]|0)?73:72;break;case 72:n=0==(a[nf>>2]|0)?73:74;break;case 73:a[nf>>2]=0;a[Bb>>2]=0;n=74;break;case 74:var $f=a[qb>>2];if(0<($f|0))var Fe=0,n=75;else n=79;break;case 75:n=2==(Ee|0)?76:3==(Ee|0)?77:78;break;case 76:a[(nb+(Fe<<2)|0)>>2]=1;n=78;break;case 77:a[(nb+
+(Fe<<2)|0)>>2]=0;n=78;break;case 78:var Cf=Fe+1|0;(Cf|0)<($f|0)?(Fe=Cf,n=75):n=79;break;case 79:var Ze=0<(Hb|0),n=Ze?80:152;break;case 80:var je=Ja|0,xd=M+85796|0,Ge=Ua|0,qK=Ha|0,Dg=Ta|0,Kc=Ha+4|0,Yg=M+84908|0,Eg=Ta+4|0,Fg=M+85804|0,pc=0,n=81;break;case 81:var be=pc&1,qe=Ra+(be<<12)|0;if(0==(a[Ka>>2]|0))var He=0,n=83;else n=82;break;case 82:He=a[Fg>>2];n=83;break;case 83:var re=2>(pc|0),n=re?84:85;break;case 84:b:for(var Df=M,Gg=qe|0,Hg=pc,ag=R,Fd=0,Fd=1;;)switch(Fd){case 1:var Jd=ag+(Hg<<2)|0,Qd=
+Gg+2048|0,hd=127,Fd=2;break;case 2:var Ad=l[hd+13992|0]&255,se=a[Jd>>2],bg=b[(520+(Ad<<2)|0)>>2]*b[(se+(Ad<<2)|0)>>2],Ef=Ad|512,cg=b[(520+(Ef<<2)|0)>>2]*b[(se+(Ef<<2)|0)>>2],Ig=bg-cg,$e=bg+cg,dg=Ad|256,te=b[(520+(dg<<2)|0)>>2]*b[(se+(dg<<2)|0)>>2],eg=Ad|768,Ff=b[(520+(eg<<2)|0)>>2]*b[(se+(eg<<2)|0)>>2],Jg=te-Ff,of=te+Ff,af=Qd-16|0;b[af>>2]=$e+of;b[(Qd-8|0)>>2]=$e-of;b[(Qd-12|0)>>2]=Ig+Jg;b[(Qd-4|0)>>2]=Ig-Jg;var fg=Ad+1|0,gg=a[Jd>>2],Gf=b[(520+(fg<<2)|0)>>2]*b[(gg+(fg<<2)|0)>>2],hg=Ad+513|0,ig=b[(520+
+(hg<<2)|0)>>2]*b[(gg+(hg<<2)|0)>>2],Pb=Gf-ig,Hf=Gf+ig,bf=Ad+257|0,Rd=b[(520+(bf<<2)|0)>>2]*b[(gg+(bf<<2)|0)>>2],jg=Ad+769|0,ue=b[(520+(jg<<2)|0)>>2]*b[(gg+(jg<<2)|0)>>2],ve=Rd-ue,Ie=Rd+ue;b[(Qd+2032|0)>>2]=Hf+Ie;b[(Qd+2040|0)>>2]=Hf-Ie;b[(Qd+2036|0)>>2]=Pb+ve;b[(Qd+2044|0)>>2]=Pb-ve;var Vc=hd-1|0;0<(hd|0)?(Qd=af,hd=Vc,Fd=2):Fd=3;break;case 3:ib[a[(Df+85820|0)>>2]](Gg,512);break b}n=88;break;case 85:n=2==(pc|0)?86:88;break;case 86:var ud=be+1|0,If=1023,n=87;break;case 87:var Pa=Ra+(be<<12)+(If<<2)|
+0,bc=b[Pa>>2],Kg=Ra+(ud<<12)+(If<<2)|0,Tc=b[Kg>>2];b[Pa>>2]=0.7071067690849304*(bc+Tc);b[Kg>>2]=0.7071067690849304*(bc-Tc);var rK=If-1|0;0<(If|0)?(If=rK,n=87):n=88;break;case 88:var ke=b[(qe|0)>>2];b[je>>2]=ke*ke;var kg=511,n=89;break;case 89:var Zg=512-kg|0,od=b[(Ra+(be<<12)+(Zg<<2)|0)>>2],jh=b[(Ra+(be<<12)+((kg+512|0)<<2)|0)>>2];b[(Ja+(Zg<<2)|0)>>2]=0.5*(od*od+jh*jh);var lg=kg-1|0;if(0<(kg|0))kg=lg,n=89;else var Je=11,kh=0,n=90;break;case 90:var lh=kh+b[(Ja+(Je<<2)|0)>>2],VA=Je+1|0;513>(VA|0)?(Je=
+VA,kh=lh,n=90):n=91;break;case 91:b[(M+27620+(pc<<2)|0)>>2]=lh;if(0==(He|0))n=93;else var pf=0,n=92;break;case 92:var le=He+90936+(pc<<13)+(pf<<3)|0;oa[(He+123704+(Aa<<15)+(pc<<13)+(pf<<3)|0)>>3]=oa[le>>3];oa[le>>3]=b[(Ja+(pf<<2)|0)>>2];var mh=pf+1|0;513>(mh|0)?(pf=mh,n=92):n=93;break;case 93:n=re?94:97;break;case 94:var nh=M+27612+(pc<<2)|0;b[(M+27804+(Aa<<3)+(pc<<2)|0)>>2]=b[nh>>2];var Lg=a[xd>>2],Jf=0,WA=0,n=95;break;case 95:var Sd=WA+b[(Ja+(Jf<<2)|0)>>2]*b[(Lg+724+(Jf<<2)|0)>>2],qf=Jf+1|0;512>
+(qf|0)?(Jf=qf,WA=Sd,n=95):n=96;break;case 96:b[nh>>2]=8.974871343596633E-12*Sd;n=97;break;case 97:var Gd=a[Ia>>2],On=Gd+2148|0,Kf=a[On>>2],Mg=0<(Kf|0);if(Mg)var Md=0,Lf=0,n=98;else var Ng=0,XA=0,n=103;break;case 98:var mg=a[(Gd+1716+(Lf<<2)|0)>>2];if(0<(mg|0))var ng=Md,oh=0,ph=0,mi=0,n=99;else var Mf=Md,qh=0,$g=0,n=101;break;case 99:var Og=b[(Ja+(ng<<2)|0)>>2],ah=oh+Og,rh=ph>2]=qh;b[(Ha+(Lf<<2)|0)>>2]=$g;b[(Ta+(Lf<<2)|0)>>2]=qh*b[(Gd+512+(Lf<<2)|0)>>2];var Pg=Lf+1|0;(Pg|0)<(Kf|0)?(Md=Mf,Lf=Pg,n=98):n=102;break;case 102:var Hh=b[Eg>>2],Ng=b[Dg>>2],XA=Hh,n=103;break;case 103:var Qg=XA+Ng;if(0>2],Jh=b[Kc>>2],oi=20*(2*(Ih>2]-1|0)+a[(Gd+1720|0)>>2]|0))&-1,Kh=oi&255,bh=8<(oi|0)?8:Kh,n=105;break;case 105:l[Ge]=bh;var Nf=Kf-1|0,cf=b[Eg>>
+2],rf=Ng+cf;if(1<(Nf|0))var Ke=1,th=0,ce=rf,pi=cf,n=106;else var og=1,pg=0,qg=rf,n=111;break;case 106:var Le=Ke+1|0,uh=b[(Ta+(Le<<2)|0)>>2],Lh=ce+uh,n=0>2],Hd=b[(Ha+(Ke<<2)|0)>>2],Nh=Mh>2],Xc=20*(3*(Nh>2]-1|0)+a[(Gd+1716+(Ke<<2)|0)>>2]|0)+a[(Gd+1716+(Le<<2)|0)>>2]|0))&-1,qi=Xc&255;l[Ua+Ke|0]=8<(Xc|0)?8:qi;n=108;break;case 108:var ri=pi+uh;(Le|0)<(Nf|0)?(th=Ke,Ke=Le,ce=ri,pi=
+uh,n=106):n=110;break;case 109:l[Ua+Ke|0]=0;n=108;break;case 110:var Oh=2<(Nf|0)?Nf:2,vh=Oh-1|0,og=Oh,pg=vh,qg=ri,n=111;break;case 111:n=0>2],Qh=b[(Ha+(og<<2)|0)>>2],wh=20*(2*(Ph>2]-1|0)+a[(Gd+1716+(og<<2)|0)>>2]|0))&-1,Rh=wh&255;l[Ua+og|0]=8<(wh|0)?8:Rh;n=114;break;case 113:l[Ua+og|0]=0;n=114;break;case 114:if(Mg)n=115;else var kc=0,n=117;break;case 115:var bd=Gd+2156|0,Kd=M+27796+(be<<2)|0,id=0,Me=0,n=
+118;break;case 116:64>(si|0)?(kc=si,n=117):n=151;break;case 117:var rg=kc+1|0,kd=((64<(rg|0)?rg:64)-kc|0)<<2;ra(ob+(pc<<8)+(kc<<2)|0,0,kd);ra(hb+(pc<<8)+(kc<<2)|0,0,kd);n=151;break;case 118:var ti=b[(Gd+(id<<2)|0)>>2]*b[Yg>>2],Uc=a[(Gd+1204+(id<<3)|0)>>2],Sh=a[(Gd+1204+(id<<3)+4|0)>>2],ui=a[(6840+((l[Ua+id|0]&255)<<2)|0)>>2],dh=l[Ua+Uc|0]&255,Rg=a[bd>>2],Ld=b[(Rg+(Me<<2)|0)>>2]*b[(ob+(pc<<8)+(Uc<<2)|0)>>2]*b[(6880+(dh<<2)|0)>>2],ed=Me+1|0,Vi=Uc+1|0;if((Vi|0)>(Sh|0))var xh=Ld,Jc=dh,gd=2,de=ed,n=135;
+else n=119;break;case 119:var Oe=b[17968],vd=b[17970],vi=Ld,nj=dh,Wi=2,Th=ed,Uh=Vi,wi=Rg,n=120;break;case 120:var oj=l[Ua+Uh|0]&255,Vh=oj+nj|0,ye=b[(wi+(Th<<2)|0)>>2]*b[(ob+(pc<<8)+(Uh<<2)|0)>>2]*b[(6880+(oj<<2)|0)>>2],Wh=Uh-id|0,sf=0>vi?0:vi,sg=0>ye?0:ye;if(0(Sh|0)?134:122;break;case 122:var xi=a[bd>>2],Pn=Wi+1|0,vi=Ab,nj=Vh,Wi=Pn,Th=Ob,Uh=tg,wi=xi,n=120;break;case 123:0
+sf,n=Db?125:126;break;case 125:var tf=sg/sf,n=127;break;case 126:tf=sf/sg;n=127;break;case 127:var eh=-Wh|0,n=((-1<(Wh|0)?Wh:eh)|0)>(ui|0)?131:128;break;case 128:n=tf>2],n=121;break;case 131:n=tf>2],Nd=xh*ug,Xi=a[Kd>>2],n=2==(Xi|0)?136:139;break;case 136:var yi=b[(M+21564+(pc<<8)+(id<<2)|0)>>2],zi=2*yi,n=0>2]=Yi;var Zi=yi,Xh=Yi,n=142;break;case 138:var pj=Nd,Ae=0.3*b[(ob+(pc<<8)+(id<<2)|0)>>2],qj=pj>2]=qj;Zi=yi;Xh=qj;n=142;break;case 139:var Pm=16*b[(M+22588+(pc<<8)+(id<<2)|0)>>2],rj=b[(M+21564+(pc<<8)+(id<<2)|0)>>2],Pe=2*rj,Rj=0>2]=oo;Zi=rj;Xh=oo;n=142;break;case 142:var xf=M+21564+(pc<<8)+(id<<2)|0;b[(M+22588+(pc<<8)+(id<<2)|0)>>2]=Zi;b[xf>>2]=Nd;var Vf=ug*b[(Ha+(id<<2)|0)>>2]*b[(Gd+256+(id<<2)|0)>>2],Qn=hb+(pc<<8)+(id<<2)|0;if(Xh>Vf)n=143;else var Rn=Xh,n=144;break;case 143:Rn=b[Qn>>2]=Vf;n=144;break;case 144:if(1>2]=Dh,n=146;break;case 146:var Wf=b[(ob+
+(pc<<8)+(id<<2)|0)>>2];if(zg>Wf)n=147;else var ze=zg,n=148;break;case 147:ze=b[Qn>>2]=Wf;n=148;break;case 148:n=1>ti?149:150;break;case 149:b[Qn>>2]=ti*ze;n=150;break;case 150:var si=id+1|0;(si|0)<(a[On>>2]|0)?(id=si,Me=de,n=118):n=116;break;case 151:var Sn=pc+1|0;(Sn|0)<(Hb|0)?(pc=Sn,n=81):n=152;break;case 152:n=1==(a[pb>>2]|0)?153:155;break;case 153:n=2==(a[(nb+4|0)>>2]+a[Bb>>2]|0)?154:155;break;case 154:YA(yb,hb|0,tb+768|0,a[(M+85796|0)>>2]+212|0,La,b[xa>>2],a[(tb+2148|0)>>2]);n=155;break;case 155:var tj=
+Ca|0,uj=Va|0;if(Ze)var vg=0,n=156;else n=159;break;case 156:var Tj=ob+(vg<<8)|0,Ai=hb+(vg<<8)|0;Xo(a[Ia>>2]|0,Tj,Ai,M+26636+(244*vg&-1)|0,M+25660+(244*vg&-1)|0);Xo(a[Ia>>2]+4320|0,Tj,Ai,tj,uj);var Sg=0,n=157;break;case 157:var Uj=b[(Ca+(Sg<<2)|0)>>2],Vj=0.015625*b[(Va+(Sg<<2)|0)>>2];b[(M+26636+(244*vg&-1)+88+(12*Sg&-1)|0)>>2]=Uj;b[(M+25660+(244*vg&-1)+88+(12*Sg&-1)|0)>>2]=Vj;b[(M+26636+(244*vg&-1)+88+(12*Sg&-1)+4|0)>>2]=Uj;b[(M+25660+(244*vg&-1)+88+(12*Sg&-1)+4|0)>>2]=Vj;b[(M+26636+(244*vg&-1)+88+
+(12*Sg&-1)+8|0)>>2]=Uj;b[(M+25660+(244*vg&-1)+88+(12*Sg&-1)+8|0)>>2]=Vj;var po=Sg+1|0;13>(po|0)?(Sg=po,n=157):n=158;break;case 158:var qo=vg+1|0;(qo|0)<(Hb|0)?(vg=qo,n=156):n=159;break;case 159:var ro=0==(a[(a[Ia>>2]+6500|0)>>2]|0),ih=Ha,Fk=Ta,Ag=Sa|0,Bg=Ha|0,sl=Ha+4|0,Uf=M+84908|0,Wj=Ta|0,yg=Ta+4|0,Wg=a[Bb>>2],tl=hb|0,ul=tb+2928|0,sK=M+85796|0,ii=tb+4308|0,vl=Ca+4|0,Gk=Va+4|0,Xj=Ca+8|0,wl=Va+8|0,Hk=Ca+12|0,Ik=Va+12|0,ZA=Ca+16|0,xl=Va+16|0,$i=Ca+20|0,$A=Va+20|0,yl=Ca+24|0,Yj=Va+24|0,zl=Ca+28|0,aB=
+Va+28|0,Al=Ca+32|0,bB=Va+32|0,cB=Ca+36|0,Jk=Va+36|0,dB=Ca+40|0,Bl=Va+40|0,Zj=Ca+44|0,Cl=Va+44|0,aj=Ca+48|0,Bi=Va+48|0,Of=(Wg|0)!=(-a[(nb+4|0)>>2]|0),wb=0,n=160;break;case 160:n=Ze?161:223;break;case 161:var Kk=0==(wb|0),ak=lb+(516*wb&-1)|0,we=0,n=164;break;case 162:n=Ze?163:258;break;case 163:var vj=xb|0,Tg=0,n=232;break;case 164:var Ci=we&1,n=0!=(a[(nb+(Ci<<2)|0)>>2]|0)&ro?165:168;break;case 165:n=Kk?166:222;break;case 166:var Dl=a[(a[Ia>>2]+4308|0)>>2];if(0<(Dl|0))var El=0,n=167;else n=222;break;
+case 167:b[(M+24636+(we<<8)+(El<<2)|0)>>2]=b[(M+23612+(we<<8)+(El<<2)|0)>>2];var wj=El+1|0;(wj|0)<(Dl|0)?(El=wj,n=167):n=222;break;case 168:n=Kk&2>(we|0)?169:170;break;case 169:b:for(var ki=M,Fl=sb+(3072*Ci&-1)|0,Eh=we,xj=R,Di=0,Di=1;;)switch(Di){case 1:var Ei=xj+(Eh<<2)|0,Mj=ki+85820|0,zh=0,Gl=Fl,Di=2;break;case 2:var Ni=Fl+(zh<<10)+512|0,Yh=zh+1|0,bk=Math.imul(Yh,12582912)>>16,Zh=31,Fi=Ni,Di=3;break;case 3:var Pf=l[(Zh<<2)+13992|0]&255,Ba=Pf+bk|0,Gi=a[Ei>>2],yj=b[(8+(Pf<<2)|0)>>2]*b[(Gi+(Ba<<2)|
+0)>>2],eB=b[(8+((127-Pf|0)<<2)|0)>>2]*b[(Gi+((Ba+128|0)<<2)|0)>>2],zj=yj-eB,Lb=yj+eB,ck=b[(8+((Pf+64|0)<<2)|0)>>2]*b[(Gi+((Ba+64|0)<<2)|0)>>2],dk=b[(8+((63-Pf|0)<<2)|0)>>2]*b[(Gi+((Ba+192|0)<<2)|0)>>2],$h=ck-dk,Qm=ck+dk,Hl=Fi-16|0;b[Hl>>2]=Lb+Qm;b[(Fi-8|0)>>2]=Lb-Qm;b[(Fi-12|0)>>2]=zj+$h;b[(Fi-4|0)>>2]=zj-$h;var wd=a[Ei>>2],hc=b[(8+((Pf+1|0)<<2)|0)>>2]*b[(wd+((Ba+1|0)<<2)|0)>>2],Aj=b[(8+((126-Pf|0)<<2)|0)>>2]*b[(wd+((Ba+129|0)<<2)|0)>>2],Rm=hc-Aj,ek=hc+Aj,Bj=b[(8+((Pf+65|0)<<2)|0)>>2]*b[(wd+((Ba+
+65|0)<<2)|0)>>2],Sm=b[(8+((62-Pf|0)<<2)|0)>>2]*b[(wd+((Ba+193|0)<<2)|0)>>2],cd=Bj-Sm,Tm=Bj+Sm;b[(Fi+496|0)>>2]=ek+Tm;b[(Fi+504|0)>>2]=ek-Tm;b[(Fi+500|0)>>2]=Rm+cd;b[(Fi+508|0)>>2]=Rm-cd;var Um=Zh-1|0;0<(Zh|0)?(Zh=Um,Fi=Hl,Di=3):Di=4;break;case 4:ib[a[Mj>>2]](Gl|0,128);var Il=Gl+1024|0;3>(Yh|0)?(zh=Yh,Gl=Il,Di=2):Di=5;break;case 5:break b}n=170;break;case 170:n=2==(we|0)?171:173;break;case 171:var Lk=Ci+1|0,ai=255,n=172;break;case 172:var bi=sb+(3072*Ci&-1)+(wb<<10)+(ai<<2)|0,Hi=b[bi>>2],Mk=sb+(3072*
+Lk&-1)+(wb<<10)+(ai<<2)|0,Vm=b[Mk>>2];b[bi>>2]=0.7071067690849304*(Hi+Vm);b[Mk>>2]=0.7071067690849304*(Hi-Vm);var Nk=ai-1|0;0<(ai|0)?(ai=Nk,n=172):n=173;break;case 173:var Ok=b[(sb+(3072*Ci&-1)+(wb<<10)|0)>>2];b[ak>>2]=Ok*Ok;var Cj=127,n=174;break;case 174:var Wm=128-Cj|0,Jl=b[(sb+(3072*Ci&-1)+(wb<<10)+(Wm<<2)|0)>>2],Kl=b[(sb+(3072*Ci&-1)+(wb<<10)+((Cj+128|0)<<2)|0)>>2];b[(lb+(516*wb&-1)+(Wm<<2)|0)>>2]=0.5*(Jl*Jl+Kl*Kl);var tK=Cj-1|0;0<(Cj|0)?(Cj=tK,n=174):n=175;break;case 175:var df=a[Ia>>2];ra(ih,
+0,256);ra(Fk,0,256);var Xm=df+4308|0,Dj=a[Xm>>2],bj=0<(Dj|0);if(bj)var ci=0,Pk=0,n=176;else var Ym=0,di=0,n=181;break;case 176:var Qk=a[(df+3876+(ci<<2)|0)>>2];if(0<(Qk|0))var Ll=0,Ml=0,fk=Pk,gk=0,n=177;else var Zm=0,Rk=0,Nl=Pk,n=179;break;case 177:var hk=b[(lb+(516*wb&-1)+(fk<<2)|0)>>2],$m=Ml+hk,an=Ll>2]=Rk;b[(Ha+(ci<<2)|0)>>
+2]=Zm;b[(Ta+(ci<<2)|0)>>2]=Rk*b[(df+2672+(ci<<2)|0)>>2];var Ej=ci+1|0;(Ej|0)<(Dj|0)?(ci=Ej,Pk=Nl,n=176):n=180;break;case 180:var uK=b[yg>>2],Ym=b[Wj>>2],di=uK,n=181;break;case 181:var cj=di+Ym;if(0>2],Gj=b[sl>>2],Ql=20*(2*(cn>2]-1|0)+a[(df+3880|0)>>2]|0))&-1,dn=Ql&255,Fj=8<(Ql|0)?8:dn,n=183;break;case 183:l[Ag]=Fj;var ik=Dj-1|0;if(1<(ik|0))var Ii=1,Sk=0,Rl=cj,jk=di,n=184;else var Ug=1,Ji=0,kk=cj,n=189;break;
+case 184:var Tk=Ii+1|0,lk=b[(Ta+(Tk<<2)|0)>>2],Ks=Rl+lk,n=0>2],en=b[(Ha+(Ii<<2)|0)>>2],ji=Xg>2],Kj=20*(3*(ji>2]-1|0)+a[(df+3876+(Ii<<2)|0)>>2]|0)+a[(df+3876+(Tk<<2)|0)>>2]|0))&-1,$k=Kj&255;l[Sa+Ii|0]=8<(Kj|0)?8:$k;n=186;break;case 186:var fB=jk+lk;(Tk|0)<(ik|0)?(Sk=Ii,Ii=Tk,Rl=fB,jk=lk,n=184):n=188;break;case 187:l[Sa+Ii|0]=0;n=186;break;case 188:var vk=2<(ik|0)?ik:2,xk=vk-
+1|0,Ug=vk,Ji=xk,kk=fB,n=189;break;case 189:n=0>2],Oj=b[(Ha+(Ug<<2)|0)>>2],Oi=20*(2*(Nj>2]-1|0)+a[(df+3876+(Ug<<2)|0)>>2]|0))&-1,gi=Oi&255;l[Sa+Ug|0]=8<(Oi|0)?8:gi;n=192;break;case 191:l[Sa+Ug|0]=0;n=192;break;case 192:if(bj)n=193;else var Uk=0,n=195;break;case 193:var fn=df+4316|0,Ah=0,gn=0,n=196;break;case 194:64>(Sl|0)?(Uk=Sl,n=195):n=222;break;case 195:var Pi=Uk+1|0,gB=((64<(Pi|0)?Pi:64)-Uk|0)<<2;ra(ob+
+(we<<8)+(Uk<<2)|0,0,gB);ra(hb+(we<<8)+(Uk<<2)|0,0,gB);n=222;break;case 196:var Ls=a[(df+3364+(Ah<<3)|0)>>2],hi=a[(df+3364+(Ah<<3)+4|0)>>2],Bk=a[(6840+((l[Sa+Ah|0]&255)<<2)|0)>>2],hn=b[(df+2160+(Ah<<2)|0)>>2]*b[Uf>>2],Ms=l[Sa+Ls|0]&255,mk=a[fn>>2],jn=b[(mk+(gn<<2)|0)>>2]*b[(ob+(we<<8)+(Ls<<2)|0)>>2]*b[(6880+(Ms<<2)|0)>>2],hB=gn+1|0,Ri=Ls+1|0;if((Ri|0)>(hi|0))var lj=Ms,iB=2,kn=jn,Pj=hB,n=213;else n=197;break;case 197:var jm=b[17968],ko=b[17970],tk=Ms,Ns=2,Tn=jn,Un=hB,Vk=Ri,jB=mk,n=198;break;case 198:var Vn=
+l[Sa+Vk|0]&255,kB=Vn+tk|0,lB=b[(jB+(Un<<2)|0)>>2]*b[(ob+(we<<8)+(Vk<<2)|0)>>2]*b[(6880+(Vn<<2)|0)>>2],Os=Vk-Ah|0,fh=0>Tn?0:Tn,Hj=0>lB?0:lB;if(0(hi|0)?212:200;break;case 200:var lm=a[fn>>2],al=Ns+1|0,tk=kB,Ns=al,Tn=nk,Un=mB,Vk=ln,jB=lm,n=198;break;case 201:0fh,n=Ki?203:204;break;case 203:var mn=Hj/fh,n=205;break;case 204:mn=fh/Hj;n=205;break;case 205:var nm=-Os|0,n=((-1<(Os|
+0)?Os:nm)|0)>(Bk|0)?209:206;break;case 206:n=mn>2],n=199;break;case 209:n=mn>2],Tl=kn*nB,Ul=hb+(we<<8)+(Ah<<2)|0;b[Ul>>2]=Tl;var fj=M+23612+(we<<8)+(Ah<<2)|0;b[(M+24636+(we<<8)+(Ah<<
+2)|0)>>2]=b[fj>>2];b[fj>>2]=Tl;var oB=nB*b[(Ha+(Ah<<2)|0)>>2]*b[(df+2416+(Ah<<2)|0)>>2];if(Tl>oB)n=214;else var Wn=Tl,n=215;break;case 214:Wn=b[Ul>>2]=oB;n=215;break;case 215:if(1>2]=um,n=217;break;case 217:var gj=b[(ob+(we<<8)+(Ah<<2)|0)>>2];if(nn>gj)n=218;else var Xn=nn,n=219;break;case 218:Xn=b[Ul>>2]=gj;n=219;break;case 219:n=1>hn?220:221;break;case 220:b[Ul>>2]=hn*Xn;n=221;break;case 221:var Sl=Ah+1|0;(Sl|0)<(a[Xm>>2]|0)?(Ah=
+Sl,gn=Pj,n=196):n=194;break;case 222:var pB=we+1|0;(pB|0)<(Hb|0)?(we=pB,n=164):n=223;break;case 223:n=1!=(a[pb>>2]|0)|Of?225:224;break;case 224:YA(yb,tl,ul,a[sK>>2]+468|0,La,b[xa>>2],a[ii>>2]);n=225;break;case 225:n=Ze?226:231;break;case 226:if(ro)var fd=0,n=227;else var jd=0,n=230;break;case 227:n=0==(a[(nb+((fd&1)<<2)|0)>>2]|0)?228:229;break;case 228:Xo(a[Ia>>2]+2160|0,ob+(fd<<8)|0,hb+(fd<<8)|0,tj,uj);b[(M+26636+(244*fd&-1)+88+(wb<<2)|0)>>2]=b[tj>>2];b[(M+25660+(244*fd&-1)+88+(wb<<2)|0)>>2]=b[uj>>
+2];b[(M+26636+(244*fd&-1)+100+(wb<<2)|0)>>2]=b[vl>>2];b[(M+25660+(244*fd&-1)+100+(wb<<2)|0)>>2]=b[Gk>>2];b[(M+26636+(244*fd&-1)+112+(wb<<2)|0)>>2]=b[Xj>>2];b[(M+25660+(244*fd&-1)+112+(wb<<2)|0)>>2]=b[wl>>2];b[(M+26636+(244*fd&-1)+124+(wb<<2)|0)>>2]=b[Hk>>2];b[(M+25660+(244*fd&-1)+124+(wb<<2)|0)>>2]=b[Ik>>2];b[(M+26636+(244*fd&-1)+136+(wb<<2)|0)>>2]=b[ZA>>2];b[(M+25660+(244*fd&-1)+136+(wb<<2)|0)>>2]=b[xl>>2];b[(M+26636+(244*fd&-1)+148+(wb<<2)|0)>>2]=b[$i>>2];b[(M+25660+(244*fd&-1)+148+(wb<<2)|0)>>
+2]=b[$A>>2];b[(M+26636+(244*fd&-1)+160+(wb<<2)|0)>>2]=b[yl>>2];b[(M+25660+(244*fd&-1)+160+(wb<<2)|0)>>2]=b[Yj>>2];b[(M+26636+(244*fd&-1)+172+(wb<<2)|0)>>2]=b[zl>>2];b[(M+25660+(244*fd&-1)+172+(wb<<2)|0)>>2]=b[aB>>2];b[(M+26636+(244*fd&-1)+184+(wb<<2)|0)>>2]=b[Al>>2];b[(M+25660+(244*fd&-1)+184+(wb<<2)|0)>>2]=b[bB>>2];b[(M+26636+(244*fd&-1)+196+(wb<<2)|0)>>2]=b[cB>>2];b[(M+25660+(244*fd&-1)+196+(wb<<2)|0)>>2]=b[Jk>>2];b[(M+26636+(244*fd&-1)+208+(wb<<2)|0)>>2]=b[dB>>2];b[(M+25660+(244*fd&-1)+208+(wb<<
+2)|0)>>2]=b[Bl>>2];b[(M+26636+(244*fd&-1)+220+(wb<<2)|0)>>2]=b[Zj>>2];b[(M+25660+(244*fd&-1)+220+(wb<<2)|0)>>2]=b[Cl>>2];b[(M+26636+(244*fd&-1)+232+(wb<<2)|0)>>2]=b[aj>>2];b[(M+25660+(244*fd&-1)+232+(wb<<2)|0)>>2]=b[Bi>>2];n=229;break;case 229:var qB=fd+1|0;(qB|0)<(Hb|0)?(fd=qB,n=227):n=231;break;case 230:Xo(a[Ia>>2]+2160|0,ob+(jd<<8)|0,hb+(jd<<8)|0,tj,uj);b[(M+26636+(244*jd&-1)+88+(wb<<2)|0)>>2]=b[tj>>2];b[(M+25660+(244*jd&-1)+88+(wb<<2)|0)>>2]=b[uj>>2];b[(M+26636+(244*jd&-1)+100+(wb<<2)|0)>>2]=
+b[vl>>2];b[(M+25660+(244*jd&-1)+100+(wb<<2)|0)>>2]=b[Gk>>2];b[(M+26636+(244*jd&-1)+112+(wb<<2)|0)>>2]=b[Xj>>2];b[(M+25660+(244*jd&-1)+112+(wb<<2)|0)>>2]=b[wl>>2];b[(M+26636+(244*jd&-1)+124+(wb<<2)|0)>>2]=b[Hk>>2];b[(M+25660+(244*jd&-1)+124+(wb<<2)|0)>>2]=b[Ik>>2];b[(M+26636+(244*jd&-1)+136+(wb<<2)|0)>>2]=b[ZA>>2];b[(M+25660+(244*jd&-1)+136+(wb<<2)|0)>>2]=b[xl>>2];b[(M+26636+(244*jd&-1)+148+(wb<<2)|0)>>2]=b[$i>>2];b[(M+25660+(244*jd&-1)+148+(wb<<2)|0)>>2]=b[$A>>2];b[(M+26636+(244*jd&-1)+160+(wb<<2)|
+0)>>2]=b[yl>>2];b[(M+25660+(244*jd&-1)+160+(wb<<2)|0)>>2]=b[Yj>>2];b[(M+26636+(244*jd&-1)+172+(wb<<2)|0)>>2]=b[zl>>2];b[(M+25660+(244*jd&-1)+172+(wb<<2)|0)>>2]=b[aB>>2];b[(M+26636+(244*jd&-1)+184+(wb<<2)|0)>>2]=b[Al>>2];b[(M+25660+(244*jd&-1)+184+(wb<<2)|0)>>2]=b[bB>>2];b[(M+26636+(244*jd&-1)+196+(wb<<2)|0)>>2]=b[cB>>2];b[(M+25660+(244*jd&-1)+196+(wb<<2)|0)>>2]=b[Jk>>2];b[(M+26636+(244*jd&-1)+208+(wb<<2)|0)>>2]=b[dB>>2];b[(M+25660+(244*jd&-1)+208+(wb<<2)|0)>>2]=b[Bl>>2];b[(M+26636+(244*jd&-1)+220+
+(wb<<2)|0)>>2]=b[Zj>>2];b[(M+25660+(244*jd&-1)+220+(wb<<2)|0)>>2]=b[Cl>>2];b[(M+26636+(244*jd&-1)+232+(wb<<2)|0)>>2]=b[aj>>2];b[(M+25660+(244*jd&-1)+232+(wb<<2)|0)>>2]=b[Bi>>2];var Lj=jd+1|0;(Lj|0)<(Hb|0)?(jd=Lj,n=230):n=231;break;case 231:var on=wb+1|0;3>(on|0)?(wb=on,n=160):n=162;break;case 232:var vK=M+27780+(Tg<<2)|0,Vl=0,n=234;break;case 233:if(Ze)var Wl=0,n=257;else n=258;break;case 234:var el=M+25660+(244*Tg&-1)+88+(12*Vl&-1)|0,Yn=Gb+(244*Tg&-1)+88+(12*Vl&-1)+4|0,rB=Gb+(244*Tg&-1)+88+(12*Vl&
+-1)+8|0,gh=0,n=235;break;case 235:var Ij=0.8*b[(M+25660+(244*Tg&-1)+88+(12*Vl&-1)+(gh<<2)|0)>>2],Li=0<(gh|0);if(Li)n=236;else var pn=rB,n=237;break;case 236:pn=xb+((gh-1|0)<<2)|0;n=237;break;case 237:var qn=b[pn>>2],sB=a[(Oa+(Tg<<4)+(gh<<2)|0)>>2],n=1<(sB|0)?239:238;break;case 238:if(1==(a[(Oa+(Tg<<4)+((gh+1|0)<<2)|0)>>2]|0))n=239;else var Zn=Ij,n=241;break;case 239:0>2]|0)?249:246;break;case 246:Li?n=247:(dj=Ij,n=254);break;case 247:3==(a[(Oa+(Tg<<4)+((gh-1|0)<<2)|0)>>2]|0)?n=248:(dj=Ij,n=254);break;case 248:if(1==(gh|0))n=250;else if(2==(gh|0))n=251;else var rn=qn,n=252;break;case 249:rn=b[Yn>>2];n=252;break;case 250:rn=b[rB>>2];n=252;break;case 251:rn=b[vj>>2];
+n=252;break;case 252:0>2]=b[(mb+(12*Tg&-1)+(gh<<2)|0)>>2]*(dj(jj|0)?(gh=jj,n=235):n=255;break;case 255:var sn=el;a[sn>>2]=a[Ya>>2];a[sn+4>>2]=a[Ya+4>>2];a[sn+8>>2]=a[Ya+8>>2];var Xl=Vl+1|0;13>(Xl|0)?(Vl=Xl,n=234):n=256;break;case 256:var $n=Tg+1|0;($n|0)<(Hb|0)?(Tg=$n,n=232):n=233;break;case 257:a[(M+27780+(Wl<<2)|0)>>2]=a[(Oa+(Wl<<4)+8|0)>>2];
+var Vg=Wl+1|0;(Vg|0)<(Hb|0)?(Wl=Vg,n=257):n=258;break;case 258:var so=a[qb>>2];if(0<(so|0))var tn=0,Mi=Wg,n=259;else n=266;break;case 259:var pk=M+27796+(tn<<2)|0,Yl=a[pk>>2],n=0==(Mi|0)?261:260;break;case 260:var Wk=2==(Yl|0)?3:0,un=Yl,n=264;break;case 261:0==(Yl|0)?n=262:3==(Yl|0)?n=263:(Wk=2,un=Yl,n=264);break;case 262:a[pk>>2]=1;Wk=2;un=1;n=264;break;case 263:un=Wk=a[pk>>2]=2;n=264;break;case 264:a[(Ma+(tn<<2)|0)>>2]=un;a[pk>>2]=Wk;var fi=tn+1|0,n=(fi|0)<(so|0)?265:266;break;case 265:var Am=a[(nb+
+(fi<<2)|0)>>2],tn=fi,Mi=Am,n=259;break;case 266:n=Ze?267:302;break;case 267:var yk=N-8|0,Fm=Ma+4|0,jl=0==(ga|0),Xk=0,n=268;break;case 268:n=1<(Xk|0)?269:273;break;case 269:n=2==(a[Ma>>2]|0)?271:270;break;case 270:if(2==(a[Fm>>2]|0))n=271;else var kj=0,n=272;break;case 271:kj=2;n=272;break;case 272:var Yk=Ga+(976*Aa&-1)+(488*(Xk-2|0)&-1)|0,Ak=kj,Qi=yk,n=274;break;case 273:var Km=a[(Ma+(Xk<<2)|0)>>2],Yk=wa+(976*Aa&-1)+(488*Xk&-1)|0,Ak=Km,Qi=Qa,n=274;break;case 274:var Yo=b[Uf>>2];if(2==(Ak|0))var Zk=
+0,to=309.07000732421875,n=275;else var uo=0,vo=281.0574951171875,n=292;break;case 275:var Si=48744+(Zk<<2)|0,Ck=b[(Yk+88+(12*Zk&-1)|0)>>2];if(0>2];Ui>Ti?n=277:(vn=to,n=280);break;case 277:var pl=b[Si>>2],n=Ui>1E10*Ti?278:279;break;case 278:vn=to+23.02585092994046*pl;n=280;break;case 279:var Nm=0.30102999566398114*pd(Ui/Ti),vn=to+pl*Nm,n=280;break;case 280:var rl=b[(Yk+88+(12*Zk&-1)+4|0)>>2];if(0>2];mj>Dk?n=282:(wn=vn,n=285);break;case 282:var jo=b[Si>>2],n=mj>1E10*Dk?284:283;break;case 283:var Qo=0.30102999566398114*pd(mj/Dk),wn=vn+jo*Qo,n=285;break;case 284:wn=vn+23.02585092994046*jo;n=285;break;case 285:var lo=b[(Yk+88+(12*Zk&-1)+8|0)>>2];if(0>2];wk>uk?n=287:(wo=wn,n=290);break;case 287:var cl=b[Si>>2],n=wk>1E10*uk?289:288;break;case 288:var Ro=
+0.30102999566398114*pd(wk/uk),wo=wn+cl*Ro,n=290;break;case 289:wo=wn+23.02585092994046*cl;n=290;break;case 290:var tm=Zk+1|0;12>tm>>>0?(Zk=tm,to=wo,n=275):n=291;break;case 291:var vm=b[(Qi+(Xk<<2)|0)>>2]=wo,n=299;break;case 292:var dl=b[(Yk+(uo<<2)|0)>>2];if(0>2];ij>hj?n=294:(xo=vo,n=297);break;case 294:var fl=b[(48792+(uo<<2)|0)>>2],n=ij>1E10*hj?295:296;break;case 295:xo=vo+23.02585092994046*fl;n=297;break;case 296:var gl=
+0.30102999566398114*pd(ij/hj),xo=vo+fl*gl,n=297;break;case 297:var zm=uo+1|0;21>zm>>>0?(uo=zm,vo=xo,n=292):n=298;break;case 298:vm=b[(Qi+(Xk<<2)|0)>>2]=xo;n=299;break;case 299:n=jl?301:300;break;case 300:oa[(ga+189240+(Aa<<5)+(Xk<<3)|0)>>3]=vm;n=301;break;case 301:var hl=Xk+1|0;(hl|0)<(Hb|0)?(Xk=hl,n=268):n=302;break;case 302:m=qa;break a}}g=1==(a[za>>2]|0)?26:28;break;case 26:var zk=b[(z+(ca<<4)+12|0)>>2],Ps=b[(z+(ca<<4)+8|0)>>2]+zk,kl=D+(ca<<2)|0;b[kl>>2]=Ps;g=0>2]=
+zk/Ps;g=28;break;case 28:var ll=a[na>>2];if(0<(ll|0))var yo=0,g=29;else var Gm=ll,g=30;break;case 29:a[(k+304+(10504*ca&-1)+(5252*yo&-1)+4788|0)>>2]=a[(G+(yo<<2)|0)>>2];a[(k+304+(10504*ca&-1)+(5252*yo&-1)+4792|0)>>2]=0;var Hm=yo+1|0,Im=a[na>>2];(Hm|0)<(Im|0)?(yo=Hm,g=29):(Gm=Im,g=30);break;case 30:var ml=ca+1|0,Jm=a[Y>>2];(ml|0)<(Jm|0)?(ca=ml,va=Gm,g=22):(ta=Jm,g=31);break;case 31:var Zo=k+85796|0,xn=a[Zo>>2],g=0==(a[(xn|0)>>2]|0)?32:33;break;case 32:b[(xn+8|0)>>2]=1;g=51;break;case 33:var nl=b[(k+
+27804|0)>>2],Lm=b[(k+27812|0)>>2];if(2==(a[(k+72|0)>>2]|0))g=34;else var ol=Lm,Mm=nl,g=35;break;case 34:var Nn=b[(k+27808|0)>>2],ol=b[(k+27816|0)>>2],Mm=Nn,g=35;break;case 35:var ql=Lm+ol,Qs=nl+Mm;if(2==(ta|0))g=36;else var Om=Qs,g=37;break;case 36:Om=Qs>ql?Qs:ql;g=37;break;case 37:var fm=0.5*Om*b[(xn+4|0)>>2],g=0.03125>2],g=1>Oo?40:39;break;case 39:b[Rs>>2]=1;g=42;break;case 40:var Bn=b[(xn+12|0)>>2],g=Oo>2]=Bn;g=42;break;
+case 42:b[(a[Zo>>2]+12|0)>>2]=1;g=51;break;case 43:var yn=31.98*fm+6.25E-4,$o=xn+8|0,Ss=b[$o>>2],g=Ss>2]=(0.075*yn+0.925)*Ss;var Cn=a[Zo>>2]+8|0,g=b[Cn>>2]>2]=yn;g=50;break;case 46:var Ts=b[(xn+12|0)>>2],g=Ts>2]=yn;g=50;break;case 48:g=Ss>2]=Ts;g=50;break;case 50:b[(a[Zo>>2]+12|0)>>2]=yn;g=51;break;case 51:TA(k,a[Q>>2],e);var ao=k+84756|0;a[ao>>2]=0;g=0==(a[(k+80|0)>>2]|0)?53:52;break;
+case 52:a[ao>>2]=2;var zn=1,g=63;break;case 53:1==(a[(k+180|0)>>2]|0)?g=54:(zn=0,g=63);break;case 54:var Us=a[Y>>2],g=0<(Us|0)?55:60;break;case 55:var gm=a[(k+72|0)>>2];if(0<(gm|0))var ap=0,Po=0,hm=0,g=58;else g=60;break;case 56:var im=ap+1|0;(im|0)<(Us|0)?(ap=im,Po=Vs,hm=Ws,g=58):g=59;break;case 57:var Xs,Ys,zo,Vs=Ys+b[(u+(ap<<3)+(zo<<2)|0)>>2],Ws=Xs+b[(w+(ap<<3)+(zo<<2)|0)>>2],Dn=zo+1|0;(Dn|0)<(gm|0)?(zo=Dn,Ys=Vs,Xs=Ws,g=57):g=56;break;case 58:zo=0;Ys=Po;Xs=hm;g=57;break;case 59:Vs>Ws?(zn=0,g=63):
+g=60;break;case 60:var km=Us-1|0;(a[(k+5092|0)>>2]|0)==(a[(k+10344|0)>>2]|0)?g=61:(zn=0,g=63);break;case 61:(a[(k+304+(10504*km&-1)+4788|0)>>2]|0)==(a[(k+304+(10504*km&-1)+10040|0)>>2]|0)?g=62:(zn=0,g=63);break;case 62:a[ao>>2]=2;zn=1;g=63;break;case 63:var bp=zn?u:w,mm=(zn?v:p)|0,ys=bp|0,En=k+140|0,g=0==(a[En>>2]|0)?74:64;break;case 64:var Zl=k+85804|0,g=0==(a[Zl>>2]|0)?74:65;break;case 65:var Fn=a[Y>>2],g=0<(Fn|0)?66:74;break;case 66:var pm=k+72|0,Bh=0,Zs=a[pm>>2],qm=Fn,g=67;break;case 67:if(0<
+(Zs|0))g=68;else var rm=Zs,$s=qm,g=73;break;case 68:var zs=D+(Bh<<2)|0,Jj=0,g=69;break;case 69:oa[(a[Zl>>2]+90904+(Bh<<3)|0)>>3]=0;oa[(a[Zl>>2]+90920+(Bh<<3)|0)>>3]=b[zs>>2];a[(a[Zl>>2]+203288+(Bh<<3)+(Jj<<2)|0)>>2]=a[(k+304+(10504*Bh&-1)+(5252*Jj&-1)+4788|0)>>2];oa[(a[Zl>>2]+189240+(Bh<<5)+(Jj<<3)|0)>>3]=b[(bp+(Bh<<3)+(Jj<<2)|0)>>2];ha(a[Zl>>2]+54040+(9216*Bh&-1)+(4608*Jj&-1)|0,k+304+(10504*Bh&-1)+(5252*Jj&-1)|0,2304);g=2==(a[ao>>2]|0)?70:71;break;case 70:var So=Jj+2|0,To=a[Zl>>2];oa[(To+197144+
+(Bh<<5)+(Jj<<3)|0)>>3]=oa[(To+197144+(Bh<<5)+(So<<3)|0)>>3];var sm=a[Zl>>2];ha(sm+123704+(Bh<<15)+(Jj<<13)|0,sm+123704+(Bh<<15)+(So<<13)|0,8192);g=71;break;case 71:var Gn=Jj+1|0,Uo=a[pm>>2];(Gn|0)<(Uo|0)?(Jj=Gn,g=69):g=72;break;case 72:var As=a[Y>>2],rm=Uo,$s=As,g=73;break;case 73:var wm=Bh+1|0;(wm|0)<($s|0)?(Bh=wm,Zs=rm,qm=$s,g=67):g=74;break;case 74:var Hn=a[(k+104|0)>>2],g=0==(Hn|0)|3==(Hn|0)?75:83;break;case 75:var In=k+39760|0,xm=b[In>>2];b[(k+39756|0)>>2]=xm;var ym=k+39764|0,Jn=b[ym>>2];b[In>>
+2]=Jn;var Kn=k+39768|0,Bm=b[Kn>>2];b[ym>>2]=Bm;var Ln=k+39772|0,Cm=b[Ln>>2];b[Kn>>2]=Cm;var il=k+39776|0,Dm=b[il>>2];b[Ln>>2]=Dm;var Em=k+39780|0,Mn=b[Em>>2];b[il>>2]=Mn;var tB=k+39784|0,uB=b[tB>>2];b[Em>>2]=uB;var vB=k+39788|0,wB=b[vB>>2];b[tB>>2]=wB;var xB=k+39792|0,yB=b[xB>>2];b[vB>>2]=yB;var zB=k+39796|0,AB=b[zB>>2];b[xB>>2]=AB;var BB=k+39800|0,CB=b[BB>>2];b[zB>>2]=CB;var DB=k+39804|0,EB=b[DB>>2];b[BB>>2]=EB;var FB=k+39808|0,GB=b[FB>>2];b[DB>>2]=GB;var HB=k+39812|0,IB=b[HB>>2];b[FB>>2]=IB;var JB=
+k+39816|0,KB=b[JB>>2];b[HB>>2]=KB;var LB=k+39820|0,MB=b[LB>>2];b[JB>>2]=MB;var NB=k+39824|0,OB=b[NB>>2];b[LB>>2]=OB;var PB=k+39828|0,QB=b[PB>>2];b[NB>>2]=QB;var cp=a[Y>>2],RB=0<(cp|0),Ao=a[(k+72|0)>>2];if(RB&0<(Ao|0))var at=0,SB=0,g=78;else var bt=0,g=79;break;case 76:var TB=at+1|0;(TB|0)<(cp|0)?(at=TB,SB=ct,g=78):(bt=ct,g=79);break;case 77:var dt,dp,ct=dt+b[(bp+(at<<3)+(dp<<2)|0)>>2],UB=dp+1|0;(UB|0)<(Ao|0)?(dp=UB,dt=ct,g=77):g=76;break;case 78:dp=0;dt=SB;g=77;break;case 79:b[PB>>2]=bt;var Bs=0.9354900121688843*
+(yB+CB)+(0.7568249702453613*(wB+EB)+(0.5045499801635742*(uB+GB)+(0.23387250304222107*(Mn+IB)+(3.8980449615198E-17*(Dm+KB)+(-0.1559150069952011*(Cm+MB)+(-0.21623599529266357*(Bm+OB)+(-0.18920649588108063*(Jn+QB)+(AB+-0.10394349694252014*(xm+bt))))))))),Cs=(Math.imul(3350*cp&-1,Ao)|0)/Bs;if(RB&0<(Ao|0))var et=0,g=82;else g=83;break;case 80:var VB=et+1|0;(VB|0)<(cp|0)?(et=VB,g=82):g=83;break;case 81:var ep,WB=bp+(et<<3)+(ep<<2)|0;b[WB>>2]*=Cs;var XB=ep+1|0;(XB|0)<(Ao|0)?(ep=XB,g=81):g=80;break;case 82:ep=
+0;g=81;break;case 83:ib[a[(k+85812|0)>>2]](k,ys,A,mm);a:{var x=k,q=0,YB=m;m=m+8|0;for(q=1;;)switch(q){case 1:var Ds=YB,ZB=x+16|0,$B=x+84744|0,aC=a[$B>>2],q=0==(aC|0)?3:2;break;case 2:var bC=a[(ZB|0)>>2],cC=106152+(bC<<6)+(aC<<2)|0,dC=bC,q=4;break;case 3:var Es=a[(ZB|0)>>2],cC=x+120|0,dC=Es,q=4;break;case 4:var eC=x+84752|0,Fs=a[eC>>2],fC=x+64|0,Hs=a[fC>>2],ft=(((Math.imul((72E3*dC&-1)+72E3|0,a[cC>>2])|0)/(Hs|0)&-1)+Fs|0)<<3,gC=x+21320|0;Gs(x,a[gC>>2]);var rb=x+52128|0,hC=a[rb>>2];a[(x+39840+(48*hC&
+-1)+4|0)>>2]=0;var Ch=x+24|0;ra(x+39840+(48*hC&-1)+8|0,0,a[Ch>>2]);var gt=a[rb>>2],iC=a[(x+39840+(48*gt&-1)+4|0)>>2];if(16E3>(a[fC>>2]|0))var fp=iC,gp=12,jC=gt,q=5;else var hp=iC,ip=12,kC=gt,q=7;break;case 5:var ht=8-(fp&7)|0,it=(gp|0)<(ht|0)?gp:ht,jt=gp-it|0,lC=x+39840+(48*jC&-1)+8+(fp>>3)|0;l[lC]=(4094>>>(jt>>>0)<<(ht-it|0)|l[lC]&255)&255;var kt=it+fp|0,lt=a[rb>>2];0<(jt|0)?(fp=kt,gp=jt,jC=lt,q=5):q=6;break;case 6:a[(x+39840+(48*lt&-1)+4|0)>>2]=kt;var mC=lt,nC=kt,q=9;break;case 7:var mt=8-(hp&7)|
+0,nt=(ip|0)<(mt|0)?ip:mt,ot=ip-nt|0,oC=x+39840+(48*kC&-1)+8+(hp>>3)|0;l[oC]=(4095>>>(ot>>>0)<<(mt-nt|0)|l[oC]&255)&255;var pt=nt+hp|0,qt=a[rb>>2];0<(ot|0)?(hp=pt,ip=ot,kC=qt,q=7):q=8;break;case 8:a[(x+39840+(48*qt&-1)+4|0)>>2]=pt;mC=qt;nC=pt;q=9;break;case 9:var rt=x+16|0,Is=a[rt>>2],jp=nC,kp=1,pC=mC,q=10;break;case 10:var st=8-(jp&7)|0,tt=(kp|0)<(st|0)?kp:st,ut=kp-tt|0,qC=x+39840+(48*pC&-1)+8+(jp>>3)|0;l[qC]=(Is>>ut<<(st-tt|0)|l[qC]&255)&255;var rC=tt+jp|0,vt=a[rb>>2];0<(ut|0)?(jp=rC,kp=ut,pC=vt,
+q=10):q=11;break;case 11:var lp=a[(x+39840+(48*vt&-1)+4|0)>>2]=rC,mp=2,sC=vt,q=12;break;case 12:var wt=8-(lp&7)|0,xt=(mp|0)<(wt|0)?mp:wt,yt=mp-xt|0,tC=x+39840+(48*sC&-1)+8+(lp>>3)|0;l[tC]=(1>>>(yt>>>0)<<(wt-xt|0)|l[tC]&255)&255;var zt=xt+lp|0,At=a[rb>>2];0<(yt|0)?(lp=zt,mp=yt,sC=At,q=12):q=13;break;case 13:a[(x+39840+(48*At&-1)+4|0)>>2]=zt;var Bt=x+160|0,PA=0==(a[Bt>>2]|0)&1,np=zt,op=1,uC=At,q=14;break;case 14:var Ct=8-(np&7)|0,Dt=(op|0)<(Ct|0)?op:Ct,Et=op-Dt|0,vC=x+39840+(48*uC&-1)+8+(np>>3)|0;l[vC]=
+(PA>>>(Et>>>0)<<(Ct-Dt|0)|l[vC]&255)&255;var Ft=Dt+np|0,Gt=a[rb>>2];0<(Et|0)?(np=Ft,op=Et,uC=Gt,q=14):q=15;break;case 15:a[(x+39840+(48*Gt&-1)+4|0)>>2]=Ft;var QA=a[$B>>2],pp=Ft,qp=4,wC=Gt,q=16;break;case 16:var Ht=8-(pp&7)|0,It=(qp|0)<(Ht|0)?qp:Ht,Jt=qp-It|0,xC=x+39840+(48*wC&-1)+8+(pp>>3)|0;l[xC]=(QA>>Jt<<(Ht-It|0)|l[xC]&255)&255;var Kt=It+pp|0,Lt=a[rb>>2];0<(Jt|0)?(pp=Kt,qp=Jt,wC=Lt,q=16):q=17;break;case 17:a[(x+39840+(48*Lt&-1)+4|0)>>2]=Kt;var xK=a[(x+20|0)>>2],rp=Kt,sp=2,yC=Lt,q=18;break;case 18:var Mt=
+8-(rp&7)|0,Nt=(sp|0)<(Mt|0)?sp:Mt,Ot=sp-Nt|0,zC=x+39840+(48*yC&-1)+8+(rp>>3)|0;l[zC]=(xK>>Ot<<(Mt-Nt|0)|l[zC]&255)&255;var Pt=Nt+rp|0,Qt=a[rb>>2];0<(Ot|0)?(rp=Pt,sp=Ot,yC=Qt,q=18):q=19;break;case 19:a[(x+39840+(48*Qt&-1)+4|0)>>2]=Pt;var yK=a[eC>>2],tp=Pt,up=1,AC=Qt,q=20;break;case 20:var Rt=8-(tp&7)|0,St=(up|0)<(Rt|0)?up:Rt,Tt=up-St|0,BC=x+39840+(48*AC&-1)+8+(tp>>3)|0;l[BC]=(yK>>Tt<<(Rt-St|0)|l[BC]&255)&255;var Ut=St+tp|0,Vt=a[rb>>2];0<(Tt|0)?(tp=Ut,up=Tt,AC=Vt,q=20):q=21;break;case 21:a[(x+39840+
+(48*Vt&-1)+4|0)>>2]=Ut;var zK=a[(x+172|0)>>2],vp=Ut,wp=1,CC=Vt,q=22;break;case 22:var Wt=8-(vp&7)|0,Xt=(wp|0)<(Wt|0)?wp:Wt,Yt=wp-Xt|0,DC=x+39840+(48*CC&-1)+8+(vp>>3)|0;l[DC]=(zK>>Yt<<(Wt-Xt|0)|l[DC]&255)&255;var Zt=Xt+vp|0,$t=a[rb>>2];0<(Yt|0)?(vp=Zt,wp=Yt,CC=$t,q=22):q=23;break;case 23:a[(x+39840+(48*$t&-1)+4|0)>>2]=Zt;var AK=a[(x+180|0)>>2],xp=Zt,yp=2,EC=$t,q=24;break;case 24:var au=8-(xp&7)|0,bu=(yp|0)<(au|0)?yp:au,cu=yp-bu|0,FC=x+39840+(48*EC&-1)+8+(xp>>3)|0;l[FC]=(AK>>cu<<(au-bu|0)|l[FC]&255)&
+255;var du=bu+xp|0,eu=a[rb>>2];0<(cu|0)?(xp=du,yp=cu,EC=eu,q=24):q=25;break;case 25:a[(x+39840+(48*eu&-1)+4|0)>>2]=du;var BK=a[(x+84756|0)>>2],zp=du,Ap=2,GC=eu,q=26;break;case 26:var fu=8-(zp&7)|0,gu=(Ap|0)<(fu|0)?Ap:fu,hu=Ap-gu|0,HC=x+39840+(48*GC&-1)+8+(zp>>3)|0;l[HC]=(BK>>hu<<(fu-gu|0)|l[HC]&255)&255;var iu=gu+zp|0,ju=a[rb>>2];0<(hu|0)?(zp=iu,Ap=hu,GC=ju,q=26):q=27;break;case 27:a[(x+39840+(48*ju&-1)+4|0)>>2]=iu;var CK=a[(x+164|0)>>2],Bp=iu,Cp=1,IC=ju,q=28;break;case 28:var ku=8-(Bp&7)|0,lu=(Cp|
+0)<(ku|0)?Cp:ku,mu=Cp-lu|0,JC=x+39840+(48*IC&-1)+8+(Bp>>3)|0;l[JC]=(CK>>mu<<(ku-lu|0)|l[JC]&255)&255;var nu=lu+Bp|0,ou=a[rb>>2];0<(mu|0)?(Bp=nu,Cp=mu,IC=ou,q=28):q=29;break;case 29:a[(x+39840+(48*ou&-1)+4|0)>>2]=nu;var DK=a[(x+168|0)>>2],Dp=nu,Ep=1,KC=ou,q=30;break;case 30:var pu=8-(Dp&7)|0,qu=(Ep|0)<(pu|0)?Ep:pu,ru=Ep-qu|0,LC=x+39840+(48*KC&-1)+8+(Dp>>3)|0;l[LC]=(DK>>ru<<(pu-qu|0)|l[LC]&255)&255;var su=qu+Dp|0,tu=a[rb>>2];0<(ru|0)?(Dp=su,Ep=ru,KC=tu,q=30):q=31;break;case 31:a[(x+39840+(48*tu&-1)+
+4|0)>>2]=su;var EK=a[(x+176|0)>>2],Fp=su,Gp=2,MC=tu,q=32;break;case 32:var uu=8-(Fp&7)|0,vu=(Gp|0)<(uu|0)?Gp:uu,wu=Gp-vu|0,NC=x+39840+(48*MC&-1)+8+(Fp>>3)|0;l[NC]=(EK>>wu<<(uu-vu|0)|l[NC]&255)&255;var Hp=vu+Fp|0,Ip=a[rb>>2];0<(wu|0)?(Fp=Hp,Gp=wu,MC=Ip,q=32):q=33;break;case 33:var OC=x+39840+(48*Ip&-1)+4|0;a[OC>>2]=Hp;if(0==(a[Bt>>2]|0))var xu=Hp,q=36;else var yu=Hp,Jp=16,q=34;break;case 34:var PC=8-(yu&7)|0,QC=(Jp|0)<(PC|0)?Jp:PC,RC=Jp-QC|0,SC=QC+yu|0;0<(RC|0)?(yu=SC,Jp=RC,q=34):q=35;break;case 35:xu=
+a[OC>>2]=SC;q=36;break;case 36:var Bo=x+21312|0,TC=a[Bo>>2];if(1==(a[rt>>2]|0))var Kp=xu,Lp=9,UC=Ip,q=37;else var Mp=xu,Np=8,VC=Ip,q=104;break;case 37:var zu=8-(Kp&7)|0,Au=(Lp|0)<(zu|0)?Lp:zu,Bu=Lp-Au|0,WC=x+39840+(48*UC&-1)+8+(Kp>>3)|0;l[WC]=(TC>>Bu<<(zu-Au|0)|l[WC]&255)&255;var Op=Au+Kp|0,Pp=a[rb>>2];0<(Bu|0)?(Kp=Op,Lp=Bu,UC=Pp,q=37):q=38;break;case 38:a[(x+39840+(48*Pp&-1)+4|0)>>2]=Op;var Qp=x+72|0,XC=a[(x+21316|0)>>2];if(2==(a[Qp>>2]|0))var Rp=Op,Sp=3,YC=Pp,q=39;else var Tp=Op,Up=5,ZC=Pp,q=41;
+break;case 39:var Cu=8-(Rp&7)|0,Du=(Sp|0)<(Cu|0)?Sp:Cu,Eu=Sp-Du|0,$C=x+39840+(48*YC&-1)+8+(Rp>>3)|0;l[$C]=(XC>>Eu<<(Cu-Du|0)|l[$C]&255)&255;var Fu=Du+Rp|0,Gu=a[rb>>2];0<(Eu|0)?(Rp=Fu,Sp=Eu,YC=Gu,q=39):q=40;break;case 40:a[(x+39840+(48*Gu&-1)+4|0)>>2]=Fu;var Hu=Gu,aD=Fu,q=43;break;case 41:var Iu=8-(Tp&7)|0,Ju=(Up|0)<(Iu|0)?Up:Iu,Ku=Up-Ju|0,bD=x+39840+(48*ZC&-1)+8+(Tp>>3)|0;l[bD]=(XC>>Ku<<(Iu-Ju|0)|l[bD]&255)&255;var Lu=Ju+Tp|0,Mu=a[rb>>2];0<(Ku|0)?(Tp=Lu,Up=Ku,ZC=Mu,q=41):q=42;break;case 42:a[(x+39840+
+(48*Mu&-1)+4|0)>>2]=Lu;Hu=Mu;aD=Lu;q=43;break;case 43:var cD=a[Qp>>2];if(0<(cD|0))var bo=0,dD=Hu,eD=aD,q=44;else var xe=0,Vp=cD,Co=Hu,q=47;break;case 44:var FK=a[(x+21328+(bo<<4)|0)>>2],Wp=eD,Xp=1,fD=dD,q=45;break;case 45:var Nu=8-(Wp&7)|0,Ou=(Xp|0)<(Nu|0)?Xp:Nu,Pu=Xp-Ou|0,gD=x+39840+(48*fD&-1)+8+(Wp>>3)|0;l[gD]=(FK>>Pu<<(Nu-Ou|0)|l[gD]&255)&255;var Qu=Ou+Wp|0,Ru=a[rb>>2];0<(Pu|0)?(Wp=Qu,Xp=Pu,fD=Ru,q=45):q=46;break;case 46:a[(x+39840+(48*Ru&-1)+4|0)>>2]=Qu;var GK=a[(x+21328+(bo<<4)+4|0)>>2],Yp=Qu,
+Zp=1,hD=Ru,q=165;break;case 47:if(0<(Vp|0))q=48;else var iD=Vp,Su=Co,q=103;break;case 48:var Ne=0,jD=Co,kD=a[(x+39840+(48*Co&-1)+4|0)>>2],q=49;break;case 49:var HK=a[(x+304+(10504*xe&-1)+(5252*Ne&-1)+4844|0)>>2]+a[(x+304+(10504*xe&-1)+(5252*Ne&-1)+4768|0)>>2]|0,$p=kD,aq=12,lD=jD,q=50;break;case 50:var Tu=8-($p&7)|0,Uu=(aq|0)<(Tu|0)?aq:Tu,Vu=aq-Uu|0,mD=x+39840+(48*lD&-1)+8+($p>>3)|0;l[mD]=(HK>>Vu<<(Tu-Uu|0)|l[mD]&255)&255;var Wu=Uu+$p|0,Xu=a[rb>>2];0<(Vu|0)?($p=Wu,aq=Vu,lD=Xu,q=50):q=51;break;case 51:a[(x+
+39840+(48*Xu&-1)+4|0)>>2]=Wu;var IK=(a[(x+304+(10504*xe&-1)+(5252*Ne&-1)+4772|0)>>2]|0)/2&-1,bq=Wu,cq=9,nD=Xu,q=52;break;case 52:var Yu=8-(bq&7)|0,Zu=(cq|0)<(Yu|0)?cq:Yu,$u=cq-Zu|0,oD=x+39840+(48*nD&-1)+8+(bq>>3)|0;l[oD]=(IK>>$u<<(Yu-Zu|0)|l[oD]&255)&255;var av=Zu+bq|0,bv=a[rb>>2];0<($u|0)?(bq=av,cq=$u,nD=bv,q=52):q=53;break;case 53:a[(x+39840+(48*bv&-1)+4|0)>>2]=av;var JK=a[(x+304+(10504*xe&-1)+(5252*Ne&-1)+4780|0)>>2],dq=av,eq=8,pD=bv,q=54;break;case 54:var cv=8-(dq&7)|0,dv=(eq|0)<(cv|0)?eq:cv,
+ev=eq-dv|0,qD=x+39840+(48*pD&-1)+8+(dq>>3)|0;l[qD]=(JK>>ev<<(cv-dv|0)|l[qD]&255)&255;var fv=dv+dq|0,gv=a[rb>>2];0<(ev|0)?(dq=fv,eq=ev,pD=gv,q=54):q=55;break;case 55:a[(x+39840+(48*gv&-1)+4|0)>>2]=fv;var KK=a[(x+304+(10504*xe&-1)+(5252*Ne&-1)+4784|0)>>2],fq=fv,gq=4,rD=gv,q=56;break;case 56:var hv=8-(fq&7)|0,iv=(gq|0)<(hv|0)?gq:hv,jv=gq-iv|0,sD=x+39840+(48*rD&-1)+8+(fq>>3)|0;l[sD]=(KK>>jv<<(hv-iv|0)|l[sD]&255)&255;var hq=iv+fq|0,iq=a[rb>>2];0<(jv|0)?(fq=hq,gq=jv,rD=iq,q=56):q=57;break;case 57:var tD=
+x+39840+(48*iq&-1)+4|0;a[tD>>2]=hq;var uD=x+304+(10504*xe&-1)+(5252*Ne&-1)+4788|0;if(0==(a[uD>>2]|0))var kv=hq,jq=1,q=78;else var kq=hq,lq=1,vD=iq,q=58;break;case 58:var lv=8-(kq&7)|0,mv=(lq|0)<(lv|0)?lq:lv,nv=lq-mv|0,wD=x+39840+(48*vD&-1)+8+(kq>>3)|0;l[wD]=(1>>>(nv>>>0)<<(lv-mv|0)|l[wD]&255)&255;var ov=mv+kq|0,pv=a[rb>>2];0<(nv|0)?(kq=ov,lq=nv,vD=pv,q=58):q=59;break;case 59:a[(x+39840+(48*pv&-1)+4|0)>>2]=ov;var LK=a[uD>>2],mq=ov,nq=2,xD=pv,q=60;break;case 60:var qv=8-(mq&7)|0,rv=(nq|0)<(qv|0)?nq:
+qv,sv=nq-rv|0,yD=x+39840+(48*xD&-1)+8+(mq>>3)|0;l[yD]=(LK>>sv<<(qv-rv|0)|l[yD]&255)&255;var tv=rv+mq|0,uv=a[rb>>2];0<(sv|0)?(mq=tv,nq=sv,xD=uv,q=60):q=61;break;case 61:a[(x+39840+(48*uv&-1)+4|0)>>2]=tv;var MK=a[(x+304+(10504*xe&-1)+(5252*Ne&-1)+4792|0)>>2],oq=tv,pq=1,zD=uv,q=62;break;case 62:var vv=8-(oq&7)|0,wv=(pq|0)<(vv|0)?pq:vv,xv=pq-wv|0,AD=x+39840+(48*zD&-1)+8+(oq>>3)|0;l[AD]=(MK>>xv<<(vv-wv|0)|l[AD]&255)&255;var yv=wv+oq|0,zv=a[rb>>2];0<(xv|0)?(oq=yv,pq=xv,zD=zv,q=62):q=63;break;case 63:a[(x+
+39840+(48*zv&-1)+4|0)>>2]=yv;var BD=x+304+(10504*xe&-1)+(5252*Ne&-1)+4796|0,CD=a[BD>>2];if(14==(CD|0))q=64;else var DD=CD,ED=zv,FD=yv,q=65;break;case 64:a[BD>>2]=16;var GD=a[rb>>2],NK=a[(x+39840+(48*GD&-1)+4|0)>>2],DD=16,ED=GD,FD=NK,q=65;break;case 65:var qq=FD,rq=5,HD=ED,q=66;break;case 66:var Av=8-(qq&7)|0,Bv=(rq|0)<(Av|0)?rq:Av,Cv=rq-Bv|0,ID=x+39840+(48*HD&-1)+8+(qq>>3)|0;l[ID]=(DD>>Cv<<(Av-Bv|0)|l[ID]&255)&255;var Dv=Bv+qq|0,Ev=a[rb>>2];0<(Cv|0)?(qq=Dv,rq=Cv,HD=Ev,q=66):q=67;break;case 67:a[(x+
+39840+(48*Ev&-1)+4|0)>>2]=Dv;var JD=x+304+(10504*xe&-1)+(5252*Ne&-1)+4800|0,KD=a[JD>>2];if(14==(KD|0))q=68;else var LD=KD,MD=Ev,ND=Dv,q=69;break;case 68:a[JD>>2]=16;var OD=a[rb>>2],OK=a[(x+39840+(48*OD&-1)+4|0)>>2],LD=16,MD=OD,ND=OK,q=69;break;case 69:var sq=ND,tq=5,PD=MD,q=70;break;case 70:var Fv=8-(sq&7)|0,Gv=(tq|0)<(Fv|0)?tq:Fv,Hv=tq-Gv|0,QD=x+39840+(48*PD&-1)+8+(sq>>3)|0;l[QD]=(LD>>Hv<<(Fv-Gv|0)|l[QD]&255)&255;var Iv=Gv+sq|0,Jv=a[rb>>2];0<(Hv|0)?(sq=Iv,tq=Hv,PD=Jv,q=70):q=71;break;case 71:a[(x+
+39840+(48*Jv&-1)+4|0)>>2]=Iv;var PK=a[(x+304+(10504*xe&-1)+(5252*Ne&-1)+4808|0)>>2],uq=Iv,vq=3,RD=Jv,q=72;break;case 72:var Kv=8-(uq&7)|0,Lv=(vq|0)<(Kv|0)?vq:Kv,Mv=vq-Lv|0,SD=x+39840+(48*RD&-1)+8+(uq>>3)|0;l[SD]=(PK>>Mv<<(Kv-Lv|0)|l[SD]&255)&255;var Nv=Lv+uq|0,Ov=a[rb>>2];0<(Mv|0)?(uq=Nv,vq=Mv,RD=Ov,q=72):q=73;break;case 73:a[(x+39840+(48*Ov&-1)+4|0)>>2]=Nv;var QK=a[(x+304+(10504*xe&-1)+(5252*Ne&-1)+4812|0)>>2],wq=Nv,xq=3,TD=Ov,q=74;break;case 74:var Pv=8-(wq&7)|0,Qv=(xq|0)<(Pv|0)?xq:Pv,Rv=xq-Qv|
+0,UD=x+39840+(48*TD&-1)+8+(wq>>3)|0;l[UD]=(QK>>Rv<<(Pv-Qv|0)|l[UD]&255)&255;var Sv=Qv+wq|0,Tv=a[rb>>2];0<(Rv|0)?(wq=Sv,xq=Rv,TD=Tv,q=74):q=75;break;case 75:a[(x+39840+(48*Tv&-1)+4|0)>>2]=Sv;var RK=a[(x+304+(10504*xe&-1)+(5252*Ne&-1)+4816|0)>>2],yq=Sv,zq=3,VD=Tv,q=76;break;case 76:var Uv=8-(yq&7)|0,Vv=(zq|0)<(Uv|0)?zq:Uv,Wv=zq-Vv|0,WD=x+39840+(48*VD&-1)+8+(yq>>3)|0;l[WD]=(RK>>Wv<<(Uv-Vv|0)|l[WD]&255)&255;var Xv=Vv+yq|0,Yv=a[rb>>2];0<(Wv|0)?(yq=Xv,zq=Wv,VD=Yv,q=76):q=77;break;case 77:a[(x+39840+(48*
+Yv&-1)+4|0)>>2]=Xv;var XD=Yv,YD=Xv,q=96;break;case 78:var ZD=8-(kv&7)|0,$D=(jq|0)<(ZD|0)?jq:ZD,aE=jq-$D|0,Zv=$D+kv|0;0<(aE|0)?(kv=Zv,jq=aE,q=78):q=79;break;case 79:a[tD>>2]=Zv;var bE=x+304+(10504*xe&-1)+(5252*Ne&-1)+4796|0,cE=a[bE>>2];if(14==(cE|0))q=80;else var dE=cE,eE=iq,fE=Zv,q=81;break;case 80:a[bE>>2]=16;var gE=a[rb>>2],SK=a[(x+39840+(48*gE&-1)+4|0)>>2],dE=16,eE=gE,fE=SK,q=81;break;case 81:var Aq=fE,Bq=5,hE=eE,q=82;break;case 82:var $v=8-(Aq&7)|0,aw=(Bq|0)<($v|0)?Bq:$v,bw=Bq-aw|0,iE=x+39840+
+(48*hE&-1)+8+(Aq>>3)|0;l[iE]=(dE>>bw<<($v-aw|0)|l[iE]&255)&255;var cw=aw+Aq|0,dw=a[rb>>2];0<(bw|0)?(Aq=cw,Bq=bw,hE=dw,q=82):q=83;break;case 83:a[(x+39840+(48*dw&-1)+4|0)>>2]=cw;var jE=x+304+(10504*xe&-1)+(5252*Ne&-1)+4800|0,kE=a[jE>>2];if(14==(kE|0))q=84;else var lE=kE,mE=dw,nE=cw,q=85;break;case 84:a[jE>>2]=16;var oE=a[rb>>2],TK=a[(x+39840+(48*oE&-1)+4|0)>>2],lE=16,mE=oE,nE=TK,q=85;break;case 85:var Cq=nE,Dq=5,pE=mE,q=86;break;case 86:var ew=8-(Cq&7)|0,fw=(Dq|0)<(ew|0)?Dq:ew,gw=Dq-fw|0,qE=x+39840+
+(48*pE&-1)+8+(Cq>>3)|0;l[qE]=(lE>>gw<<(ew-fw|0)|l[qE]&255)&255;var hw=fw+Cq|0,iw=a[rb>>2];0<(gw|0)?(Cq=hw,Dq=gw,pE=iw,q=86):q=87;break;case 87:a[(x+39840+(48*iw&-1)+4|0)>>2]=hw;var rE=x+304+(10504*xe&-1)+(5252*Ne&-1)+4804|0,sE=a[rE>>2];if(14==(sE|0))q=88;else var tE=sE,uE=iw,vE=hw,q=89;break;case 88:a[rE>>2]=16;var wE=a[rb>>2],UK=a[(x+39840+(48*wE&-1)+4|0)>>2],tE=16,uE=wE,vE=UK,q=89;break;case 89:var Eq=vE,Fq=5,xE=uE,q=90;break;case 90:var jw=8-(Eq&7)|0,kw=(Fq|0)<(jw|0)?Fq:jw,lw=Fq-kw|0,yE=x+39840+
+(48*xE&-1)+8+(Eq>>3)|0;l[yE]=(tE>>lw<<(jw-kw|0)|l[yE]&255)&255;var mw=kw+Eq|0,nw=a[rb>>2];0<(lw|0)?(Eq=mw,Fq=lw,xE=nw,q=90):q=91;break;case 91:a[(x+39840+(48*nw&-1)+4|0)>>2]=mw;var VK=a[(x+304+(10504*xe&-1)+(5252*Ne&-1)+4824|0)>>2],Gq=mw,Hq=4,zE=nw,q=92;break;case 92:var ow=8-(Gq&7)|0,pw=(Hq|0)<(ow|0)?Hq:ow,qw=Hq-pw|0,AE=x+39840+(48*zE&-1)+8+(Gq>>3)|0;l[AE]=(VK>>qw<<(ow-pw|0)|l[AE]&255)&255;var rw=pw+Gq|0,sw=a[rb>>2];0<(qw|0)?(Gq=rw,Hq=qw,zE=sw,q=92):q=93;break;case 93:a[(x+39840+(48*sw&-1)+4|0)>>
+2]=rw;var WK=a[(x+304+(10504*xe&-1)+(5252*Ne&-1)+4828|0)>>2],Iq=rw,Jq=3,BE=sw,q=94;break;case 94:var tw=8-(Iq&7)|0,uw=(Jq|0)<(tw|0)?Jq:tw,vw=Jq-uw|0,CE=x+39840+(48*BE&-1)+8+(Iq>>3)|0;l[CE]=(WK>>vw<<(tw-uw|0)|l[CE]&255)&255;var ww=uw+Iq|0,xw=a[rb>>2];0<(vw|0)?(Iq=ww,Jq=vw,BE=xw,q=94):q=95;break;case 95:a[(x+39840+(48*xw&-1)+4|0)>>2]=ww;XD=xw;YD=ww;q=96;break;case 96:var XK=a[(x+304+(10504*xe&-1)+(5252*Ne&-1)+4832|0)>>2],Kq=YD,Lq=1,DE=XD,q=97;break;case 97:var yw=8-(Kq&7)|0,zw=(Lq|0)<(yw|0)?Lq:yw,Aw=
+Lq-zw|0,EE=x+39840+(48*DE&-1)+8+(Kq>>3)|0;l[EE]=(XK>>Aw<<(yw-zw|0)|l[EE]&255)&255;var Bw=zw+Kq|0,Cw=a[rb>>2];0<(Aw|0)?(Kq=Bw,Lq=Aw,DE=Cw,q=97):q=98;break;case 98:a[(x+39840+(48*Cw&-1)+4|0)>>2]=Bw;var YK=a[(x+304+(10504*xe&-1)+(5252*Ne&-1)+4836|0)>>2],Mq=Bw,Nq=1,FE=Cw,q=99;break;case 99:var Dw=8-(Mq&7)|0,Ew=(Nq|0)<(Dw|0)?Nq:Dw,Fw=Nq-Ew|0,GE=x+39840+(48*FE&-1)+8+(Mq>>3)|0;l[GE]=(YK>>Fw<<(Dw-Ew|0)|l[GE]&255)&255;var Gw=Ew+Mq|0,Hw=a[rb>>2];0<(Fw|0)?(Mq=Gw,Nq=Fw,FE=Hw,q=99):q=100;break;case 100:a[(x+39840+
+(48*Hw&-1)+4|0)>>2]=Gw;var ZK=a[(x+304+(10504*xe&-1)+(5252*Ne&-1)+4840|0)>>2],Oq=Gw,Pq=1,HE=Hw,q=101;break;case 101:var Iw=8-(Oq&7)|0,Jw=(Pq|0)<(Iw|0)?Pq:Iw,Kw=Pq-Jw|0,IE=x+39840+(48*HE&-1)+8+(Oq>>3)|0;l[IE]=(ZK>>Kw<<(Iw-Jw|0)|l[IE]&255)&255;var Lw=Jw+Oq|0,Qq=a[rb>>2];0<(Kw|0)?(Oq=Lw,Pq=Kw,HE=Qq,q=101):q=102;break;case 102:a[(x+39840+(48*Qq&-1)+4|0)>>2]=Lw;var JE=Ne+1|0,KE=a[Qp>>2];(JE|0)<(KE|0)?(Ne=JE,jD=Qq,kD=Lw,q=49):(iD=KE,Su=Qq,q=103);break;case 103:var LE=xe+1|0;if(2>(LE|0))xe=LE,Vp=iD,Co=Su,
+q=47;else var Do=Su,q=161;break;case 104:var Mw=8-(Mp&7)|0,Nw=(Np|0)<(Mw|0)?Np:Mw,Ow=Np-Nw|0,ME=x+39840+(48*VC&-1)+8+(Mp>>3)|0;l[ME]=(TC>>Ow<<(Mw-Nw|0)|l[ME]&255)&255;var Rq=Nw+Mp|0,Sq=a[rb>>2];0<(Ow|0)?(Mp=Rq,Np=Ow,VC=Sq,q=104):q=105;break;case 105:var NE=x+39840+(48*Sq&-1)+4|0;a[NE>>2]=Rq;var $K=a[(x+21316|0)>>2],Pw=x+72|0,OE=a[Pw>>2];if(0<(OE|0))var Tq=Rq,Uq=OE,PE=Sq,q=107;else q=106;break;case 106:a[NE>>2]=Rq;Do=Sq;q=161;break;case 107:var Qw=8-(Tq&7)|0,Rw=(Uq|0)<(Qw|0)?Uq:Qw,Sw=Uq-Rw|0,QE=x+
+39840+(48*PE&-1)+8+(Tq>>3)|0;l[QE]=($K>>Sw<<(Qw-Rw|0)|l[QE]&255)&255;var Tw=Rw+Tq|0,Vq=a[rb>>2];0<(Sw|0)?(Tq=Tw,Uq=Sw,PE=Vq,q=107):q=108;break;case 108:var aL=a[Pw>>2];a[(x+39840+(48*Vq&-1)+4|0)>>2]=Tw;if(0<(aL|0))var ef=0,RE=Vq,SE=Tw,q=109;else Do=Vq,q=161;break;case 109:var bL=a[(x+304+(5252*ef&-1)+4844|0)>>2]+a[(x+304+(5252*ef&-1)+4768|0)>>2]|0,Wq=SE,Xq=12,TE=RE,q=110;break;case 110:var Uw=8-(Wq&7)|0,Vw=(Xq|0)<(Uw|0)?Xq:Uw,Ww=Xq-Vw|0,UE=x+39840+(48*TE&-1)+8+(Wq>>3)|0;l[UE]=(bL>>Ww<<(Uw-Vw|0)|l[UE]&
+255)&255;var Xw=Vw+Wq|0,Yw=a[rb>>2];0<(Ww|0)?(Wq=Xw,Xq=Ww,TE=Yw,q=110):q=111;break;case 111:a[(x+39840+(48*Yw&-1)+4|0)>>2]=Xw;var cL=(a[(x+304+(5252*ef&-1)+4772|0)>>2]|0)/2&-1,Yq=Xw,Zq=9,VE=Yw,q=112;break;case 112:var Zw=8-(Yq&7)|0,$w=(Zq|0)<(Zw|0)?Zq:Zw,ax=Zq-$w|0,WE=x+39840+(48*VE&-1)+8+(Yq>>3)|0;l[WE]=(cL>>ax<<(Zw-$w|0)|l[WE]&255)&255;var bx=$w+Yq|0,cx=a[rb>>2];0<(ax|0)?(Yq=bx,Zq=ax,VE=cx,q=112):q=113;break;case 113:a[(x+39840+(48*cx&-1)+4|0)>>2]=bx;var dL=a[(x+304+(5252*ef&-1)+4780|0)>>2],$q=
+bx,ar=8,XE=cx,q=114;break;case 114:var dx=8-($q&7)|0,ex=(ar|0)<(dx|0)?ar:dx,fx=ar-ex|0,YE=x+39840+(48*XE&-1)+8+($q>>3)|0;l[YE]=(dL>>fx<<(dx-ex|0)|l[YE]&255)&255;var gx=ex+$q|0,hx=a[rb>>2];0<(fx|0)?($q=gx,ar=fx,XE=hx,q=114):q=115;break;case 115:a[(x+39840+(48*hx&-1)+4|0)>>2]=gx;var eL=a[(x+304+(5252*ef&-1)+4784|0)>>2],br=gx,cr=9,ZE=hx,q=116;break;case 116:var ix=8-(br&7)|0,jx=(cr|0)<(ix|0)?cr:ix,kx=cr-jx|0,$E=x+39840+(48*ZE&-1)+8+(br>>3)|0;l[$E]=(eL>>kx<<(ix-jx|0)|l[$E]&255)&255;var dr=jx+br|0,er=
+a[rb>>2];0<(kx|0)?(br=dr,cr=kx,ZE=er,q=116):q=117;break;case 117:var aF=x+39840+(48*er&-1)+4|0;a[aF>>2]=dr;var bF=x+304+(5252*ef&-1)+4788|0;if(0==(a[bF>>2]|0))var lx=dr,fr=1,q=138;else var gr=dr,hr=1,cF=er,q=118;break;case 118:var mx=8-(gr&7)|0,nx=(hr|0)<(mx|0)?hr:mx,ox=hr-nx|0,dF=x+39840+(48*cF&-1)+8+(gr>>3)|0;l[dF]=(1>>>(ox>>>0)<<(mx-nx|0)|l[dF]&255)&255;var px=nx+gr|0,qx=a[rb>>2];0<(ox|0)?(gr=px,hr=ox,cF=qx,q=118):q=119;break;case 119:a[(x+39840+(48*qx&-1)+4|0)>>2]=px;var fL=a[bF>>2],ir=px,jr=
+2,eF=qx,q=120;break;case 120:var rx=8-(ir&7)|0,sx=(jr|0)<(rx|0)?jr:rx,tx=jr-sx|0,fF=x+39840+(48*eF&-1)+8+(ir>>3)|0;l[fF]=(fL>>tx<<(rx-sx|0)|l[fF]&255)&255;var ux=sx+ir|0,vx=a[rb>>2];0<(tx|0)?(ir=ux,jr=tx,eF=vx,q=120):q=121;break;case 121:a[(x+39840+(48*vx&-1)+4|0)>>2]=ux;var gL=a[(x+304+(5252*ef&-1)+4792|0)>>2],kr=ux,lr=1,gF=vx,q=122;break;case 122:var wx=8-(kr&7)|0,xx=(lr|0)<(wx|0)?lr:wx,yx=lr-xx|0,hF=x+39840+(48*gF&-1)+8+(kr>>3)|0;l[hF]=(gL>>yx<<(wx-xx|0)|l[hF]&255)&255;var zx=xx+kr|0,Ax=a[rb>>
+2];0<(yx|0)?(kr=zx,lr=yx,gF=Ax,q=122):q=123;break;case 123:a[(x+39840+(48*Ax&-1)+4|0)>>2]=zx;var iF=x+304+(5252*ef&-1)+4796|0,jF=a[iF>>2];if(14==(jF|0))q=124;else var kF=jF,lF=Ax,mF=zx,q=125;break;case 124:a[iF>>2]=16;var nF=a[rb>>2],hL=a[(x+39840+(48*nF&-1)+4|0)>>2],kF=16,lF=nF,mF=hL,q=125;break;case 125:var mr=mF,nr=5,oF=lF,q=126;break;case 126:var Bx=8-(mr&7)|0,Cx=(nr|0)<(Bx|0)?nr:Bx,Dx=nr-Cx|0,pF=x+39840+(48*oF&-1)+8+(mr>>3)|0;l[pF]=(kF>>Dx<<(Bx-Cx|0)|l[pF]&255)&255;var Ex=Cx+mr|0,Fx=a[rb>>2];
+0<(Dx|0)?(mr=Ex,nr=Dx,oF=Fx,q=126):q=127;break;case 127:a[(x+39840+(48*Fx&-1)+4|0)>>2]=Ex;var qF=x+304+(5252*ef&-1)+4800|0,rF=a[qF>>2];if(14==(rF|0))q=128;else var sF=rF,tF=Fx,uF=Ex,q=129;break;case 128:a[qF>>2]=16;var vF=a[rb>>2],iL=a[(x+39840+(48*vF&-1)+4|0)>>2],sF=16,tF=vF,uF=iL,q=129;break;case 129:var or=uF,pr=5,wF=tF,q=130;break;case 130:var Gx=8-(or&7)|0,Hx=(pr|0)<(Gx|0)?pr:Gx,Ix=pr-Hx|0,xF=x+39840+(48*wF&-1)+8+(or>>3)|0;l[xF]=(sF>>Ix<<(Gx-Hx|0)|l[xF]&255)&255;var Jx=Hx+or|0,Kx=a[rb>>2];0<
+(Ix|0)?(or=Jx,pr=Ix,wF=Kx,q=130):q=131;break;case 131:a[(x+39840+(48*Kx&-1)+4|0)>>2]=Jx;var jL=a[(x+304+(5252*ef&-1)+4808|0)>>2],qr=Jx,rr=3,yF=Kx,q=132;break;case 132:var Lx=8-(qr&7)|0,Mx=(rr|0)<(Lx|0)?rr:Lx,Nx=rr-Mx|0,zF=x+39840+(48*yF&-1)+8+(qr>>3)|0;l[zF]=(jL>>Nx<<(Lx-Mx|0)|l[zF]&255)&255;var Ox=Mx+qr|0,Px=a[rb>>2];0<(Nx|0)?(qr=Ox,rr=Nx,yF=Px,q=132):q=133;break;case 133:a[(x+39840+(48*Px&-1)+4|0)>>2]=Ox;var kL=a[(x+304+(5252*ef&-1)+4812|0)>>2],sr=Ox,tr=3,AF=Px,q=134;break;case 134:var Qx=8-(sr&
+7)|0,Rx=(tr|0)<(Qx|0)?tr:Qx,Sx=tr-Rx|0,BF=x+39840+(48*AF&-1)+8+(sr>>3)|0;l[BF]=(kL>>Sx<<(Qx-Rx|0)|l[BF]&255)&255;var Tx=Rx+sr|0,Ux=a[rb>>2];0<(Sx|0)?(sr=Tx,tr=Sx,AF=Ux,q=134):q=135;break;case 135:a[(x+39840+(48*Ux&-1)+4|0)>>2]=Tx;var lL=a[(x+304+(5252*ef&-1)+4816|0)>>2],ur=Tx,vr=3,CF=Ux,q=136;break;case 136:var Vx=8-(ur&7)|0,Wx=(vr|0)<(Vx|0)?vr:Vx,Xx=vr-Wx|0,DF=x+39840+(48*CF&-1)+8+(ur>>3)|0;l[DF]=(lL>>Xx<<(Vx-Wx|0)|l[DF]&255)&255;var Yx=Wx+ur|0,Zx=a[rb>>2];0<(Xx|0)?(ur=Yx,vr=Xx,CF=Zx,q=136):q=137;
+break;case 137:a[(x+39840+(48*Zx&-1)+4|0)>>2]=Yx;var EF=Zx,FF=Yx,q=156;break;case 138:var GF=8-(lx&7)|0,HF=(fr|0)<(GF|0)?fr:GF,IF=fr-HF|0,$x=HF+lx|0;0<(IF|0)?(lx=$x,fr=IF,q=138):q=139;break;case 139:a[aF>>2]=$x;var JF=x+304+(5252*ef&-1)+4796|0,KF=a[JF>>2];if(14==(KF|0))q=140;else var LF=KF,MF=er,NF=$x,q=141;break;case 140:a[JF>>2]=16;var OF=a[rb>>2],mL=a[(x+39840+(48*OF&-1)+4|0)>>2],LF=16,MF=OF,NF=mL,q=141;break;case 141:var wr=NF,xr=5,PF=MF,q=142;break;case 142:var ay=8-(wr&7)|0,by=(xr|0)<(ay|0)?
+xr:ay,cy=xr-by|0,QF=x+39840+(48*PF&-1)+8+(wr>>3)|0;l[QF]=(LF>>cy<<(ay-by|0)|l[QF]&255)&255;var dy=by+wr|0,ey=a[rb>>2];0<(cy|0)?(wr=dy,xr=cy,PF=ey,q=142):q=143;break;case 143:a[(x+39840+(48*ey&-1)+4|0)>>2]=dy;var RF=x+304+(5252*ef&-1)+4800|0,SF=a[RF>>2];if(14==(SF|0))q=144;else var TF=SF,UF=ey,VF=dy,q=145;break;case 144:a[RF>>2]=16;var WF=a[rb>>2],nL=a[(x+39840+(48*WF&-1)+4|0)>>2],TF=16,UF=WF,VF=nL,q=145;break;case 145:var yr=VF,zr=5,XF=UF,q=146;break;case 146:var fy=8-(yr&7)|0,gy=(zr|0)<(fy|0)?zr:
+fy,hy=zr-gy|0,YF=x+39840+(48*XF&-1)+8+(yr>>3)|0;l[YF]=(TF>>hy<<(fy-gy|0)|l[YF]&255)&255;var iy=gy+yr|0,jy=a[rb>>2];0<(hy|0)?(yr=iy,zr=hy,XF=jy,q=146):q=147;break;case 147:a[(x+39840+(48*jy&-1)+4|0)>>2]=iy;var ZF=x+304+(5252*ef&-1)+4804|0,$F=a[ZF>>2];if(14==($F|0))q=148;else var aG=$F,bG=jy,cG=iy,q=149;break;case 148:a[ZF>>2]=16;var dG=a[rb>>2],oL=a[(x+39840+(48*dG&-1)+4|0)>>2],aG=16,bG=dG,cG=oL,q=149;break;case 149:var Ar=cG,Br=5,eG=bG,q=150;break;case 150:var ky=8-(Ar&7)|0,ly=(Br|0)<(ky|0)?Br:ky,
+my=Br-ly|0,fG=x+39840+(48*eG&-1)+8+(Ar>>3)|0;l[fG]=(aG>>my<<(ky-ly|0)|l[fG]&255)&255;var ny=ly+Ar|0,oy=a[rb>>2];0<(my|0)?(Ar=ny,Br=my,eG=oy,q=150):q=151;break;case 151:a[(x+39840+(48*oy&-1)+4|0)>>2]=ny;var pL=a[(x+304+(5252*ef&-1)+4824|0)>>2],Cr=ny,Dr=4,gG=oy,q=152;break;case 152:var py=8-(Cr&7)|0,qy=(Dr|0)<(py|0)?Dr:py,ry=Dr-qy|0,hG=x+39840+(48*gG&-1)+8+(Cr>>3)|0;l[hG]=(pL>>ry<<(py-qy|0)|l[hG]&255)&255;var sy=qy+Cr|0,ty=a[rb>>2];0<(ry|0)?(Cr=sy,Dr=ry,gG=ty,q=152):q=153;break;case 153:a[(x+39840+
+(48*ty&-1)+4|0)>>2]=sy;var qL=a[(x+304+(5252*ef&-1)+4828|0)>>2],Er=sy,Fr=3,iG=ty,q=154;break;case 154:var uy=8-(Er&7)|0,vy=(Fr|0)<(uy|0)?Fr:uy,wy=Fr-vy|0,jG=x+39840+(48*iG&-1)+8+(Er>>3)|0;l[jG]=(qL>>wy<<(uy-vy|0)|l[jG]&255)&255;var xy=vy+Er|0,yy=a[rb>>2];0<(wy|0)?(Er=xy,Fr=wy,iG=yy,q=154):q=155;break;case 155:a[(x+39840+(48*yy&-1)+4|0)>>2]=xy;EF=yy;FF=xy;q=156;break;case 156:var rL=a[(x+304+(5252*ef&-1)+4836|0)>>2],Gr=FF,Hr=1,kG=EF,q=157;break;case 157:var zy=8-(Gr&7)|0,Ay=(Hr|0)<(zy|0)?Hr:zy,By=
+Hr-Ay|0,lG=x+39840+(48*kG&-1)+8+(Gr>>3)|0;l[lG]=(rL>>By<<(zy-Ay|0)|l[lG]&255)&255;var Cy=Ay+Gr|0,Dy=a[rb>>2];0<(By|0)?(Gr=Cy,Hr=By,kG=Dy,q=157):q=158;break;case 158:a[(x+39840+(48*Dy&-1)+4|0)>>2]=Cy;var sL=a[(x+304+(5252*ef&-1)+4840|0)>>2],Ir=Cy,Jr=1,mG=Dy,q=159;break;case 159:var Ey=8-(Ir&7)|0,Fy=(Jr|0)<(Ey|0)?Jr:Ey,Gy=Jr-Fy|0,nG=x+39840+(48*mG&-1)+8+(Ir>>3)|0;l[nG]=(sL>>Gy<<(Ey-Fy|0)|l[nG]&255)&255;var Hy=Fy+Ir|0,Kr=a[rb>>2];0<(Gy|0)?(Ir=Hy,Jr=Gy,mG=Kr,q=159):q=160;break;case 160:a[(x+39840+(48*
+Kr&-1)+4|0)>>2]=Hy;var oG=ef+1|0;(oG|0)<(a[Pw>>2]|0)?(ef=oG,RE=Kr,SE=Hy,q=109):(Do=Kr,q=161);break;case 161:if(0==(a[Bt>>2]|0))var Iy=Do,q=163;else q=162;break;case 162:b:for(var tL=x,Eo=x+39840+(48*Do&-1)+8|0,An=0,An=1;;)switch(An){case 1:var $l=l[Eo+2|0]&255,Jy=0!=($l&128|0)?262140:196598,uL=Jy^32773,Ky=(0==((Jy^$l<<10)&65536|0)?Jy:uL)<<1,vL=Ky^32773,Ly=(0==((Ky^$l<<11)&65536|0)?Ky:vL)<<1,wL=Ly^32773,My=(0==((Ly^$l<<12)&65536|0)?Ly:wL)<<1,xL=My^32773,Ny=(0==((My^$l<<13)&65536|0)?My:xL)<<1,yL=Ny^
+32773,Oy=(0==((Ny^$l<<14)&65536|0)?Ny:yL)<<1,zL=Oy^32773,Py=(0==((Oy^$l<<15)&65536|0)?Oy:zL)<<1,AL=Py^32773,am=l[Eo+3|0]&255,Qy=(0==((Py^$l<<16)&65536|0)?Py:AL)<<1,BL=Qy^32773,Ry=(0==((Qy^am<<9)&65536|0)?Qy:BL)<<1,CL=Ry^32773,Sy=(0==((Ry^am<<10)&65536|0)?Ry:CL)<<1,DL=Sy^32773,Ty=(0==((Sy^am<<11)&65536|0)?Sy:DL)<<1,EL=Ty^32773,Uy=(0==((Ty^am<<12)&65536|0)?Ty:EL)<<1,FL=Uy^32773,Vy=(0==((Uy^am<<13)&65536|0)?Uy:FL)<<1,GL=Vy^32773,Wy=(0==((Vy^am<<14)&65536|0)?Vy:GL)<<1,HL=Wy^32773,Xy=(0==((Wy^am<<15)&
+65536|0)?Wy:HL)<<1,IL=Xy^32773,Yy=0==((Xy^am<<16)&65536|0)?Xy:IL,pG=a[(tL+24|0)>>2],JL=Yy&255,KL=Yy>>>8&255;if(6<(pG|0))var qG=Yy,Zy=6,An=2;else var rG=KL,sG=JL,An=4;break;case 2:var bm=l[Eo+Zy|0]&255,$y=qG<<1,LL=$y^32773,az=(0==((bm<<9^$y)&65536|0)?$y:LL)<<1,ML=az^32773,bz=(0==((az^bm<<10)&65536|0)?az:ML)<<1,NL=bz^32773,cz=(0==((bz^bm<<11)&65536|0)?bz:NL)<<1,OL=cz^32773,dz=(0==((cz^bm<<12)&65536|0)?cz:OL)<<1,PL=dz^32773,ez=(0==((dz^bm<<13)&65536|0)?dz:PL)<<1,QL=ez^32773,fz=(0==((ez^bm<<14)&65536|
+0)?ez:QL)<<1,RL=fz^32773,gz=(0==((fz^bm<<15)&65536|0)?fz:RL)<<1,SL=gz^32773,hz=0==((gz^bm<<16)&65536|0)?gz:SL,tG=Zy+1|0;(tG|0)<(pG|0)?(qG=hz,Zy=tG,An=2):An=3;break;case 3:var TL=hz&255,rG=hz>>>8&255,sG=TL,An=4;break;case 4:l[Eo+4|0]=rG;l[Eo+5|0]=sG;break b}Iy=a[rb>>2];q=163;break;case 163:var uG=(Iy+1|0)&255;a[rb>>2]=uG;a[(x+39840+(48*uG&-1)|0)>>2]=a[(x+39840+(48*Iy&-1)|0)>>2]+ft|0;var Qf=x+52132|0,q=(a[rb>>2]|0)==(a[Qf>>2]|0)?164:171;break;case 164:Oc(x,141240,(S=m,m=m+1|0,m=m+7>>3<<3,a[S>>2]=0,
+S));q=171;break;case 165:var iz=8-(Yp&7)|0,jz=(Zp|0)<(iz|0)?Zp:iz,kz=Zp-jz|0,vG=x+39840+(48*hD&-1)+8+(Yp>>3)|0;l[vG]=(GK>>kz<<(iz-jz|0)|l[vG]&255)&255;var lz=jz+Yp|0,mz=a[rb>>2];0<(kz|0)?(Yp=lz,Zp=kz,hD=mz,q=165):q=166;break;case 166:a[(x+39840+(48*mz&-1)+4|0)>>2]=lz;var UL=a[(x+21328+(bo<<4)+8|0)>>2],Lr=lz,Mr=1,wG=mz,q=167;break;case 167:var nz=8-(Lr&7)|0,oz=(Mr|0)<(nz|0)?Mr:nz,pz=Mr-oz|0,xG=x+39840+(48*wG&-1)+8+(Lr>>3)|0;l[xG]=(UL>>pz<<(nz-oz|0)|l[xG]&255)&255;var qz=oz+Lr|0,rz=a[rb>>2];0<(pz|0)?
+(Lr=qz,Mr=pz,wG=rz,q=167):q=168;break;case 168:a[(x+39840+(48*rz&-1)+4|0)>>2]=qz;var VL=a[(x+21328+(bo<<4)+12|0)>>2],Nr=qz,Or=1,yG=rz,q=169;break;case 169:var sz=8-(Nr&7)|0,tz=(Or|0)<(sz|0)?Or:sz,uz=Or-tz|0,zG=x+39840+(48*yG&-1)+8+(Nr>>3)|0;l[zG]=(VL>>uz<<(sz-tz|0)|l[zG]&255)&255;var vz=tz+Nr|0,Pr=a[rb>>2];0<(uz|0)?(Nr=vz,Or=uz,yG=Pr,q=169):q=170;break;case 170:a[(x+39840+(48*Pr&-1)+4|0)>>2]=vz;var AG=bo+1|0,BG=a[Qp>>2];(AG|0)<(BG|0)?(bo=AG,dD=Pr,eD=vz,q=44):(xe=0,Vp=BG,Co=Pr,q=47);break;case 171:var WL=
+a[Ch>>2]<<3,Qr=x+72|0,q=1==(a[rt>>2]|0)?174:172;break;case 172:if(0<(a[Qr>>2]|0))q=173;else var wz=0,q=241;break;case 173:var hh=x+300|0,vf=x+296|0,wg=x+292|0,ej=x+284|0,XL=x+21464|0,CG=0,wf=0,q=203;break;case 174:var cm=x+300|0,qk=x+296|0,rk=x+292|0,co=x+284|0,YL=x+21464|0,xz=0,Rf=0,yz=a[Qr>>2],q=175;break;case 175:if(0<(yz|0))var DG=xz,Sf=0,q=176;else var zz=xz,EG=yz,q=202;break;case 176:var eo=x+304+(10504*Rf&-1)+(5252*Sf&-1)|0,Fo=a[(x+304+(10504*Rf&-1)+(5252*Sf&-1)+4784|0)>>2],Az=a[(11760+(Fo<<
+2)|0)>>2],FG=a[(11632+(Fo<<2)|0)>>2],GG=x+304+(10504*Rf&-1)+(5252*Sf&-1)+4868|0,Rr=a[GG>>2];if(0<(Rr|0))q=177;else var Sr=0,Tr=0,q=187;break;case 177:if(12>(Fo-4|0)>>>0)var Bz=0,Cz=0,HG=Rr,q=178;else var IG=0,Dz=0,q=186;break;case 178:var JG=a[(x+304+(10504*Rf&-1)+(5252*Sf&-1)+4608+(Cz<<2)|0)>>2];if(-1==(JG|0))var Ez=Bz,Fz=HG,q=185;else var Ur=Az,q=179;break;case 179:var KG=a[cm>>2];if(0==(KG|0))q=180;else var Vr=KG,q=183;break;case 180:a[cm>>2]=8;var Gz=a[qk>>2]+1|0;a[qk>>2]=Gz;var LG=a[Qf>>2];if((a[(x+
+39840+(48*LG&-1)|0)>>2]|0)==(a[rk>>2]|0))q=181;else var MG=Gz,q=182;break;case 181:ha(a[co>>2]+Gz|0,x+39840+(48*LG&-1)+8|0,a[Ch>>2]);var NG=a[Ch>>2],OG=a[qk>>2]+NG|0;a[qk>>2]=OG;a[rk>>2]=a[rk>>2]+(NG<<3)|0;a[Qf>>2]=(a[Qf>>2]+1|0)&255;MG=OG;q=182;break;case 182:l[a[co>>2]+MG|0]=0;Vr=a[cm>>2];q=183;break;case 183:var Hz=(Ur|0)<(Vr|0)?Ur:Vr,Iz=Ur-Hz|0,PG=Vr-Hz|0;a[cm>>2]=PG;var QG=a[co>>2]+a[qk>>2]|0;l[QG]=(JG>>Iz<>2]=a[rk>>2]+Hz|0;0<(Iz|0)?(Ur=Iz,q=179):q=184;break;case 184:var ZL=
+a[GG>>2],Ez=Bz+Az|0,Fz=ZL,q=185;break;case 185:var Jz=Cz+1|0;(Jz|0)<(Fz|0)?(Bz=Ez,Cz=Jz,HG=Fz,q=178):(Sr=Ez,Tr=Jz,q=187);break;case 186:var RG=(-1==(a[(x+304+(10504*Rf&-1)+(5252*Sf&-1)+4608+(Dz<<2)|0)>>2]|0)?0:Az)+IG|0,SG=Dz+1|0;(SG|0)<(Rr|0)?(IG=RG,Dz=SG,q=186):(Sr=RG,Tr=Rr,q=187);break;case 187:var TG=x+304+(10504*Rf&-1)+(5252*Sf&-1)+4860|0,UG=a[TG>>2];if((Tr|0)<(UG|0))var Kz=Sr,Lz=Tr,Mz=UG,q=188;else var VG=Sr,q=198;break;case 188:var WG=a[(x+304+(10504*Rf&-1)+(5252*Sf&-1)+4608+(Lz<<2)|0)>>2];
+if(-1==(WG|0))var Nz=Kz,Oz=Mz,q=197;else q=189;break;case 189:if(4==(Fo|0)|0==(Fo|0))var XG=Mz,q=196;else var Wr=FG,q=190;break;case 190:var YG=a[cm>>2];if(0==(YG|0))q=191;else var Xr=YG,q=194;break;case 191:a[cm>>2]=8;var Pz=a[qk>>2]+1|0;a[qk>>2]=Pz;var ZG=a[Qf>>2];if((a[(x+39840+(48*ZG&-1)|0)>>2]|0)==(a[rk>>2]|0))q=192;else var $G=Pz,q=193;break;case 192:ha(a[co>>2]+Pz|0,x+39840+(48*ZG&-1)+8|0,a[Ch>>2]);var aH=a[Ch>>2],bH=a[qk>>2]+aH|0;a[qk>>2]=bH;a[rk>>2]=a[rk>>2]+(aH<<3)|0;a[Qf>>2]=(a[Qf>>2]+
+1|0)&255;$G=bH;q=193;break;case 193:l[a[co>>2]+$G|0]=0;Xr=a[cm>>2];q=194;break;case 194:var Qz=(Wr|0)<(Xr|0)?Wr:Xr,Rz=Wr-Qz|0,cH=Xr-Qz|0;a[cm>>2]=cH;var dH=a[co>>2]+a[qk>>2]|0;l[dH]=(WG>>Rz<>2]=a[rk>>2]+Qz|0;0<(Rz|0)?(Wr=Rz,q=190):q=195;break;case 195:XG=a[TG>>2];q=196;break;case 196:Nz=Kz+FG|0;Oz=XG;q=197;break;case 197:var eH=Lz+1|0;(eH|0)<(Oz|0)?(Kz=Nz,Lz=eH,Mz=Oz,q=188):(VG=Nz,q=198);break;case 198:q=2==(a[(x+304+(10504*Rf&-1)+(5252*Sf&-1)+4788|0)>>2]|0)?199:200;break;
+case 199:var fH=3*a[YL>>2]&-1,gH=x+304+(10504*Rf&-1)+(5252*Sf&-1)+4772|0,hH=a[gH>>2],iH=(fH|0)>(hH|0)?hH:fH,$L=Qe(x,a[(x+304+(10504*Rf&-1)+(5252*Sf&-1)+4796|0)>>2],0,iH,eo),jH=Qe(x,a[(x+304+(10504*Rf&-1)+(5252*Sf&-1)+4800|0)>>2],iH,a[gH>>2],eo)+$L|0,q=201;break;case 200:var Go=a[(x+304+(10504*Rf&-1)+(5252*Sf&-1)+4772|0)>>2],kH=a[(x+304+(10504*Rf&-1)+(5252*Sf&-1)+4824|0)>>2],lH=a[(x+21360+((kH+1|0)<<2)|0)>>2],mH=a[(x+21360+(((kH+2|0)+a[(x+304+(10504*Rf&-1)+(5252*Sf&-1)+4828|0)>>2]|0)<<2)|0)>>2],nH=
+(lH|0)>(Go|0)?Go:lH,oH=(mH|0)>(Go|0)?Go:mH,aM=Qe(x,a[(x+304+(10504*Rf&-1)+(5252*Sf&-1)+4796|0)>>2],0,nH,eo),bM=Qe(x,a[(x+304+(10504*Rf&-1)+(5252*Sf&-1)+4800|0)>>2],nH,oH,eo)+aM|0,cM=Qe(x,a[(x+304+(10504*Rf&-1)+(5252*Sf&-1)+4804|0)>>2],oH,Go,eo),jH=bM+cM|0,q=201;break;case 201:var dM=SA(x,eo),pH=((VG+DG|0)+jH|0)+dM|0,qH=Sf+1|0,rH=a[Qr>>2];(qH|0)<(rH|0)?(DG=pH,Sf=qH,q=176):(zz=pH,EG=rH,q=202);break;case 202:var sH=Rf+1|0;2>(sH|0)?(xz=zz,Rf=sH,yz=EG,q=175):(wz=zz,q=241);break;case 203:var fo=x+304+(5252*
+wf&-1)|0,tH=x+304+(5252*wf&-1)+5188|0;if(2==(a[(x+304+(5252*wf&-1)+4788|0)>>2]|0))var Yr=0,Sz=0,Zr=0,q=204;else var $r=0,Tz=0,as=0,q=228;break;case 204:var uH=a[(a[tH>>2]+(Yr<<2)|0)>>2],Uz=(uH|0)/3&-1,Ho=a[(x+304+(5252*wf&-1)+5192+(Yr<<2)|0)>>2];if(2<(uH|0))q=205;else var Vz=Sz,vH=Zr,q=226;break;case 205:var eM=0<(Ho|0),fM=1<(Uz|0),wH=0,Wz=Zr,q=206;break;case 206:var Xz=3*Wz&-1,xH=a[(x+304+(5252*wf&-1)+4608+(Xz<<2)|0)>>2],gM=0<(xH|0)?xH:0;if(eM)var bs=Ho,q=207;else q=224;break;case 207:var yH=a[hh>>
+2];if(0==(yH|0))q=208;else var cs=yH,q=211;break;case 208:a[hh>>2]=8;var Yz=a[vf>>2]+1|0;a[vf>>2]=Yz;var zH=a[Qf>>2];if((a[(x+39840+(48*zH&-1)|0)>>2]|0)==(a[wg>>2]|0))q=209;else var AH=Yz,q=210;break;case 209:ha(a[ej>>2]+Yz|0,x+39840+(48*zH&-1)+8|0,a[Ch>>2]);var BH=a[Ch>>2],CH=a[vf>>2]+BH|0;a[vf>>2]=CH;a[wg>>2]=a[wg>>2]+(BH<<3)|0;a[Qf>>2]=(a[Qf>>2]+1|0)&255;AH=CH;q=210;break;case 210:l[a[ej>>2]+AH|0]=0;cs=a[hh>>2];q=211;break;case 211:var Zz=(bs|0)<(cs|0)?bs:cs,$z=bs-Zz|0,DH=cs-Zz|0;a[hh>>2]=DH;var EH=
+a[ej>>2]+a[vf>>2]|0;l[EH]=(gM>>$z<>2]+Zz|0;a[wg>>2]=FH;0<($z|0)?(bs=$z,q=207):q=212;break;case 212:var GH=a[(x+304+(5252*wf&-1)+4608+((Xz+1|0)<<2)|0)>>2],hM=0<(GH|0)?GH:0,ds=Ho,HH=FH,q=213;break;case 213:var IH=a[hh>>2];if(0==(IH|0))q=214;else var es=IH,q=217;break;case 214:a[hh>>2]=8;var aA=a[vf>>2]+1|0;a[vf>>2]=aA;var JH=a[Qf>>2];if((a[(x+39840+(48*JH&-1)|0)>>2]|0)==(HH|0))q=215;else var KH=aA,q=216;break;case 215:ha(a[ej>>2]+aA|0,x+39840+(48*JH&-1)+8|0,a[Ch>>2]);
+var LH=a[Ch>>2],MH=a[vf>>2]+LH|0;a[vf>>2]=MH;a[wg>>2]=a[wg>>2]+(LH<<3)|0;a[Qf>>2]=(a[Qf>>2]+1|0)&255;KH=MH;q=216;break;case 216:l[a[ej>>2]+KH|0]=0;es=a[hh>>2];q=217;break;case 217:var bA=(ds|0)<(es|0)?ds:es,cA=ds-bA|0,NH=es-bA|0;a[hh>>2]=NH;var OH=a[ej>>2]+a[vf>>2]|0;l[OH]=(hM>>cA<>2]+bA|0;a[wg>>2]=dA;0<(cA|0)?(ds=cA,HH=dA,q=213):q=218;break;case 218:var PH=a[(x+304+(5252*wf&-1)+4608+((Xz+2|0)<<2)|0)>>2],iM=0<(PH|0)?PH:0,fs=Ho,QH=dA,q=219;break;case 219:var RH=a[hh>>
+2];if(0==(RH|0))q=220;else var gs=RH,q=223;break;case 220:a[hh>>2]=8;var eA=a[vf>>2]+1|0;a[vf>>2]=eA;var SH=a[Qf>>2];if((a[(x+39840+(48*SH&-1)|0)>>2]|0)==(QH|0))q=221;else var TH=eA,q=222;break;case 221:ha(a[ej>>2]+eA|0,x+39840+(48*SH&-1)+8|0,a[Ch>>2]);var UH=a[Ch>>2],VH=a[vf>>2]+UH|0;a[vf>>2]=VH;a[wg>>2]=a[wg>>2]+(UH<<3)|0;a[Qf>>2]=(a[Qf>>2]+1|0)&255;TH=VH;q=222;break;case 222:l[a[ej>>2]+TH|0]=0;gs=a[hh>>2];q=223;break;case 223:var fA=(fs|0)<(gs|0)?fs:gs,gA=fs-fA|0,WH=gs-fA|0;a[hh>>2]=WH;var XH=
+a[ej>>2]+a[vf>>2]|0;l[XH]=(iM>>gA<>2]+fA|0;a[wg>>2]=YH;0<(gA|0)?(fs=gA,QH=YH,q=219):q=224;break;case 224:var ZH=wH+1|0,jM=Wz+1|0;(ZH|0)<(Uz|0)?(wH=ZH,Wz=jM,q=206):q=225;break;case 225:var $H=fM?Uz:1,kM=Math.imul(3*Ho&-1,$H),lM=$H+Zr|0,Vz=kM+Sz|0,vH=lM,q=226;break;case 226:var aI=Yr+1|0;4>(aI|0)?(Yr=aI,Sz=Vz,Zr=vH,q=204):q=227;break;case 227:var bI=3*a[XL>>2]&-1,cI=x+304+(5252*wf&-1)+4772|0,dI=a[cI>>2],eI=(bI|0)>(dI|0)?dI:bI,mM=Qe(x,a[(x+304+(5252*wf&-1)+4796|0)>>2],
+0,eI,fo),fI=Qe(x,a[(x+304+(5252*wf&-1)+4800|0)>>2],eI,a[cI>>2],fo)+mM|0,gI=Vz,q=240;break;case 228:var hs=a[(a[tH>>2]+($r<<2)|0)>>2],hA=a[(x+304+(5252*wf&-1)+5192+($r<<2)|0)>>2];if(0<(hs|0))q=229;else var iA=Tz,hI=as,q=238;break;case 229:if(0<(hA|0))var iI=0,jA=as,q=230;else q=237;break;case 230:var jI=a[(x+304+(5252*wf&-1)+4608+(jA<<2)|0)>>2],nM=0<(jI|0)?jI:0,is=hA,q=231;break;case 231:var kI=a[hh>>2];if(0==(kI|0))q=232;else var js=kI,q=235;break;case 232:a[hh>>2]=8;var kA=a[vf>>2]+1|0;a[vf>>2]=
+kA;var lI=a[Qf>>2];if((a[(x+39840+(48*lI&-1)|0)>>2]|0)==(a[wg>>2]|0))q=233;else var mI=kA,q=234;break;case 233:ha(a[ej>>2]+kA|0,x+39840+(48*lI&-1)+8|0,a[Ch>>2]);var nI=a[Ch>>2],oI=a[vf>>2]+nI|0;a[vf>>2]=oI;a[wg>>2]=a[wg>>2]+(nI<<3)|0;a[Qf>>2]=(a[Qf>>2]+1|0)&255;mI=oI;q=234;break;case 234:l[a[ej>>2]+mI|0]=0;js=a[hh>>2];q=235;break;case 235:var lA=(is|0)<(js|0)?is:js,mA=is-lA|0,pI=js-lA|0;a[hh>>2]=pI;var qI=a[ej>>2]+a[vf>>2]|0;l[qI]=(nM>>mA<>2]=a[wg>>2]+lA|0;0<(mA|0)?(is=mA,
+q=231):q=236;break;case 236:var rI=iI+1|0,oM=jA+1|0;(rI|0)<(hs|0)?(iI=rI,jA=oM,q=230):q=237;break;case 237:var pM=Math.imul(hA,hs)+Tz|0,qM=hs+as|0,iA=pM,hI=qM,q=238;break;case 238:var sI=$r+1|0;4>(sI|0)?($r=sI,Tz=iA,as=hI,q=228):q=239;break;case 239:var Io=a[(x+304+(5252*wf&-1)+4772|0)>>2],tI=a[(x+304+(5252*wf&-1)+4824|0)>>2],uI=a[(x+21360+((tI+1|0)<<2)|0)>>2],vI=a[(x+21360+(((tI+2|0)+a[(x+304+(5252*wf&-1)+4828|0)>>2]|0)<<2)|0)>>2],wI=(uI|0)>(Io|0)?Io:uI,xI=(vI|0)>(Io|0)?Io:vI,rM=Qe(x,a[(x+304+(5252*
+wf&-1)+4796|0)>>2],0,wI,fo),sM=Qe(x,a[(x+304+(5252*wf&-1)+4800|0)>>2],wI,xI,fo)+rM|0,tM=Qe(x,a[(x+304+(5252*wf&-1)+4804|0)>>2],xI,Io,fo),fI=sM+tM|0,gI=iA,q=240;break;case 240:var uM=SA(x,fo),yI=((gI+CG|0)+fI|0)+uM|0,zI=wf+1|0;(zI|0)<(a[Qr>>2]|0)?(CG=yI,wf=zI,q=203):(wz=yI,q=241);break;case 241:var vM=wz+WL|0,nA=x+21324|0;Gs(x,a[nA>>2]);var ks=vM+a[nA>>2]|0;a[Bo>>2]=a[Bo>>2]+((ft-ks|0)/8&-1)|0;var AI=RA(x,Ds),oA=x+52140|0;if((AI|0)==(a[oA>>2]|0))var pA=AI,q=243;else q=242;break;case 242:Oc(x,144984,
+(S=m,m=m+1|0,m=m+7>>3<<3,a[S>>2]=0,S));pA=a[oA>>2];q=243;break;case 243:var BI=a[Bo>>2]<<3,q=(BI|0)==(pA|0)?245:244;break;case 244:var CI=a[nA>>2],wM=a[gC>>2],DI=a[Ch>>2]<<3,xM=(ks-CI|0)-DI|0,yM=(ks|0)%8&-1;Oc(x,143424,(S=m,m=m+72|0,a[S>>2]=BI,a[S+8>>2]=pA,a[S+16>>2]=CI,a[S+24>>2]=wM,a[S+32>>2]=DI,a[S+40>>2]=xM,a[S+48>>2]=ks,a[S+56>>2]=yM,a[S+64>>2]=ft,S));Oc(x,143064,(S=m,m=m+1|0,m=m+7>>3<<3,a[S>>2]=0,S));Oc(x,142680,(S=m,m=m+1|0,m=m+7>>3<<3,a[S>>2]=0,S));Oc(x,142192,(S=m,m=m+1|0,m=m+7>>3<<3,a[S>>
+2]=0,S));Oc(x,141736,(S=m,m=m+1|0,m=m+7>>3<<3,a[S>>2]=0,S));a[oA>>2]=a[Bo>>2]<<3;q=245;break;case 245:var EI=x+292|0,FI=a[EI>>2];if(1E9<(FI|0))var qA=0,q=246;else q=248;break;case 246:var GI=x+39840+(48*qA&-1)|0;a[GI>>2]=a[GI>>2]-FI|0;var HI=qA+1|0;256>(HI|0)?(qA=HI,q=246):q=247;break;case 247:a[EI>>2]=0;q=248;break;case 248:m=YB;break a}}var zM=Vo(k,f,c,1),g=0==(a[(k+156|0)>>2]|0)?85:84;break;case 84:a:for(var sk=k,ei=0,ei=1;;)switch(ei){case 1:var AM=a[(106152+(a[(sk+16|0)>>2]<<6)+(a[(sk+84744|
+0)>>2]<<2)|0)>>2],II=sk+85784|0;a[II>>2]=a[II>>2]+1|0;var JI=sk+85760|0,KI=a[JI>>2]+AM|0;a[JI>>2]=KI;var rA=sk+85764|0,LI=a[rA>>2]+1|0;a[rA>>2]=LI;var sA=sk+85768|0,ei=(LI|0)<(a[sA>>2]|0)?10:2;break;case 2:var Jo=sk+85772|0,tA=a[Jo>>2],uA=sk+85776|0,MI=a[uA>>2];if((tA|0)<(MI|0))ei=3;else var NI=tA,ls=MI,ei=4;break;case 3:a[(a[(sk+85780|0)>>2]+(tA<<2)|0)>>2]=KI;var OI=a[Jo>>2]+1|0;a[Jo>>2]=OI;a[rA>>2]=0;var BM=a[uA>>2],NI=OI,ls=BM,ei=4;break;case 4:ei=(NI|0)==(ls|0)?5:10;break;case 5:if(1<(ls|0))ei=
+6;else var PI=ls,ei=9;break;case 6:var CM=sk+85780|0,ms=1,ei=7;break;case 7:var QI=a[CM>>2];a[(QI+(((ms|0)/2&-1)<<2)|0)>>2]=a[(QI+(ms<<2)|0)>>2];var RI=ms+2|0;(RI|0)<(a[uA>>2]|0)?(ms=RI,ei=7):ei=8;break;case 8:PI=a[Jo>>2];ei=9;break;case 9:a[sA>>2]<<=1;a[Jo>>2]=(PI|0)/2&-1;ei=10;break;case 10:break a}g=85;break;case 85:g=0==(a[En>>2]|0)?94:86;break;case 86:var vA=k+85804|0,g=0==(a[vA>>2]|0)?94:87;break;case 87:var DM=576*a[Y>>2]&-1,SI=k+72|0;if(0<(a[SI>>2]|0))var go=0,g=88;else g=93;break;case 88:var ns=
+0,g=89;break;case 89:var TI=a[vA>>2];oa[(TI+24+(12800*go&-1)+(ns<<3)|0)>>3]=oa[(TI+24+(12800*go&-1)+((ns+DM|0)<<3)|0)>>3];var UI=ns+1|0;272>(UI|0)?(ns=UI,g=89):g=90;break;case 90:var EM=a[(E+(go<<2)|0)>>2],os=272,g=91;break;case 91:oa[(a[vA>>2]+24+(12800*go&-1)+(os<<3)|0)>>3]=b[(EM+((os-272|0)<<2)|0)>>2];var VI=os+1|0;1600>(VI|0)?(os=VI,g=91):g=92;break;case 92:var WI=go+1|0;(WI|0)<(a[SI>>2]|0)?(go=WI,g=88):g=93;break;case 93:b[(k+84908|0)>>2]=1;a:{var Bd=k,Ko=mm,Sb=0,Lo=m;m=m+504|0;for(Sb=1;;)switch(Sb){case 1:var wA=
+Lo,xA=Lo+160,ho=Lo+320,FM=Lo+344,XI=Bd+76|0,YI=a[XI>>2],Sb=0<(YI|0)?2:43;break;case 2:var ZI=Bd+72|0,$I=FM,aJ=wA|0,GM=xA|0,Tf=Bd+85804|0,bJ=Bd+212|0,cJ=Bd+85796|0,HM=Bd+216|0,IM=ho+12|0,JM=ho+8|0,KM=ho|0,LM=ho+4|0,MM=ho+16|0,Fc=0,yA=a[ZI>>2],dJ=YI,Sb=3;break;case 3:if(0<(yA|0))Sb=4;else var eJ=yA,zA=dJ,Sb=42;break;case 4:var NM=1==(Fc|0),qc=0,Sb=5;break;case 5:var fJ=Bd+304+(10504*Fc&-1)+(5252*qc&-1)|0,gJ=Bd+304+(10504*Fc&-1)+(5252*qc&-1)+4608|0;ha($I,gJ,156);Sb=NM?6:10;break;case 6:var hJ=Bd+10808+
+(5252*qc&-1)+4848|0,iJ=a[hJ>>2];if(0<(iJ|0))var ps=0,jJ=iJ,Sb=7;else Sb=10;break;case 7:var kJ=Bd+10808+(5252*qc&-1)+4608+(ps<<2)|0;if(0>(a[kJ>>2]|0))Sb=8;else var AA=jJ,Sb=9;break;case 8:a[kJ>>2]=a[(Bd+304+(5252*qc&-1)+4608+(ps<<2)|0)>>2];AA=a[hJ>>2];Sb=9;break;case 9:var lJ=ps+1|0;(lJ|0)<(AA|0)?(ps=lJ,jJ=AA,Sb=7):Sb=10;break;case 10:var BA=0==(a[(Bd+304+(10504*Fc&-1)+(5252*qc&-1)+4836|0)>>2]|0)?0.5:1;dm(Bd,Ko+(976*Fc&-1)+(488*qc&-1)|0,fJ,aJ);qs(fJ,aJ,GM,ho,0);var mJ=a[(Bd+304+(10504*Fc&-1)+(5252*
+qc&-1)+4848|0)>>2],nJ=Bd+304+(10504*Fc&-1)+(5252*qc&-1)+4788|0,oJ=a[nJ>>2];if(2==(oJ|0))var rs=mJ,Sb=12;else Sb=11;break;case 11:rs=0==(a[(Bd+304+(10504*Fc&-1)+(5252*qc&-1)+4792|0)>>2]|0)?22:mJ;Sb=12;break;case 12:if(0<(rs|0))Sb=13;else var pJ=0,qJ=0,rJ=oJ,Sb=25;break;case 13:var OM=Bd+304+(10504*Fc&-1)+(5252*qc&-1)+4832|0,PM=-BA,ss=0,xg=0,Sb=14;break;case 14:var CA=xg+1|0,ts=a[(Bd+21360+(CA<<2)|0)>>2],QM=ts-a[(Bd+21360+(xg<<2)|0)>>2]|0;if((ss|0)<(ts|0))var DA=ss,sJ=0,Sb=15;else var EA=ss,tJ=0,Sb=
+16;break;case 15:var uJ=b[(Bd+304+(10504*Fc&-1)+(5252*qc&-1)+(DA<<2)|0)>>2],vJ=sJ+uJ*uJ,wJ=DA+1|0;(wJ|0)<(ts|0)?(DA=wJ,sJ=vJ,Sb=15):(EA=ts,tJ=vJ,Sb=16);break;case 16:var xJ=QM|0,yJ=tJ/xJ;oa[(a[Tf>>2]+190712+(704*Fc&-1)+(176*qc&-1)+(xg<<3)|0)>>3]=999999986991104*yJ;oa[(a[Tf>>2]+201208+(352*Fc&-1)+(176*qc&-1)+(xg<<3)|0)>>3]=999999986991104*b[(wA+(xg<<2)|0)>>2]*b[(xA+(xg<<2)|0)>>2]/xJ;var zJ=b[(Ko+(976*Fc&-1)+(488*qc&-1)+244+(xg<<2)|0)>>2];if(0>2]|
+0)?Sb=18:(FA=0,Sb=19);break;case 18:FA=yJ/zJ;Sb=19;break;case 19:var AJ=FA*b[(Ko+(976*Fc&-1)+(488*qc&-1)+(xg<<2)|0)>>2],BJ=b[(a[cJ>>2]+24+(xg<<2)|0)>>2];oa[(a[Tf>>2]+189304+(704*Fc&-1)+(176*qc&-1)+(xg<<3)|0)>>3]=999999986991104*(AJ>BJ?AJ:BJ);oa[(a[Tf>>2]+199160+(352*Fc&-1)+(176*qc&-1)+(xg<<3)|0)>>3]=0;Sb=0!=(a[OM>>2]|0)&10<(xg|0)?20:21;break;case 20:oa[(a[Tf>>2]+199160+(352*Fc&-1)+(176*qc&-1)+(xg<<3)|0)>>3]=(a[(14248+(xg<<2)|0)>>2]|0)*PM;Sb=21;break;case 21:Sb=21>(xg|0)?23:22;break;case 22:(CA|0)<
+(rs|0)?(ss=EA,xg=CA,Sb=14):Sb=24;break;case 23:var CJ=a[Tf>>2]+199160+(352*Fc&-1)+(176*qc&-1)+(xg<<3)|0;oa[CJ>>3]-=BA*(a[(Bd+304+(10504*Fc&-1)+(5252*qc&-1)+4608+(xg<<2)|0)>>2]|0);Sb=22;break;case 24:var RM=a[nJ>>2],pJ=EA,qJ=rs,rJ=RM,Sb=25;break;case 25:Sb=2==(rJ|0)?26:40;break;case 26:var DJ=a[(Bd+304+(10504*Fc&-1)+(5252*qc&-1)+4852|0)>>2];if(13>(DJ|0))var EJ=pJ,GA=qJ,em=DJ,Sb=28;else Sb=40;break;case 27:var SM=GA+3|0;13>(HA|0)?(EJ=IA,GA=SM,em=HA,Sb=28):Sb=40;break;case 28:var JA=a[(Bd+21452+(em<<
+2)|0)>>2],HA=em+1|0,KA=a[(Bd+21452+(HA<<2)|0)>>2],FJ=KA-JA|0,TM=(JA|0)<(KA|0),GJ=FJ|0,UM=3*em&-1,VM=12>(em|0),us=EJ,io=0,Mo=GA,Sb=29;break;case 29:if(TM)var LA=us,HJ=JA,IJ=0,Sb=30;else var IA=us,JJ=0,Sb=32;break;case 30:var KJ=b[(Bd+304+(10504*Fc&-1)+(5252*qc&-1)+(LA<<2)|0)>>2],LJ=IJ+KJ*KJ,WM=LA+1|0,MJ=HJ+1|0;(MJ|0)<(KA|0)?(LA=WM,HJ=MJ,IJ=LJ,Sb=30):Sb=31;break;case 31:IA=us+FJ|0;JJ=LJ;Sb=32;break;case 32:var NJ=JJ/GJ,OJ=1E-20>2]+194616+(1248*Fc&-1)+
+(312*qc&-1)+(No<<3)|0)>>3]=999999986991104*OJ;oa[(a[Tf>>2]+201912+(624*Fc&-1)+(312*qc&-1)+(No<<3)|0)>>3]=999999986991104*b[(wA+(Mo<<2)|0)>>2]*b[(xA+(Mo<<2)|0)>>2]/GJ;var PJ=b[(Ko+(976*Fc&-1)+(488*qc&-1)+332+(12*em&-1)+(io<<2)|0)>>2];if(0>2]|0)?35:36;break;case 35:if(0==(a[HM>>2]|0))var RJ=QJ,Sb=37;else Sb=36;break;case 36:RJ=0;Sb=37;break;case 37:var SJ=RJ*b[(Ko+(976*Fc&-1)+(488*qc&-1)+88+(12*em&-1)+(io<<2)|0)>>2],
+TJ=b[(a[cJ>>2]+112+(em<<2)|0)>>2];oa[(a[Tf>>2]+192120+(1248*Fc&-1)+(312*qc&-1)+(No<<3)|0)>>3]=999999986991104*(SJ>TJ?SJ:TJ);oa[(a[Tf>>2]+199864+(624*Fc&-1)+(312*qc&-1)+(No<<3)|0)>>3]=-2*(a[(Bd+304+(10504*Fc&-1)+(5252*qc&-1)+4808+(io<<2)|0)>>2]|0);Sb=VM?38:39;break;case 38:var UJ=a[Tf>>2]+199864+(624*Fc&-1)+(312*qc&-1)+(No<<3)|0;oa[UJ>>3]-=BA*(a[(Bd+304+(10504*Fc&-1)+(5252*qc&-1)+4608+(Mo<<2)|0)>>2]|0);Sb=39;break;case 39:var XM=Mo+1|0,VJ=io+1|0;3>(VJ|0)?(us=IA,io=VJ,Mo=XM,Sb=29):Sb=27;break;case 40:a[(a[Tf>>
+2]+201112+(Fc<<3)+(qc<<2)|0)>>2]=a[(Bd+304+(10504*Fc&-1)+(5252*qc&-1)+4780|0)>>2];var WJ=Bd+304+(10504*Fc&-1)+(5252*qc&-1)+4844|0;a[(a[Tf>>2]+203400+(Fc<<3)+(qc<<2)|0)>>2]=a[WJ>>2]+a[(Bd+304+(10504*Fc&-1)+(5252*qc&-1)+4768|0)>>2]|0;a[(a[Tf>>2]+203416+(Fc<<3)+(qc<<2)|0)>>2]=a[WJ>>2];a[(a[Tf>>2]+203160+(Fc<<3)+(qc<<2)|0)>>2]=a[IM>>2];oa[(a[Tf>>2]+203208+(Fc<<4)+(qc<<3)|0)>>3]=10*b[JM>>2];oa[(a[Tf>>2]+203240+(Fc<<4)+(qc<<3)|0)>>3]=10*b[KM>>2];oa[(a[Tf>>2]+203176+(Fc<<4)+(qc<<3)|0)>>3]=10*b[LM>>2];a[(a[Tf>>
+2]+203272+(Fc<<3)+(qc<<2)|0)>>2]=a[MM>>2];ha(gJ,$I,156);var XJ=qc+1|0,YJ=a[ZI>>2];(XJ|0)<(YJ|0)?(qc=XJ,Sb=5):Sb=41;break;case 41:var YM=a[XI>>2],eJ=YJ,zA=YM,Sb=42;break;case 42:var ZJ=Fc+1|0;(ZJ|0)<(zA|0)?(Fc=ZJ,yA=eJ,dJ=zA,Sb=3):Sb=43;break;case 43:m=Lo;break a}}g=94;break;case 94:var $J=k+84748|0;a[$J>>2]=a[$J>>2]+1|0;var vs=k+84744|0,aK=k+84040+(20*a[vs>>2]&-1)+16|0;a[aK>>2]=a[aK>>2]+1|0;var bK=k+84356|0;a[bK>>2]=a[bK>>2]+1|0;var MA=k+72|0,g=2==(a[MA>>2]|0)?95:96;break;case 95:var cK=k+84040+(20*
+a[vs>>2]&-1)+(a[ao>>2]<<2)|0;a[cK>>2]=a[cK>>2]+1|0;var dK=k+84340+(a[ao>>2]<<2)|0;a[dK>>2]=a[dK>>2]+1|0;g=96;break;case 96:var eK=a[Y>>2],g=0<(eK|0)?97:102;break;case 97:var fK=k+84740|0,ws=0,NA=a[MA>>2],gK=eK,g=98;break;case 98:if(0<(NA|0))var xs=0,g=99;else var hK=NA,OA=gK,g=101;break;case 99:var ZM=a[(k+304+(10504*ws&-1)+(5252*xs&-1)+4788|0)>>2],iK=0==(a[(k+304+(10504*ws&-1)+(5252*xs&-1)+4792|0)>>2]|0)?ZM:4,jK=k+84360+(24*a[vs>>2]&-1)+(iK<<2)|0;a[jK>>2]=a[jK>>2]+1|0;var kK=k+84360+(24*a[vs>>2]&
+-1)+20|0;a[kK>>2]=a[kK>>2]+1|0;var lK=k+84720+(iK<<2)|0;a[lK>>2]=a[lK>>2]+1|0;a[fK>>2]=a[fK>>2]+1|0;var mK=xs+1|0,nK=a[MA>>2];(mK|0)<(nK|0)?(xs=mK,g=99):g=100;break;case 100:var $M=a[Y>>2],hK=nK,OA=$M,g=101;break;case 101:var oK=ws+1|0;(oK|0)<(OA|0)?(ws=oK,NA=hK,gK=OA,g=98):g=102;break;case 102:return m=h,zM}}function fm(a,d,e,f){for(var c=0,c=1;;)switch(c){case 1:c=0==(e|0)?4:2;break;case 2:var g=f+4|0,h=f+8|0,y=f+12|0,l=f+16|0,p=f+20|0,m=f+24|0,E=f+28|0,z=f+32|0,A=f+36|0,D=f+40|0,w=f+44|0,u=f+48|
+0,t=f+52|0,s=f+56|0,G=f+60|0,H=f+64|0,K=f+68|0,Q=f+72|0,J=f+76|0,F=f+80|0,P=d,da=e,C=a,c=3;break;case 3:c=da-1|0;b[P>>2]=b[C>>2]*b[f>>2]+1E-10-b[(P-4|0)>>2]*b[g>>2]+b[(C-4|0)>>2]*b[h>>2]-b[(P-8|0)>>2]*b[y>>2]+b[(C-8|0)>>2]*b[l>>2]-b[(P-12|0)>>2]*b[p>>2]+b[(C-12|0)>>2]*b[m>>2]-b[(P-16|0)>>2]*b[E>>2]+b[(C-16|0)>>2]*b[z>>2]-b[(P-20|0)>>2]*b[A>>2]+b[(C-20|0)>>2]*b[D>>2]-b[(P-24|0)>>2]*b[w>>2]+b[(C-24|0)>>2]*b[u>>2]-b[(P-28|0)>>2]*b[t>>2]+b[(C-28|0)>>2]*b[s>>2]-b[(P-32|0)>>2]*b[G>>2]+b[(C-32|0)>>2]*b[H>>
+2]-b[(P-36|0)>>2]*b[K>>2]+b[(C-36|0)>>2]*b[Q>>2]-b[(P-40|0)>>2]*b[J>>2]+b[(C-40|0)>>2]*b[F>>2];var ba=P+4|0,L=C+4|0;0==(c|0)?c=4:(P=ba,da=c,C=L,c=3);break;case 4:return}}function mj(k,d,e,f,c){for(var g=0,g=1;;)switch(g){case 1:if(0==(f|0))var h=1,g=32;else g=2;break;case 2:if(1==(c|0))g=3;else if(2==(c|0))var y=e,g=4;else h=0,g=32;break;case 3:y=d;g=4;break;case 4:var l=10>f>>>0,p=k+40|0,m=d,g=l?5:6;break;case 5:var E=f<<2;ha(p,m,E);ha(k+19420|0,y,E);g=7;break;case 6:ha(p,m,40);ha(k+19420|0,y,40);
+g=7;break;case 7:var z=k+38760|0,A=k+38764|0,D=k+80|0,w=k+19460|0,u=k+9728|0,t=k+38784|0,s=k+29108|0,G=k+19376|0,H=k+38756|0,K=k+38768|0,Q=k+38776|0,J=k+9732|0,F=k+29112|0,P=k+84|0,da=k+19464|0,C=K,ba=0,L=f,g=8;break;case 8:g=0<(L|0)?9:29;break;case 9:var O=a[A>>2],B=a[z>>2]-O|0,Wa=(L|0)>(B|0)?B:L;if(10>(ba|0))g=10;else var V=Wa,Eb=y,la=d,g=11;break;case 10:var W=a[D>>2],sa=a[w>>2],Yc=10-ba|0,V=(Wa|0)>(Yc|0)?Yc:Wa,Eb=sa,la=W,g=11;break;case 11:var ee=Eb+(ba<<2)|0;fm(la+(ba<<2)|0,a[u>>2]+(O<<2)|0,
+V,146336+(84*a[t>>2]&-1)|0);fm(ee,a[s>>2]+(a[A>>2]<<2)|0,V,146336+(84*a[t>>2]&-1)|0);var ja=a[A>>2],fa=a[t>>2],Cd=0==(V|0);if(Cd)var tc=ja,g=24;else g=12;break;case 12:var aa=b[(147096+(20*fa&-1)|0)>>2],ma=b[(147100+(20*fa&-1)|0)>>2],ia=b[(147104+(20*fa&-1)|0)>>2],ea=b[(147108+(20*fa&-1)|0)>>2],Gh=b[(147112+(20*fa&-1)|0)>>2],Y=a[G>>2]+(ja<<2)|0,Cg=V,ta=a[u>>2]+(ja<<2)|0,g=13;break;case 13:var na=Cg-1|0;b[Y>>2]=aa*b[ta>>2]-ma*b[(Y-4|0)>>2]+ia*b[(ta-4|0)>>2]-ea*b[(Y-8|0)>>2]+Gh*b[(ta-8|0)>>2];var Z=
+Y+4|0,Da=ta+4|0;0==(na|0)?g=14:(Y=Z,Cg=na,ta=Da,g=13);break;case 14:var ka=a[A>>2],pa=a[t>>2];Cd?(tc=ka,g=24):g=15;break;case 15:var za=b[(147096+(20*pa&-1)|0)>>2],ca=b[(147100+(20*pa&-1)|0)>>2],va=b[(147104+(20*pa&-1)|0)>>2],S=b[(147108+(20*pa&-1)|0)>>2],Ea=b[(147112+(20*pa&-1)|0)>>2],Fa=a[H>>2]+(ka<<2)|0,M=V,I=a[s>>2]+(ka<<2)|0,g=16;break;case 16:var Aa=M-1|0;b[Fa>>2]=za*b[I>>2]-ca*b[(Fa-4|0)>>2]+va*b[(I-4|0)>>2]-S*b[(Fa-8|0)>>2]+Ea*b[(I-8|0)>>2];var wa=Fa+4|0,Ga=I+4|0;0==(Aa|0)?g=17:(Fa=wa,M=Aa,
+I=Ga,g=16);break;case 17:var R=a[A>>2],N=a[G>>2],T=N+(R<<2)|0,Ma=a[H>>2],n=Ma+(R<<2)|0,qa=(V|0)%8&-1;if(0==(qa|0))var Sa=T,Ca=n,g=21;else g=18;break;case 18:var Va=qa+R|0,Ha=T,Ta=n,Ua=qa,Nb=oa[K>>3],gb=oa[Q>>3],g=19;break;case 19:var Na=Ua-1|0,$a=Ha+4|0,Gb=b[Ha>>2],Ja=Nb+Gb*Gb;oa[K>>3]=Ja;var lb=Ta+4|0,Ra=b[Ta>>2],sb=gb+Ra*Ra;oa[Q>>3]=sb;0==(Na|0)?g=20:(Ha=$a,Ta=lb,Ua=Na,Nb=Ja,gb=sb,g=19);break;case 20:var ob=Ma+(Va<<2)|0,Sa=N+(Va<<2)|0,Ca=ob,g=21;break;case 21:15>(V+7|0)>>>0?(tc=R,g=24):g=22;break;
+case 22:var hb=Sa,mb=Ca,Oa=(V|0)/8&-1,nb=oa[K>>3],xb=oa[Q>>3],g=23;break;case 23:var Ya=Oa-1|0,Ia=b[hb>>2],tb=b[(hb+4|0)>>2],Ka=b[(hb+8|0)>>2],ab=b[(hb+12|0)>>2],ga=b[(hb+16|0)>>2],xa=b[(hb+20|0)>>2],La=b[(hb+24|0)>>2],yb=b[(hb+28|0)>>2],pb=nb+(Ia*Ia+tb*tb+Ka*Ka+ab*ab+ga*ga+xa*xa+La*La+yb*yb);oa[K>>3]=pb;var r=hb+32|0,Hb=b[mb>>2],Bb=b[(mb+4|0)>>2],Ib=b[(mb+8|0)>>2],Fb=b[(mb+12|0)>>2],bb=b[(mb+16|0)>>2],qb=b[(mb+20|0)>>2],cb=b[(mb+24|0)>>2],ya=b[(mb+28|0)>>2],X=xb+(Hb*Hb+Bb*Bb+Ib*Ib+Fb*Fb+bb*bb+qb*
+qb+cb*cb+ya*ya);oa[Q>>3]=X;var Jb=mb+32|0;0==(Ya|0)?(tc=R,g=24):(hb=r,mb=Jb,Oa=Ya,nb=pb,xb=X,g=23);break;case 24:var db=L-V|0,jb=V+ba|0,U=tc+V|0;a[A>>2]=U;var ra=a[z>>2];if((U|0)==(ra|0))g=25;else var $=U,lc=ra,g=28;break;case 25:var vc=Math.log((oa[K>>3]+oa[Q>>3])/(U|0)*0.5+1E-37)/Math.LN10*1E3;if(0>>0?11999:ua)<<2)|0;a[wc>>2]=a[wc>>2]+1|0;a[C>>2]=0;a[C+4>>2]=0;a[C+8>>2]=0;
+a[C+12>>2]=0;var Tb=a[A>>2];ii(J,k+9732+(Tb<<2)|0,40,4,0);ii(F,k+29112+(Tb<<2)|0,40,4,0);ii(P,k+84+(Tb<<2)|0,40,4,0);ii(da,k+19464+(Tb<<2)|0,40,4,0);a[A>>2]=0;var Ub=a[z>>2],$=0,lc=Ub,g=28;break;case 28:($|0)>(lc|0)?(h=0,g=32):(ba=jb,L=db,g=8);break;case 29:var ub=k,g=l?30:31;break;case 30:var fc=10-f|0,vb=fc<<2;ii(ub,k+(f<<2)|0,vb,4,0);ii(k+19380|0,k+19380+(f<<2)|0,vb,4,0);var xc=f<<2;ha(k+(fc<<2)|0,m,xc);ha(k+19380+(fc<<2)|0,y,xc);h=1;g=32;break;case 31:var Qb=f-10|0;ha(ub,d+(Qb<<2)|0,40);ha(k+
+19380|0,y+(Qb<<2)|0,40);h=1;g=32;break;case 32:return h}}function Oo(b,d,e){var f,c,g=0,h=m;m=m+1024|0;for(g=1;;)switch(g){case 1:var y=h;if(0==(b|0))var kb=0,g=163;else g=2;break;case 2:var p=b+288|0,v=a[p>>2];0==(v|0)?(kb=0,g=163):g=3;break;case 3:var E=v+85696|0,z=a[E>>2];0==(z&4|0)?g=4:(kb=0,g=163);break;case 4:var A=z&10,D=a[(v+85704|0)>>2];if(0==(D|0))var w=0,g=6;else g=5;break;case 5:w=Ag(D);g=6;break;case 6:var u=a[(v+85708|0)>>2];if(0==(u|0))var t=0,g=8;else g=7;break;case 7:t=Ag(u);g=8;
+break;case 8:var s=a[(v+85712|0)>>2];if(0==(s|0))var G=0,g=10;else g=9;break;case 9:G=Ag(s);g=10;break;case 10:var H=a[(v+85716|0)>>2];if(0==(H|0))var K=0,g=12;else g=11;break;case 11:K=Ag(H);g=12;break;case 12:g=30>>0|30>>0|30>>0|30>>0?14:13;break;case 13:(29>K>>>0|0==(a[(v+85720|0)>>2]|0))&0==(A|0)?(kb=0,g=163):g=14;break;case 14:var Q=a[(b+4|0)>>2],g=-1==(Q|0)?22:15;break;case 15:var J=y|0,F=1E3*(Q>>>0)/(a[(v+60|0)>>2]|0),g=4294967295>2]=-1,S));g=20;break;case 17:if(0>F)var P=0,g=19;else g=18;break;case 18:P=0<=F?Math.floor(F):Math.ceil(F);g=19;break;case 19:Ui(J,140872,(S=m,m=m+8|0,a[S>>2]=P,S));g=20;break;case 20:var da=a[p>>2],g=0==(da|0)?22:21;break;case 21:var C=da+85696|0,ba=a[C>>2];a:{var L=b,O=J,B=0,Wa=m;m=m+8|0;for(B=1;;)switch(B){case 1:var V=Wa,B=0==(L|0)?61:2;break;case 2:var Eb=a[(L+288|0)>>2],B=0==(Eb|0)?61:3;break;case 3:var la=Eb+85744|0,W=la,B=4;break;case 4:var sa=a[W>>2];if(0==(sa|0))var Yc=0,B=6;else B=
+5;break;case 5:var ee=sa|0;1414284622==(a[(sa+4|0)>>2]|0)?(Yc=sa,B=6):(W=ee,B=4);break;case 6:var ja=Yc,B=34;break;case 7:B=0==(Yc|0)?35:8;break;case 8:var fa=V|0,Cd=V+1|0,tc=V+2|0,aa=143777,ma=143778,ia=!0,ea=Yc,B=20;break;case 9:var I,B=3>(I|0)?16:10;break;case 10:var Y=a[(c+16|0)>>2];if(1==(a[(c+20|0)>>2]|0))B=11;else var R=Y,B=12;break;case 11:if(0==(Y|0))R=0,B=12;else var ta=c,B=17;break;case 12:var na=c+12|0;if(ia)B=15;else var Z=0,B=13;break;case 13:Z>>>0>>0?B=14:(ja=c,B=34);break;case 14:var Da=
+Z+1|0;l[a[na>>2]+Z|0]<<24>>24==l[0+Z|0]<<24>>24?(Z=Da,B=13):(ta=c,B=17);break;case 15:0==(R|0)?(ja=c,B=34):(ta=c,B=17);break;case 16:var ka=lj(l[I+(c+8)|0]<<24>>24)&255,pa=lj(l[V+I|0]<<24>>24)&255,za=I+1|0;(32>ka<<24>>24?32:ka)<<24>>24==(32>pa<<24>>24?32:pa)<<24>>24?(I=za,B=9):(ta=c,B=17);break;case 17:var ca=a[(ta|0)>>2],B=0==(ca|0)?35:18;break;case 18:1414284622==(a[(ca+4|0)>>2]|0)?(c=ca,B=19):(ta=ca,B=17);break;case 19:l[fa]=88;l[Cd]=88;l[tc]=88;I=0;B=9;break;case 20:var va=l[143776],B=0==va<<
+24>>24?21:22;break;case 21:l[fa]=88;var N=l[Cd]=88,B=23;break;case 22:l[fa]=va;l[Cd]=l[aa];N=l[ma];B=23;break;case 23:l[tc]=N;var Ea=0,B=24;break;case 24:B=3>(Ea|0)?25:26;break;case 25:var Fa=lj(l[Ea+(ea+8)|0]<<24>>24)&255,M=lj(l[V+Ea|0]<<24>>24)&255,T=Ea+1|0;if((32>Fa<<24>>24?32:Fa)<<24>>24==(32>M<<24>>24?32:M)<<24>>24)Ea=T,B=24;else var Aa=ea,B=32;break;case 26:var wa=a[(ea+16|0)>>2];if(1==(a[(ea+20|0)>>2]|0))B=27;else var Ga=wa,B=28;break;case 27:0==(wa|0)?(Ga=0,B=28):(Aa=ea,B=32);break;case 28:var Qa=
+ea+12|0;if(ia)B=31;else var U=0,B=29;break;case 29:U>>>0>>0?B=30:(ja=ea,B=34);break;case 30:var uc=U+1|0;l[a[Qa>>2]+U|0]<<24>>24==l[0+U|0]<<24>>24?(U=uc,B=29):(Aa=ea,B=32);break;case 31:0==(Ga|0)?(ja=ea,B=34):(Aa=ea,B=32);break;case 32:var Ma=a[(Aa|0)>>2],B=0==(Ma|0)?35:33;break;case 33:1414284622==(a[(Ma+4|0)>>2]|0)?(ea=Ma,B=20):(Aa=Ma,B=32);break;case 34:if(0==(ja|0))B=35;else var n=ja,B=41;break;case 35:var qa=xd(1,36),Sa=qa,B=0==(qa|0)?61:36;break;case 36:var Ca=Eb+85748|0,Va=a[Ca>>2],B=0==
+(Va|0)?38:37;break;case 37:B=0==(a[la>>2]|0)?38:39;break;case 38:a[la>>2]=Sa;B=40;break;case 39:a[(Va|0)>>2]=Sa;B=40;break;case 40:n=a[Ca>>2]=Sa;B=41;break;case 41:a[(n+4|0)>>2]=1414284622;var Ha=n+8|0,B=42;break;case 42:var Ta=l[143776],B=0==Ta<<24>>24?43:46;break;case 43:l[Ha]=88;l[n+9|0]=88;l[n+10|0]=88;B=48;break;case 44:l[n+10|0]=l[143778];B=48;break;case 45:var Ua;ra(Ua+(n+8)|0,32,Ua^3);B=48;break;case 46:l[Ha]=Ta;0==l[143776]<<24>>24?(Ua=1,B=45):B=47;break;case 47:l[n+9|0]=l[143777];0==l[143776]<<
+24>>24?(Ua=2,B=45):B=44;break;case 48:var Nb=n+12|0;if(0==(Nb|0))var gb=0,B=54;else B=49;break;case 49:ua(a[Nb>>2]);gb=a[Nb>>2]=0;B=54;break;case 50:var Na=f+1|0;0==l[0+f|0]<<24>>24?B=51:(f=Na,B=50);break;case 51:0==(f|0)?(gb=0,B=54):B=52;break;case 52:var $a=xd(Na,1);a[Nb>>2]=$a;0==($a|0)?(gb=0,B=54):B=53;break;case 53:ha($a,0,f);l[$a+f|0]=0;gb=f;B=54;break;case 54:a[(n+16|0)>>2]=gb;a[(n+20|0)>>2]=0;var Gb=n+24|0;if(0==(Gb|0))var Ja=0,B=60;else B=55;break;case 55:ua(a[Gb>>2]);a[Gb>>2]=0;if(0==(O|
+0))Ja=0,B=60;else var lb=0,B=56;break;case 56:var Ra=lb+1|0;0==l[O+lb|0]<<24>>24?B=57:(lb=Ra,B=56);break;case 57:0==(lb|0)?(Ja=0,B=60):B=58;break;case 58:var sb=xd(Ra,1);a[Gb>>2]=sb;0==(sb|0)?(Ja=0,B=60):B=59;break;case 59:ha(sb,O,lb);l[sb+lb|0]=0;Ja=lb;B=60;break;case 60:a[(n+28|0)>>2]=Ja;a[(n+32|0)>>2]=0;var ob=Eb+85696|0;a[ob>>2]|=3;B=61;break;case 61:m=Wa;break a}}a[C>>2]=ba;g=22;break;case 22:var hb=v+85728|0;if(0==(a[hb>>2]|0))var mb=0,Oa=10,g=28;else g=23;break;case 23:var nb=a[(v+85732|0)>>
+2];0==(nb|0)?(mb=0,Oa=10,g=28):g=24;break;case 24:var xb=a[(v+85740|0)>>2];if(2==(xb|0))g=25;else if(3==(xb|0))g=26;else if(1==(xb|0))var Ya=142616,g=27;else mb=0,Oa=10,g=28;break;case 25:Ya=142080;g=27;break;case 26:Ya=141656;g=27;break;case 27:var Ia=Ag(Ya),tb=(nb+24|0)+Ia|0,mb=Ya,Oa=tb,g=28;break;case 28:var Ka=v+85744|0,ab=a[Ka>>2];if(0==(ab|0))var ga=Oa,g=51;else var xa=Oa,La=ab,g=29;break;case 29:var yb=a[(La+4|0)>>2],g=1129270605==(yb|0)|1431520594==(yb|0)?30:36;break;case 30:var pb=a[(La+
+16|0)>>2],g=1==(a[(La+20|0)>>2]|0)?32:31;break;case 31:var r=pb+15|0,g=33;break;case 32:r=(pb<<1)+16|0;g=33;break;case 33:var Hb=a[(La+28|0)>>2],g=1==(a[(La+32|0)>>2]|0)?35:34;break;case 34:var Bb=Hb+r|0,g=50;break;case 35:Bb=(Hb<<1)+r|0;g=50;break;case 36:var Ib=yb&-16777216,g=1459617792==(Ib|0)|0==(Ib|0)?37:45;break;case 37:var Fb=a[(La+16|0)>>2];if(0==(Fb|0))var bb=10,g=41;else g=38;break;case 38:g=1==(a[(La+20|0)>>2]|0)?40:39;break;case 39:bb=Fb+12|0;g=41;break;case 40:bb=(Fb<<1)+13|0;g=41;break;
+case 41:var qb=a[(La+28|0)>>2];0==(qb|0)?(Bb=bb,g=50):g=42;break;case 42:g=1==(a[(La+32|0)>>2]|0)?44:43;break;case 43:Bb=qb+bb|0;g=50;break;case 44:Bb=(bb-1|0)+qb|0;g=50;break;case 45:var cb=a[(La+16|0)>>2],ya=0!=(cb|0),g=1==(a[(La+32|0)>>2]|0)?47:46;break;case 46:var X=cb+12|0,Bb=a[(La+28|0)>>2]+(ya?X:11)|0,g=50;break;case 47:if(ya)g=48;else var Jb=11,g=49;break;case 48:Jb=(cb<<1)+13|0;g=49;break;case 49:Bb=(a[(La+28|0)>>2]<<1)+Jb|0;g=50;break;case 50:var db=Bb+xa|0,jb=a[(La|0)>>2];0==(jb|0)?(ga=
+db,g=51):(xa=db,La=jb,g=29);break;case 51:if(0==(a[E>>2]&32|0))var $=ga,g=53;else g=52;break;case 52:$=a[(v+85736|0)>>2]+ga|0;g=53;break;case 53:$>>>0>e>>>0?(kb=$,g=163):g=54;break;case 54:0==(d|0)?(kb=0,g=163):g=55;break;case 55:var oa=d+1|0;l[d]=73;var Ek=d+2|0;l[oa]=68;var lc=d+3|0;l[Ek]=51;var vc=d+4|0;l[lc]=3;var Qj=d+5|0;l[vc]=0;var wc=d+6|0;l[Qj]=0;var Tb=$-10|0,Ub=d+7|0;l[wc]=Tb>>>21&127;var ub=d+8|0;l[Ub]=Tb>>>14&127;var fc=d+9|0;l[ub]=Tb>>>7&127;var vb=d+10|0;l[fc]=Tb&127;var xc=a[Ka>>2];
+if(0==(xc|0))var Qb=vb,g=155;else var eb=vb,Kb=xc,g=56;break;case 56:var mc=a[(Kb+4|0)>>2],g=1129270605==(mc|0)|1431520594==(mc|0)?57:87;break;case 57:var gc=Kb+20|0,ld=Kb+16|0,Zb=a[ld>>2],g=1==(a[gc>>2]|0)?59:58;break;case 58:var nc=Zb+15|0,g=60;break;case 59:nc=(Zb<<1)+16|0;g=60;break;case 60:var yc=Kb+32|0,rc=Kb+28|0,Pc=(a[rc>>2]<<(1==(a[yc>>2]|0)&1))+nc|0;if(10>>0)g=61;else var cc=eb,g=154;break;case 61:l[eb+3|0]=mc&255;l[eb+2|0]=mc>>>8&255;l[eb+1|0]=mc>>>16&255;l[eb]=mc>>>24&255;var ib=eb+
+4|0,ic=Pc-10|0;l[eb+7|0]=ic&255;l[eb+6|0]=ic>>>8&255;l[eb+5|0]=ic>>>16&255;l[ib]=ic>>>24&255;var Wc=eb+9|0;l[eb+8|0]=0;var Gc=eb+10|0;l[Wc]=0;var Hc=Kb+24|0,Lc=eb+11|0;l[Gc]=1==(a[yc>>2]|0)&1;var Js=eb+12|0;l[Lc]=l[Kb+8|0];var zc=eb+13|0;l[Js]=l[Kb+9|0];var zb=eb+14|0;l[zc]=l[Kb+10|0];var Cb=Kb+12|0,g=1==(a[gc>>2]|0)?67:62;break;case 62:var Vb=a[ld>>2];if(0==(Vb|0))var $b=zb,g=66;else g=63;break;case 63:var Rb=zb,Xb=a[(Cb|0)>>2],sc=Vb,g=64;break;case 64:var Qc=sc-1|0,Rc=Xb+1|0,Zc=Rb+1|0;l[Rb]=l[Xb];
+0==(Qc|0)?g=65:(Rb=Zc,Xb=Rc,sc=Qc,g=64);break;case 65:$b=eb+(Vb+14|0)|0;g=66;break;case 66:var Td=$b+1|0;l[$b]=0;var Ac=Td,g=75;break;case 67:var Mc=a[Cb>>2],Bc=a[ld>>2];if(0==(Bc|0))var Cc=zb,g=74;else g=68;break;case 68:var dd=Xa[Mc>>1],Yb=-2==dd<<16>>16,Sc=Bc,Dc=Mc,Ec=zb,oc=dd,g=69;break;case 69:var $c=Sc-1|0,ad=Dc+2|0,Ud=oc&255,Wb=(oc&65535)>>>8&255;if(Yb)g=70;else var Ic=Wb,li=Ud,g=71;break;case 70:var qd=ki(oc),Dd=qd&255,Ic=(qd&65535)>>>8&255,li=Dd,g=71;break;case 71:var rd=Ec+1|0;l[Ec]=li;
+l[rd]=Ic;g=0==($c|0)?73:72;break;case 72:var sd=Ec+2|0,md=Xa[ad>>1],Sc=$c,Dc=ad,Ec=sd,oc=md,g=69;break;case 73:Cc=eb+((Bc<<1)+14|0)|0;g=74;break;case 74:var ec=Cc+1|0;l[Cc]=0;var Wo=Cc+2|0;l[ec]=0;Ac=Wo;g=75;break;case 75:g=1==(a[yc>>2]|0)?80:76;break;case 76:var Ed=a[rc>>2];0==(Ed|0)?(cc=Ac,g=154):g=77;break;case 77:var Za=Ac,Vd=a[(Hc|0)>>2],Mb=Ed,g=78;break;case 78:var Od=Mb-1|0,Wd=Vd+1|0,Xd=Za+1|0;l[Za]=l[Vd];0==(Od|0)?g=79:(Za=Xd,Vd=Wd,Mb=Od,g=78);break;case 79:cc=Ac+Ed|0;g=154;break;case 80:var ac=
+a[Hc>>2],Re=a[rc>>2];0==(Re|0)?(cc=Ac,g=154):g=81;break;case 81:var Yd=Xa[ac>>1],Oc=-2==Yd<<16>>16,bc=Re,me=ac,Zd=Ac,yd=Yd,g=82;break;case 82:var nd=bc-1|0,Pd=me+2|0,$d=yd&255,fe=(yd&65535)>>>8&255;if(Oc)g=83;else var ne=fe,ge=$d,g=84;break;case 83:var Se=ki(yd),oe=Se&255,ne=(Se&65535)>>>8&255,ge=oe,g=84;break;case 84:var ff=Zd+1|0;l[Zd]=ge;l[ff]=ne;g=0==(nd|0)?86:85;break;case 85:var Be=Zd+2|0,Te=Xa[Pd>>1],bc=nd,me=Pd,Zd=Be,yd=Te,g=82;break;case 86:cc=Ac+(Re<<1)|0;g=154;break;case 87:var gf=mc&-16777216,
+g=1459617792==(gf|0)|0==(gf|0)?88:125;break;case 88:var he=Kb+16|0,Ce=a[he>>2];if(0==(Ce|0))var Ue=10,g=92;else g=89;break;case 89:g=1==(a[(Kb+20|0)>>2]|0)?91:90;break;case 90:Ue=Ce+12|0;g=92;break;case 91:Ue=(Ce<<1)+13|0;g=92;break;case 92:var ie=Kb+28|0,pe=a[ie>>2];if(0==(pe|0))var hf=Ue,g=96;else g=93;break;case 93:g=1==(a[(Kb+32|0)>>2]|0)?95:94;break;case 94:hf=pe+Ue|0;g=96;break;case 95:hf=(Ue-1|0)+pe|0;g=96;break;case 96:10>>0?g=97:(cc=eb,g=154);break;case 97:l[eb+3|0]=mc&255;l[eb+2|0]=
+mc>>>8&255;l[eb+1|0]=mc>>>16&255;l[eb]=mc>>>24&255;var Xf=eb+4|0,Ve=hf-10|0;l[eb+7|0]=Ve&255;l[eb+6|0]=Ve>>>8&255;l[eb+5|0]=Ve>>>16&255;l[Xf]=Ve>>>24&255;var yf=eb+9|0;l[eb+8|0]=0;var We=eb+10|0;l[yf]=0;if(0==(a[he>>2]|0))var zd=We,g=112;else g=98;break;case 98:var jf=Kb+20|0,De=eb+11|0;l[We]=1==(a[jf>>2]|0)&1;var Nc=Kb+12|0,g=1==(a[jf>>2]|0)?104:99;break;case 99:var zf=a[he>>2];if(0==(zf|0))var Af=De,g=103;else g=100;break;case 100:var Bf=De,Xe=a[(Nc|0)>>2],ae=zf,g=101;break;case 101:var Id=ae-1|
+0,kf=Xe+1|0,jc=Bf+1|0;l[Bf]=l[Xe];0==(Id|0)?g=102:(Bf=jc,Xe=kf,ae=Id,g=101);break;case 102:Af=eb+(zf+11|0)|0;g=103;break;case 103:var fb=Af+1|0;l[Af]=0;zd=fb;g=112;break;case 104:var lf=a[Nc>>2],mf=a[he>>2];if(0==(mf|0))var td=De,g=111;else g=105;break;case 105:var dc=Xa[lf>>1],Ye=-2==dc<<16>>16,Zf=mf,Yf=lf,Ee=De,nf=dc,g=106;break;case 106:var $f=Zf-1|0,Fe=Yf+2|0,Cf=nf&255,Ze=(nf&65535)>>>8&255;if(Ye)g=107;else var je=Ze,Tc=Cf,g=108;break;case 107:var Ge=ki(nf),Kc=Ge&255,je=(Ge&65535)>>>8&255,Tc=
+Kc,g=108;break;case 108:var Dg=Ee+1|0;l[Ee]=Tc;l[Dg]=je;g=0==($f|0)?110:109;break;case 109:var Uc=Ee+2|0,Yg=Xa[Fe>>1],Zf=$f,Yf=Fe,Ee=Uc,nf=Yg,g=106;break;case 110:td=eb+((mf<<1)+11|0)|0;g=111;break;case 111:var Eg=td+1|0;l[td]=0;var Fg=td+2|0;l[Eg]=0;zd=Fg;g=112;break;case 112:var pc=Kb+24|0,g=1==(a[(Kb+32|0)>>2]|0)?117:113;break;case 113:var be=a[ie>>2];0==(be|0)?(cc=zd,g=154):g=114;break;case 114:var qe=zd,He=a[(pc|0)>>2],re=be,g=115;break;case 115:var Df=re-1|0,Gg=He+1|0,Hg=qe+1|0;l[qe]=l[He];
+0==(Df|0)?g=116:(qe=Hg,He=Gg,re=Df,g=115);break;case 116:cc=zd+be|0;g=154;break;case 117:var ag=a[pc>>2],Fd=a[ie>>2];0==(Fd|0)?(cc=zd,g=154):g=118;break;case 118:var Jd=Xa[ag>>1];if(-2==Jd<<16>>16|-257==Jd<<16>>16)g=119;else var Qd=Fd,hd=ag,g=120;break;case 119:var Ad=ag+2|0,se=Fd-1|0;0==(se|0)?(cc=zd,g=154):(Qd=se,hd=Ad,g=120);break;case 120:var bg=-2==Jd<<16>>16,Ef=hd,cg=zd,Ig=Qd,g=121;break;case 121:var $e=Ig-1|0,dg=Ef+2|0,te=Xa[Ef>>1];if(bg)g=122;else var eg=te,g=123;break;case 122:eg=ki(te);
+g=123;break;case 123:var Ff=eg&255;l[cg]=223<(eg-32&65535)?32:Ff;var Jg=cg+1|0;0==($e|0)?g=124:(Ef=dg,cg=Jg,Ig=$e,g=121);break;case 124:cc=zd+Qd|0;g=154;break;case 125:var of=Kb+32|0,af=Kb+16|0,fg=a[af>>2],gg=0!=(fg|0),g=1==(a[of>>2]|0)?127:126;break;case 126:var Gf=fg+12|0,hg=a[(Kb+28|0)>>2]+(gg?Gf:11)|0,g=130;break;case 127:if(gg)g=128;else var ig=11,g=129;break;case 128:ig=(fg<<1)+13|0;g=129;break;case 129:hg=(a[(Kb+28|0)>>2]<<1)+ig|0;g=130;break;case 130:10>>0?g=131:(cc=eb,g=154);break;case 131:l[eb+
+3|0]=mc&255;l[eb+2|0]=mc>>>8&255;l[eb+1|0]=mc>>>16&255;l[eb]=mc>>>24&255;var Pb=eb+4|0,Hf=hg-10|0;l[eb+7|0]=Hf&255;l[eb+6|0]=Hf>>>8&255;l[eb+5|0]=Hf>>>16&255;l[Pb]=Hf>>>24&255;var bf=eb+9|0;l[eb+8|0]=0;var Rd=eb+10|0;l[bf]=0;var jg=Kb+24|0,ue=eb+11|0;l[Rd]=1==(a[of>>2]|0)&1;var ve=a[af>>2];if(0==(ve|0))var Ie=ue,g=142;else g=132;break;case 132:var Vc=Kb+12|0,g=1==(a[(Kb+20|0)>>2]|0)?136:133;break;case 133:var ud=ue,If=a[(Vc|0)>>2],Pa=ve,g=134;break;case 134:var kd=Pa-1|0,Kg=If+1|0,Ld=ud+1|0;l[ud]=
+l[If];0==(kd|0)?g=135:(ud=Ld,If=Kg,Pa=kd,g=134);break;case 135:var gd=eb+(ve+12|0)|0;l[eb+(ve+11|0)|0]=0;Ie=gd;g=142;break;case 136:var ke=a[Vc>>2],kg=Xa[ke>>1],Zg=-2==kg<<16>>16,od=ve,jh=ke,lg=ue,Je=kg,g=137;break;case 137:var kh=od-1|0,lh=jh+2|0,pd=Je&255,pf=(Je&65535)>>>8&255;if(Zg)g=138;else var le=pf,mh=pd,g=139;break;case 138:var nh=ki(Je),Lg=nh&255,le=(nh&65535)>>>8&255,mh=Lg,g=139;break;case 139:var Jf=lg+1|0;l[lg]=mh;l[Jf]=le;g=0==(kh|0)?141:140;break;case 140:var de=lg+2|0,Sd=Xa[lh>>1],
+od=kh,jh=lh,lg=de,Je=Sd,g=137;break;case 141:var qf=ve<<1,Gd=eb+(qf+12|0)|0;l[eb+(qf+11|0)|0]=0;var ye=eb+(qf+13|0)|0;l[Gd]=0;Ie=ye;g=142;break;case 142:g=1==(a[of>>2]|0)?147:143;break;case 143:var Kf=a[(Kb+28|0)>>2];0==(Kf|0)?(cc=Ie,g=154):g=144;break;case 144:var Mg=Ie,Md=a[(jg|0)>>2],Lf=Kf,g=145;break;case 145:var Ng=Lf-1|0,Oe=Md+1|0,mg=Mg+1|0;l[Mg]=l[Md];0==(Ng|0)?g=146:(Mg=mg,Md=Oe,Lf=Ng,g=145);break;case 146:cc=Ie+Kf|0;g=154;break;case 147:var ng=a[jg>>2],oh=a[(Kb+28|0)>>2];0==(oh|0)?(cc=Ie,
+g=154):g=148;break;case 148:var ph=Xa[ng>>1],mi=-2==ph<<16>>16,Mf=oh,qh=ng,$g=Ie,Og=ph,g=149;break;case 149:var ah=Mf-1|0,rh=qh+2|0,sh=Og&255,ni=(Og&65535)>>>8&255;if(mi)g=150;else var Pg=ni,Hh=sh,g=151;break;case 150:var Qg=ki(Og),bh=Qg&255,Pg=(Qg&65535)>>>8&255,Hh=bh,g=151;break;case 151:var Ih=$g+1|0;l[$g]=Hh;l[Ih]=Pg;g=0==(ah|0)?153:152;break;case 152:var Jh=$g+2|0,oi=Xa[rh>>1],Mf=ah,qh=rh,$g=Jh,Og=oi,g=149;break;case 153:cc=Ie+(oh<<1)|0;g=154;break;case 154:var Kh=a[(Kb|0)>>2];0==(Kh|0)?(Qb=
+cc,g=155):(eb=cc,Kb=Kh,g=56);break;case 155:if(0==(mb|0))var Nf=Qb,g=162;else g=156;break;case 156:var cf=a[hb>>2],rf=a[(v+85732|0)>>2];0==(cf|0)|0==(rf|0)?(Nf=Qb,g=162):g=157;break;case 157:l[Qb+3|0]=67;l[Qb+2|0]=73;l[Qb+1|0]=80;l[Qb]=65;var Ke=Qb+4|0,th=Ag(mb),ce=(rf+4|0)+th|0;l[Qb+7|0]=ce&255;l[Qb+6|0]=ce>>>8&255;l[Qb+5|0]=ce>>>16&255;l[Ke]=ce>>>24&255;var pi=Qb+9|0;l[Qb+8|0]=0;var og=Qb+10|0;l[pi]=0;var pg=Qb+11|0;l[og]=0;var qg=l[mb];if(0==qg<<24>>24)var Le=pg,g=159;else var uh=pg,Lh=mb,Mh=qg,
+g=158;break;case 158:var Hd=Lh+1|0,Nh=uh+1|0;l[uh]=Mh;var ch=l[Hd];0==ch<<24>>24?(Le=Nh,g=159):(uh=Nh,Lh=Hd,Mh=ch,g=158);break;case 159:var Xc=Le+1|0;l[Le]=0;var qi=Le+2|0;l[Xc]=0;var ri=Le+3|0;l[qi]=0;var Oh=ri,vh=cf,Ph=rf,g=160;break;case 160:var Qh=Ph-1|0,wh=vh+1|0,Rh=Oh+1|0;l[Oh]=l[vh];0==(Qh|0)?g=161:(Oh=Rh,vh=wh,Ph=Qh,g=160);break;case 161:Nf=Le+(rf+3|0)|0;g=162;break;case 162:ra(Nf,0,($+d|0)-Nf|0);kb=$;g=163;break;case 163:return m=h,kb}}function $(b){for(var d=0,d=1;;)switch(d){case 1:if(0==
+(b|0))var e=0,d=3;else d=2;break;case 2:e=-487877==(a[(b|0)>>2]|0)&1;d=3;break;case 3:return e}}function Bn(k,d,e,f,c,g,h,y,l){var p=0,v=m;m=m+32|0;for(p=1;;)switch(p){case 1:var E=v,z=v+8,A=v+16,D=v+24;if(0==(k|0))var w=-3,p=60;else p=2;break;case 2:-487877==(a[(k|0)>>2]|0)?p=3:(w=-3,p=60);break;case 3:var u=a[(k+288|0)>>2];0==(u|0)?(w=-3,p=60):p=4;break;case 4:var t=u|0;-487877==(a[t>>2]|0)?p=5:(w=-3,p=60);break;case 5:0==(f|0)?(w=0,p=60):p=6;break;case 6:var s=u+52152|0,G=a[s>>2],p=0==(G|0)?10:
+7;break;case 7:p=(a[(u+52148|0)>>2]|0)<(f|0)?9:8;break;case 8:var H=G,K=a[(u+52156|0)>>2],p=13;break;case 9:ua(G);p=10;break;case 10:var Q=u+52156|0,J=a[Q>>2],p=0==(J|0)?12:11;break;case 11:ua(J);p=12;break;case 12:var F=xd(f,4),P=F;a[s>>2]=P;var da=xd(f,4);a[Q>>2]=da;a[(u+52148|0)>>2]=f;if(0==(F|0))var C=Q,ba=da,p=15;else H=P,K=da,p=13;break;case 13:var L=u+52156|0,p=0==(K|0)?14:18;break;case 14:ua(H);var O=a[L>>2],C=L,ba=O,p=15;break;case 15:p=0==(ba|0)?17:16;break;case 16:ua(ba);p=17;break;case 17:a[s>>
+2]=0;a[C>>2]=0;a[(u+52148|0)>>2]=0;Oc(u,140256,(S=m,m=m+1|0,m=m+7>>3<<3,a[S>>2]=0,S));w=-2;p=60;break;case 18:var B=0==(d|0),p=1<(a[(u+68|0)>>2]|0)?19:21;break;case 19:B|0==(e|0)?(w=0,p=60):p=20;break;case 20:Cn(u,d,e,f,h,y,l);p=23;break;case 21:B?(w=0,p=60):p=22;break;case 22:Cn(u,d,d,f,h,y,l);p=23;break;case 23:var Wa=u+76|0,V=576*a[Wa>>2]&-1,Eb=-487877!=(a[t>>2]|0),la=Eb?-3:0;Eb?(w=la,p=60):p=24;break;case 24:var W=Vo(u,c,g,0);0>(W|0)?(w=W,p=60):p=25;break;case 25:var sa=c+W|0,Yc=a[s>>2],ee=a[L>>
+2],ja=(576*a[Wa>>2]&-1)+752|0,fa=E|0;a[fa>>2]=u+52160|0;var Cd=E+4|0;a[Cd>>2]=u+68096|0;var tc=z|0,aa=z+4|0,ma=u+128|0,ia=u+72|0,ea=u+84036|0,I=u+84032|0,Y=u+136|0,R=u+85676|0;if(0==(g|0))var ta=Yc,na=ee,Z=f,Da=sa,ka=W,p=26;else var pa=Yc,za=ee,ca=f,va=sa,N=W,p=43;break;case 26:var Ea=ta,Fa=na,M=Z,p=42;break;case 27:a[A>>2]=0;a[D>>2]=0;a[tc>>2]=Ea;a[aa>>2]=Fa;gm(u,fa,tc,M,A,D);p=0==(a[ma>>2]|0)?30:28;break;case 28:p=0==(a[Y>>2]|0)?29:30;break;case 29:var T=a[ea>>2];0==(mj(a[R>>2],a[fa>>2]+(T<<2)|
+0,a[Cd>>2]+(T<<2)|0,a[D>>2],a[ia>>2])|0)?(w=-6,p=60):p=30;break;case 30:var Aa=a[A>>2],wa=M-Aa|0,Ga=Ea+(Aa<<2)|0;if(2==(a[ia>>2]|0))p=31;else var Qa=Fa,p=32;break;case 31:Qa=Fa+(Aa<<2)|0;p=32;break;case 32:var U=a[D>>2],ha=a[ea>>2]+U|0;a[ea>>2]=ha;var Ma=a[I>>2];if(1>(Ma|0))p=33;else var n=Ma,p=34;break;case 33:n=a[I>>2]=1728;p=34;break;case 34:a[I>>2]=n+U|0;(ha|0)<(ja|0)?(Ea=Ga,Fa=Qa,M=wa,p=42):p=35;break;case 35:var qa=Om(u,a[fa>>2],a[Cd>>2],Da,0);0>(qa|0)?(w=qa,p=60):p=36;break;case 36:var Sa=
+Da+qa|0,Ca=qa+ka|0,Va=a[ea>>2]-V|0;a[ea>>2]=Va;a[I>>2]=a[I>>2]-V|0;var Ha=a[ia>>2];if(0<(Ha|0))var Ta=0,Ua=Va,Nb=Ha,p=39;else ta=Ga,na=Qa,Z=wa,Da=Sa,ka=Ca,p=26;break;case 37:var gb,Na,$a=Ta+1|0;($a|0)<(gb|0)?(Ta=$a,Ua=Na,Nb=gb,p=39):(ta=Ga,na=Qa,Z=wa,Da=Sa,ka=Ca,p=26);break;case 38:var Gb;b[(Ra+(Gb<<2)|0)>>2]=b[(Ra+((Gb+V|0)<<2)|0)>>2];var Ja=Gb+1|0,lb=a[ea>>2];(Ja|0)<(lb|0)?(Gb=Ja,p=38):p=41;break;case 39:0<(Ua|0)?p=40:(Na=Ua,gb=Nb,p=37);break;case 40:var Ra=a[(E+(Ta<<2)|0)>>2];Gb=0;p=38;break;case 41:var sb=
+a[ia>>2];Na=lb;gb=sb;p=37;break;case 42:0<(M|0)?p=27:(w=ka,p=60);break;case 43:var ob=pa,hb=za,mb=ca,p=44;break;case 44:0<(mb|0)?p=45:(w=N,p=60);break;case 45:a[A>>2]=0;a[D>>2]=0;a[tc>>2]=ob;a[aa>>2]=hb;gm(u,fa,tc,mb,A,D);p=0==(a[ma>>2]|0)?48:46;break;case 46:p=0==(a[Y>>2]|0)?47:48;break;case 47:var Oa=a[ea>>2];0==(mj(a[R>>2],a[fa>>2]+(Oa<<2)|0,a[Cd>>2]+(Oa<<2)|0,a[D>>2],a[ia>>2])|0)?(w=-6,p=60):p=48;break;case 48:var nb=a[A>>2],xb=mb-nb|0,Ya=ob+(nb<<2)|0;if(2==(a[ia>>2]|0))p=49;else var Ia=hb,p=
+50;break;case 49:Ia=hb+(nb<<2)|0;p=50;break;case 50:var tb=a[D>>2],Ka=a[ea>>2]+tb|0;a[ea>>2]=Ka;var ab=a[I>>2];if(1>(ab|0))p=51;else var ga=ab,p=52;break;case 51:ga=a[I>>2]=1728;p=52;break;case 52:a[I>>2]=ga+tb|0;(Ka|0)<(ja|0)?(ob=Ya,hb=Ia,mb=xb,p=44):p=53;break;case 53:var xa=Om(u,a[fa>>2],a[Cd>>2],va,g-N|0);0>(xa|0)?(w=xa,p=60):p=54;break;case 54:var La=va+xa|0,yb=xa+N|0,pb=a[ea>>2]-V|0;a[ea>>2]=pb;a[I>>2]=a[I>>2]-V|0;var r=a[ia>>2];if(0<(r|0))var Hb=0,Bb=pb,Ib=r,p=55;else pa=Ya,za=Ia,ca=xb,va=
+La,N=yb,p=43;break;case 55:if(0<(Bb|0))p=56;else var Fb=Bb,bb=Ib,p=59;break;case 56:var qb=a[(E+(Hb<<2)|0)>>2],cb=0,p=57;break;case 57:b[(qb+(cb<<2)|0)>>2]=b[(qb+((cb+V|0)<<2)|0)>>2];var ya=cb+1|0,X=a[ea>>2];(ya|0)<(X|0)?(cb=ya,p=57):p=58;break;case 58:var Jb=a[ia>>2],Fb=X,bb=Jb,p=59;break;case 59:var db=Hb+1|0;(db|0)<(bb|0)?(Hb=db,Bb=Fb,Ib=bb,p=55):(pa=Ya,za=Ia,ca=xb,va=La,N=yb,p=43);break;case 60:return m=v,w}}function Cn(k,d,e,f,c,g,h){for(var y=0,y=1;;)switch(y){case 1:var l=a[(k+52152|0)>>2],
+p=a[(k+52156|0)>>2],m=b[(k+264|0)>>2]*h,E=b[(k+268|0)>>2]*h,z=b[(k+272|0)>>2]*h,A=b[(k+276|0)>>2]*h,y=0==(c|0)?2:1==(c|0)?5:2==(c|0)?8:3==(c|0)?11:4==(c|0)?14:17;break;case 2:y=0<(f|0)?3:17;break;case 3:var D=0,w=e,u=d,y=4;break;case 4:var y=Xa[u>>1]<<16>>16,t=Xa[w>>1]<<16>>16,s=z*y+A*t;b[(l+(D<<2)|0)>>2]=m*y+E*t;b[(p+(D<<2)|0)>>2]=s;y=u+(g<<1)|0;t=w+(g<<1)|0;s=D+1|0;(s|0)<(f|0)?(D=s,w=t,u=y,y=4):y=17;break;case 5:y=0<(f|0)?6:17;break;case 6:var G=0,H=e,K=d,y=7;break;case 7:y=a[K>>2]|0;t=a[H>>2]|
+0;s=z*y+A*t;b[(l+(G<<2)|0)>>2]=m*y+E*t;b[(p+(G<<2)|0)>>2]=s;y=K+(g<<2)|0;t=H+(g<<2)|0;s=G+1|0;(s|0)<(f|0)?(G=s,H=t,K=y,y=7):y=17;break;case 8:y=0<(f|0)?9:17;break;case 9:var Q=0,J=e,F=d,y=10;break;case 10:y=a[F>>2]|0;t=a[J>>2]|0;s=z*y+A*t;b[(l+(Q<<2)|0)>>2]=m*y+E*t;b[(p+(Q<<2)|0)>>2]=s;y=F+(g<<2)|0;t=J+(g<<2)|0;s=Q+1|0;(s|0)<(f|0)?(Q=s,J=t,F=y,y=10):y=17;break;case 11:y=0<(f|0)?12:17;break;case 12:var P=d,da=e,C=0,y=13;break;case 13:y=b[P>>2];t=b[da>>2];s=z*y+A*t;b[(l+(C<<2)|0)>>2]=m*y+E*t;b[(p+(C<<
+2)|0)>>2]=s;y=P+(g<<2)|0;t=da+(g<<2)|0;s=C+1|0;(s|0)<(f|0)?(P=y,da=t,C=s,y=13):y=17;break;case 14:y=0<(f|0)?15:17;break;case 15:var ba=d,L=e,O=0,y=16;break;case 16:y=oa[ba>>3];t=oa[L>>3];s=z*y+A*t;b[(l+(O<<2)|0)>>2]=m*y+E*t;b[(p+(O<<2)|0)>>2]=s;y=ba+(g<<3)|0;t=L+(g<<3)|0;s=O+1|0;(s|0)<(f|0)?(ba=y,L=t,O=s,y=16):y=17;break;case 17:return}}function Po(a){for(var b=0,b=1;;)switch(b){case 1:b=0==(a|0)?3:2;break;case 2:PA(a);ua(a);b=3;break;case 3:return 0}}function TA(k,d,e){var f=0,c=m;m=m+72|0;for(f=
+1;;)switch(f){case 1:var g=c,h=k+72|0,f=0<(a[h>>2]|0)?2:26;break;case 2:var y=k+76|0,l=g|0,p=g+68|0,v=g+36|0,E=g+60|0,z=g+44|0,A=g+56|0,D=g+48|0,w=g+32|0,u=g+4|0,t=g+28|0,s=g+8|0,G=g+24|0,H=g+12|0,K=g+20|0,Q=g+16|0,J=g+64|0,F=g+40|0,P=g+52|0,da=d,C=0,f=3;break;case 3:f=0<(a[y>>2]|0)?4:25;break;case 4:var ba=da+1144|0,L=0,f=5;break;case 5:var O=1-L|0,B=k+27824+(4608*C&-1)+(2304*O&-1)|0,Wa=ba,V=0,f=6;break;case 6:hm(Wa,B);hm(Wa+128|0,B+128|0);var Eb=B+256|0,la=B+132|0;b[la>>2]*=-1;var W=B+140|0;b[W>>
+2]*=-1;var sa=B+148|0;b[sa>>2]*=-1;var Yc=B+156|0;b[Yc>>2]*=-1;var I=B+164|0;b[I>>2]*=-1;var ja=B+172|0;b[ja>>2]*=-1;var fa=B+180|0;b[fa>>2]*=-1;var Cd=B+188|0;b[Cd>>2]*=-1;var tc=B+196|0;b[tc>>2]*=-1;var aa=B+204|0;b[aa>>2]*=-1;var ma=B+212|0;b[ma>>2]*=-1;var ia=B+220|0;b[ia>>2]*=-1;var ea=B+228|0;b[ea>>2]*=-1;var R=B+236|0;b[R>>2]*=-1;var Y=B+244|0;b[Y>>2]*=-1;var S=B+252|0;b[S>>2]*=-1;var ta=Wa+256|0,na=V+1|0;9>(na|0)?(B=Eb,Wa=ta,V=na,f=6):f=7;break;case 7:var Z=k+304+(10504*L&-1)+(5252*C&-1)+
+4788|0,N=k+304+(10504*L&-1)+(5252*C&-1)+4792|0,ka=k+304+(10504*L&-1)+(5252*C&-1)|0,pa=0,f=8;break;case 8:var za=a[Z>>2],ca=a[(48880+(pa<<2)|0)>>2],va=0!=(a[N>>2]|0)&2>(pa|0)?0:za,T=k+37040+(pa<<2)|0,Ea=b[T>>2],f=1E-12>Ea?9:10;break;case 9:ra(ka,0,72);f=19;break;case 10:f=1>Ea?11:13;break;case 11:var Fa=k+27824+(4608*C&-1)+(2304*O&-1)+(ca<<2)|0;b[Fa>>2]*=Ea;var M=1,f=12;break;case 12:var U=k+27824+(4608*C&-1)+(2304*O&-1)+(((M<<5)+ca|0)<<2)|0;b[U>>2]*=b[T>>2];var Aa=M+1|0;18>(Aa|0)?(M=Aa,f=12):f=13;
+break;case 13:if(2==(va|0))f=14;else var wa=-9,f=17;break;case 14:var Ga=ca+288|0,Qa=ca+480|0,$=-3,f=15;break;case 15:var uc=$+3|0,Ma=b[(4904+(uc<<2)|0)>>2],n=$<<5,qa=Ga+n|0,Sa=((8-$|0)<<5)+ca|0,Ca=3*$&-1;b[(ka+((Ca+9|0)<<2)|0)>>2]=Ma*b[(k+27824+(4608*C&-1)+(2304*L&-1)+(qa<<2)|0)>>2]-b[(k+27824+(4608*C&-1)+(2304*L&-1)+(Sa<<2)|0)>>2];var Va=k+27824+(4608*C&-1)+(2304*L&-1)+((((14-$|0)<<5)+ca|0)<<2)|0,Ha=k+27824+(4608*C&-1)+(2304*L&-1)+((Qa+n|0)<<2)|0;b[(ka+((Ca+18|0)<<2)|0)>>2]=Ma*b[Va>>2]+b[Ha>>2];
+b[(ka+((Ca+10|0)<<2)|0)>>2]=Ma*b[Ha>>2]-b[Va>>2];var Ta=k+27824+(4608*C&-1)+(2304*O&-1)+((((2-$|0)<<5)+ca|0)<<2)|0,Ua=k+27824+(4608*C&-1)+(2304*O&-1)+(((uc<<5)+ca|0)<<2)|0;b[(ka+((Ca+19|0)<<2)|0)>>2]=Ma*b[Ta>>2]+b[Ua>>2];b[(ka+((Ca+11|0)<<2)|0)>>2]=Ma*b[Ua>>2]-b[Ta>>2];b[(ka+((Ca+20|0)<<2)|0)>>2]=Ma*b[(k+27824+(4608*C&-1)+(2304*O&-1)+(Sa<<2)|0)>>2]+b[(k+27824+(4608*C&-1)+(2304*O&-1)+(qa<<2)|0)>>2];var Nb=$+1|0;if(0>(Nb|0))$=Nb,f=15;else var gb=0,Na=ka,f=16;break;case 16:var $a=Na+24|0,Gb=b[$a>>2],
+Ja=Na+60|0,lb=b[Ja>>2],Ra=0.13165250420570374*Gb-lb,sb=b[Na>>2],ob=Na+36|0,hb=b[ob>>2],mb=0.7673270106315613*sb-hb,Oa=Ra-mb,nb=Gb+0.13165250420570374*lb,xb=sb+0.7673270106315613*hb,Ya=nb+xb,Ia=xb-nb,tb=Na+12|0,Ka=b[tb>>2],ab=Na+48|0,ga=b[ab>>2],xa=2.069978111953089E-11*(Ka+0.4142135679721832*ga),La=Ra+mb,yb=2.069978111953089E-11*(0.4142135679721832*Ka-ga);b[Na>>2]=1.90752519173728E-11*La+yb;var pb=xa;b[Ja>>2]=1.90752519173728E-11*-Ya+pb;var r=1.6519652744032674E-11*Oa,Hb=9.537625958686404E-12*Ya+
+pb;b[tb>>2]=r-Hb;b[$a>>2]=r+Hb;var Bb=9.537625958686404E-12*La-yb,Ib=1.6519652744032674E-11*Ia;b[ob>>2]=Ib+Bb;b[ab>>2]=Bb-Ib;var Fb=Na+4|0,bb=gb+1|0;3>(bb|0)?(gb=bb,Na=Fb,f=16):f=19;break;case 17:var qb=wa+9|0,cb=(qb<<5)+ca|0,ya=((8-wa|0)<<5)+ca|0,X=b[(4616+(144*va&-1)+((wa+27|0)<<2)|0)>>2]*b[(k+27824+(4608*C&-1)+(2304*O&-1)+(cb<<2)|0)>>2]+b[(4616+(144*va&-1)+((wa+36|0)<<2)|0)>>2]*b[(k+27824+(4608*C&-1)+(2304*O&-1)+(ya<<2)|0)>>2],Jb=wa+18|0,db=b[(4616+(144*va&-1)+(qb<<2)|0)>>2]*b[(k+27824+(4608*C&
+-1)+(2304*L&-1)+(cb<<2)|0)>>2]-b[(4616+(144*va&-1)+(Jb<<2)|0)>>2]*b[(k+27824+(4608*C&-1)+(2304*L&-1)+(ya<<2)|0)>>2],jb=b[(4904+((wa+12|0)<<2)|0)>>2];b[(g+(qb<<2)|0)>>2]=X-jb*db;b[(g+(Jb<<2)|0)>>2]=db+X*jb;var oa=wa+1|0;0>(oa|0)?(wa=oa,f=17):f=18;break;case 18:var ua=b[p>>2]-b[v>>2],Ek=b[E>>2]-b[z>>2],lc=b[A>>2]-b[D>>2],vc=b[l>>2]+b[w>>2],Qj=b[u>>2]+b[t>>2],wc=b[s>>2]+b[G>>2],Tb=b[H>>2]+b[K>>2],Ub=vc+wc-Tb;b[(ka+68|0)>>2]=Ub-(Qj-b[Q>>2]);var ub=0.5*Ub+(Qj-b[Q>>2]),fc=0.8660253882408142*(ua-Ek-lc);
+b[(ka+20|0)>>2]=fc+ub;b[(ka+24|0)>>2]=fc-ub;var vb=0.8660253882408142*(b[J>>2]-b[F>>2]),xc=0.5*Qj+b[Q>>2],Qb=0.3420201539993286*lc+(0.6427876353263855*Ek+(0.9848077297210693*ua+vb)),eb=0.9396926164627075*Tb+(0.1736481785774231*vc+xc- -0.7660444378852844*wc);b[(ka+4|0)>>2]=Qb+eb;b[(ka+8|0)>>2]=Qb-eb;var Kb=0.9848077297210693*lc+(0.6427876353263855*ua-vb-0.3420201539993286*Ek),mc=-0.1736481785774231*Tb+(0.7660444378852844*vc+xc-0.9396926164627075*wc);b[(ka+36|0)>>2]=Kb+mc;b[(ka+40|0)>>2]=Kb-mc;var gc=
+0.9848077297210693*Ek+(0.3420201539993286*ua-vb)-0.6427876353263855*lc,ld=-0.1736481785774231*wc+(0.9396926164627075*vc-xc)- -0.7660444378852844*Tb;b[(ka+52|0)>>2]=gc+ld;b[(ka+56|0)>>2]=gc-ld;var Zb=b[w>>2]-b[l>>2],nc=b[G>>2]-b[s>>2],yc=b[K>>2]-b[H>>2],rc=b[p>>2]+b[v>>2],Pc=b[J>>2]+b[F>>2],cc=b[E>>2]+b[z>>2],ib=b[A>>2]+b[D>>2],ic=rc+cc+ib;b[ka>>2]=ic+(Pc+b[P>>2]);var Wc=0.5*ic-(Pc+b[P>>2]),Gc=0.8660253882408142*(Zb-nc+yc);b[(ka+44|0)>>2]=Gc+Wc;b[(ka+48|0)>>2]=Wc-Gc;var Hc=0.8660253882408142*(b[t>>
+2]-b[u>>2]),Lc=b[P>>2]-0.5*Pc,Xa=-0.7660444378852844*ib+(-0.1736481785774231*cc+(0.9396926164627075*rc-Lc)),zc=0.6427876353263855*yc+(0.9848077297210693*nc+(0.3420201539993286*Zb+Hc));b[(ka+12|0)>>2]=Xa+zc;b[(ka+16|0)>>2]=Xa-zc;var zb=0.7660444378852844*rc+Lc-0.9396926164627075*cc- -0.1736481785774231*ib,Cb=0.6427876353263855*Zb+Hc-0.3420201539993286*nc-0.9848077297210693*yc;b[(ka+28|0)>>2]=zb+Cb;b[(ka+32|0)>>2]=zb-Cb;var Vb=0.1736481785774231*rc+Lc- -0.7660444378852844*cc-0.9396926164627075*ib,$b=
+0.6427876353263855*nc+(0.9848077297210693*Zb-Hc)-0.3420201539993286*yc;b[(ka+60|0)>>2]=Vb+$b;b[(ka+64|0)>>2]=Vb-$b;f=19;break;case 19:if(2==(va|0)|0==(pa|0))f=21;else var Rb=7,f=20;break;case 20:var Xb=ka+(Rb<<2)|0,sc=b[Xb>>2],Qc=b[(4904+((Rb+20|0)<<2)|0)>>2],Rc=ka+((Rb^-1)<<2)|0,Zc=b[Rc>>2],Td=b[(4904+((Rb+28|0)<<2)|0)>>2],Ac=sc*Td-Qc*Zc;b[Rc>>2]=sc*Qc+Zc*Td;b[Xb>>2]=Ac;var Mc=Rb-1|0;0<(Rb|0)?(Rb=Mc,f=20):f=21;break;case 21:var Bc=pa+1|0,Cc=ka+72|0;32>(Bc|0)?(ka=Cc,pa=Bc,f=8):f=22;break;case 22:var dd=
+ba+2304|0,Yb=L+1|0,Sc=a[y>>2];(Yb|0)<(Sc|0)?(ba=dd,L=Yb,f=5):f=23;break;case 23:f=1==(Sc|0)?24:25;break;case 24:ha(k+27824+(4608*C&-1)|0,k+27824+(4608*C&-1)+2304|0,2304);f=25;break;case 25:var Dc=C+1|0;(Dc|0)<(a[h>>2]|0)?(da=e,C=Dc,f=3):f=26;break;case 26:m=c;return}}function hm(a,d){for(var e=0,e=1;;)switch(e){case 1:var f=a-248|0,c=103896,g=-15,h=a,e=2;break;case 2:var y=b[(c-40|0)>>2],l=b[(c-36|0)>>2],p=b[(c-32|0)>>2],m=b[(c-28|0)>>2],E=b[(c-24|0)>>2],z=b[(c-20|0)>>2],A=b[(c-16|0)>>2],D=b[(c-12|
+0)>>2],w=b[(c-8|0)>>2],u=b[(c-4|0)>>2],t=b[c>>2],s=b[(c+4|0)>>2],G=b[(c+8|0)>>2],H=b[(c+12|0)>>2],K=b[(c+16|0)>>2],Q=b[(c+20|0)>>2],J=y*b[(h+896|0)>>2]+l*b[(h+640|0)>>2]+p*b[(h+384|0)>>2]+m*b[(h+128|0)>>2]+E*b[(h-128|0)>>2]+z*b[(h-384|0)>>2]+A*b[(h-640|0)>>2]+D*b[(h-896|0)>>2]-w*b[(f+1024|0)>>2]-u*b[(f+768|0)>>2]-t*b[(f+512|0)>>2]-s*b[(f+256|0)>>2]-G*b[f>>2]-H*b[(f-256|0)>>2]-K*b[(f-512|0)>>2]-Q*b[(f-768|0)>>2],F=(y*b[(f-896|0)>>2]+l*b[(f-640|0)>>2]+p*b[(f-384|0)>>2]+m*b[(f-128|0)>>2]+E*b[(f+128|
+0)>>2]+z*b[(f+384|0)>>2]+A*b[(f+640|0)>>2]+D*b[(f+896|0)>>2]+w*b[(h-1024|0)>>2]+u*b[(h-768|0)>>2]+t*b[(h-512|0)>>2]+s*b[(h-256|0)>>2]+G*b[h>>2]+H*b[(h+256|0)>>2]+K*b[(h+512|0)>>2]+Q*b[(h+768|0)>>2])*b[(c+24|0)>>2],P=J-F,da=g<<1;b[(d+((da+30|0)<<2)|0)>>2]=J+F;b[(d+((da+31|0)<<2)|0)>>2]=b[(c+28|0)>>2]*P;var C=c+72|0,ba=h-4|0,L=f+4|0,O=g+1|0;0>(O|0)?(f=L,c=C,g=O,h=ba,e=2):e=3;break;case 3:var B=10612.802734375*b[(a-124|0)>>2]+5302.158203125*(b[(a-252|0)>>2]-b[(a+4|0)>>2])+929.7763061523438*(b[(a-380|
+0)>>2]+b[(a+132|0)>>2])+728.8010864257812*(b[(a-508|0)>>2]-b[(a+260|0)>>2])+288.09765625*(b[(a-636|0)>>2]+b[(a+388|0)>>2])+64.91738891601562*(b[(a-764|0)>>2]-b[(a+516|0)>>2])+30.125003814697266*(b[(a-892|0)>>2]+b[(a+644|0)>>2])+4.101456642150879*(b[(a-1020|0)>>2]-b[(a+772|0)>>2]),Wa=12804.7978515625*b[(a-188|0)>>2]+1945.5516357421875*b[(a-444|0)>>2]+313.42449951171875*b[(a-700|0)>>2]+20.801593780517578*b[(a-956|0)>>2]-1995.1556396484375*b[(a+68|0)>>2]-9.000839233398438*b[(a+324|0)>>2]- -29.202180862426758*
+b[(a+580|0)>>2]-b[(a+836|0)>>2],V=Wa-B,Eb=Wa+B,la=d+56|0,W=b[la>>2],sa=d+60|0,Yc=b[sa>>2]-W,I=W+Eb,ja=d+124|0,fa=V+Yc,R=d+120|0,tc=V-Yc,aa=Eb-W,ma=d+112|0,ia=b[ma>>2],ea=b[d>>2],S=ia+ea,Y=1.9615705013275146*(ia-ea),N=d+116|0,ta=b[N>>2],na=d+4|0,Z=b[na>>2],Da=ta+Z,ka=1.9615705013275146*(ta-Z),pa=d+104|0,za=b[pa>>2],ca=d+8|0,va=b[ca>>2],T=za+va,Ea=1.8477590084075928*(za-va),Fa=d+108|0,M=b[Fa>>2],U=d+12|0,Aa=b[U>>2],wa=M+Aa,Ga=1.8477590084075928*(M-Aa),Qa=d+96|0,$=b[Qa>>2],ha=d+16|0,Ma=b[ha>>2],n=$+
+Ma,qa=1.662939190864563*($-Ma),Sa=d+100|0,Ca=b[Sa>>2],Va=d+20|0,Ha=b[Va>>2],Ta=Ca+Ha,Ua=1.662939190864563*(Ca-Ha),Nb=d+88|0,gb=b[Nb>>2],Na=d+24|0,$a=b[Na>>2],Gb=gb+$a,Ja=d+92|0,lb=b[Ja>>2],Ra=d+28|0,sb=b[Ra>>2],ob=lb+sb,hb=ob-Gb,mb=1.4142135623730951*(gb-$a)-hb,Oa=1.4142135623730951*(lb-sb)-ob-mb,nb=I-Gb,xb=I+Gb,Ya=fa-hb,Ia=fa+hb,tb=tc-mb,Ka=tc+mb,ab=aa-Oa,ga=aa+Oa,xa=d+80|0,La=b[xa>>2],yb=d+32|0,pb=b[yb>>2],r=La+pb,Hb=1.111140489578247*(La-pb),Bb=d+84|0,Ib=b[Bb>>2],Fb=d+36|0,bb=b[Fb>>2],qb=Ib+bb,
+cb=1.111140489578247*(Ib-bb),ya=d+72|0,X=b[ya>>2],Jb=d+40|0,db=b[Jb>>2],jb=X+db,ra=0.7653668522834778*(X-db),oa=d+76|0,ua=b[oa>>2],lc=d+44|0,vc=b[lc>>2],ib=ua+vc,wc=0.7653668522834778*(ua-vc),Tb=d+64|0,Ub=b[Tb>>2],ub=d+48|0,fc=b[ub>>2],vb=Ub+fc,xc=0.39018064737319946*(Ub-fc),Qb=d+68|0,eb=b[Qb>>2],Kb=d+52|0,mc=b[Kb>>2],gc=eb+mc,ld=0.39018064737319946*(eb-mc),Zb=qa+Hb,nc=0.7653668522834778*(qa-Hb),yc=Ua+cb,rc=0.7653668522834778*(Ua-cb),Pc=n+r,cc=0.7653668522834778*(n-r),Xa=Ta+qb,ic=0.7653668522834778*
+(Ta-qb),Wc=S+vb,Gc=1.8477590084075928*(S-vb),Hc=Da+gc,Lc=1.8477590084075928*(Da-gc),Za=Y+xc,zc=1.8477590084075928*(xc-Y),zb=ka+ld,Cb=1.8477590084075928*(ka-ld),Vb=T+jb,$b=wa+ib,Rb=Ea+ra,Xb=Ga+wc,sc=Xb-$b,Qc=$b-Vb,Rc=xb-Vb,Zc=xb+Vb,Td=1.4142135623730951*(wa-ib)-sc,Ac=Rb-Qc,Mc=Ia-Qc,Bc=Ia+Qc,Cc=sc-Ac,dd=Ka-Ac,Yb=Ka+Ac,Sc=1.4142135623730951*(T-jb)-Cc,Dc=ga-Cc,Ec=ga+Cc,oc=Td-Sc,$c=ab-Sc,ad=ab+Sc,Ud=1.4142135623730951*(Ea-ra)-Rb-oc,Wb=tb-oc,Ic=tb+oc,li=1.4142135623730951*(Ga-wc)-Xb-Td-Ud,qd=Ya-Ud,Dd=Ya+
+Ud,rd=nb-li,sd=nb+li,md=Pc+Wc,ec=Xa+Hc,Mb=Zb+Za,Ed=yc+zb,ac=cc+Gc,Vd=ic+Lc,bc=rc+Cb,Od=nc-zc,Wd=Od-Mb,Xd=1.4142135623730951*(Za-Zb)-Wd,Oc=bc-Ed,Re=1.4142135623730951*(zb-yc)-Oc,Yd=Ed-ec,Tc=Vd-Yd,Kc=Oc-Tc,me=1.4142135623730951*(Hc-Xa)-Kc,Zd=Re-me,yd=-1.4142135623730951*(ic-Lc)-Vd-Zd,nd=ec-md,Pd=Mb-nd,$d=Yd-Pd,fe=ac-$d,ne=Tc-fe,ge=Wd-ne,Se=Kc-ge,oe=1.4142135623730951*(Wc-Pc)-Se,ff=me-oe,Be=Xd-ff,Te=Zd-Be,gf=-1.4142135623730951*(cc-Gc)-ac-Te,he=yd-gf,Ce=-1.4142135623730951*(nc+zc)-Od-Xd-he,Ue=-1.4142135623730951*
+(rc-Cb)-bc-Re-yd-Ce;b[d>>2]=Zc+md;b[ja>>2]=Zc-md;b[na>>2]=Bc+nd;b[R>>2]=Bc-nd;b[Tb>>2]=Yb+Pd;b[sa>>2]=Yb-Pd;b[Qb>>2]=Ec+$d;b[la>>2]=Ec-$d;b[yb>>2]=ad+fe;b[Ja>>2]=ad-fe;b[Fb>>2]=Ic+ne;b[Nb>>2]=Ic-ne;b[Qa>>2]=Dd+ge;b[Ra>>2]=Dd-ge;b[Sa>>2]=sd+Se;b[Na>>2]=sd-Se;b[ha>>2]=rd+oe;b[Fa>>2]=rd-oe;b[Va>>2]=qd+ff;b[pa>>2]=qd-ff;b[xa>>2]=Wb+Be;b[lc>>2]=Wb-Be;b[Bb>>2]=$c+Te;b[Jb>>2]=$c-Te;b[ub>>2]=Dc+gf;b[oa>>2]=Dc-gf;b[Kb>>2]=dd+he;b[ya>>2]=dd-he;b[ma>>2]=Mc+Ce;b[U>>2]=Mc-Ce;b[N>>2]=Rc+Ue;b[ca>>2]=Rc-Ue;return}}
+function jo(b,d,e){for(var f=0,f=1;;)switch(f){case 1:f=1E3==(d|0)?2:1006==(d|0)|1007==(d|0)?3:1001==(d|0)|1004==(d|0)?4:1002==(d|0)|1005==(d|0)?5:1003==(d|0)?6:7;break;case 2:Uf(b,4);a[(b+152|0)>>2]=470;f=14;break;case 3:Uf(b,4);a[(b+152|0)>>2]=460;f=13;break;case 4:Uf(b,4);a[(b+152|0)>>2]=480;f=15;break;case 5:Uf(b,4);a[(b+152|0)>>2]=500;f=17;break;case 6:a[(b+152|0)>>2]=320;im(b,320,e);Uf(b,0);var c=320,f=21;break;case 7:var g=b+152|0;a[g>>2]=d;f=410==(d|0)?8:420==(d|0)?9:430==(d|0)?10:440==(d|
+0)?11:450==(d|0)?12:460==(d|0)?13:470==(d|0)?14:480==(d|0)?15:490==(d|0)?16:500==(d|0)?17:18;break;case 8:Oe(b,9,e);c=410;f=21;break;case 9:Oe(b,8,e);c=420;f=21;break;case 10:Oe(b,7,e);c=430;f=21;break;case 11:Oe(b,6,e);c=440;f=21;break;case 12:Oe(b,5,e);c=450;f=21;break;case 13:Oe(b,4,e);c=460;f=21;break;case 14:Oe(b,3,e);c=470;f=21;break;case 15:Oe(b,2,e);c=480;f=21;break;case 16:Oe(b,1,e);c=490;f=21;break;case 17:Oe(b,0,e);c=500;f=21;break;case 18:f=313>(d-8|0)>>>0?19:20;break;case 19:c=im(b,d,
+e);f=21;break;case 20:a[g>>2]=0;c=d;f=21;break;case 21:return c}}function im(k,d,e){for(var f=0,f=1;;)switch(f){case 1:var c=Qo(d&65535);Uf(k,3);Kj(k,d);f=jm(k);Kj(k,320>(f|0)?f:320);f=jm(k);Kj(k,8<(f|0)?f:8);f=jm(k);Dn(k,f);f=5>(c-12|0)>>>0?2:3;break;case 2:f=ko(k)|2;tk(k,f);f=3;break;case 3:f=13>c>>>0?4:5;break;case 4:a:for(var f=k,g=0,g=1;;)switch(g){case 1:g=0==($(f)|0)?3:2;break;case 2:a[(f+84|0)>>2]=2;g=3;break;case 3:break a}f=5;break;case 5:var h=0!=(e|0),f=h?14:6;break;case 6:f=-1==(lo(k)|
+0)?7:8;break;case 7:$k(k,a[(106348+(52*c&-1)|0)>>2]);f=8;break;case 8:f=-1==(uk(k)|0)?9:10;break;case 9:vk(k,a[(106352+(52*c&-1)|0)>>2]);f=10;break;case 10:f=0==wk(k)+1?11:12;break;case 11:xk(k,b[(106360+(52*c&-1)|0)>>2]);f=12;break;case 12:f=0==km(k)+1?13:15;break;case 13:lm(k,b[(106364+(52*c&-1)|0)>>2]);f=15;break;case 14:$k(k,a[(106348+(52*c&-1)|0)>>2]);vk(k,a[(106352+(52*c&-1)|0)>>2]);xk(k,b[(106360+(52*c&-1)|0)>>2]);lm(k,b[(106364+(52*c&-1)|0)>>2]);al(k,b[(106368+(52*c&-1)|0)>>2]);f=17;break;
+case 15:f=0==mm(k)+1?16:17;break;case 16:al(k,b[(106368+(52*c&-1)|0)>>2]);f=17;break;case 17:a:{f=k;g=0;for(g=1;;)switch(g){case 1:if(0==($(f)|0))var y=0,g=3;else g=2;break;case 2:y=b[(f+20|0)>>2];g=3;break;case 3:g=y;break a}g=void 0}a:for(var f=k,g=g*b[(106372+(52*c&-1)|0)>>2],l=0,l=1;;)switch(l){case 1:l=0==($(f)|0)?3:2;break;case 2:b[(f+20|0)>>2]=g;l=3;break;case 3:break a}f=h?26:18;break;case 18:f=0==ys(k)?19:20;break;case 19:Ki(k,b[(106376+(52*c&-1)|0)>>2]);f=20;break;case 20:f=0==En(k)?21:
+22;break;case 21:nm(k,1.1*b[(106376+(52*c&-1)|0)>>2]);f=22;break;case 22:f=0==Fn(k)?23:24;break;case 23:om(k,b[(106380+(52*c&-1)|0)>>2]);f=24;break;case 24:f=0==pm(k)+1?25:27;break;case 25:bl(k,b[(106384+(52*c&-1)|0)>>2]);f=27;break;case 26:f=b[(106376+(52*c&-1)|0)>>2];Ki(k,f);nm(k,1.1*f);om(k,b[(106380+(52*c&-1)|0)>>2]);bl(k,b[(106384+(52*c&-1)|0)>>2]);fj(k,b[(106388+(52*c&-1)|0)>>2]);f=29;break;case 27:f=0==qm(k)+1?28:29;break;case 28:fj(k,b[(106388+(52*c&-1)|0)>>2]);f=29;break;case 29:return b[(a[(k+
+288|0)>>2]+280|0)>>2]=(a[(106344+(52*c&-1)|0)>>2]|0)/320*5,d}}function Oe(k,d,e){for(var f=0,f=1;;)switch(f){case 1:f=cl(k);if(4==(f|0)|1==(f|0))var c=5984,f=3;else f=2;break;case 2:c=5232;f=3;break;case 3:var g=k+160|0,h=b[g>>2],y=a[(c+(68*d&-1)+4|0)>>2],l=a[(c+(68*d&-1)+8|0)>>2],p=a[(c+(68*d&-1)+12|0)>>2],m=b[(c+(68*d&-1)+16|0)>>2],E=b[(c+(68*d&-1)+20|0)>>2],z=b[(c+(68*d&-1)+24|0)>>2],A=b[(c+(68*d&-1)+28|0)>>2],D=b[(c+(68*d&-1)+32|0)>>2],w=b[(c+(68*d&-1)+36|0)>>2],u=b[(c+(68*d&-1)+40|0)>>2],t=b[(c+
+(68*d&-1)+44|0)>>2],s=a[(c+(68*d&-1)+48|0)>>2],G=a[(c+(68*d&-1)+52|0)>>2],H=b[(c+(68*d&-1)+56|0)>>2],K=b[(c+(68*d&-1)+60|0)>>2],Q=b[(c+(68*d&-1)+64|0)>>2],J=d+1|0,m=m+h*(b[(c+(68*J&-1)+16|0)>>2]-m),E=E+h*(b[(c+(68*J&-1)+20|0)>>2]-E),z=z+h*(b[(c+(68*J&-1)+24|0)>>2]-z),A=A+h*(b[(c+(68*J&-1)+28|0)>>2]-A),D=D+h*(b[(c+(68*J&-1)+32|0)>>2]-D),w=w+h*(b[(c+(68*J&-1)+36|0)>>2]-w),u=u+h*(b[(c+(68*J&-1)+40|0)>>2]-u),t=t+h*(b[(c+(68*J&-1)+44|0)>>2]-t),G=(G|0)+h*(a[(c+(68*J&-1)+52|0)>>2]-G|0)&-1,H=H+h*(b[(c+(68*
+J&-1)+56|0)>>2]-H),K=K+h*(b[(c+(68*J&-1)+60|0)>>2]-K),Q=Q+h*(b[(c+(68*J&-1)+64|0)>>2]-Q);rm(k,a[(c+(68*d&-1)|0)>>2]);f=(J=0!=(e|0))?6:4;break;case 4:f=-1==(lo(k)|0)?5:7;break;case 5:$k(k,y);f=7;break;case 6:$k(k,y);vk(k,l);f=9;break;case 7:f=-1==(uk(k)|0)?8:9;break;case 8:vk(k,l);f=9;break;case 9:f=0==(p|0)?11:10;break;case 10:a:for(var f=k,F=p,P=0,P=1;;)switch(P){case 1:P=0==($(f)|0)?3:2;break;case 2:a[(f+140|0)>>2]=F;P=3;break;case 3:break a}f=11;break;case 11:f=J?18:12;break;case 12:f=0==km(k)+
+1?13:14;break;case 13:lm(k,m);f=14;break;case 14:f=0==mm(k)+1?15:16;break;case 15:al(k,E);f=16;break;case 16:f=0==ys(k)?17:19;break;case 17:Ki(k,z);f=19;break;case 18:lm(k,m);al(k,E);Ki(k,z);nm(k,A);f=21;break;case 19:f=0==En(k)?20:21;break;case 20:nm(k,A);f=21;break;case 21:f=cl(k);f=1==(f|0)|4==(f|0)?22:23;break;case 22:a:for(f=k,F=0,F=1;;)switch(F){case 1:F=0==($(f)|0)?3:2;break;case 2:a[(f+220|0)>>2]=5;F=3;break;case 3:break a}f=23;break;case 23:f=J?28:24;break;case 24:f=0==Fn(k)?25:26;break;
+case 25:om(k,D);f=26;break;case 26:f=0==pm(k)+1?27:29;break;case 27:bl(k,w);f=29;break;case 28:om(k,D);bl(k,w);zs(k,u);f=31;break;case 29:a:{f=k;F=0;for(F=1;;)switch(F){case 1:if(0==($(f)|0))var da=0,F=3;else F=2;break;case 2:da=b[(f+236|0)>>2];F=3;break;case 3:f=da;break a}f=void 0}f=0==f?30:31;break;case 30:zs(k,u);f=31;break;case 31:f=0>2]=d;b[g>>2]=h;f=46;break;case 46:k=k+288|0;b[(a[k>>2]+280|0)>>2]=K;b[(a[k>>2]+224|0)>>2]=Q;return}}function YA(a,d,e,f,c,g,h){for(var y=0,y=1;;)switch(y){case 1:var l=2*g,y=0<(h|0)?2:12;break;case 2:if(0>2],z=b[(a+768+(p<<2)|0)>>2],A=b[(d+(p<<2)|0)>>2],D=b[(d+256+(p<<2)|0)>>2],w=d+512+(p<<2)|0,u=b[w>>2],t=d+768+(p<<2)|0,s=b[t>>2];if(A>1.5800000429153442*D|D>1.5800000429153442*A)var G=s,H=u,y=5;else y=4;break;case 4:H=b[(e+(p<<2)|0)>>2];G=z*H;H*=E;G=sG?u:G;G=s>H?s:H;H=y;y=5;break;case 5:var K=b[(f+(p<<2)|0)>>2]*c,Q=A>K?A:K,J=D>K?D:K,F=H>K?H:K,K=G>K?G:K,P=F+K;if(0z?z:L;b[w>>2]=y>E?E:y;b[t>>2]=L;y=p+1|0;(y|0)<(h|0)?(p=y,y=3):y=12;break;case 9:var O=b[(a+512+(m<<2)|0)>>2],B=b[(a+768+(m<<2)|0)>>2],y=b[(d+(m<<2)|0)>>2],L=b[(d+256+(m<<2)|0)>>2],Wa=d+512+(m<<2)|0,V=b[Wa>>2],Eb=d+768+(m<<2)|0,la=b[Eb>>2];if(y>1.5800000429153442*L|L>1.5800000429153442*y)var W=la,sa=V,y=11;else y=10;break;case 10:sa=b[(e+(m<<2)|0)>>2];W=B*sa;sa*=O;W=laW?V:W;W=la>sa?
+la:sa;sa=y;y=11;break;case 11:y=W>B?B:W;b[Wa>>2]=sa>O?O:sa;b[Eb>>2]=y;y=m+1|0;(y|0)<(h|0)?(m=y,y=9):y=12;break;case 12:return}}function Xo(k,d,e,f,c){for(var g=0,g=1;;)switch(g){case 1:var h=a[(k+2152|0)>>2];if(0<(h|0))g=2;else var y=0,g=3;break;case 2:var l=k+2148|0,p=0,m=0,E=0,z=0,g=4;break;case 3:if((y|0)<(h|0))var A=y,g=11;else g=12;break;case 4:var D=a[(k+2060+(m<<2)|0)>>2],w=a[l>>2],u=(D|0)<(w|0)?D:w;if((p|0)<(u|0))g=5;else var t=p,s=E,G=z,g=8;break;case 5:var H=D^-1,K=w^-1,Q=(H|0)>(K|0),J=
+p,F=E,P=z,g=6;break;case 6:var da=P+b[(d+(J<<2)|0)>>2],C=F+b[(e+(J<<2)|0)>>2],g=J+1|0;(g|0)<(u|0)?(J=g,F=C,P=da,g=6):g=7;break;case 7:t=(Q?H:K)^-1;s=C;G=da;g=8;break;case 8:g=(t|0)<(w|0)?10:9;break;case 9:b[(f+(m<<2)|0)>>2]=G;b[(c+(m<<2)|0)>>2]=s;y=m+1|0;g=3;break;case 10:var ba=b[(k+1112+(m<<2)|0)>>2],g=1-ba,L=d+(t<<2)|0,O=e+(t<<2)|0,B=s+ba*b[O>>2];b[(f+(m<<2)|0)>>2]=G+ba*b[L>>2];b[(c+(m<<2)|0)>>2]=B;ba=g*b[L>>2];g*=b[O>>2];O=t+1|0;L=m+1|0;(L|0)<(h|0)?(p=O,m=L,E=g,z=ba,g=4):(y=L,g=3);break;case 11:b[(f+
+(A<<2)|0)>>2]=0;b[(c+(A<<2)|0)>>2]=0;g=A+1|0;(g|0)<(h|0)?(A=g,g=11):g=12;break;case 12:return}}function Ro(k,d,e,f,c,g){var h=0,y=m;m=m+2320|0;for(h=1;;)switch(h){case 1:var l=y,p=y+264,v=2*(f|0),E=d/v,z=e|0,v=z/v;ra(p,0,2052);var z=d/z,A=(e|0)/2&-1,D=0,w=0,h=2;break;case 2:if(64>(w|0))h=3;else var u=D,t=w,h=10;break;case 3:var s=z*(D|0),G=Vf(s);b[(l+(w<<2)|0)>>2]=s;s=D;h=4;break;case 4:var h=0.34<=Vf(z*(s|0))-G,H=s+1|0;h|(s|0)>(A|0)?h=5:(s=H,h=4);break;case 5:var K=s-D|0;a[(k+1716+(w<<2)|0)>>2]=
+K;if(0<(K|0))h=6;else var Q=0,h=7;break;case 6:Q=1/(K|0);h=7;break;case 7:b[(k+512+(w<<2)|0)>>2]=Q;var J=w+1|0;if((D|0)<(s|0))var F=D,h=8;else var P=D,h=9;break;case 8:h=F+1|0;a[(p+(F<<2)|0)>>2]=w;(h|0)<(s|0)?(F=h,h=8):(P=s,h=9);break;case 9:(P|0)>(A|0)?(u=A,t=J,h=10):(D=P,w=J,h=2);break;case 10:b[(l+(t<<2)|0)>>2]=z*(u|0);a[(k+2152|0)>>2]=c;var da=k+2148|0;a[da>>2]=t;if(0<(t|0))var C=0,ba=0,h=12;else var L=0,h=15;break;case 11:64>(O|0)?(L=O,h=15):h=13;break;case 12:O=a[(k+1716+(ba<<2)|0)>>2];H=h=
+Vf(z*(((O|0)/2&-1)+C|0));h=1.25*(1-Math.cos((15.5>h?H:15.5)/15.5*3.141592653589793))-2.5;h=Math.pow(10,h);b[(k+768+(ba<<2)|0)>>2]=h;var h=O+C|0,O=ba+1|0;(O|0)<(a[da>>2]|0)?(C=h,ba=O,h=12):h=11;break;case 13:h=0<(c|0)?14:20;break;case 14:var B=v,Wa=0,h=16;break;case 15:b[(k+768+(L<<2)|0)>>2]=1;h=L+1|0;64>(h|0)?(L=h,h=15):h=13;break;case 16:var V=a[(g+(Wa<<2)|0)>>2],Eb=Wa+1|0,la=a[(g+(Eb<<2)|0)>>2],h=Math.floor(B*((V|0)-0.5)+0.5)&-1,H=Math.floor(B*((la|0)-0.5)+0.5)&-1,H=a[(p+(((H|0)>(A|0)?A:H)<<2)|
+0)>>2];a[(k+1972+(Wa<<2)|0)>>2]=(a[(p+((0>(h|0)?0:h)<<2)|0)>>2]+H|0)/2&-1;a[(k+2060+(Wa<<2)|0)>>2]=H;h=b[(l+(H<<2)|0)>>2];la=(E*(la|0)-h)/(b[(l+((H+1|0)<<2)|0)>>2]-h);if(0>la)var W=0,h=19;else h=17;break;case 17:1>2]=W;H=h=Vf(E*(V|0));h=1.25*(1-Math.cos((15.5>h?H:15.5)/15.5*3.141592653589793))-2.5;h=Math.pow(10,h);b[(k+1024+(Wa<<2)|0)>>2]=h;(Eb|0)<(c|0)?(Wa=Eb,h=16):h=20;break;case 20:m=y;return}}function So(k,d,e,f,c){for(var g=
+0,g=1;;)switch(g){case 1:var h=a[(k+2148|0)>>2],y=d/(e|0),g=0<(h|0)?2:4;break;case 2:var l=y,p=0,m=0,g=3;break;case 3:var g=a[(k+1716+(m<<2)|0)>>2],E=Vf(y*(p|0)),g=g+p|0,z=Vf(y*(g-1|0));b[(f+(m<<2)|0)>>2]=0.5*(E+z);E=Vf(l*((p|0)-0.5));E=Vf(l*((g|0)-0.5))-E;b[(c+(m<<2)|0)>>2]=E;E=m+1|0;(E|0)<(h|0)?(p=g,m=E,g=3):g=4;break;case 4:return}}function To(k,d,e,f,c,g){var h=0,y=m;m=m+16384|0;for(h=1;;)switch(h){case 1:var l=y;ra(l,0,16384);var p=0<(e|0);if(p)var v=0,h=2;else var E=0,h=21;break;case 2:var z=
+b[(f+(v<<2)|0)>>2],A=b[(g+(v<<2)|0)>>2],D=0,h=4;break;case 3:if(p)var w=0,u=0,h=13;else E=0,h=21;break;case 4:var t=z-b[(f+(D<<2)|0)>>2],h=0>t?6:5;break;case 5:var s=3*t,h=7;break;case 6:s=1.5*t;h=7;break;case 7:var G=s;if(0.5>s|2.5>2]=A*Q*b[(c+(D<<2)|0)>>2];h=D+1|0;(h|0)<(e|0)?(D=h,h=4):h=12;break;case 12:h=v+1|0;(h|0)<(e|0)?(v=h,h=2):h=3;break;case 13:var J=0,h=14;break;case 14:h=(J|0)<(e|0)?15:16;break;case 15:h=J+1|0;0>2]?h=16:(J=h,h=14);break;case 16:a[(d+(w<<3)|0)>>2]=J;var F=e,h=17;break;case 17:var P=F-1|0,h=0<(P|0)?18:19;break;case 18:0>2]?h=19:(F=P,h=17);break;case 19:a[(d+(w<<3)+4|0)>>2]=P;var da=(u-J|0)+F|0,h=w+1|0;(h|0)<(e|0)?(w=h,u=da,h=13):h=20;break;case 20:E=
+da<<2;h=21;break;case 21:h=Tc(E);a[k>>2]=h;var h=0==(h|0),C=h<<31>>31;if(h|p^1)var ba=C,h=25;else var L=0,O=0,h=22;break;case 22:var h=a[(d+(L<<3)|0)>>2],B=d+(L<<3)+4|0;if((h|0)>(a[B>>2]|0))var Wa=O,h=24;else var V=h,Eb=O,h=23;break;case 23:h=Eb+1|0;b[(a[k>>2]+(Eb<<2)|0)>>2]=b[(l+(L<<8)+(V<<2)|0)>>2];C=V+1|0;(C|0)>(a[B>>2]|0)?(Wa=h,h=24):(V=C,Eb=h,h=23);break;case 24:h=L+1|0;(h|0)<(e|0)?(L=h,O=Wa,h=22):(ba=0,h=25);break;case 25:return m=y,ba}}function sm(k,d,e,f){var c=0,g=m;m=m+184|0;for(c=1;;)switch(c){case 1:var h=
+g,y=g+160,l=a[(k+85096|0)>>2],c=0==(l&4|0)?2:3;break;case 2:c=2==(a[(d+4788|0)>>2]|0)?32:3;break;case 3:c=0==(l&128|0)?4:32;break;case 4:qs(d,e,h|0,y,0);var p=0,c=5;break;case 5:if(0==(a[(d+2304+(p<<2)|0)>>2]|0))var v=0,c=7;else c=6;break;case 6:v=Math.abs(b[(d+(p<<2)|0)>>2]);c=7;break;case 7:b[(f+(p<<2)|0)>>2]=v;c=p+1|0;576>(c|0)?(p=c,c=5):c=8;break;case 8:var E=d+4864|0,z=2==(a[(d+4788|0)>>2]|0)?6:8,A=0,c=9;break;case 9:var D=a[(d+4872+(z<<2)|0)>>2],w=D+A|0,u=h+(z<<2)|0,c=1>b[u>>2]?10:30;break;
+case 10:Cs(f+(A<<2)|0,D,4,20);var t=b[(f+((w-1|0)<<2)|0)>>2],c=0==t?12:11;break;case 11:c=Math.abs(t);c=c>9.999999974752427E-7*c?13:30;break;case 12:c=0==t?30:13;break;case 13:var s=0,G=(1-b[u>>2])*b[(e+(z<<2)|0)>>2],c=14;break;case 14:var H=s+1|0,c=(H|0)<(D|0)?16:15;break;case 15:var K=1,Q=H,J=0,F=s+A|0,c=21;break;case 16:var P=b[(f+((A+s|0)<<2)|0)>>2],da=Math.abs(P),C=s+A|0,ba=9.999999974752427E-7*da,L=1,O=H,c=17;break;case 17:var B=b[(f+((L+C|0)<<2)|0)>>2],Wa=Math.abs(B),c=da>Wa,B=Math.abs(P-B),
+c=c?18:19;break;case 18:B>ba?(K=L,Q=O,J=1,F=C,c=21):c=20;break;case 19:B>9.999999974752427E-7*Wa?(K=L,Q=O,J=1,F=C,c=21):c=20;break;case 20:var c=L+1|0,V=c+s|0;(V|0)<(D|0)?(L=c,O=V,c=17):(K=c,Q=V,J=0,F=C,c=21);break;case 21:var Eb=b[(f+(F<<2)|0)>>2],Eb=(K|0)*Eb*Eb,c=G>2],c=0==la?26:25;break;case 25:c=Math.abs(la);if(c>9.999999974752427E-7*c)var W=D,c=27;else c=30;break;case 26:0==
+la?c=30:(W=D,c=27);break;case 27:var sa=w-W|0,c=Math.abs(b[(d+(sa<<2)|0)>>2])>la?29:28;break;case 28:a[(d+2304+(sa<<2)|0)>>2]=0;c=29;break;case 29:c=W-1|0;0<(c|0)?(W=c,c=27):c=30;break;case 30:c=z+1|0;(c|0)<(a[E>>2]|0)?(z=c,A=w,c=9):c=31;break;case 31:c=tm(k,d,0);a[(d+4768|0)>>2]=c;c=32;break;case 32:m=g;return}}function um(k,d){var e=0,f=m;m=m+2304|0;for(e=1;;)switch(e){case 1:var c=f;a[(d+4768|0)>>2]=0;a[(d+4772|0)>>2]=0;a[(d+4776|0)>>2]=0;a[(d+4780|0)>>2]=210;a[(d+4784|0)>>2]=0;var g=k+64|0;ra(d+
+4796|0,0,52);var h=d+4848|0,e=8001>(a[g>>2]|0)?2:3;break;case 2:a[h>>2]=17;a[(d+4852|0)>>2]=9;var y=a[(d+4856|0)>>2]=17,l=17,e=4;break;case 3:a[h>>2]=21;a[(d+4852|0)>>2]=12;y=0!=(a[(k+85092|0)>>2]|0)?22:21;a[(d+4856|0)>>2]=y;l=21;e=4;break;case 4:var p=d+4864|0;a[p>>2]=y;var v=d+4860|0;a[v>>2]=l;var E=d+4868|0;a[E>>2]=11;var z=0,e=5;break;case 5:e=z+1|0;a[(d+4872+(z<<2)|0)>>2]=a[(k+21360+(e<<2)|0)>>2]-a[(k+21360+(z<<2)|0)>>2]|0;a[(d+5028+(z<<2)|0)>>2]=3;22>(e|0)?(z=e,e=5):e=6;break;case 6:var A=d+
+4856|0,D=d+4788|0,e=2==(a[D>>2]|0)?7:19;break;case 7:var w=d+4852|0;a[w>>2]=0;a[h>>2]=0;if(0==(a[(d+4792|0)>>2]|0))var u=0,t=0,e=9;else e=8;break;case 8:a[w>>2]=3;u=(a[(k+76|0)>>2]<<1)+4|0;a[h>>2]=u;t=3;e=9;break;case 9:e=8001>(a[g>>2]|0)?10:11;break;case 10:var s=(3*(9-t|0)&-1)+u|0;a[p>>2]=s;e=12;break;case 11:a[p>>2]=(3*((0!=(a[(k+85092|0)>>2]|0)?13:12)-t|0)&-1)+u|0;s=(3*(12-t|0)&-1)+u|0;e=12;break;case 12:a[v>>2]=s;a[E>>2]=s-18|0;a[A>>2]=u;var G=a[(k+21360+(u<<2)|0)>>2];ha(c,d,2304);var G=d+(G<<
+2)|0,H=t,e=14;break;case 13:var K;13>(J|0)?(G=K,H=J,e=14):e=16;break;case 14:var Q=a[(k+21452+(H<<2)|0)>>2],J=H+1|0,F=a[(k+21452+(J<<2)|0)>>2];if((Q|0)<(F|0))var P=G,da=Q,e=15;else K=G,e=13;break;case 15:e=P+4|0;b[P>>2]=b[(c+((3*da&-1)<<2)|0)>>2];var C=da+1|0;(C|0)<(F|0)?(P=e,da=C,e=15):e=38;break;case 16:var ba=a[w>>2],e=13>(ba|0)?17:19;break;case 17:var L=a[h>>2],O=ba,e=18;break;case 18:var e=O+1|0,C=a[(k+21452+(e<<2)|0)>>2]-a[(k+21452+(O<<2)|0)>>2]|0,B=L+2|0;a[(d+4872+(B<<2)|0)>>2]=C;var Wa=L+
+1|0;a[(d+4872+(Wa<<2)|0)>>2]=C;a[(d+4872+(L<<2)|0)>>2]=C;a[(d+5028+(L<<2)|0)>>2]=0;a[(d+5028+(Wa<<2)|0)>>2]=1;a[(d+5028+(B<<2)|0)>>2]=2;C=L+3|0;13>(e|0)?(L=C,O=e,e=18):e=19;break;case 19:a[(d+5184|0)>>2]=0;a[(d+5188|0)>>2]=49184;e=d+5208|0;C=d+5192|0;a[C>>2]=0;a[C+4>>2]=0;a[C+8>>2]=0;a[C+12>>2]=0;a[e>>2]=575;ra(d+4608|0,0,156);e=a[(k+104|0)>>2];e=1==(e|0)|4==(e|0)|3==(e|0)|0==(e|0)?37:20;break;case 20:var V=a[(k+85796|0)>>2],e=2==(a[D>>2]|0)?22:21;break;case 21:var Eb=V+8|0,la=V+20|0,W=k+84852|0,
+sa=5,e=23;break;case 22:var Yc=k+21500|0,I=k+21504|0,ja=k+21536|0,fa=V+8|0,R=V+20|0,tc=k+84904|0,aa=0,e=29;break;case 23:var ma=a[(k+21508+(sa<<2)|0)>>2],ia=a[(k+21508+((sa+1|0)<<2)|0)>>2],ea=Gn(b[Eb>>2],b[(V+164+(sa<<2)|0)>>2],b[la>>2],0),S=b[W>>2];if(9.999999960041972E-13>2])>2]=0;e=N-1|0;(e|0)<(ma|0)?e=28:
+(N=e,e=26);break;case 28:e=sa-1|0;0<(sa|0)?(sa=e,e=23):e=37;break;case 29:var na=5,e=30;break;case 30:var Z=a[Yc>>2],Da=3*Z&-1,Da=Math.imul(a[I>>2]-Z|0,aa)+Da|0,Z=a[(k+21536+(na<<2)|0)>>2],Da=Da+(Z-a[ja>>2]|0)|0,ka=a[(k+21536+((na+1|0)<<2)|0)>>2],pa=Gn(b[fa>>2],b[(V+188+(na<<2)|0)>>2],b[R>>2],0),za=b[tc>>2];if(9.999999960041972E-13>
+2])>2]=0;e=va-1|0;(e|0)<(Da|0)?e=35:(va=e,e=33);break;case 35:e=na-1|0;0<(na|0)?(na=e,e=30):e=36;break;case 36:e=aa+1|0;3>(e|0)?(aa=e,e=29):e=37;break;case 37:m=f;return;case 38:var Ea=F-Q|0,Fa=G+(Ea<<2)|0,M=Q,e=39;break;case 39:e=Fa+4|0;b[Fa>>2]=b[(c+(((3*M&-1)+1|0)<<2)|0)>>2];C=M+1|0;(C|0)<(F|0)?(Fa=e,M=C,e=39):e=40;break;case 40:var U=Ea<<1,Aa=G+(U<<2)|0,wa=Q,e=41;break;case 41:e=Aa+4|0;b[Aa>>2]=b[(c+(((3*wa&-1)+2|0)<<2)|0)>>2];C=wa+1|0;(C|0)<(F|0)?(Aa=e,wa=C,e=41):
+e=42;break;case 42:K=G+((U+Ea|0)<<2)|0,e=13}}function vm(k,d,e,f,c,g){var h=0,y=m;m=m+8248|0;for(h=1;;)switch(h){case 1:var l=y,p=y+5256,v=y+7560,E=y+7720,z=y+7744,A=y+8224,D=k+84928+(c<<2)|0,w=a[D>>2],u=k+84920+(c<<2)|0,t=a[u>>2],s=d+4780|0;a[s>>2]=t;var G=g-a[(d+4844|0)>>2]|0,H=yg(k,f,d,0);if(1==(w|0)|(H|0)==(G|0))var K=H,h=2;else var Q=w,J=0,F=0,P=H,h=3;break;case 2:if((K|0)>(G|0))var da=K,h=10;else var C=K,h=12;break;case 3:h=(P|0)>(G|0)?4:6;break;case 4:var ba=2==(F|0)?1:J;if(0==(ba|0))var L=
+Q,O=1,B=0,Wa=Q,h=9;else h=5;break;case 5:var V=(Q|0)/2&-1,L=V,O=1,B=ba,Wa=V,h=9;break;case 6:var Eb=1==(F|0)?1:J;if(0==(Eb|0))var la=Q,h=8;else h=7;break;case 7:la=(Q|0)/2&-1;h=8;break;case 8:L=-la|0;O=2;B=Eb;Wa=la;h=9;break;case 9:var W=a[s>>2]+L|0,sa=0>(W|0),I=sa?0:W,R=sa?1:B,ja=255<(I|0),fa=ja?1:R;a[s>>2]=ja?255:I;var S=yg(k,f,d,0);1==(Wa|0)|(S|0)==(G|0)?(K=S,h=2):(Q=Wa,J=fa,F=O,P=S,h=3);break;case 10:var tc=a[s>>2];255>(tc|0)?h=11:(C=da,h=12);break;case 11:a[s>>2]=tc+1|0;var aa=yg(k,f,d,0);(aa|
+0)>(G|0)?(da=aa,h=10):(C=aa,h=12);break;case 12:a[D>>2]=3<(t-a[s>>2]|0)?4:2;a[u>>2]=a[s>>2];var ma=d+4768|0;a[ma>>2]=C;var ia=k+28|0;if(0==(a[ia>>2]|0))var ea=100,h=177;else h=13;break;case 13:ra(z,0,476);var N=v|0;qs(d,e,N,E,z);var Y=E+20|0;a[Y>>2]=a[ma>>2];var T=l,ta=d;ha(T,ta,5252);var na=p,Z=f;ha(na,Z,2304);var Da=k+85096|0,ka=k+85092|0,pa=l+4836|0,za=l+4860|0,ca=k+40|0,va=l+4764|0,U=l+4844|0,Ea=l+4780|0,Fa=l+4768|0,M=E+12|0,$=A+20|0,Aa=d+4788|0,wa=k+84|0,Ga=k+88|0,Qa=A+16|0,oa=E+16|0,uc=A+8|
+0,Ma=E+8|0,n=k+48|0,qa=E,Sa=A,Ca=A+12|0,Va=A|0,Ha=E|0,Ta=A+4|0,Ua=E+4|0,Nb=l+4864|0,gb=k+84936|0,Na=l+4832|0,$a=l+4788|0,Gb=k+32|0,Ja=l+4848|0,lb=l+4868|0,Ra=9999999,sb=0,ob=0,h=14;break;case 14:var hb=1==(sb|0)?2:1,mb=0==(sb|0),Oa=Ra,nb=0,h=15;break;case 15:var xb=0==(a[Da>>2]&2|0)?3:20,Ya=a[za>>2],h=0==(a[ka>>2]|0)?20:16;break;case 16:if(1>2])var Ia=Oa,h=169;else h=17;break;case 17:h=2==(a[$a>>2]|0)?18:20;break;case 18:1>2]?(Ia=Oa,h=169):h=19;break;case 19:1<
+b[(v+((Ya+2|0)<<2)|0)>>2]?(Ia=Oa,h=169):h=20;break;case 20:var tb=0==(a[pa>>2]|0)?1.2968395948410034:1.6817928552627563,Ka=0<(Ya|0);if(Ka)var ab=0,ga=0,h=21;else var xa=0,h=22;break;case 21:var La=b[(v+(ab<<2)|0)>>2],yb=ga>2],Hb=3==(r|0)?hb:r;if(1==(Hb|0))h=23;else if(2==(Hb|0))var Bb=xa,h=28;else h=26;break;case 23:var Ib=xa,h=1>2],ua=jb+cb|0;if(b[(v+(qb<<2)|0)>>2]>2]&2|0)?33:31;break;case 31:var lc=k+84936+(qb<<2)|0,vc=0==(a[lc>>2]|0);a[lc>>2]=vc&1;h=vc?33:32;break;case 32:2==(a[ca>>2]|0)?(Jb=ya,db=2,h=40):h=33;break;case 33:var Qj=l+4608+(qb<<2)|
+0;a[Qj>>2]=a[Qj>>2]+1|0;h=0<(jb|0)?34:38;break;case 34:var wc=-jb|0,Tb=b[va>>2],h=35;break;case 35:var Ub=f+((wc+ua|0)<<2)|0,ub=tb*b[Ub>>2];b[Ub>>2]=ub;if(ub>Tb)h=36;else var fc=Tb,h=37;break;case 36:fc=b[va>>2]=ub;h=37;break;case 37:var vb=wc+1|0;0>(vb|0)?(wc=vb,Tb=fc,h=35):h=38;break;case 38:var xc=a[ca>>2],Qb=a[za>>2];2==(xc|0)?(Jb=Qb,db=2,h=40):(ib=Qb,Xa=xc,h=39);break;case 39:var eb=qb+1|0;(eb|0)<(ib|0)?(qb=eb,cb=ua,ya=ib,X=Xa,h=29):(Jb=ib,db=Xa,h=40);break;case 40:var Kb=0,h=41;break;case 41:if((Kb|
+0)<(Jb|0))h=42;else var mc=Oa,gc=db,h=170;break;case 42:var ld=Kb+1|0;(a[(l+4608+(Kb<<2)|0)>>2]|0)==(-a[(l+4808+(a[(l+5028+(Kb<<2)|0)>>2]<<2)|0)>>2]|0)?h=43:(Kb=ld,h=41);break;case 43:var Zb=de(k,l),h=0==(Zb|0)?92:44;break;case 44:1<(a[ia>>2]|0)?h=45:(Ia=Oa,h=169);break;case 45:ra(gb,0,156);h=0==(a[pa>>2]|0)?46:57;break;case 46:if(0<(a[za>>2]|0))var nc=0,yc=0,h=47;else h=56;break;case 47:var rc=a[(l+4872+(nc<<2)|0)>>2],Pc=l+4608+(nc<<2)|0,cc=a[Pc>>2];if(0==(a[Na>>2]|0))var Za=cc,h=49;else h=48;break;
+case 48:Za=a[(14248+(nc<<2)|0)>>2]+cc|0;h=49;break;case 49:var ic=rc+yc|0;if(0==(Za&1|0))var Wc=Za,h=55;else h=50;break;case 50:var Gc=Za+1|0;0<(rc|0)?h=51:(Wc=Gc,h=55);break;case 51:var Hc=-rc|0,Lc=b[va>>2],h=52;break;case 52:var Wb=f+((Hc+ic|0)<<2)|0,zc=1.2968395948410034*b[Wb>>2];b[Wb>>2]=zc;if(zc>Lc)h=53;else var zb=Lc,h=54;break;case 53:zb=b[va>>2]=zc;h=54;break;case 54:var Cb=Hc+1|0;0>(Cb|0)?(Hc=Cb,Lc=zb,h=52):(Wc=Gc,h=55);break;case 55:a[Pc>>2]=Wc>>1;var Vb=nc+1|0;(Vb|0)<(a[za>>2]|0)?(nc=Vb,
+yc=ic,h=47):h=56;break;case 56:a[Na>>2]=0;a[pa>>2]=1;h=90;break;case 57:if(2==(a[$a>>2]|0))h=58;else var $b=Zb,h=91;break;case 58:0<(a[Gb>>2]|0)?h=59:($b=Zb,h=91);break;case 59:var Rb=a[Ja>>2],Xb=0,h=60;break;case 60:if((Xb|0)<(Rb|0))h=61;else var sc=0,Qc=Rb,h=62;break;case 61:var Rc=Xb+1|0;15<(a[(l+4608+(Xb<<2)|0)>>2]|0)?(Ia=Oa,h=169):(Xb=Rc,h=60);break;case 62:var Zc=sc+Qc|0,Td=a[lb>>2];if((Zc|0)<(Td|0))var Ac=0,Mc=Zc,h=63;else var Bc=0,Cc=Zc,h=64;break;case 63:var dd=a[(l+4608+(Mc<<2)|0)>>2],Yb=
+(Ac|0)<(dd|0)?dd:Ac,Sc=Mc+3|0;(Sc|0)<(Td|0)?(Ac=Yb,Mc=Sc,h=63):(Bc=Yb,Cc=Sc,h=64);break;case 64:var Dc=a[za>>2];if((Cc|0)<(Dc|0))var Ec=0,oc=Cc,h=65;else var $c=1,h=67;break;case 65:var ad=a[(l+4608+(oc<<2)|0)>>2],Ud=(Ec|0)<(ad|0)?ad:Ec,ec=oc+3|0;(ec|0)<(Dc|0)?(Ec=Ud,oc=ec,h=65):h=66;break;case 66:$c=8>(Ud|0);h=67;break;case 67:h=16>(Bc|0)&$c?68:69;break;case 68:var Ic=sc+1|0,Mb=Dc,h=86;break;case 69:var qd=l+4808+(sc<<2)|0,Dd=a[qd>>2];6<(Dd|0)?(Ia=Oa,h=169):h=70;break;case 70:a[qd>>2]=Dd+1|0;var rd=
+a[Ja>>2],sd=a[(k+21360+(rd<<2)|0)>>2],md=rd+sc|0,ac=a[za>>2],bc=sc+1|0;if((md|0)<(ac|0))h=71;else var Ed=sd,Oc=md,Vd=ac,h=81;break;case 71:var Tc=2-sc|0,Od=sd,Wd=md,h=72;break;case 72:var Xd=a[(l+4872+(Wd<<2)|0)>>2],Kc=l+4608+(Wd<<2)|0,Re=a[Kc>>2]-(4>>>(a[pa>>2]>>>0))|0,h=-1<(Re|0)?73:74;break;case 73:a[Kc>>2]=Re;var Yd=(3*Xd&-1)+Od|0,h=80;break;case 74:a[Kc>>2]=0;var xd=b[(83560+(((Re<<(a[pa>>2]+1|0))+210|0)<<2)|0)>>2],kd=Math.imul(Xd,bc)+Od|0,h=0<(Xd|0)?75:79;break;case 75:var me=-Xd|0,Zd=b[va>>
+2],h=76;break;case 76:var yd=f+((me+kd|0)<<2)|0,nd=xd*b[yd>>2];b[yd>>2]=nd;if(nd>Zd)h=77;else var Pd=Zd,h=78;break;case 77:Pd=b[va>>2]=nd;h=78;break;case 78:var $d=me+1|0;0>($d|0)?(me=$d,Zd=Pd,h=76):h=79;break;case 79:var fe=Math.imul(Xd,Tc),Yd=kd+fe|0,h=80;break;case 80:var ne=Wd+3|0,ge=a[za>>2];(ne|0)<(ge|0)?(Od=Yd,Wd=ne,h=72):(Ed=Yd,Oc=ne,Vd=ge,h=81);break;case 81:var Se=b[21092],oe=a[(l+4872+(Oc<<2)|0)>>2],ff=Math.imul(oe,bc)+Ed|0;0<(oe|0)?h=82:(Ic=bc,Mb=Vd,h=86);break;case 82:var Be=-oe|0,Te=
+b[va>>2],h=83;break;case 83:var gf=f+((ff+Be|0)<<2)|0,he=Se*b[gf>>2];b[gf>>2]=he;if(he>Te)h=84;else var Ce=Te,h=85;break;case 84:Ce=b[va>>2]=he;h=85;break;case 85:var Ue=Be+1|0;0>(Ue|0)?(Be=Ue,Te=Ce,h=83):(Ic=bc,Mb=Vd,h=86);break;case 86:if(3>(Ic|0))h=87;else var ie=0,h=88;break;case 87:var pe=a[Ja>>2],sc=Ic,Qc=pe,h=62;break;case 88:(ie|0)<(Mb|0)?h=89:(Ia=Oa,h=169);break;case 89:var hf=ie+1|0;(a[(l+4608+(ie<<2)|0)>>2]|0)==(-a[(l+4808+(a[(l+5028+(ie<<2)|0)>>2]<<2)|0)>>2]|0)?h=90:(ie=hf,h=88);break;
+case 90:$b=de(k,l);h=91;break;case 91:0==($b|0)?h=92:(Ia=Oa,h=169);break;case 92:var Xf=0==(a[pa>>2]|0)?255:254,Ve=g-a[U>>2]|0;1>(Ve|0)?(Ia=Oa,h=169):h=93;break;case 93:var yf=yg(k,f,l,z);a[Fa>>2]=yf;var We=a[Ea>>2];if((yf|0)>(Ve|0))var zd=We,h=94;else var jf=We,h=96;break;case 94:(zd|0)>(Xf|0)?(jf=zd,h=96):h=95;break;case 95:a[Ea>>2]=zd+1|0;var De=yg(k,f,l,z);a[Fa>>2]=De;var Nc=a[Ea>>2];(De|0)>(Ve|0)?(zd=Nc,h=94):(jf=Nc,h=96);break;case 96:(jf|0)>(Xf|0)?(Ia=Oa,h=169):h=97;break;case 97:h=0==(a[M>>
+2]|0)?98:102;break;case 98:var zf=yg(k,f,l,z);a[Fa>>2]=zf;var Af=a[Ea>>2];if((zf|0)>(Oa|0))var Bf=Af,h=99;else var Xe=Af,h=101;break;case 99:(Bf|0)>(Xf|0)?(Xe=Bf,h=101):h=100;break;case 100:a[Ea>>2]=Bf+1|0;var ae=yg(k,f,l,z);a[Fa>>2]=ae;var Id=a[Ea>>2];(ae|0)>(Oa|0)?(Bf=Id,h=99):(Xe=Id,h=101);break;case 101:(Xe|0)>(Xf|0)?(Ia=Oa,h=169):h=102;break;case 102:qs(l,e,N,A,z);var kf=a[Fa>>2];a[$>>2]=kf;var jc=a[(2==(a[Aa>>2]|0)?Ga:wa)>>2],h=1==(jc|0)?103:0==(jc|0)?109:8==(jc|0)?116:2==(jc|0)?121:3==(jc|
+0)?122:4==(jc|0)?124:5==(jc|0)?141:6==(jc|0)?146:7==(jc|0)?155:104;break;case 103:var fb=b[uc>>2],h=120;break;case 104:h=0<(a[M>>2]|0)?105:107;break;case 105:var lf=a[Qa>>2],mf=a[oa>>2],td=(lf|0)<=(mf|0)&1;if((lf|0)==(mf|0))h=106;else var dc=td,h=157;break;case 106:dc=(kf|0)<(a[Y>>2]|0)&1;h=157;break;case 107:var Ye=b[uc>>2];0>Ye?h=108:(dc=0,h=157);break;case 108:dc=(kf|0)+10*Ye<=10*b[Ma>>2]+(a[Y>>2]|0)&1;h=157;break;case 109:var Zf=a[Ca>>2],Yf=a[M>>2];if((Zf|0)<(Yf|0))var Ee=1,nf=Yf,h=158;else h=
+110;break;case 110:(Zf|0)==(Yf|0)?h=111:(dc=0,h=157);break;case 111:var $f=b[Va>>2],Fe=b[Ha>>2];$fZe,Uc=Math.abs($f-Fe),h=je?113:114;break;case 113:Uc>9.999999974752427E-7*Cf?(dc=0,h=157):h=115;break;case 114:Uc>9.999999974752427E-7*Ze?(dc=0,h=157):h=115;break;case 115:dc=b[Ta>>2]>2]&1;h=157;break;case 116:if(0<(a[Nb>>2]|0))h=117;else var Ge=1E-37,h=119;break;case 117:var Ld=a[Nb>>2],Dg=0,gd=1E-37,h=118;break;case 118:var Yg=
+b[(v+(Dg<<2)|0)>>2],Eg=0.30102999566398114*pd(0.632*Yg*Yg*Yg+0.368),Fg=gd+Eg,pc=Dg+1|0;(pc|0)<(Ld|0)?(Dg=pc,gd=Fg,h=118):(Ge=Fg,h=119);break;case 119:var be=Ge,qe=1E-20>Ge?9.999999682655225E-21:be,fb=b[uc>>2]=qe,h=120;break;case 120:dc=fb>2]&1;h=157;break;case 121:dc=b[Ta>>2]>2]&1;h=157;break;case 122:b[Ta>>2]>2]?h=123:(dc=0,h=157);break;case 123:dc=b[uc>>2]>2]&1;h=157;break;case 124:var He=b[uc>>2],h=0>
+2],Gg=Df;0.2Df?128:130;break;case 128:h=Gg>Hg-0.2?129:130;break;case 129:b[Ta>>2]>2]?(dc=1,h=157):h=130;break;case 130:0Hg-0.2?h=132:(re=Hg,h=133);break;case 132:b[Ta>>2]>2]+b[Ha>>2]?(dc=1,h=157):(re=Hg,h=133);break;case 133:0>2],h=-0.05re-0.1?136:138;break;case 136:var Fd=b[Ta>>2]+b[Va>>2]>2]+b[Ha>>2],h=Fd?
+137:138;break;case 137:dc=Fd&1;h=157;break;case 138:-0.1re-0.15?h=140:(dc=0,h=157);break;case 140:var Jd=b[Va>>2],Qd=b[Ha>>2],dc=Jd+(b[Ta>>2]+Jd)>2]+Qd)&1,h=157;break;case 141:var hd=b[Va>>2],Ad=b[Ha>>2];hdbg,cg=Math.abs(hd-Ad),h=Ef?143:144;break;case 143:cg>9.999999974752427E-7*se?(dc=0,h=157):h=145;break;case 144:cg>9.999999974752427E-7*bg?(dc=0,h=157):h=145;break;case 145:dc=
+b[Ta>>2]>2]&1;h=157;break;case 146:var Ig=b[Va>>2],$e=b[Ha>>2];Ig<$e?(dc=1,h=157):h=147;break;case 147:var dg=Math.abs(Ig),te=Math.abs($e),eg=dg>te,Ff=Math.abs(Ig-$e),h=eg?148:149;break;case 148:Ff>9.999999974752427E-7*dg?(dc=0,h=157):h=150;break;case 149:Ff>9.999999974752427E-7*te?(dc=0,h=157):h=150;break;case 150:var Jg=b[uc>>2],of=b[Ma>>2];Jgfg,Gf=Math.abs(Jg-of),h=gg?152:153;break;case 152:Gf>9.999999974752427E-7*
+af?(dc=0,h=157):h=154;break;case 153:Gf>9.999999974752427E-7*fg?(dc=0,h=157):h=154;break;case 154:dc=b[Ta>>2]<=b[Ua>>2]&1;h=157;break;case 155:var hg=a[M>>2];(a[Ca>>2]|0)<(hg|0)?(Ee=1,nf=hg,h=158):h=156;break;case 156:dc=b[Va>>2]>2]&1;h=157;break;case 157:var ig=a[M>>2],Ee=dc,nf=ig,h=158;break;case 158:var Pb=0==(nf|0);if(Pb)h=159;else var Hf=Ee,h=161;break;case 159:h=0==(Ee|0)?163:160;break;case 160:Hf=(a[$>>2]|0)<(a[Y>>2]|0)&1;h=161;break;case 161:h=0==(Hf|0)?163:162;break;case 162:var bf=
+a[ma>>2];a[qa>>2]=a[Sa>>2];a[qa+4>>2]=a[Sa+4>>2];a[qa+8>>2]=a[Sa+8>>2];a[qa+12>>2]=a[Sa+12>>2];a[qa+16>>2]=a[Sa+16>>2];a[qa+20>>2]=a[Sa+20>>2];ha(ta,T,5252);ha(na,Z,2304);var Rd=bf,jg=0,h=168;break;case 163:0==(a[n>>2]|0)?h=164:(Rd=Oa,jg=nb,h=168);break;case 164:var ue=nb+1|0;(ue|0)<=(xb|0)|Pb^1?h=165:(Ia=Oa,h=169);break;case 165:var ve=3!=(a[ca>>2]|0)|mb;30<(ue|0)&(ve^1)?(Ia=Oa,h=169):h=166;break;case 166:ve?(Rd=Oa,jg=ue,h=168):h=167;break;case 167:15<(a[Ea>>2]-ob|0)?(Ia=Oa,h=169):(Rd=Oa,jg=ue,h=
+168);break;case 168:255>(a[pa>>2]+a[Ea>>2]|0)?(Oa=Rd,nb=jg,h=15):(Ia=Rd,h=169);break;case 169:var Ie=a[ca>>2],mc=Ia,gc=Ie,h=170;break;case 170:h=3==(gc|0)&mb?171:172;break;case 171:ha(T,ta,5252);ha(Z,na,2304);var Vc=a[Ea>>2],Ra=mc,sb=1,ob=Vc,h=14;break;case 172:var ud=a[(k+104|0)>>2],h=2==(ud|0)|4==(ud|0)|1==(ud|0)?173:174;break;case 173:ha(Z,na,2304);h=176;break;case 174:h=0==(a[Da>>2]&1|0)?176:175;break;case 175:sm(k,d,e,f);h=176;break;case 176:ea=a[M>>2];h=177;break;case 177:return m=y,ea}}function gj(b,
+d,e,f){for(var c=0,c=1;;)switch(c){case 1:var g=0.66*(0.5-d),h=0>g?0:g,c=0.5*h,g=a[b>>2],l=b+4|0,m=a[l>>2],h=(0.5(c|0)?c:h,h=0>(h|0)?0:h;if(124<(m|0))c=2;else var p=g,v=m,c=7;break;case 2:var E=m-h|0,c=125<(E|0)?3:6;break;case 3:if((g|0)<(e|0))c=4;else var z=g,c=5;break;case 4:z=h+g|0;a[b>>2]=z;c=5;break;case 5:a[l>>2]=E;p=z;v=E;c=7;break;case 6:p=(g-125|0)+m|0;a[b>>2]=p;v=a[l>>2]=125;c=7;break;case 7:var A=p+v|0,c=(A|0)>(f|0)?8:9;break;case 8:c=(Math.imul(p,
+f)|0)/(A|0)&-1;a[b>>2]=c;c=(Math.imul(v,f)|0)/(A|0)&-1;a[l>>2]=c;c=9;break;case 9:return}}function dl(k,d,e,f,c,g){var h=0,l=m;m=m+24|0;for(h=1;;)switch(h){case 1:var kb=l,p=l+8,v=l+16,E=v;a[kb>>2]=0;a[(v|0)>>2]=0;a[(v+4|0)>>2]=0;a:for(var z=k,A=f,v=p,D=kb,h=g,w=0,w=1;;)switch(w){case 1:var u=a[(z+52144|0)>>2],t=a[(z+52140|0)>>2]+(0==(h|0)?0:A)|0,s=z+85096|0,G=a[s>>2],H=0==(G&1|0);if(H)var K=u,w=3;else w=2;break;case 2:K=0.9*(u|0)&-1;w=3;break;case 3:var Q=9*K&-1,w=(10*t&-1|0)>(Q|0)?4:5;break;case 4:var J=
+t-((Q|0)/10&-1)|0,F=J+A|0;a[s>>2]=G|128;w=7;break;case 5:a[s>>2]=G&127;0!=(a[(z+144|0)>>2]|0)|H^1?(F=A,J=0,w=7):w=6;break;case 6:F=A|0;F=F-0.1*F&-1;J=0;w=7;break;case 7:z=(6*u&-1|0)/10&-1;z=((t|0)<(z|0)?t:z)-J|0;z=0>(z|0)?0:z;a[v>>2]=F;a[D>>2]=z;break a}p=a[p>>2];v=a[kb>>2];D=v+p|0;D=7680<(D|0)?7680:D;z=k+72|0;A=a[z>>2];h=0<(A|0)?2:15;break;case 2:var P=(3*f&-1|0)/4&-1,da=0,C=0,ba=A,h=3;break;case 3:var L=(p|0)/(ba|0)&-1,L=4095<(L|0)?4095:L;a[(e+(C<<2)|0)>>2]=L;var h=b[(d+(c<<3)+(C<<2)|0)>>2]*(L|
+0)/700-(L|0)&-1,O=E+(C<<2)|0,h=(h|0)>(P|0)?P:h,h=0>(h|0)?0:h;if(4095<(h+L|0))h=4;else var B=h,h=5;break;case 4:B=4095-L|0;B=0>(B|0)?0:B;h=5;break;case 5:a[O>>2]=B;var Wa=B+da|0,h=C+1|0,V=a[z>>2];(h|0)<(V|0)?(da=Wa,C=h,ba=V,h=3):h=6;break;case 6:h=(Wa|0)>(v|0)&0<(Wa|0)?7:8;break;case 7:if(0<(V|0))var Eb=0,h=9;else h=15;break;case 8:if(0<(V|0))var la=0,W=v,h=11;else h=15;break;case 9:h=E+(Eb<<2)|0;w=(Math.imul(a[h>>2],v)|0)/(Wa|0)&-1;a[h>>2]=w;h=Eb+1|0;(h|0)<(V|0)?(Eb=h,h=9):h=8;break;case 10:a[kb>>
+2]=ja;var sa=0<(fa|0);if(sa)var I=0,R=0,h=12;else h=15;break;case 11:ja=a[(E+(la<<2)|0)>>2];fa=e+(la<<2)|0;a[fa>>2]=a[fa>>2]+ja|0;var ja=W-ja|0,h=la+1|0,fa=a[z>>2];(h|0)<(fa|0)?(la=h,W=ja,h=11):h=10;break;case 12:var S=a[(e+(R<<2)|0)>>2]+I|0,h=R+1|0;(h|0)<(fa|0)?(I=S,R=h,h=12):h=13;break;case 13:if(7681>(S|0)|sa^1)h=15;else var N=0,h=14;break;case 14:h=e+(N<<2)|0;a[h>>2]=(7680*a[h>>2]&-1|0)/(S|0)&-1;h=N+1|0;(h|0)<(a[z>>2]|0)?(N=h,h=14):h=15;break;case 15:return m=l,D}}function Gn(a,b,e,f){for(var c=
+0,c=1;;)switch(c){case 1:var g=1>f?94.82444763183594:f,c=3.0102999566398116*pd(b),h=a*a,l=c-e;if(9.999999682655225E-21m?0:m)))}}function dm(k,d,e,f){for(var c=0,c=1;;)switch(c){case 1:var g=a[(k+85796|0)>>2],h=e+4856|0;if(0<(a[h>>2]|0))c=2;else var y=0,m=0,p=0,v=f,c=3;break;case 2:var E=g+8|0,z=g+20|0,A=k+224|0,D=0,w=0,u=0,t=f,c=4;break;case 3:var s=
+575,c=15;break;case 4:var G=b[E>>2],H=b[z>>2],K=b[A>>2],Q=1>K?94.82444763183594:K,J=3.0102999566398116*pd(b[(g+24+(u<<2)|0)>>2]),F=G*G,P=J-H;if(9.999999682655225E-21da?0:da))),ba=b[(k+84768+(u<<2)|0)>>2],L=C*ba,O=a[(e+4872+(u<<2)|0)>>2],B=L/(O|0);if(0<(O|0))var Wa=0,V=2.220446049250313E-16,Eb=0,la=w,c=7;else var W=2.220446049250313E-16,sa=0,I=w,c=
+9;break;case 7:var R=la+1|0,ja=b[(e+(la<<2)|0)>>2],fa=ja*ja,S=Eb+fa,N=V+(faL&1)+D|0;if(sa>2];if(9.999999960041972E-13>2]/T*ba;eata+9.9999998245167E-15&1;var na=t+4|0;b[t>>2]=ta;var Z=u+1|0;(Z|0)<(a[h>>2]|0)?(D=ia,w=I,u=Z,t=na,c=4):(y=ia,m=I,p=Z,v=na,c=3);break;case 15:if(0<(s|0))c=16;else var Da=0,c=17;break;case 16:var ka=9.999999960041972E-13>2]),pa=s-1|0;ka?(Da=s,c=17):(s=pa,c=15);break;case 17:var za=2==(a[(e+4788|0)>>2]|0),c=za?19:18;break;case 18:var ca=Da|1,c=20;break;case 19:ca=(Da+5|0)-((Da|0)%6&-1)|0;c=20;break;case 20:if(0==(a[(k+85092|0)>>2]|
+0))c=21;else var va=ca,c=26;break;case 21:var $=a[(k+64|0)>>2];44E3>($|0)?c=22:(va=ca,c=26);break;case 22:var Ea=8001>($|0),c=za?24:23;break;case 23:var Fa=a[(k+21360+((Ea?17:21)<<2)|0)>>2],c=25;break;case 24:Fa=3*a[(k+21452+((Ea?9:12)<<2)|0)>>2]&-1;c=25;break;case 25:var M=Fa-1|0,va=(ca|0)>(M|0)?M:ca,c=26;break;case 26:a[(e+5208|0)>>2]=va;var ha=e+4864|0;if((p|0)<(a[ha>>2]|0))c=27;else var Aa=y,c=48;break;case 27:var wa=g+8|0,Ga=g+20|0,Qa=k+224|0,ra=k+92|0,oa=k+85800|0,Ma=y,n=m,qa=p,Sa=a[(e+4852|
+0)>>2],Ca=v,c=28;break;case 28:var Va=b[wa>>2],Ha=b[Ga>>2],Ta=b[Qa>>2],Ua=1>Ta?94.82444763183594:Ta,Nb=3.0102999566398116*pd(b[(g+112+(Sa<<2)|0)>>2]),gb=Va*Va,Na=Nb-Ha;if(9.999999682655225E-21$a?0:$a))),Ja=k+84856+(Sa<<2)|0,lb=b[Ja>>2],Ra=Gb*lb,sb=a[(e+4872+(qa<<2)|0)>>2],ob=Ra/(sb|0);if(0<(sb|0))var hb=0,mb=0,Oa=n,nb=2.220446049250313E-16,
+c=36;else c=37;break;case 31:var xb=sb+n|0,Ya=(yb>Ra&1)+Ma|0;if(yb>2];if(9.999999960041972E-13>2]/tb*lb;Ia>2],La=xa*xa,yb=mb+La,pb=nb+(LaRa&1,Bb=0>2];if(9.999999960041972E-13>2]|0)?47:43;break;case 43:var Jb=b[Ca>>2],db=Ca+4|0,jb=b[db>>2];if(Jb>jb)c=44;else var ua=jb,c=45;break;case 44:var ib=jb+(Jb-jb)*b[(a[oa>>2]+6496|0)>>2],ua=b[db>>
+2]=ib,c=45;break;case 45:var Xa=Ca+8|0,lc=b[Xa>>2],c=ua>lc?46:47;break;case 46:b[Xa>>2]=lc+(ua-lc)*b[(a[oa>>2]+6496|0)>>2];c=47;break;case 47:var vc=Sa+1|0,Za=qa+3|0;(Za|0)<(a[ha>>2]|0)?(Ma=ya,n=cb,qa=Za,Sa=vc,Ca=X,c=28):(Aa=ya,c=48);break;case 48:return Aa;case 49:var wc=2.220446049250313E-16wc+9.9999998245167E-15&1;var Tb=Ca+4|0;b[Ca>>2]=wc;if(Bb)var Ub=0,c=51;else c=50;break;case 50:Ub=2.220446049250313E-16>2];if(9.999999960041972E-13>2];Ubxc+9.9999998245167E-15&1;var Qb=Ca+8|0;b[Tb>>2]=xc;var eb=((-Hb|0)&3)+Ma|0;if(Bb)var Kb=0,c=56;else c=55;break;case 55:Kb=2.220446049250313E-16>
+2];if(9.999999960041972E-13>2];KbZb+9.9999998245167E-15&1;b[Qb>>2]=Zb;ya=eb;cb=n;c=42;break;case 60:var nc=2.220446049250313E-16nc+9.9999998245167E-15&1;b[Ca>>2]=nc;var yc=0,rc=0,Pc=xb,cc=2.220446049250313E-16,c=61;break;case 61:var Wb=Pc+1|0,ic=b[(e+
+(Pc<<2)|0)>>2],Wc=ic*ic,Gc=rc+Wc,Hc=cc+(WcRa&1)|0;if(Gc>2];if(9.999999960041972E-13>2]/Vb*b[Ja>>2];CbXb+9.9999998245167E-15&1;b[Mb>>2]=Xb;var sc=0,Qc=0,Rc=zc,Zc=2.220446049250313E-16,c=68;break;case 68:var ec=Rc+1|0,Ac=b[(e+(Rc<<2)|0)>>2],Mc=Ac*Ac,Bc=Qc+Mc,Cc=Zc+(McRa&1)|0;if(Bc>2];if(9.999999960041972E-13>2]/oc*b[Ja>>2];Ecac+9.9999998245167E-15&1;b[Yb>>2]=ac;ya=Dc;cb=Sc;c=42}}function qs(k,d,e,f,c){var g=0,h=m;m=m+8|0;for(g=1;;)switch(g){case 1:var l=h,kb=f+16|0;a[kb>>2]=0;var p=k+4864|0;if(0<(a[p>>2]|0))g=2;else var v=0,E=0,z=-20,A=0,g=30;break;case 2:var D=k+4780|0,w=k+4832|0,u=k+4836|0,t=0!=(c|0),
+s=c|0,G=k+5208|0,H=k+4776|0,K=k+4772|0,Q=l|0,J=l+4|0,F=0,P=0,da=0,C=-20,ba=k+4608|0,L=0,O=0,B=e,Wa=d,g=3;break;case 3:var V=a[D>>2],Eb=ba+4|0,la=a[ba>>2];if(0==(a[w>>2]|0))var W=0,g=5;else g=4;break;case 4:W=a[(14248+(O<<2)|0)>>2];g=5;break;case 5:var sa=(V-((W+la|0)<<(a[u>>2]+1|0))|0)-(a[(k+4808+(a[(k+5028+(O<<2)|0)>>2]<<2)|0)>>2]<<3)|0,I=Wa+4|0,R=1/b[Wa>>2],g=t?6:8;break;case 6:g=(a[(c+8+(O<<2)|0)>>2]|0)==(sa|0)?7:8;break;case 7:var ja=b[(c+320+(O<<2)|0)>>2],fa=R*b[(c+164+(O<<2)|0)>>2],S=a[(k+4872+
+(O<<2)|0)>>2]+F|0,g=26;break;case 8:var N=b[(47240+((sa+116|0)<<2)|0)>>2],g=a[(k+4872+(O<<2)|0)>>2],aa=g>>1,ma=a[G>>2];if((g+F|0)>(ma|0))g=9;else var ia=aa,g=10;break;case 9:ia=(ma-F|0)+1|0;g=ia>>1;ia=0<(ia|0)?g:0;g=10;break;case 10:g=(F|0)>(a[H>>2]|0)?11:13;break;case 11:if(0==(ia|0))var ea=0,T=F,g=21;else var Y=F,U=0,ta=ia,g=12;break;case 12:var g=ta-1|0,na=b[(k+(Y<<2)|0)>>2],Z=b[(k+((Y+1|0)<<2)|0)>>2],aa=Y+2|0,na=U+na*na+Z*Z;0==(g|0)?g=18:(Y=aa,U=na,ta=g,g=12);break;case 13:g=(F|0)>(a[K>>2]|0)?
+15:14;break;case 14:if(0==(ia|0))ea=0,T=F,g=21;else var Da=F,ka=0,pa=ia,g=17;break;case 15:b[Q>>2]=0;b[J>>2]=N;if(0==(ia|0))ea=0,T=F,g=21;else var za=F,ca=0,va=ia,g=16;break;case 16:var g=va-1|0,$=Math.abs(b[(k+(za<<2)|0)>>2])-b[(l+(a[(k+2304+(za<<2)|0)>>2]<<2)|0)>>2],aa=za+1|0,$=ca+$*$,Z=Math.abs(b[(k+(aa<<2)|0)>>2])-b[(l+(a[(k+2304+(aa<<2)|0)>>2]<<2)|0)>>2],aa=za+2|0,$=$+Z*Z;0==(g|0)?g=19:(za=aa,ca=$,va=g,g=16);break;case 17:var g=pa-1|0,Ea=Math.abs(b[(k+(Da<<2)|0)>>2])-N*b[(14408+(a[(k+2304+(Da<<
+2)|0)>>2]<<2)|0)>>2],aa=Da+1|0,Ea=ka+Ea*Ea,Z=Math.abs(b[(k+(aa<<2)|0)>>2])-N*b[(14408+(a[(k+2304+(aa<<2)|0)>>2]<<2)|0)>>2],aa=Da+2|0,Ea=Ea+Z*Z;0==(g|0)?g=20:(Da=aa,ka=Ea,pa=g,g=17);break;case 18:T=(ia<<1)+F|0;ea=na;g=21;break;case 19:T=(ia<<1)+F|0;ea=$;g=21;break;case 20:T=(ia<<1)+F|0;ea=Ea;g=21;break;case 21:g=t?22:23;break;case 22:a[(c+8+(O<<2)|0)>>2]=sa;b[(c+164+(O<<2)|0)>>2]=ea;g=23;break;case 23:var Fa=R*ea,M=0.30102999566398114*pd(9.999999682655225E-21>2]=M;fa=Fa;S=T;g=26;break;case 25:b[B>>2]=Fa;var ha=T,Aa=M,g=27;break;case 26:b[B>>2]=fa;a[s>>2]=a[D>>2];ha=S;Aa=ja;g=27;break;case 27:var wa=B+4|0,Ga=da+Aa;if(0>2]=a[kb>>2]+Qa|0;ra=P+Aa;Qa=L+1|0;g=29;break;case 29:g=C>Aa?C:Aa;aa=O+1|0;(aa|0)<(a[p>>2]|0)?(F=ha,P=ra,da=Ga,C=g,ba=Eb,L=Qa,O=aa,B=wa,Wa=I,g=3):(v=ra,E=Ga,z=g,A=Qa,g=30);break;case 30:return a[(f+
+12|0)>>2]=A,b[(f+4|0)>>2]=E,b[(f|0)>>2]=v,b[(f+8|0)>>2]=z,m=h,A}}function Lj(b,d){var e=b+52140|0;a[e>>2]-=a[d+4844>>2]+a[d+4768>>2]}function el(b,d){var e=Math.imul(a[b+76>>2],d),f=b+52140|0,e=a[f>>2]+e|0,c=(e|0)%8&-1,g=e-c-a[b+52144>>2]|0,h=(0<(g|0)?g:0)+c|0,c=b+21312|0,g=a[c>>2],l=g<<3,l=(((l|0)<(h|0)?l:h)|0)/8&-1,m=l<<3;a[b+21320>>2]=m;h=h-m|0;a[c>>2]=g-l;a[b+21324>>2]=h;a[f>>2]=e-m-h}function ye(b,d){for(var e=0,e=1;;)switch(e){case 1:var f=Pj(b),c=a[(b+76|0)>>2],g=(f-(a[(b+24|0)>>2]<<3)|0)/
+(c|0)&-1,h=(c<<11)-8|0,l=a[(b+148|0)>>2],e=l-f|0,f=b+52144|0,h=(e|0)>(h|0)?h:e;a[f>>2]=h;e=0>(h|0)?3:2;break;case 2:if(0==(a[(b+144|0)>>2]|0))var m=h,e=4;else e=3;break;case 3:m=a[f>>2]=0;e=4;break;case 4:var p=Math.imul(g,c),v=b+52140|0,E=a[v>>2],p=((E|0)<(m|0)?E:m)+p|0,p=(p|0)>(l|0)?l:p;a[(b+21320|0)>>2]=0;var E=b+85804|0,z=a[E>>2],e=0==(z|0)?6:5;break;case 5:a[(z+203484|0)>>2]=(g|0)/2&-1;a[(a[E>>2]+203488|0)>>2]=a[v>>2];e=6;break;case 6:return a[d>>2]=g,p}}function Dn(b,d){for(var e=0,e=1;;)switch(e){case 1:if(0==
+($(b)|0))var f=-1,e=4;else e=2;break;case 2:a[(b+96|0)>>2]=d;320<(d|0)?e=3:(f=0,e=4);break;case 3:a[(b+128|0)>>2]=1;f=0;e=4;break;case 4:return f}}function $k(b,d){for(var e=0,e=1;;)switch(e){case 1:if(0==($(b)|0))var f=-1,e=3;else e=2;break;case 2:a[(b+132|0)>>2]=d;f=0;e=3;break;case 3:return f}}function vk(b,d){for(var e=0,e=1;;)switch(e){case 1:if(0==($(b)|0))var f=-1,e=3;else e=2;break;case 2:a[(b+136|0)>>2]=d;f=0;e=3;break;case 3:return f}}function lo(b){for(var d=0,d=1;;)switch(d){case 1:if(0==
+($(b)|0))var e=0,d=3;else d=2;break;case 2:e=a[(b+132|0)>>2];d=3;break;case 3:return e}}function uk(b){for(var d=0,d=1;;)switch(d){case 1:if(0==($(b)|0))var e=0,d=3;else d=2;break;case 2:e=a[(b+136|0)>>2];d=3;break;case 3:return e}}function tk(b,d){for(var e=0,e=1;;)switch(e){case 1:if(0==($(b)|0))var f=-1,e=3;else e=2;break;case 2:a[(b+148|0)>>2]=d;f=0;e=3;break;case 3:return f}}function ko(b){for(var d=0,d=1;;)switch(d){case 1:if(0==($(b)|0))var e=0,d=3;else d=2;break;case 2:e=a[(b+148|0)>>2];d=
+3;break;case 3:return e}}function Uf(b,d){for(var e=0,e=1;;)switch(e){case 1:if(0==($(b)|0)|4>>0)var f=-1,e=3;else e=2;break;case 2:a[(b+156|0)>>2]=d;f=0;e=3;break;case 3:return f}}function cl(b){for(var d=0,d=1;;)switch(d){case 1:if(0==($(b)|0))var e=0,d=3;else d=2;break;case 2:e=a[(b+156|0)>>2];d=3;break;case 3:return e}}function rm(k,d){for(var e=0,e=1;;)switch(e){case 1:if(0==($(k)|0))var f=-1,e=3;else e=2;break;case 2:var e=0>(d|0)?0:d,c=d>>31,c=(f=9<(e|0))?-1:c;a[(k+164|0)>>2]=f?9:e;b[(k+
+160|0)>>2]=0;f=c;e=3;break;case 3:return f}}function Kj(b,d){for(var e=0,e=1;;)switch(e){case 1:if(0==($(b)|0))var f=-1,e=3;else e=2;break;case 2:a[(b+168|0)>>2]=d;f=0;e=3;break;case 3:return f}}function jm(b){for(var d=0,d=1;;)switch(d){case 1:if(0==($(b)|0))var e=0,d=3;else d=2;break;case 2:e=a[(b+168|0)>>2];d=3;break;case 3:return e}}function Ki(a,d){for(var e=0,e=1;;)switch(e){case 1:if(0==($(a)|0))var f=-1,e=3;else e=2;break;case 2:b[(a+200|0)>>2]=d;f=0;e=3;break;case 3:return f}}function ys(a){for(var d=
+0,d=1;;)switch(d){case 1:if(0==($(a)|0))var e=0,d=3;else d=2;break;case 2:e=b[(a+200|0)>>2];d=3;break;case 3:return e}}function nm(a,d){for(var e=0,e=1;;)switch(e){case 1:if(0==($(a)|0))var f=-1,e=3;else e=2;break;case 2:b[(a+204|0)>>2]=d;f=0;e=3;break;case 3:return f}}function En(a){for(var d=0,d=1;;)switch(d){case 1:if(0==($(a)|0))var e=0,d=3;else d=2;break;case 2:e=b[(a+204|0)>>2];d=3;break;case 3:return e}}function bl(a,d){for(var e=0,e=1;;)switch(e){case 1:if(0==($(a)|0))var f=-1,e=3;else e=
+2;break;case 2:b[(a+224|0)>>2]=d;f=0;e=3;break;case 3:return f}}function pm(a){for(var d=0,d=1;;)switch(d){case 1:if(0==($(a)|0))var e=0,d=3;else d=2;break;case 2:e=b[(a+224|0)>>2];d=3;break;case 3:return e}}function om(a,d){for(var e=0,e=1;;)switch(e){case 1:if(0==($(a)|0))var f=-1,e=3;else e=2;break;case 2:b[(a+228|0)>>2]=d;f=0;e=3;break;case 3:return f}}function Fn(a){for(var d=0,d=1;;)switch(d){case 1:if(0==($(a)|0))var e=0,d=3;else d=2;break;case 2:e=b[(a+228|0)>>2];d=3;break;case 3:return e}}
+function zs(a,d){for(var e=0,e=1;;)switch(e){case 1:if(0==($(a)|0))var f=-1,e=3;else e=2;break;case 2:b[(a+236|0)>>2]=d;f=0;e=3;break;case 3:return f}}function fj(a,d){for(var e=0,e=1;;)switch(e){case 1:if(0==($(a)|0)|0>d|1>2]=d;f=0;e=3;break;case 3:return f}}function qm(a){for(var d=0,d=1;;)switch(d){case 1:if(0==($(a)|0))var e=0,d=3;else d=2;break;case 2:e=b[(a+248|0)>>2];d=3;break;case 3:return e}}function lm(a,d){for(var e=0,e=1;;)switch(e){case 1:if(0==
+($(a)|0))var f=-1,e=3;else e=2;break;case 2:b[(a+264|0)>>2]=d;f=0;e=3;break;case 3:return f}}function km(a){for(var d=0,d=1;;)switch(d){case 1:if(0==($(a)|0))var e=0,d=3;else d=2;break;case 2:e=b[(a+264|0)>>2];d=3;break;case 3:return e}}function al(a,d){for(var e=0,e=1;;)switch(e){case 1:if(0==($(a)|0))var f=-1,e=3;else e=2;break;case 2:b[(a+268|0)>>2]=d;f=0;e=3;break;case 3:return f}}function mm(a){for(var d=0,d=1;;)switch(d){case 1:if(0==($(a)|0))var e=0,d=3;else d=2;break;case 2:e=b[(a+268|0)>>
+2];d=3;break;case 3:return e}}function xk(a,d){for(var e=0,e=1;;)switch(e){case 1:e=0==($(a)|0)?3:2;break;case 2:b[(a+252|0)>>2]=d;e=3;break;case 3:return}}function wk(a){for(var d=0,d=1;;)switch(d){case 1:if(0==($(a)|0))var e=0,d=3;else d=2;break;case 2:e=b[(a+252|0)>>2];d=3;break;case 3:return e}}function tm(b,d,e){var f=0,c=m;m=m+8|0;for(f=1;;)switch(f){case 1:var g=c;a[g>>2]=0;var h=d+2304|0,y=(a[(d+5208|0)>>2]+2|0)&-2,y=576<(y|0)?576:y,kb=0!=(e|0);if(kb)f=2;else var p=y,f=3;break;case 2:a[(e+
+4|0)>>2]=0;p=y;f=3;break;case 3:f=1<(p|0)?5:4;break;case 4:a[(d+4776|0)>>2]=p;f=9;break;case 5:f=p-2|0;0==(a[(d+2304+(f<<2)|0)>>2]|a[(d+2304+((p-1|0)<<2)|0)>>2]|0)?(p=f,f=3):f=6;break;case 6:a[(d+4776|0)>>2]=p;if(3<(p|0))var v=0,E=0,z=p,f=7;else f=9;break;case 7:var A=z-4|0,D=a[(d+2304+(A<<2)|0)>>2],w=a[(d+2304+((z-3|0)<<2)|0)>>2],u=a[(d+2304+((z-2|0)<<2)|0)>>2],t=a[(d+2304+((z-1|0)<<2)|0)>>2];if(1<(w|D|u|t)>>>0)var s=v,G=E,H=z,f=10;else f=8;break;case 8:var K=(((((D<<1)+w|0)<<1)+u|0)<<1)+t|0,f=(l[K+
+7440|0]&255)+E|0,K=(l[K+7392|0]&255)+v|0;3<(A|0)?(v=K,E=f,z=A,f=7):(s=K,G=f,H=A,f=10);break;case 9:a[g>>2]=0;var Q=a[(d+4840|0)>>2]=0,J=p,f=12;break;case 10:a[g>>2]=G;var F=d+4840|0;a[F>>2]=0;(G|0)>(s|0)?f=11:(Q=G,J=H,f=12);break;case 11:a[g>>2]=s;a[F>>2]=1;Q=s;J=H;f=12;break;case 12:a[(d+5184|0)>>2]=Q;var P=d+4772|0;a[P>>2]=J;f=0==(J|0)?29:13;break;case 13:var da=d+4788|0,f=a[da>>2],f=2==(f|0)?14:0==(f|0)?15:17;break;case 14:var C=3*a[(b+21464|0)>>2]&-1,C=(C|0)>(J|0)?J:C,ba=J,f=18;break;case 15:var L=
+l[(J-2|0)+(b+85100)|0]<<24>>24;a[(d+4824|0)>>2]=L;var O=l[(J-1|0)+(b+85100)|0]<<24>>24;a[(d+4828|0)>>2]=O;O=a[(b+21360+(((L+2|0)+O|0)<<2)|0)>>2];L=a[(b+21360+((L+1|0)<<2)|0)>>2];(O|0)<(J|0)?f=16:(C=L,ba=O,f=18);break;case 16:C=ib[a[(b+85816|0)>>2]](d+2304+(O<<2)|0,d+2304+(J<<2)|0,g);a[(d+4804|0)>>2]=C;C=L;ba=O;f=18;break;case 17:a[(d+4824|0)>>2]=7;a[(d+4828|0)>>2]=13;C=a[(b+21392|0)>>2];C=(C|0)>(J|0)?J:C;ba=J;f=18;break;case 18:var B=(C|0)<(J|0)?C:J,Wa=(ba|0)<(J|0)?ba:J,f=0<(B|0)?19:20;break;case 19:f=
+ib[a[(b+85816|0)>>2]](h,d+2304+(B<<2)|0,g);a[(d+4796|0)>>2]=f;f=20;break;case 20:f=(B|0)<(Wa|0)?21:22;break;case 21:f=ib[a[(b+85816|0)>>2]](d+2304+(B<<2)|0,d+2304+(Wa<<2)|0,g);a[(d+4800|0)>>2]=f;f=22;break;case 22:f=2==(a[(b+36|0)>>2]|0)?23:24;break;case 23:f=d+4768|0;a[f>>2]=a[g>>2];Mj(b,d);a[g>>2]=a[f>>2];f=24;break;case 24:f=kb?25:29;break;case 25:f=0==(a[da>>2]|0)?26:29;break;case 26:var V=a[P>>2],Eb=0,f=27;break;case 27:f=Eb+1|0;(a[(b+21360+(Eb<<2)|0)>>2]|0)<(V|0)?(Eb=f,f=27):f=28;break;case 28:a[(e+
+4|0)>>2]=Eb;f=29;break;case 29:return b=a[g>>2],m=c,b}}function Mj(b,d){var e=0,f=m;m=m+5672|0;for(e=1;;)switch(e){case 1:var c=f,g=f+8,h=f+16,y=f+24,kb=f+32,p=f+5288,v=f+5384,E=f+5480,z=f+5576,A=d+2304|0,D=a[(d+4788|0)>>2],e=2==(D|0)?2:4;break;case 2:e=1==(a[(b+76|0)>>2]|0)?38:3;break;case 3:var w=kb,u=d;ha(w,u,5252);e=5;break;case 4:var t=kb,s=d;ha(t,s,5252);0==(D|0)?e=6:(w=t,u=s,e=5);break;case 5:var G=kb+4772|0,H=w,K=u,e=20;break;case 6:var Q=a[(d+4772|0)>>2];a[(p|0)>>2]=1E5;a[(p+4|0)>>2]=1E5;
+a[(p+8|0)>>2]=1E5;a[(p+12|0)>>2]=1E5;a[(p+16|0)>>2]=1E5;a[(p+20|0)>>2]=1E5;a[(p+24|0)>>2]=1E5;a[(p+28|0)>>2]=1E5;a[(p+32|0)>>2]=1E5;a[(p+36|0)>>2]=1E5;a[(p+40|0)>>2]=1E5;a[(p+44|0)>>2]=1E5;a[(p+48|0)>>2]=1E5;a[(p+52|0)>>2]=1E5;a[(p+56|0)>>2]=1E5;a[(p+60|0)>>2]=1E5;a[(p+64|0)>>2]=1E5;a[(p+68|0)>>2]=1E5;a[(p+72|0)>>2]=1E5;a[(p+76|0)>>2]=1E5;a[(p+80|0)>>2]=1E5;a[(p+84|0)>>2]=1E5;a[(p+88|0)>>2]=1E5;var J=b+85816|0,F=0,e=8;break;case 7:16>(P|0)?(F=P,e=8):e=14;break;case 8:var P=F+1|0,da=a[(b+21360+(P<<
+2)|0)>>2],e=(da|0)<(Q|0)?9:14;break;case 9:a[y>>2]=0;var C=d+2304+(da<<2)|0,ba=ib[a[J>>2]](A,C,y),L=0,e=10;break;case 10:var O=L+F|0,B=a[(b+21360+((O+2|0)<<2)|0)>>2],e=(B|0)<(Q|0)?11:7;break;case 11:a[h>>2]=a[y>>2];var Wa=ib[a[J>>2]](C,d+2304+(B<<2)|0,h),V=p+(O<<2)|0,Eb=a[h>>2],e=(a[V>>2]|0)>(Eb|0)?12:13;break;case 12:a[V>>2]=Eb;a[(v+(O<<2)|0)>>2]=F;a[(E+(O<<2)|0)>>2]=ba;a[(z+(O<<2)|0)>>2]=Wa;e=13;break;case 13:e=L+1|0;8>(e|0)?(L=e,e=10):e=7;break;case 14:var la=kb+4772|0,W=a[la>>2],sa=kb+5184|0,
+I=d+4768|0,R=d+2304+(W<<2)|0,ja=d+4824|0,fa=d+4828|0,S=d+4796|0,N=d+4800|0,aa=d+4804|0,ma=2,e=15;break;case 15:var ia=a[(b+21360+(ma<<2)|0)>>2];(ia|0)<(W|0)?e=16:(G=la,H=t,K=s,e=20);break;case 16:var ea=ma-2|0,e=a[sa>>2]+a[(p+(ea<<2)|0)>>2]|0;a[g>>2]=e;(a[I>>2]|0)>(e|0)?e=17:(G=la,H=t,K=s,e=20);break;case 17:var T=ib[a[J>>2]](d+2304+(ia<<2)|0,R,g),Y=a[g>>2],e=(a[I>>2]|0)>(Y|0)?18:19;break;case 18:ha(s,t,5252);a[I>>2]=Y;e=a[(v+(ea<<2)|0)>>2];a[ja>>2]=e;a[fa>>2]=ea-e|0;a[S>>2]=a[(E+(ea<<2)|0)>>2];a[N>>
+2]=a[(z+(ea<<2)|0)>>2];a[aa>>2]=T;e=19;break;case 19:e=ma+1|0;23>(e|0)?(ma=e,e=15):(G=la,H=t,K=s,e=20);break;case 20:var U=a[G>>2],e=0==(U|0)?38:21;break;case 21:e=1<(a[(d+2304+((U-1|0)<<2)|0)>>2]|a[(d+2304+((U-2|0)<<2)|0)>>2])>>>0?38:22;break;case 22:var ta=a[(d+4776|0)>>2]+2|0,e=576<(ta|0)?38:23;break;case 23:ha(H,K,5252);a[(kb+4776|0)>>2]=ta;var na=a[G>>2];if((ta|0)>(na|0))var Z=0,Da=0,ka=ta,e=24;else var pa=0,za=0,ca=ta,e=25;break;case 24:var e=ka-4|0,va=(((((a[(d+2304+(e<<2)|0)>>2]<<1)+a[(d+
+2304+((ka-3|0)<<2)|0)>>2]|0)<<1)+a[(d+2304+((ka-2|0)<<2)|0)>>2]|0)<<1)+a[(d+2304+((ka-1|0)<<2)|0)>>2]|0,$=(l[va+7440|0]&255)+Da|0,va=(l[va+7392|0]&255)+Z|0;(e|0)>(na|0)?(Z=va,Da=$,ka=e,e=24):(pa=va,za=$,ca=e,e=25);break;case 25:a[G>>2]=ca;var Ea=(za|0)>(pa|0),Fa=Ea?pa:za;a[(kb+4840|0)>>2]=Ea&1;Ea=kb+5184|0;a[Ea>>2]=Fa;e=0==(a[(kb+4788|0)>>2]|0)?26:32;break;case 26:var M=d+4768|0,ra=b+85816|0,Aa=d+2304+(ca<<2)|0,wa=d+4824|0,Ga=d+4828|0,Qa=d+4796|0,oa=d+4800|0,ua=d+4804|0,Ma=2,e=27;break;case 27:var n=
+a[(b+21360+(Ma<<2)|0)>>2],e=(n|0)<(ca|0)?28:38;break;case 28:var qa=Ma-2|0,e=a[Ea>>2]+a[(p+(qa<<2)|0)>>2]|0;a[c>>2]=e;e=(a[M>>2]|0)>(e|0)?29:38;break;case 29:var Sa=ib[a[ra>>2]](d+2304+(n<<2)|0,Aa,c),Ca=a[c>>2],e=(a[M>>2]|0)>(Ca|0)?30:31;break;case 30:ha(K,H,5252);a[M>>2]=Ca;e=a[(v+(qa<<2)|0)>>2];a[wa>>2]=e;a[Ga>>2]=qa-e|0;a[Qa>>2]=a[(E+(qa<<2)|0)>>2];a[oa>>2]=a[(z+(qa<<2)|0)>>2];a[ua>>2]=Sa;e=31;break;case 31:e=Ma+1|0;23>(e|0)?(Ma=e,e=27):e=38;break;case 32:var Va=kb+4768|0;a[Va>>2]=Fa;var Ha=a[(b+
+21392|0)>>2],Ha=(Ha|0)>(ca|0)?ca:Ha,e=0<(Ha|0)?33:34;break;case 33:e=ib[a[(b+85816|0)>>2]](A,d+2304+(Ha<<2)|0,Va);a[(kb+4796|0)>>2]=e;e=34;break;case 34:e=(ca|0)>(Ha|0)?35:36;break;case 35:e=ib[a[(b+85816|0)>>2]](d+2304+(Ha<<2)|0,d+2304+(ca<<2)|0,Va);a[(kb+4800|0)>>2]=e;e=36;break;case 36:e=(a[(d+4768|0)>>2]|0)>(a[Va>>2]|0)?37:38;break;case 37:ha(K,H,5252);e=38;break;case 38:m=f;return}}function yg(k,d,e,f){for(var c=0,c=1;;)switch(c){case 1:var g=e+4780|0,h=a[g>>2],l=b[(83560+(h<<2)|0)>>2];if(b[(e+
+4764|0)>>2]>8206/l)var m=1E5,c=47;else c=2;break;case 2:var p=e+2304|0,v=0!=(f|0);if(v)c=3;else var E=0,c=4;break;case 3:E=(h|0)==(a[(f|0)>>2]|0);c=4;break;case 4:var z=e+4788|0,A=2==(a[z>>2]|0)?38:21,D=e+4832|0,w=e+4836|0,u=0.5945999622344971/l,t=e+5208|0,s=A+1|0,G=f+4|0,H=0,K=0,Q=p,J=0,F=0,P=p,da=d,C=d,c=5;break;case 5:c=E?7:6;break;case 6:if(0==(a[z>>2]|0))c=7;else var ba=-1,c=15;break;case 7:var L=a[g>>2],O=a[(e+4608+(K<<2)|0)>>2];if(0==(a[D>>2]|0))var B=0,c=9;else c=8;break;case 8:B=a[(14248+
+(K<<2)|0)>>2];c=9;break;case 9:var Wa=(L-((B+O|0)<<(a[w>>2]+1|0))|0)-(a[(e+4808+(a[(e+5028+(K<<2)|0)>>2]<<2)|0)>>2]<<3)|0;E?c=10:(ba=Wa,c=15);break;case 10:(a[(f+8+(K<<2)|0)>>2]|0)==(Wa|0)?c=11:(ba=Wa,c=15);break;case 11:c=0==(J|0)?13:12;break;case 12:Li(J,l,da,P);c=13;break;case 13:if(0==(F|0))var V=da,I=P,la=0,W=0,sa=K,c=31;else var R=0,c=14;break;case 14:var c=R|1,S=u<=b[(da+(c<<2)|0)>>2]&1;a[(P+(R<<2)|0)>>2]=u<=b[(da+(R<<2)|0)>>2]&1;a[(P+(c<<2)|0)>>2]=S;c=R+2|0;c>>>0>>0?(R=c,c=14):(V=da,I=
+P,W=la=0,sa=K,c=31);break;case 15:var c=a[(e+4872+(K<<2)|0)>>2],ja=a[t>>2];if((c+H|0)>(ja|0))c=16;else var fa=c,N=K,c=17;break;case 16:fa=(ja-H|0)+1|0;ra(e+2304+(ja<<2)|0,0,(576-ja|0)<<2);fa=0>(fa|0)?0:fa;N=s;c=17;break;case 17:var T=0!=(J|0),aa=0==(F|0),ma=aa&(T^1),ia=ma?Q:P,ma=ma?C:da,c=v?18:23;break;case 18:c=a[G>>2];c=1>(c|0)|(N|0)<(c|0)?23:19;break;case 19:c=a[(f+8+(N<<2)|0)>>2];c=1>(c|0)|(ba|0)<(c|0)?23:20;break;case 20:if(T)c=21;else var ea=ma,U=ia,c=22;break;case 21:Li(J,l,ma,ia);ea=C;U=Q;
+c=22;break;case 22:var Y=ea,$=U,ta=fa+F|0,na=0,c=26;break;case 23:if(aa)var Z=ma,Da=ia,c=25;else var ka=0,c=24;break;case 24:c=ka|1;S=u<=b[(ma+(c<<2)|0)>>2]&1;a[(ia+(ka<<2)|0)>>2]=u<=b[(ma+(ka<<2)|0)>>2]&1;a[(ia+(c<<2)|0)>>2]=S;c=ka+2|0;c>>>0>>0?(ka=c,c=24):(Z=C,Da=Q,c=25);break;case 25:na=fa+J|0;Y=Z;$=Da;ta=0;c=26;break;case 26:1>(fa|0)?c=27:(V=Y,I=$,la=ta,W=na,sa=N,c=31);break;case 27:if(0==(ta|0))c=29;else var pa=0,c=28;break;case 28:c=pa|1;S=u<=b[(Y+(c<<2)|0)>>2]&1;a[($+(pa<<2)|0)>>2]=u<=b[(Y+
+(pa<<2)|0)>>2]&1;a[($+(c<<2)|0)>>2]=S;c=pa+2|0;c>>>0>>0?(pa=c,c=28):c=29;break;case 29:c=0==(na|0)?38:30;break;case 30:Li(na,l,Y,$);c=38;break;case 31:if((sa|0)>(A|0))var za=C,ca=Q,va=H,c=33;else c=32;break;case 32:za=a[(e+4872+(sa<<2)|0)>>2];ca=Q+(za<<2)|0;va=za+H|0;za=C+(za<<2)|0;c=33;break;case 33:c=sa+1|0;(c|0)>(A|0)?c=34:(H=va,K=c,Q=ca,J=W,F=la,P=I,da=V,C=za,c=5);break;case 34:c=0==(W|0)?36:35;break;case 35:Li(W,l,V,I);c=36;break;case 36:if(0==(la|0))c=38;else var ha=0,c=37;break;case 37:c=
+ha|1;S=u<=b[(V+(c<<2)|0)>>2]&1;a[(I+(ha<<2)|0)>>2]=u<=b[(V+(ha<<2)|0)>>2]&1;a[(I+(c<<2)|0)>>2]=S;c=ha+2|0;c>>>0>>0?(ha=c,c=37):c=38;break;case 38:c=0==(a[(k+85096|0)>>2]&2|0)?46:39;break;case 39:var Ea=0.634521682242439/b[(83560+((a[w>>2]+a[g>>2]|0)<<2)|0)>>2],Fa=e+4860|0,c=a[Fa>>2];if(0<(c|0))var M=0,oa=0,Aa=c,c=40;else c=46;break;case 40:var c=a[(e+4872+(oa<<2)|0)>>2],wa=c+M|0;if(0!=(a[(k+84936+(oa<<2)|0)>>2]|0)&0<(c|0))var Ga=M,c=41;else var Qa=Aa,c=45;break;case 41:var ua=e+2304+(Ga<<2)|0;
+if(b[(d+(Ga<<2)|0)>>2]>2];c=43;break;case 43:a[ua>>2]=uc;c=Ga+1|0;(c|0)<(wa|0)?(Ga=c,c=41):c=44;break;case 44:Qa=a[Fa>>2];c=45;break;case 45:c=oa+1|0;(c|0)<(Qa|0)?(M=wa,oa=c,Aa=Qa,c=40):c=46;break;case 46:m=tm(k,e,f);c=47;break;case 47:return m}}function Nj(b,d,e,f){for(var c=0,c=1;;)switch(c){case 1:var g=f+(10504*d&-1)+(5252*e&-1)|0,h=f+(10504*d&-1)+(5252*e&-1)+4860|0,l=a[h>>2];if(0<(l|0))var m=0,p=0,v=0,E=l,c=2;else var z=0,A=l,c=8;break;case 2:var D=
+a[(f+(10504*d&-1)+(5252*e&-1)+4872+(v<<2)|0)>>2]+m|0,w=m,c=3;break;case 3:c=(w|0)<(D|0)?4:5;break;case 4:var u=w+1|0;0==(a[(f+(10504*d&-1)+(5252*e&-1)+2304+(w<<2)|0)>>2]|0)?(w=u,c=3):c=5;break;case 5:if((w|0)==(D|0))c=6;else var t=p,s=E,c=7;break;case 6:a[(f+(10504*d&-1)+(5252*e&-1)+4608+(v<<2)|0)>>2]=-2;var G=a[h>>2],t=-2,s=G,c=7;break;case 7:var H=v+1|0;(H|0)<(s|0)?(m=D,p=t,v=H,E=s,c=2):(z=t,A=s,c=8);break;case 8:var K=f+(10504*d&-1)+(5252*e&-1)+4836|0,Q=f+(10504*d&-1)+(5252*e&-1)+4832|0;if(0==
+(a[K>>2]|0))c=9;else var J=z,c=18;break;case 9:if(0==(a[Q>>2]|0))c=10;else var F=z,c=27;break;case 10:var P=0<(A|0);if(P)var da=0,C=0,c=11;else J=z,c=18;break;case 11:var ba=a[(f+(10504*d&-1)+(5252*e&-1)+4608+(da<<2)|0)>>2],L=(0<(ba|0)?ba:0)|C,O=da+1|0;(O|0)<(A|0)?(da=O,C=L,c=11):c=12;break;case 12:0==(L&1|0)&0!=(L|0)?c=13:(J=z,c=18);break;case 13:if(P)var B=0,Wa=A,c=14;else c=17;break;case 14:var V=f+(10504*d&-1)+(5252*e&-1)+4608+(B<<2)|0,I=a[V>>2];if(0<(I|0))c=15;else var la=Wa,c=16;break;case 15:a[V>>
+2]=I>>1;la=a[h>>2];c=16;break;case 16:var W=B+1|0;(W|0)<(la|0)?(B=W,Wa=la,c=14):c=17;break;case 17:J=a[K>>2]=1;c=18;break;case 18:0==(a[Q>>2]|0)?c=19:(F=J,c=27);break;case 19:2==(a[(f+(10504*d&-1)+(5252*e&-1)+4788|0)>>2]|0)?(F=J,c=27):c=20;break;case 20:if(2==(a[(b+76|0)>>2]|0))var sa=11,c=21;else F=J,c=27;break;case 21:c=21>(sa|0)?22:23;break;case 22:var R=a[(f+(10504*d&-1)+(5252*e&-1)+4608+(sa<<2)|0)>>2],S=sa+1|0;(R|0)>=(a[(14248+(sa<<2)|0)>>2]|0)|-2==(R|0)?(sa=S,c=21):c=23;break;case 23:21==(sa|
+0)?c=24:(F=J,c=27);break;case 24:var N=f+(10504*d&-1)+(5252*e&-1)+4652|0,fa=a[N>>2],c=0<(fa|0)?25:26;break;case 25:a[N>>2]=fa-1|0;c=26;break;case 26:var T=f+(10504*d&-1)+(5252*e&-1)+4656|0,U=a[T>>2],c=0<(U|0)?101:102;break;case 27:var aa=f+21008+(((e<<2)+4|0)<<2)|0;a[aa>>2]=0;a[aa+4>>2]=0;a[aa+8>>2]=0;a[aa+12>>2]=0;if(2==(a[(b+76|0)>>2]|0)&1==(d|0))c=28;else var ma=F,c=81;break;case 28:2==(a[(f+(5252*e&-1)+4788|0)>>2]|0)?(ma=F,c=81):c=29;break;case 29:if(2==(a[(f+10504+(5252*e&-1)+4788|0)>>2]|0))ma=
+F,c=81;else var ia=0,c=30;break;case 30:c=6>(ia|0)?31:32;break;case 31:var ea=a[(f+10504+(5252*e&-1)+4608+(ia<<2)|0)>>2],$=ia+1|0;(a[(f+(5252*e&-1)+4608+(ia<<2)|0)>>2]|0)!=(ea|0)&-1<(ea|0)?c=32:(ia=$,c=30);break;case 32:if(6==(ia|0))c=33;else var Y=6,c=88;break;case 33:var ha=f+10504+(5252*e&-1)+4608|0;a[ha>>2]=-1;a[ha+4>>2]=-1;a[ha+8>>2]=-1;a[ha+12>>2]=-1;a[ha+16>>2]=-1;a[ha+20>>2]=-1;a[(f+21024+(e<<4)|0)>>2]=1;Y=6;c=88;break;case 34:var ta,na,Z=a[(f+10504+(5252*e&-1)+4652|0)>>2];if(-1==(Z|0))var Da=
+0,ka=0,c=39;else c=38;break;case 35:var pa=0<(Rb|0)?Rb:0,za=1,c=36;break;case 36:var ca=a[(f+10504+(5252*e&-1)+4612|0)>>2];if(-1==(ca|0))var va=pa,oa=za,c=63;else c=62;break;case 37:var Ea,Fa,M=f+10504+(5252*e&-1)+4844|0,ra=f+10504+(5252*e&-1)+4784|0,Aa=0,c=40;break;case 38:Da=0<(Z|0)?Z:0;ka=1;c=39;break;case 39:var wa=a[(f+10504+(5252*e&-1)+4656|0)>>2];if(-1==(wa|0))var Ga=Da,Qa=ka,c=46;else c=45;break;case 40:c=(na|0)<(a[(11824+(Aa<<2)|0)>>2]|0)?41:44;break;case 41:c=(Ea|0)<(a[(11696+(Aa<<2)|0)>>
+2]|0)?42:44;break;case 42:var ua=Math.imul(a[(11760+(Aa<<2)|0)>>2],ta),uc=Math.imul(a[(11632+(Aa<<2)|0)>>2],Fa)+ua|0,c=(a[M>>2]|0)>(uc|0)?43:44;break;case 43:a[M>>2]=uc;a[ra>>2]=Aa;c=44;break;case 44:var Ma=Aa+1|0;16>Ma>>>0?(Aa=Ma,c=40):(ma=0,c=81);break;case 45:var n=ka+1|0,Ga=(Da|0)<(wa|0)?wa:Da,Qa=n,c=46;break;case 46:var qa=a[(f+10504+(5252*e&-1)+4660|0)>>2];if(-1==(qa|0))var Sa=Ga,Ca=Qa,c=48;else c=47;break;case 47:var Va=Qa+1|0,Sa=(Ga|0)<(qa|0)?qa:Ga,Ca=Va,c=48;break;case 48:var Ha=a[(f+10504+
+(5252*e&-1)+4664|0)>>2];if(-1==(Ha|0))var Ta=Sa,Ua=Ca,c=50;else c=49;break;case 49:var Nb=Ca+1|0,Ta=(Sa|0)<(Ha|0)?Ha:Sa,Ua=Nb,c=50;break;case 50:var gb=a[(f+10504+(5252*e&-1)+4668|0)>>2];if(-1==(gb|0))var Na=Ta,$a=Ua,c=52;else c=51;break;case 51:var Gb=Ua+1|0,Na=(Ta|0)<(gb|0)?gb:Ta,$a=Gb,c=52;break;case 52:var Ja=a[(f+10504+(5252*e&-1)+4672|0)>>2];if(-1==(Ja|0))var lb=Na,Ra=$a,c=54;else c=53;break;case 53:var sb=$a+1|0,lb=(Na|0)<(Ja|0)?Ja:Na,Ra=sb,c=54;break;case 54:var ob=a[(f+10504+(5252*e&-1)+
+4676|0)>>2];if(-1==(ob|0))var hb=lb,mb=Ra,c=56;else c=55;break;case 55:var Oa=Ra+1|0,hb=(lb|0)<(ob|0)?ob:lb,mb=Oa,c=56;break;case 56:var nb=a[(f+10504+(5252*e&-1)+4680|0)>>2];if(-1==(nb|0))var xb=hb,Ya=mb,c=58;else c=57;break;case 57:var Ia=mb+1|0,xb=(hb|0)<(nb|0)?nb:hb,Ya=Ia,c=58;break;case 58:var tb=a[(f+10504+(5252*e&-1)+4684|0)>>2];if(-1==(tb|0))var Ka=xb,ab=Ya,c=60;else c=59;break;case 59:var ga=Ya+1|0,Ka=(xb|0)<(tb|0)?tb:xb,ab=ga,c=60;break;case 60:var xa=a[(f+10504+(5252*e&-1)+4688|0)>>2];
+-1==(xa|0)?(Fa=ab,Ea=Ka,c=37):c=61;break;case 61:var La=(Ka|0)<(xa|0)?xa:Ka;Fa=ab+1|0;Ea=La;c=37;break;case 62:var yb=za+1|0,va=(pa|0)<(ca|0)?ca:pa,oa=yb,c=63;break;case 63:var pb=a[(f+10504+(5252*e&-1)+4616|0)>>2];if(-1==(pb|0))var r=va,Hb=oa,c=65;else c=64;break;case 64:var Bb=oa+1|0,r=(va|0)<(pb|0)?pb:va,Hb=Bb,c=65;break;case 65:var Ib=a[(f+10504+(5252*e&-1)+4620|0)>>2];if(-1==(Ib|0))var Fb=r,bb=Hb,c=67;else c=66;break;case 66:var qb=Hb+1|0,Fb=(r|0)<(Ib|0)?Ib:r,bb=qb,c=67;break;case 67:var cb=
+a[(f+10504+(5252*e&-1)+4624|0)>>2];if(-1==(cb|0))var ya=Fb,X=bb,c=69;else c=68;break;case 68:var Jb=bb+1|0,ya=(Fb|0)<(cb|0)?cb:Fb,X=Jb,c=69;break;case 69:var db=a[(f+10504+(5252*e&-1)+4628|0)>>2];if(-1==(db|0))var jb=ya,ib=X,c=71;else c=70;break;case 70:var Xa=X+1|0,jb=(ya|0)<(db|0)?db:ya,ib=Xa,c=71;break;case 71:var Za=a[(f+10504+(5252*e&-1)+4632|0)>>2];if(-1==(Za|0))var lc=jb,vc=ib,c=73;else c=72;break;case 72:var Wb=ib+1|0,lc=(jb|0)<(Za|0)?Za:jb,vc=Wb,c=73;break;case 73:var wc=a[(f+10504+(5252*
+e&-1)+4636|0)>>2];if(-1==(wc|0))var Tb=lc,Ub=vc,c=75;else c=74;break;case 74:var ub=vc+1|0,Tb=(lc|0)<(wc|0)?wc:lc,Ub=ub,c=75;break;case 75:var fc=a[(f+10504+(5252*e&-1)+4640|0)>>2];if(-1==(fc|0))var vb=Tb,xc=Ub,c=77;else c=76;break;case 76:var Qb=Ub+1|0,vb=(Tb|0)<(fc|0)?fc:Tb,xc=Qb,c=77;break;case 77:var eb=a[(f+10504+(5252*e&-1)+4644|0)>>2];if(-1==(eb|0))var Kb=vb,mc=xc,c=79;else c=78;break;case 78:var gc=xc+1|0,Kb=(vb|0)<(eb|0)?eb:vb,mc=gc,c=79;break;case 79:var ld=a[(f+10504+(5252*e&-1)+4648|0)>>
+2];-1==(ld|0)?(na=Kb,ta=mc,c=34):c=80;break;case 80:var Zb=mc+1|0;na=(Kb|0)<(ld|0)?ld:Kb;ta=Zb;c=34;break;case 81:var nc=a[h>>2];if(0<(nc|0))var yc=0,rc=nc,c=82;else c=85;break;case 82:var Pc=f+(10504*d&-1)+(5252*e&-1)+4608+(yc<<2)|0;if(-2==(a[Pc>>2]|0))c=83;else var cc=rc,c=84;break;case 83:a[Pc>>2]=0;cc=a[h>>2];c=84;break;case 84:var Mb=yc+1|0;(Mb|0)<(cc|0)?(yc=Mb,rc=cc,c=82):c=85;break;case 85:c=0==(ma|0)?87:86;break;case 86:de(b,g);c=87;break;case 87:return;case 88:c=11>(Y|0)?89:90;break;case 89:var ic=
+a[(f+10504+(5252*e&-1)+4608+(Y<<2)|0)>>2],Wc=Y+1|0;(a[(f+(5252*e&-1)+4608+(Y<<2)|0)>>2]|0)!=(ic|0)&-1<(ic|0)?c=90:(Y=Wc,c=88);break;case 90:if(11==(Y|0))c=91;else var Gc=11,c=92;break;case 91:var Hc=f+10504+(5252*e&-1)+4632|0;a[Hc>>2]=-1;a[Hc+4>>2]=-1;a[Hc+8>>2]=-1;a[Hc+12>>2]=-1;a[Hc+16>>2]=-1;a[(f+21024+(e<<4)+4|0)>>2]=1;Gc=11;c=92;break;case 92:c=16>(Gc|0)?93:94;break;case 93:var Lc=a[(f+10504+(5252*e&-1)+4608+(Gc<<2)|0)>>2],ec=Gc+1|0;(a[(f+(5252*e&-1)+4608+(Gc<<2)|0)>>2]|0)!=(Lc|0)&-1<(Lc|0)?
+c=94:(Gc=ec,c=92);break;case 94:if(16==(Gc|0))c=95;else var zc=16,c=96;break;case 95:var zb=f+10504+(5252*e&-1)+4652|0;a[zb>>2]=-1;a[zb+4>>2]=-1;a[zb+8>>2]=-1;a[zb+12>>2]=-1;a[zb+16>>2]=-1;a[(f+21024+(e<<4)+8|0)>>2]=1;zc=16;c=96;break;case 96:c=21>(zc|0)?97:98;break;case 97:var Cb=a[(f+10504+(5252*e&-1)+4608+(zc<<2)|0)>>2],Vb=zc+1|0;(a[(f+(5252*e&-1)+4608+(zc<<2)|0)>>2]|0)!=(Cb|0)&-1<(Cb|0)?c=98:(zc=Vb,c=96);break;case 98:c=21==(zc|0)?99:100;break;case 99:var $b=f+10504+(5252*e&-1)+4672|0;a[$b>>2]=
+-1;a[$b+4>>2]=-1;a[$b+8>>2]=-1;a[$b+12>>2]=-1;a[$b+16>>2]=-1;a[(f+21024+(e<<4)+12|0)>>2]=1;c=100;break;case 100:var Rb=a[(f+10504+(5252*e&-1)+4608|0)>>2];-1==(Rb|0)?(za=pa=0,c=36):c=35;break;case 101:a[T>>2]=U-1|0;c=102;break;case 102:var Xb=f+(10504*d&-1)+(5252*e&-1)+4660|0,sc=a[Xb>>2],c=0<(sc|0)?103:104;break;case 103:a[Xb>>2]=sc-1|0;c=104;break;case 104:var Qc=f+(10504*d&-1)+(5252*e&-1)+4664|0,Rc=a[Qc>>2],c=0<(Rc|0)?105:106;break;case 105:a[Qc>>2]=Rc-1|0;c=106;break;case 106:var Zc=f+(10504*d&
+-1)+(5252*e&-1)+4668|0,ac=a[Zc>>2],c=0<(ac|0)?107:108;break;case 107:a[Zc>>2]=ac-2|0;c=108;break;case 108:var Ac=f+(10504*d&-1)+(5252*e&-1)+4672|0,Mc=a[Ac>>2],c=0<(Mc|0)?109:110;break;case 109:a[Ac>>2]=Mc-2|0;c=110;break;case 110:var Bc=f+(10504*d&-1)+(5252*e&-1)+4676|0,Cc=a[Bc>>2],c=0<(Cc|0)?111:112;break;case 111:a[Bc>>2]=Cc-3|0;c=112;break;case 112:var dd=f+(10504*d&-1)+(5252*e&-1)+4680|0,Yb=a[dd>>2],c=0<(Yb|0)?113:114;break;case 113:a[dd>>2]=Yb-3|0;c=114;break;case 114:var Sc=f+(10504*d&-1)+(5252*
+e&-1)+4684|0,Dc=a[Sc>>2],c=0<(Dc|0)?115:116;break;case 115:a[Sc>>2]=Dc-3|0;c=116;break;case 116:var Ec=f+(10504*d&-1)+(5252*e&-1)+4688|0,oc=a[Ec>>2],c=0<(oc|0)?117:118;break;case 117:a[Ec>>2]=oc-2|0;c=118;break;case 118:F=a[Q>>2]=1,c=27}}function Li(k,d,e,f){for(var c=0,c=1;;)switch(c){case 1:var g=f,h=k&2,l=k>>>2;if(0==(l|0))var m=g,p=e,c=5;else c=2;break;case 2:var v=l<<2,E=g,z=e,A=l,c=3;break;case 3:var c=A-1|0,D=b[(z+4|0)>>2]*d,w=b[(z+8|0)>>2]*d,u=b[(z+12|0)>>2]*d,t=b[z>>2]*d+8388608,s=t,G=E|
+0;b[G>>2]=s;var H=D+8388608,K=H,Q=E+4|0,J=Q|0;b[J>>2]=K;var F=w+8388608,P=F,da=E+8|0,D=da|0;b[D>>2]=P;var C=w=u+8388608,ba=E+12|0;b[(ba|0)>>2]=C;u=E;s=107264+(((b[N>>2]=s,a[N>>2])-1258291200|0)<<2)|0;t+=b[s>>2];b[G>>2]=t;G=Q;K=107264+(((b[N>>2]=K,a[N>>2])-1258291200|0)<<2)|0;H+=b[K>>2];b[J>>2]=H;J=da;P=107264+(((b[N>>2]=P,a[N>>2])-1258291200|0)<<2)|0;F+=b[P>>2];b[D>>2]=F;D=ba;C=107264+(((b[N>>2]=C,a[N>>2])-1258291200|0)<<2)|0;w+=b[C>>2];C=(b[N>>2]=t,a[N>>2])-1258291200|0;a[u>>2]=C;u=(b[N>>2]=H,a[N>>
+2])-1258291200|0;a[G>>2]=u;u=(b[N>>2]=F,a[N>>2])-1258291200|0;a[J>>2]=u;u=(b[N>>2]=w,a[N>>2])-1258291200|0;a[D>>2]=u;u=E+16|0;w=z+16|0;0==(c|0)?c=4:(E=u,z=w,A=c,c=3);break;case 4:p=e+(v<<2)|0;m=f+(v<<2)|0;c=5;break;case 5:c=0==(h|0)?7:6;break;case 6:c=b[(p+4|0)>>2]*d;ba=C=b[p>>2]*d+8388608;w=m|0;b[w>>2]=ba;D=u=c+8388608;F=m+4|0;b[(F|0)>>2]=D;c=m;ba=107264+(((b[N>>2]=ba,a[N>>2])-1258291200|0)<<2)|0;C+=b[ba>>2];b[w>>2]=C;w=F;D=107264+(((b[N>>2]=D,a[N>>2])-1258291200|0)<<2)|0;u+=b[D>>2];D=(b[N>>2]=C,
+a[N>>2])-1258291200|0;a[c>>2]=D;c=(b[N>>2]=u,a[N>>2])-1258291200|0;a[w>>2]=c;c=7;break;case 7:return}}function de(b,d){var e=0,f=m;m=m+16|0;for(e=1;;)switch(e){case 1:var c=f,e=2==(a[(b+76|0)>>2]|0)?2:21;break;case 2:e=2==(a[(d+4788|0)>>2]|0)?3:4;break;case 3:var g=0==(a[(d+4792|0)>>2]|0)?13752:13816,e=9;break;case 4:var h=d+4832|0;if(0==(a[h>>2]|0))var l=11,e=5;else g=13880,e=9;break;case 5:e=21>(l|0)?6:7;break;case 6:var kb=l+1|0;(a[(d+4608+(l<<2)|0)>>2]|0)<(a[(14248+(l<<2)|0)>>2]|0)?e=7:(l=kb,
+e=5);break;case 7:21==(l|0)?e=8:(g=13880,e=9);break;case 8:a[h>>2]=1;var p=d+4652|0;a[p>>2]=a[p>>2]-1|0;var v=d+4656|0;a[v>>2]=a[v>>2]-1|0;var E=d+4660|0;a[E>>2]=a[E>>2]-1|0;var z=d+4664|0;a[z>>2]=a[z>>2]-1|0;var A=d+4668|0;a[A>>2]=a[A>>2]-2|0;var D=d+4672|0;a[D>>2]=a[D>>2]-2|0;var w=d+4676|0;a[w>>2]=a[w>>2]-3|0;var u=d+4680|0;a[u>>2]=a[u>>2]-3|0;var t=d+4684|0;a[t>>2]=a[t>>2]-3|0;var s=d+4688|0;a[s>>2]=a[s>>2]-2|0;g=13880;e=9;break;case 9:var G=a[(d+4868|0)>>2];if(0<(G|0))var H=0,K=0,e=12;else var Q=
+0,J=0,e=11;break;case 10:Q=1<(G|0)?G:1;J=L;e=11;break;case 11:var F=a[(d+4860|0)>>2];if((Q|0)<(F|0))var P=Q,da=0,e=13;else var C=0,e=14;break;case 12:var ba=a[(d+4608+(H<<2)|0)>>2],L=(K|0)<(ba|0)?ba:K,O=H+1|0;(O|0)<(G|0)?(H=O,K=L,e=12):e=10;break;case 13:var B=a[(d+4608+(P<<2)|0)>>2],Wa=(da|0)<(B|0)?B:da,V=P+1|0;(V|0)<(F|0)?(P=V,da=Wa,e=13):(C=Wa,e=14);break;case 14:var I=d+4844|0;a[I>>2]=1E5;var la=d+4784|0,W=0,sa=1E5,e=15;break;case 15:if((J|0)<(a[(11824+(W<<2)|0)>>2]|0))e=16;else var R=sa,e=19;
+break;case 16:(C|0)<(a[(11696+(W<<2)|0)>>2]|0)?e=17:(R=sa,e=19);break;case 17:var S=a[(g+(W<<2)|0)>>2];(sa|0)>(S|0)?e=18:(R=sa,e=19);break;case 18:a[I>>2]=S;a[la>>2]=W;R=S;e=19;break;case 19:var N=W+1|0;16>(N|0)?(W=N,sa=R,e=15):e=20;break;case 20:var fa=1E5==(R|0)&1,e=58;break;case 21:var T=c,U=0==(a[(d+4832|0)>>2]|0);a[T>>2]=0;a[T+4>>2]=0;a[T+8>>2]=0;a[T+12>>2]=0;var aa=U?0:2;if(2==(a[(d+4788|0)>>2]|0))var ma=0,ia=0,e=23;else e=22;break;case 22:var ea=a[(49184+(48*aa&-1)|0)>>2],$=c|0,Y=0,ha=0,e=
+30;break;case 23:var ta=a[(49200+(48*aa&-1)+(ia<<2)|0)>>2],na=(ta|0)/3&-1;if(2<(ta|0))e=24;else var Z=ma,e=29;break;case 24:var Da=c+(ia<<2)|0,ka=0,pa=ma,za=a[Da>>2],e=25;break;case 25:var ca=3*pa&-1,va=a[(d+4608+(ca<<2)|0)>>2];if((va|0)>(za|0))e=26;else var oa=za,e=27;break;case 26:oa=a[Da>>2]=va;e=27;break;case 27:var Ea=a[(d+4608+((ca+1|0)<<2)|0)>>2];if((Ea|0)>(oa|0))e=40;else var Fa=oa,e=41;break;case 28:Z=(1<(na|0)?na:1)+ma|0;e=29;break;case 29:var M=ia+1|0;4>(M|0)?(ma=Z,ia=M,e=23):e=34;break;
+case 30:var ra=a[(d+4608+(Y<<2)|0)>>2];if((ra|0)>(ha|0))e=31;else var Aa=ha,e=32;break;case 31:Aa=a[$>>2]=ra;e=32;break;case 32:var wa=Y+1|0;(wa|0)<(ea|0)?(Y=wa,ha=Aa,e=30):e=33;break;case 33:var Ga=a[(49188+(48*aa&-1)|0)>>2],Qa=c+4|0,ua=0,ib=ea,Ma=0,e=44;break;case 34:var n=1,qa=a[(c|0)>>2],Sa=a[(c+4|0)>>2],Ca=a[(c+8|0)>>2],Va=a[(c+12|0)>>2],e=35;break;case 35:var Ha=((((Sa|0)>(a[(71732+(aa<<4)|0)>>2]|0)&1)+((qa|0)>(a[(71728+(aa<<4)|0)>>2]|0)&1)|0)+((Ca|0)>(a[(71736+(aa<<4)|0)>>2]|0)&1)|0)+((Va|
+0)>(a[(71740+(aa<<4)|0)>>2]|0)&1)|0;0==(Ha|0)?e=36:(fa=Ha,e=58);break;case 36:var Ta=49184+(48*aa&-1)+(n<<4)|0;a[(d+5188|0)>>2]=Ta;var Ua=a[(49600+(qa<<2)|0)>>2];a[(d+5192|0)>>2]=Ua;var Nb=a[(49600+(Sa<<2)|0)>>2];a[(d+5196|0)>>2]=Nb;var gb=a[(49600+(Ca<<2)|0)>>2];a[(d+5200|0)>>2]=gb;var Na=a[(49600+(Va<<2)|0)>>2];a[(d+5204|0)>>2]=Na;e=U?37:38;break;case 37:a[(d+4784|0)>>2]=((gb<<2)+(((5*Ua&-1)+Nb|0)<<4)|0)+Na|0;e=39;break;case 38:a[(d+4784|0)>>2]=((3*Ua&-1)+500|0)+Nb|0;e=39;break;case 39:var $a=d+
+4844|0,Gb=Math.imul(a[Ta>>2],Ua),Ja=Math.imul(a[(49184+(48*aa&-1)+(n<<4)+4|0)>>2],Nb)+Gb|0,lb=Math.imul(a[(49184+(48*aa&-1)+(n<<4)+8|0)>>2],gb),Ra=Ja+lb|0,sb=Math.imul(a[(49184+(48*aa&-1)+(n<<4)+12|0)>>2],Na);a[$a>>2]=Ra+sb|0;fa=0;e=58;break;case 40:Fa=a[Da>>2]=Ea;e=41;break;case 41:var ob=a[(d+4608+((ca+2|0)<<2)|0)>>2];if((ob|0)>(Fa|0))e=42;else var hb=Fa,e=43;break;case 42:hb=a[Da>>2]=ob;e=43;break;case 43:var mb=ka+1|0,Oa=pa+1|0;(mb|0)<(na|0)?(ka=mb,pa=Oa,za=hb,e=25):e=28;break;case 44:var nb=
+a[(d+4608+(ib<<2)|0)>>2];if((nb|0)>(Ma|0))e=45;else var xb=Ma,e=46;break;case 45:xb=a[Qa>>2]=nb;e=46;break;case 46:var Ya=ua+1|0,Ia=ib+1|0;(Ya|0)<(Ga|0)?(ua=Ya,ib=Ia,Ma=xb,e=44):e=47;break;case 47:var tb=Ga+ea|0,Ka=a[(49192+(48*aa&-1)|0)>>2];if(U)e=48;else var ab=tb,ga=0,e=53;break;case 48:var xa=c+8|0,La=0,yb=tb,pb=0,e=49;break;case 49:var r=a[(d+4608+(yb<<2)|0)>>2];if((r|0)>(pb|0))e=50;else var Hb=pb,e=51;break;case 50:Hb=a[xa>>2]=r;e=51;break;case 51:var Bb=La+1|0,Ib=yb+1|0;(Bb|0)<(Ka|0)?(La=Bb,
+yb=Ib,pb=Hb,e=49):e=52;break;case 52:ab=Ka+tb|0;ga=Hb;e=53;break;case 53:var Fb=a[(49196+(48*aa&-1)|0)>>2];0==(19>>>(aa>>>0)&1|0)?(n=0,qa=Aa,Sa=xb,Ca=ga,Va=0,e=35):e=54;break;case 54:var bb=c+12|0,qb=0,cb=ab,ya=0,e=55;break;case 55:var X=a[(d+4608+(cb<<2)|0)>>2];if((X|0)>(ya|0))e=56;else var Jb=ya,e=57;break;case 56:Jb=a[bb>>2]=X;e=57;break;case 57:var db=qb+1|0,jb=cb+1|0;(db|0)<(Fb|0)?(qb=db,cb=jb,ya=Jb,e=55):(n=0,qa=Aa,Sa=xb,Ca=ga,Va=Jb,e=35);break;case 58:return m=f,fa}}function Uo(b,d){for(var e=
+0,e=1;;)switch(e){case 1:e=44100==(b|0)?2:48E3==(b|0)?3:32E3==(b|0)?4:22050==(b|0)?5:24E3==(b|0)?6:16E3==(b|0)?7:11025==(b|0)?8:12E3==(b|0)?9:8E3==(b|0)?10:11;break;case 2:a[d>>2]=1;var f=0,e=12;break;case 3:f=a[d>>2]=1;e=12;break;case 4:a[d>>2]=1;f=2;e=12;break;case 5:f=a[d>>2]=0;e=12;break;case 6:a[d>>2]=0;f=1;e=12;break;case 7:a[d>>2]=0;f=2;e=12;break;case 8:f=a[d>>2]=0;e=12;break;case 9:a[d>>2]=0;f=1;e=12;break;case 10:a[d>>2]=0;f=2;e=12;break;case 11:a[d>>2]=0;f=-1;e=12;break;case 12:return f}}
+function mo(b,d,e){for(var f=0,f=1;;)switch(f){case 1:var c=16E3>(e|0)?2:d,g=a[(106156+(c<<6)|0)>>2],h=2,f=2;break;case 2:var l=a[(106152+(c<<6)+(h<<2)|0)>>2];if(0<(l|0))f=3;else var m=g,f=4;break;case 3:var m=l-b|0,f=-m|0,p=g-b|0,v=-p|0,m=((0<(m|0)?m:f)|0)<((0<(p|0)?p:v)|0)?l:g,f=4;break;case 4:f=h+1|0;15>(f|0)?(g=m,h=f,f=2):f=5;break;case 5:return m}}function Qo(b){for(var d=0,d=1;;)switch(d){case 1:var e=b&65535,f=0,d=2;break;case 2:if(16>(f|0))d=3;else var c=320,g=16,h=320,l=16,d=5;break;case 3:var m=
+f+1|0,p=a[(49528+(m<<2)|0)>>2];(((e|0)>(p|0)?e:p)|0)==(e|0)?(f=m,d=2):d=4;break;case 4:d=a[(49528+(f<<2)|0)>>2];c=p;g=m;h=d;l=f;d=5;break;case 5:return(c-e|0)>(e-h|0)?l:g}}function no(b,d,e){for(var f=0,f=1;;)switch(f){case 1:var c=16E3>(e|0)?2:d,g=0,f=2;break;case 2:if(15>(g|0))f=3;else var h=-1,f=4;break;case 3:var f=a[(106152+(c<<6)+(g<<2)|0)>>2],l=g+1|0;0<(f|0)&(f|0)==(b|0)?(h=g,f=4):(g=l,f=2);break;case 4:return h}}function Oj(b){for(var d=0,d=1;;)switch(d){case 1:var e=0,d=2;break;case 2:var f=
+b+37192+(e<<2)|0,c=a[f>>2],d=0==(c|0)?4:3;break;case 3:ua(c);a[f>>2]=0;d=4;break;case 4:d=e+1|0;641>(d|0)?(e=d,d=2):d=5;break;case 5:var g=b+37184|0,h=a[g>>2],d=0==(h|0)?7:6;break;case 6:ua(h);a[g>>2]=0;d=7;break;case 7:var l=b+37188|0,m=a[l>>2],d=0==(m|0)?9:8;break;case 8:ua(m);a[l>>2]=0;d=9;break;case 9:var p=b+284|0,v=a[p>>2],d=0==(v|0)?11:10;break;case 10:ua(v);a[p>>2]=0;d=11;break;case 11:var E=b+85780|0,z=a[E>>2],d=0==(z|0)?13:12;break;case 12:ua(z);a[E>>2]=0;a[(b+85776|0)>>2]=0;d=13;break;
+case 13:var A=a[(b+85796|0)>>2],d=0==(A|0)?15:14;break;case 14:ua(A);d=15;break;case 15:var D=a[(b+85676|0)>>2],d=0==(D|0)?17:16;break;case 16:ua(D);d=17;break;case 17:var w=a[(b+52152|0)>>2],d=0==(w|0)?19:18;break;case 18:ua(w);d=19;break;case 19:var u=a[(b+52156|0)>>2],d=0==(u|0)?21:20;break;case 20:ua(u);d=21;break;case 21:a:for(var t=b,s=0,s=1;;)switch(s){case 1:var G=t+85704|0,H=a[G>>2],s=0==(H|0)?3:2;break;case 2:ua(H);a[G>>2]=0;s=3;break;case 3:var K=t+85708|0,Q=a[K>>2],s=0==(Q|0)?5:4;break;
+case 4:ua(Q);a[K>>2]=0;s=5;break;case 5:var J=t+85712|0,F=a[J>>2],s=0==(F|0)?7:6;break;case 6:ua(F);a[J>>2]=0;s=7;break;case 7:var P=t+85716|0,da=a[P>>2],s=0==(da|0)?9:8;break;case 8:ua(da);a[P>>2]=0;s=9;break;case 9:var C=t+85728|0,ba=a[C>>2],s=0==(ba|0)?11:10;break;case 10:ua(ba);a[C>>2]=0;a[(t+85732|0)>>2]=0;a[(t+85740|0)>>2]=0;s=11;break;case 11:var L=t+85744|0,s=a[L>>2];if(0==(s|0))s=14;else var O=s,s=12;break;case 12:var s=a[(O+24|0)>>2],d=O,B=a[(O|0)>>2];ua(a[(O+12|0)>>2]);ua(s);ua(d);0==(B|
+0)?s=13:(O=B,s=12);break;case 13:a[L>>2]=0;a[(t+85748|0)>>2]=0;s=14;break;case 14:break a}t=b+85808|0;s=a[t>>2];d=0==(s|0)?23:22;break;case 22:Po(s);a[t>>2]=0;d=24;break;case 23:d=0==(b|0)?30:24;break;case 24:var I=b+85800|0,V=a[I>>2],d=0==(V|0)?30:25;break;case 25:var R=a[(V+2156|0)>>2];if(0==(R|0))var la=V,d=27;else d=26;break;case 26:ua(R);la=a[I>>2];d=27;break;case 27:var W=a[(la+4316|0)>>2];if(0==(W|0))var sa=la,d=29;else d=28;break;case 28:ua(W);sa=a[I>>2];d=29;break;case 29:ua(sa);d=30;break;
+case 30:ua(b);return}}function zg(k,d){for(var e=0,e=1;;)switch(e){case 1:e=a[(k+192|0)>>2];e=0==(e|0)?2:1==(e|0)?3:2==(e|0)?4:3==(e|0)?5:4==(e|0)?6:5==(e|0)?7:8;break;case 2:var f=(-0.3>d?3410:d)/1E3,e=f=0.10000000149011612>f?0.10000000149011612:f,f=24d?3410:d)/1E3;e=f=0.10000000149011612>f?0.10000000149011612:f;f=24d?3410:d)/1E3;e=f=0.10000000149011612>f?0.10000000149011612:f;f=24d?3410:d)/1E3;e=f=0.10000000149011612>f?0.10000000149011612:f;f=24>2],e=(-0.3>d?3410:d)/1E3,c=e=0.10000000149011612>e?0.10000000149011612:e,e=24>2];e=(-0.3>d?3410:d)/1E3;c=e=3.4100000858306885>e?3.4100000858306885:e;e=16.100000381469727d?3410:d)/1E3;e=f=0.10000000149011612>f?0.10000000149011612:f;f=24a?0:0.001*a;return 13*Math.atan(0.76*a)+3.5*Math.atan(a*a/56.25)}function pd(k){k=(b[N>>2]=k,a[N>>2]);var d=6.103515625E-5*
+(k&16383|0),e=k>>>14&511;return((k>>>23&255)-127|0)+((1-d)*b[71888+(e<<2)>>2]+d*b[71888+(e+1<<2)>>2])}function gm(k,d,e,f,c,g){for(var h=0,h=1;;)switch(h){case 1:var l=a[(k+84036|0)>>2],m=576*a[(k+76|0)>>2]&-1,p=a[(k+72|0)>>2],v=k+64|0,E=a[v>>2],z=E|0,A=k+60|0,D=a[A>>2],h=(D|0)<(0.9994999766349792*z&-1|0)?3:2;break;case 2:h=(1.000499963760376*z&-1|0)<(D|0)?3:40;break;case 3:var w=k+12|0,u=k+37184|0,t=k+37188|0,s=k+37168|0,G=0<(m|0),H=0,K=D,Q=E,h=4;break;case 4:var J=a[(d+(H<<2)|0)>>2],F=a[(e+(H<<
+2)|0)>>2],P=(K|0)/(Q|0);if(0==(K|0))var da=Q,h=6;else var C=Q,ba=K,h=5;break;case 5:var L=(C|0)%(ba|0)&-1;0==(L|0)?(da=ba,h=6):(C=ba,ba=L,h=5);break;case 6:var O=(Q|0)/(da|0)&-1,B=320<(O|0)?320:O,I=1E-4>Math.abs(P-Math.floor(P+0.5)),V=1/P,R=1>2]|0))h=7;else var sa=0,h=19;break;case 7:var S=xd(W,4);a[u>>2]=S;var N=xd(W,4);a[t>>2]=N;var ja=B<<1;if(0>(ja|0))h=8;else var fa=0,h=9;break;case 8:a[s>>2]=0;a[s+4>>2]=0;a[s+8>>2]=0;var T=a[s+12>>2]=0,h=18;break;case 9:var U=
+xd(W,4);a[(k+37192+(fa<<2)|0)>>2]=U;var aa=fa+1|0;(aa|0)>(ja|0)?h=10:(fa=aa,h=9);break;case 10:a[s>>2]=0;a[s+4>>2]=0;a[s+8>>2]=0;a[s+12>>2]=0;var ma=2*(B|0),ia=3.141592653589793*V,ea=R?3.1415927410125732:ia,$=la|0,Y=ea/3.141592653589793,ra=$*ea,ta=3.141592653589793*(la|0),na=0,h=11;break;case 11:var Z=(na-B|0)/ma,Da=k+37192+(na<<2)|0,ka=0,pa=0,h=12;break;case 12:var za=((pa|0)-Z)/$,ca=0>za?0:za,va=1Math.abs(ua))var Ea=Y,h=14;else h=13;break;case 13:var Fa=ua,M=12.566370614359172*
+va,ib=Math.cos(6.283185307179586*va),Aa=Math.cos(M),wa=0.42-0.5*ib+0.08*Aa,Ea=Math.sin(ra*ua)*wa/(ta*Fa),h=14;break;case 14:var Ga=Ea;b[(a[Da>>2]+(pa<<2)|0)>>2]=Ga;var Qa=ka+Ga,Xa=pa+1|0;if((Xa|0)>(la|0))var uc=0,h=15;else ka=Qa,pa=Xa,h=12;break;case 15:var Ma=a[Da>>2]+(uc<<2)|0;b[Ma>>2]/=Qa;var n=uc+1|0;(n|0)>(la|0)?h=16:(uc=n,h=15);break;case 16:var qa=na+1|0;(qa|0)>(ja|0)?h=17:(na=qa,h=11);break;case 17:var Sa=O<<1|1,T=320>(O|0)?Sa:641,h=18;break;case 18:a[w>>2]=1;sa=T;h=19;break;case 19:var Ca=
+a[(k+37184+(H<<2)|0)>>2],h=G?21:20;break;case 20:var Va=sa,Ha=0,Ta=la-(la>>>1)|0,Ua=k+37168+(H<<3)|0,h=29;break;case 21:var Nb=k+37168+(H<<3)|0,gb=la>>>1,Na=la-gb|0,$a=0.5*(la&1|0),Gb=B|0,Ja=0,h=22;break;case 22:var lb=P*(Ja|0)-oa[Nb>>3],Ra=Math.floor(lb)&-1;(Ra+Na|0)<(f|0)?h=23:(Va=Ra,Ha=Ja,Ta=Na,Ua=Nb,h=29);break;case 23:var sb=Ra-gb|0,ob=a[(k+37192+((Math.floor(Gb+2*Gb*(lb-($a+(Ra|0)))+0.5)&-1)<<2)|0)>>2],hb=0,mb=0,h=24;break;case 24:var Oa=hb+sb|0,h=0>(Oa|0)?25:26;break;case 25:var nb=Ca+((Oa+
+W|0)<<2)|0,h=27;break;case 26:nb=F+(Oa<<2)|0;h=27;break;case 27:var xb=mb+b[nb>>2]*b[(ob+(hb<<2)|0)>>2],Ya=hb+1|0;(Ya|0)>(la|0)?h=28:(hb=Ya,mb=xb,h=24);break;case 28:b[(J+((Ja+l|0)<<2)|0)>>2]=xb;var Ia=Ja+1|0;(Ia|0)<(m|0)?(Ja=Ia,h=22):(Va=Ra,Ha=Ia,Ta=Na,Ua=Nb,h=29);break;case 29:var tb=Va+Ta|0,Ka=(tb|0)>(f|0)?f:tb;a[c>>2]=Ka;oa[Ua>>3]+=(Ka|0)-P*(Ha|0);var ab=a[c>>2],h=(ab|0)<(W|0)?32:30;break;case 30:var ga=la^-1;b[Ca>>2]=b[(F+((ab+ga|0)<<2)|0)>>2];if(1>>0)var xa=1,h=31;else h=37;break;case 31:b[(Ca+
+(xa<<2)|0)>>2]=b[(F+(((xa+ga|0)+a[c>>2]|0)<<2)|0)>>2];var La=xa+1|0;(La|0)<(W|0)?(xa=La,h=31):h=37;break;case 32:var yb=W-ab|0;if(0<(yb|0))h=33;else var pb=0,h=34;break;case 33:b[Ca>>2]=b[(Ca+(ab<<2)|0)>>2];if(1<(yb|0))var r=1,h=35;else pb=1,h=34;break;case 34:if((pb|0)<(W|0))var Hb=0,Bb=pb,h=36;else h=37;break;case 35:b[(Ca+(r<<2)|0)>>2]=b[(Ca+((a[c>>2]+r|0)<<2)|0)>>2];var Ib=r+1|0;(Ib|0)<(yb|0)?(r=Ib,h=35):(pb=yb,h=34);break;case 36:b[(Ca+(Bb<<2)|0)>>2]=b[(F+(Hb<<2)|0)>>2];var Fb=Bb+1|0,bb=Hb+1|
+0;(Fb|0)<(W|0)?(Hb=bb,Bb=Fb,h=36):h=37;break;case 37:var qb=H+1|0,h=(qb|0)<(p|0)?38:39;break;case 38:var cb=a[A>>2],ya=a[v>>2],H=qb,K=cb,Q=ya,h=4;break;case 39:a[g>>2]=Ha;h=43;break;case 40:var X=(m|0)<(f|0)?m:f,Jb=X<<2,db=0,h=41;break;case 41:ha(a[(d+(db<<2)|0)>>2]+(l<<2)|0,a[(e+(db<<2)|0)>>2],Jb);var jb=db+1|0;(jb|0)<(p|0)?(db=jb,h=41):h=42;break;case 42:a[g>>2]=X;a[c>>2]=X;h=43;break;case 43:return}}function Oc(b,d,e){var f=0,c=m;m=m+16|0;for(f=1;;)switch(f){case 1:var g=c,f=0==(b|0)?4:2;break;
+case 2:var h=b+85836|0,f=0==(a[h>>2]|0)?4:3;break;case 3:var f=g|0,l=g;a[l>>2]=e;a[l+4>>2]=0;ib[a[h>>2]](d,f);f=4;break;case 4:m=c;return}}function Dh(k){for(var d=0,d=1;;)switch(d){case 1:var e=k+16|0,f=a[e>>2],c=0==(a[(f+4836|0)>>2]|0)?2:4,g=a[(f+5208|0)>>2],h=f+4832|0,l=f+4780|0,m=-2-g|0,p=0,v=0,E=f+2304|0,z=a[(k+8|0)>>2],d=2;break;case 2:var A=a[(f+4608+(p<<2)|0)>>2];if(0==(a[h>>2]|0))var D=0,d=4;else d=3;break;case 3:D=a[(14248+(p<<2)|0)>>2];d=4;break;case 4:var w=Math.imul(D+A|0,c),w=b[(83560+
+(((a[l>>2]-((a[(f+4808+(a[(f+5028+(p<<2)|0)>>2]<<2)|0)>>2]<<3)+w|0)|0)&255)<<2)|0)>>2],u=a[(f+4872+(p<<2)|0)>>2],t=(g-v|0)+1|0,s=u+v|0,G=p+1|0,H=u>>>0<=t>>>0?u:t,t=H&3,H=H>>>2;if(0==(H|0))var K=E,Q=z,d=8;else d=5;break;case 5:var J=u^-1,F=v+m|0,J=(F>>>0>>0?J:F)&-4,F=E,P=H,da=z,d=6;break;case 6:var d=P-1|0,C=w*b[(da+4|0)>>2],ba=w*b[(da+8|0)>>2],L=w*b[(da+12|0)>>2],O=w*b[da>>2]+8388608,B=(b[N>>2]=O,a[N>>2]),C=C+8388608,I=(b[N>>2]=C,a[N>>2]),ba=ba+8388608,V=(b[N>>2]=ba,a[N>>2]),L=L+8388608,R=(b[N>>
+2]=L,a[N>>2]),O=(b[N>>2]=O+b[(107264+((B-1258291200|0)<<2)|0)>>2],a[N>>2]),B=(b[N>>2]=C+b[(107264+((I-1258291200|0)<<2)|0)>>2],a[N>>2]),C=(b[N>>2]=ba+b[(107264+((V-1258291200|0)<<2)|0)>>2],a[N>>2]),I=(b[N>>2]=L+b[(107264+((R-1258291200|0)<<2)|0)>>2],a[N>>2]);a[F>>2]=O-1258291200|0;a[(F+4|0)>>2]=B-1258291200|0;a[(F+8|0)>>2]=C-1258291200|0;a[(F+12|0)>>2]=I-1258291200|0;O=F+16|0;B=da+16|0;0==(d|0)?d=7:(F=O,P=d,da=B,d=6);break;case 7:K=J^-4;Q=z+(K<<2)|0;K=E+(K<<2)|0;d=8;break;case 8:if(3==(t|0))d=9;else if(2==
+(t|0))var la=0,d=10;else if(1==(t|0))var W=0,S=0,d=11;else if(0==(t|0))var T=Q,U=K,d=17;else var ja=8388608,fa=0,$=0,d=12;break;case 9:la=w*b[(Q+8|0)>>2];d=10;break;case 10:W=w*b[(Q+4|0)>>2];S=la;d=11;break;case 11:ja=w*b[Q>>2]+8388608;fa=W;$=S;d=12;break;case 12:var d=(b[N>>2]=ja,a[N>>2]),ha=fa+8388608,aa=(b[N>>2]=ha,a[N>>2]),ma=$+8388608,d=(b[N>>2]=ja+b[(107264+((d-1258291200|0)<<2)|0)>>2],a[N>>2]),aa=(b[N>>2]=ha+b[(107264+((aa-1258291200|0)<<2)|0)>>2],a[N>>2]),ha=d-1258291200|0,aa=aa-1258291200|
+0,d=3==(t|0)?13:2==(t|0)?14:1==(t|0)?15:16;break;case 13:d=107264+(((b[N>>2]=ma,a[N>>2])-1258291200|0)<<2)|0;d=(b[N>>2]=ma+b[d>>2],a[N>>2])-1258291200|0;a[(K+8|0)>>2]=d;d=14;break;case 14:a[(K+4|0)>>2]=aa;d=15;break;case 15:a[K>>2]=ha;d=16;break;case 16:U=K+(t<<2)|0;T=Q+(t<<2)|0;d=17;break;case 17:s>>>0>g>>>0?d=18:(p=G,v=s,E=U,z=T,d=2);break;case 18:return k=tm(a[(k+12|0)>>2],a[e>>2],0),a[(a[e>>2]+4768|0)>>2]=k,a[(a[e>>2]+4768|0)>>2]}}function As(b,d,e,f){for(var c=0,c=1;;)switch(c){case 1:var g=
+0==(a[(b+4836|0)>>2]|0),h=g?2:4,g=g?1:2,m=a[(b+4860|0)>>2],kb=0!=(a[(b+4832|0)>>2]|0);if(kb&11<(m|0))var p=11,c=4;else c=2;break;case 2:if(0<(m|0))c=3;else var v=0,c=6;break;case 3:var E=b+4780|0,z=h-1|0,A=0,c=7;break;case 4:var c=Math.imul(a[(14248+(p<<2)|0)>>2],h),D=e+(p<<2)|0;a[D>>2]=a[D>>2]+c|0;c=p+1|0;(c|0)<(m|0)?(p=c,c=4):c=2;break;case 5:39>(m|0)?(v=m,c=6):c=16;break;case 6:ra(b+((v+1152|0)<<2)|0,0,156-(v<<2)|0);c=16;break;case 7:var w=a[E>>2]-(a[(b+4808+(a[(b+5028+(A<<2)|0)>>2]<<2)|0)>>2]<<
+3)|0;if(kb)c=8;else var u=0,c=9;break;case 8:u=a[(14248+(A<<2)|0)>>2];c=9;break;case 9:var t=a[(e+(A<<2)|0)>>2],c=0>(t|0)?10:14;break;case 10:var s=Math.imul(u,h),s=(w-s|0)-a[(d+(A<<2)|0)>>2]|0,c=(z-t|0)>>g,G=b+4608+(A<<2)|0;a[G>>2]=c;var H=l[f+A|0]&255;if((c|0)>(H|0))c=11;else var K=c,c=12;break;case 11:K=a[G>>2]=H;c=12;break;case 12:c=0<(K|0)&(K<(s|0)?13:15;break;case 13:a[G>>2]=s>>g;c=15;break;case 14:a[(b+4608+(A<<2)|0)>>2]=0;c=15;break;case 15:c=A+1|0;(c|0)<(m|0)?(A=c,c=7):c=5;break;case 16:return}}
+function hj(k,d,e,f){for(var c=0,c=1;;)switch(c){case 1:var g=f&255,h=b[(47240+((g+116|0)<<2)|0)>>2],g=b[(83560+(g<<2)|0)>>2],l=e>>>2,m=e&3;if(0==(l|0))var p=d,v=0,E=k,c=5;else c=2;break;case 2:var z=l<<2,A=d,D=0,w=l,u=k,c=3;break;case 3:var c=w-1|0,t=g*b[(A+4|0)>>2],s=g*b[(A+8|0)>>2],G=g*b[(A+12|0)>>2],H=g*b[A>>2]+8388608,K=(b[N>>2]=H,a[N>>2]),t=t+8388608,Q=(b[N>>2]=t,a[N>>2]),s=s+8388608,J=(b[N>>2]=s,a[N>>2]),G=G+8388608,F=(b[N>>2]=G,a[N>>2]),H=(b[N>>2]=H+b[(107264+((K-1258291200|0)<<2)|0)>>2],
+a[N>>2]),K=(b[N>>2]=t+b[(107264+((Q-1258291200|0)<<2)|0)>>2],a[N>>2]),t=(b[N>>2]=s+b[(107264+((J-1258291200|0)<<2)|0)>>2],a[N>>2]),Q=(b[N>>2]=G+b[(107264+((F-1258291200|0)<<2)|0)>>2],a[N>>2]),H=H-1258291200|0,K=K-1258291200|0,t=t-1258291200|0,Q=Q-1258291200|0,H=Math.abs(b[u>>2])-h*b[(14408+(H<<2)|0)>>2],K=Math.abs(b[(u+4|0)>>2])-h*b[(14408+(K<<2)|0)>>2],t=Math.abs(b[(u+8|0)>>2])-h*b[(14408+(t<<2)|0)>>2],Q=Math.abs(b[(u+12|0)>>2])-h*b[(14408+(Q<<2)|0)>>2],H=D+(H*H+K*K+(t*t+Q*Q)),K=u+16|0,t=A+16|0;
+0==(c|0)?c=4:(A=t,D=H,w=c,u=K,c=3);break;case 4:E=k+(z<<2)|0;p=d+(z<<2)|0;v=H;c=5;break;case 5:if(3==(m|0))c=6;else if(2==(m|0))var P=0,c=7;else if(1==(m|0))var da=0,C=0,c=8;else if(0==(m|0))var ba=v,c=14;else var L=8388608,O=0,B=0,c=9;break;case 6:P=g*b[(p+8|0)>>2];c=7;break;case 7:da=g*b[(p+4|0)>>2];C=P;c=8;break;case 8:L=g*b[p>>2]+8388608;O=da;B=C;c=9;break;case 9:var c=(b[N>>2]=L,a[N>>2]),I=O+8388608,V=(b[N>>2]=I,a[N>>2]),R=B+8388608,c=(b[N>>2]=L+b[(107264+((c-1258291200|0)<<2)|0)>>2],a[N>>2]),
+V=(b[N>>2]=I+b[(107264+((V-1258291200|0)<<2)|0)>>2],a[N>>2]),I=c-1258291200|0,V=V-1258291200|0;if(3==(m|0))c=10;else if(2==(m|0))var la=0,c=11;else if(1==(m|0))var W=0,S=0,c=12;else var T=0,U=0,ja=0,c=13;break;case 10:la=107264+(((b[N>>2]=R,a[N>>2])-1258291200|0)<<2)|0;la=(b[N>>2]=R+b[la>>2],a[N>>2])-1258291200|0;la=Math.abs(b[(E+8|0)>>2])-h*b[(14408+(la<<2)|0)>>2];c=11;break;case 11:W=Math.abs(b[(E+4|0)>>2])-h*b[(14408+(V<<2)|0)>>2];S=la;c=12;break;case 12:T=Math.abs(b[E>>2])-h*b[(14408+(I<<2)|0)>>
+2];U=W;ja=S;c=13;break;case 13:ba=v+(ja*ja+(U*U+T*T));c=14;break;case 14:return ba}}function Tc(b){for(var d=0,d=1;;)switch(d){case 1:d=245>b>>>0?2:29;break;case 2:if(11>b>>>0)var e=16,d=4;else d=3;break;case 3:e=(b+11|0)&-8;d=4;break;case 4:var f=e>>>3,c=a[36406],g=c>>>(f>>>0),d=0==(g&3|0)?12:5;break;case 5:var h=(g&1^1)+f|0,l=h<<1,m=145664+(l<<2)|0,p=145664+((l+2|0)<<2)|0,v=a[p>>2],E=v+8|0,z=a[E>>2],d=(m|0)==(z|0)?6:7;break;case 6:a[36406]=c&(1<>>0>>0?10:8;
+break;case 8:var A=z+12|0,d=(a[A>>2]|0)==(v|0)?9:10;break;case 9:a[A>>2]=m;a[p>>2]=z;d=11;break;case 10:R();case 11:var D=h<<3;a[(v+4|0)>>2]=D|3;var w=v+(D|4)|0;a[w>>2]|=1;var u=E,d=40;break;case 12:if(e>>>0>a[36408]>>>0)d=13;else var t=e,d=32;break;case 13:d=0==(g|0)?27:14;break;case 14:var s=2<>>12&16,Q=H>>>(K>>>0),J=Q>>>5&8,F=Q>>>(J>>>0),P=F>>>2&4,da=F>>>(P>>>0),C=da>>>1&2,I=da>>>(C>>>0),L=I>>>1&1,O=(J|K|P|C|L)+(I>>>(L>>>0))|0,B=O<<1,S=145664+(B<<2)|0,V=
+145664+((B+2|0)<<2)|0,N=a[V>>2],la=N+8|0,W=a[la>>2],d=(S|0)==(W|0)?15:16;break;case 15:a[36406]=c&(1<>>0>>0?19:17;break;case 17:var sa=W+12|0,d=(a[sa>>2]|0)==(N|0)?18:19;break;case 18:a[sa>>2]=S;a[V>>2]=W;d=20;break;case 19:R();case 20:var T=O<<3,U=T-e|0;a[(N+4|0)>>2]=e|3;var ja=N,fa=ja+e|0;a[(ja+(e|4)|0)>>2]=U|1;a[(ja+T|0)>>2]=U;var $=a[36408],d=0==($|0)?26:21;break;case 21:var ha=a[36411],aa=$>>>3,ma=aa<<1,ia=145664+(ma<<2)|0,ea=a[36406],oa=1<>2];ra>>>0>>0?d=24:(Y=ra,d=25);break;case 24:R();case 25:a[(145664+((ma+2|0)<<2)|0)>>2]=ha;a[(Y+12|0)>>2]=ha;a[(ha+8|0)>>2]=Y;a[(ha+12|0)>>2]=ia;d=26;break;case 26:a[36408]=U;a[36411]=fa;u=la;d=40;break;case 27:0==(a[36407]|0)?(t=e,d=32):d=28;break;case 28:var ta;a:{for(var na=e,Z=0,Z=1;;)switch(Z){case 1:var Da=a[36407],ka=(Da&(-Da|0))-1|0,pa=ka>>>12&16,za=ka>>>(pa>>>0),ca=za>>>5&8,va=
+za>>>(ca>>>0),ua=va>>>2&4,Ea=va>>>(ua>>>0),Fa=Ea>>>1&2,M=Ea>>>(Fa>>>0),ib=M>>>1&1,Aa=a[(145928+(((ca|pa|ua|Fa|ib)+(M>>>(ib>>>0))|0)<<2)|0)>>2],wa=Aa,Ga=Aa,Qa=(a[(Aa+4|0)>>2]&-8)-na|0,Z=2;break;case 2:var Xa=a[(wa+16|0)>>2];if(0==(Xa|0))Z=3;else var uc=Xa,Z=4;break;case 3:var Ma=a[(wa+20|0)>>2];0==(Ma|0)?Z=5:(uc=Ma,Z=4);break;case 4:var n=(a[(uc+4|0)>>2]&-8)-na|0,qa=n>>>0>>0,Sa=qa?n:Qa,Ca=qa?uc:Ga,wa=uc,Ga=Ca,Qa=Sa,Z=2;break;case 5:var Va=Ga,Ha=a[36410],Z=Va>>>0>>0?51:6;break;case 6:var Ta=
+Va+na|0,Ua=Ta,Z=Va>>>0>>0?7:51;break;case 7:var Nb=a[(Ga+24|0)>>2],gb=a[(Ga+12|0)>>2],Z=(gb|0)==(Ga|0)?13:8;break;case 8:var Na=a[(Ga+8|0)>>2],Z=Na>>>0>>0?12:9;break;case 9:var $a=Na+12|0,Z=(a[$a>>2]|0)==(Ga|0)?10:12;break;case 10:var Gb=gb+8|0,Z=(a[Gb>>2]|0)==(Ga|0)?11:12;break;case 11:a[$a>>2]=gb;a[Gb>>2]=Na;var Ja=gb,Z=21;break;case 12:R();case 13:var lb=Ga+20|0,Ra=a[lb>>2];if(0==(Ra|0))Z=14;else var sb=Ra,ob=lb,Z=15;break;case 14:var hb=Ga+16|0,mb=a[hb>>2];0==(mb|0)?(Ja=0,Z=21):(sb=mb,
+ob=hb,Z=15);break;case 15:var Oa=sb+20|0;if(0==(a[Oa>>2]|0))Z=16;else var nb=Oa,Z=17;break;case 16:var xb=sb+16|0;0==(a[xb>>2]|0)?Z=18:(nb=xb,Z=17);break;case 17:sb=a[nb>>2];ob=nb;Z=15;break;case 18:Z=ob>>>0>>0?20:19;break;case 19:a[ob>>2]=0;Ja=sb;Z=21;break;case 20:R();case 21:Z=0==(Nb|0)?41:22;break;case 22:var Ya=Ga+28|0,Ia=145928+(a[Ya>>2]<<2)|0,Z=(Ga|0)==(a[Ia>>2]|0)?23:25;break;case 23:a[Ia>>2]=Ja;Z=0==(Ja|0)?24:31;break;case 24:a[36407]&=1<>2]^-1;Z=41;break;case 25:Z=Nb>>>0<
+a[36410]>>>0?29:26;break;case 26:var tb=Nb+16|0,Z=(a[tb>>2]|0)==(Ga|0)?27:28;break;case 27:a[tb>>2]=Ja;Z=30;break;case 28:a[(Nb+20|0)>>2]=Ja;Z=30;break;case 29:R();case 30:Z=0==(Ja|0)?41:31;break;case 31:Z=Ja>>>0>>0?40:32;break;case 32:a[(Ja+24|0)>>2]=Nb;var Ka=a[(Ga+16|0)>>2],Z=0==(Ka|0)?36:33;break;case 33:Z=Ka>>>0>>0?35:34;break;case 34:a[(Ja+16|0)>>2]=Ka;a[(Ka+24|0)>>2]=Ja;Z=36;break;case 35:R();case 36:var ab=a[(Ga+20|0)>>2],Z=0==(ab|0)?41:37;break;case 37:Z=ab>>>0>>
+0?39:38;break;case 38:a[(Ja+20|0)>>2]=ab;a[(ab+24|0)>>2]=Ja;Z=41;break;case 39:R();case 40:R();case 41:Z=16>Qa>>>0?42:43;break;case 42:var ga=Qa+na|0;a[(Ga+4|0)>>2]=ga|3;var xa=Va+(ga+4|0)|0;a[xa>>2]|=1;Z=50;break;case 43:a[(Ga+4|0)>>2]=na|3;a[(Va+(na+4|0)|0)>>2]=Qa|1;a[(Va+(Qa+na|0)|0)>>2]=Qa;var La=a[36408],Z=0==(La|0)?49:44;break;case 44:var yb=a[36411],pb=La>>>3,r=pb<<1,Hb=145664+(r<<2)|0,Bb=a[36406],Ib=1<>2];bb>>>0>>0?Z=47:(Fb=bb,Z=48);break;case 47:R();case 48:a[(145664+((r+2|0)<<2)|0)>>2]=yb;a[(Fb+12|0)>>2]=yb;a[(yb+8|0)>>2]=Fb;a[(yb+12|0)>>2]=Hb;Z=49;break;case 49:a[36408]=Qa;a[36411]=Ua;Z=50;break;case 50:ta=Ga+8|0;break a;case 51:R()}ta=void 0}0==(ta|0)?(t=e,d=32):(u=ta,d=40);break;case 29:4294967231>>0?(t=-1,d=32):d=30;break;case 30:var qb=(b+11|0)&-8;0==(a[36407]|0)?(t=qb,d=32):d=31;break;case 31:var cb;a:{for(var ya=qb,X=0,X=1;;)switch(X){case 1:var Jb=
+-ya|0,db=ya>>>8;if(0==(db|0))var jb=0,X=4;else X=2;break;case 2:16777215>>0?(jb=31,X=4):X=3;break;case 3:var Za=(db+1048320|0)>>>16&8,Mb=db<>>16&4,lc=Mb<>>16&2,ac=(14-(Wb|Za|vc)|0)+(lc<>>15)|0,jb=ya>>>((ac+7|0)>>>0)&1|ac<<1,X=4;break;case 4:var wc=a[(145928+(jb<<2)|0)>>2];if(0==(wc|0))var Tb=0,Ub=Jb,ub=0,X=11;else X=5;break;case 5:if(31==(jb|0))var fc=0,X=7;else X=6;break;case 6:fc=25-(jb>>>1)|0;X=7;break;case 7:var vb=0,xc=Jb,Qb=wc,eb=ya<>2]&-8,gc=mc-ya|0;if(gc>>>0>>0)X=9;else var ec=vb,Zb=xc,X=10;break;case 9:(mc|0)==(ya|0)?(Tb=Qb,Ub=gc,ub=Qb,X=11):(ec=Qb,Zb=gc,X=10);break;case 10:var nc=a[(Qb+20|0)>>2],yc=a[(Qb+16+(eb>>>31<<2)|0)>>2],rc=0==(nc|0)|(nc|0)==(yc|0)?Kb:nc,Pc=eb<<1;0==(yc|0)?(Tb=ec,Ub=Zb,ub=rc,X=11):(vb=ec,xc=Zb,Qb=yc,eb=Pc,Kb=rc,X=8);break;case 11:if(0==(ub|0)&0==(Tb|0))X=12;else var cc=ub,X=14;break;case 12:var bc=2<>>12&16,Hc=Wc>>>(Gc>>>0),Lc=Hc>>>5&8,Oc=Hc>>>(Lc>>>0),zc=Oc>>>2&4,zb=Oc>>>(zc>>>0),Cb=zb>>>1&2,Vb=zb>>>(Cb>>>0),$b=Vb>>>1&1,cc=a[(145928+(((Lc|Gc|zc|Cb|$b)+(Vb>>>($b>>>0))|0)<<2)|0)>>2],X=14;break;case 14:if(0==(cc|0))var Rb=Ub,Xb=Tb,X=17;else var sc=cc,Qc=Ub,Rc=Tb,X=15;break;case 15:var Zc=(a[(sc+4|0)>>2]&-8)-ya|0,Td=Zc>>>0>>0,Ac=Td?Zc:Qc,Mc=Td?sc:Rc,Bc=a[(sc+16|0)>>2];0==(Bc|0)?X=16:(sc=Bc,Qc=Ac,Rc=Mc,X=15);break;case 16:var Cc=a[(sc+20|0)>>2];0==(Cc|0)?
+(Rb=Ac,Xb=Mc,X=17):(sc=Cc,Qc=Ac,Rc=Mc,X=15);break;case 17:if(0==(Xb|0))var dd=0,X=82;else X=18;break;case 18:Rb>>>0<(a[36408]-ya|0)>>>0?X=19:(dd=0,X=82);break;case 19:var Yb=Xb,Sc=a[36410],X=Yb>>>0>>0?81:20;break;case 20:var Dc=Yb+ya|0,Ec=Dc,X=Yb>>>0>>0?21:81;break;case 21:var oc=a[(Xb+24|0)>>2],$c=a[(Xb+12|0)>>2],X=($c|0)==(Xb|0)?27:22;break;case 22:var ad=a[(Xb+8|0)>>2],X=ad>>>0>>0?26:23;break;case 23:var Ud=ad+12|0,X=(a[Ud>>2]|0)==(Xb|0)?24:26;break;case 24:var Kc=$c+8|0,X=(a[Kc>>2]|
+0)==(Xb|0)?25:26;break;case 25:a[Ud>>2]=$c;a[Kc>>2]=ad;var Ic=$c,X=35;break;case 26:R();case 27:var Tc=Xb+20|0,qd=a[Tc>>2];if(0==(qd|0))X=28;else var Dd=qd,rd=Tc,X=29;break;case 28:var sd=Xb+16|0,md=a[sd>>2];0==(md|0)?(Ic=0,X=35):(Dd=md,rd=sd,X=29);break;case 29:var kd=Dd+20|0;if(0==(a[kd>>2]|0))X=30;else var Uc=kd,X=31;break;case 30:var Ed=Dd+16|0;0==(a[Ed>>2]|0)?X=32:(Uc=Ed,X=31);break;case 31:Dd=a[Uc>>2];rd=Uc;X=29;break;case 32:X=rd>>>0>>0?34:33;break;case 33:a[rd>>2]=0;Ic=Dd;X=35;break;
+case 34:R();case 35:X=0==(oc|0)?55:36;break;case 36:var xd=Xb+28|0,Vd=145928+(a[xd>>2]<<2)|0,X=(Xb|0)==(a[Vd>>2]|0)?37:39;break;case 37:a[Vd>>2]=Ic;X=0==(Ic|0)?38:45;break;case 38:a[36407]&=1<>2]^-1;X=55;break;case 39:X=oc>>>0>>0?43:40;break;case 40:var gd=oc+16|0,X=(a[gd>>2]|0)==(Xb|0)?41:42;break;case 41:a[gd>>2]=Ic;X=44;break;case 42:a[(oc+20|0)>>2]=Ic;X=44;break;case 43:R();case 44:X=0==(Ic|0)?55:45;break;case 45:X=Ic>>>0>>0?54:46;break;case 46:a[(Ic+24|0)>>2]=oc;var Od=
+a[(Xb+16|0)>>2],X=0==(Od|0)?50:47;break;case 47:X=Od>>>0>>0?49:48;break;case 48:a[(Ic+16|0)>>2]=Od;a[(Od+24|0)>>2]=Ic;X=50;break;case 49:R();case 50:var Wd=a[(Xb+20|0)>>2],X=0==(Wd|0)?55:51;break;case 51:X=Wd>>>0>>0?53:52;break;case 52:a[(Ic+20|0)>>2]=Wd;a[(Wd+24|0)>>2]=Ic;X=55;break;case 53:R();case 54:R();case 55:X=16>Rb>>>0?56:57;break;case 56:var Xd=Rb+ya|0;a[(Xb+4|0)>>2]=Xd|3;var pd=Yb+(Xd+4|0)|0;a[pd>>2]|=1;X=80;break;case 57:a[(Xb+4|0)>>2]=ya|3;a[(Yb+(ya+4|0)|0)>>2]=Rb|
+1;a[(Yb+(Rb+ya|0)|0)>>2]=Rb;var Re=Rb>>>3,X=256>Rb>>>0?58:63;break;case 58:var Yd=Re<<1,de=145664+(Yd<<2)|0,ye=a[36406],me=1<>2];yd>>>0>>0?X=61:(Zd=yd,X=62);break;case 61:R();case 62:a[(145664+((Yd+2|0)<<2)|0)>>2]=Ec;a[(Zd+12|0)>>2]=Ec;a[(Yb+(ya+8|0)|0)>>2]=Zd;a[(Yb+(ya+12|0)|0)>>2]=de;X=80;break;case 63:var nd=Dc,Pd=Rb>>>8;if(0==(Pd|0))var $d=0,X=66;else X=64;break;case 64:16777215<
+Rb>>>0?($d=31,X=66):X=65;break;case 65:var fe=(Pd+1048320|0)>>>16&8,ne=Pd<>>16&4,Se=ne<>>16&2,ff=(14-(ge|fe|oe)|0)+(Se<>>15)|0,$d=Rb>>>((ff+7|0)>>>0)&1|ff<<1,X=66;break;case 66:var Be=145928+($d<<2)|0;a[(Yb+(ya+28|0)|0)>>2]=$d;var Te=Yb+(ya+16|0)|0;a[(Yb+(ya+20|0)|0)>>2]=0;a[Te>>2]=0;var gf=a[36407],he=1<<$d,X=0==(gf&he|0)?67:68;break;case 67:a[36407]=gf|he;a[Be>>2]=nd;a[(Yb+(ya+24|0)|0)>>2]=Be;a[(Yb+(ya+12|0)|0)>>2]=nd;a[(Yb+(ya+8|0)|0)>>2]=nd;X=80;break;
+case 68:var Ce=a[Be>>2];if(31==($d|0))var Ue=0,X=70;else X=69;break;case 69:Ue=25-($d>>>1)|0;X=70;break;case 70:var ie=Rb<>2]&-8|0)==(Rb|0)?76:72;break;case 72:var hf=pe+16+(ie>>>31<<2)|0,Xf=a[hf>>2],Ve=ie<<1;0==(Xf|0)?X=73:(ie=Ve,pe=Xf,X=71);break;case 73:X=hf>>>0>>0?75:74;break;case 74:a[hf>>2]=nd;a[(Yb+(ya+24|0)|0)>>2]=pe;a[(Yb+(ya+12|0)|0)>>2]=nd;a[(Yb+(ya+8|0)|0)>>2]=nd;X=80;break;case 75:R();case 76:var yf=pe+8|0,We=a[yf>>2],zd=a[36410],X=
+pe>>>0>>0?79:77;break;case 77:X=We>>>0>>0?79:78;break;case 78:a[(We+12|0)>>2]=nd;a[yf>>2]=nd;a[(Yb+(ya+8|0)|0)>>2]=We;a[(Yb+(ya+12|0)|0)>>2]=pe;a[(Yb+(ya+24|0)|0)>>2]=0;X=80;break;case 79:R();case 80:dd=Xb+8|0;X=82;break;case 81:R();case 82:cb=dd;break a}cb=void 0}0==(cb|0)?(t=qb,d=32):(u=cb,d=40);break;case 32:var jf=a[36408],d=t>>>0>jf>>>0?37:33;break;case 33:var De=jf-t|0,Nc=a[36411],d=15>>0?34:35;break;case 34:var zf=Nc;a[36411]=zf+t|0;a[36408]=De;a[(zf+(t+4|0)|0)>>2]=De|1;a[(zf+jf|
+0)>>2]=De;a[(Nc+4|0)>>2]=t|3;d=36;break;case 35:a[36408]=0;a[36411]=0;a[(Nc+4|0)>>2]=jf|3;var Af=Nc+(jf+4|0)|0;a[Af>>2]|=1;d=36;break;case 36:u=Nc+8|0;d=40;break;case 37:var Bf=a[36409],d=t>>>0>>0?38:39;break;case 38:var Xe=Bf-t|0;a[36409]=Xe;var ae=a[36412],Id=ae;a[36412]=Id+t|0;a[(Id+(t+4|0)|0)>>2]=Xe|1;a[(ae+4|0)>>2]=t|3;u=ae+8|0;d=40;break;case 39:var kf;a:{for(var jc=t,fb=0,fb=1;;)switch(fb){case 1:fb=0==(a[12416]|0)?2:3;break;case 2:wm();fb=3;break;case 3:var lf=jc+48|0,mf=a[12418],td=((jc+
+47|0)+mf|0)&(-mf|0);if(td>>>0>jc>>>0)fb=4;else var dc=0,fb=51;break;case 4:var Ye=a[36516],fb=0==(Ye|0)?6:5;break;case 5:var Zf=a[36514],Yf=Zf+td|0;Yf>>>0<=Zf>>>0|Yf>>>0>Ye>>>0?(dc=0,fb=51):fb=6;break;case 6:if(0==(a[36517]&4|0))fb=7;else var Ee=0,fb=26;break;case 7:var nf=a[36412],fb=0==(nf|0)?9:8;break;case 8:var $f=ij(nf),fb=0==($f|0)?9:16;break;case 9:var Fe=Ld(0);if(-1==(Fe|0))var Cf=0,fb=25;else fb=10;break;case 10:var Ze=Fe,je=a[12417],Oe=je-1|0;if(0==(Oe&Ze|0))var Ge=td,fb=12;else fb=11;break;
+case 11:Ge=(td-Ze|0)+((Oe+Ze|0)&(-je|0))|0;fb=12;break;case 12:var zg=a[36514],Dg=zg+Ge|0;Ge>>>0>jc>>>0&2147483647>Ge>>>0?fb=13:(Cf=0,fb=25);break;case 13:var Ae=a[36516],fb=0==(Ae|0)?15:14;break;case 14:Dg>>>0<=zg>>>0|Dg>>>0>Ae>>>0?(Cf=0,fb=25):fb=15;break;case 15:var Yg=Ld(Ge),Eg=(Yg|0)==(Fe|0),Fg=Eg?Fe:-1,pc=Eg?Ge:0,be=Yg,qe=Ge,fb=18;break;case 16:var He=a[12418],re=(((jc+47|0)-a[36409]|0)+He|0)&(-He|0);2147483647>re>>>0?fb=17:(Cf=0,fb=25);break;case 17:var Df=Ld(re),Gg=(Df|0)==(a[($f|0)>>2]+a[($f+
+4|0)>>2]|0),Hg=Gg?re:0,Fg=Gg?Df:-1,pc=Hg,be=Df,qe=re,fb=18;break;case 18:var ag=-qe|0;if(-1==(Fg|0))fb=19;else var Fd=pc,Jd=Fg,fb=29;break;case 19:if(-1!=(be|0)&2147483647>qe>>>0&qe>>>0>>0)fb=20;else var Qd=qe,fb=24;break;case 20:var hd=a[12418],Ad=(((jc+47|0)-qe|0)+hd|0)&(-hd|0);2147483647>Ad>>>0?fb=21:(Qd=qe,fb=24);break;case 21:fb=-1==(Ld(Ad)|0)?23:22;break;case 22:Qd=Ad+qe|0;fb=24;break;case 23:Ld(ag);Cf=pc;fb=25;break;case 24:-1==(be|0)?(Cf=pc,fb=25):(Fd=Qd,Jd=be,fb=29);break;case 25:a[36517]|=
+4;Ee=Cf;fb=26;break;case 26:fb=2147483647>td>>>0?27:50;break;case 27:var se=Ld(td),bg=Ld(0),fb=-1!=(bg|0)&-1!=(se|0)&se>>>0>>0?28:50;break;case 28:var Ef=bg-se|0,cg=Ef>>>0>(jc+40|0)>>>0,Ig=cg?Ef:Ee,$e=cg?se:-1;-1==($e|0)?fb=50:(Fd=Ig,Jd=$e,fb=29);break;case 29:var dg=a[36514]+Fd|0;a[36514]=dg;fb=dg>>>0>a[36515]>>>0?30:31;break;case 30:a[36515]=dg;fb=31;break;case 31:if(0==(a[36412]|0))fb=32;else var te=146072,fb=35;break;case 32:var eg=a[36410],fb=0==(eg|0)|Jd>>>0>>0?33:34;break;case 33:a[36410]=
+Jd;fb=34;break;case 34:a[36518]=Jd;a[36519]=Fd;a[36521]=0;a[36415]=a[12416];a[36414]=-1;b:for(var Ff=0,Ff=1;;)switch(Ff){case 1:var Jg=0,Ff=2;break;case 2:var of=Jg<<1,af=145664+(of<<2)|0;a[(145664+((of+3|0)<<2)|0)>>2]=af;a[(145664+((of+2|0)<<2)|0)>>2]=af;var fg=Jg+1|0;32>fg>>>0?(Jg=fg,Ff=2):Ff=3;break;case 3:break b}jj(Jd,Fd-40|0);fb=48;break;case 35:var gg=a[(te|0)>>2],Gf=te+4|0,hg=a[Gf>>2],ig=gg+hg|0,fb=(Jd|0)==(ig|0)?37:36;break;case 36:var Pb=a[(te+8|0)>>2];0==(Pb|0)?fb=40:(te=Pb,fb=35);break;
+case 37:fb=0==(a[(te+12|0)>>2]&8|0)?38:40;break;case 38:var Hf=a[36412],fb=Hf>>>0>=gg>>>0&Hf>>>0>>0?39:40;break;case 39:a[Gf>>2]=hg+Fd|0;jj(a[36412],a[36409]+Fd|0);fb=48;break;case 40:fb=Jd>>>0>>0?41:42;break;case 41:a[36410]=Jd;fb=42;break;case 42:var bf=Jd+Fd|0,Rd=146072,fb=43;break;case 43:var jg=Rd|0,ue=a[jg>>2],fb=(ue|0)==(bf|0)?45:44;break;case 44:var ve=a[(Rd+8|0)>>2];0==(ve|0)?fb=47:(Rd=ve,fb=43);break;case 45:fb=0==(a[(Rd+12|0)>>2]&8|0)?46:47;break;case 46:a[jg>>2]=Jd;var Ie=
+Rd+4|0;a[Ie>>2]=a[Ie>>2]+Fd|0;b:{for(var Vc=Jd,ud=ue,If=jc,Pa=0,Pa=1;;)switch(Pa){case 1:var Pe=Vc+8|0;if(0==(Pe&7|0))var Kg=0,Pa=3;else Pa=2;break;case 2:Kg=(-Pe|0)&7;Pa=3;break;case 3:var Vf=Vc+Kg|0,Wf=ud+8|0;if(0==(Wf&7|0))var ke=0,Pa=5;else Pa=4;break;case 4:ke=(-Wf|0)&7;Pa=5;break;case 5:var kg=ud+ke|0,Zg=kg,od=Kg+If|0,jh=Vc+od|0,lg=jh,Je=(kg-Vf|0)-If|0;a[(Vc+(Kg+4|0)|0)>>2]=If|3;Pa=(Zg|0)==(a[36412]|0)?6:7;break;case 6:var kh=a[36409]+Je|0;a[36409]=kh;a[36412]=lg;a[(Vc+(od+4|0)|0)>>2]=kh|1;
+Pa=80;break;case 7:Pa=(Zg|0)==(a[36411]|0)?8:9;break;case 8:var lh=a[36408]+Je|0;a[36408]=lh;a[36411]=lg;a[(Vc+(od+4|0)|0)>>2]=lh|1;a[(Vc+(lh+od|0)|0)>>2]=lh;Pa=80;break;case 9:var ze=a[(ud+(ke+4|0)|0)>>2];if(1==(ze&3|0))Pa=10;else var pf=Zg,le=Je,Pa=57;break;case 10:var mh=ze&-8,nh=ze>>>3,Pa=256>ze>>>0?11:22;break;case 11:var Lg=a[(ud+(ke|8)|0)>>2],Jf=a[(ud+(ke+12|0)|0)>>2],xf=145664+(nh<<1<<2)|0,Pa=(Lg|0)==(xf|0)?14:12;break;case 12:Pa=Lg>>>0>>0?21:13;break;case 13:Pa=(a[(Lg+12|0)>>2]|
+0)==(Zg|0)?14:21;break;case 14:Pa=(Jf|0)==(Lg|0)?15:16;break;case 15:a[36406]&=1<>>0>>0?20:18;break;case 18:Pa=(a[(Jf+8|0)>>2]|0)==(Zg|0)?19:20;break;case 19:a[(Lg+12|0)>>2]=Jf;a[(Jf+8|0)>>2]=Lg;Pa=56;break;case 20:R();case 21:R();case 22:var Sd=kg,qf=a[(ud+(ke|24)|0)>>2],Gd=a[(ud+(ke+12|0)|0)>>2],Pa=(Gd|0)==(Sd|0)?28:23;break;case 23:var On=a[(ud+(ke|8)|0)>>2],Pa=On>>>0>>0?27:24;break;case 24:var Kf=On+12|
+0,Pa=(a[Kf>>2]|0)==(Sd|0)?25:27;break;case 25:var Mg=Gd+8|0,Pa=(a[Mg>>2]|0)==(Sd|0)?26:27;break;case 26:a[Kf>>2]=Gd;a[Mg>>2]=On;var Md=Gd,Pa=36;break;case 27:R();case 28:var Lf=ke|16,Ng=ud+(Lf+4|0)|0,Qe=a[Ng>>2];if(0==(Qe|0))Pa=29;else var mg=Qe,ng=Ng,Pa=30;break;case 29:var oh=ud+Lf|0,ph=a[oh>>2];0==(ph|0)?(Md=0,Pa=36):(mg=ph,ng=oh,Pa=30);break;case 30:var mi=mg+20|0;if(0==(a[mi>>2]|0))Pa=31;else var Mf=mi,Pa=32;break;case 31:var qh=mg+16|0;0==(a[qh>>2]|0)?Pa=33:(Mf=qh,Pa=32);break;case 32:mg=a[Mf>>
+2];ng=Mf;Pa=30;break;case 33:Pa=ng>>>0>>0?35:34;break;case 34:a[ng>>2]=0;Md=mg;Pa=36;break;case 35:R();case 36:Pa=0==(qf|0)?56:37;break;case 37:var $g=ud+(ke+28|0)|0,Og=145928+(a[$g>>2]<<2)|0,Pa=(Sd|0)==(a[Og>>2]|0)?38:40;break;case 38:a[Og>>2]=Md;Pa=0==(Md|0)?39:46;break;case 39:a[36407]&=1<>2]^-1;Pa=56;break;case 40:Pa=qf>>>0>>0?44:41;break;case 41:var ah=qf+16|0,Pa=(a[ah>>2]|0)==(Sd|0)?42:43;break;case 42:a[ah>>2]=Md;Pa=45;break;case 43:a[(qf+20|0)>>2]=Md;Pa=45;break;
+case 44:R();case 45:Pa=0==(Md|0)?56:46;break;case 46:Pa=Md>>>0>>0?55:47;break;case 47:a[(Md+24|0)>>2]=qf;var rh=ke|16,sh=a[(ud+rh|0)>>2],Pa=0==(sh|0)?51:48;break;case 48:Pa=sh>>>0>>0?50:49;break;case 49:a[(Md+16|0)>>2]=sh;a[(sh+24|0)>>2]=Md;Pa=51;break;case 50:R();case 51:var ni=a[(ud+(rh+4|0)|0)>>2],Pa=0==(ni|0)?56:52;break;case 52:Pa=ni>>>0>>0?54:53;break;case 53:a[(Md+20|0)>>2]=ni;a[(ni+24|0)>>2]=Md;Pa=56;break;case 54:R();case 55:R();case 56:var Pg=mh+Je|0,pf=ud+
+(mh|ke)|0,le=Pg,Pa=57;break;case 57:var Hh=pf+4|0;a[Hh>>2]&=-2;a[(Vc+(od+4|0)|0)>>2]=le|1;a[(Vc+(le+od|0)|0)>>2]=le;var Qg=le>>>3,Pa=256>le>>>0?58:63;break;case 58:var bh=Qg<<1,Ih=145664+(bh<<2)|0,Jh=a[36406],oi=1<>2];Nf>>>0>>0?Pa=61:(Kh=Nf,Pa=62);break;case 61:R();case 62:a[(145664+((bh+2|0)<<2)|0)>>2]=lg;a[(Kh+12|0)>>2]=lg;a[(Vc+(od+8|0)|0)>>2]=Kh;a[(Vc+(od+12|0)|0)>>
+2]=Ih;Pa=80;break;case 63:var cf=jh,rf=le>>>8;if(0==(rf|0))var Ke=0,Pa=66;else Pa=64;break;case 64:16777215>>0?(Ke=31,Pa=66):Pa=65;break;case 65:var th=(rf+1048320|0)>>>16&8,ce=rf<>>16&4,og=ce<>>16&2,qg=(14-(pi|th|pg)|0)+(og<>>15)|0,Ke=le>>>((qg+7|0)>>>0)&1|qg<<1,Pa=66;break;case 66:var Le=145928+(Ke<<2)|0;a[(Vc+(od+28|0)|0)>>2]=Ke;var uh=Vc+(od+16|0)|0;a[(Vc+(od+20|0)|0)>>2]=0;a[uh>>2]=0;var Lh=a[36407],Mh=1<>2]=cf;a[(Vc+(od+24|0)|0)>>2]=Le;a[(Vc+(od+12|0)|0)>>2]=cf;a[(Vc+(od+8|0)|0)>>2]=cf;Pa=80;break;case 68:var Hd=a[Le>>2];if(31==(Ke|0))var Nh=0,Pa=70;else Pa=69;break;case 69:Nh=25-(Ke>>>1)|0;Pa=70;break;case 70:var ch=le<>2]&-8|0)==(le|0)?76:72;break;case 72:var qi=Xc+16+(ch>>>31<<2)|0,ri=a[qi>>2],Oh=ch<<1;0==(ri|0)?Pa=73:(ch=Oh,Xc=ri,Pa=71);break;case 73:Pa=qi>>>0>>0?75:74;break;case 74:a[qi>>2]=cf;a[(Vc+(od+24|0)|0)>>2]=Xc;a[(Vc+
+(od+12|0)|0)>>2]=cf;a[(Vc+(od+8|0)|0)>>2]=cf;Pa=80;break;case 75:R();case 76:var vh=Xc+8|0,Ph=a[vh>>2],Qh=a[36410],Pa=Xc>>>0>>0?79:77;break;case 77:Pa=Ph>>>0>>0?79:78;break;case 78:a[(Ph+12|0)>>2]=cf;a[vh>>2]=cf;a[(Vc+(od+8|0)|0)>>2]=Ph;a[(Vc+(od+12|0)|0)>>2]=Xc;a[(Vc+(od+24|0)|0)>>2]=0;Pa=80;break;case 79:R();case 80:dc=Vc+(Kg|8)|0;break b}dc=void 0}fb=51;break;case 47:b:for(var wh=Jd,Rh=Fd,kc=0,kc=1;;)switch(kc){case 1:var bd=a[36412],Kd=bd,id=ij(Kd),Me=a[(id|0)>>2],rg=a[(id+4|0)>>2],Uf=
+Me+rg|0,ti=rg-47|0,Dh=Me+(rg-39|0)|0;if(0==(Dh&7|0))var Sh=0,kc=3;else kc=2;break;case 2:Sh=(-Dh|0)&7;kc=3;break;case 3:var ui=Me+(ti+Sh|0)|0,dh=ui>>>0<(bd+16|0)>>>0?Kd:ui,Rg=dh+8|0,Wg=Rg;jj(wh,Rh-40|0);a[(dh+4|0)>>2]=27;a[Rg>>2]=a[36518];a[Rg+4>>2]=a[36519];a[Rg+8>>2]=a[36520];a[Rg+12>>2]=a[36521];a[36518]=wh;a[36519]=Rh;a[36521]=0;a[36520]=Wg;var ed=dh+28|0;a[ed>>2]=7;if((dh+32|0)>>>0>>0)var Vi=ed,kc=4;else kc=5;break;case 4:var xh=Vi+4|0;a[xh>>2]=7;(Vi+8|0)>>>0>>0?(Vi=xh,kc=4):kc=5;break;
+case 5:kc=(dh|0)==(Kd|0)?29:6;break;case 6:var Jc=dh-bd|0,Ag=Kd+Jc|0,Bg=Kd+(Jc+4|0)|0;a[Bg>>2]&=-2;a[(bd+4|0)>>2]=Jc|1;a[Ag>>2]=Jc;var yg=Jc>>>3,kc=256>Jc>>>0?7:12;break;case 7:var vd=yg<<1,vi=145664+(vd<<2)|0,nj=a[36406],Wi=1<>2];Uh>>>0>>0?kc=10:(Th=Uh,kc=11);break;case 10:R();case 11:a[(145664+((vd+2|0)<<2)|0)>>2]=bd;a[(Th+12|0)>>2]=bd;a[(bd+8|0)>>2]=Th;a[(bd+12|0)>>2]=vi;
+kc=29;break;case 12:var wi=bd,oj=Jc>>>8;if(0==(oj|0))var Vh=0,kc=15;else kc=13;break;case 13:16777215>>0?(Vh=31,kc=15):kc=14;break;case 14:var Xg=(oj+1048320|0)>>>16&8,Wh=oj<>>16&4,sg=Wh<>>16&2,Ob=(14-(sf|Xg|Ab)|0)+(sg<>>15)|0,Vh=Jc>>>((Ob+7|0)>>>0)&1|Ob<<1,kc=15;break;case 15:var tg=145928+(Vh<<2)|0;a[(bd+28|0)>>2]=Vh;a[(bd+20|0)>>2]=0;a[(bd+16|0)>>2]=0;var xi=a[36407],Pn=1<>2]=wi;a[(bd+
+24|0)>>2]=tg;a[(bd+12|0)>>2]=bd;a[(bd+8|0)>>2]=bd;kc=29;break;case 17:var Db=a[tg>>2];if(31==(Vh|0))var tf=0,kc=19;else kc=18;break;case 18:tf=25-(Vh>>>1)|0;kc=19;break;case 19:var eh=Jc<>2]&-8|0)==(Jc|0)?25:21;break;case 21:var yh=uf+16+(eh>>>31<<2)|0,ug=a[yh>>2],Nd=eh<<1;0==(ug|0)?kc=22:(eh=Nd,uf=ug,kc=20);break;case 22:kc=yh>>>0>>0?24:23;break;case 23:a[yh>>2]=wi;a[(bd+24|0)>>2]=uf;a[(bd+12|0)>>2]=bd;a[(bd+8|0)>>2]=bd;kc=29;break;case 24:R();
+case 25:var Xi=uf+8|0,yi=a[Xi>>2],zi=a[36410],kc=uf>>>0>>0?28:26;break;case 26:kc=yi>>>0>>0?28:27;break;case 27:a[(yi+12|0)>>2]=wi;a[Xi>>2]=wi;a[(bd+8|0)>>2]=yi;a[(bd+12|0)>>2]=uf;a[(bd+24|0)>>2]=0;kc=29;break;case 28:R();case 29:break b}fb=48;break;case 48:var Yi=a[36409],fb=Yi>>>0>jc>>>0?49:50;break;case 49:var Zi=Yi-jc|0;a[36409]=Zi;var Xh=a[36412],pj=Xh;a[36412]=pj+jc|0;a[(pj+(jc+4|0)|0)>>2]=Zi|1;a[(Xh+4|0)>>2]=jc|3;dc=Xh+8|0;fb=51;break;case 50:a[ih>>2]=12;dc=0;fb=51;break;case 51:kf=
+dc;break a}kf=void 0}u=kf;d=40;break;case 40:return u}}function ua(b){for(var d=0,d=1;;)switch(d){case 1:d=0==(b|0)?141:2;break;case 2:var e=b-8|0,f=e,c=a[36410],d=e>>>0>>0?140:3;break;case 3:var g=a[(b-4|0)>>2],h=g&3,d=1==(h|0)?140:4;break;case 4:var l=g&-8,m=b+(l-8|0)|0,p=m;if(0==(g&1|0))d=5;else var v=f,E=l,d=56;break;case 5:var z=a[e>>2],d=0==(h|0)?141:6;break;case 6:var A=-8-z|0,D=b+A|0,w=D,u=z+l|0,d=D>>>0>>0?140:7;break;case 7:d=(w|0)==(a[36411]|0)?54:8;break;case 8:var t=z>>>3,d=256>
+z>>>0?9:20;break;case 9:var s=a[(b+(A+8|0)|0)>>2],G=a[(b+(A+12|0)|0)>>2],H=145664+(t<<1<<2)|0,d=(s|0)==(H|0)?12:10;break;case 10:d=s>>>0>>0?19:11;break;case 11:d=(a[(s+12|0)>>2]|0)==(w|0)?12:19;break;case 12:d=(G|0)==(s|0)?13:14;break;case 13:a[36406]&=1<>>0>>0?18:16;break;case 16:d=(a[(G+8|0)>>2]|0)==(w|0)?17:18;break;case 17:a[(s+12|0)>>2]=G;a[(G+8|0)>>2]=s;v=w;E=u;d=56;break;case 18:R();case 19:R();case 20:var K=
+D,Q=a[(b+(A+24|0)|0)>>2],J=a[(b+(A+12|0)|0)>>2],d=(J|0)==(K|0)?26:21;break;case 21:var F=a[(b+(A+8|0)|0)>>2],d=F>>>0>>0?25:22;break;case 22:var P=F+12|0,d=(a[P>>2]|0)==(K|0)?23:25;break;case 23:var I=J+8|0,d=(a[I>>2]|0)==(K|0)?24:25;break;case 24:a[P>>2]=J;a[I>>2]=F;var C=J,d=34;break;case 25:R();case 26:var ba=b+(A+20|0)|0,L=a[ba>>2];if(0==(L|0))d=27;else var O=L,B=ba,d=28;break;case 27:var S=b+(A+16|0)|0,V=a[S>>2];0==(V|0)?(C=0,d=34):(O=V,B=S,d=28);break;case 28:var N=O+20|0;if(0==(a[N>>2]|0))d=
+29;else var la=N,d=30;break;case 29:var W=O+16|0;0==(a[W>>2]|0)?d=31:(la=W,d=30);break;case 30:O=a[la>>2];B=la;d=28;break;case 31:d=B>>>0>>0?33:32;break;case 32:a[B>>2]=0;C=O;d=34;break;case 33:R();case 34:0==(Q|0)?(v=w,E=u,d=56):d=35;break;case 35:var sa=b+(A+28|0)|0,T=145928+(a[sa>>2]<<2)|0,d=(K|0)==(a[T>>2]|0)?36:38;break;case 36:a[T>>2]=C;d=0==(C|0)?37:44;break;case 37:a[36407]&=1<>2]^-1;v=w;E=u;d=56;break;case 38:d=Q>>>0>>0?42:39;break;case 39:var U=Q+16|0,d=(a[U>>2]|
+0)==(K|0)?40:41;break;case 40:a[U>>2]=C;d=43;break;case 41:a[(Q+20|0)>>2]=C;d=43;break;case 42:R();case 43:0==(C|0)?(v=w,E=u,d=56):d=44;break;case 44:d=C>>>0>>0?53:45;break;case 45:a[(C+24|0)>>2]=Q;var ja=a[(b+(A+16|0)|0)>>2],d=0==(ja|0)?49:46;break;case 46:d=ja>>>0>>0?48:47;break;case 47:a[(C+16|0)>>2]=ja;a[(ja+24|0)>>2]=C;d=49;break;case 48:R();case 49:var fa=a[(b+(A+20|0)|0)>>2];0==(fa|0)?(v=w,E=u,d=56):d=50;break;case 50:d=fa>>>0>>0?52:51;break;case 51:a[(C+20|0)>>
+2]=fa;a[(fa+24|0)>>2]=C;v=w;E=u;d=56;break;case 52:R();case 53:R();case 54:var $=b+(l-4|0)|0;3==(a[$>>2]&3|0)?d=55:(v=w,E=u,d=56);break;case 55:a[36408]=u;a[$>>2]&=-2;a[(b+(A+4|0)|0)>>2]=u|1;a[m>>2]=u;d=141;break;case 56:var ha=v,d=ha>>>0>>0?57:140;break;case 57:var aa=b+(l-4|0)|0,ma=a[aa>>2],d=0==(ma&1|0)?140:58;break;case 58:d=0==(ma&2|0)?59:114;break;case 59:d=(p|0)==(a[36412]|0)?60:64;break;case 60:var ia=a[36409]+E|0;a[36409]=ia;a[36412]=v;a[(v+4|0)>>2]=ia|1;d=(v|0)==(a[36411]|0)?61:62;break;
+case 61:a[36411]=0;a[36408]=0;d=62;break;case 62:d=ia>>>0>a[36413]>>>0?63:141;break;case 63:a:for(var ea=0,ea=1;;)switch(ea){case 1:ea=0==(a[12416]|0)?2:3;break;case 2:wm();ea=3;break;case 3:ea=4;break;case 4:var oa=a[36412],ea=0==(oa|0)?13:5;break;case 5:var Y=a[36409],ea=40>>0?6:11;break;case 6:var ra=a[12418],ta=Math.imul(Math.floor((((-41+Y|0)+ra|0)>>>0)/(ra>>>0))-1|0,ra),na=ij(oa),ea=0==(a[(na+12|0)>>2]&8|0)?7:11;break;case 7:var Z=Ld(0),ea=(Z|0)==(a[(na|0)>>2]+a[(na+4|0)>>2]|0)?8:11;break;
+case 8:var Da=-2147483648-ra|0,ka=Ld(-(2147483646>>0?Da:ta)|0),pa=Ld(0),ea=-1!=(ka|0)&pa>>>0>>0?9:11;break;case 9:var za=Z-pa|0,ea=(Z|0)==(pa|0)?11:10;break;case 10:var ca=na+4|0;a[ca>>2]=a[ca>>2]-za|0;a[36514]=a[36514]-za|0;jj(a[36412],a[36409]-za|0);ea=13;break;case 11:ea=a[36409]>>>0>a[36413]>>>0?12:13;break;case 12:a[36413]=-1;ea=13;break;case 13:break a}d=141;break;case 64:d=(p|0)==(a[36411]|0)?65:66;break;case 65:var va=a[36408]+E|0;a[36408]=va;a[36411]=v;a[(v+4|0)>>2]=va|1;a[(ha+va|
+0)>>2]=va;d=141;break;case 66:var ua=(ma&-8)+E|0,Ea=ma>>>3,d=256>ma>>>0?67:78;break;case 67:var Fa=a[(b+l|0)>>2],M=a[(b+(l|4)|0)>>2],ib=145664+(Ea<<1<<2)|0,d=(Fa|0)==(ib|0)?70:68;break;case 68:d=Fa>>>0>>0?77:69;break;case 69:d=(a[(Fa+12|0)>>2]|0)==(p|0)?70:77;break;case 70:d=(M|0)==(Fa|0)?71:72;break;case 71:a[36406]&=1<>>0>>0?76:74;break;case 74:d=(a[(M+8|0)>>2]|0)==(p|0)?75:76;break;case 75:a[(Fa+12|0)>>2]=M;
+a[(M+8|0)>>2]=Fa;d=112;break;case 76:R();case 77:R();case 78:var Aa=m,wa=a[(b+(l+16|0)|0)>>2],Ga=a[(b+(l|4)|0)>>2],d=(Ga|0)==(Aa|0)?84:79;break;case 79:var Qa=a[(b+l|0)>>2],d=Qa>>>0>>0?83:80;break;case 80:var Xa=Qa+12|0,d=(a[Xa>>2]|0)==(Aa|0)?81:83;break;case 81:var uc=Ga+8|0,d=(a[uc>>2]|0)==(Aa|0)?82:83;break;case 82:a[Xa>>2]=Ga;a[uc>>2]=Qa;var Ma=Ga,d=92;break;case 83:R();case 84:var n=b+(l+12|0)|0,qa=a[n>>2];if(0==(qa|0))d=85;else var Sa=qa,Ca=n,d=86;break;case 85:var Va=b+(l+8|0)|0,
+Ha=a[Va>>2];0==(Ha|0)?(Ma=0,d=92):(Sa=Ha,Ca=Va,d=86);break;case 86:var Ta=Sa+20|0;if(0==(a[Ta>>2]|0))d=87;else var Ua=Ta,d=88;break;case 87:var Nb=Sa+16|0;0==(a[Nb>>2]|0)?d=89:(Ua=Nb,d=88);break;case 88:Sa=a[Ua>>2];Ca=Ua;d=86;break;case 89:d=Ca>>>0>>0?91:90;break;case 90:a[Ca>>2]=0;Ma=Sa;d=92;break;case 91:R();case 92:d=0==(wa|0)?112:93;break;case 93:var gb=b+(l+20|0)|0,Na=145928+(a[gb>>2]<<2)|0,d=(Aa|0)==(a[Na>>2]|0)?94:96;break;case 94:a[Na>>2]=Ma;d=0==(Ma|0)?95:102;break;case 95:a[36407]&=
+1<>2]^-1;d=112;break;case 96:d=wa>>>0>>0?100:97;break;case 97:var $a=wa+16|0,d=(a[$a>>2]|0)==(Aa|0)?98:99;break;case 98:a[$a>>2]=Ma;d=101;break;case 99:a[(wa+20|0)>>2]=Ma;d=101;break;case 100:R();case 101:d=0==(Ma|0)?112:102;break;case 102:d=Ma>>>0>>0?111:103;break;case 103:a[(Ma+24|0)>>2]=wa;var Gb=a[(b+(l+8|0)|0)>>2],d=0==(Gb|0)?107:104;break;case 104:d=Gb>>>0>>0?106:105;break;case 105:a[(Ma+16|0)>>2]=Gb;a[(Gb+24|0)>>2]=Ma;d=107;break;case 106:R();case 107:var Ja=
+a[(b+(l+12|0)|0)>>2],d=0==(Ja|0)?112:108;break;case 108:d=Ja>>>0>>0?110:109;break;case 109:a[(Ma+20|0)>>2]=Ja;a[(Ja+24|0)>>2]=Ma;d=112;break;case 110:R();case 111:R();case 112:a[(v+4|0)>>2]=ua|1;a[(ha+ua|0)>>2]=ua;if((v|0)==(a[36411]|0))d=113;else var lb=ua,d=115;break;case 113:a[36408]=ua;d=141;break;case 114:a[aa>>2]=ma&-2;a[(v+4|0)>>2]=E|1;lb=a[(ha+E|0)>>2]=E;d=115;break;case 115:var Ra=lb>>>3,d=256>lb>>>0?116:121;break;case 116:var sb=Ra<<1,ob=145664+(sb<<2)|0,hb=a[36406],mb=1<>2];nb>>>0>>0?d=119:(Oa=nb,d=120);break;case 119:R();case 120:a[(145664+((sb+2|0)<<2)|0)>>2]=v;a[(Oa+12|0)>>2]=v;a[(v+8|0)>>2]=Oa;a[(v+12|0)>>2]=ob;d=141;break;case 121:var xb=v,Ya=lb>>>8;if(0==(Ya|0))var Ia=0,d=124;else d=122;break;case 122:16777215>>0?(Ia=31,d=124):d=123;break;case 123:var tb=(Ya+1048320|0)>>>16&8,Ka=Ya<>>16&4,ga=Ka<>>16&2,La=(14-(ab|tb|xa)|0)+(ga<>>15)|0,Ia=lb>>>((La+7|0)>>>0)&1|La<<1,d=124;break;case 124:var yb=145928+(Ia<<2)|0;a[(v+28|0)>>2]=Ia;a[(v+20|0)>>2]=0;a[(v+16|0)>>2]=0;var pb=a[36407],r=1<>2]=xb;a[(v+24|0)>>2]=yb;a[(v+12|0)>>2]=v;a[(v+8|0)>>2]=v;d=138;break;case 126:var Hb=a[yb>>2];if(31==(Ia|0))var Bb=0,d=128;else d=127;break;case 127:Bb=25-(Ia>>>1)|0;d=128;break;case 128:var Ib=lb<>2]&
+-8|0)==(lb|0)?134:130;break;case 130:var bb=Fb+16+(Ib>>>31<<2)|0,qb=a[bb>>2],cb=Ib<<1;0==(qb|0)?d=131:(Ib=cb,Fb=qb,d=129);break;case 131:d=bb>>>0>>0?133:132;break;case 132:a[bb>>2]=xb;a[(v+24|0)>>2]=Fb;a[(v+12|0)>>2]=v;a[(v+8|0)>>2]=v;d=138;break;case 133:R();case 134:var ya=Fb+8|0,X=a[ya>>2],Jb=a[36410],d=Fb>>>0>>0?137:135;break;case 135:d=X>>>0>>0?137:136;break;case 136:a[(X+12|0)>>2]=xb;a[ya>>2]=xb;a[(v+8|0)>>2]=X;a[(v+12|0)>>2]=Fb;a[(v+24|0)>>2]=0;d=138;break;case 137:R();case 138:var db=
+a[36414]-1|0;a[36414]=db;d=0==(db|0)?139:141;break;case 139:a:for(var jb=0,jb=1;;)switch(jb){case 1:var Za=146080,jb=2;break;case 2:var Mb=a[Za>>2],Wb=Mb+8|0;0==(Mb|0)?jb=3:(Za=Wb,jb=2);break;case 3:a[36414]=-1;break a}d=141;break;case 140:R();case 141:return}}function xd(b,d){for(var e=0,e=1;;)switch(e){case 1:if(0==(b|0))var f=0,e=4;else e=2;break;case 2:var c=Math.imul(d,b);65535<(d|b)>>>0?e=3:(f=c,e=4);break;case 3:f=(Math.floor((c>>>0)/(b>>>0))|0)==(d|0)?c:-1;e=4;break;case 4:var g=Tc(f),e=0==
+(g|0)?7:5;break;case 5:e=0==(a[(g-4|0)>>2]&3|0)?7:6;break;case 6:ra(g,0,f);e=7;break;case 7:return g}}function wm(){for(var b=0,b=1;;)switch(b){case 1:b=0==(a[12416]|0)?2:5;break;case 2:var d=Es(8),b=0==((d-1|0)&d|0)?4:3;break;case 3:R();case 4:a[12418]=d;a[12417]=d;a[12419]=-1;a[12420]=2097152;a[12421]=0;a[36517]=0;b=Math.floor(Date.now()/1E3);a[12416]=b&-16^1431655768;b=5;break;case 5:return}}function ij(b){for(var d=0,d=1;;)switch(d){case 1:var e=146072,d=2;break;case 2:var f=a[(e|0)>>2],d=f>>>
+0>b>>>0?4:3;break;case 3:if((f+a[(e+4|0)>>2]|0)>>>0>b>>>0)var c=e,d=5;else d=4;break;case 4:d=a[(e+8|0)>>2];0==(d|0)?(c=0,d=5):(e=d,d=2);break;case 5:return c}}function Hn(b,d){for(var e=0,e=1;;)switch(e){case 1:var f=b,c=f+d|0,g=c,h=a[(b+4|0)>>2];if(0==(h&1|0))e=2;else var l=b,m=d,e=54;break;case 2:var p=a[(b|0)>>2],e=0==(h&3|0)?134:3;break;case 3:var v=f+(-p|0)|0,E=v,z=p+d|0,A=a[36410],e=v>>>0>>0?53:4;break;case 4:e=(E|0)==(a[36411]|0)?51:5;break;case 5:var D=p>>>3,e=256>p>>>0?6:17;break;case 6:var w=
+a[(f+(8-p|0)|0)>>2],u=a[(f+(12-p|0)|0)>>2],t=145664+(D<<1<<2)|0,e=(w|0)==(t|0)?9:7;break;case 7:e=w>>>0>>0?16:8;break;case 8:e=(a[(w+12|0)>>2]|0)==(E|0)?9:16;break;case 9:e=(u|0)==(w|0)?10:11;break;case 10:a[36406]&=1<>>0>>0?15:13;break;case 13:e=(a[(u+8|0)>>2]|0)==(E|0)?14:15;break;case 14:a[(w+12|0)>>2]=u;a[(u+8|0)>>2]=w;l=E;m=z;e=54;break;case 15:R();case 16:R();case 17:var s=v,G=a[(f+(24-p|0)|0)>>2],H=a[(f+(12-
+p|0)|0)>>2],e=(H|0)==(s|0)?23:18;break;case 18:var K=a[(f+(8-p|0)|0)>>2],e=K>>>0>>0?22:19;break;case 19:var Q=K+12|0,e=(a[Q>>2]|0)==(s|0)?20:22;break;case 20:var J=H+8|0,e=(a[J>>2]|0)==(s|0)?21:22;break;case 21:a[Q>>2]=H;a[J>>2]=K;var F=H,e=31;break;case 22:R();case 23:var P=16-p|0,I=f+(P+4|0)|0,C=a[I>>2];if(0==(C|0))e=24;else var ba=C,L=I,e=25;break;case 24:var O=f+P|0,B=a[O>>2];0==(B|0)?(F=0,e=31):(ba=B,L=O,e=25);break;case 25:var S=ba+20|0;if(0==(a[S>>2]|0))e=26;else var V=S,e=27;break;case 26:var N=
+ba+16|0;0==(a[N>>2]|0)?e=28:(V=N,e=27);break;case 27:ba=a[V>>2];L=V;e=25;break;case 28:e=L>>>0>>0?30:29;break;case 29:a[L>>2]=0;F=ba;e=31;break;case 30:R();case 31:0==(G|0)?(l=E,m=z,e=54):e=32;break;case 32:var la=f+(28-p|0)|0,W=145928+(a[la>>2]<<2)|0,e=(s|0)==(a[W>>2]|0)?33:35;break;case 33:a[W>>2]=F;e=0==(F|0)?34:41;break;case 34:a[36407]&=1<>2]^-1;l=E;m=z;e=54;break;case 35:e=G>>>0>>0?39:36;break;case 36:var T=G+16|0,e=(a[T>>2]|0)==(s|0)?37:38;break;case 37:a[T>>2]=F;
+e=40;break;case 38:a[(G+20|0)>>2]=F;e=40;break;case 39:R();case 40:0==(F|0)?(l=E,m=z,e=54):e=41;break;case 41:e=F>>>0>>0?50:42;break;case 42:a[(F+24|0)>>2]=G;var U=16-p|0,$=a[(f+U|0)>>2],e=0==($|0)?46:43;break;case 43:e=$>>>0>>0?45:44;break;case 44:a[(F+16|0)>>2]=$;a[($+24|0)>>2]=F;e=46;break;case 45:R();case 46:var ja=a[(f+(U+4|0)|0)>>2];0==(ja|0)?(l=E,m=z,e=54):e=47;break;case 47:e=ja>>>0>>0?49:48;break;case 48:a[(F+20|0)>>2]=ja;a[(ja+24|0)>>2]=F;l=E;m=z;e=54;break;
+case 49:R();case 50:R();case 51:var fa=f+(d+4|0)|0;3==(a[fa>>2]&3|0)?e=52:(l=E,m=z,e=54);break;case 52:a[36408]=z;a[fa>>2]&=-2;a[(f+(4-p|0)|0)>>2]=z|1;a[c>>2]=z;e=134;break;case 53:R();case 54:var ha=a[36410],e=c>>>0>>0?133:55;break;case 55:var ra=f+(d+4|0)|0,aa=a[ra>>2],e=0==(aa&2|0)?56:109;break;case 56:e=(g|0)==(a[36412]|0)?57:59;break;case 57:var ma=a[36409]+m|0;a[36409]=ma;a[36412]=l;a[(l+4|0)>>2]=ma|1;e=(l|0)==(a[36411]|0)?58:134;break;case 58:a[36411]=0;a[36408]=0;e=134;break;case 59:e=
+(g|0)==(a[36411]|0)?60:61;break;case 60:var ia=a[36408]+m|0;a[36408]=ia;a[36411]=l;a[(l+4|0)>>2]=ia|1;a[(l+ia|0)>>2]=ia;e=134;break;case 61:var ea=(aa&-8)+m|0,oa=aa>>>3,e=256>aa>>>0?62:73;break;case 62:var Y=a[(f+(d+8|0)|0)>>2],ua=a[(f+(d+12|0)|0)>>2],ta=145664+(oa<<1<<2)|0,e=(Y|0)==(ta|0)?65:63;break;case 63:e=Y>>>0>>0?72:64;break;case 64:e=(a[(Y+12|0)>>2]|0)==(g|0)?65:72;break;case 65:e=(ua|0)==(Y|0)?66:67;break;case 66:a[36406]&=1<>>0>>0?71:69;break;case 69:e=(a[(ua+8|0)>>2]|0)==(g|0)?70:71;break;case 70:a[(Y+12|0)>>2]=ua;a[(ua+8|0)>>2]=Y;e=107;break;case 71:R();case 72:R();case 73:var na=c,Z=a[(f+(d+24|0)|0)>>2],Da=a[(f+(d+12|0)|0)>>2],e=(Da|0)==(na|0)?79:74;break;case 74:var ka=a[(f+(d+8|0)|0)>>2],e=ka>>>0>>0?78:75;break;case 75:var pa=ka+12|0,e=(a[pa>>2]|0)==(na|0)?76:78;break;case 76:var za=Da+8|0,e=(a[za>>2]|0)==(na|0)?77:78;break;case 77:a[pa>>2]=Da;a[za>>2]=ka;var ca=Da,e=87;break;case 78:R();case 79:var va=
+f+(d+20|0)|0,ib=a[va>>2];if(0==(ib|0))e=80;else var Ea=ib,Fa=va,e=81;break;case 80:var M=f+(d+16|0)|0,Xa=a[M>>2];0==(Xa|0)?(ca=0,e=87):(Ea=Xa,Fa=M,e=81);break;case 81:var Aa=Ea+20|0;if(0==(a[Aa>>2]|0))e=82;else var wa=Aa,e=83;break;case 82:var Ga=Ea+16|0;0==(a[Ga>>2]|0)?e=84:(wa=Ga,e=83);break;case 83:Ea=a[wa>>2];Fa=wa;e=81;break;case 84:e=Fa>>>0>>0?86:85;break;case 85:a[Fa>>2]=0;ca=Ea;e=87;break;case 86:R();case 87:e=0==(Z|0)?107:88;break;case 88:var Qa=f+(d+28|0)|0,Za=145928+(a[Qa>>2]<<
+2)|0,e=(na|0)==(a[Za>>2]|0)?89:91;break;case 89:a[Za>>2]=ca;e=0==(ca|0)?90:97;break;case 90:a[36407]&=1<>2]^-1;e=107;break;case 91:e=Z>>>0>>0?95:92;break;case 92:var uc=Z+16|0,e=(a[uc>>2]|0)==(na|0)?93:94;break;case 93:a[uc>>2]=ca;e=96;break;case 94:a[(Z+20|0)>>2]=ca;e=96;break;case 95:R();case 96:e=0==(ca|0)?107:97;break;case 97:e=ca>>>0>>0?106:98;break;case 98:a[(ca+24|0)>>2]=Z;var Ma=a[(f+(d+16|0)|0)>>2],e=0==(Ma|0)?102:99;break;case 99:e=Ma>>>0>>0?101:100;break;
+case 100:a[(ca+16|0)>>2]=Ma;a[(Ma+24|0)>>2]=ca;e=102;break;case 101:R();case 102:var n=a[(f+(d+20|0)|0)>>2],e=0==(n|0)?107:103;break;case 103:e=n>>>0>>0?105:104;break;case 104:a[(ca+20|0)>>2]=n;a[(n+24|0)>>2]=ca;e=107;break;case 105:R();case 106:R();case 107:a[(l+4|0)>>2]=ea|1;a[(l+ea|0)>>2]=ea;if((l|0)==(a[36411]|0))e=108;else var qa=ea,e=110;break;case 108:a[36408]=ea;e=134;break;case 109:a[ra>>2]=aa&-2;a[(l+4|0)>>2]=m|1;qa=a[(l+m|0)>>2]=m;e=110;break;case 110:var Sa=qa>>>3,e=256>qa>>>
+0?111:116;break;case 111:var Ca=Sa<<1,Va=145664+(Ca<<2)|0,Ha=a[36406],Ta=1<>2];Nb>>>0>>0?e=114:(Ua=Nb,e=115);break;case 114:R();case 115:a[(145664+((Ca+2|0)<<2)|0)>>2]=l;a[(Ua+12|0)>>2]=l;a[(l+8|0)>>2]=Ua;a[(l+12|0)>>2]=Va;e=134;break;case 116:var gb=l,Na=qa>>>8;if(0==(Na|0))var $a=0,e=119;else e=117;break;case 117:16777215>>0?($a=31,e=119):e=118;break;case 118:var Gb=
+(Na+1048320|0)>>>16&8,Ja=Na<>>16&4,Ra=Ja<>>16&2,ob=(14-(lb|Gb|sb)|0)+(Ra<>>15)|0,$a=qa>>>((ob+7|0)>>>0)&1|ob<<1,e=119;break;case 119:var hb=145928+($a<<2)|0;a[(l+28|0)>>2]=$a;a[(l+20|0)>>2]=0;a[(l+16|0)>>2]=0;var mb=a[36407],Oa=1<<$a,e=0==(mb&Oa|0)?120:121;break;case 120:a[36407]=mb|Oa;a[hb>>2]=gb;a[(l+24|0)>>2]=hb;a[(l+12|0)>>2]=l;a[(l+8|0)>>2]=l;e=134;break;case 121:var nb=a[hb>>2];if(31==($a|0))var xb=0,e=123;else e=122;break;case 122:xb=25-($a>>>1)|
+0;e=123;break;case 123:var Ya=qa<>2]&-8|0)==(qa|0)?129:125;break;case 125:var tb=Ia+16+(Ya>>>31<<2)|0,Ka=a[tb>>2],ab=Ya<<1;0==(Ka|0)?e=126:(Ya=ab,Ia=Ka,e=124);break;case 126:e=tb>>>0>>0?128:127;break;case 127:a[tb>>2]=gb;a[(l+24|0)>>2]=Ia;a[(l+12|0)>>2]=l;a[(l+8|0)>>2]=l;e=134;break;case 128:R();case 129:var ga=Ia+8|0,xa=a[ga>>2],La=a[36410],e=Ia>>>0>>0?132:130;break;case 130:e=xa>>>0>>0?132:131;break;case 131:a[(xa+12|0)>>2]=gb;a[ga>>
+2]=gb;a[(l+8|0)>>2]=xa;a[(l+12|0)>>2]=Ia;a[(l+24|0)>>2]=0;e=134;break;case 132:R();case 133:R();case 134:return}}function jj(b,d){for(var e=0,e=1;;)switch(e){case 1:var f=b,c=b+8|0;if(0==(c&7|0))var g=0,e=3;else e=2;break;case 2:g=(-c|0)&7;e=3;break;case 3:e=d-g|0;a[36412]=f+g|0;a[36409]=e;a[(f+(g+4|0)|0)>>2]=e|1;a[(f+(d+4|0)|0)>>2]=40;a[36413]=a[12420];return}}function In(b){a[b>>2]=146136}function fl(a){for(var b=0,b=1;;)switch(b){case 1:b=0==(a|0)?3:2;break;case 2:ua(a);b=3;break;case 3:return}}
+function xm(b,d){for(var e=0,f=m,e=1;;)switch(e){case 1:e=a[Mi>>2];Uc(a[ec>>2],143360,(S=m,m=m+8|0,a[S>>2]=e,S));e=0==(b|0)?3:2;break;case 2:Uc(a[ec>>2],b,a[d>>2]);e=3;break;case 3:Fh(10,a[ec>>2]);m=f;return}}function ym(b,d,e){for(var f=0,f=1;;)switch(f){case 1:var c=a[ih>>2],f=a[Mi>>2];Uc(a[ec>>2],145448,(S=m,m=m+8|0,a[S>>2]=f,S));f=0==(d|0)?3:2;break;case 2:Uc(a[ec>>2],d,a[e>>2]);Ti(145336,2,1,a[ec>>2]);f=3;break;case 3:var g=a[ec>>2],h=Eh(c);Uc(g,143784,(S=m,m=m+8|0,a[S>>2]=h,S));kd(b)}}function Jn(b,
+d,e){for(var f=0,f=1;;)switch(f){case 1:f=a[Mi>>2];Uc(a[ec>>2],144264,(S=m,m=m+8|0,a[S>>2]=f,S));f=0==(d|0)?3:2;break;case 2:Uc(a[ec>>2],d,a[e>>2]);f=3;break;case 3:Fh(10,a[ec>>2]),kd(b)}}function Ck(a){function b(){fi||(fi=!0,Xg(gl));Xg(Kn);var d=0;nl=!0;Module._main&&Si&&(d=Module.callMain(a),Module.noExitRuntime||Xg(pl));if(Module.postRun)for("function"==typeof Module.postRun&&(Module.postRun=[Module.postRun]);0>"+e+")<<"+e+
+")"}return"Math.ceil(("+a+")/"+b+")*"+b},isNumberType:function(a){return a in U.INT_TYPES||a in U.FLOAT_TYPES},isPointerType:function(a){return"*"==a[a.length-1]},isStructType:function(a){return isPointerType(a)?!1:isArrayType(a)||/?/.test(a)?!0:"%"==a[0]},INT_TYPES:{i1:0,i8:0,i16:0,i32:0,i64:0},FLOAT_TYPES:{"float":0,"double":0},or64:function(a,b){var e=a|0|b|0,f=4294967296*(Math.round(a/4294967296)|Math.round(b/4294967296));return e+f},and64:function(a,b){var e=(a|0)&(b|0),f=4294967296*
+(Math.round(a/4294967296)&Math.round(b/4294967296));return e+f},xor64:function(a,b){var e=(a|0)^(b|0),f=4294967296*(Math.round(a/4294967296)^Math.round(b/4294967296));return e+f},getNativeTypeSize:function(a,b){if(1==U.QUANTUM_SIZE)return 1;var e={"%i1":1,"%i8":1,"%i16":2,"%i32":4,"%i64":8,"%float":4,"%double":8}["%"+a];e||("*"==a.charAt(a.length-1)?e=U.QUANTUM_SIZE:"i"==a[0]&&(e=parseInt(a.substr(1)),ac(0==e%8),e/=8));return e},getNativeFieldSize:function(a){return Math.max(U.getNativeTypeSize(a),
+U.QUANTUM_SIZE)},dedup:function(a,b){var e={};return b?a.filter(function(a){return e[a[b]]?!1:e[a[b]]=!0}):a.filter(function(a){return e[a]?!1:e[a]=!0})},set:function(){for(var a="object"===typeof arguments[0]?arguments[0]:arguments,b={},e=0;ee)return String.fromCharCode(e);a.push(e);b=191e?1:2;return""}if(0e?String.fromCharCode((e&31)<<6|f&63):String.fromCharCode((e&
+15)<<12|(f&63)<<6|c&63);a.length=0;return e};this.processJSString=function(a){a=unescape(encodeURIComponent(a));for(var b=[],d=0;d>3<<3;return b},staticAlloc:function(a){var b=Wg;Wg=Wg+a|0;Wg=Wg+7>>3<<3;return b},dynamicAlloc:function(k){var d=gd;gd=gd+k|0;gd=gd+7>>3<<3;if(gd>=Wf){for(;Wf<=gd;)Wf=2*Wf+4095>>12<<12;ac(Wf<=Math.pow(2,30));k=l;var e=new ArrayBuffer(Wf);Module.HEAP8=l=new Int8Array(e);Module.HEAP16=
+Xa=new Int16Array(e);Module.HEAP32=a=new Int32Array(e);Module.HEAPU8=bc=new Uint8Array(e);Module.HEAPU16=hl=new Uint16Array(e);Module.HEAPU32=Oi=new Uint32Array(e);Module.HEAPF32=b=new Float32Array(e);Module.HEAPF64=oa=new Float64Array(e);l.set(k)}return d},alignMemory:function(a,b){return Math.ceil(a/(b?b:8))*(b?b:8)},makeBigInt:function(a,b,e){return e?(a>>>0)+4294967296*(b>>>0):(a>>>0)+4294967296*(b|0)},GLOBAL_BASE:8,QUANTUM_SIZE:4,__dummy__:0},Ae=!1,S,kj,Bs=this;Module.ccall=function(a,b,e,f){return Gm(ll(a),
+b,e,f)};Module.cwrap=function(a,b,e){var f=ll(a);return function(){return Gm(f,b,e,Array.prototype.slice.call(arguments))}};Module.setValue=Pi;Module.getValue=function(k,d,e){d=d||"i8";"*"===d.charAt(d.length-1)&&(d="i32");switch(d){case "i1":return l[k];case "i8":return l[k];case "i16":return Xa[k>>1];case "i32":return a[k>>2];case "i64":return a[k>>2];case "float":return b[k>>2];case "double":return oa[k>>3];default:gi("invalid type for setValue: "+d)}return null};var Mm=1,Kc=2,hi=4;Module.ALLOC_NORMAL=
+0;Module.ALLOC_STACK=Mm;Module.ALLOC_STATIC=Kc;Module.ALLOC_DYNAMIC=3;Module.ALLOC_NONE=hi;Module.allocate=Za;Module.Pointer_stringify=ml;var Fs=4096,l,bc,Xa,hl,a,Oi,b,oa,il=0,Wg=0,Dm=0,m=0,Em=0,Mn=0,gd=0,Wf=Module.TOTAL_MEMORY||16777216;ac(!!Int32Array&&!!Float64Array&&!!(new Int32Array(1)).subarray&&!!(new Int32Array(1)).set,"Cannot fallback to non-typed array case: Code is too specialized");var ze=new ArrayBuffer(Wf);l=new Int8Array(ze);Xa=new Int16Array(ze);a=new Int32Array(ze);bc=new Uint8Array(ze);
+hl=new Uint16Array(ze);Oi=new Uint32Array(ze);b=new Float32Array(ze);oa=new Float64Array(ze);a[0]=255;ac(255===bc[0]&&0===bc[3],"Typed arrays 2 must be run on a little-endian system");Module.HEAP=void 0;Module.HEAP8=l;Module.HEAP16=Xa;Module.HEAP32=a;Module.HEAPU8=bc;Module.HEAPU16=hl;Module.HEAPU32=Oi;Module.HEAPF32=b;Module.HEAPF64=oa;var gl=[],Kn=[],pl=[],fi=!1;Module.intArrayFromString=Pe;Module.intArrayToString=function(a){for(var b=[],e=0;e>>16)*f+e*(b>>>16)<<16)|0});var xf=0,Bk={},nl=!1,Km=null;Module.addRunDependency=Qi;Module.removeRunDependency=Ri;Module.preloadedImages={};Module.preloadedAudios={};var il=8,Wg=il+147272,Is,ec,Hs,Mi,yk,zk;ec=ec=Za([0,0,0,0,0,0,0,0],"i8",Kc);yk=yk=Za([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"i8",Kc);zk=zk=Za([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"i8",Kc);Za([0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,27,134,42,204,204,52,43,33,78,132,43,252,247,157,43,88,156,166,43,252,247,157,43,33,78,132,43,204,204,52,43,0,27,134,42,83,248,191,44,254,169,171,44,146,50,149,44,159,129,122,44,239,29,73,44,62,186,23,44,116,173,207,43,133,159,107,43,183,89,146,42,83,248,191,172,254,169,171,172,146,50,149,172,159,129,122,172,239,29,73,172,62,186,23,172,
+116,173,207,171,133,159,107,171,183,89,146,170,0,27,134,170,204,204,52,171,33,78,132,171,252,247,157,171,88,156,166,171,252,247,157,171,33,78,132,171,204,204,52,171,0,27,134,170,0,27,134,42,204,204,52,43,33,78,132,43,252,247,157,43,88,156,166,43,252,247,157,43,33,78,132,43,204,204,52,43,0,27,134,42,83,248,191,44,254,169,171,44,146,50,149,44,159,129,122,44,239,29,73,44,62,186,23,44,116,173,207,43,133,159,107,43,183,89,146,42,37,39,192,172,51,37,173,172,234,209,152,172,227,84,131,172,249,175,89,172,
+11,14,43,172,102,34,244,171,201,49,137,171,74,123,157,170,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,72,144,128,170,174,79,227,170,5,174,113,170,234,207,6,62,205,19,212,62,139,111,68,63,255,175,139,63,23,208,166,63,117,235,200,63,190,226,245,63,122,130,26,64,105,251,74,64,185,87,144,64,107,16,243,64,233,58,183,65,92,28,124,63,187,141,36,63,68,29,175,62,178,143,112,63,212,208,49,190,125,27,68,191,215,179,93,63,0,0,0,63,254,181,3,191,218,134,241,190,2,115,160,190,116,71,58,190,29,176,193,189,135,
+203,39,189,29,161,104,188,70,123,114,187,168,132,91,63,216,185,97,63,221,26,115,63,129,186,123,63,65,218,126,63,253,200,127,63,101,249,127,63,141,255,127,63,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,72,144,128,42,174,79,227,42,5,174,113,42,37,39,192,44,51,37,173,44,234,209,152,44,227,84,131,44,249,175,89,44,11,14,43,44,102,34,244,43,201,49,137,43,74,123,157,42,83,248,191,172,254,169,171,172,146,50,149,172,159,129,122,172,239,29,73,172,62,186,23,172,116,173,207,171,133,159,107,171,183,89,146,
+170,0,27,134,170,204,204,52,171,33,78,132,171,252,247,157,171,88,156,166,171,252,247,157,171,33,78,132,171,204,204,52,171,0,27,134,170,137,158,227,63,229,83,236,63,167,94,245,63,155,20,249,63,14,217,252,63,123,143,234,63,218,151,217,63,226,132,191,63,124,145,168,63,0,0,128,63,0,0,0,0,9,0,0,0,9,0,0,0,0,0,0,0,102,102,166,64,0,0,250,66,102,102,134,192,154,153,201,192,154,153,153,64,0,0,128,63,0,0,0,0,0,0,0,0,2,0,0,0,21,0,0,0,236,81,120,63,0,0,160,64,0,0,200,66,1,0,0,0,9,0,0,0,9,0,0,0,0,0,0,0,154,153,
+169,64,0,0,250,66,102,102,102,192,51,51,179,192,0,0,144,64,0,0,192,63,0,0,0,0,0,0,0,0,2,0,0,0,21,0,0,0,205,204,172,63,0,0,160,64,0,0,200,66,2,0,0,0,9,0,0,0,9,0,0,0,0,0,0,0,51,51,179,64,0,0,250,66,205,204,12,192,0,0,96,192,51,51,51,64,0,0,0,64,0,0,0,0,0,0,0,0,2,0,0,0,21,0,0,0,82,184,190,63,0,0,160,64,0,0,200,66,3,0,0,0,9,0,0,0,9,0,0,0,1,0,0,0,154,153,185,64,0,0,2,67,102,102,230,191,51,51,51,192,102,102,38,64,0,0,64,64,0,0,128,192,0,0,0,0,2,0,0,0,20,0,0,0,133,235,209,63,0,0,160,64,0,0,200,66,4,0,0,
+0,9,0,0,0,9,0,0,0,1,0,0,0,0,0,192,64,0,0,7,67,51,51,51,191,205,204,140,191,205,204,140,63,0,0,96,64,0,0,0,193,0,0,0,0,2,0,0,0,0,0,0,0,184,30,229,63,0,0,160,64,0,0,200,66,5,0,0,0,9,0,0,0,9,0,0,0,1,0,0,0,205,204,204,64,0,0,12,67,0,0,0,63,205,204,204,62,0,0,240,192,0,0,128,64,0,0,64,193,23,183,81,57,0,0,0,0,0,0,0,0,154,153,249,63,0,0,160,64,0,0,200,66,6,0,0,0,9,0,0,0,9,0,0,0,1,0,0,0,51,51,211,64,0,0,17,67,31,133,43,63,102,102,38,63,51,51,107,193,0,0,208,64,0,0,152,193,23,183,209,57,0,0,0,0,0,0,0,0,51,
+51,19,64,0,0,160,64,0,0,200,66,7,0,0,0,9,0,0,0,9,0,0,0,1,0,0,0,51,51,211,64,0,0,17,67,205,204,76,63,0,0,64,63,154,153,157,193,0,0,0,65,0,0,176,193,82,73,29,58,0,0,0,0,0,0,0,0,205,204,44,64,0,0,160,64,0,0,200,66,8,0,0,0,9,0,0,0,9,0,0,0,1,0,0,0,51,51,211,64,0,0,17,67,154,153,153,63,51,51,147,63,0,0,220,193,0,0,32,65,0,0,184,193,52,128,55,58,0,0,0,0,0,0,0,0,0,0,0,0,0,0,160,64,0,0,200,66,9,0,0,0,9,0,0,0,9,0,0,0,1,0,0,0,51,51,211,64,0,0,17,67,205,204,204,63,205,204,204,63,0,0,16,194,0,0,48,65,0,0,200,
+193,23,183,81,58,0,0,0,0,0,0,0,0,0,0,0,0,0,0,160,64,0,0,200,66,10,0,0,0,9,0,0,0,9,0,0,0,1,0,0,0,51,51,211,64,0,0,17,67,0,0,0,64,0,0,0,64,0,0,16,194,0,0,64,65,0,0,200,193,23,183,81,58,0,0,0,0,0,0,0,0,0,0,0,0,0,0,160,64,0,0,200,66,0,0,0,0,0,0,0,0,9,0,0,0,9,0,0,0,0,0,0,0,102,102,134,64,0,0,200,65,154,153,217,192,154,153,217,192,51,51,227,64,0,0,128,63,0,0,0,0,0,0,0,0,2,0,0,0,31,0,0,0,0,0,128,63,0,0,160,64,0,0,200,66,1,0,0,0,9,0,0,0,9,0,0,0,0,0,0,0,102,102,134,64,0,0,200,65,154,153,153,192,154,153,153,
+192,205,204,172,64,51,51,179,63,0,0,128,191,0,0,0,0,2,0,0,0,27,0,0,0,178,157,143,63,0,0,160,64,0,0,196,66,2,0,0,0,9,0,0,0,9,0,0,0,0,0,0,0,102,102,134,64,0,0,200,65,102,102,38,192,102,102,38,192,205,204,108,64,0,0,0,64,0,0,64,192,0,0,0,0,2,0,0,0,23,0,0,0,47,221,164,63,0,0,160,64,0,0,194,66,3,0,0,0,9,0,0,0,9,0,0,0,1,0,0,0,102,102,134,64,0,0,200,65,205,204,204,191,205,204,204,191,0,0,0,64,0,0,0,64,0,0,160,192,0,0,0,0,2,0,0,0,18,0,0,0,223,79,189,63,0,0,160,64,0,0,192,66,4,0,0,0,9,0,0,0,9,0,0,0,1,0,0,
+0,102,102,134,64,0,0,200,65,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,0,0,0,193,0,0,0,0,2,0,0,0,12,0,0,0,16,88,217,63,0,0,160,64,0,0,190,66,5,0,0,0,9,0,0,0,9,0,0,0,1,0,0,0,102,102,134,64,0,0,200,65,102,102,166,63,102,102,166,63,0,0,192,192,0,0,96,64,0,0,48,193,0,0,0,0,2,0,0,0,8,0,0,0,154,153,249,63,0,0,160,64,102,102,188,66,6,0,0,0,9,0,0,0,9,0,0,0,1,0,0,0,0,0,144,64,0,0,200,66,205,204,12,64,51,51,19,64,0,0,64,193,0,0,192,64,0,0,96,193,0,0,0,0,2,0,0,0,4,0,0,0,199,75,15,64,0,0,64,64,205,204,187,66,7,0,0,0,9,
+0,0,0,9,0,0,0,1,0,0,0,154,153,153,64,0,0,72,67,205,204,44,64,205,204,44,64,0,0,144,193,0,0,16,65,0,0,136,193,0,0,0,0,2,0,0,0,0,0,0,0,225,122,36,64,0,0,128,63,51,51,187,66,8,0,0,0,9,0,0,0,9,0,0,0,1,0,0,0,154,153,169,64,0,0,150,67,51,51,51,64,51,51,51,64,0,0,168,193,0,0,32,65,0,0,184,193,23,183,81,57,0,0,0,0,0,0,0,0,47,221,60,64,0,0,0,0,154,153,186,66,9,0,0,0,9,0,0,0,9,0,0,0,1,0,0,0,51,51,211,64,0,0,150,67,51,51,51,64,51,51,51,64,0,0,184,193,0,0,48,65,0,0,200,193,82,73,29,58,0,0,0,0,0,0,0,0,254,212,
+88,64,0,0,0,0,154,153,186,66,10,0,0,0,9,0,0,0,9,0,0,0,1,0,0,0,0,0,200,65,0,0,150,67,51,51,51,64,51,51,51,64,0,0,200,193,0,0,64,65,0,0,216,193,10,215,35,59,0,0,0,0,0,0,0,0,0,0,96,64,0,0,0,0,154,153,186,66,0,0,0,0,3,0,1,0,4,0,4,0,6,0,7,0,8,0,8,0,4,0,4,0,4,0,5,0,6,0,8,0,7,0,9,0,5,0,7,0,6,0,8,0,7,0,9,0,8,0,10,0,7,0,8,0,7,0,8,0,8,0,9,0,9,0,10,0,2,0,1,0,3,0,4,0,7,0,7,0,4,0,4,0,4,0,5,0,7,0,7,0,6,0,6,0,7,0,7,0,8,0,8,0,0,0,0,0,2,0,0,0,2,0,0,0,2,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,
+0,0,0,0,0,0,128,63,54,89,75,63,152,134,33,63,152,134,33,63,152,134,33,63,152,134,33,63,152,134,33,63,250,155,128,62,153,158,240,61,0,0,0,0,3,4,6,7,9,10,4,5,6,7,8,10,5,6,7,8,9,10,7,7,8,9,9,10,8,8,9,9,10,11,9,9,10,10,11,11,0,0,0,0,7,0,5,0,9,0,14,0,15,0,7,0,6,0,4,0,5,0,5,0,6,0,7,0,7,0,6,0,8,0,8,0,8,0,5,0,15,0,6,0,9,0,10,0,5,0,1,0,11,0,7,0,9,0,6,0,4,0,1,0,14,0,4,0,6,0,2,0,6,0,0,0,2,4,7,9,9,10,4,4,6,10,10,10,7,6,8,10,10,11,9,10,10,11,11,12,9,9,10,11,12,12,10,10,11,11,13,13,0,0,0,0,3,0,4,0,6,0,18,0,12,
+0,5,0,5,0,1,0,2,0,16,0,9,0,3,0,7,0,3,0,5,0,14,0,7,0,3,0,19,0,17,0,15,0,13,0,10,0,4,0,13,0,5,0,8,0,11,0,5,0,1,0,12,0,4,0,4,0,1,0,1,0,0,0,1,4,7,9,9,10,4,6,8,9,9,10,7,7,9,10,10,11,8,9,10,11,11,11,8,9,10,11,11,12,9,10,11,12,12,12,0,0,0,0,1,0,2,0,10,0,19,0,16,0,10,0,3,0,3,0,7,0,10,0,5,0,3,0,11,0,4,0,13,0,17,0,8,0,4,0,12,0,11,0,18,0,15,0,11,0,2,0,7,0,6,0,9,0,14,0,3,0,1,0,6,0,4,0,5,0,3,0,2,0,0,0,3,4,6,8,4,4,6,7,5,6,7,8,7,7,8,9,7,0,3,0,5,0,1,0,6,0,2,0,3,0,2,0,5,0,4,0,4,0,1,0,3,0,3,0,2,0,0,0,1,4,7,8,4,5,8,
+9,7,8,9,10,8,8,9,10,1,0,2,0,6,0,5,0,3,0,1,0,4,0,4,0,7,0,5,0,7,0,1,0,6,0,1,0,1,0,0,0,2,3,7,4,4,7,6,7,8,0,0,0,0,0,0,0,3,0,2,0,1,0,1,0,1,0,1,0,3,0,2,0,0,0,0,0,0,0,0,0,4,5,5,6,5,6,6,7,5,6,6,7,6,7,7,8,15,0,28,0,26,0,48,0,22,0,40,0,36,0,64,0,14,0,24,0,20,0,32,0,12,0,16,0,8,0,0,0,1,5,5,7,5,8,7,9,5,7,7,9,7,9,9,10,1,0,10,0,8,0,20,0,12,0,20,0,16,0,32,0,14,0,12,0,24,0,0,0,28,0,16,0,24,0,16,0,1,4,7,4,5,7,6,7,8,0,0,0,0,0,0,0,1,0,2,0,1,0,3,0,1,0,1,0,3,0,2,0,0,0,0,0,0,0,0,0,4,5,7,8,9,10,10,11,11,12,12,12,12,12,
+13,10,5,6,7,8,9,10,10,11,11,11,12,12,12,12,12,10,7,7,8,9,9,10,10,11,11,11,11,12,12,12,13,9,8,8,9,9,10,10,10,11,11,11,11,12,12,12,12,9,9,9,9,10,10,10,10,11,11,11,12,12,12,12,13,9,10,9,10,10,10,10,11,11,11,11,12,12,12,12,12,9,10,10,10,10,10,11,11,11,11,12,12,12,12,12,13,9,11,10,10,10,11,11,11,11,12,12,12,12,12,13,13,10,11,11,11,11,11,11,11,11,11,12,12,12,12,13,13,10,11,11,11,11,11,11,11,12,12,12,12,12,13,13,13,10,12,11,11,11,11,12,12,12,12,12,12,13,13,13,13,10,12,12,11,11,11,12,12,12,12,12,12,13,13,
+13,13,10,12,12,12,12,12,12,12,12,12,12,13,13,13,13,13,10,12,12,12,12,12,12,12,12,13,13,13,13,13,13,13,10,13,12,12,12,12,12,12,13,13,13,13,13,13,13,13,10,9,9,9,9,9,9,9,9,9,9,9,10,10,10,10,6,15,0,13,0,46,0,80,0,146,0,6,1,248,0,178,1,170,1,157,2,141,2,137,2,109,2,5,2,8,4,88,0,14,0,12,0,21,0,38,0,71,0,130,0,122,0,216,0,209,0,198,0,71,1,89,1,63,1,41,1,23,1,42,0,47,0,22,0,41,0,74,0,68,0,128,0,120,0,221,0,207,0,194,0,182,0,84,1,59,1,39,1,29,2,18,0,81,0,39,0,75,0,70,0,134,0,125,0,116,0,220,0,204,0,190,0,
+178,0,69,1,55,1,37,1,15,1,16,0,147,0,72,0,69,0,135,0,127,0,118,0,112,0,210,0,200,0,188,0,96,1,67,1,50,1,29,1,28,2,14,0,7,1,66,0,129,0,126,0,119,0,114,0,214,0,202,0,192,0,180,0,85,1,61,1,45,1,25,1,6,1,12,0,249,0,123,0,121,0,117,0,113,0,215,0,206,0,195,0,185,0,91,1,74,1,52,1,35,1,16,1,8,2,10,0,179,1,115,0,111,0,109,0,211,0,203,0,196,0,187,0,97,1,76,1,57,1,42,1,27,1,19,2,125,1,17,0,171,1,212,0,208,0,205,0,201,0,193,0,186,0,177,0,169,0,64,1,47,1,30,1,12,1,2,2,121,1,16,0,79,1,199,0,197,0,191,0,189,0,181,
+0,174,0,77,1,65,1,49,1,33,1,19,1,9,2,123,1,115,1,11,0,156,2,184,0,183,0,179,0,175,0,88,1,75,1,58,1,48,1,34,1,21,1,18,2,127,1,117,1,110,1,10,0,140,2,90,1,171,0,168,0,164,0,62,1,53,1,43,1,31,1,20,1,7,1,1,2,119,1,112,1,106,1,6,0,136,2,66,1,60,1,56,1,51,1,46,1,36,1,28,1,13,1,5,1,0,2,120,1,114,1,108,1,103,1,4,0,108,2,44,1,40,1,38,1,32,1,26,1,17,1,10,1,3,2,124,1,118,1,113,1,109,1,105,1,101,1,2,0,9,4,24,1,22,1,18,1,11,1,8,1,3,1,126,1,122,1,116,1,111,1,107,1,104,1,102,1,100,1,0,0,43,0,20,0,19,0,17,0,15,0,
+13,0,11,0,9,0,7,0,6,0,4,0,7,0,5,0,3,0,1,0,3,0,1,4,3,5,0,0,0,0,1,0,1,0,1,0,0,0,1,5,7,9,10,10,11,11,12,12,12,13,13,13,14,10,4,6,8,9,10,11,11,11,12,12,12,13,14,13,14,10,7,8,9,10,11,11,12,12,13,12,13,13,13,14,14,11,9,9,10,11,11,12,12,12,13,13,14,14,14,15,15,12,10,10,11,11,12,12,13,13,13,14,14,14,15,15,15,11,10,10,11,11,12,13,13,14,13,14,14,15,15,15,16,12,11,11,11,12,13,13,13,13,14,14,14,14,15,15,16,12,11,11,12,12,13,13,13,14,14,15,15,15,15,17,17,12,11,12,12,13,13,13,14,14,15,15,15,15,16,16,16,12,12,12,
+12,13,13,14,14,15,15,15,15,16,15,16,15,13,12,13,12,13,14,14,14,14,15,16,16,16,17,17,16,12,13,13,13,13,14,14,15,16,16,16,16,16,16,15,16,13,13,14,14,14,14,15,15,15,15,17,16,16,16,16,18,13,15,14,14,14,15,15,16,16,16,18,17,17,17,19,17,13,14,15,13,14,16,16,15,16,16,17,18,17,19,17,16,13,10,10,10,11,11,12,12,12,13,13,13,13,13,13,13,10,1,5,7,9,10,10,11,11,12,12,12,13,13,13,14,11,4,6,8,9,10,11,11,11,12,12,12,13,14,13,14,11,7,8,9,10,11,11,12,12,13,12,13,13,13,14,14,12,9,9,10,11,11,12,12,12,13,13,14,14,14,15,
+15,13,10,10,11,11,12,12,13,13,13,14,14,14,15,15,15,12,10,10,11,11,12,13,13,14,13,14,14,15,15,15,16,13,11,11,11,12,13,13,13,13,14,14,14,14,15,15,16,13,11,11,12,12,13,13,13,14,14,15,15,15,15,17,17,13,11,12,12,13,13,13,14,14,15,15,15,15,16,16,16,13,12,12,12,13,13,14,14,15,15,15,15,16,15,16,15,14,12,13,12,13,14,14,14,14,15,16,16,16,17,17,16,13,13,13,13,13,14,14,15,16,16,16,16,16,16,15,16,14,13,14,14,14,14,15,15,15,15,17,16,16,16,16,18,14,15,14,14,14,15,15,16,16,16,18,17,17,17,19,17,14,14,15,13,14,16,
+16,15,16,16,17,18,17,19,17,16,14,11,11,11,12,12,13,13,13,14,14,14,14,14,14,14,12,1,0,5,0,14,0,44,0,74,0,63,0,110,0,93,0,172,0,149,0,138,0,242,0,225,0,195,0,120,1,17,0,3,0,4,0,12,0,20,0,35,0,62,0,53,0,47,0,83,0,75,0,68,0,119,0,201,0,107,0,207,0,9,0,15,0,13,0,23,0,38,0,67,0,58,0,103,0,90,0,161,0,72,0,127,0,117,0,110,0,209,0,206,0,16,0,45,0,21,0,39,0,69,0,64,0,114,0,99,0,87,0,158,0,140,0,252,0,212,0,199,0,131,1,109,1,26,0,75,0,36,0,68,0,65,0,115,0,101,0,179,0,164,0,155,0,8,1,246,0,226,0,139,1,126,1,
+106,1,9,0,66,0,30,0,59,0,56,0,102,0,185,0,173,0,9,1,142,0,253,0,232,0,144,1,132,1,122,1,189,1,16,0,111,0,54,0,52,0,100,0,184,0,178,0,160,0,133,0,1,1,244,0,228,0,217,0,129,1,110,1,203,2,10,0,98,0,48,0,91,0,88,0,165,0,157,0,148,0,5,1,248,0,151,1,141,1,116,1,124,1,121,3,116,3,8,0,85,0,84,0,81,0,159,0,156,0,143,0,4,1,249,0,171,1,145,1,136,1,127,1,215,2,201,2,196,2,7,0,154,0,76,0,73,0,141,0,131,0,0,1,245,0,170,1,150,1,138,1,128,1,223,2,103,1,198,2,96,1,11,0,139,0,129,0,67,0,125,0,247,0,233,0,229,0,219,
+0,137,1,231,2,225,2,208,2,117,3,114,3,183,1,4,0,243,0,120,0,118,0,115,0,227,0,223,0,140,1,234,2,230,2,224,2,209,2,200,2,194,2,223,0,180,1,6,0,202,0,224,0,222,0,218,0,216,0,133,1,130,1,125,1,108,1,120,3,187,1,195,2,184,1,181,1,192,6,4,0,235,2,211,0,210,0,208,0,114,1,123,1,222,2,211,2,202,2,199,6,115,3,109,3,108,3,131,13,97,3,2,0,121,1,113,1,102,0,187,0,214,2,210,2,102,1,199,2,197,2,98,3,198,6,103,3,130,13,102,3,178,1,0,0,12,0,10,0,7,0,11,0,10,0,17,0,11,0,9,0,13,0,12,0,10,0,7,0,5,0,3,0,1,0,3,0,3,5,
+6,8,8,9,10,10,10,11,11,12,12,12,13,14,5,5,7,8,9,9,10,10,10,11,11,12,12,12,13,13,6,7,7,8,9,9,10,10,10,11,11,12,12,13,13,13,7,8,8,9,9,10,10,11,11,11,12,12,12,13,13,13,8,8,9,9,10,10,11,11,11,11,12,12,12,13,13,13,9,9,9,10,10,10,11,11,11,11,12,12,13,13,13,14,10,9,10,10,10,11,11,11,11,12,12,12,13,13,14,14,10,10,10,11,11,11,11,12,12,12,12,12,13,13,13,14,10,10,10,11,11,11,11,12,12,12,12,13,13,14,14,14,10,10,11,11,11,11,12,12,12,13,13,13,13,14,14,14,11,11,11,11,12,12,12,12,12,13,13,13,13,14,15,14,11,11,11,
+11,12,12,12,12,13,13,13,13,14,14,14,15,12,12,11,12,12,12,13,13,13,13,13,13,14,14,15,15,12,12,12,12,12,13,13,13,13,14,14,14,14,14,15,15,13,13,13,13,13,13,13,13,14,14,14,14,15,15,14,15,13,13,13,13,13,13,13,14,14,14,14,14,15,15,15,15,7,0,12,0,18,0,53,0,47,0,76,0,124,0,108,0,89,0,123,0,108,0,119,0,107,0,81,0,122,0,63,0,13,0,5,0,16,0,27,0,46,0,36,0,61,0,51,0,42,0,70,0,52,0,83,0,65,0,41,0,59,0,36,0,19,0,17,0,15,0,24,0,41,0,34,0,59,0,48,0,40,0,64,0,50,0,78,0,62,0,80,0,56,0,33,0,29,0,28,0,25,0,43,0,39,0,
+63,0,55,0,93,0,76,0,59,0,93,0,72,0,54,0,75,0,50,0,29,0,52,0,22,0,42,0,40,0,67,0,57,0,95,0,79,0,72,0,57,0,89,0,69,0,49,0,66,0,46,0,27,0,77,0,37,0,35,0,66,0,58,0,52,0,91,0,74,0,62,0,48,0,79,0,63,0,90,0,62,0,40,0,38,0,125,0,32,0,60,0,56,0,50,0,92,0,78,0,65,0,55,0,87,0,71,0,51,0,73,0,51,0,70,0,30,0,109,0,53,0,49,0,94,0,88,0,75,0,66,0,122,0,91,0,73,0,56,0,42,0,64,0,44,0,21,0,25,0,90,0,43,0,41,0,77,0,73,0,63,0,56,0,92,0,77,0,66,0,47,0,67,0,48,0,53,0,36,0,20,0,71,0,34,0,67,0,60,0,58,0,49,0,88,0,76,0,67,
+0,106,0,71,0,54,0,38,0,39,0,23,0,15,0,109,0,53,0,51,0,47,0,90,0,82,0,58,0,57,0,48,0,72,0,57,0,41,0,23,0,27,0,62,0,9,0,86,0,42,0,40,0,37,0,70,0,64,0,52,0,43,0,70,0,55,0,42,0,25,0,29,0,18,0,11,0,11,0,118,0,68,0,30,0,55,0,50,0,46,0,74,0,65,0,49,0,39,0,24,0,16,0,22,0,13,0,14,0,7,0,91,0,44,0,39,0,38,0,34,0,63,0,52,0,45,0,31,0,52,0,28,0,19,0,14,0,8,0,9,0,3,0,123,0,60,0,58,0,53,0,47,0,43,0,32,0,22,0,37,0,24,0,17,0,12,0,15,0,10,0,2,0,1,0,71,0,37,0,34,0,30,0,28,0,20,0,17,0,26,0,21,0,16,0,10,0,6,0,8,0,6,0,
+2,0,0,0,1,5,7,8,9,10,10,11,10,11,12,12,13,13,14,14,4,6,8,9,10,10,11,11,11,11,12,12,13,14,14,14,7,8,9,10,11,11,12,12,11,12,12,13,13,14,15,15,8,9,10,11,11,12,12,12,12,13,13,13,13,14,15,15,9,9,11,11,12,12,13,13,12,13,13,14,14,15,15,16,10,10,11,12,12,12,13,13,13,13,14,13,15,15,16,16,10,11,12,12,13,13,13,13,13,14,14,14,15,15,16,16,11,11,12,13,13,13,14,14,14,14,15,15,15,16,18,18,10,10,11,12,12,13,13,14,14,14,14,15,15,16,17,17].concat([11,11,12,12,13,13,13,15,14,15,15,16,16,16,18,17,11,12,12,13,13,14,14,
+15,14,15,16,15,16,17,18,19,12,12,12,13,14,14,14,14,15,15,15,16,17,17,17,18,12,13,13,14,14,15,14,15,16,16,17,17,17,18,18,18,13,13,14,15,15,15,16,16,16,16,16,17,18,17,18,18,14,14,14,15,15,15,17,16,16,19,17,17,17,19,18,18,13,14,15,16,16,16,17,16,17,17,18,18,21,20,21,18,1,0,5,0,14,0,21,0,34,0,51,0,46,0,71,0,42,0,52,0,68,0,52,0,67,0,44,0,43,0,19,0,3,0,4,0,12,0,19,0,31,0,26,0,44,0,33,0,31,0,24,0,32,0,24,0,31,0,35,0,22,0,14,0,15,0,13,0,23,0,36,0,59,0,49,0,77,0,65,0,29,0,40,0,30,0,40,0,27,0,33,0,42,0,16,
+0,22,0,20,0,37,0,61,0,56,0,79,0,73,0,64,0,43,0,76,0,56,0,37,0,26,0,31,0,25,0,14,0,35,0,16,0,60,0,57,0,97,0,75,0,114,0,91,0,54,0,73,0,55,0,41,0,48,0,53,0,23,0,24,0,58,0,27,0,50,0,96,0,76,0,70,0,93,0,84,0,77,0,58,0,79,0,29,0,74,0,49,0,41,0,17,0,47,0,45,0,78,0,74,0,115,0,94,0,90,0,79,0,69,0,83,0,71,0,50,0,59,0,38,0,36,0,15,0,72,0,34,0,56,0,95,0,92,0,85,0,91,0,90,0,86,0,73,0,77,0,65,0,51,0,44,0,43,0,42,0,43,0,20,0,30,0,44,0,55,0,78,0,72,0,87,0,78,0,61,0,46,0,54,0,37,0,30,0,20,0,16,0,53,0,25,0,41,0,37,
+0,44,0,59,0,54,0,81,0,66,0,76,0,57,0,54,0,37,0,18,0,39,0,11,0,35,0,33,0,31,0,57,0,42,0,82,0,72,0,80,0,47,0,58,0,55,0,21,0,22,0,26,0,38,0,22,0,53,0,25,0,23,0,38,0,70,0,60,0,51,0,36,0,55,0,26,0,34,0,23,0,27,0,14,0,9,0,7,0,34,0,32,0,28,0,39,0,49,0,75,0,30,0,52,0,48,0,40,0,52,0,28,0,18,0,17,0,9,0,5,0,45,0,21,0,34,0,64,0,56,0,50,0,49,0,45,0,31,0,19,0,12,0,15,0,10,0,7,0,6,0,3,0,48,0,23,0,20,0,39,0,36,0,35,0,53,0,21,0,16,0,23,0,13,0,10,0,6,0,1,0,4,0,2,0,16,0,15,0,17,0,27,0,25,0,20,0,29,0,11,0,17,0,12,0,
+16,0,8,0,1,0,1,0,0,0,1,0,4,4,6,8,9,10,10,10,4,5,6,7,9,9,10,10,6,6,7,8,9,10,9,10,7,7,8,8,9,10,10,10,8,8,9,9,10,10,10,11,9,9,10,10,10,11,10,11,9,9,9,10,10,11,11,12,10,10,10,11,11,11,11,12,9,0,6,0,16,0,33,0,41,0,39,0,38,0,26,0,7,0,5,0,6,0,9,0,23,0,16,0,26,0,11,0,17,0,7,0,11,0,14,0,21,0,30,0,10,0,7,0,17,0,10,0,15,0,12,0,18,0,28,0,14,0,5,0,32,0,13,0,22,0,19,0,18,0,16,0,9,0,5,0,40,0,17,0,31,0,29,0,17,0,13,0,4,0,2,0,27,0,12,0,11,0,15,0,10,0,7,0,4,0,1,0,27,0,12,0,8,0,12,0,6,0,3,0,1,0,0,0,2,4,6,8,9,10,9,10,
+4,5,6,8,10,10,9,10,6,7,8,9,10,11,10,10,8,8,9,11,10,12,10,11,9,10,10,11,11,12,11,12,9,10,11,12,12,13,12,13,9,9,9,10,11,12,12,12,9,9,10,11,12,12,12,12,3,0,4,0,10,0,24,0,34,0,33,0,21,0,15,0,5,0,3,0,4,0,10,0,32,0,17,0,11,0,10,0,11,0,7,0,13,0,18,0,30,0,31,0,20,0,5,0,25,0,11,0,19,0,59,0,27,0,18,0,12,0,5,0,35,0,33,0,31,0,58,0,30,0,16,0,7,0,5,0,28,0,26,0,32,0,19,0,17,0,15,0,8,0,14,0,14,0,12,0,9,0,13,0,14,0,9,0,4,0,1,0,11,0,4,0,6,0,6,0,6,0,3,0,2,0,0,0,1,4,7,9,10,10,10,11,4,6,8,9,10,11,10,10,7,8,9,10,11,12,
+11,11,8,9,10,11,12,12,11,12,9,10,11,12,12,12,12,12,10,11,12,12,13,13,12,13,9,10,11,12,12,12,13,13,10,10,11,12,12,13,13,13,1,0,2,0,10,0,23,0,35,0,30,0,12,0,17,0,3,0,3,0,8,0,12,0,18,0,21,0,12,0,7,0,11,0,9,0,15,0,21,0,32,0,40,0,19,0,6,0,14,0,13,0,22,0,34,0,46,0,23,0,18,0,7,0,20,0,19,0,33,0,47,0,27,0,22,0,9,0,3,0,31,0,22,0,41,0,26,0,21,0,20,0,5,0,3,0,14,0,13,0,10,0,11,0,16,0,6,0,5,0,1,0,9,0,8,0,7,0,8,0,4,0,4,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,2,0,0,0,2,0,0,0,2,0,0,0,2,0,0,0,3,0,0,0,2,0,0,0,3,0,0,0,3,0,0,0,4,0,0,0,3,0,0,0,4,0,0,0,3,0,0,0,4,0,0,0,4,0,0,0,5,0,0,0,4,0,0,0,5,0,0,0,4,0,0,0,6,0,0,0,5,0,0,0,6,0,0,0,5,0,0,0,6,0,0,0,5,0,0,0,7,0,0,0,6,0,0,0,7,0,0,0,6,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,2,0,0,0,3,0,0,0,0,0,0,0,1,0,0,0,2,0,0,0,3,0,0,0,1,0,0,0,2,0,0,0,3,0,0,0,1,0,0,0,2,0,0,0,3,0,0,0,2,0,0,0,3,0,0,0,1,0,0,0,2,0,0,0,4,0,0,0,8,0,0,0,1,0,0,0,2,0,0,0,4,0,0,0,8,0,0,0,2,0,0,0,4,0,0,0,8,0,0,0,2,
+0,0,0,4,0,0,0,8,0,0,0,4,0,0,0,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,2,0,0,0,2,0,0,0,2,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,4,0,0,0,4,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,8,0,0,0,2,0,0,0,2,0,0,0,2,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,8,0,0,0,8,0,0,0,8,0,0,0,16,0,0,0,16,0,0,0,0,0,0,0,6,0,0,0,12,0,0,0,18,0,0,0,24,0,0,0,30,0,0,0,36,0,0,0,44,0,0,0,54,0,0,0,66,0,0,0,80,0,0,0,96,0,0,0,116,0,0,0,140,0,0,0,168,0,0,0,200,0,0,0,238,0,0,0,28,1,0,0,80,1,0,0,140,1,0,0,208,1,0,0,10,2,0,0,64,
+2,0,0,0,0,0,0,4,0,0,0,8,0,0,0,12,0,0,0,18,0,0,0,24,0,0,0,32,0,0,0,42,0,0,0,56,0,0,0,74,0,0,0,100,0,0,0,132,0,0,0,174,0,0,0,192,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,0,0,0,12,0,0,0,18,0,0,0,24,0,0,0,30,0,0,0,36,0,0,0,44,0,0,0,54,0,0,0,66,0,0,0,80,0,0,0,96,0,0,0,114,0,0,0,136,0,0,0,162,0,0,0,194,0,0,0,232,0,0,0,22,1,0,0,76,1,0,0,138,1,0,0,208,1,0,0,28,2,0,0,64,2,0,0,0,0,0,0,4,0,0,0,8,0,0,0,12,0,0,0,18,0,0,0,26,
+0,0,0,36,0,0,0,48,0,0,0,62,0,0,0,80,0,0,0,104,0,0,0,136,0,0,0,180,0,0,0,192,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,0,0,0,12,0,0,0,18,0,0,0,24,0,0,0,30,0,0,0,36,0,0,0,44,0,0,0,54,0,0,0,66,0,0,0,80,0,0,0,96,0,0,0,116,0,0,0,140,0,0,0,168,0,0,0,200,0,0,0,238,0,0,0,28,1,0,0,80,1,0,0,140,1,0,0,208,1,0,0,10,2,0,0,64,2,0,0,0,0,0,0,4,0,0,0,8,0,0,0,12,0,0,0,18,0,0,0,26,0,0,0,36,0,0,0,48,0,0,0,62,0,0,0,80,0,0,0,104,0,0,
+0,134,0,0,0,174,0,0,0,192,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,8,0,0,0,12,0,0,0,16,0,0,0,20,0,0,0,24,0,0,0,30,0,0,0,36,0,0,0,44,0,0,0,52,0,0,0,62,0,0,0,74,0,0,0,90,0,0,0,110,0,0,0,134,0,0,0,162,0,0,0,196,0,0,0,238,0,0,0,32,1,0,0,86,1,0,0,162,1,0,0,64,2,0,0,0,0,0,0,4,0,0,0,8,0,0,0,12,0,0,0,16,0,0,0,22,0,0,0,30,0,0,0,40,0,0,0,52,0,0,0,66,0,0,0,84,0,0,0,106,0,0,0,136,0,0,0,192,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,8,0,0,0,12,0,0,0,16,0,0,0,20,0,0,0,24,0,0,0,30,0,0,0,36,0,0,0,42,0,0,0,50,0,0,0,60,0,0,0,72,0,0,0,88,0,0,0,106,0,0,0,128,0,0,0,156,0,0,0,190,0,0,0,230,0,0,0,20,1,0,0,74,1,0,0,128,1,0,0,64,2,0,0,0,0,0,0,4,0,0,0,8,0,0,0,12,0,0,0,16,0,0,0,22,0,0,0,28,0,0,0,38,0,0,0,50,0,0,0,64,0,0,0,80,0,0,0,100,0,0,0,126,0,0,0,192,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,8,0,0,0,12,0,0,0,16,0,0,0,20,0,0,0,24,0,0,0,30,0,0,0,36,0,0,0,44,0,0,0,54,0,0,0,66,0,0,0,82,0,0,0,102,0,0,0,126,0,0,0,156,0,0,0,194,0,0,0,240,0,0,0,40,1,0,0,108,1,0,0,192,1,0,0,38,2,0,0,64,2,0,0,0,0,0,0,4,0,0,0,8,0,0,0,12,0,0,0,16,0,0,0,22,0,0,0,30,0,0,0,42,0,0,0,58,0,0,0,78,0,0,0,104,0,0,0,138,0,0,0,180,0,0,0,192,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,0,0,0,
+12,0,0,0,18,0,0,0,24,0,0,0,30,0,0,0,36,0,0,0,44,0,0,0,54,0,0,0,66,0,0,0,80,0,0,0,96,0,0,0,116,0,0,0,140,0,0,0,168,0,0,0,200,0,0,0,238,0,0,0,28,1,0,0,80,1,0,0,140,1,0,0,208,1,0,0,10,2,0,0,64,2,0,0,0,0,0,0,4,0,0,0,8,0,0,0,12,0,0,0,18,0,0,0,26,0,0,0,36,0,0,0,48,0,0,0,62,0,0,0,80,0,0,0,104,0,0,0,134,0,0,0,174,0,0,0,192,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,0,0,0,12,0,0,0,18,0,0,0,24,0,0,0,30,0,0,0,36,0,0,0,44,0,
+0,0,54,0,0,0,66,0,0,0,80,0,0,0,96,0,0,0,116,0,0,0,140,0,0,0,168,0,0,0,200,0,0,0,238,0,0,0,28,1,0,0,80,1,0,0,140,1,0,0,208,1,0,0,10,2,0,0,64,2,0,0,0,0,0,0,4,0,0,0,8,0,0,0,12,0,0,0,18,0,0,0,26,0,0,0,36,0,0,0,48,0,0,0,62,0,0,0,80,0,0,0,104,0,0,0,134,0,0,0,174,0,0,0,192,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,24,0,0,0,36,0,0,0,48,0,0,0,60,0,0,0,72,0,0,0,88,0,0,0,108,0,0,0,132,0,0,0,160,0,0,0,192,0,0,0,232,0,
+0,0,24,1,0,0,80,1,0,0,144,1,0,0,220,1,0,0,54,2,0,0,56,2,0,0,58,2,0,0,60,2,0,0,62,2,0,0,64,2,0,0,0,0,0,0,8,0,0,0,16,0,0,0,24,0,0,0,36,0,0,0,52,0,0,0,72,0,0,0,96,0,0,0,124,0,0,0,160,0,0,0,162,0,0,0,164,0,0,0,166,0,0,0,192,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,0,0,0,11,0,0,0,16,0,0,0,21,0,0,0,0,0,0,0,0,0,0,0,18,0,0,0,36,0,0,0,54,0,0,0,54,0,0,0,36,0,0,0,54,0,0,0,72,0,0,0,54,0,0,0,72,0,0,0,90,0,0,0,72,0,0,
+0,90,0,0,0,108,0,0,0,108,0,0,0,126,0,0,0,0,0,0,0,18,0,0,0,36,0,0,0,54,0,0,0,51,0,0,0,35,0,0,0,53,0,0,0,71,0,0,0,52,0,0,0,70,0,0,0,88,0,0,0,69,0,0,0,87,0,0,0,105,0,0,0,104,0,0,0,122,0,0,0,0,0,0,0,10,0,0,0,20,0,0,0,30,0,0,0,33,0,0,0,21,0,0,0,31,0,0,0,41,0,0,0,32,0,0,0,42,0,0,0,52,0,0,0,43,0,0,0,53,0,0,0,63,0,0,0,64,0,0,0,74,0,0,0,34,86,0,0,192,93,0,0,128,62,0,0,255,255,255,255,68,172,0,0,128,187,0,0,0,125,0,0,255,255,255,255,17,43,0,0,224,46,0,0,64,31,0,0,255,255,255,255,0,128,64,192,32,160,96,224,
+16,144,80,208,48,176,112,240,8,136,72,200,40,168,104,232,24,152,88,216,56,184,120,248,4,132,68,196,36,164,100,228,20,148,84,212,52,180,116,244,12,140,76,204,44,172,108,236,28,156,92,220,60,188,124,252,2,130,66,194,34,162,98,226,18,146,82,210,50,178,114,242,10,138,74,202,42,170,106,234,26,154,90,218,58,186,122,250,6,134,70,198,38,166,102,230,22,150,86,214,54,182,118,246,14,142,78,206,46,174,110,238,30,158,94,222,62,190,126,254,111,112,116,105,111,110,32,114,101,113,117,105,114,101,115,32,97,110,32,
+97,114,103,117,109,101,110,116,32,45,45,32,37,115,0,0,0,0,0,0,0,111,112,116,105,111,110,32,114,101,113,117,105,114,101,115,32,97,110,32,97,114,103,117,109,101,110,116,32,45,45,32,37,99,0,0,0,0,0,0,0,205,204,236,192,205,204,236,192,205,204,236,192,0,0,24,193,205,204,236,192,51,51,195,192,0,0,176,192,102,102,150,192,102,102,150,192,102,102,150,192,102,102,150,192,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,2,0,0,0,2,
+0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,36,64,0,0,0,0,0,0,89,64,0,0,0,0,0,136,195,64,0,0,0,0,132,215,151,65,0,128,224,55,121,195,65,67,23,110,5,181,181,184,147,70,245,249,63,233,3,79,56,77,50,29,48,249,72,119,130,90,60,191,115,127,221,79,21,117,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]).concat([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]).concat([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]).concat([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,184,50,2,0,0,0,0,0,205,204,60,65,154,153,89,65,154,153,137,65,0,0,0,66,0,0,58,66,51,51,77,66,0,0,102,66,51,51,134,66,0,0,143,66,51,51,169,66,51,51,195,66,0,0,2,67,154,153,217,64,154,153,185,64,154,153,185,64,205,204,204,64,0,0,208,64,102,102,30,65,154,153,65,65,102,102,102,65,0,0,112,65,51,51,151,65,205,204,172,65,51,51,215,
+65,205,204,8,66,205,204,32,66,51,51,59,66,0,0,98,66,205,204,114,66,205,204,147,66,102,102,171,66,205,204,186,66,51,51,252,66,0,0,0,0,0,0,0,0,1,0,0,0,16,0,0,0,17,0,0,0,8,0,0,0,9,0,0,0,24,0,0,0,25,0,0,0,4,0,0,0,5,0,0,0,20,0,0,0,21,0,0,0,12,0,0,0,13,0,0,0,28,0,0,0,29,0,0,0,2,0,0,0,3,0,0,0,18,0,0,0,19,0,0,0,10,0,0,0,11,0,0,0,26,0,0,0,27,0,0,0,6,0,0,0,7,0,0,0,22,0,0,0,23,0,0,0,14,0,0,0,15,0,0,0,30,0,0,0,31,0,0,0,0,0,0,0,0,0,0,0,63,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,8,0,0,0,208,7,0,0,16,0,0,0,116,14,0,0,24,
+0,0,0,60,15,0,0,32,0,0,0,124,21,0,0,40,0,0,0,88,27,0,0,48,0,0,0,76,29,0,0,56,0,0,0,16,39,0,0,64,0,0,0,248,42,0,0,80,0,0,0,188,52,0,0,96,0,0,0,252,58,0,0,112,0,0,0,240,60,0,0,128,0,0,0,104,66,0,0,160,0,0,0,92,68,0,0,192,0,0,0,168,72,0,0,224,0,0,0,200,75,0,0,0,1,0,0,244,76,0,0,64,1,0,0,20,80,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,9,0,0,0,9,0,0,0,9,0,0,0,9,0,0,0,6,0,0,0,9,0,0,0,9,0,0,0,9,0,0,0,6,0,0,0,5,0,0,0,7,0,0,0,3,0,0,0,9,0,0,0,9,0,0,0,12,0,0,0,6,0,0,0,6,0,0,0,9,0,0,
+0,12,0,0,0,6,0,0,0,11,0,0,0,10,0,0,0,0,0,0,0,0,0,0,0,18,0,0,0,18,0,0,0,0,0,0,0,0,0,0,0,15,0,0,0,18,0,0,0,0,0,0,0,0,0,0,0,7,0,0,0,7,0,0,0,7,0,0,0,0,0,0,0,12,0,0,0,12,0,0,0,12,0,0,0,0,0,0,0,6,0,0,0,15,0,0,0,12,0,0,0,0,0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,3,0,0,0,12,0,0,0,9,0,0,0,9,0,0,0,6,0,0,0,6,0,0,0,12,0,0,0,9,0,0,0,6,0,0,0,8,0,0,0,8,0,0,0,5,0,0,0,0,0,0,0,15,0,0,0,12,0,0,0,9,0,0,0,0,0,0,0,6,0,0,0,18,0,0,0,9,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,255,255,255,255,0,0,0,0,111,112,116,105,111,110,32,100,111,
+101,115,110,39,116,32,116,97,107,101,32,97,110,32,97,114,103,117,109,101,110,116,32,45,45,32,37,46,42,115,0,8,0,0,0,16,0,0,0,24,0,0,0,32,0,0,0,40,0,0,0,48,0,0,0,56,0,0,0,64,0,0,0,80,0,0,0,96,0,0,0,112,0,0,0,128,0,0,0,160,0,0,0,192,0,0,0,224,0,0,0,0,1,0,0,64,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,2,0,0,0,2,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]).concat([0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]).concat([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]).concat([15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,0,0,0,0,15,0,0,0,15,0,0,0,7,0,0,0,7,0,0,0,15,0,0,0,15,0,0,0,7,0,0,0,0,0,0,0,7,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,15,
+0,0,0,31,0,0,0,31,0,0,0,0,0,0,0,7,0,0,0,7,0,0,0,7,0,0,0,0,0,0,0,3,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,7,7,7,7,7,7,3,3,3,3,3,0,0,0,0,0,0,0,0,0,0,0,0,0,15,15,15,15,15,15,15,15,15,15,15,7,7,7,7,7,7,7,7,7,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,0,1,0,5,0,5,0,7,0,7,0,8,0,9,0,9,0,10,0,10,0,10,0,10,0,11,0,11,0,11,0,11,0,12,0,12,0,12,0,12,0,12,0,12,0,13,0,12,0,13,0,12,0,13,0,13,0,14,0,10,0,10,0,5,0,4,0,6,0,6,0,7,
+0,8,0,8,0,9,0,9,0,10,0,10,0,11,0,10,0,11,0,11,0,11,0,11,0,12,0,11,0,12,0,12,0,12,0,12,0,13,0,12,0,14,0,12,0,13,0,12,0,14,0,10,0,10,0,7,0,7,0,7,0,8,0,8,0,9,0,9,0,10,0,9,0,11,0,10,0,11,0,10,0,12,0,11,0,12,0,11,0,13,0,11,0,12,0,11,0,13,0,12,0,13,0,12,0,13,0,12,0,14,0,13,0,14,0,9,0,11,0,8,0,9,0,8,0,9,0,9,0,10,0,9,0,11,0,10,0,11,0,10,0,12,0,10,0,12,0,11,0,12,0,11,0,13,0,11,0,13,0,11,0,14,0,12,0,14,0,12,0,14,0,12,0,15,0,12,0,15,0,9,0,12,0,9,0,10,0,9,0,10,0,9,0,11,0,10,0,11,0,10,0,12,0,10,0,12,0,10,0,13,
+0,11,0,13,0,11,0,13,0,11,0,14,0,12,0,14,0,12,0,14,0,12,0,15,0,12,0,15,0,13,0,15,0,9,0,11,0,10,0,10,0,9,0,10,0,10,0,11,0,10,0,11,0,10,0,12,0,10,0,13,0,11,0,13,0,11,0,14,0,11,0,13,0,11,0,14,0,12,0,14,0,12,0,15,0,12,0,15,0,12,0,15,0,12,0,16,0,9,0,12,0,10,0,11,0,10,0,11,0,10,0,11,0,10,0,12,0,10,0,13,0,11,0,13,0,11,0,13,0,11,0,13,0,11,0,14,0,12,0,14,0,12,0,14,0,12,0,14,0,12,0,15,0,12,0,15,0,13,0,16,0,9,0,12,0,11,0,11,0,10,0,11,0,10,0,12,0,10,0,12,0,11,0,13,0,11,0,13,0,11,0,13,0,11,0,14,0,12,0,14,0,12,
+0,15,0,12,0,15,0,12,0,15,0,12,0,15,0,13,0,17,0,13,0,17,0,10,0,12,0,11,0,11,0,11,0,12,0,11,0,12,0,11,0,13,0,11,0,13,0,11,0,13,0,11,0,14,0,11,0,14,0,11,0,15,0,12,0,15,0,12,0,15,0,12,0,15,0,12,0,16,0,13,0,16,0,13,0,16,0,10,0,12,0,11,0,12,0,11,0,12,0,11,0,12,0,11,0,13,0,11,0,13,0,11,0,14,0,11,0,14,0,12,0,15,0,12,0,15,0,12,0,15,0,12,0,15,0,12,0,16,0,13,0,15,0,13,0,16,0,13,0,15,0,10,0,13,0,12,0,12,0,11,0,13,0,11,0,12,0,11,0,13,0,11,0,14,0,12,0,14,0,12,0,14,0,12,0,14,0,12,0,15,0,12,0,16,0,12,0,16,0,13,0,
+16,0,13,0,17,0,13,0,17,0,13,0,16,0,10,0,12,0,12,0,13,0,12,0,13,0,11,0,13,0,11,0,13,0,11,0,14,0,12,0,14,0,12,0,15,0,12,0,16,0,12,0,16,0,12,0,16,0,12,0,16,0,13,0,16,0,13,0,16,0,13,0,15,0,13,0,16,0,10,0,13,0,12,0,13,0,12,0,14,0,12,0,14,0,12,0,14,0,12,0,14,0,12,0,15,0,12,0,15,0,12,0,15,0,12,0,15,0,12,0,17,0,13,0,16,0,13,0,16,0,13,0,16,0,13,0,16,0,13,0,18,0,10,0,13,0,12,0,15,0,12,0,14,0,12,0,14,0,12,0,14,0,12,0,15,0,12,0,15,0,12,0,16,0,12,0,16,0,13,0,16,0,13,0,18,0,13,0,17,0,13,0,17,0,13,0,17,0,13,0,19,
+0,13,0,17,0,10,0,13,0,13,0,14,0,12,0,15,0,12,0,13,0,12,0,14,0,12,0,16,0,12,0,16,0,12,0,15,0,13,0,16,0,13,0,16,0,13,0,17,0,13,0,18,0,13,0,17,0,13,0,19,0,13,0,17,0,13,0,16,0,10,0,13,0,9,0,10,0,9,0,10,0,9,0,10,0,9,0,11,0,9,0,11,0,9,0,12,0,9,0,12,0,9,0,12,0,9,0,13,0,9,0,13,0,9,0,13,0,10,0,13,0,10,0,13,0,10,0,13,0,10,0,13,0,6,0,10,0,44,76,0,0,56,74,0,0,68,72,0,0,80,70,0,0,92,68,0,0,116,64,0,0,140,60,0,0,164,56,0,0,212,48,0,0,28,37,0,0,110,15,0,0,0,0,0,0,192,93,0,0,44,76,0,0,68,72,0,0,80,70,0,0,92,68,0,
+0,104,66,0,0,116,64,0,0,240,60,0,0,96,59,0,0,62,28,0,0,110,15,0,0,0,0,0,0,44,76,0,0,56,74,0,0,168,72,0,0,80,70,0,0,92,68,0,0,128,62,0,0,240,60,0,0,52,58,0,0,212,48,0,0,16,39,0,0,110,15,0,0,0,0,0,0,128,187,0,0,0,0,0,0,0,0,208,64,0,0,0,0,0,0,208,64,148,92,0,0,68,172,0,0,0,0,0,0,0,0,208,64,0,0,0,0,0,0,208,64,20,85,0,0,0,125,0,0,0,0,208,64,0,0,0,65,102,102,166,64,0,0,208,64,184,61,0,0,192,93,0,0,0,0,0,65,0,0,8,65,102,102,166,64,0,0,192,64,74,46,0,0,34,86,0,0,0,0,8,65,246,40,16,65,102,102,166,64,0,0,208,
+64,140,42,0,0,128,62,0,0,246,40,16,65,102,102,22,65,205,204,156,64,0,0,208,64,223,30,0,0,224,46,0,0,102,102,22,65,154,153,25,65,0,0,144,64,0,0,192,64,40,23,0,0,17,43,0,0,154,153,25,65,102,102,30,65,51,51,163,64,0,0,208,64,70,21,0,0,64,31,0,0,102,102,30,65,0,0,32,65,205,204,156,64,0,0,208,64,112,15,0,0,102,102,182,64,0,0,208,64,154,153,233,64,51,51,3,65,0,0,32,65,102,102,62,65,0,0,80,65,0,0,96,65,0,0,112,65,0,0,132,65,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]).concat([0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,117,110,107,110,111,119,110,32,111,112,116,105,111,110,32,45,45,32,37,115,0,0,0,0,117,110,107,110,111,119,110,32,111,112,116,105,111,110,32,45,45,32,37,99,0,0,0,0,1,0,0,0,2,0,0,0,
+5,0,0,0,7,0,0,0,7,0,0,0,10,0,0,0,10,0,0,0,13,0,0,0,13,0,0,0,13,0,0,0,13,0,0,0,13,0,0,0,13,0,0,0,13,0,0,0,13,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,112,32,0,0,104,32,0,0,3,0,0,0,0,0,0,0,80,29,0,0,64,29,0,0,3,0,0,0,0,0,0,0,200,28,0,0,184,28,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,152,28,0,0,136,28,0,0,4,0,0,0,0,0,0,0,104,28,0,0,88,28,0,0,6,0,0,0,0,0,0,0,16,28,0,0,232,27,0,0,6,0,0,0,0,0,0,0,160,27,0,0,120,27,0,0,6,0,0,0,0,0,0,0,48,27,0,0,8,27,0,0,8,0,0,0,0,0,0,0,56,
+44,0,0,248,43,0,0,8,0,0,0,0,0,0,0,120,43,0,0,56,43,0,0,8,0,0,0,0,0,0,0,184,42,0,0,120,42,0,0,16,0,0,0,0,0,0,0,120,40,0,0,120,39,0,0,0,0,0,0,0,0,0,0,0,0,0,0,120,33,0,0,16,0,0,0,0,0,0,0,120,37,0,0,120,36,0,0,1,0,0,0,1,0,0,0,120,34,0,0,120,32,0,0,2,0,0,0,3,0,0,0,120,34,0,0,120,32,0,0,3,0,0,0,7,0,0,0,120,34,0,0,120,32,0,0,4,0,0,0,15,0,0,0,120,34,0,0,120,32,0,0,6,0,0,0,63,0,0,0,120,34,0,0,120,32,0,0,8,0,0,0,255,0,0,0,120,34,0,0,120,32,0,0,10,0,0,0,255,3,0,0,120,34,0,0,120,32,0,0,13,0,0,0,255,31,0,0,120,
+34,0,0,120,32,0,0,4,0,0,0,15,0,0,0,104,30,0,0,104,29,0,0,5,0,0,0,31,0,0,0,104,30,0,0,104,29,0,0,6,0,0,0,63,0,0,0,104,30,0,0,104,29,0,0,7,0,0,0,127,0,0,0,104,30,0,0,104,29,0,0,8,0,0,0,255,0,0,0,104,30,0,0,104,29,0,0,9,0,0,0,255,1,0,0,104,30,0,0,104,29,0,0,11,0,0,0,255,7,0,0,104,30,0,0,104,29,0,0,13,0,0,0,255,31,0,0,104,30,0,0,104,29,0,0,0,0,0,0,0,0,0,0,32,29,0,0,16,29,0,0,0,0,0,0,0,0,0,0,240,28,0,0,224,28,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]).concat([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]).concat([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,168,55,2,0,48,55,2,0,224,53,2,0,112,53,2,0,40,52,2,0,56,51,2,0,232,50,2,0,176,50,2,0,104,50,2,0,208,49,2,0,192,49,2,0,152,49,2,0,120,49,2,0,24,48,2,0,216,47,2,0,200,47,2,0,112,47,2,0,72,47,2,0,40,47,2,0,200,46,2,0,176,46,2,0,136,46,2,0,112,46,2,0,96,46,2,0,48,46,2,0,8,46,2,0,232,45,2,0,200,45,2,0,184,45,2,0,72,45,2,0,56,45,2,0,8,45,2,0,232,44,2,0,104,44,2,0,56,44,2,0,
+8,44,2,0,240,43,2,0,208,43,2,0,184,43,2,0,104,43,2,0,48,43,2,0,248,42,2,0,208,42,2,0,160,42,2,0,112,42,2,0,72,42,2,0,24,42,2,0,248,41,2,0,224,41,2,0,160,41,2,0,136,41,2,0,64,41,2,0,24,41,2,0,240,40,2,0,168,40,2,0,128,40,2,0,72,40,2,0,40,40,2,0,8,40,2,0,176,39,2,0,160,39,2,0,88,39,2,0,48,39,2,0,24,39,2,0,248,38,2,0,224,38,2,0,184,38,2,0,144,38,2,0,104,38,2,0,56,38,2,0,8,38,2,0,208,37,2,0,128,37,2,0,104,37,2,0,80,37,2,0,32,37,2,0,240,36,2,0,224,36,2,0,168,36,2,0,72,36,2,0,8,36,2,0,208,35,2,0,120,35,
+2,0,112,35,2,0,96,35,2,0,88,35,2,0,80,35,2,0,72,35,2,0,64,35,2,0,128,56,2,0,112,56,2,0,96,56,2,0,72,56,2,0,48,56,2,0,24,56,2,0,8,56,2,0,248,55,2,0,240,55,2,0,224,55,2,0,200,55,2,0,192,55,2,0,152,55,2,0,144,55,2,0,136,55,2,0,120,55,2,0,112,55,2,0,88,55,2,0,72,55,2,0,64,55,2,0,32,55,2,0,16,55,2,0,232,54,2,0,224,54,2,0,216,54,2,0,208,54,2,0,184,54,2,0,176,54,2,0,160,54,2,0,144,54,2,0,72,54,2,0,64,54,2,0,232,53,2,0,208,53,2,0,192,53,2,0,176,53,2,0,160,53,2,0,152,53,2,0,136,53,2,0,120,53,2,0,96,53,2,0,
+88,53,2,0,32,53,2,0,24,53,2,0,200,52,2,0,144,52,2,0,104,52,2,0,80,52,2,0,64,52,2,0,48,52,2,0,24,52,2,0,0,52,2,0,168,51,2,0,152,51,2,0,144,51,2,0,120,51,2,0,112,51,2,0,104,51,2,0,88,51,2,0,123,0,0,0,34,0,0,0,74,0,0,0,73,0,0,0,99,0,0,0,20,0,0,0,40,0,0,0,26,0,0,0,145,0,0,0,90,0,0,0,116,0,0,0,41,0,0,0,135,0,0,0,85,0,0,0,96,0,0,0,138,0,0,0,89,0,0,0,0,0,0,0,107,0,0,0,132,0,0,0,65,0,0,0,88,0,0,0,104,0,0,0,102,0,0,0,97,0,0,0,136,0,0,0,61,0,0,0,141,0,0,0,32,0,0,0,1,0,0,0,112,0,0,0,128,0,0,0,57,0,0,0,140,0,
+0,0,2,0,0,0,139,0,0,0,58,0,0,0,3,0,0,0,125,0,0,0,50,0,0,0,22,0,0,0,4,0,0,0,55,0,0,0,127,0,0,0,122,0,0,0,120,0,0,0,98,0,0,0,52,0,0,0,48,0,0,0,54,0,0,0,124,0,0,0,25,0,0,0,84,0,0,0,80,0,0,0,115,0,0,0,81,0,0,0,119,0,0,0,5,0,0,0,30,0,0,0,36,0,0,0,59,0,0,0,126,0,0,0,38,0,0,0,49,0,0,0,91,0,0,0,6,0,0,0,129,0,0,0,79,0,0,0,137,0,0,0,7,0,0,0,35,0,0,0,100,0,0,0,131,0,0,0,19,0,0,0,33,0,0,0,46,0,0,0,47,0,0,0,8,0,0,0,29,0,0,0,146,0,0,0,63,0,0,0,86,0,0,0,71,0,0,0,45,0,0,0,142,0,0,0,9,0,0,0,77,0,0,0,82,0,0,0,64,0,
+0,0,133,0,0,0,10,0,0,0,66,0,0,0,39,0,0,0,11,0,0,0,103,0,0,0,12,0,0,0,75,0,0,0,134,0,0,0,13,0,0,0,53,0,0,0,62,0,0,0,109,0,0,0,117,0,0,0,23,0,0,0,108,0,0,0,92,0,0,0,67,0,0,0,93,0,0,0,43,0,0,0,121,0,0,0,15,0,0,0,68,0,0,0,14,0,0,0,16,0,0,0,76,0,0,0,87,0,0,0,118,0,0,0,17,0,0,0,78,0,0,0,143,0,0,0,114,0,0,0,110,0,0,0,69,0,0,0,21,0,0,0,111,0,0,0,95,0,0,0,105,0,0,0,42,0,0,0,37,0,0,0,24,0,0,0,56,0,0,0,44,0,0,0,101,0,0,0,83,0,0,0,94,0,0,0,106,0,0,0,147,0,0,0,113,0,0,0,18,0,0,0,51,0,0,0,130,0,0,0,144,0,0,0,60,
+0,0,0,70,0,0,0,31,0,0,0,72,0,0,0,27,0,0,0,28,0,0,0,121,207,23,190,138,59,1,66,164,51,148,67,155,200,92,68,202,167,45,70,175,40,132,68,192,222,152,67,129,155,246,65,199,156,118,64,77,183,109,66,194,101,49,68,74,15,165,69,82,45,182,197,71,104,76,196,73,213,153,194,66,4,147,192,94,6,104,63,54,189,72,62,3,97,30,190,44,76,9,66,68,231,150,67,96,102,76,68,47,215,52,70,17,168,147,68,117,204,160,67,46,219,249,65,68,124,109,64,146,154,86,66,183,10,43,68,136,68,163,69,35,243,198,197,129,62,99,196,80,169,179,
+194,43,42,173,192,1,24,82,63,194,197,199,62,223,144,36,190,144,150,16,66,32,15,152,67,140,47,55,68,113,86,59,70,101,128,162,68,120,164,167,67,193,231,251,65,149,237,87,64,209,237,60,66,46,47,35,68,80,99,160,69,178,232,215,197,240,127,122,196,100,62,207,194,121,91,195,192,207,220,61,63,49,160,20,63,61,91,42,190,177,1,23,66,106,129,151,67,98,254,28,68,14,27,65,70,229,136,176,68,246,95,173,67,75,201,252,65,52,59,74,64,173,80,34,66,178,10,26,68,170,126,156,69,83,240,232,197,121,249,136,196,253,124,236,
+194,231,48,218,192,193,13,43,63,21,239,67,63,139,188,47,190,75,118,28,66,177,43,149,67,81,195,251,67,92,30,70,70,161,146,189,68,23,254,177,67,116,41,251,65,165,166,58,64,77,48,7,66,62,185,15,68,225,169,151,69,144,236,249,197,102,184,148,196,253,164,5,195,130,12,247,192,196,112,25,63,234,90,113,63,120,177,52,190,11,224,32,66,197,255,144,67,75,169,179,67,9,89,74,70,63,131,201,68,227,108,181,67,12,94,248,65,73,159,52,64,49,233,215,65,148,121,4,68,250,250,145,69,153,95,5,198,224,82,160,196,230,149,21,
+195,193,75,10,193,185,213,8,63,218,57,142,63,244,54,185,190,93,45,36,66,238,197,138,67,123,163,67,67,193,197,77,70,150,52,212,68,118,180,183,67,208,116,244,65,169,3,34,64,173,143,160,65,68,192,240,67,195,135,139,69,122,165,13,198,28,180,171,196,130,42,38,195,136,83,25,193,112,40,242,62,153,103,162,63,55,74,189,190,167,146,37,66,148,165,130,67,182,247,78,65,135,96,80,70,71,144,221,68,247,225,184,67,182,2,238,65,153,191,25,64,113,224,84,65,226,71,215,67,116,104,132,69,186,183,21,198,32,182,182,196,
+153,32,55,195,248,124,43,193,205,19,212,62,243,4,181,63,187,232,192,190,91,122,38,66,227,13,113,67,88,242,59,195,65,40,82,70,237,132,229,68,213,190,184,67,201,3,232,65,16,147,4,64,105,242,216,64,110,227,188,67,47,102,121,69,214,134,29,198,81,62,193,196,85,96,72,195,235,212,61,193,80,50,183,62,3,228,197,63,71,16,196,190,73,155,36,66,18,122,88,67,23,20,203,195,140,28,83,70,216,249,235,68,185,166,183,67,247,22,225,65,11,250,244,63,71,16,196,62,69,237,161,67,91,2,105,69,239,4,37,198,124,38,203,196,16,
+160,89,195,54,63,80,193,66,80,155,62,49,219,212,63,46,15,21,191,242,108,33,66,98,51,60,67,83,17,32,196,220,60,83,70,70,243,240,68,238,104,181,67,38,192,215,65,112,137,223,63,88,12,180,192,157,166,134,67,47,214,87,69,149,32,44,198,6,85,212,196,16,196,106,195,193,157,98,193,212,63,128,62,152,197,225,63,57,182,22,191,234,239,28,66,206,194,27,67,244,79,94,196,226,141,82,70,182,97,244,68,249,56,178,67,221,40,207,65,124,229,200,63,57,233,50,193,16,207,86,67,160,18,70,69,73,205,50,198,21,165,220,196,104,
+176,123,195,1,246,119,193,175,175,75,62,94,131,236,63,230,143,74,191,36,147,21,66,35,102,239,66,16,227,143,196,201,17,81,70,166,76,246,68,130,2,174,67,22,218,197,65,28,72,177,63,12,95,131,193,224,12,33,67,81,229,51,69,247,251,56,198,140,255,227,196,139,36,134,195,184,137,134,193,100,229,23,62,11,250,244,63,223,202,75,191,201,237,12,66,223,9,160,66,174,0,178,196,45,207,78,70,187,185,246,68,213,254,168,67,51,80,186,65,197,91,178,63,32,204,168,193,139,247,216,66,54,123,33,69,232,158,62,198,230,72,234,
+196,148,31,142,195,218,232,144,193,220,181,201,61,190,20,251,63,15,177,127,191,152,64,2,66,94,213,19,66,106,66,213,196,38,205,75,70,66,172,245,68,70,55,163,67,112,102,177,65,251,108,153,63,81,248,202,193,231,35,102,66,180,6,15,69,179,170,67,198,226,90,239,196,151,161,149,195,66,6,155,193,60,57,73,61,109,196,254,63,54,211,37,70,68,177,165,69,175,113,104,68,69,51,54,68,128,12,144,67,180,213,129,66,2,0,241,65,34,63,131,64,49,19,72,70,167,49,243,68,86,182,156,67,170,105,166,65,251,100,249,68,112,3,16,
+65,17,158,233,193,0,0,0,0,0,0,0,0,128,1,0,0,128,4,0,0,128,4,0,0,0,0,0,0,128,1,0,0,128,4,0,0,64,2,0,0,0,0,0,0,193,192,0,0,129,193,0,0,64,1,0,0,1,195,0,0,192,3,0,0,128,2,0,0,65,194,0,0,1,198,0,0,192,6,0,0,128,7,0,0,65,199,0,0,0,5,0,0,193,197,0,0,129,196,0,0,64,4,0,0,1,204,0,0,192,12,0,0,128,13,0,0,65,205,0,0,0,15,0,0,193,207,0,0,129,206,0,0,64,14,0,0,0,10,0,0,193,202,0,0,129,203,0,0,64,11,0,0,1,201,0,0,192,9,0,0,128,8,0,0,65,200,0,0,1,216,0,0,192,24,0,0,128,25,0,0,65,217,0,0,0,27,0,0,193,219,0,0,129,
+218,0,0,64,26,0,0,0,30,0,0,193,222,0,0,129,223,0,0,64,31,0,0,1,221,0,0,192,29,0,0,128,28,0,0,65,220,0,0,0,20,0,0,193,212,0,0,129,213,0,0,64,21,0,0,1,215,0,0,192,23,0,0,128,22,0,0,65,214,0,0,1,210,0,0,192,18,0,0,128,19,0,0,65,211,0,0,0,17,0,0,193,209,0,0,129,208,0,0,64,16,0,0,1,240,0,0,192,48,0,0,128,49,0,0,65,241,0,0,0,51,0,0,193,243,0,0,129,242,0,0,64,50,0,0,0,54,0,0,193,246,0,0,129,247,0,0,64,55,0,0,1,245,0,0,192,53,0,0,128,52,0,0,65,244,0,0,0,60,0,0,193,252,0,0,129,253,0,0,64,61,0,0,1,255,0,0,
+192,63,0,0,128,62,0,0,65,254,0,0,1,250,0,0,192,58,0,0,128,59,0,0,65,251,0,0,0,57,0,0,193,249,0,0,129,248,0,0,64,56,0,0,0,40,0,0,193,232,0,0,129,233,0,0,64,41,0,0,1,235,0,0,192,43,0,0,128,42,0,0,65,234,0,0,1,238,0,0,192,46,0,0,128,47,0,0,65,239,0,0,0,45,0,0,193,237,0,0,129,236,0,0,64,44,0,0,1,228,0,0,192,36,0,0,128,37,0,0,65,229,0,0,0,39,0,0,193,231,0,0,129,230,0,0,64,38,0,0,0,34,0,0,193,226,0,0,129,227,0,0,64,35,0,0,1,225,0,0,192,33,0,0,128,32,0,0,65,224,0,0,1,160,0,0,192,96,0,0,128,97,0,0,65,161,
+0,0,0,99,0,0,193,163,0,0,129,162,0,0,64,98,0,0,0,102,0,0,193,166,0,0,129,167,0,0,64,103,0,0,1,165,0,0,192,101,0,0,128,100,0,0,65,164,0,0,0,108,0,0,193,172,0,0,129,173,0,0,64,109,0,0,1,175,0,0,192,111,0,0,128,110,0,0,65,174,0,0,1,170,0,0,192,106,0,0,128,107,0,0,65,171,0,0,0,105,0,0,193,169,0,0,129,168,0,0,64,104,0,0,0,120,0,0,193,184,0,0,129,185,0,0,64,121,0,0,1,187,0,0,192,123,0,0,128,122,0,0,65,186,0,0,1,190,0,0,192,126,0,0,128,127,0,0,65,191,0,0,0,125,0,0,193,189,0,0,129,188,0,0,64,124,0,0,1,180,
+0,0,192,116,0,0,128,117,0,0,65,181,0,0,0,119,0,0,193,183,0,0,129,182,0,0,64,118,0,0,0,114,0,0,193,178,0,0,129,179,0,0,64,115,0,0,1,177,0,0,192,113,0,0,128,112,0,0,65,176,0,0,0,80,0,0,193,144,0,0,129,145,0,0,64,81,0,0,1,147,0,0,192,83,0,0,128,82,0,0,65,146,0,0,1,150,0,0,192,86,0,0,128,87,0,0,65,151,0,0,0,85,0,0,193,149,0,0,129,148,0,0,64,84,0,0,1,156,0,0,192,92,0,0,128,93,0,0,65,157,0,0,0,95,0,0,193,159,0,0,129,158,0,0,64,94,0,0,0,90,0,0,193,154,0,0,129,155,0,0,64,91,0,0,1,153,0,0,192,89,0,0,128,88,
+0,0,65,152,0,0,1,136,0,0,192,72,0,0,128,73,0,0,65,137,0,0,0,75,0,0,193,139,0,0,129,138,0,0,64,74,0,0,0,78,0,0,193,142,0,0,129,143,0,0,64,79,0,0,1,141,0,0,192,77,0,0,128,76,0,0,65,140,0,0,0,68,0,0,193,132,0,0,129,133,0,0,64,69,0,0,1,135,0,0,192,71,0,0,128,70,0,0,65,134,0,0,1,130,0,0,192,66,0,0,128,67,0,0,65,131,0,0,0,65,0,0,193,129,0,0,129,128,0,0,64,64,0,0,32,0,0,0,38,0,0,0,8,0,0,0,8,0,0,0,10,0,0,0,10,0,0,0,10,0,0,0,10,0,0,0,10,0,0,0,10,0,0,0,10,0,0,0,10,0,0,0,10,0,0,0,10,0,0,0,10,0,0,0,10,0,0,0,
+94,131,108,63,21,239,195,62,109,196,126,63,54,189,200,61,67,236,127,63,176,10,201,60,196,254,127,63,136,15,201,59,0,0,0,0,8,0,0,0,16,0,0,0,24,0,0,0,32,0,0,0,40,0,0,0,48,0,0,0,56,0,0,0,64,0,0,0,80,0,0,0,96,0,0,0,112,0,0,0,128,0,0,0,144,0,0,0,160,0,0,0,255,255,255,255,0,0,0,0,32,0,0,0,40,0,0,0,48,0,0,0,56,0,0,0,64,0,0,0,80,0,0,0,96,0,0,0,112,0,0,0,128,0,0,0,160,0,0,0,192,0,0,0,224,0,0,0,0,1,0,0,64,1,0,0,255,255,255,255,0,0,0,0,8,0,0,0,16,0,0,0,24,0,0,0,32,0,0,0,40,0,0,0,48,0,0,0,56,0,0,0,64,0,0,0,255,
+255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,8,0,0,0,9,0,0,0,9,0,0,0,0,0,0,0,0,0,0,0,51,51,211,64,0,0,17,67,51,51,115,63,0,0,0,0,0,0,240,193,0,0,48,65,82,73,157,58,1,0,0,0,16,0,0,0,9,0,0,0,9,0,0,0,0,0,0,0,0,0,0,0,51,51,211,64,0,0,17,67,51,51,115,63,0,0,0,0,0,0,200,193,0,0,48,65,111,18,131,58,1,0,0,0,24,0,0,0,9,0,0,0,9,0,0,0,0,0,0,0,0,0,0,0,51,51,211,64,0,0,17,67,51,51,115,63,0,0,0,0,0,0,160,193,0,0,48,65,111,18,131,58,1,0,0,0,32,0,0,0,
+9,0,0,0,9,0,0,0,0,0,0,0,0,0,0,0,51,51,211,64,0,0,17,67,51,51,115,63,0,0,0,0,0,0,112,193,0,0,48,65,111,18,131,58,1,0,0,0,40,0,0,0,9,0,0,0,9,0,0,0,0,0,0,0,0,0,0,0,51,51,211,64,0,0,17,67,51,51,115,63,0,0,0,0,0,0,32,193,0,0,48,65,250,237,107,58,1,0,0,0,48,0,0,0,9,0,0,0,9,0,0,0,0,0,0,0,0,0,0,0,51,51,211,64,0,0,17,67,51,51,115,63,0,0,0,0,0,0,32,193,0,0,48,65,250,237,107,58,1,0,0,0,56,0,0,0,9,0,0,0,9,0,0,0,0,0,0,0,0,0,0,0,51,51,211,64,0,0,17,67,51,51,115,63,0,0,0,0,0,0,192,192,0,0,48,65,23,183,81,58,1,0,
+0,0,64,0,0,0,9,0,0,0,9,0,0,0,0,0,0,0,0,0,0,0,51,51,211,64,0,0,17,67,51,51,115,63,0,0,0,0,0,0,0,192,0,0,48,65,23,183,81,58,1,0,0,0,80,0,0,0,9,0,0,0,9,0,0,0,0,0,0,0,0,0,0,0,51,51,211,64,0,0,17,67,51,51,115,63,0,0,0,0,0,0,0,0,0,0,0,65,52,128,55,58,1,0,0,0,96,0,0,0,9,0,0,0,9,0,0,0,0,0,0,0,0,0,32,64,51,51,211,64,0,0,17,67,51,51,115,63,0,0,0,0,0,0,128,63,0,0,176,64,82,73,29,58,1,0,0,0,112,0,0,0,9,0,0,0,9,0,0,0,0,0,0,0,0,0,16,64,51,51,211,64,0,0,17,67,51,51,115,63,0,0,0,0,0,0,0,64,0,0,144,64,111,18,3,58,
+1,0,0,0,128,0,0,0,9,0,0,0,9,0,0,0,0,0,0,0,154,153,249,63,205,204,204,64,0,0,12,67,51,51,115,63,0,0,0,0,0,0,64,64,0,0,128,64,23,183,81,57,1,0,0,0,160,0,0,0,9,0,0,0,9,0,0,0,1,0,0,0,184,30,229,63,0,0,192,64,0,0,7,67,51,51,115,63,0,0,0,192,0,0,160,64,0,0,96,64,0,0,0,0,1,0,0,0,192,0,0,0,9,0,0,0,9,0,0,0,1,0,0,0,82,184,190,63,51,51,179,64,0,0,250,66,236,81,120,63,0,0,128,192,0,0,224,64,0,0,64,64,0,0,0,0,0,0,0,0,224,0,0,0,9,0,0,0,9,0,0,0,1,0,0,0,0,0,160,63,102,102,166,64,0,0,250,66,72,225,122,63,0,0,192,
+192,0,0,16,65,0,0,0,64,0,0,0,0,0,0,0,0,0,1,0,0,9,0,0,0,9,0,0,0,1,0,0,0,236,81,120,63,102,102,166,64,0,0,250,66,0,0,128,63,0,0,0,193,0,0,32,65,0,0,128,63,0,0,0,0,0,0,0,0,64,1,0,0,9,0,0,0,9,0,0,0,1,0,0,0,102,102,102,63,102,102,166,64,0,0,250,66,0,0,128,63,0,0,32,193,0,0,64,65,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,97,109,98,105,103,117,111,117,115,32,111,112,116,105,111,110,32,45,45,32,37,46,42,115,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]).concat([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]).concat([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]).concat([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,67,101,108,116,105,99,0,0,82,101,118,105,118,97,108,0,76,97,116,105,110,0,0,0,66,101,98,111,98,0,0,0,70,97,115,116,32,70,117,115,105,111,110,0,0,0,0,0,83,119,105,
+110,103,0,0,0,78,97,116,105,111,110,97,108,32,70,111,108,107,0,0,0,87,97,114,110,105,110,103,58,32,104,105,103,104,112,97,115,115,32,102,105,108,116,101,114,32,100,105,115,97,98,108,101,100,46,32,32,104,105,103,104,112,97,115,115,32,102,114,101,113,117,101,110,99,121,32,116,111,111,32,115,109,97,108,108,10,0,0,0,0,0,0,0,70,111,108,107,45,82,111,99,107,0,0,0,0,0,0,0,69,114,114,111,114,58,32,99,97,110,39,116,32,97,108,108,111,99,97,116,101,32,105,110,95,98,117,102,102,101,114,32,98,117,102,102,101,
+114,10,0,70,111,108,107,0,0,0,0,69,114,114,111,114,58,32,99,111,117,108,100,32,110,111,116,32,117,112,100,97,116,101,32,76,65,77,69,32,116,97,103,44,32,102,105,108,101,32,110,111,116,32,114,101,97,100,97,98,108,101,46,10,0,0,0,72,97,114,100,32,82,111,99,107,0,0,0,0,0,0,0,76,65,77,69,32,37,115,32,118,101,114,115,105,111,110,32,37,115,32,40,37,115,41,0,69,114,114,111,114,58,32,99,111,117,108,100,32,110,111,116,32,117,112,100,97,116,101,32,76,65,77,69,32,116,97,103,44,32,102,105,108,101,32,110,111,116,
+32,115,101,101,107,97,98,108,101,46,10,0,0,0,82,111,99,107,32,38,32,82,111,108,108,0,0,0,0,0,69,114,114,111,114,58,32,99,111,117,108,100,32,110,111,116,32,117,112,100,97,116,101,32,76,65,77,69,32,116,97,103,46,10,0,0,0,0,0,0,77,117,115,105,99,97,108,0,10,0,0,0,0,0,0,0,82,101,116,114,111,0,0,0,9,105,110,116,101,114,99,104,97,110,110,101,108,32,109,97,115,107,105,110,103,32,114,97,116,105,111,58,32,37,103,10,0,0,0,0,0,0,0,0,80,111,108,107,97,0,0,0,9,117,115,105,110,103,32,116,101,109,112,111,114,97,
+108,32,109,97,115,107,105,110,103,32,101,102,102,101,99,116,58,32,37,115,10,0,0,0,0,0,65,99,105,100,32,74,97,122,122,0,0,0,0,0,0,0,110,111,0,0,0,0,0,0,65,99,105,100,32,80,117,110,107,0,0,0,0,0,0,0,121,101,115,0,0,0,0,0,84,114,105,98,97,108,0,0,9,32,32,32,97,100,106,117,115,116,32,109,97,115,107,105,110,103,32,98,97,115,115,61,37,103,32,100,66,44,32,97,108,116,111,61,37,103,32,100,66,44,32,116,114,101,98,108,101,61,37,103,32,100,66,44,32,115,102,98,50,49,61,37,103,32,100,66,10,0,0,0,76,111,45,70,105,
+0,0,0,9,101,120,112,101,114,105,109,101,110,116,97,108,32,112,115,121,32,116,117,110,105,110,103,115,32,98,121,32,78,97,111,107,105,32,83,104,105,98,97,116,97,10,0,0,0,0,0,84,114,97,105,108,101,114,0,9,32,94,32,97,100,106,117,115,116,32,115,101,110,115,105,116,105,118,105,116,121,32,112,111,119,101,114,58,32,37,102,10,0,0,0,0,0,0,0,83,104,111,119,116,117,110,101,115,0,0,0,0,0,0,0,37,108,117,0,0,0,0,0,9,32,94,32,97,100,106,117,115,116,32,116,121,112,101,58,32,37,100,10,0,0,0,0,82,97,118,101,0,0,0,
+0,9,32,94,32,108,101,118,101,108,32,97,100,106,117,115,116,101,109,101,110,116,58,32,37,103,32,100,66,10,0,0,0,80,115,121,99,104,101,100,101,108,105,99,0,0,0,0,0,32,40,111,110,108,121,32,102,111,114,32,116,121,112,101,32,52,41,0,0,0,0,0,0,78,101,119,32,87,97,118,101,0,0,0,0,0,0,0,0,9,32,94,32,115,104,97,112,101,58,32,37,103,37,115,10,0,0,0,0,0,0,0,0,67,97,98,97,114,101,116,0,9,32,94,32,116,121,112,101,58,32,37,100,10,0,0,0,78,97,116,105,118,101,32,85,83,0,0,0,0,0,0,0,9,65,84,72,58,32,37,115,10,0,
+0,0,0,0,0,0,74,117,110,103,108,101,0,0,110,111,116,32,117,115,101,100,0,0,0,0,0,0,0,0,80,111,112,47,70,117,110,107,0,0,0,0,0,0,0,0,116,104,101,32,111,110,108,121,32,109,97,115,107,105,110,103,0,0,0,0,0,0,0,0,67,104,114,105,115,116,105,97,110,32,82,97,112,0,0,0,37,100,0,0,0,0,0,0,51,68,78,111,119,33,0,0,116,104,101,32,111,110,108,121,32,109,97,115,107,105,110,103,32,102,111,114,32,115,104,111,114,116,32,98,108,111,99,107,115,0,0,0,0,0,0,0,84,111,112,32,52,48,0,0,117,115,105,110,103,0,0,0,71,97,110,
+103,115,116,97,0,69,114,114,111,114,58,32,77,65,88,95,72,69,65,68,69,82,95,66,85,70,32,116,111,111,32,115,109,97,108,108,32,105,110,32,98,105,116,115,116,114,101,97,109,46,99,32,10,0,0,0,0,0,0,0,0,9,32,94,32,115,116,111,112,112,105,110,103,58,32,37,100,10,0,0,0,0,0,0,0,67,117,108,116,0,0,0,0,9,32,94,32,97,109,112,108,105,102,105,99,97,116,105,111,110,58,32,37,100,10,0,0,67,111,109,101,100,121,0,0,9,110,111,105,115,101,32,115,104,97,112,105,110,103,58,32,37,100,10,0,0,0,0,0,83,111,117,116,104,101,
+114,110,32,82,111,99,107,0,0,0,9,32,94,32,99,111,109,112,97,114,105,115,111,110,32,115,104,111,114,116,32,98,108,111,99,107,115,58,32,37,100,10,0,0,0,0,0,0,0,0,68,114,101,97,109,0,0,0,9,113,117,97,110,116,105,122,97,116,105,111,110,32,99,111,109,112,97,114,105,115,111,110,58,32,37,100,10,0,0,0,69,117,114,111,100,97,110,99,101,0,0,0,0,0,0,0,80,79,83,73,88,76,89,95,67,79,82,82,69,67,84,0,51,50,98,105,116,115,0,0,9,97,100,106,117,115,116,32,109,97,115,107,105,110,103,32,115,104,111,114,116,58,32,37,
+103,32,100,66,10,0,0,0,80,111,112,45,70,111,108,107,0,0,0,0,0,0,0,0,9,97,100,106,117,115,116,32,109,97,115,107,105,110,103,58,32,37,103,32,100,66,10,0,69,108,101,99,116,114,111,110,105,99,0,0,0,0,0,0,9,115,117,98,98,108,111,99,107,32,103,97,105,110,58,32,37,100,10,0,0,0,0,0,84,101,99,104,110,111,45,73,110,100,117,115,116,114,105,97,108,0,0,0,0,0,0,0,105,109,97,103,101,47,103,105,102,0,0,0,0,0,0,0,9,117,115,105,110,103,32,115,104,111,114,116,32,98,108,111,99,107,115,58,32,37,115,10,0,0,0,0,0,0,0,0,
+68,97,114,107,119,97,118,101,0,0,0,0,0,0,0,0,102,111,114,99,101,100,0,0,71,111,116,104,105,99,0,0,32,49,37,37,32,32,98,117,103,32,105,110,32,76,65,77,69,32,101,110,99,111,100,105,110,103,32,108,105,98,114,97,114,121,0,0,0,0,0,0,100,105,115,112,101,110,115,101,100,0,0,0,0,0,0,0,69,116,104,110,105,99,0,0,99,104,97,110,110,101,108,32,99,111,117,112,108,101,100,0,73,110,115,116,114,117,109,101,110,116,97,108,32,82,111,99,107,0,0,0,0,0,0,0,97,108,108,111,119,101,100,0,73,110,115,116,114,117,109,101,110,
+116,97,108,32,80,111,112,0,0,0,0,0,0,0,0,10,112,115,121,99,104,111,97,99,111,117,115,116,105,99,58,10,10,0,0,0,0,0,0,77,101,100,105,116,97,116,105,118,101,0,0,0,0,0,0,9,117,115,105,110,103,32,76,65,77,69,32,84,97,103,10,0,0,0,0,0,0,0,0,83,112,97,99,101,0,0,0,0,0,0,0,0,0,0,0,9,32,63,63,32,111,111,112,115,44,32,115,111,109,101,32,110,101,119,32,111,110,101,32,63,63,32,10,0,0,0,0,80,117,110,107,0,0,0,0,9,118,97,114,105,97,98,108,101,32,98,105,116,114,97,116,101,32,45,32,86,66,82,32,109,116,114,104,32,
+37,115,10,0,0,0,0,0,0,0,0,83,111,117,108,0,0,0,0,9,118,97,114,105,97,98,108,101,32,98,105,116,114,97,116,101,32,45,32,86,66,82,32,109,116,32,37,115,10,0,0,66,97,115,115,0,0,0,0,105,109,97,103,101,47,112,110,103,0,0,0,0,0,0,0,9,118,97,114,105,97,98,108,101,32,98,105,116,114,97,116,101,32,45,32,86,66,82,32,114,104,32,37,115,10,0,0,65,108,116,101,114,110,97,116,105,118,101,32,82,111,99,107,0,0,0,0,0,0,0,0,9,118,97,114,105,97,98,108,101,32,98,105,116,114,97,116,101,32,45,32,65,66,82,32,37,115,10,0,0,
+0,0,0,78,111,105,115,101,0,0,0,32,57,37,37,32,32,89,111,117,114,32,115,121,115,116,101,109,32,105,115,32,111,118,101,114,99,108,111,99,107,101,100,0,0,0,0,0,0,0,0,9,99,111,110,115,116,97,110,116,32,98,105,116,114,97,116,101,32,45,32,67,66,82,32,37,115,10,0,0,0,0,0,71,111,115,112,101,108,0,0,40,102,114,101,101,32,102,111,114,109,97,116,41,0,0,0,83,111,117,110,100,32,67,108,105,112,0,0,0,0,0,0,40,100,101,102,97,117,108,116,41,0,0,0,0,0,0,0,71,97,109,101,0,0,0,0,9,112,97,100,100,105,110,103,58,32,37,
+115,10,0,0,0,72,111,117,115,101,0,0,0,109,97,120,32,115,121,115,116,101,109,32,98,121,116,101,115,32,61,32,37,49,48,108,117,10,0,0,0,0,0,0,0,97,108,108,0,0,0,0,0,65,99,105,100,0,0,0,0,104,116,116,112,58,47,47,108,97,109,101,46,115,102,46,110,101,116,0,0,0,0,0,0,111,102,102,0,0,0,0,0,51,46,57,57,46,53,0,0,73,110,115,116,114,117,109,101,110,116,97,108,0,0,0,0,73,78,84,69,82,78,65,76,32,69,82,82,79,82,32,73,78,32,86,66,82,32,78,69,87,32,67,79,68,69,32,40,49,51,49,51,41,44,32,112,108,101,97,115,101,32,
+115,101,110,100,32,98,117,103,32,114,101,112,111,114,116,10,109,97,120,98,105,116,115,61,37,100,32,117,115,101,100,98,105,116,115,61,37,100,10,0,0,0,9,37,100,32,99,104,97,110,110,101,108,32,45,32,37,115,10,0,0,0,0,0,0,0,67,108,97,115,115,105,99,97,108,0,0,0,0,0,0,0,117,110,107,110,111,119,110,32,40,101,114,114,111,114,41,0,84,114,97,110,99,101,0,0,44,32,0,0,0,0,0,0,105,109,97,103,101,47,106,112,101,103,0,0,0,0,0,0,110,111,116,32,115,101,116,32,40,101,114,114,111,114,41,0,70,117,115,105,111,110,0,
+0,109,111,110,111,0,0,0,0,74,97,122,122,43,70,117,110,107,0,0,0,0,0,0,0,57,48,37,37,32,32,76,65,77,69,32,99,111,109,112,105,108,101,100,32,119,105,116,104,32,98,117,103,103,121,32,118,101,114,115,105,111,110,32,111,102,32,103,99,99,32,117,115,105,110,103,32,97,100,118,97,110,99,101,100,32,111,112,116,105,109,105,122,97,116,105,111,110,115,0,0,0,0,0,0,100,117,97,108,32,99,104,97,110,110,101,108,0,0,0,0,86,111,99,97,108,0,0,0,115,116,101,114,101,111,0,0,84,114,105,112,45,72,111,112,0,0,0,0,0,0,0,0,
+106,111,105,110,116,32,115,116,101,114,101,111,0,0,0,0,65,109,98,105,101,110,116,0,9,77,80,69,71,45,37,115,32,76,97,121,101,114,32,51,10,0,0,0,0,0,0,0,69,117,114,111,45,84,101,99,104,110,111,0,0,0,0,0,115,116,100,58,58,101,120,99,101,112,116,105,111,110,0,0,63,0,0,0,0,0,0,0,83,111,117,110,100,116,114,97,99,107,0,0,0,0,0,0,115,116,100,58,58,98,97,100,95,97,108,108,111,99,0,0,49,46,48,0,0,0,0,0,50,0,0,0,0,0,0,0,80,114,97,110,107,115,0,0,49,0,0,0,0,0,0,0,68,101,97,116,104,32,77,101,116,97,108,0,0,0,
+0,0,50,46,53,0,0,0,0,0,83,107,97,0,0,0,0,0,0,0,0,0,0,0,0,0,10,115,116,114,101,97,109,32,102,111,114,109,97,116,58,10,10,0,0,0,0,0,0,0,65,108,116,101,114,110,97,116,105,118,101,0,0,0,0,0,9,46,46,46,10,0,0,0,73,110,100,117,115,116,114,105,97,108,0,0,0,0,0,0,84,104,105,115,32,105,115,32,97,32,102,97,116,97,108,32,101,114,114,111,114,46,32,32,73,116,32,104,97,115,32,115,101,118,101,114,97,108,32,112,111,115,115,105,98,108,101,32,99,97,117,115,101,115,58,0,9,101,120,112,101,114,105,109,101,110,116,97,
+108,32,89,61,37,100,10,0,0,0,0,0,84,101,99,104,110,111,0,0,9,104,117,102,102,109,97,110,32,115,101,97,114,99,104,58,32,37,115,10,0,0,0,0,82,111,99,107,0,0,0,0,98,101,115,116,32,40,105,110,115,105,100,101,32,108,111,111,112,44,32,115,108,111,119,41,0,0,0,0,0,0,0,0,82,101,103,103,97,101,0,0,73,78,84,69,82,78,65,76,32,69,82,82,79,82,32,73,78,32,86,66,82,32,78,69,87,32,67,79,68,69,44,32,112,108,101,97,115,101,32,115,101,110,100,32,98,117,103,32,114,101,112,111,114,116,10,0,98,101,115,116,32,40,111,117,
+116,115,105,100,101,32,108,111,111,112,41,0,0,0,0,0,82,97,112,0,0,0,0,0,110,111,114,109,97,108,0,0,82,38,66,0,0,0,0,0,105,110,32,117,115,101,32,98,121,116,101,115,32,32,32,32,32,61,32,37,49,48,108,117,10,0,0,0,0,0,0,0,37,115,58,32,0,0,0,0]).concat([76,65,77,69,51,46,57,57,114,0,0,0,0,0,0,0,80,111,112,0,0,0,0,0,9,99,104,49,32,40,114,105,103,104,116,41,32,115,99,97,108,105,110,103,58,32,37,103,10,0,0,0,0,0,0,0,98,105,116,32,114,101,115,101,114,118,111,105,114,32,101,114,114,111,114,58,32,10,108,51,
+95,115,105,100,101,45,62,109,97,105,110,95,100,97,116,97,95,98,101,103,105,110,58,32,37,105,32,10,82,101,115,118,111,105,114,32,115,105,122,101,58,32,32,32,32,32,32,32,32,32,32,32,32,32,37,105,32,10,114,101,115,118,32,100,114,97,105,110,32,40,112,111,115,116,41,32,32,32,32,32,32,32,32,32,37,105,32,10,114,101,115,118,32,100,114,97,105,110,32,40,112,114,101,41,32,32,32,32,32,32,32,32,32,32,37,105,32,10,104,101,97,100,101,114,32,97,110,100,32,115,105,100,101,105,110,102,111,58,32,32,32,32,32,32,37,105,
+32,10,100,97,116,97,32,98,105,116,115,58,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,37,105,32,10,116,111,116,97,108,32,98,105,116,115,58,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,37,105,32,40,114,101,109,97,105,110,100,101,114,58,32,37,105,41,32,10,98,105,116,115,112,101,114,102,114,97,109,101,58,32,32,32,32,32,32,32,32,32,32,32,32,32,37,105,32,10,0,0,9,99,104,48,32,40,108,101,102,116,41,32,115,99,97,108,105,110,103,58,32,37,103,10,0,0,0,0,0,0,0,0,79,116,104,101,114,0,0,0,9,115,99,97,108,
+105,110,103,58,32,37,103,10,0,0,0,37,115,10,0,0,0,0,0,79,108,100,105,101,115,0,0,88,88,88,0,0,0,0,0,37,115,10,0,0,0,0,0,10,109,105,115,99,58,10,10,0,0,0,0,0,0,0,0,78,101,119,32,65,103,101,0,0,0,0,0,0,0,0,0,77,101,116,97,108,0,0,0,115,116,114,97,110,103,101,32,101,114,114,111,114,32,102,108,117,115,104,105,110,103,32,98,117,102,102,101,114,32,46,46,46,32,10,0,0,0,0,0,37,115,58,32,0,0,0,0,87,97,114,110,105,110,103,58,32,109,97,110,121,32,100,101,99,111,100,101,114,115,32,99,97,110,110,111,116,32,104,
+97,110,100,108,101,32,102,114,101,101,32,102,111,114,109,97,116,32,98,105,116,114,97,116,101,115,32,62,51,50,48,32,107,98,112,115,32,40,115,101,101,32,100,111,99,117,109,101,110,116,97,116,105,111,110,41,10,0,0,0,0,0,0,0,0,74,97,122,122,0,0,0,0,87,97,114,110,105,110,103,58,32,109,97,110,121,32,100,101,99,111,100,101,114,115,32,99,97,110,110,111,116,32,104,97,110,100,108,101,32,102,114,101,101,32,102,111,114,109,97,116,32,98,105,116,115,116,114,101,97,109,115,10,0,0,0,0,72,105,112,45,72,111,112,0,
+0,0,0,0,0,0,0,0,112,111,108,121,112,104,97,115,101,32,108,111,119,112,97,115,115,32,102,105,108,116,101,114,32,100,105,115,97,98,108,101,100,10,0,0,0,0,0,0,71,114,117,110,103,101,0,0,85,115,105,110,103,32,112,111,108,121,112,104,97,115,101,32,108,111,119,112,97,115,115,32,102,105,108,116,101,114,44,32,116,114,97,110,115,105,116,105,111,110,32,98,97,110,100,58,32,37,53,46,48,102,32,72,122,32,45,32,37,53,46,48,102,32,72,122,10,0,0,0,70,117,110,107,0,0,0,0,76,65,77,69,32,37,115,32,37,115,32,40,37,115,
+41,10,0,0,0,0,0,0,0,0,83,121,110,116,104,80,111,112,0,0,0,0,0,0,0,0,74,80,111,112,0,0,0,0,65,110,105,109,101,0,0,0,84,104,114,97,115,104,32,77,101,116,97,108,0,0,0,0,37,115,58,32,0,0,0,0,83,97,108,115,97,0,0,0,77,101,114,101,110,103,117,101,0,0,0,0,0,0,0,0,67,104,114,105,115,116,105,97,110,32,82,111,99,107,0,0,85,115,105,110,103,32,112,111,108,121,112,104,97,115,101,32,104,105,103,104,112,97,115,115,32,102,105,108,116,101,114,44,32,116,114,97,110,115,105,116,105,111,110,32,98,97,110,100,58,32,37,
+53,46,48,102,32,72,122,32,45,32,37,53,46,48,102,32,72,122,10,0,0,67,111,110,116,101,109,112,111,114,97,114,121,32,67,104,114,105,115,116,105,97,110,0,0,67,114,111,115,115,111,118,101,114,0,0,0,0,0,0,0,68,105,115,99,111,0,0,0,66,108,97,99,107,32,77,101,116,97,108,0,0,0,0,0,72,101,97,118,121,32,77,101,116,97,108,0,0,0,0,0,67,104,114,105,115,116,105,97,110,32,71,97,110,103,115,116,97,0,0,0,0,0,0,0,66,101,97,116,0,0,0,0,115,121,115,116,101,109,32,98,121,116,101,115,32,32,32,32,32,61,32,37,49,48,108,117,
+10,0,0,0,0,0,0,0,80,111,108,115,107,32,80,117,110,107,0,0,0,0,0,0,98,97,100,95,97,114,114,97,121,95,110,101,119,95,108,101,110,103,116,104,0,0,0,0,76,65,77,69,51,46,57,57,114,53,0,0,0,0,0,0,78,101,103,101,114,112,117,110,107,0,0,0,0,0,0,0,73,78,84,69,82,78,65,76,32,69,82,82,79,82,32,73,78,32,86,66,82,32,78,69,87,32,67,79,68,69,32,40,57,56,54,41,44,32,112,108,101,97,115,101,32,115,101,110,100,32,98,117,103,32,114,101,112,111,114,116,10,0,0,0,66,114,105,116,80,111,112,0,73,110,100,105,101,0,0,0,82,
+101,115,97,109,112,108,105,110,103,58,32,32,105,110,112,117,116,32,37,103,32,107,72,122,32,32,111,117,116,112,117,116,32,37,103,32,107,72,122,10,0,0,0,0,0,0,0,84,101,114,114,111,114,0,0,72,97,114,100,99,111,114,101,0,0,0,0,0,0,0,0,68,97,110,99,101,0,0,0,67,108,117,98,45,72,111,117,115,101,0,0,0,0,0,0,68,114,117,109,32,38,32,66,97,115,115,0,0,0,0,0,71,111,97,0,0,0,0,0,68,97,110,99,101,32,72,97,108,108,0,0,0,0,0,0,69,117,114,111,45,72,111,117,115,101,0,0,0,0,0,0,65,32,67,97,112,112,101,108,108,97,0,
+0,0,0,0,0,68,114,117,109,32,83,111,108,111,0,0,0,0,0,0,0,67,111,117,110,116,114,121,0,80,117,110,107,32,82,111,99,107,0,0,0,0,0,0,0,65,117,116,111,99,111,110,118,101,114,116,105,110,103,32,102,114,111,109,32,115,116,101,114,101,111,32,116,111,32,109,111,110,111,46,32,83,101,116,116,105,110,103,32,101,110,99,111,100,105,110,103,32,116,111,32,109,111,110,111,32,109,111,100,101,46,10,0,0,0,0,0,68,117,101,116,0,0,0,0,70,114,101,101,115,116,121,108,101,0,0,0,0,0,0,0,73,110,116,101,114,110,97,108,32,98,
+117,102,102,101,114,32,105,110,99,111,110,115,105,115,116,101,110,99,121,46,32,102,108,117,115,104,98,105,116,115,32,60,62,32,82,101,115,118,83,105,122,101,0,0,0,0,82,104,121,116,104,109,105,99,32,83,111,117,108,0,0,0,80,111,119,101,114,32,66,97,108,108,97,100,0,0,0,0,66,97,108,108,97,100,0,0,70,111,108,107,108,111,114,101,0,0,0,0,0,0,0,0,10,0,0,0,0,0,0,0,83,97,109,98,97,0,0,0,84,97,110,103,111,0,0,0,67,108,117,98,0,0,0,0,83,108,111,119,32,74,97,109,0,0,0,0,0,0,0,0,67,80,85,32,102,101,97,116,117,
+114,101,115,58,32,37,115,10,0,0,0,0,0,0,0,83,97,116,105,114,101,0,0,58,32,0,0,0,0,0,0,80,111,114,110,32,71,114,111,111,118,101,0,0,0,0,0,67,108,97,115,115,105,99,32,82,111,99,107,0,0,0,0,80,114,105,109,117,115,0,0,66,111,111,116,121,32,66,97,115,115,0,0,0,0,0,0,83,121,109,112,104,111,110,121,0,0,0,0,0,0,0,0,10,0,0,0,0,0,0,0,83,111,110,97,116,97,0,0,67,104,97,109,98,101,114,32,77,117,115,105,99,0,0,0,79,112,101,114,97,0,0,0,67,104,97,110,115,111,110,0,83,112,101,101,99,104,0,0,71,73,70,56,0,0,0,0,
+66,108,117,101,115,0,0,0,83,83,69,50,0,0,0,0,58,32,0,0,0,0,0,0,72,117,109,111,117,114,0,0,65,99,111,117,115,116,105,99,0,0,0,0,0,0,0,0,80,78,71,0,0,0,0,0,69,97,115,121,32,76,105,115,116,101,110,105,110,103,0,0,67,104,111,114,117,115,0,0,66,105,103,32,66,97,110,100,0,0,0,0,0,0,0,0,83,108,111,119,32,82,111,99,107,0,0,0,0,0,0,0,83,121,109,112,104,111,110,105,99,32,82,111,99,107,0,0,37,115,58,32,0,0,0,0,80,115,121,99,104,101,100,101,108,105,99,32,82,111,99,107,0,0,0,0,0,0,0,0,80,114,111,103,114,101,115,
+115,105,118,101,32,82,111,99,107,0,0,0,0,0,0,0,0,71,111,116,104,105,99,32,82,111,99,107,0,0,0,0,0,65,118,97,110,116,103,97,114,100,101,0,0,0,0,0,0,66,108,117,101,103,114,97,115,115,0,0,0,0,0,0,0,76,65,77,69,32,118,101,114,115,105,111,110,32,37,115,32,40,37,115,41,0,0,0,0,73,68,51,0,0,0,0,0,69,114,114,111,114,58,32,99,97,110,39,116,32,97,108,108,111,99,97,116,101,32,86,98,114,70,114,97,109,101,115,32,98,117,102,102,101,114,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,80,59,2,0,48,0,0,0,70,0,0,0,44,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,88,59,2,0,36,0,0,0,14,0,0,0,28,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,104,59,2,0,36,0,0,0,2,0,0,0,62,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,83,116,57,101,120,99,101,112,116,105,111,110,0,0,0,0,83,116,57,98,97,100,95,97,108,108,111,99,0,0,0,0,83,116,50,48,98,97,100,95,97,114,114,97,121,95,110,101,119,95,108,101,110,103,116,104,0,0,0,0,0,0,0,0,0,0,0,0,16,59,2,0,0,0,0,0,32,59,2,0,80,59,2,0,0,0,0,0,0,0,0,0,48,59,2,0,88,59,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,0,0,0,16,0,0,0,16,0,0,0,16,0,0,1,5,3,2,4,0,3,0,221,1,30,61,115,47,118,192,47,250,176,188,158,
+20,250,64,153,188,161,186,158,119,53,193,81,220,194,184,116,225,80,65,83,153,135,188,1,154,68,193,129,18,177,60,29,186,23,65,225,231,169,188,42,236,187,192,86,189,194,59,84,76,48,64,23,210,72,59,21,174,94,191,117,48,252,56,166,136,14,62,45,12,61,59,187,242,93,61,21,159,94,192,66,120,238,188,39,159,203,64,116,13,11,188,159,194,8,193,122,116,11,188,136,161,23,65,15,206,8,188,48,10,13,193,54,239,183,60,24,84,219,64,42,177,212,188,119,161,140,192,227,27,133,60,46,141,12,64,204,220,29,187,91,68,64,191,
+179,14,221,59,38,166,6,62,18,27,246,186,98,72,30,62,88,65,24,192,146,25,191,189,204,80,54,64,198,233,127,189,83,84,41,192,195,60,177,60,160,42,15,64,141,230,100,189,27,243,213,191,107,217,67,61,72,195,128,63,221,177,17,59,30,72,235,190,198,2,2,61,96,182,39,62,140,213,99,188,41,29,78,189,32,117,213,59,250,86,192,60,8,103,16,188,195,30,155,62,254,109,206,191,55,145,103,190,17,54,138,63,79,222,175,189,44,92,131,190,5,120,6,61,113,172,38,190,93,7,22,188,128,210,103,190,162,171,193,188,106,76,200,62,186,
+131,191,187,206,177,98,190,217,136,128,61,99,84,56,61,14,238,10,183,195,81,164,60,229,233,6,59,220,52,70,59,209,172,241,188,164,63,172,62,202,209,191,191,12,238,130,190,224,157,95,63,198,63,242,189,120,245,249,61,39,37,244,61,171,200,78,191,74,115,160,189,61,4,245,62,155,0,154,187,253,11,255,189,221,42,193,187,240,154,38,189,226,118,106,61,225,172,170,61,116,82,8,60,208,143,45,189,111,248,133,188,144,228,243,60,148,49,144,188,83,247,229,62,31,210,32,191,69,246,18,190,75,222,151,62,236,79,105,190,
+172,192,190,190,13,131,104,188,76,24,12,59,175,11,39,61,83,49,215,190,21,234,253,189,13,83,99,62,22,214,39,61,196,1,201,59,137,153,214,61,247,48,138,61,143,176,152,188,61,242,108,61,134,205,2,189,7,1,4,61,132,146,177,59,35,242,16,63,249,36,134,191,99,48,65,191,195,71,149,62,202,81,38,62,41,63,137,190,8,118,43,62,71,89,6,60,108,141,65,190,36,174,230,62,232,94,158,62,59,32,169,190,83,31,141,190,179,5,138,61,91,28,212,59,139,246,67,189,211,25,177,61,92,87,134,60,98,50,27,189,45,15,148,60,22,191,192,
+187,190,188,20,63,131,166,2,191,181,32,8,191,54,36,163,190,218,83,18,190,249,108,79,190,122,105,51,62,249,208,22,62,32,205,194,60,1,112,199,62,138,81,31,62,88,186,110,190,236,195,129,190,127,224,86,189,85,103,133,60,212,73,205,188,47,187,141,61,242,19,200,60,237,111,24,189,6,255,148,60,149,162,245,187,69,87,9,63,94,65,128,190,239,223,215,190,42,39,221,190,85,217,52,187,98,70,12,189,146,207,46,61,213,159,63,189,79,51,209,189,227,53,135,62,214,104,21,62,42,194,26,62,27,131,201,188,75,199,51,190,101,
+108,229,189,100,191,64,190,139,76,38,189,16,94,96,61,204,36,68,61,80,177,64,61,130,177,181,188,0,0,0,0,98,120,124,63,40,114,252,191,98,120,252,191,59,253,120,63,98,120,124,63,19,41,124,63,180,33,252,191,19,41,252,191,229,96,120,63,19,41,124,63,66,185,122,63,86,171,250,191,66,185,250,191,92,142,117,63,66,185,122,63,120,174,121,63,129,154,249,191,120,174,249,191,222,132,115,63,120,174,121,63,91,33,121,63,194,9,249,191,91,33,249,191,234,113,114,63,91,33,121,63,110,236,118,63,58,195,246,191,110,236,246,
+191,69,43,110,63,110,236,118,63,141,200,117,63,87,148,245,191,141,200,245,191,134,249,107,63,141,200,117,63,202,100,117,63,133,44,245,191,202,100,245,191,31,58,107,63,202,100,117,63,138,43,114,63,214,203,241,191,138,43,242,191,124,22,101,63,138,43,114,63,0,0,0,0]),"i8",hi,U.GLOBAL_BASE);a[36564]=zk+8|0;a[36566]=yk+8|0;a[36570]=yk+8|0;var N=U.alignMemory(Za(12,"i8",Kc),8);ac(0==N%8);var Wb={EPERM:1,ENOENT:2,ESRCH:3,EINTR:4,EIO:5,ENXIO:6,E2BIG:7,ENOEXEC:8,EBADF:9,ECHILD:10,EAGAIN:11,EWOULDBLOCK:11,
+ENOMEM:12,EACCES:13,EFAULT:14,ENOTBLK:15,EBUSY:16,EEXIST:17,EXDEV:18,ENODEV:19,ENOTDIR:20,EISDIR:21,EINVAL:22,ENFILE:23,EMFILE:24,ENOTTY:25,ETXTBSY:26,EFBIG:27,ENOSPC:28,ESPIPE:29,EROFS:30,EMLINK:31,EPIPE:32,EDOM:33,ERANGE:34,ENOMSG:35,EIDRM:36,ECHRNG:37,EL2NSYNC:38,EL3HLT:39,EL3RST:40,ELNRNG:41,EUNATCH:42,ENOCSI:43,EL2HLT:44,EDEADLK:45,ENOLCK:46,EBADE:50,EBADR:51,EXFULL:52,ENOANO:53,EBADRQC:54,EBADSLT:55,EDEADLOCK:56,EBFONT:57,ENOSTR:60,ENODATA:61,ETIME:62,ENOSR:63,ENONET:64,ENOPKG:65,EREMOTE:66,
+	ENOLINK: 67,
+	EADV: 68,
+	ESRMNT: 69,
+	ECOMM: 70,
+	EPROTO: 71,
+	EMULTIHOP: 74,
+	ELBIN: 75,
+	EDOTDOT: 76,
+	EBADMSG: 77,
+	EFTYPE: 79,
+	ENOTUNIQ: 80,
+	EBADFD: 81,
+	EREMCHG: 82,
+	ELIBACC: 83,
+	ELIBBAD: 84,
+	ELIBSCN: 85,
+	ELIBMAX: 86,
+	ELIBEXEC: 87,
+	ENOSYS: 88,
+	ENMFILE: 89,
+	ENOTEMPTY: 90,
+	ENAMETOOLONG: 91,
+	ELOOP: 92,
+	EOPNOTSUPP: 95,
+	EPFNOSUPPORT: 96,
+	ECONNRESET: 104,
+	ENOBUFS: 105,
+	EAFNOSUPPORT: 106,
+	EPROTOTYPE: 107,
+	ENOTSOCK: 108,
+	ENOPROTOOPT: 109,
+	ESHUTDOWN: 110,
+	ECONNREFUSED: 111,
+	EADDRINUSE: 112,
+	ECONNABORTED: 113,
+	ENETUNREACH: 114,
+	ENETDOWN: 115,
+	ETIMEDOUT: 116,
+	EHOSTDOWN: 117,
+	EHOSTUNREACH: 118,
+EINPROGRESS:119,EALREADY:120,EDESTADDRREQ:121,EMSGSIZE:122,EPROTONOSUPPORT:123,ESOCKTNOSUPPORT:124,EADDRNOTAVAIL:125,ENETRESET:126,EISCONN:127,ENOTCONN:128,ETOOMANYREFS:129,EPROCLIM:130,EUSERS:131,EDQUOT:132,ESTALE:133,ENOTSUP:134,ENOMEDIUM:135,ENOSHARE:136,ECASECLASH:137,EILSEQ:138,EOVERFLOW:139,ECANCELED:140,ENOTRECOVERABLE:141,EOWNERDEAD:142,ESTRPIPE:143},ih=0,Fm=Za(1,"i32*",Kc),jl=Za(1,"i32*",Kc);ec=Za(1,"i32*",Kc);var QA=Za(1,"i32*",Kc),I={currentPath:"/",nextInode:2,streams:[null],ignorePermissions:!0,
+createFileHandle:function(a,b){"undefined"===typeof a&&(a=null);if(!b)if(a&&a.socket){for(var e=1;64>e;e++)if(!I.streams[e]){b=e;break}ac(b,"ran out of low fds for sockets")}else for(b=Math.max(I.streams.length,64),e=I.streams.length;ethis.length-1||0>a)){var b=a%this.chunkSize;return this.getter(Math.floor(a/this.chunkSize))[b]}};g.prototype.setDataGetter=
+function(a){this.getter=a};g.prototype.cacheLength=function(){var a=new XMLHttpRequest;a.open("HEAD",e,!1);a.send(null);if(!(200<=a.status&&300>a.status||304===a.status))throw Error("Couldn't load "+e+". Status: "+a.status);var b=Number(a.getResponseHeader("Content-length")),c,d=1048576;(c=a.getResponseHeader("Accept-Ranges"))&&"bytes"===c||(d=b);var f=this;f.setDataGetter(function(a){var c=a*d,g=(a+1)*d-1,g=Math.min(g,b-1);if("undefined"===typeof f.chunks[a]){var k=f.chunks;if(c>g)throw Error("invalid range ("+
+c+", "+g+") or no bytes requested!");if(g>b-1)throw Error("only "+b+" bytes available! programmer error!");var h=new XMLHttpRequest;h.open("GET",e,!1);b!==d&&h.setRequestHeader("Range","bytes="+c+"-"+g);"undefined"!=typeof Uint8Array&&(h.responseType="arraybuffer");h.overrideMimeType&&h.overrideMimeType("text/plain; charset=x-user-defined");h.send(null);if(!(200<=h.status&&300>h.status||304===h.status))throw Error("Couldn't load "+e+". Status: "+h.status);c=void 0!==h.response?new Uint8Array(h.response||
+[]):Pe(h.responseText||"",!0);k[a]=c}if("undefined"===typeof f.chunks[a])throw Error("doXHR failed!");return f.chunks[a]});this._length=b;this._chunkSize=d;this.lengthKnown=!0};g=new g;Object.defineProperty(g,"length",{get:function(){this.lengthKnown||this.cacheLength();return this._length}});Object.defineProperty(g,"chunkSize",{get:function(){this.lengthKnown||this.cacheLength();return this._chunkSize}});g={isDevice:!1,contents:g}}else g={isDevice:!1,url:e};return I.createFile(a,b,g,f,c)},createPreloadedFile:function(a,
+b,e,f,c,g,h,l){function m(e){function E(e){l||I.createDataFile(a,b,e,f,c);g&&g();Ri("cp "+p)}var z=!1;Module.preloadPlugins.forEach(function(a){!z&&a.canHandle(p)&&(a.handle(e,p,E,function(){h&&h();Ri("cp "+p)}),z=!0)});z||E(e)}T.init();var p=I.joinPath([a,b],!0);Qi("cp "+p);"string"==typeof e?T.asyncLoad(e,function(a){m(a)},h):m(e)},createLink:function(a,b,e,f,c){return I.createFile(a,b,{isDevice:!1,link:e},f,c)},createDevice:function(a,b,e,f){if(!e&&!f)throw Error("A device must have at least one callback defined.");
+return I.createFile(a,b,{isDevice:!0,input:e,output:f},Boolean(e),Boolean(f))},forceLoadFile:function(a){if(a.isDevice||a.isFolder||a.link||a.contents)return!0;var b=!0;if("undefined"!==typeof XMLHttpRequest)throw 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(Module.read)try{a.contents=Pe(Module.read(a.url),!0)}catch(e){b=!1}else throw Error("Cannot load without read() or XMLHttpRequest.");
+b||Mb(Wb.EIO);return b},ensureRoot:function(){I.root||(I.root={read:!0,write:!0,isFolder:!0,isDevice:!1,timestamp:Date.now(),inodeNumber:1,contents:{}})},init:function(b,d,e){function f(a){null===a||10===a?(d.printer(d.buffer.join("")),d.buffer=[]):d.buffer.push(l.processCChar(a))}ac(!I.init.initialized,"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)");I.init.initialized=!0;
+I.ensureRoot();b=b||Module.stdin;d=d||Module.stdout;e=e||Module.stderr;var c=!0,g=!0,h=!0;b||(c=!1,b=function(){if(!b.cache||!b.cache.length){var a;"undefined"!=typeof window&&"function"==typeof window.prompt?(a=window.prompt("Input: "),null===a&&(a=String.fromCharCode(0))):"function"==typeof readline&&(a=readline());a||(a="");b.cache=Pe(a+"\n",!0)}return b.cache.shift()});var l=new U.UTF8Processor;d||(g=!1,d=f);d.printer||(d.printer=Module.print);d.buffer||(d.buffer=[]);e||(h=!1,e=f);e.printer||
+(e.printer=Module.print);e.buffer||(e.buffer=[]);try{I.createFolder("/","tmp",!0,!0)}catch(m){}var p=I.createFolder("/","dev",!0,!0),v=I.createDevice(p,"stdin",b),E=I.createDevice(p,"stdout",null,d);e=I.createDevice(p,"stderr",null,e);I.createDevice(p,"tty",b,d);I.createDevice(p,"null",function(){},function(){});I.streams[1]={path:"/dev/stdin",object:v,position:0,isRead:!0,isWrite:!1,isAppend:!1,isTerminal:!c,error:!1,eof:!1,ungotten:[]};I.streams[2]={path:"/dev/stdout",object:E,position:0,isRead:!1,
+isWrite:!0,isAppend:!1,isTerminal:!g,error:!1,eof:!1,ungotten:[]};I.streams[3]={path:"/dev/stderr",object:e,position:0,isRead:!1,isWrite:!0,isAppend:!1,isTerminal:!h,error:!1,eof:!1,ungotten:[]};a[Fm>>2]=1;a[jl>>2]=2;a[ec>>2]=3;I.createPath("/","dev/shm/tmp",!0,!0);for(c=I.streams.length;c>h-6&63,h=h-6,e=e+"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"[m];2==h?(e+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"[(f&3)<<4],e+="=="):4==h&&(e+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"[(f&15)<<2],e+="=");A.src=a+e;l(A)}};A.src=E;T.safeSetTimeout(function(){l(A)},1E4)}else return m()}});var f=Module.canvas;f.requestPointerLock=
+f.requestPointerLock||f.mozRequestPointerLock||f.webkitRequestPointerLock;f.exitPointerLock=document.exitPointerLock||document.mozExitPointerLock||document.webkitExitPointerLock||function(){};f.exitPointerLock=f.exitPointerLock.bind(document);document.addEventListener("pointerlockchange",b,!1);document.addEventListener("mozpointerlockchange",b,!1);document.addEventListener("webkitpointerlockchange",b,!1);Module.elementPointerLock&&f.addEventListener("click",function(a){!T.pointerLock&&f.requestPointerLock&&
+(f.requestPointerLock(),a.preventDefault())},!1)}},createContext:function(a,b,e){var f;try{if(f=b?a.getContext("experimental-webgl",{alpha:!1}):a.getContext("2d"),!f)throw":(";}catch(c){return Module.print("Could not create canvas - "+c),null}b&&(a.style.backgroundColor="black",a.addEventListener("webglcontextlost",function(a){alert("WebGL context lost. You will need to reload the page.")},!1));e&&(Module.ctx=f,Module.useWebGL=b,T.moduleContextCreatedCallbacks.forEach(function(a){a()}),T.init());
+return f},destroyContext:function(a,b,e){},fullScreenHandlersInstalled:!1,lockPointer:void 0,resizeCanvas:void 0,requestFullScreen:function(a,b){function e(){T.isFullScreen=!1;(document.webkitFullScreenElement||document.webkitFullscreenElement||document.mozFullScreenElement||document.mozFullscreenElement||document.fullScreenElement||document.fullscreenElement)===f?(f.cancelFullScreen=document.cancelFullScreen||document.mozCancelFullScreen||document.webkitCancelFullScreen,f.cancelFullScreen=f.cancelFullScreen.bind(document),
+T.lockPointer&&f.requestPointerLock(),T.isFullScreen=!0,T.resizeCanvas&&T.setFullScreenCanvasSize()):T.resizeCanvas&&T.setWindowedCanvasSize();if(Module.onFullScreen)Module.onFullScreen(T.isFullScreen)}T.lockPointer=a;T.resizeCanvas=b;"undefined"===typeof T.lockPointer&&(T.lockPointer=!0);"undefined"===typeof T.resizeCanvas&&(T.resizeCanvas=!1);var f=Module.canvas;T.fullScreenHandlersInstalled||(T.fullScreenHandlersInstalled=!0,document.addEventListener("fullscreenchange",e,!1),document.addEventListener("mozfullscreenchange",
+e,!1),document.addEventListener("webkitfullscreenchange",e,!1));f.requestFullScreen=f.requestFullScreen||f.mozRequestFullScreen||(f.webkitRequestFullScreen?function(){f.webkitRequestFullScreen(Element.ALLOW_KEYBOARD_INPUT)}:null);f.requestFullScreen()},requestAnimationFrame:function(a){window.requestAnimationFrame||(window.requestAnimationFrame=window.requestAnimationFrame||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame||window.msRequestAnimationFrame||window.oRequestAnimationFrame||
+window.setTimeout);window.requestAnimationFrame(a)},safeCallback:function(a){return function(){if(!Ae)return a.apply(null,arguments)}},safeRequestAnimationFrame:function(a){return T.requestAnimationFrame(function(){Ae||a()})},safeSetTimeout:function(a,b){return setTimeout(function(){Ae||a()},b)},safeSetInterval:function(a,b){return setInterval(function(){Ae||a()},b)},getUserMedia:function(a){window.getUserMedia||(window.getUserMedia=navigator.getUserMedia||navigator.mozGetUserMedia);window.getUserMedia(a)},
+getMovementX:function(a){return a.movementX||a.mozMovementX||a.webkitMovementX||0},getMovementY:function(a){return a.movementY||a.mozMovementY||a.webkitMovementY||0},mouseX:0,mouseY:0,mouseMovementX:0,mouseMovementY:0,calculateMouseEvent:function(a){if(T.pointerLock)"mousemove"!=a.type&&"mozMovementX"in a?T.mouseMovementX=T.mouseMovementY=0:(T.mouseMovementX=T.getMovementX(a),T.mouseMovementY=T.getMovementY(a)),T.mouseX=SDL.mouseX+T.mouseMovementX,T.mouseY=SDL.mouseY+T.mouseMovementY;else{var b=Module.canvas.getBoundingClientRect(),
+e=a.pageX-(window.scrollX+b.left);a=a.pageY-(window.scrollY+b.top);var f=Module.canvas.height,e=Module.canvas.width/b.width*e;a*=f/b.height;T.mouseMovementX=e-T.mouseX;T.mouseMovementY=a-T.mouseY;T.mouseX=e;T.mouseY=a}},xhrLoad:function(a,b,e){var f=new XMLHttpRequest;f.open("GET",a,!0);f.responseType="arraybuffer";f.onload=function(){200==f.status||0==f.status&&f.response?b(f.response):e()};f.onerror=e;f.send(null)},asyncLoad:function(a,b,e,f){T.xhrLoad(a,function(c){ac(c,'Loading data file "'+a+
+'" failed (no arrayBuffer).');b(new Uint8Array(c));f||Ri("al "+a)},function(b){if(e)e();else throw'Loading data file "'+a+'" failed.';});f||Qi("al "+a)},resizeListeners:[],updateResizeListeners:function(){var a=Module.canvas;T.resizeListeners.forEach(function(b){b(a.width,a.height)})},setCanvasSize:function(a,b,e){var f=Module.canvas;f.width=a;f.height=b;e||T.updateResizeListeners()},windowedWidth:0,windowedHeight:0,setFullScreenCanvasSize:function(){var b=Module.canvas;this.windowedWidth=b.width;
+this.windowedHeight=b.height;b.width=screen.width;b.height=screen.height;b=Oi[SDL.screen+0*U.QUANTUM_SIZE>>2];a[SDL.screen+0*U.QUANTUM_SIZE>>2]=b|8388608;T.updateResizeListeners()},setWindowedCanvasSize:function(){var b=Module.canvas;b.width=this.windowedWidth;b.height=this.windowedHeight;b=Oi[SDL.screen+0*U.QUANTUM_SIZE>>2];a[SDL.screen+0*U.QUANTUM_SIZE>>2]=b&-8388609;T.updateResizeListeners()}};gl.unshift({func:function(){Module.noFSInit||I.init.initialized||I.init()}});Kn.push({func:function(){I.ignorePermissions=
+!1}});pl.push({func:function(){I.quit()}});Module.FS_createFolder=I.createFolder;Module.FS_createPath=I.createPath;Module.FS_createDataFile=I.createDataFile;Module.FS_createPreloadedFile=I.createPreloadedFile;Module.FS_createLazyFile=I.createLazyFile;Module.FS_createLink=I.createLink;Module.FS_createDevice=I.createDevice;ih=U.staticAlloc(4);a[ih>>2]=0;Nn.buf=Za(12,"void*",Kc);Nm(Bg);Fh.ret=Za([0],"i8",Kc);Module.requestFullScreen=function(a,b){T.requestFullScreen(a,b)};Module.requestAnimationFrame=
+function(a){T.requestAnimationFrame(a)};Module.pauseMainLoop=function(){T.mainLoop.pause()};Module.resumeMainLoop=function(){T.mainLoop.resume()};Module.getUserMedia=function(){T.getUserMedia()};Dm=m=U.alignMemory(Wg);Em=Dm+5242880;Mn=gd=U.alignMemory(Em);ac(Mn>2]=0;var A=k+76|0,D=a[A>>2],w=k+116|0,u=k+84744|0;a[u>>2]=a[w>>2];var t=
+ye(k,l);a[u>>2]=1;var s=Pj(k),G=a[(k+24|0)>>2]<<3,H=s-G|0,K=a[A>>2],Q=k+72|0,J=a[Q>>2],F=Math.imul(J,K),P=(H|0)/(F|0)&-1,da=Math.imul(576E3*D&-1,a[(k+108|0)>>2]);a[l>>2]=da;var C=k+85096|0;if(0==(a[C>>2]&1|0))var ba=da,c=3;else c=2;break;case 2:var L=1.09*(da|0)&-1,ba=a[l>>2]=L,c=3;break;case 3:var O=(((ba|0)/(a[(k+64|0)>>2]|0)&-1)-G|0)/(F|0)&-1;a[l>>2]=O;var B=0.07*(11-b[(k+244|0)>>2])/5.5+0.93,S=0.9>B?0.8999999761581421:B,V=0<(K|0),c=V?4:18;break;case 4:var R=(O|0)*(1>2]=R;var ha=b[(d+(U<<3)+($<<2)|0)>>2];if(700>2]=R;if(2==(a[(k+304+(10504*U&-1)+(5252*$&-1)+4788|0)>>2]|0))c=8;else var ma=aa,c=9;break;case 8:ma=(aa|0)<(N|0)?N:aa;c=9;break;case 9:if((ma|0)>(W|0))var ia=W,c=11;else c=10;break;case 10:ia=0>(ma|0)?0:ma;c=11;break;case 11:var ea=ia+R|0,ua=a[fa>>2]=ea,c=12;break;case 12:if(4095<
+(ua|0))c=13;else var oa=ua,c=14;break;case 13:oa=a[fa>>2]=4095;c=14;break;case 14:var Y=oa+ja|0,Xa=$+1|0;(Xa|0)<(J|0)?($=Xa,ja=Y,c=6):c=15;break;case 15:if(7680<(Y|0))var ta=0,c=16;else c=17;break;case 16:var na=v+(U<<3)+(ta<<2)|0;a[na>>2]=(7680*a[na>>2]&-1|0)/(Y|0)&-1;var Z=ta+1|0;(Z|0)<(J|0)?(ta=Z,c=16):c=17;break;case 17:var Da=U+1|0;(Da|0)<(K|0)?(U=Da,c=5):c=18;break;case 18:var ka=k+84756|0;if(2==(a[ka>>2]|0))c=19;else var pa=K,c=22;break;case 19:c=V?20:51;break;case 20:var za=v|0,ca=b[e>>2],
+va=Math.imul(O,J);gj(za,ca,va,7680);var Za=a[A>>2];1<(Za|0)?c=21:(pa=Za,c=22);break;case 21:var Ea=a[l>>2],Fa=1,c=24;break;case 22:var M=0<(pa|0),c=M?23:51;break;case 23:var Mb=a[Q>>2],Aa=0<(Mb|0),wa=0,Ga=0,c=25;break;case 24:var Qa=v+(Fa<<3)|0,Wb=b[(e+(Fa<<2)|0)>>2],uc=Math.imul(a[Q>>2],Ea);gj(Qa,Wb,uc,7680);var Ma=Fa+1|0,n=a[A>>2];(Ma|0)<(n|0)?(Fa=Ma,c=24):(pa=n,c=22);break;case 25:if(Aa)var qa=0,Sa=wa,c=26;else var Ca=wa,c=29;break;case 26:var Va=v+(Ga<<3)+(qa<<2)|0,Ha=a[Va>>2];if(4095<(Ha|0))c=
+27;else var Ta=Ha,c=28;break;case 27:Ta=a[Va>>2]=4095;c=28;break;case 28:var Ua=Ta+Sa|0,Nb=qa+1|0;(Nb|0)<(Mb|0)?(qa=Nb,Sa=Ua,c=26):(Ca=Ua,c=29);break;case 29:var gb=Ga+1|0;(gb|0)<(pa|0)?(wa=Ca,Ga=gb,c=25):c=30;break;case 30:if((Ca|0)>(t|0)&0<(Ca|0))var Na=0,c=31;else c=34;break;case 31:if(Aa)var $a=0,c=32;else c=33;break;case 32:var Gb=v+(Na<<3)+($a<<2)|0,Ja=(Math.imul(a[Gb>>2],t)|0)/(Ca|0)&-1;a[Gb>>2]=Ja;var lb=$a+1|0;(lb|0)<(Mb|0)?($a=lb,c=32):c=33;break;case 33:var Ra=Na+1|0;(Ra|0)<(pa|0)?(Na=
+Ra,c=31):c=34;break;case 34:c=M?35:51;break;case 35:var sb=k+84912|0,ob=k+84916|0,hb=k+84908|0,mb=p|0,Oa=k+85824|0,nb=I|0,xb=k+36|0,Ya=0,c=36;break;case 36:if(2==(a[ka>>2]|0))var Ia=0,c=37;else c=38;break;case 37:var tb=k+304+(10504*Ya&-1)+(Ia<<2)|0,Ka=b[tb>>2],ab=k+304+(10504*Ya&-1)+5252+(Ia<<2)|0,ga=b[ab>>2];b[tb>>2]=0.7071067690849304*(Ka+ga);b[ab>>2]=0.7071067690849304*(Ka-ga);var xa=Ia+1|0;576>(xa|0)?(Ia=xa,c=37):c=38;break;case 38:if(0<(a[Q>>2]|0))var La=0,c=39;else c=50;break;case 39:var yb=
+k+304+(10504*Ya&-1)+(5252*La&-1)|0,pb=Math.pow(10,0.1*b[(2==(a[(k+304+(10504*Ya&-1)+(5252*La&-1)+4788|0)>>2]|0)?ob:sb)>>2]);b[hb>>2]=pb;um(k,yb);b[h>>2]=0;var r=a[(k+304+(10504*Ya&-1)+(5252*La&-1)+5208|0)>>2];b[(k+304+(10504*Ya&-1)+(5252*La&-1)+4764|0)>>2]=0;ra(p+(r<<2)|0,0,(576-r|0)<<2);ib[a[Oa>>2]](yb,mb,r,h);c=9.999999682655225E-21>2]?40:42;break;case 40:var Hb=a[C>>2]>>>1&1,Bb=k+304+(10504*Ya&-1)+(5252*La&-1)+4864|0;if(0<(a[Bb>>2]|0))var Ib=0,c=41;else c=43;break;case 41:a[(k+84936+(Ib<<
+2)|0)>>2]=Hb;var Fb=Ib+1|0;(Fb|0)<(a[Bb>>2]|0)?(Ib=Fb,c=41):c=43;break;case 42:ra(k+304+(10504*Ya&-1)+(5252*La&-1)+2304|0,0,2304);c=47;break;case 43:var bb=0==(dm(k,f+(976*Ya&-1)+(488*La&-1)|0,yb,nb)|0),qb=v+(Ya<<3)+(La<<2)|0,c=bb?45:44;break;case 44:var cb=a[qb>>2],c=46;break;case 45:cb=a[qb>>2]=P;c=46;break;case 46:vm(k,yb,nb,mb,La,cb);c=47;break;case 47:Nj(k,Ya,La,z);c=1==(a[xb>>2]|0)?48:49;break;case 48:Mj(k,yb);c=49;break;case 49:Lj(k,yb);var ya=La+1|0;(ya|0)<(a[Q>>2]|0)?(La=ya,c=39):c=50;break;
+case 50:var X=Ya+1|0;(X|0)<(a[A>>2]|0)?(Ya=X,c=36):c=51;break;case 51:var Jb=a[(k+112|0)>>2];a[u>>2]=Jb;c=(Jb|0)>(a[w>>2]|0)?54:52;break;case 52:c=-1<(ye(k,E)|0)?54:53;break;case 53:var db=a[u>>2]+1|0;a[u>>2]=db;c=(db|0)>(a[w>>2]|0)?54:52;break;case 54:el(k,a[E>>2]);m=g;return}},0,function(k,d,e,f,c){var g=0,h=m;m=m+2048|0;for(g=1;;)switch(g){case 1:var l=h;ra(l,0,2048);var I=-1,p=64,v=0,E=0,z=-128,g=2;break;case 2:var A=z&255,g=(z&255)>(c&255)?4:3;break;case 3:var D=(p+A|0)&255,w=v,u=I,g=20;break;
+case 4:var t=l+(A<<3)|0,g=0==(a[t>>2]|0)?6:5;break;case 5:var s=b[(l+(A<<3)+4|0)>>2],g=7;break;case 6:a[t>>2]=1;s=hj(k,d,f,z);b[(l+(A<<3)+4|0)>>2]=s;g=7;break;case 7:g=s>e?18:8;break;case 8:g=-1==z<<24>>24?14:9;break;case 9:var G=z+1&255,H=G&255,K=l+(H<<3)|0,g=0==(a[K>>2]|0)?11:10;break;case 10:var Q=b[(l+(H<<3)+4|0)>>2],g=12;break;case 11:a[K>>2]=1;Q=hj(k,d,f,G);b[(l+(H<<3)+4|0)>>2]=Q;g=12;break;case 12:g=Q>e?18:13;break;case 13:g=0==z<<24>>24?19:14;break;case 14:var J=z-1&255,F=J&255,P=l+(F<<3)|
+0,g=0==(a[P>>2]|0)?16:15;break;case 15:var da=b[(l+(F<<3)+4|0)>>2],g=17;break;case 16:a[P>>2]=1;da=hj(k,d,f,J);b[(l+(F<<3)+4|0)>>2]=da;g=17;break;case 17:g=da>e?18:19;break;case 18:D=(A-p|0)&255;w=v;u=I;g=20;break;case 19:D=(p+A|0)&255;w=1;u=z;g=20;break;case 20:var g=E+1&255,C=p>>1;8>(g&255)?(I=u,p=C,v=w,E=g,z=D,g=2):g=21;break;case 21:return k=0==w<<24>>24?D:u,c=(k&255)>(c&255)?k:c,m=h,c}},0,function(b,d,e,f){for(var c=0,c=1;;)switch(c){case 1:var g=e-1|0,h=a[(84648+(g<<2)|0)>>2],l=a[(84712+(h<<
+4)|0)>>2],g=1==(g|0)?6800:6736,m=b,p=0,c=2;break;case 2:var c=m+8|0,v=a[(m+4|0)>>2],v=Math.imul(a[m>>2],l)+v|0,v=a[(g+(v<<2)|0)>>2]+p|0;c>>>0>>0?(m=c,p=v,c=2):c=3;break;case 3:return b=v&65535,d=v>>>16,e=d>>>0>b>>>0,h=(e&1)+h|0,a[f>>2]=a[f>>2]+(e?b:d)|0,h}},0,function(b,d,e,f){for(var c=0,c=1;;)switch(c){case 1:var g=a[(84648+((e-1|0)<<2)|0)>>2],h=a[(84712+(g<<4)|0)>>2],m=a[(84724+(g<<4)|0)>>2],I=g+1|0,p=a[(84724+(I<<4)|0)>>2],v=g+2|0,E=a[(84724+(v<<4)|0)>>2],z=b,A=0,D=0,w=0,c=2;break;case 2:var c=
+z+8|0,u=a[(z+4|0)>>2],u=Math.imul(a[z>>2],h)+u|0,t=(l[m+u|0]&255)+A|0,s=(l[p+u|0]&255)+D|0,u=(l[E+u|0]&255)+w|0;c>>>0>>0?(z=c,A=t,D=s,w=u,c=2):c=3;break;case 3:return g=(b=t>>>0>s>>>0)?I:g,I=b?s:t,v=(t=I>>>0>u>>>0)?v:g,a[f>>2]=a[f>>2]+(t?u:I)|0,v}},0,In,0,function(a){fl(a)},0,function(k,d,e,f){var c=0,g=m;m=m+10616|0;for(c=1;;)switch(c){case 1:var h=g,l=g+5256,I=g+7560,p=g+7568,v=g+7576,E=g+7584,z=g+8208,A=g+10512,D=g+10576,w=g+10592,u=g+10608,t=k+116|0,s=k+84744|0;a[s>>2]=a[t>>2];var G=ye(k,v),
+H=k+76|0;a[v>>2]=(G|0)/(a[H>>2]|0)&-1;var K=k+112|0;a[s>>2]=1;var Q=Pj(k);a[p>>2]=Q;if(1>(a[t>>2]|0))c=3;else var J=1,c=2;break;case 2:a[s>>2]=J;var F=ye(k,p);a[(A+(J<<2)|0)>>2]=F;var P=J+1|0;(P|0)>(a[t>>2]|0)?c=3:(J=P,c=2);break;case 3:var da=a[H>>2],c=0<(da|0)?5:4;break;case 4:var C=1,ba=da,L=k+72|0,c=31;break;case 5:var O=k+84756|0,B=k+72|0,S=k+84916|0,V=k+84908|0,R=k+84912|0,N=a[v>>2],W=0,T=1,U=0,c=17;break;case 6:0<(Ta|0)?c=7:(C=Aa,ba=Ta,L=B,c=31);break;case 7:if(0<(wa|0))c=8;else var $=0,ja=
+Ga,c=26;break;case 8:var fa=0<(Ga|0),ua=0,c=9;break;case 9:c=fa?10:11;break;case 10:var oa=a[(A+(a[t>>2]<<2)|0)>>2],aa=(wa|0)>(oa|0),ma=0,c=12;break;case 11:var ia=ua+1|0;(ia|0)<(Ta|0)?(ua=ia,c=9):(C=Aa,ba=Ta,L=B,c=31);break;case 12:var ea=w+(ua<<3)+(ma<<2)|0,Xa=a[ea>>2];if(aa)c=13;else var Y=Xa,c=14;break;case 13:var Za=(Math.imul(Xa,oa)|0)/(wa|0)&-1,Y=a[ea>>2]=Za,c=14;break;case 14:var ta=D+(ua<<3)+(ma<<2)|0,c=(a[ta>>2]|0)>(Y|0)?15:16;break;case 15:a[ta>>2]=Y;c=16;break;case 16:var na=ma+1|0;(na|
+0)<(Ga|0)?(ma=na,c=12):c=11;break;case 17:var Z=w+(W<<3)|0,Da=dl(k,d,Z,N,W,0);if(2==(a[O>>2]|0))var ka=0,c=18;else c=20;break;case 18:var pa=k+304+(10504*W&-1)+(ka<<2)|0,za=b[pa>>2],ca=k+304+(10504*W&-1)+5252+(ka<<2)|0,va=b[ca>>2];b[pa>>2]=0.7071067690849304*(za+va);b[ca>>2]=0.7071067690849304*(za-va);var Mb=ka+1|0;576>(Mb|0)?(ka=Mb,c=18):c=19;break;case 19:gj(Z,b[(e+(W<<2)|0)>>2],N,Da);c=20;break;case 20:var Ea=a[B>>2];if(0<(Ea|0))var Fa=0,M=T,Wb=U,c=21;else var Aa=T,wa=U,Ga=Ea,c=25;break;case 21:var Qa=
+k+304+(10504*W&-1)+(5252*Fa&-1)|0,ec=2==(a[(k+304+(10504*W&-1)+(5252*Fa&-1)+4788|0)>>2]|0),uc=Math.exp(3.5-b[(d+(W<<3)+(Fa<<2)|0)>>2]/300)+1,c=ec?23:22;break;case 22:var Ma=b[R>>2]-(1.28/uc-0.05),c=24;break;case 23:Ma=b[S>>2]-(2.56/uc-0.14);c=24;break;case 24:var n=Math.pow(10,0.1*Ma);b[V>>2]=n;um(k,Qa);var qa=0==(dm(k,f+(976*W&-1)+(488*Fa&-1)|0,Qa,E+(312*W&-1)+(156*Fa&-1)|0)|0)?M:0;a[(D+(W<<3)+(Fa<<2)|0)>>2]=126;var Sa=a[(w+(W<<3)+(Fa<<2)|0)>>2]+Wb|0,Ca=Fa+1|0,Va=a[B>>2];(Ca|0)<(Va|0)?(Fa=Ca,M=qa,
+Wb=Sa,c=21):(Aa=qa,wa=Sa,Ga=Va,c=25);break;case 25:var Ha=W+1|0,Ta=a[H>>2];(Ha|0)<(Ta|0)?(W=Ha,T=Aa,U=wa,c=17):c=6;break;case 26:if(0<(ja|0))var Ua=0,Nb=ja,c=27;else var gb=ja,c=30;break;case 27:var Na=D+($<<3)+(Ua<<2)|0,$a=a[(w+($<<3)+(Ua<<2)|0)>>2];if((a[Na>>2]|0)>($a|0))c=28;else var Gb=Nb,c=29;break;case 28:a[Na>>2]=$a;Gb=Ga;c=29;break;case 29:var Ja=Ua+1|0;(Ja|0)<(Gb|0)?(Ua=Ja,Nb=Gb,c=27):(gb=Gb,c=30);break;case 30:var lb=$+1|0;(lb|0)<(Ta|0)?($=lb,ja=gb,c=26):(C=Aa,ba=Ta,L=B,c=31);break;case 31:var Ra=
+0==(C|0),sb=k+124|0,ob=z|0,hb=k+85824|0,mb=k+85096|0,Oa=h,nb=l,xb=k+85092|0,Ya=h+2304|0,Ia=z,tb=0,Ka=0,ab=ba,c=32;break;case 32:c=(Ka|0)<(ab|0)?33:53;break;case 33:if(0<(a[L>>2]|0))var ga=0,xa=tb,c=34;else var La=tb,yb=ab,c=52;break;case 34:var pb=k+304+(10504*Ka&-1)+(5252*ga&-1)|0;b[I>>2]=0;var r=a[(k+304+(10504*Ka&-1)+(5252*ga&-1)+5208|0)>>2];b[(k+304+(10504*Ka&-1)+(5252*ga&-1)+4764|0)>>2]=0;ra(z+(r<<2)|0,0,(576-r|0)<<2);ib[a[hb>>2]](pb,ob,r,I);c=9.999999682655225E-21>2]?35:37;break;case 35:var Hb=
+a[mb>>2]>>>1&1,Bb=k+304+(10504*Ka&-1)+(5252*ga&-1)+4864|0;if(0<(a[Bb>>2]|0))var Ib=0,c=36;else c=38;break;case 36:a[(k+84936+(Ib<<2)|0)>>2]=Hb;var Fb=Ib+1|0;(Fb|0)<(a[Bb>>2]|0)?(Ib=Fb,c=36):c=38;break;case 37:ra(k+304+(10504*Ka&-1)+(5252*ga&-1)+2304|0,0,2304);var bb=xa,c=50;break;case 38:var qb=a[(w+(Ka<<3)+(ga<<2)|0)>>2];0==(qb|0)?(bb=xa,c=50):c=39;break;case 39:var cb=E+(312*Ka&-1)+(156*ga&-1)|0,ya=a[(D+(Ka<<3)+(ga<<2)|0)>>2],X=(ya+qb|0)/2&-1,Jb=a[xb>>2];ra(Ya,0,2304);var db=qb-42|0,jb=k+304+(10504*
+Ka&-1)+(5252*ga&-1)+4768|0,ac=pb,bc=ya,Oc=0,lc=qb,vc=X,c=40;break;case 40:a[xb>>2]=(vc|0)>(db|0)?0:Jb;c=1>(vm(k,pb,cb,ob,ga,vc)|0)?41:42;break;case 41:var Kc=a[jb>>2];ha(Oa,ac,5252);ha(nb,Ia,2304);var wc=Kc-32|0,Tb=bc,Ub=1,ub=wc,fc=wc-bc|0,vb=(wc+bc|0)/2&-1,c=44;break;case 42:var xc=vc+32|0,Qb=lc-xc|0,eb=(lc+xc|0)/2&-1;0==(Oc|0)?(Tb=xc,Ub=0,ub=lc,fc=Qb,vb=eb,c=44):c=43;break;case 43:ha(ac,Oa,5252);ha(Ia,nb,2304);Tb=xc;Ub=2;ub=lc;fc=Qb;vb=eb;c=44;break;case 44:12<(fc|0)?(bc=Tb,Oc=Ub,lc=ub,vc=vb,c=
+40):c=45;break;case 45:a[xb>>2]=Jb;c=2==(Ub|0)?46:47;break;case 46:ha(k+304+(10504*Ka&-1)+(5252*ga&-1)+2304|0,Ya,2304);c=47;break;case 47:c=0==(a[mb>>2]&1|0)?49:48;break;case 48:sm(k,pb,cb,ob);c=49;break;case 49:bb=(a[jb>>2]+xa|0)+a[(k+304+(10504*Ka&-1)+(5252*ga&-1)+4844|0)>>2]|0;c=50;break;case 50:var Kb=ga+1|0;(Kb|0)<(a[L>>2]|0)?(ga=Kb,xa=bb,c=34):c=51;break;case 51:var mc=a[H>>2],La=bb,yb=mc,c=52;break;case 52:var gc=Ka+1|0,tb=La,Ka=gc,ab=yb,c=32;break;case 53:c=Ra?55:54;break;case 54:if(0==(a[sb>>
+2]|0))var ld=1,c=56;else c=55;break;case 55:ld=a[K>>2];c=56;break;case 56:a[s>>2]=ld;var Zb=a[t>>2];if((ld|0)<(Zb|0))var nc=ld,c=57;else c=59;break;case 57:c=(tb|0)>(a[(A+(nc<<2)|0)>>2]|0)?58:59;break;case 58:var yc=nc+1|0;a[s>>2]=yc;(yc|0)<(Zb|0)?(nc=yc,c=57):c=59;break;case 59:var rc=ye(k,u),Pc=a[H>>2],cc=0<(Pc|0),c=(tb|0)>(rc|0)?62:60;break;case 60:c=cc?61:79;break;case 61:var Tc=k+304|0,ic=k+36|0,Wc=0,Gc=a[L>>2],Hc=Pc,c=73;break;case 62:cc?c=63:(Ka=tb=0,ab=Pc,c=32);break;case 63:var Lc=0,Uc=a[L>>
+2],zc=Pc,c=64;break;case 64:if(0<(Uc|0))var zb=0,c=65;else var Cb=Uc,Vb=zc,c=72;break;case 65:var $b=E+(312*Lc&-1)+(156*zb&-1)|0,Rb=k+304+(10504*Lc&-1)+(5252*zb&-1)+4856|0;if(0<(a[Rb>>2]|0))var Xb=0,sc=$b,c=66;else var Qc=$b,c=67;break;case 66:var Rc=Xb|0,Zc=sc+4|0;b[sc>>2]*=0.029*Rc*Rc/22/22+1;var Td=Xb+1|0;(Td|0)<(a[Rb>>2]|0)?(Xb=Td,sc=Zc,c=66):(Qc=Zc,c=67);break;case 67:c=2==(a[(k+304+(10504*Lc&-1)+(5252*zb&-1)+4788|0)>>2]|0)?68:70;break;case 68:var Ac=a[(k+304+(10504*Lc&-1)+(5252*zb&-1)+4852|
+0)>>2];if(13>(Ac|0))var Mc=Ac,Bc=Qc,c=69;else c=70;break;case 69:var Cc=Mc|0,dd=0.029*Cc*Cc/13/13+1,Yb=Bc+4|0;b[Bc>>2]*=dd;var Sc=Bc+8|0;b[Yb>>2]*=dd;var Dc=Bc+12|0;b[Sc>>2]*=dd;var Ec=Mc+1|0;13>(Ec|0)?(Mc=Ec,Bc=Dc,c=69):c=70;break;case 70:var oc=a[(D+(Lc<<3)+(zb<<2)|0)>>2]|0,$c=w+(Lc<<3)+(zb<<2)|0,ad=0.9*(a[$c>>2]|0);a[$c>>2]=(oc>ad?oc:ad)&-1;var Ud=zb+1|0,kd=a[L>>2];(Ud|0)<(kd|0)?(zb=Ud,c=65):c=71;break;case 71:var Ic=a[H>>2],Cb=kd,Vb=Ic,c=72;break;case 72:var xd=Lc+1|0;(xd|0)<(Vb|0)?(Lc=xd,Uc=
+Cb,zc=Vb,c=64):(Ka=tb=0,ab=Vb,c=32);break;case 73:if(0<(Gc|0))var qd=0,c=74;else var Dd=Gc,rd=Hc,c=78;break;case 74:var sd=k+304+(10504*Wc&-1)+(5252*qd&-1)|0;Nj(k,Wc,qd,Tc);c=1==(a[ic>>2]|0)?75:76;break;case 75:Mj(k,sd);c=76;break;case 76:Lj(k,sd);var md=qd+1|0,gd=a[L>>2];(md|0)<(gd|0)?(qd=md,c=74):c=77;break;case 77:var pd=a[H>>2],Dd=gd,rd=pd,c=78;break;case 78:var Ed=Wc+1|0;(Ed|0)<(rd|0)?(Wc=Ed,Gc=Dd,Hc=rd,c=73):c=79;break;case 79:el(k,a[u>>2]);m=g;return}},0,function(b,d,e){var f=m;m=m+16|0;a[f>>
+2]=e;a[f+4>>2]=0;Jn(b,d,f|0)},0,function(a,d){for(var e=0,e=1;;)switch(e){case 1:var f=b[a>>2],c=b[d>>2];if(f>c)var g=1,e=3;else e=2;break;case 2:g=(f>31;e=3;break;case 3:return g}},0,function(k,d,e,f){var c=0,g=m;m=m+9952|0;for(c=1;;)switch(c){case 1:var h=g,y=g+8,I=g+16,p=g+24,v=g+648,E=g+9864,z=g+9928,A=g+9944,D=p|0,w=v|0,u=z|0;ra(v,0,9216);var t=k+152|0,c=0==(a[t>>2]|0)?2:5;break;case 2:var s=k+116|0,G=k+84744|0;a[G>>2]=a[s>>2];ye(k,I);var H=a[(k+52144|0)>>2];a[G>>2]=1;var K=Pj(k);a[y>>
+2]=K;var Q=a[s>>2];if(1>(Q|0))var J=Q,c=4;else var F=1,c=3;break;case 3:a[G>>2]=F;var P=ye(k,y);a[(E+(F<<2)|0)>>2]=P;var da=F+1|0,C=a[s>>2];(da|0)>(C|0)?(J=C,c=4):(F=da,c=3);break;case 4:var ba=a[(E+(J<<2)|0)>>2],L=H,c=6;break;case 5:var O=E|0;a[(k+84744|0)>>2]=0;var B=ye(k,I);a[O>>2]=B;var R=a[(k+52144|0)>>2],ba=B,L=R,c=6;break;case 6:var V=k+76|0,N=a[V>>2];if(0<(N|0))c=7;else var T=1,W=N,c=21;break;case 7:var U=k+84756|0,$=k+72|0,ua=k+84912|0,ja=k+84908|0,fa=a[I>>2],oa=1,Xa=0,aa=0,c=10;break;case 8:c=
+0<(Qa|0)?9:20;break;case 9:var ma=(va|0)>(ba|0)&0<(va|0),ia=0,ea=Wb,c=15;break;case 10:dl(k,d,z+(aa<<3)|0,fa,aa,0);if(2==(a[U>>2]|0))var Za=0,c=11;else c=12;break;case 11:var Y=k+304+(10504*aa&-1)+(Za<<2)|0,Mb=b[Y>>2],ta=k+304+(10504*aa&-1)+5252+(Za<<2)|0,na=b[ta>>2];b[Y>>2]=0.7071067690849304*(Mb+na);b[ta>>2]=0.7071067690849304*(Mb-na);var Z=Za+1|0;576>(Z|0)?(Za=Z,c=11):c=12;break;case 12:var Da=a[$>>2];if(0<(Da|0))var ka=0,pa=oa,za=Xa,c=13;else var ca=oa,va=Xa,Wb=Da,c=14;break;case 13:var Ea=k+
+304+(10504*aa&-1)+(5252*ka&-1)|0,Fa=Math.pow(10,0.1*b[ua>>2]);b[ja>>2]=Fa;um(k,Ea);var M=0==(dm(k,f+(976*aa&-1)+(488*ka&-1)|0,Ea,p+(312*aa&-1)+(156*ka&-1)|0)|0)?pa:0,ac=a[(z+(aa<<3)+(ka<<2)|0)>>2]+za|0,Aa=ka+1|0,wa=a[$>>2];(Aa|0)<(wa|0)?(ka=Aa,pa=M,za=ac,c=13):(ca=M,va=ac,Wb=wa,c=14);break;case 14:var Ga=aa+1|0,Qa=a[V>>2];(Ga|0)<(Qa|0)?(oa=ca,Xa=va,aa=Ga,c=10):c=8;break;case 15:if(0<(ea|0))var ec=0,uc=ea,c=16;else var Ma=ea,c=19;break;case 16:if(ma)c=17;else var n=uc,c=18;break;case 17:var qa=z+(ia<<
+3)+(ec<<2)|0,Sa=(Math.imul(a[qa>>2],ba)|0)/(va|0)&-1;a[qa>>2]=Sa;n=Wb;c=18;break;case 18:var Ca=ec+1|0;(Ca|0)<(n|0)?(ec=Ca,uc=n,c=16):(Ma=n,c=19);break;case 19:var Va=ia+1|0;(Va|0)<(Qa|0)?(ia=Va,ea=Ma,c=15):c=20;break;case 20:if(0==(ca|0))var Ha=0,Ta=L,Ua=Qa,c=22;else T=ca,W=Qa,c=21;break;case 21:Ha=T;Ta=0;Ua=W;c=22;break;case 22:c=0<(Ua|0)?23:32;break;case 23:var Nb=k+72|0,gb=k+85824|0,Na=k+85096|0,$a=0,Gb=a[Nb>>2],Ja=Ua,c=24;break;case 24:if(0<(Gb|0))var lb=0,c=25;else var Ra=Gb,sb=Ja,c=31;break;
+case 25:var ob=k+304+(10504*$a&-1)+(5252*lb&-1)|0,hb=v+(4608*$a&-1)+(2304*lb&-1)|0;b[h>>2]=0;var mb=a[(k+304+(10504*$a&-1)+(5252*lb&-1)+5208|0)>>2];b[(k+304+(10504*$a&-1)+(5252*lb&-1)+4764|0)>>2]=0;ra(v+(4608*$a&-1)+(2304*lb&-1)+(mb<<2)|0,0,(576-mb|0)<<2);ib[a[gb>>2]](ob,hb,mb,h);c=9.999999682655225E-21>2]?26:28;break;case 26:var Oa=a[Na>>2]>>>1&1,nb=k+304+(10504*$a&-1)+(5252*lb&-1)+4864|0;if(0<(a[nb>>2]|0))var xb=0,c=27;else c=29;break;case 27:a[(k+84936+(xb<<2)|0)>>2]=Oa;var Ya=xb+1|0;(Ya|
+0)<(a[nb>>2]|0)?(xb=Ya,c=27):c=29;break;case 28:ra(k+304+(10504*$a&-1)+(5252*lb&-1)+2304|0,0,2304);a[(z+($a<<3)+(lb<<2)|0)>>2]=0;c=29;break;case 29:var Ia=lb+1|0,tb=a[Nb>>2];(Ia|0)<(tb|0)?(lb=Ia,c=25):c=30;break;case 30:var Ka=a[V>>2],Ra=tb,sb=Ka,c=31;break;case 31:var ab=$a+1|0;(ab|0)<(sb|0)?($a=ab,Gb=Ra,Ja=sb,c=24):c=32;break;case 32:var ga;a:{var xa=k,La=w,yb=D,pb=u,r=0,Hb=m;m=m+320|0;for(r=1;;)switch(r){case 1:var Bb=Hb,Ib=Hb+160,Fb=Ib,bb=m,qb=m=m+624|0,cb=m=m+624|0,ya=m=m+144|0,X=m=m+16|0;m=
+m+8|0;var Jb=X,db=m,jb=m=m+16|0;m=m+8|0;var bc=jb,Kc=m;m=m+8|0;var Tc=Kc,lc=m;m=m+8|0;var vc=lc,Uc=m;m=m+8|0;var wc=Uc,Tb=a[(xa+76|0)>>2],Ub=a[(xa+72|0)>>2],ub=ya;a[ub>>2]=0;a[ub+4>>2]=0;a[ub+8>>2]=0;a[ub+12>>2]=0;a[(X|0)>>2]=0;a[(X+4|0)>>2]=0;var fc=db;a[fc>>2]=a[36578];a[fc+4>>2]=a[36579];a[fc+8>>2]=a[36580];a[fc+12>>2]=a[36581];a[(jb|0)>>2]=7681;a[(jb+4|0)>>2]=7681;var vb=0<(Tb|0);if(vb)r=2;else var xc=0,r=222;break;case 2:var Qb=0<(Ub|0),eb=xa+48|0,Kb=Ub<<2,mc=Ub<<2,gc=0,ld=0,r=4;break;case 3:if(vb)var Zb=
+0,r=9;else var nc=0,r=53;break;case 4:var yc=Jb+(gc<<2)|0;a[yc>>2]=0;if(Qb)r=5;else var rc=ld,r=8;break;case 5:var Pc=pb+(gc<<3)|0,cc=ya+(gc<<3)|0;ra(db+(gc<<3)|0,0,Kb);var xd=0>(a[eb>>2]|0)?46:6;ha(cc,Pc,mc);var ic=0,Wc=ld,Gc=0,r=6;break;case 6:var Hc=a[(pb+(gc<<3)+(ic<<2)|0)>>2],Lc=Hc+Gc|0,gd=Hc+Wc|0;a[(cb+(72*gc&-1)+(36*ic&-1)+4|0)>>2]=xd;a[(cb+(72*gc&-1)+(36*ic&-1)+12|0)>>2]=xa;a[(cb+(72*gc&-1)+(36*ic&-1)+16|0)>>2]=xa+304+(10504*gc&-1)+(5252*ic&-1)|0;a[(cb+(72*gc&-1)+(36*ic&-1)+8|0)>>2]=La+(4608*
+gc&-1)+(2304*ic&-1)|0;a[(cb+(72*gc&-1)+(36*ic&-1)|0)>>2]=2==(a[(xa+304+(10504*gc&-1)+(5252*ic&-1)+4788|0)>>2]|0)?40:26;var zc=ic+1|0;(zc|0)<(Ub|0)?(ic=zc,Wc=gd,Gc=Lc,r=6):r=7;break;case 7:a[yc>>2]=Lc;rc=gd;r=8;break;case 8:var zb=gc+1|0;(zb|0)<(Tb|0)?(gc=zb,ld=rc,r=4):r=3;break;case 9:if(Qb)var Cb=0,r=12;else r=44;break;case 10:vb?r=11:(nc=0,r=53);break;case 11:var Vb=xa+304|0,$b=xa+36|0,Rb=0,Xb=0,r=45;break;case 12:var sc=qb+(312*Zb&-1)+(156*Cb&-1)|0,r=0<(a[(pb+(Zb<<3)+(Cb<<2)|0)>>2]|0)?13:43;break;
+case 13:var Qc=cb+(72*Zb&-1)+(36*Cb&-1)+16|0,Rc=a[Qc>>2],Zc=a[(cb+(72*Zb&-1)+(36*Cb&-1)+8|0)>>2],Td=a[(Rc+5208|0)>>2],Ac=a[(Rc+4864|0)>>2],Mc=cb+(72*Zb&-1)+(36*Cb&-1)+20|0,Bc=cb+(72*Zb&-1)+(36*Cb&-1)+4|0,Cc=Mc;a[Cc>>2]=0;a[Cc+4>>2]=0;a[Cc+8>>2]=0;var dd=a[Cc+12>>2]=0,Yb=0,Sc=-1,Dc=0,Ec=0,r=16;break;case 14:var oc=bb+(312*Zb&-1)+(156*Cb&-1)|0,$c=cb+(72*Zb&-1)+(36*Cb&-1)|0,r=39>(td|0)?15:36;break;case 15:var ad=ae&255;ra(qb+(312*Zb&-1)+(156*Cb&-1)+(td<<2)|0,0,156-(td<<2)|0);var Ud=td,r=35;break;case 16:var pd=
+a[(Rc+4872+(Dc<<2)|0)>>2],Ic=(Td-Yb|0)+1|0,li=pd>>>0>Ic>>>0?Ic:pd,qd=Zc+(Yb<<2)|0,Dd=li>>>2,rd=li&3;if(0==(Dd|0))var sd=0,md=qd,r=19;else var Ld=0,Oe=Dd,Ed=qd,r=17;break;case 17:var ze=Oe-1|0,Vd=b[Ed>>2],zg=Ld>2],Wd=zg>2],Ae=Wd>2],Yd=Ae>2];sd>2];me>2];Zd<$d?r=25:(yd=Zd,r=26);break;case 25:yd=$d;r=26;break;case 26:var fe=8206>2],oe=(Se?32:-32)+ge&255,ff=Se?ne:ge,Be=8206>2],Te=(Be?16:-16)+oe&255,gf=Be?ff:
+oe,he=8206>2],Ce=(he?8:-8)+Te&255,Ue=he?gf:Te,ie=8206>2],pe=(ie?4:-4)+Ce&255,hf=ie?Ue:Ce,Xf=8206>2],Ve=(Xf?2:-2)+pe&255,yf=Xf?hf:pe,We=8206>2],zd=(We?1:-1)+Ve&255,jf=We?yf:Ve,De=8206>2]?jf:zd,Nc=De&255;a[(qb+(312*Zb&-1)+(156*Cb&-1)+(Dc<<2)|0)>>2]=Nc;r=(a[Mc>>2]|0)<(Nc|0)?27:28;break;case 27:a[Mc>>2]=Nc;r=28;break;case 28:var zf=cb+(72*Zb&-1)+(36*Cb&
+-1)+24+(dd<<2)|0,r=(a[zf>>2]|0)<(Nc|0)?29:30;break;case 29:a[zf>>2]=Nc;r=30;break;case 30:var Af=dd+1|0,Bf=2>>0?0:Af,r=(Dc|0)<(Ac|0)&2>>0?31:33;break;case 31:if(0==l[Dc+(Rc+5212)|0]<<24>>24)var Xe=-1,ae=-1,Id=Sc,r=34;else r=32;break;case 32:var kf=ib[a[Bc>>2]](Rc+(Yb<<2)|0,qd,b[(yb+(312*Zb&-1)+(156*Cb&-1)+(Dc<<2)|0)>>2],li,De),jc=kf&255,fb=(Ec&255)<(kf&255)?kf:Ec,lf=(Sc|0)>=(jc|0)|-1==kf<<24>>24?Sc:jc,Xe=kf,ae=fb,Id=lf,r=34;break;case 33:var mf=(Ec&255)<(De&255)?De:Ec,ae=Xe=mf,Id=Sc,r=34;
+break;case 34:a[(bb+(312*Zb&-1)+(156*Cb&-1)+(Dc<<2)|0)>>2]=Xe&255;var td=Dc+1|0,dc=pd+Yb|0;dc>>>0>Td>>>0?r=14:(dd=Bf,Yb=dc,Sc=Id,Dc=td,Ec=ae,r=16);break;case 35:a[(bb+(312*Zb&-1)+(156*Cb&-1)+(Ud<<2)|0)>>2]=ad;var Ye=Ud+1|0;39>(Ye|0)?(Ud=Ye,r=35):r=36;break;case 36:if(-1<(Id|0))var Zf=0,r=37;else var Yf=ae,r=41;break;case 37:var Ee=bb+(312*Zb&-1)+(156*Cb&-1)+(Zf<<2)|0,r=255==(a[Ee>>2]|0)?38:39;break;case 38:a[Ee>>2]=Id;r=39;break;case 39:var nf=Zf+1|0;39>(nf|0)?(Zf=nf,r=37):r=40;break;case 40:Yf=Id&
+255;r=41;break;case 41:ib[a[($c|0)>>2]]($c,oc,sc,Yf&255);var $f=cb+(72*Zb&-1)+(36*Cb&-1)+12|0,r=0==(de(a[$f>>2],a[Qc>>2])|0)?43:42;break;case 42:Oc(a[$f>>2],144600,(S=m,m=m+1|0,m=m+7>>3<<3,a[S>>2]=0,S)),kd(-1);case 43:var Fe=Cb+1|0;(Fe|0)<(Ub|0)?(Cb=Fe,r=12):r=44;break;case 44:var Cf=Zb+1|0;(Cf|0)<(Tb|0)?(Zb=Cf,r=9):r=10;break;case 45:var Ze=bc+(Rb<<2)|0;a[Ze>>2]=0;if(Qb)var je=0,xf=0,r=46;else var Ge=0,r=52;break;case 46:r=0<(a[(pb+(Rb<<3)+(je<<2)|0)>>2]|0)?47:48;break;case 47:var Qe=cb+(72*Rb&-1)+
+(36*je&-1)|0;ra(a[(cb+(72*Rb&-1)+(36*je&-1)+16|0)>>2]+2304|0,0,2304);Dh(Qe);r=48;break;case 48:Nj(xa,Rb,je,Vb);r=1==(a[$b>>2]|0)?49:50;break;case 49:Mj(xa,xa+304+(10504*Rb&-1)+(5252*je&-1)|0);r=50;break;case 50:var Dg=a[(xa+304+(10504*Rb&-1)+(5252*je&-1)+4844|0)>>2]+a[(xa+304+(10504*Rb&-1)+(5252*je&-1)+4768|0)>>2]|0;a[(db+(Rb<<3)+(je<<2)|0)>>2]=Dg;var Uf=Dg+xf|0,Yg=je+1|0;(Yg|0)<(Ub|0)?(je=Yg,xf=Uf,r=46):r=51;break;case 51:Ge=a[Ze>>2]=Uf;r=52;break;case 52:var Eg=Ge+Xb|0,Fg=Rb+1|0;(Fg|0)<(Tb|0)?(Rb=
+Fg,Xb=Eg,r=45):(nc=Eg,r=53);break;case 53:r=(nc|0)>(rc|0)?59:54;break;case 54:if(vb)var pc=1,be=0,r=55;else xc=nc,r=222;break;case 55:var qe=7680<(a[(bc+(be<<2)|0)>>2]|0)?0:pc;if(Qb)var He=qe,re=0,r=56;else var Df=qe,r=57;break;case 56:var Gg=4095<(a[(db+(be<<3)+(re<<2)|0)>>2]|0)?0:He,Hg=re+1|0;(Hg|0)<(Ub|0)?(He=Gg,re=Hg,r=56):(Df=Gg,r=57);break;case 57:var ag=be+1|0;(ag|0)<(Tb|0)?(pc=Df,be=ag,r=55):r=58;break;case 58:0==(Df|0)?r=59:(xc=nc,r=222);break;case 59:if(vb)r=60;else var Fd=0,r=88;break;
+case 60:var Jd=1<(Ub|0),Qd=0,hd=0,r=61;break;case 61:var Ad=Jb+(hd<<2)|0;a[Ad>>2]=0;if(Qb)var se=0,bg=0,r=62;else var Ef=0,r=87;break;case 62:var cg=a[(db+(hd<<3)+(se<<2)|0)>>2],Ig=4095<(cg|0)?4095:cg;a[(ya+(hd<<3)+(se<<2)|0)>>2]=Ig;var $e=Ig+bg|0,dg=se+1|0;(dg|0)<(Ub|0)?(se=dg,bg=$e,r=62):r=63;break;case 63:a[Ad>>2]=$e;7680<($e|0)?r=64:(Ef=$e,r=87);break;case 64:a[(Kc|0)>>2]=0;a[(Kc+4|0)>>2]=0;if(Qb)var te=0,eg=0,r=65;else r=75;break;case 65:var Ff=a[(ya+(hd<<3)+(te<<2)|0)>>2],r=0<(Ff|0)?66:67;break;
+case 66:var Jg=Math.sqrt(Ff|0),of=Math.sqrt(Jg);b[(Tc+(te<<2)|0)>>2]=of;var af=eg+of,r=68;break;case 67:b[(Tc+(te<<2)|0)>>2]=0;af=eg;r=68;break;case 68:var fg=te+1|0;(fg|0)<(Ub|0)?(te=fg,eg=af,r=65):r=69;break;case 69:r=Qb?70:75;break;case 70:var gg=0>2]=7680*b[(Tc+(Gf<<2)|0)>>2]/af&-1;r=74;break;case 73:a[(ya+(hd<<3)+(Gf<<2)|0)>>2]=0;r=74;break;case 74:var hg=Gf+1|0;(hg|0)<(Ub|0)?(Gf=hg,r=71):r=75;break;case 75:r=Jd?76:
+84;break;case 76:var ig=ya+(hd<<3)|0,Pb=a[ig>>2],Hf=a[(db+(hd<<3)|0)>>2],bf=Hf+32|0,Rd=ya+(hd<<3)+4|0,jg=a[Rd>>2];if((Pb|0)>(bf|0))r=77;else var ue=Pb,ve=jg,r=78;break;case 77:var Ie=(jg+Pb|0)+(-32-Hf|0)|0;a[Rd>>2]=Ie;ue=a[ig>>2]=bf;ve=Ie;r=78;break;case 78:var Vc=a[(db+(hd<<3)+4|0)>>2],ud=Vc+32|0;if((ve|0)>(ud|0))r=79;else var If=ue,Pa=ve,r=80;break;case 79:var Vf=(ue+ve|0)+(-32-Vc|0)|0;a[ig>>2]=Vf;a[Rd>>2]=ud;If=Vf;Pa=ud;r=80;break;case 80:r=4095<(If|0)?81:82;break;case 81:a[ig>>2]=4095;r=82;break;
+case 82:r=4095<(Pa|0)?83:84;break;case 83:a[Rd>>2]=4095;r=84;break;case 84:a[Ad>>2]=0;if(Qb)var Kg=0,Bg=0,r=85;else Ef=0,r=87;break;case 85:var yg=a[(ya+(hd<<3)+(Kg<<2)|0)>>2]+Bg|0,ke=Kg+1|0;(ke|0)<(Ub|0)?(Kg=ke,Bg=yg,r=85):r=86;break;case 86:Ef=a[Ad>>2]=yg;r=87;break;case 87:var kg=Ef+Qd|0,Zg=hd+1|0;(Zg|0)<(Tb|0)?(Qd=kg,hd=Zg,r=61):(Fd=kg,r=88);break;case 88:r=(Fd|0)>(rc|0)?90:89;break;case 89:if(vb)var od=0,jh=1,lg=0,r=134;else r=140;break;case 90:a[(lc|0)>>2]=0;a[(lc+4|0)>>2]=0;if(vb)var Je=0,
+kh=0,r=93;else r=140;break;case 91:r=vb?92:140;break;case 92:var lh=0>2],r=0<(le|0)?94:95;break;case 94:var mh=Math.sqrt(le|0);b[(vc+(Je<<2)|0)>>2]=mh;var nh=kh+mh,r=96;break;case 95:b[(vc+(Je<<2)|0)>>2]=0;nh=kh;r=96;break;case 96:var Lg=Je+1|0;(Lg|0)<(Tb|0)?(Je=Lg,kh=nh,r=93):r=91;break;case 97:r=lh?98:99;break;case 98:a[(Jb+(pf<<2)|0)>>2]=Wg*b[(vc+(pf<<2)|0)>>2]/nh&-1;r=100;break;case 99:a[(Jb+(pf<<2)|0)>>2]=0;r=100;break;case 100:var Jf=
+pf+1|0;(Jf|0)<(Tb|0)?(pf=Jf,r=97):r=101;break;case 101:r=1<(Tb|0)?104:102;break;case 102:r=vb?103:140;break;case 103:var Xg=1<(Ub|0),Sd=0,r=112;break;case 104:var qf=X,Gd=a[qf>>2],Ag=a[jb>>2],Kf=Ag+125|0,Mg=Jb+4|0,Md=a[Mg>>2];if((Gd|0)>(Kf|0))r=105;else var Lf=Gd,Ng=Md,r=106;break;case 105:var ih=(Md+Gd|0)+(-125-Ag|0)|0;a[Mg>>2]=ih;Lf=a[qf>>2]=Kf;Ng=ih;r=106;break;case 106:var mg=a[(bc+4|0)>>2],ng=mg+125|0,r=(Ng|0)>(ng|0)?107:108;break;case 107:a[qf>>2]=((Ng-125|0)+Lf|0)-mg|0;a[Mg>>2]=ng;r=108;break;
+case 108:if(vb)var oh=0,r=109;else r=140;break;case 109:var ph=Jb+(oh<<2)|0,r=7680<(a[ph>>2]|0)?110:111;break;case 110:a[ph>>2]=7680;r=111;break;case 111:var mi=oh+1|0;(mi|0)<(Tb|0)?(oh=mi,r=109):r=102;break;case 112:a[(Uc|0)>>2]=0;a[(Uc+4|0)>>2]=0;if(Qb)var Mf=0,qh=0,r=113;else r=123;break;case 113:var $g=a[(ya+(Sd<<3)+(Mf<<2)|0)>>2],r=0<($g|0)?114:115;break;case 114:var Og=Math.sqrt($g|0);b[(wc+(Mf<<2)|0)>>2]=Og;var ah=qh+Og,r=116;break;case 115:b[(wc+(Mf<<2)|0)>>2]=0;ah=qh;r=116;break;case 116:var rh=
+Mf+1|0;(rh|0)<(Ub|0)?(Mf=rh,qh=ah,r=113):r=117;break;case 117:r=Qb?118:123;break;case 118:var sh=0>2]=(a[ni>>2]|0)*b[(wc+(Pg<<2)|0)>>2]/ah&-1;r=122;break;case 121:a[(ya+(Sd<<3)+(Pg<<2)|0)>>2]=0;r=122;break;case 122:var Hh=Pg+1|0;(Hh|0)<(Ub|0)?(Pg=Hh,r=119):r=123;break;case 123:r=Xg?124:133;break;case 124:var Qg=ya+(Sd<<3)|0,bh=a[Qg>>2],Ih=a[(db+(Sd<<3)|0)>>2],Jh=Ih+32|0,oi=ya+(Sd<<3)+4|0,Kh=a[oi>>2];
+if((bh|0)>(Jh|0))r=125;else var Nf=bh,cf=Kh,r=126;break;case 125:var rf=(Kh+bh|0)+(-32-Ih|0)|0;a[oi>>2]=rf;Nf=a[Qg>>2]=Jh;cf=rf;r=126;break;case 126:var Ke=a[(db+(Sd<<3)+4|0)>>2],th=Ke+32|0;if((cf|0)>(th|0))r=127;else var ce=Nf,r=128;break;case 127:var pi=(Nf+cf|0)+(-32-Ke|0)|0;a[Qg>>2]=pi;a[oi>>2]=th;ce=pi;r=128;break;case 128:if(Qb)var og=0,pg=ce,r=129;else r=133;break;case 129:r=4095<(pg|0)?130:131;break;case 130:a[(ya+(Sd<<3)+(og<<2)|0)>>2]=4095;r=131;break;case 131:var qg=og+1|0,r=(qg|0)<(Ub|
+0)?132:133;break;case 132:var Le=a[(ya+(Sd<<3)+(qg<<2)|0)>>2],og=qg,pg=Le,r=129;break;case 133:var uh=Sd+1|0;(uh|0)<(Tb|0)?(Sd=uh,r=112):r=89;break;case 134:if(Qb)var Lh=jh,Mh=0,Hd=0,r=135;else var Nh=jh,ch=0,r=136;break;case 135:var Xc=a[(ya+(lg<<3)+(Mh<<2)|0)>>2],qi=Xc+Hd|0,ri=4095<(Xc|0)?0:Lh,Oh=Mh+1|0;(Oh|0)<(Ub|0)?(Lh=ri,Mh=Oh,Hd=qi,r=135):(Nh=ri,ch=qi,r=136);break;case 136:var vh=ch+od|0,Ph=7680<(ch|0)?0:Nh,Qh=lg+1|0;(Qh|0)<(Tb|0)?(od=vh,jh=Ph,lg=Qh,r=134):r=137;break;case 137:r=((vh|0)>(rc|
+0)|0==(Ph|0))&vb?138:140;break;case 138:if(Qb)var wh=0,r=139;else var Rh=0,r=141;break;case 139:ha(ya+(wh<<3)|0,pb+(wh<<3)|0,Kb);var kc=wh+1|0;(kc|0)<(Tb|0)?(wh=kc,r=139):r=140;break;case 140:if(Qb)var bd=0,r=146;else Rh=0,r=141;break;case 141:if(vb)r=142;else var Kd=0,r=220;break;case 142:if(Rh)var id=0,r=145;else r=148;break;case 143:var Me=id+1|0;(Me|0)<(Tb|0)?(id=Me,r=145):r=147;break;case 144:var rg;a[(xa+304+(10504*id&-1)+(5252*rg&-1)+4784|0)>>2]=0;var ii=rg+1|0;(ii|0)<(Ub|0)?(rg=ii,r=144):
+r=143;break;case 145:rg=0;r=144;break;case 146:var ti=bd+1|0,ji=(ti|0)<(Ub|0),Sh=xa+21328+(bd<<4)|0;a[Sh>>2]=0;a[Sh+4>>2]=0;a[Sh+8>>2]=0;a[Sh+12>>2]=0;ji?(bd=ti,r=146):(Rh=Qb,r=141);break;case 147:vb?r=148:(Kd=0,r=220);break;case 148:var ui=Ib|0,dh=Bb|0,Rg=xa+304|0,ki=xa+36|0,ed=0,Vi=0,r=149;break;case 149:var xh=bc+(ed<<2)|0;a[xh>>2]=0;if(Rh)var Jc=0,Eh=0,r=150;else var Fh=0,r=219;break;case 150:var Kj=db+(ed<<3)+(Jc<<2)|0;a[Kj>>2]=0;r=0<(a[(pb+(ed<<3)+(Jc<<2)|0)>>2]|0)?151:216;break;case 151:var vd=
+cb+(72*ed&-1)+(36*Jc&-1)+16|0,vi=a[vd>>2]+4780|0,nj=a[vi>>2],Wi=39,Th=0,r=152;break;case 152:var Uh=bb+(312*ed&-1)+(156*Jc&-1)+(Th<<2)|0,wi=a[Uh>>2];a[Uh>>2]=(wi|0)<(nj|0)?wi:nj;var oj=Wi-1|0,Vh=Th+1|0;0==(oj|0)?r=153:(Wi=oj,Th=Vh,r=152);break;case 153:var vk=bb+(312*ed&-1)+(156*Jc&-1)|0,Wh=a[(ya+(ed<<3)+(Jc<<2)|0)>>2],sf=0,sg=39,Ab=0,r=154;break;case 154:var Ob=255-a[(bb+(312*ed&-1)+(156*Jc&-1)+(sf<<2)|0)>>2]|0,tg=(Ab|0)<(Ob|0)?Ob:Ab,xi=sg-1|0,Pn=sf+1|0;0==(xi|0)?r=155:(sf=Pn,sg=xi,Ab=tg,r=154);
+break;case 155:var Db=cb+(72*ed&-1)+(36*Jc&-1)|0,tf=qb+(312*ed&-1)+(156*Jc&-1)|0,eh=vk,uf=a[vi>>2],yh=0<(tg|0),ug=Db|0,Nd=cb+(72*ed&-1)+(36*Jc&-1)+12|0;if(yh)var Xi=tg,yi=-1,zi=0,Yi=tg,r=161;else var Zi=tg,Xh=-1,pj=0,Oj=tg,r=162;break;case 156:var qj,Pm,rj,fi=a[(bb+(312*ed&-1)+(156*Jc&-1)+(qj<<2)|0)>>2],Rj=((Math.imul(uf-fi|0,Ai)|0)/(tg|0)&-1)+fi|0;if(0>(Rj|0))var sj=0,r=158;else r=157;break;case 157:sj=255<(Rj|0)?255:Rj;r=158;break;case 158:a[(Ib+(qj<<2)|0)>>2]=sj;var Sj=(Pm|0)<(sj|0)?sj:Pm,oo=rj-
+1|0,Ni=qj+1|0;0==(oo|0)?r=159:(rj=oo,Pm=Sj,qj=Ni,r=156);break;case 159:var Oi=b[(a[vd>>2]+4764|0)>>2];ib[a[ug>>2]](Db,ui,tf,Sj);r=0==(de(a[Nd>>2],a[vd>>2])|0)?160:165;break;case 160:var Qn=Dh(Db),Rn=a[vd>>2],Pi=a[(Rn+4844|0)>>2]+Qn|0;b[(Rn+4764|0)>>2]=Oi;var hi=(Pi|0)>(Wh|0),Qi=Ai-1|0,Ri=Ai+1|0,si=hi?Yi:Qi,Sn=hi?Ri:zi,tj=hi?yi:Ai,uj=Sn+si|0;if((Sn|0)>(si|0))var vg=Ai,Tj=tj,r=167;else Xi=uj,yi=tj,zi=Sn,Yi=si,r=161;break;case 161:var Ai=(Xi|0)/2&-1;rj=39;qj=Pm=0;r=156;break;case 162:ha(Fb,eh,156);var Sg=
+39,Uj=0,Vj=0,r=163;break;case 163:var po=a[(bb+(312*ed&-1)+(156*Jc&-1)+(Vj<<2)|0)>>2],qo=(Uj|0)<(po|0)?po:Uj,ro=Sg-1|0,Si=Vj+1|0;0==(ro|0)?r=164:(Sg=ro,Uj=qo,Vj=Si,r=163);break;case 164:var Fk=(Zi|0)/2&-1,Ti=b[(a[vd>>2]+4764|0)>>2];ib[a[ug>>2]](Db,ui,tf,qo);r=0==(de(a[Nd>>2],a[vd>>2])|0)?166:165;break;case 165:Oc(a[Nd>>2],144600,(S=m,m=m+1|0,m=m+7>>3<<3,a[S>>2]=0,S)),kd(-1);case 166:var Ui=Dh(Db),sl=a[vd>>2],lj=a[(sl+4844|0)>>2]+Ui|0;b[(sl+4764|0)>>2]=Ti;var Wj=(lj|0)>(Wh|0),Dk=Fk-1|0,mj=Fk+1|0,tl=
+Wj?Oj:Dk,ul=Wj?mj:pj,tk=Wj?Xh:Fk,$k=ul+tl|0;(ul|0)>(tl|0)?(vg=Fk,Tj=tk,r=167):(Zi=$k,Xh=tk,pj=ul,Oj=tl,r=162);break;case 167:r=-1<(Tj|0)?168:178;break;case 168:r=(vg|0)==(Tj|0)?216:169;break;case 169:if(yh)var vl=39,Gk=0,Xj=0,r=171;else r=170;break;case 170:ha(Fb,eh,156);var wl=39,Hk=0,Ik=0,r=174;break;case 171:var uk=a[(bb+(312*ed&-1)+(156*Jc&-1)+(Xj<<2)|0)>>2],xl=((Math.imul(uf-uk|0,Tj)|0)/(tg|0)&-1)+uk|0;if(0>(xl|0))var $i=0,r=173;else r=172;break;case 172:$i=255<(xl|0)?255:xl;r=173;break;case 173:a[(Ib+
+(Xj<<2)|0)>>2]=$i;var wk=(Gk|0)<($i|0)?$i:Gk,yl=vl-1|0,Yj=Xj+1|0;if(0==(yl|0))var zl=wk,r=175;else vl=yl,Gk=wk,Xj=Yj,r=171;break;case 174:var xk=a[(bb+(312*ed&-1)+(156*Jc&-1)+(Ik<<2)|0)>>2],Al=(Hk|0)<(xk|0)?xk:Hk,Ki=wl-1|0,fj=Ik+1|0;0==(Ki|0)?(zl=Al,r=175):(wl=Ki,Hk=Al,Ik=fj,r=174);break;case 175:var Jk=b[(a[vd>>2]+4764|0)>>2];ib[a[ug>>2]](Db,ui,tf,zl);r=0==(de(a[Nd>>2],a[vd>>2])|0)?177:176;break;case 176:Oc(a[Nd>>2],144600,(S=m,m=m+1|0,m=m+7>>3<<3,a[S>>2]=0,S)),kd(-1);case 177:Dh(Db);b[(a[vd>>2]+
+4764|0)>>2]=Jk;r=216;break;case 178:var gj=255,Bl=uf,Zj=-1,Cl=uf+255|0,r=179;break;case 179:var aj=(Cl|0)/2&-1,r=yh?180:182;break;case 180:var Bi=255<(aj|0)?255:aj;if(-1>(Cl|0))r=181;else var Of=39,wb=0,Kk=0,r=183;break;case 181:ra(Fb,0,156);var ak=0,r=185;break;case 182:ha(Fb,eh,156);var we=39,vj=0,Tg=0,r=184;break;case 183:a[(Ib+(Kk<<2)|0)>>2]=Bi;var Ci=(wb|0)<(Bi|0)?Bi:wb,Dl=Of-1|0,El=Kk+1|0;0==(Dl|0)?(ak=Ci,r=185):(Of=Dl,wb=Ci,Kk=El,r=183);break;case 184:var wj=a[(bb+(312*ed&-1)+(156*Jc&-1)+(Tg<<
+2)|0)>>2],Li=(vj|0)<(wj|0)?wj:vj,Fl=we-1|0,hj=Tg+1|0;0==(Fl|0)?(ak=Li,r=185):(we=Fl,vj=Li,Tg=hj,r=184);break;case 185:var xj=b[(a[vd>>2]+4764|0)>>2];ib[a[ug>>2]](Db,ui,tf,ak);r=0==(de(a[Nd>>2],a[vd>>2])|0)?187:186;break;case 186:Oc(a[Nd>>2],144600,(S=m,m=m+1|0,m=m+7>>3<<3,a[S>>2]=0,S)),kd(-1);case 187:var Di=Dh(Db),Ei=a[vd>>2],ij=a[(Ei+4844|0)>>2]+Di|0;b[(Ei+4764|0)>>2]=xj;var zh=(ij|0)>(Wh|0),Gl=aj-1|0,jj=aj+1|0,Yh=zh?Zj:aj,bk=zh?jj:Bl,Zh=zh?gj:Gl,Fi=bk+Zh|0;(bk|0)>(Zh|0)?r=188:(gj=Zh,Bl=bk,Zj=Yh,
+Cl=Fi,r=179);break;case 188:r=-1<(Yh|0)?189:199;break;case 189:r=(aj|0)==(Yh|0)?216:190;break;case 190:r=yh?192:191;break;case 191:ha(Fb,eh,156);var Pf=39,Ba=0,Gi=0,r=195;break;case 192:var yj=255<(Yh|0)?255:Yh;if(0>(Yh|0))r=193;else var Mi=39,zj=0,Lb=0,r=194;break;case 193:ra(Fb,0,156);var ck=0,r=196;break;case 194:a[(Ib+(Lb<<2)|0)>>2]=yj;var dk=(zj|0)<(yj|0)?yj:zj,$h=Mi-1|0,Qm=Lb+1|0;0==($h|0)?(ck=dk,r=196):(Mi=$h,zj=dk,Lb=Qm,r=194);break;case 195:var Hl=a[(bb+(312*ed&-1)+(156*Jc&-1)+(Gi<<2)|0)>>
+2],wd=(Ba|0)<(Hl|0)?Hl:Ba,hc=Pf-1|0,Aj=Gi+1|0;0==(hc|0)?(ck=wd,r=196):(Pf=hc,Ba=wd,Gi=Aj,r=195);break;case 196:var Rm=b[(a[vd>>2]+4764|0)>>2];ib[a[ug>>2]](Db,ui,tf,ck);r=0==(de(a[Nd>>2],a[vd>>2])|0)?198:197;break;case 197:Oc(a[Nd>>2],144600,(S=m,m=m+1|0,m=m+7>>3<<3,a[S>>2]=0,S)),kd(-1);case 198:Dh(Db);b[(a[vd>>2]+4764|0)>>2]=Rm;r=216;break;case 199:var ek=a[vd>>2],Bj=a[(ek+4780|0)>>2];if(512<(Bj|0))var Sm=Bj,cd=1024,r=210;else r=200;break;case 200:var Tm=ek+4844|0,Um=1024,Il=Bj,Lk=512,r=201;break;
+case 201:var ai=Um,bi=Lk,r=202;break;case 202:var Hi=(bi+Il|0)>>1,Mk=Hi-Bj|0,Vm=b[(a[vd>>2]+4764|0)>>2],Nk=0,Ok=0,r=203;break;case 203:var Cj=a[(Ib+(Nk<<2)|0)>>2]+Mk|0,Wm=a[(qb+(312*ed&-1)+(156*Jc&-1)+(Nk<<2)|0)>>2],Jl=(Cj|0)<(Wm|0)?Wm:Cj,Kl=255<(Jl|0)?255:Jl,gi=(Ok|0)<(Kl|0)?Kl:Ok;a[(Bb+(Nk<<2)|0)>>2]=Kl;var df=Nk+1|0;39>(df|0)?(Nk=df,Ok=gi,r=203):r=204;break;case 204:ib[a[ug>>2]](Db,dh,tf,gi);r=0==(de(a[Nd>>2],a[vd>>2])|0)?206:205;break;case 205:Oc(a[Nd>>2],144600,(S=m,m=m+1|0,m=m+7>>3<<3,a[S>>
+2]=0,S)),kd(-1);case 206:var Xm=Dh(Db);b[(a[vd>>2]+4764|0)>>2]=Vm;r=0==(Xm|0)?208:207;break;case 207:r=(a[Tm>>2]+Xm|0)<(Wh|0)?208:209;break;case 208:var Dj=Hi-1|0;(Il|0)>(Dj|0)?r=216:(ai=Hi,bi=Dj,r=202);break;case 209:var bj=Hi+1|0,ci=1024==(ai|0)?Hi:ai;(bj|0)>(bi|0)?(Sm=Hi,cd=ci,r=210):(Um=ci,Il=bj,Lk=bi,r=201);break;case 210:r=(cd|0)==(Sm|0)?216:211;break;case 211:var Pk=cd-Bj|0,Ym=b[(a[vd>>2]+4764|0)>>2],di=0,Qk=0,r=212;break;case 212:var Ll=a[(Ib+(di<<2)|0)>>2]+Pk|0,Ml=a[(qb+(312*ed&-1)+(156*
+Jc&-1)+(di<<2)|0)>>2],fk=(Ll|0)<(Ml|0)?Ml:Ll,gk=255<(fk|0)?255:fk,Zm=(Qk|0)<(gk|0)?gk:Qk;a[(Bb+(di<<2)|0)>>2]=gk;var Rk=di+1|0;39>(Rk|0)?(di=Rk,Qk=Zm,r=212):r=213;break;case 213:ib[a[ug>>2]](Db,dh,tf,Zm);r=0==(de(a[Nd>>2],a[vd>>2])|0)?215:214;break;case 214:Oc(a[Nd>>2],144600,(S=m,m=m+1|0,m=m+7>>3<<3,a[S>>2]=0,S)),kd(-1);case 215:Dh(Db);b[(a[vd>>2]+4764|0)>>2]=Ym;r=216;break;case 216:Nj(xa,ed,Jc,Rg);r=1==(a[ki>>2]|0)?217:218;break;case 217:Mj(xa,xa+304+(10504*ed&-1)+(5252*Jc&-1)|0);r=218;break;case 218:var Nl=
+a[(xa+304+(10504*ed&-1)+(5252*Jc&-1)+4844|0)>>2]+a[(xa+304+(10504*ed&-1)+(5252*Jc&-1)+4768|0)>>2]|0;a[Kj>>2]=Nl;var hk=Nl+Eh|0;a[xh>>2]=hk;var $m=Jc+1|0;($m|0)<(Ub|0)?(Jc=$m,Eh=hk,r=150):(Fh=hk,r=219);break;case 219:var an=Fh+Vi|0,Ol=ed+1|0;(Ol|0)<(Tb|0)?(ed=Ol,Vi=an,r=149):(Kd=an,r=220);break;case 220:(Kd|0)>(rc|0)?r=221:(xc=Kd,r=222);break;case 221:Oc(xa,142456,(S=m,m=m+16|0,a[S>>2]=rc,a[S+8>>2]=Kd,S)),kd(-1);case 222:m=Hb;ga=xc;break a}ga=void 0}c=0==(a[t>>2]|0)?33:44;break;case 33:c=0==(Ha|0)?
+35:34;break;case 34:if(0==(a[(k+124|0)>>2]|0))var bn=1,c=36;else c=35;break;case 35:bn=a[(k+112|0)>>2];c=36;break;case 36:var Pl=a[(k+116|0)>>2],Ej=bn,c=37;break;case 37:c=(Ej|0)<(Pl|0)?38:39;break;case 38:var kj=Ej+1|0;(ga|0)>(a[(E+(Ej<<2)|0)>>2]|0)?(Ej=kj,c=37):c=39;break;case 39:var cj=(Ej|0)>(Pl|0)?Pl:Ej;if(0<(Ta|0))var Fj=Pl,c=40;else c=43;break;case 40:c=(Fj|0)>(cj|0)?41:42;break;case 41:var cn=Fj-1|0;(a[(E+(Fj<<2)|0)>>2]-ga|0)>(Ta|0)?(Fj=cn,c=40):c=42;break;case 42:var Gj=a[(k+84744|0)>>2]=
+Fj,c=45;break;case 43:Gj=a[(k+84744|0)>>2]=cj;c=45;break;case 44:Gj=a[(k+84744|0)>>2]=0;c=45;break;case 45:c=(ga|0)>(a[(E+(Gj<<2)|0)>>2]|0)?53:46;break;case 46:ye(k,A);var Ql=a[V>>2],c=0<(Ql|0)?47:52;break;case 47:var dn=k+72|0,ik=0,Ii=a[dn>>2],Sk=Ql,c=48;break;case 48:if(0<(Ii|0))var Rl=0,c=49;else var jk=Ii,Ug=Sk,c=51;break;case 49:Lj(k,k+304+(10504*ik&-1)+(5252*Rl&-1)|0);var Ji=Rl+1|0,kk=a[dn>>2];(Ji|0)<(kk|0)?(Rl=Ji,c=49):c=50;break;case 50:var Tk=a[V>>2],jk=kk,Ug=Tk,c=51;break;case 51:var lk=
+ik+1|0;(lk|0)<(Ug|0)?(ik=lk,Ii=jk,Sk=Ug,c=48):c=52;break;case 52:el(k,a[A>>2]);m=g;return;case 53:Oc(k,143224,(S=m,m=m+1|0,m=m+7>>3<<3,a[S>>2]=0,S)),kd(-1)}},0,Jn,0,function(b,d,e,f){var c=0,g=m;m=m+160|0;for(c=1;;)switch(c){case 1:var h=g,y=a[(b+16|0)>>2],I=a[(b+12|0)>>2],p=a[(b+20|0)>>2],v=a[(y+4864|0)>>2],E=2==(a[(I+76|0)>>2]|0)?71848:71824;if(0<(v|0))var z=0,A=0,D=0,w=0,u=0,t=0,c=2;else var s=0,G=0,H=0,K=0,Q=0,c=3;break;case 2:var J=f-a[(d+(t<<2)|0)>>2]|0,c=(z|0)<(J|0)?J:z,F=l[t+71848|0]&255,
+P=J-(F<<1)|0,da=J-(F<<2)|0,C=(l[E+t|0]&255)+a[(14248+(t<<2)|0)>>2]|0,F=J-(C<<1)|0,J=J-(C<<2)|0,P=(u|0)<(P|0)?P:u,da=(w|0)<(da|0)?da:w,F=(D|0)<(F|0)?F:D,J=(A|0)<(J|0)?J:A,C=t+1|0;(C|0)<(v|0)?(z=c,A=J,D=F,w=da,u=P,t=C,c=2):(s=c,G=J,H=F,K=da,Q=P,c=3);break;case 3:var ba=f-H|0,ba=(ba|0)<(p|0)?p:ba,L=0,c=4;break;case 4:c=(L|0)<(v|0)?5:6;break;case 5:c=L+1|0;if(1>((ba-a[(e+(L<<2)|0)>>2]|0)-(a[(14248+(L<<2)|0)>>2]<<1)|0))var O=K,B=Q,c=9;else L=c,c=4;break;case 6:var R=f-G|0,R=(R|0)<(p|0)?p:R,V=0,c=7;break;
+case 7:(V|0)<(v|0)?c=8:(O=G,B=H,c=9);break;case 8:c=V+1|0;1>((R-a[(e+(V<<2)|0)>>2]|0)-(a[(14248+(V<<2)|0)>>2]<<2)|0)?(O=K,B=H,c=9):(V=c,c=7);break;case 9:var S=2==(a[(I+28|0)>>2]|0),N=S?O:B,S=S?K:Q,W=(Q|0)<(B|0)?Q:B,W=(W|0)<(S|0)?W:S,W=(W|0)<(N|0)?W:N,T=f-((s|0)>(W|0)?W:s)|0,T=(T|0)<(p|0)?p:T,c=(Q|0)==(W|0)?10:11;break;case 10:a[(y+4836|0)>>2]=0;a[(y+4832|0)>>2]=0;var U=71848,c=17;break;case 11:c=(B|0)==(W|0)?12:13;break;case 12:a[(y+4836|0)>>2]=0;a[(y+4832|0)>>2]=1;U=E;c=17;break;case 13:c=(S|0)==
+(W|0)?14:15;break;case 14:a[(y+4836|0)>>2]=1;a[(y+4832|0)>>2]=0;U=71848;c=17;break;case 15:(N|0)==(W|0)?c=16:(U=E,c=17);break;case 16:a[(y+4836|0)>>2]=1;a[(y+4832|0)>>2]=1;U=E;c=17;break;case 17:var $=y+4780|0;a[$>>2]=T;c=0>(T|0)?18:19;break;case 18:var ja=a[$>>2]=0,c=21;break;case 19:255<(T|0)?c=20:(ja=0,c=21);break;case 20:a[$>>2]=255;ja=0;c=21;break;case 21:a[(h+(ja<<2)|0)>>2]=a[(d+(ja<<2)|0)>>2]-T|0;c=ja+1|0;39>(c|0)?(ja=c,c=21):c=22;break;case 22:As(y,e,h|0,U);m=g;return}},0,function(a){return 142912},
+0,function(k,d,e,f){var c=0,g=m;m=m+2488|0;for(c=1;;)switch(c){case 1:var h=g,l=g+8,I=g+168,p=g+2472,v=g+2480,E=k+304|0;ye(k,v);var z=k+76|0,c=0<(a[z>>2]|0)?2:16;break;case 2:var A=p|0,D=k+84756|0,w=k+72|0,u=k+84912|0,t=k+84916|0,s=k+84908|0,G=I|0,H=k+85824|0,K=k+85096|0,Q=l|0,J=k+36|0,F=a[v>>2],P=0,c=3;break;case 3:var S=dl(k,d,A,F,P,P);if(2==(a[D>>2]|0))var C=0,c=4;else c=6;break;case 4:var c=k+304+(10504*P&-1)+(C<<2)|0,R=b[c>>2],L=k+304+(10504*P&-1)+5252+(C<<2)|0,O=b[L>>2];b[c>>2]=0.7071067690849304*
+(R+O);b[L>>2]=0.7071067690849304*(R-O);c=C+1|0;576>(c|0)?(C=c,c=4):c=5;break;case 5:gj(A,b[(e+(P<<2)|0)>>2],F,S);c=6;break;case 6:if(0<(a[w>>2]|0))var B=0,c=7;else c=15;break;case 7:var N=k+304+(10504*P&-1)+(5252*B&-1)|0,c=Math.pow(10,0.1*b[(2==(a[(k+304+(10504*P&-1)+(5252*B&-1)+4788|0)>>2]|0)?t:u)>>2]);b[s>>2]=c;um(k,N);b[h>>2]=0;c=a[(k+304+(10504*P&-1)+(5252*B&-1)+5208|0)>>2];b[(k+304+(10504*P&-1)+(5252*B&-1)+4764|0)>>2]=0;ra(I+(c<<2)|0,0,(576-c|0)<<2);ib[a[H>>2]](N,G,c,h);c=9.999999682655225E-21<
+b[h>>2]?8:10;break;case 8:var V=a[K>>2]>>>1&1,T=k+304+(10504*P&-1)+(5252*B&-1)+4864|0;if(0<(a[T>>2]|0))var U=0,c=9;else c=11;break;case 9:a[(k+84936+(U<<2)|0)>>2]=V;c=U+1|0;(c|0)<(a[T>>2]|0)?(U=c,c=9):c=11;break;case 10:ra(k+304+(10504*P&-1)+(5252*B&-1)+2304|0,0,2304);c=12;break;case 11:dm(k,f+(976*P&-1)+(488*B&-1)|0,N,Q);vm(k,N,Q,G,B,a[(p+(B<<2)|0)>>2]);c=12;break;case 12:Nj(k,P,B,E);c=1==(a[J>>2]|0)?13:14;break;case 13:Mj(k,N);c=14;break;case 14:Lj(k,N);c=B+1|0;(c|0)<(a[w>>2]|0)?(B=c,c=7):c=15;
+break;case 15:c=P+1|0;(c|0)<(a[z>>2]|0)?(P=c,c=3):c=16;break;case 16:el(k,a[v>>2]);m=g;return}},0,function(a,b,e,f){return 0},0,ym,0,function(a){},0,function(b,d,e,f){e=0;for(e=1;;)switch(e){case 1:var c=b,g=0;e=2;break;case 2:e=c+8|0;var h=(l[((a[c>>2]<<1)+a[(c+4|0)>>2]|0)+8296|0]&255)+g|0;e>>>0>>0?(c=e,g=h,e=2):e=3;break;case 3:return a[f>>2]=a[f>>2]+h|0,1}},0,function(b,d,e,f){var c=0,g=m;m=m+160|0;for(c=1;;)switch(c){case 1:var h=g,y=a[(b+16|0)>>2],I=a[(b+12|0)>>2],p=a[(b+20|0)>>2],v=a[(y+
+4864|0)>>2];if(0<(v|0))var E=0,z=0,A=0,D=0,c=2;else var w=0,u=0,t=0,c=3;break;case 2:var s=f-a[(d+(D<<2)|0)>>2]|0,c=(E|0)<(s|0)?s:E,G=l[D+71688|0]&255,H=s-56|0,s=H-(G<<1)|0,H=H-(G<<2)|0,G=(A|0)<(s|0)?s:A,s=(z|0)<(H|0)?H:z,H=D+1|0;(H|0)<(v|0)?(E=c,z=s,A=G,D=H,c=2):(w=c,u=s,t=G,c=3);break;case 3:if(2==(a[(I+28|0)>>2]|0))c=4;else var K=t,c=5;break;case 4:K=(t|0)<(u|0)?t:u;c=5;break;case 5:var Q=f-((w|0)>(K|0)?K:w)|0,c=(t|0)==(K|0)?6:7;break;case 6:a[(y+4836|0)>>2]=0;c=9;break;case 7:c=(u|0)==(K|0)?8:
+9;break;case 8:a[(y+4836|0)>>2]=1;c=9;break;case 9:var J=(Q|0)<(p|0)?p:Q,F=y+4780|0;a[F>>2]=J;c=0>(J|0)?10:11;break;case 10:var P=a[F>>2]=0,c=13;break;case 11:255<(J|0)?c=12:(P=0,c=13);break;case 12:a[F>>2]=255;P=0;c=13;break;case 13:a[(h+(P<<2)|0)>>2]=a[(d+(P<<2)|0)>>2]-J|0;c=P+1|0;39>(c|0)?(P=c,c=13):c=14;break;case 14:var S=0==(a[(y+4836|0)>>2]|0)?1:2,C=18>v>>>0?v:18,R=15<>>0>>0)var B=1E3,N=0,V=O,c=16;else var T=1E3,U=0,W=O,c=17;break;case 16:G=-a[(h+
+(V<<2)|0)>>2]|0;c=(N|0)<(G|0)?G:N;G=(B|0)>(G|0)?G:B;s=V+3|0;s>>>0>>0?(B=G,N=c,V=s,c=16):(T=G,U=c,W=s,c=17);break;case 17:if(39>W>>>0)var $=T,ha=0,ua=W,c=18;else var ja=T,fa=0,c=19;break;case 18:G=-a[(h+(ua<<2)|0)>>2]|0;c=(ha|0)<(G|0)?G:ha;G=($|0)>(G|0)?G:$;s=ua+3|0;39>s>>>0?($=G,ha=c,ua=s,c=18):(ja=G,fa=c,c=19);break;case 19:var oa=U-R|0,c=fa-S|0,oa=(oa|0)>(c|0)?oa:c,c=0<(ja|0)?20:21;break;case 20:var ra=ja>>3;a[(y+4808+(O<<2)|0)>>2]=ra;c=22;break;case 21:ra=a[(y+4808+(O<<2)|0)>>2]=0;c=22;break;
+case 22:var aa=y+4808+(O<<2)|0;if(0<(oa|0))c=23;else var ma=ra,c=24;break;case 23:ma=(oa+7|0)>>3;ma=(ra|0)>(ma|0)?ra:ma;a[aa>>2]=ma;c=24;break;case 24:if(0<(ma|0))c=25;else var ia=ma,c=29;break;case 25:var ea=a[(b+24+(O<<2)|0)>>2],Xa=a[F>>2];if((ea|0)>(Xa-(ma<<3)|0))c=26;else var Y=ma,c=27;break;case 26:Y=(Xa-ea|0)>>3;a[aa>>2]=Y;c=27;break;case 27:7<(Y|0)?c=28:(ia=Y,c=29);break;case 28:ia=a[aa>>2]=7;c=29;break;case 29:var ib=(L|0)>(ia|0)?ia:L,c=O+1|0;3>c>>>0?(L=ib,O=c,c=15):c=30;break;case 30:var ta=
+y+4808|0,na=a[ta>>2],Z=na<<3,Da=y+4812|0,ka=a[Da>>2],pa=ka<<3,za=y+4816|0,ca=a[za>>2],va=ca<<3,Za=0,c=31;break;case 31:c=h+(Za<<2)|0;a[c>>2]=a[c>>2]+Z|0;c=h+((Za+1|0)<<2)|0;a[c>>2]=a[c>>2]+pa|0;c=h+((Za+2|0)<<2)|0;a[c>>2]=a[c>>2]+va|0;c=Za+3|0;39>c>>>0?(Za=c,c=31):c=32;break;case 32:var Ea=h|0,c=0<(ib|0)?33:34;break;case 33:a[ta>>2]=na-ib|0;a[Da>>2]=ka-ib|0;a[za>>2]=ca-ib|0;a[F>>2]=a[F>>2]-(ib<<3)|0;c=34;break;case 34:As(y,e,Ea,71688);m=g;return}},0,function(b,d){for(var e=0,f=m,e=1;;)switch(e){case 1:var c=
+a[ih>>2],e=a[Mi>>2];Uc(a[ec>>2],143872,(S=m,m=m+8|0,a[S>>2]=e,S));e=0==(b|0)?3:2;break;case 2:Uc(a[ec>>2],b,a[d>>2]);Ti(145176,2,1,a[ec>>2]);e=3;break;case 3:e=a[ec>>2];c=Eh(c);Uc(e,143760,(S=m,m=m+8|0,a[S>>2]=c,S));m=f;return}},0,function(a){return 142872},0,function(a,b,e,f,c){a=0;for(a=1;;)switch(a){case 1:var g=(Math.log(e/(f|0))/Math.LN10*5.799142360687256-0.5&-1)+210|0;a=(g|0)<(c&255|0)?3:2;break;case 2:return e=g&255,254<(g|0)?-1:e;case 3:return c}},0,function(a){},0,function(b,d,e){for(var f=
+0,f=1;;)switch(f){case 1:var c=b,g=0,h=0,f=2;break;case 2:var l=a[c>>2],f=c+8|0,m=a[(c+4|0)>>2],l=(g|0)<(l|0)?l:g,m=(h|0)<(m|0)?m:h;f>>>0>>0?(c=f,g=l,h=m,f=2):f=3;break;case 3:var p=(l|0)<(m|0)?m:l,f=16>p>>>0?4:5;break;case 4:var v=ib[a[(106056+(p<<2)|0)>>2]](b,d,p,e),f=16;break;case 5:f=8206

>>0?6:7;break;case 6:a[e>>2]=1E5;v=-1;f=16;break;case 7:var E=p-15|0,z=24,f=8;break;case 8:f=32>(z|0)?9:10;break;case 9:f=z+1|0;a[(84716+(z<<4)|0)>>2]>>>0>>0?(z=f,f=8):f=10;break;case 10:var A=z-8|0, +f=11;break;case 11:f=24>(A|0)?12:13;break;case 12:f=A+1|0;a[(84716+(A<<4)|0)>>2]>>>0>>0?(A=f,f=11):f=13;break;case 13:var D=(a[(84712+(A<<4)|0)>>2]<<16)+a[(84712+(z<<4)|0)>>2]|0,w=b,u=0,f=14;break;case 14:var t=a[w>>2],f=w+8|0,s=a[(w+4|0)>>2],G=14>>0,H=14>>0,t=t<<4,s=(((G?D:0)+u|0)+a[(73944+(((H?15:s)+(G?240:t)|0)<<2)|0)>>2]|0)+(H?D:0)|0;f>>>0>>0?(w=f,u=s,f=14):f=15;break;case 15:v=s&65535;f=s>>>16;H=(G=f>>>0>v>>>0)?z:A;a[e>>2]=a[e>>2]+(G?v:f)|0;v=H;f=16;break;case 16:return v}},0,function(b){In(b| +0);a[b>>2]=146168},0,void 0,0,function(b,d,e){var f=m;m=m+16|0;a[f>>2]=e;a[f+4>>2]=0;ym(b,d,f|0)},0,xm,0,void 0,0,function(a){return 144544},0,void 0,0,function(a,d,e,f){for(var c=0,c=1;;)switch(c){case 1:b[f>>2]=0;c=0>(e|0)?7:2;break;case 2:var g=a+4764|0,h=0,l=0,c=3;break;case 3:var m=Math.abs(b[(a+(h<<2)|0)>>2]);b[f>>2]=l+m;c=Math.sqrt(m);m=Math.sqrt(m*c);b[(d+(h<<2)|0)>>2]=m;c=m>b[g>>2]?4:5;break;case 4:b[g>>2]=m;c=5;break;case 5:var p=h+1|0,c=(p|0)>(e|0)?7:6;break;case 6:l=b[f>>2];h=p;c=3;break; +case 7:return}},0,function(b,d){var e=m;m=m+16|0;a[e>>2]=d;a[e+4>>2]=0;xm(b,e|0);m=e},0,function(a){fl(a)},0,function(a,d){for(var e=0,e=1;;)switch(e){case 1:var f=d<<1,c=a+(f<<2)|0,g=106120,h=4,e=2;break;case 2:var l=h>>1,m=h<<1,p=m+h|0,v=h<<2,E=a,z=a+(l<<2)|0,e=3;break;case 3:var A=b[E>>2],e=E+(h<<2)|0,D=b[e>>2],w=A-D,A=A+D,D=E+(m<<2)|0,u=b[D>>2],t=E+(p<<2)|0,s=b[t>>2],G=u-s,u=u+s;b[D>>2]=A-u;b[E>>2]=A+u;b[t>>2]=w-G;b[e>>2]=w+G;A=b[z>>2];e=z+(h<<2)|0;D=b[e>>2];w=A-D;A+=D;D=z+(p<<2)|0;t=1.4142135623730951* +b[D>>2];G=z+(m<<2)|0;u=1.4142135623730951*b[G>>2];b[G>>2]=A-u;b[z>>2]=A+u;b[D>>2]=w-t;b[e>>2]=w+t;e=z+(v<<2)|0;w=E+(v<<2)|0;w>>>0>>0?(E=w,z=e,e=3):e=4;break;case 4:var H=g+4|0,e=2<(h|0)?5:9;break;case 5:var K=1,I=b[g>>2],J=b[H>>2],e=6;break;case 6:var F=2*J,P=1-J*F,F=I*F,S=a+(K<<2)|0,C=a+((h-K|0)<<2)|0,e=7;break;case 7:var e=S+(h<<2)|0,A=b[e>>2],w=C+(h<<2)|0,D=b[w>>2],G=F*A-P*D,D=P*A+F*D,t=b[S>>2],A=t-D,D=t+D,u=b[C>>2],t=u-G,G=u+G,u=S+(p<<2)|0,N=b[u>>2],s=C+(p<<2)|0,L=b[s>>2],O=F*N-P*L,B=P*N+F* +L,L=S+(m<<2)|0,R=b[L>>2],N=R-B,R=R+B,B=C+(m<<2)|0,V=b[B>>2],T=V-O,O=V+O,V=J*R-I*T,R=I*R+J*T;b[L>>2]=D-R;b[S>>2]=D+R;b[s>>2]=t-V;b[w>>2]=t+V;w=I*O-J*N;D=J*O+I*N;b[B>>2]=G-D;b[C>>2]=G+D;b[u>>2]=A-w;b[e>>2]=A+w;e=C+(v<<2)|0;w=S+(v<<2)|0;w>>>0>>0?(S=w,C=e,e=7):e=8;break;case 8:w=b[g>>2];A=b[H>>2];e=I*w-J*A;w=J*w+I*A;A=K+1|0;(A|0)<(l|0)?(K=A,I=e,J=w,e=6):e=9;break;case 9:e=g+8|0;(v|0)<(f|0)?(g=e,h=v,e=2):e=10;break;case 10:return}},0,function(b,d){var e=a[ec>>2];Uc(e,b,a[d>>2]);Ds(e)}];Module._lame_init_params= +function(k){for(var d=0,e=m,d=1;;)switch(d){case 1:var f=k+288|0,c=a[f>>2],g=c+16|0,h=c|0;a[h>>2]=0;a[(c+124|0)>>2]=a[(k+180|0)>>2];var y=a[(k+32|0)>>2];a[(c+140|0)>>2]=y;d=0==(y|0)?3:2;break;case 2:a[(k+36|0)>>2]=0;d=3;break;case 3:d=0==(a[(c+85804|0)>>2]|0)?5:4;break;case 4:a[(k+36|0)>>2]=0;d=5;break;case 5:var I=k+272|0;a[(c+85828|0)>>2]=a[I>>2];var p=k+276|0;a[(c+85832|0)>>2]=a[p>>2];var v=k+280|0;a[(c+85836|0)>>2]=a[v>>2];var E=c+85756|0,z=a[E>>2];a[E>>2]=z&-4;d=0==(a[(k+300|0)>>2]|0)?7:6;break; +case 6:var A=a[E>>2]&-13,d=8;break;case 7:A=z&-16;d=8;break;case 8:a[E>>2]=A;var D=c+85796|0,d=0==(a[D>>2]|0)?9:10;break;case 9:var w=xd(1,2772);a[D>>2]=w;if(0==(w|0))var u=-2,d=301;else d=10;break;case 10:var t=c+85676|0,d=0==(a[t>>2]|0)?11:13;break;case 11:var s=xd(1,134792);a[t>>2]=s;d=0==(s|0)?12:13;break;case 12:Oj(c);a[f>>2]=0;u=-2;d=301;break;case 13:var G=c+160|0;a[G>>2]=a[(k+120|0)>>2];a[(c+164|0)>>2]=a[(k+104|0)>>2];a[(c+168|0)>>2]=a[(k+108|0)>>2];a[(c+172|0)>>2]=a[(k+112|0)>>2];a[(c+176| +0)>>2]=a[(k+116|0)>>2];var H=a[(k+8|0)>>2],K=c+68|0;a[K>>2]=H;var Q=k+48|0,d=1==(H|0)?15:14;break;case 14:var J=3==(a[Q>>2]|0)?1:2,d=16;break;case 15:a[Q>>2]=3;J=1;d=16;break;case 16:var F=c+72|0;a[F>>2]=J;var P=k+52|0,d=3==(a[Q>>2]|0)?18:17;break;case 17:var R=a[P>>2],d=19;break;case 18:R=a[P>>2]=0;d=19;break;case 19:a[(c+80|0)>>2]=R;var C=k+156|0,N=a[C>>2],d=0==(N|0)?20:4==(N|0)|1==(N|0)?24:23;break;case 20:var L=a[(k+168|0)>>2],d=128==(L|0)?24:21;break;case 21:var O=k+96|0,d=0==(a[O>>2]|0)?22: +24;break;case 22:a[O>>2]=L;d=0==(N|0)|4==(N|0)|1==(N|0)?24:23;break;case 23:a[(k+56|0)>>2]=0;d=24;break;case 24:var B=c+152|0;a[B>>2]=a[(k+56|0)>>2];d=0==(a[C>>2]|0)?25:35;break;case 25:var T=k+96|0,d=0==(a[T>>2]|0)?26:30;break;case 26:var V=k+100|0,U=b[V>>2],d=0==U?28:27;break;case 27:var $=Math.abs(U),d=$>9.999999974752427E-7*$?30:29;break;case 28:d=0==U?29:30;break;case 29:b[V>>2]=11.024999618530273;d=30;break;case 30:var W=k+100|0,sa=b[W>>2],d=0>2]; +if(0==(Xa|0))d=32;else var ja=Xa,fa=sa,d=33;break;case 32:var Za=0.97*(a[(k+12|0)>>2]|0)&-1,Mb;a:{for(var aa=0,aa=1;;)switch(aa){case 1:if(8001>(Za|0))var ma=8E3,aa=9;else aa=2;break;case 2:11026>(Za|0)?(ma=11025,aa=9):aa=3;break;case 3:12001>(Za|0)?(ma=12E3,aa=9):aa=4;break;case 4:16001>(Za|0)?(ma=16E3,aa=9):aa=5;break;case 5:22051>(Za|0)?(ma=22050,aa=9):aa=6;break;case 6:24001>(Za|0)?(ma=24E3,aa=9):aa=7;break;case 7:32001>(Za|0)?(ma=32E3,aa=9):aa=8;break;case 8:ma=44101>(Za|0)?44100:48E3;aa=9;break; +case 9:Mb=ma;break a}Mb=void 0}a[oa>>2]=Mb;var ia=b[W>>2],ja=Mb,fa=ia,d=33;break;case 33:var ea=Math.imul(ja<<4,a[F>>2])|0;a[T>>2]=ea/(1E3*fa)&-1;var Wb=g|0,Y=Uo(ja,Wb);a[(c+20|0)>>2]=Y;d=0==(a[B>>2]|0)?34:35;break;case 34:var ec=mo(a[T>>2],a[Wb>>2],a[oa>>2]);a[T>>2]=ec;d=35;break;case 35:var ta=k+16|0,na=a[ta>>2],d=0==(na|0)?41:36;break;case 36:d=16E3>(na|0)?37:38;break;case 37:var Z=k+168|0,Da=a[Z>>2],ka=8<(Da|0)?Da:8;a[Z>>2]=64>(ka|0)?ka:64;var pa=na,d=52;break;case 38:var za=k+168|0,ca=a[za>> +2],d=32E3>(na|0)?39:40;break;case 39:var va=8<(ca|0)?ca:8;a[za>>2]=160>(va|0)?va:160;pa=na;d=52;break;case 40:var ac=32<(ca|0)?ca:32;a[za>>2]=320>(ac|0)?ac:320;pa=na;d=52;break;case 41:var Ea=a[C>>2];1==(Ea|0)|4==(Ea|0)?d=42:(pa=0,d=52);break;case 42:var Fa=k+164|0,M=k+160|0,bc=(a[Fa>>2]|0)+b[M>>2],Aa=a[(k+12|0)>>2],wa=2,d=43;break;case 43:var Ga=a[(75112+(24*wa&-1)|0)>>2],d=(Aa|0)==(Ga|0)?44:46;break;case 44:var Qa=b[(75116+(24*wa&-1)|0)>>2],d=bc>2],uc=Kc&-1;a[Fa>>2]=uc;b[M>>2]=Kc-(uc|0);d=46;break;case 46:d=(Aa|0)<(Ga|0)?51:47;break;case 47:var Ma=b[(75116+(24*wa&-1)|0)>>2],d=Ma>bc?51:48;break;case 48:var n=b[(75120+(24*wa&-1)|0)>>2],d=bc>2],Sa=qa+(bc-Ma)*(b[(75128+(24*wa&-1)|0)>>2]-qa)/(n-Ma),Ca=Sa,Va=Sa&-1;a[Fa>>2]=Va;b[M>>2]=Ca-(Va|0);a[ta>>2]=Ga;var Ha=k+184|0;0==(a[Ha>>2]|0)?d=50:(pa=Ga,d=52);break;case 50:a[Ha>>2]=-1;pa=Ga;d=52;break;case 51:var Ta=wa+1|0;9>(Ta|0)?(wa= +Ta,d=43):(pa=0,d=52);break;case 52:var Ua=k+184|0,Nb=a[Ua>>2];if(0==(Nb|0))d=53;else var gb=pa,Na=Nb,d=66;break;case 53:var $a=a[C>>2],d=0==($a|0)?54:3==($a|0)?55:2==($a|0)?56:4==($a|0)|1==($a|0)?58:60;break;case 54:var Gb=49036+(Qo(a[(k+96|0)>>2]&65535)<<3)|0,Ja=a[Gb>>2]|0,d=62;break;case 55:var lb=49036+(Qo(a[(k+168|0)>>2]&65535)<<3)|0,Ja=a[lb>>2]|0,d=62;break;case 56:var Ra=a[(k+164|0)>>2];10>Ra>>>0?d=57:(Ja=19500,d=62);break;case 57:var sb=a[(75064+(Ra<<2)|0)>>2]|0,Ja=sb+((a[(75064+((Ra+1|0)<< +2)|0)>>2]|0)-sb)*b[(k+160|0)>>2],d=62;break;case 58:var ob=a[(k+164|0)>>2];10>ob>>>0?d=59:(Ja=21500,d=62);break;case 59:var hb=a[(75016+(ob<<2)|0)>>2]|0,Ja=hb+((a[(75016+((ob+1|0)<<2)|0)>>2]|0)-hb)*b[(k+160|0)>>2],d=62;break;case 60:var mb=a[(k+164|0)>>2];10>mb>>>0?d=61:(Ja=19500,d=62);break;case 61:var Oa=a[(74968+(mb<<2)|0)>>2]|0,Ja=Oa+((a[(74968+((mb+1|0)<<2)|0)>>2]|0)-Oa)*b[(k+160|0)>>2],d=62;break;case 62:if(3==(a[Q>>2]|0))d=63;else var nb=Ja,d=65;break;case 63:var xb=a[C>>2];0==(xb|0)|3==(xb| +0)?d=64:(nb=Ja,d=65);break;case 64:nb=1.5*Ja;d=65;break;case 65:var Ya=nb&-1;a[Ua>>2]=Ya;gb=a[ta>>2];Na=Ya;d=66;break;case 66:if(0==(gb|0))d=67;else var Ia=Na,tb=gb,d=89;break;case 67:var Ka=a[(k+12|0)>>2];if((Na<<1|0)>(Ka|0))d=68;else var ab=Na,d=69;break;case 68:var ga=(Ka|0)/2&-1,ab=a[Ua>>2]=ga,d=69;break;case 69:if(47999<(Ka|0))var xa=48E3,d=78;else d=70;break;case 70:44099<(Ka|0)?(xa=44100,d=78):d=71;break;case 71:31999<(Ka|0)?(xa=32E3,d=78):d=72;break;case 72:23999<(Ka|0)?(xa=24E3,d=78):d=73; +break;case 73:22049<(Ka|0)?(xa=22050,d=78):d=74;break;case 74:15999<(Ka|0)?(xa=16E3,d=78):d=75;break;case 75:11999<(Ka|0)?(xa=12E3,d=78):d=76;break;case 76:11024<(Ka|0)?(xa=11025,d=78):d=77;break;case 77:xa=7999<(Ka|0)?8E3:44100;d=78;break;case 78:if(-1==(ab|0))var La=xa,d=88;else d=79;break;case 79:var yb=15961>(ab|0)?44100:xa,pb=15251>(ab|0)?32E3:yb,r=11221>(ab|0)?24E3:pb,Hb=9971>(ab|0)?22050:r,Bb=7231>(ab|0)?16E3:Hb,Ib=5421>(ab|0)?12E3:Bb,Fb=4511>(ab|0)?11025:Ib,bb=3971>(ab|0)?8E3:Fb;(bb|0)>(Ka| +0)?d=80:(La=bb,d=88);break;case 80:44100<(Ka|0)?(La=48E3,d=88):d=81;break;case 81:32E3<(Ka|0)?(La=44100,d=88):d=82;break;case 82:24E3<(Ka|0)?(La=32E3,d=88):d=83;break;case 83:22050<(Ka|0)?(La=24E3,d=88):d=84;break;case 84:16E3<(Ka|0)?(La=22050,d=88):d=85;break;case 85:12E3<(Ka|0)?(La=16E3,d=88):d=86;break;case 86:11025<(Ka|0)?(La=12E3,d=88):d=87;break;case 87:La=8E3<(Ka|0)?11025:8E3;d=88;break;case 88:a[ta>>2]=La;Ia=ab;tb=La;d=89;break;case 89:var qb=a[C>>2],d=1==(qb|0)|4==(qb|0)?90:91;break;case 90:var cb= +24E3<(Ia|0)?24E3:Ia,ya=(tb|0)/2&-1;a[Ua>>2]=(ya|0)<(cb|0)?ya:cb;d=3==(qb|0)?93:94;break;case 91:var X=20500<(Ia|0)?20500:Ia,Jb=(tb|0)/2&-1;a[Ua>>2]=(Jb|0)<(X|0)?Jb:X;d=0==(qb|0)?92:3==(qb|0)?93:94;break;case 92:var db=Math.imul(tb<<4,a[F>>2])|0;b[(k+100|0)>>2]=db/(1E3*(a[(k+96|0)>>2]|0));d=94;break;case 93:var jb=Math.imul(tb<<4,a[F>>2])|0;b[(k+100|0)>>2]=jb/(1E3*(a[(k+168|0)>>2]|0));d=94;break;case 94:var Uc=k+36|0,gd=k+60|0,d=0==(a[Uc>>2]|0)?96:95;break;case 95:var kd=k+64|0,d=97;break;case 96:a[gd>> +2]=0;var lc=k+64|0;a[lc>>2]=0;a[(c+132|0)>>2]=0;kd=lc;d=97;break;case 97:var vc=a[gd>>2];a[(c+128|0)>>2]=vc;var pd=a[kd>>2],wc=c+136|0;a[wc>>2]=pd;d=0==(pd|0)?99:98;break;case 98:a[(c+132|0)>>2]=1;d=99;break;case 99:if(0==(vc|0))var Tb=pd,d=103;else d=100;break;case 100:var Ub;a:{for(var ub=a[t>>2],fc=a[ta>>2],vb=0,vb=1;;)switch(vb){case 1:var xc=ub+29112|0,Qb=ub+19464|0,eb=ub+19380|0,Kb=ub+9732|0,mc=ub+84|0;ra(ub,0,40);ra(mc,0,40);ra(Kb,0,40);ra(eb,0,40);ra(Qb,0,40);ra(xc,0,40);if(48E3==(fc|0))vb= +2;else if(44100==(fc|0))vb=3;else if(32E3==(fc|0))vb=4;else if(24E3==(fc|0))vb=5;else if(22050==(fc|0))vb=6;else if(16E3==(fc|0))vb=7;else if(12E3==(fc|0))vb=8;else if(11025==(fc|0))vb=9;else if(8E3==(fc|0))vb=10;else var gc=0,vb=12;break;case 2:a[(ub+38784|0)>>2]=0;vb=11;break;case 3:a[(ub+38784|0)>>2]=1;vb=11;break;case 4:a[(ub+38784|0)>>2]=2;vb=11;break;case 5:a[(ub+38784|0)>>2]=3;vb=11;break;case 6:a[(ub+38784|0)>>2]=4;vb=11;break;case 7:a[(ub+38784|0)>>2]=5;vb=11;break;case 8:a[(ub+38784|0)>> +2]=6;vb=11;break;case 9:a[(ub+38784|0)>>2]=7;vb=11;break;case 10:a[(ub+38784|0)>>2]=8;vb=11;break;case 11:a[(ub+38760|0)>>2]=(fc+19|0)/20&-1;var ld=ub+38764|0;ra(ub+38792|0,0,48E3);var Zb=ld;a[Zb>>2]=0;a[Zb+4>>2]=0;a[Zb+8>>2]=0;a[Zb+12>>2]=0;a[Zb+16>>2]=0;a[(ub+80|0)>>2]=ub+40|0;a[(ub+19460|0)>>2]=ub+19420|0;a[(ub+9728|0)>>2]=ub+124|0;a[(ub+29108|0)>>2]=ub+19504|0;a[(ub+19376|0)>>2]=ub+9772|0;a[(ub+38756|0)>>2]=ub+29152|0;ra(ub+86792|0,0,48E3);gc=1;vb=12;break;case 12:Ub=gc;break a}Ub=void 0}d=0== +(Ub|0)?102:101;break;case 101:Tb=a[wc>>2];d=103;break;case 102:Oj(c);a[f>>2]=0;u=-6;d=301;break;case 103:d=0==(Tb|0)?108:104;break;case 104:d=0==(a[(k+40|0)>>2]|0)?105:108;break;case 105:var nc=c+85808|0,yc=a[nc>>2],d=0==(yc|0)?107:106;break;case 106:Po(yc);d=107;break;case 107:var rc,Pc=xd(1,22E3);(void 0)(Pc);rc=Pc;a[nc>>2]=rc;a:for(var cc=rc,Ld=a[v>>2],ic=0,ic=1;;)switch(ic){case 1:ic=0==(cc|0)?3:2;break;case 2:a[(cc+21996|0)>>2]=Ld;ic=3;break;case 3:break a}a:for(var Wc=a[nc>>2],Gc=a[p>>2],Hc= +0,Hc=1;;)switch(Hc){case 1:Hc=0==(Wc|0)?3:2;break;case 2:a[(Wc+21992|0)>>2]=Gc;Hc=3;break;case 3:break a}a:for(var Lc=a[nc>>2],Oe=a[I>>2],zc=0,zc=1;;)switch(zc){case 1:zc=0==(Lc|0)?3:2;break;case 2:a[(Lc+21988|0)>>2]=Oe;zc=3;break;case 3:break a}d=108;break;case 108:a[(c+144|0)>>2]=a[(k+128|0)>>2];var zb=c+52|0;a[zb>>2]=a[Ua>>2];var Cb=c+56|0;a[Cb>>2]=a[(k+188|0)>>2];a[(c+60|0)>>2]=a[(k+12|0)>>2];var Vb=a[ta>>2],$b=c+64|0;a[$b>>2]=Vb;var Rb=c+76|0;a[Rb>>2]=24001>(Vb|0)?1:2;a[(c+84760|0)>>2]=576;var Xb= +a[C>>2],d=1==(Xb|0)|2==(Xb|0)|4==(Xb|0)?109:3==(Xb|0)?110:111;break;case 109:b[(k+100|0)>>2]=b[(75328+(a[(k+164|0)>>2]<<2)|0)>>2];d=112;break;case 110:var sc=Math.imul(Vb<<4,a[F>>2])|0;b[(k+100|0)>>2]=sc/(1E3*(a[(k+168|0)>>2]|0));d=112;break;case 111:var Qc=Math.imul(Vb<<4,a[F>>2])|0;b[(k+100|0)>>2]=Qc/(1E3*(a[(k+96|0)>>2]|0));d=112;break;case 112:var Rc=a[Q>>2];if(4==(Rc|0))d=113;else var Zc=Rc,d=114;break;case 113:Zc=a[Q>>2]=1;d=114;break;case 114:var Td=c+180|0;a[Td>>2]=Zc;var Ac=a[Cb>>2],d=0< +(Ac|0)?115:119;break;case 115:var Mc=2*(Ac|0),Bc=c+256|0;b[Bc>>2]=Mc;var Cc=a[(k+196|0)>>2],d=-1<(Cc|0)?116:117;break;case 116:var dd=2*(Cc+Ac|0),Yb=b[(c+260|0)>>2]=dd,d=118;break;case 117:Yb=b[(c+260|0)>>2]=Mc;d=118;break;case 118:var Sc=a[$b>>2]|0;b[Bc>>2]=Mc/Sc;var Dc=Yb/Sc,Ec=b[(c+260|0)>>2]=Dc,d=120;break;case 119:b[(c+256|0)>>2]=0;Ec=b[(c+260|0)>>2]=0;d=120;break;case 120:var oc=c+248|0;b[oc>>2]=0;var $c=c+252|0;b[$c>>2]=0;var ad=a[zb>>2],d=0<(ad|0)?121:133;break;case 121:var Ud=a[$b>>2],d= +(ad|0)<((Ud|0)/2&-1|0)?122:133;break;case 122:var de=2*(ad|0);b[$c>>2]=de;var Ic=a[(k+192|0)>>2],d=-1<(Ic|0)?123:125;break;case 123:var ze=2*(ad-Ic|0);b[oc>>2]=ze;if(0>ze)d=124;else var qd=ze,d=126;break;case 124:qd=b[oc>>2]=0;d=126;break;case 125:qd=b[oc>>2]=de;d=126;break;case 126:var Dd=Ud|0,rd=qd/Dd;b[oc>>2]=rd;var sd=de/Dd;b[$c>>2]=sd;if(0(xf|0)?(md=xf,ye=Vd,Ae=Pe,d=127):d=132;break;case 132:b[oc>>2]=(((999==(Vd|0)?Pe:Vd)|0)-0.75)/31;b[$c>>2]=(Pe|0)/31;d=133;break;case 133:var Od=c+260|0,Wd=c+256|0;if(0Ec)d=134;else var Xd=Ec,d=135;break;case 134:b[Wd>>2]=0;b[Od>>2]=0;a:{var Uf=c,Re=(S=m,m=m+1|0,m=m+7>>3<<3,a[S>>2]=0,S),Yd=0,Vf=m;m=m+16|0;for(Yd=1;;)switch(Yd){case 1:var Wf=Vf, +Yd=0==(Uf|0)?4:2;break;case 2:var me=Uf+85828|0,Yd=0==(a[me>>2]|0)?4:3;break;case 3:var Zd=Wf|0,yd=Wf;a[yd>>2]=Re;a[yd+4>>2]=0;ib[a[me>>2]](140168,Zd);Yd=4;break;case 4:m=Vf;break a}}Xd=b[Od>>2];d=135;break;case 135:if(0>2],fe=0,ne=-1,ge=-1,d=137;break;case 137:var Se=(fe|0)/31;if(Se>$d)var oe=ge,d=139;else d=138;break;case 138:oe=(ge|0)>(fe|0)?ge:fe;d=139;break;case 139:if($d(fe|0)?ne:fe;d=141;break;case 141:var Be=fe+1|0;32>(Be|0)?(fe=Be,ne=ff,ge=oe,d=137):d=142;break;case 142:var Te=oe|0;b[Wd>>2]=Te/31;d=-1==(ff|0)?143:144;break;case 143:var gf=(Te+0.75)/31;b[Od>>2]=gf;nd=0;Pd=gf;d=145;break;case 144:var he=((ff|0)+0.75)/31;b[Od>>2]=he;nd=0;Pd=he;d=145;break;case 145:var Ce=(nd|0)/31,Ue=b[Wd>>2];if(Pd>Ue)d=146;else var ie=1,d=149;break;case 146:var pe=(Pd-Ce)/(Pd-Ue+1E-20),hf=pe;1>2],Ve=b[oc>>2];if(Xf>Ve)d=150;else var yf=1,d=153;break;case 150:var We=(Ce-Ve)/(Xf-Ve+1E-20),zd=We;1>2]=ie*yf;var jf=nd+1|0,d=32>(jf|0)?154:155;break;case 154:var De=b[Od>>2],nd=jf,Pd=De,d=145;break;case 155:var Nc=g|0,zf=Uo(a[$b>>2],Nc),Af=c+20|0;a[Af>>2]=zf;d=0>(zf|0)?156:157;break;case 156:Oj(c);a[f>>2]= +0;u=-1;d=301;break;case 157:d=0==(a[C>>2]|0)?158:162;break;case 158:d=0==(a[B>>2]|0)?160:159;break;case 159:a[(c+84744|0)>>2]=0;d=163;break;case 160:var Bf=k+96|0,Xe=mo(a[Bf>>2],a[Nc>>2],a[$b>>2]);a[Bf>>2]=Xe;var ae=no(Xe,a[Nc>>2],a[$b>>2]);a[(c+84744|0)>>2]=ae;d=1>(ae|0)?161:163;break;case 161:Oj(c);a[f>>2]=0;u=-1;d=301;break;case 162:a[(c+84744|0)>>2]=1;d=163;break;case 163:var Id=c;a[Id+52132>>2]=0;a[Id+52128>>2]=0;a[Id+39840>>2]=0;var kf=Tc(147456);a[Id+284>>2]=kf;a[Id+288>>2]=147456;a[Id+296>> +2]=-1;a[Id+300>>2]=0;a[Id+292>>2]=0;var jc=((3*a[Nc>>2]&-1)+a[Af>>2]|0)+((-(16E3>(a[$b>>2]|0)&1)|0)&6)|0,fb=0,d=165;break;case 164:var lf=a[(c+21444|0)>>2],mf=(a[(c+21448|0)>>2]-lf|0)/6&-1;a[(c+21508|0)>>2]=lf;a[(c+21512|0)>>2]=mf+lf|0;a[(c+21516|0)>>2]=(mf<<1)+lf|0;a[(c+21520|0)>>2]=(3*mf&-1)+lf|0;a[(c+21524|0)>>2]=(mf<<2)+lf|0;a[(c+21528|0)>>2]=(5*mf&-1)+lf|0;a[(c+21532|0)>>2]=576;a[(c+21452|0)>>2]=a[(11980+(204*jc&-1)|0)>>2];a[(c+21456|0)>>2]=a[(11984+(204*jc&-1)|0)>>2];a[(c+21460|0)>>2]=a[(11988+ +(204*jc&-1)|0)>>2];a[(c+21464|0)>>2]=a[(11992+(204*jc&-1)|0)>>2];a[(c+21468|0)>>2]=a[(11996+(204*jc&-1)|0)>>2];a[(c+21472|0)>>2]=a[(12E3+(204*jc&-1)|0)>>2];a[(c+21476|0)>>2]=a[(12004+(204*jc&-1)|0)>>2];a[(c+21480|0)>>2]=a[(12008+(204*jc&-1)|0)>>2];a[(c+21484|0)>>2]=a[(12012+(204*jc&-1)|0)>>2];a[(c+21488|0)>>2]=a[(12016+(204*jc&-1)|0)>>2];a[(c+21492|0)>>2]=a[(12020+(204*jc&-1)|0)>>2];a[(c+21496|0)>>2]=a[(12024+(204*jc&-1)|0)>>2];var td=a[(12028+(204*jc&-1)|0)>>2];a[(c+21500|0)>>2]=td;var dc=a[(12032+ +(204*jc&-1)|0)>>2];a[(c+21504|0)>>2]=dc;var Ye=(dc-td|0)/6&-1;a[(c+21536|0)>>2]=td;a[(c+21540|0)>>2]=Ye+td|0;a[(c+21544|0)>>2]=(Ye<<1)+td|0;a[(c+21548|0)>>2]=(3*Ye&-1)+td|0;a[(c+21552|0)>>2]=(Ye<<2)+td|0;a[(c+21556|0)>>2]=(5*Ye&-1)+td|0;a[(c+21560|0)>>2]=192;var Zf=a[Rb>>2],Yf=a[F>>2],Ee=1==(Yf|0),d=2==(Zf|0)?166:167;break;case 165:a[(c+21360+(fb<<2)|0)>>2]=a[(11888+(204*jc&-1)+(fb<<2)|0)>>2];var nf=fb+1|0;23>(nf|0)?(fb=nf,d=165):d=164;break;case 166:var $f=Ee?21:36,Fe=a[(c+24|0)>>2]=$f,d=168;break; +case 167:var Cf=Ee?13:21,Fe=a[(c+24|0)>>2]=Cf,d=168;break;case 168:d=0==(a[G>>2]|0)?170:169;break;case 169:a[(c+24|0)>>2]=Fe|2;d=170;break;case 170:a[h>>2]=-487877;var Ze=Math.imul(700*Yf&-1,Zf)|0;b[(c+39756|0)>>2]=Ze;var je=1,d=171;break;case 171:var Bg=Math.imul(700*a[F>>2]&-1,a[Rb>>2])|0;b[(c+39756+(je<<2)|0)>>2]=Bg;var Ge=je+1|0;19>(Ge|0)?(je=Ge,d=171):d=172;break;case 172:var Qe=k+220|0,d=-1==(a[Qe>>2]|0)?173:174;break;case 173:a[Qe>>2]=4;d=174;break;case 174:var Dg=a[C>>2],d=1==(Dg|0)|4==(Dg| +0)?175:2==(Dg|0)?189:197;break;case 175:var yg=k+124|0,d=0>(a[yg>>2]|0)?176:177;break;case 176:a[yg>>2]=2;d=177;break;case 177:var Yg=k+244|0,d=0>(a[Yg>>2]|0)?178:179;break;case 178:a[Yg>>2]=0;d=179;break;case 179:jo(k,(-10*a[(k+164|0)>>2]&-1)+500|0,0);var Eg=k+44|0,Fg=a[Eg>>2],d=0>(Fg|0)?180:181;break;case 180:a[Eg>>2]=3;d=182;break;case 181:d=5>(Fg|0)?182:183;break;case 182:a[Eg>>2]=0;d=185;break;case 183:d=7<(Fg|0)?184:185;break;case 184:a[Eg>>2]=7;d=185;break;case 185:d=0==(a[(k+140|0)>>2]|0)? +187:186;break;case 186:a[(c+85092|0)>>2]=0;d=188;break;case 187:a[(c+85092|0)>>2]=44E3<(a[$b>>2]|0)&1;d=188;break;case 188:a[(c+85812|0)>>2]=22;d=204;break;case 189:jo(k,(-10*a[(k+164|0)>>2]&-1)+500|0,0);d=0==(a[(k+140|0)>>2]|0)?191:190;break;case 190:a[(c+85092|0)>>2]=0;d=192;break;case 191:a[(c+85092|0)>>2]=44E3<(a[$b>>2]|0)&1;d=192;break;case 192:var pc=k+44|0,be=a[pc>>2],d=6<(be|0)?193:194;break;case 193:a[pc>>2]=6;d=196;break;case 194:d=0>(be|0)?195:196;break;case 195:a[pc>>2]=3;d=196;break; +case 196:a[(c+85812|0)>>2]=16;d=204;break;case 197:a[(c+85092|0)>>2]=0;var qe=k+44|0,d=0>(a[qe>>2]|0)?198:199;break;case 198:a[qe>>2]=3;d=199;break;case 199:var He=a[C>>2],re=0==(He|0),d=re?200:201;break;case 200:Kj(k,a[(k+96|0)>>2]);d=201;break;case 201:jo(k,a[(k+168|0)>>2],0);a[C>>2]=He;var Df=c+85812|0,d=re?202:203;break;case 202:a[Df>>2]=30;d=204;break;case 203:a[Df>>2]=4;d=204;break;case 204:var Gg=b[(k+200|0)>>2],Hg=c+84912|0;b[Hg>>2]=Gg;var ag=b[(k+204|0)>>2],Fd=c+84916|0;b[Fd>>2]=ag;d=0== +(a[(k+256|0)>>2]|0)?206:205;break;case 205:var Jd=k+260|0;b[Hg>>2]=Gg+b[Jd>>2];b[Fd>>2]=ag+b[Jd>>2];d=206;break;case 206:d=0==(a[C>>2]|0)?207:208;break;case 207:var Qd=k+168|0,d=216;break;case 208:var hd=c+112|0;a[hd>>2]=1;var Ad=c+116|0;a[Ad>>2]=14;var se=a[$b>>2],d=16E3>(se|0)?209:210;break;case 209:a[Ad>>2]=8;d=210;break;case 210:var bg=k+172|0,Ef=a[bg>>2];if(0==(Ef|0))var cg=1,d=212;else d=211;break;case 211:var Ig=mo(Ef,a[Nc>>2],se);a[bg>>2]=Ig;var $e=no(Ig,a[Nc>>2],a[$b>>2]);a[hd>>2]=$e;0>($e| +0)?(u=-1,d=301):(cg=$e,d=212);break;case 212:var dg=k+176|0,te=a[dg>>2];if(0==(te|0))var eg=cg,d=215;else d=213;break;case 213:var Ff=mo(te,a[Nc>>2],a[$b>>2]);a[dg>>2]=Ff;var Jg=no(Ff,a[Nc>>2],a[$b>>2]);a[Ad>>2]=Jg;0>(Jg|0)?(u=-1,d=301):d=214;break;case 214:eg=a[hd>>2];d=215;break;case 215:a[bg>>2]=a[(106152+(a[Nc>>2]<<6)+(eg<<2)|0)>>2];a[dg>>2]=a[(106152+(a[Nc>>2]<<6)+(a[Ad>>2]<<2)|0)>>2];var of=a[(106152+(a[Nc>>2]<<6)+(a[Ad>>2]<<2)|0)>>2],af=k+168|0,fg=a[af>>2],gg=(of|0)<(fg|0)?of:fg;a[af>>2]=gg; +var Gf=a[(106152+(a[Nc>>2]<<6)+(a[hd>>2]<<2)|0)>>2];a[af>>2]=(Gf|0)>(gg|0)?Gf:gg;Qd=af;d=216;break;case 216:a[(c+100|0)>>2]=a[(k+152|0)>>2];a[(c+156|0)>>2]=a[Uc>>2];var hg=c+104|0;a[hg>>2]=a[C>>2];a[(c+85096|0)>>2]=a[(k+80|0)>>2];a[(c+28|0)>>2]=a[(k+84|0)>>2];a[(c+32|0)>>2]=a[(k+88|0)>>2];a[(c+36|0)>>2]=a[(k+92|0)>>2];var ig=c+120|0;a[ig>>2]=a[(k+96|0)>>2];a[(c+108|0)>>2]=a[Qd>>2];b[(c+244|0)>>2]=b[(k+100|0)>>2];var Pb=a[f>>2],Hf=k+44|0,bf=a[Hf>>2],d=8==(bf|0)?218:7==(bf|0)?219:6==(bf|0)?221:5==(bf| +0)?226:4==(bf|0)?231:3==(bf|0)?236:2==(bf|0)?241:1==(bf|0)?248:0==(bf|0)?255:217;break;case 217:a[(Pb+28|0)>>2]=0;var Rd=Pb+36|0;a[Rd>>2]=0;a[Rd+4>>2]=0;a[Rd+8>>2]=0;a[Rd+12>>2]=0;d=262;break;case 218:a[Hf>>2]=7;d=219;break;case 219:a[(Pb+28|0)>>2]=0;var jg=Pb+48|0,ue=Pb+36|0;a[ue>>2]=0;a[ue+4>>2]=0;a[ue+8>>2]=0;a[ue+12>>2]=0;var ve=a[C>>2],d=1==(ve|0)|4==(ve|0)?220:262;break;case 220:a[jg>>2]=-1;d=262;break;case 221:var Ie=Pb+28|0,d=0==(a[Ie>>2]|0)?222:223;break;case 222:a[Ie>>2]=1;d=223;break;case 223:a[(Pb+ +40|0)>>2]=0;a[(Pb+44|0)>>2]=0;var Vc=Pb+32|0,d=-1==(a[Vc>>2]|0)?224:225;break;case 224:a[Vc>>2]=1;d=225;break;case 225:a[(Pb+36|0)>>2]=0;a[(Pb+48|0)>>2]=0;d=262;break;case 226:var ud=Pb+28|0,d=0==(a[ud>>2]|0)?227:228;break;case 227:a[ud>>2]=1;d=228;break;case 228:a[(Pb+40|0)>>2]=0;a[(Pb+44|0)>>2]=0;var If=Pb+32|0,d=-1==(a[If>>2]|0)?229:230;break;case 229:a[If>>2]=1;d=230;break;case 230:a[(Pb+36|0)>>2]=0;a[(Pb+48|0)>>2]=0;d=262;break;case 231:var Pa=Pb+28|0,d=0==(a[Pa>>2]|0)?232:233;break;case 232:a[Pa>> +2]=1;d=233;break;case 233:a[(Pb+40|0)>>2]=0;a[(Pb+44|0)>>2]=0;var Ag=Pb+32|0,d=-1==(a[Ag>>2]|0)?234:235;break;case 234:a[Ag>>2]=1;d=235;break;case 235:a[(Pb+36|0)>>2]=1;a[(Pb+48|0)>>2]=0;d=262;break;case 236:var Kg=Pb+28|0,d=0==(a[Kg>>2]|0)?237:238;break;case 237:a[Kg>>2]=1;d=238;break;case 238:a[(Pb+40|0)>>2]=1;a[(Pb+44|0)>>2]=1;var Wg=Pb+32|0,d=-1==(a[Wg>>2]|0)?239:240;break;case 239:a[Wg>>2]=1;d=240;break;case 240:a[(Pb+36|0)>>2]=1;a[(Pb+48|0)>>2]=0;d=262;break;case 241:var Xg=Pb+28|0,d=0==(a[Xg>> +2]|0)?242:243;break;case 242:a[Xg>>2]=1;d=243;break;case 243:var ke=Pb+85096|0,d=0==(a[ke>>2]|0)?244:245;break;case 244:a[ke>>2]=2;d=245;break;case 245:a[(Pb+40|0)>>2]=1;a[(Pb+44|0)>>2]=1;var kg=Pb+32|0,d=-1==(a[kg>>2]|0)?246:247;break;case 246:a[kg>>2]=1;d=247;break;case 247:a[(Pb+36|0)>>2]=1;a[(Pb+48|0)>>2]=0;d=262;break;case 248:var Zg=Pb+28|0,d=0==(a[Zg>>2]|0)?249:250;break;case 249:a[Zg>>2]=1;d=250;break;case 250:var od=Pb+85096|0,d=0==(a[od>>2]|0)?251:252;break;case 251:a[od>>2]=2;d=252;break; +case 252:a[(Pb+40|0)>>2]=2;a[(Pb+44|0)>>2]=1;var jh=Pb+32|0,d=-1==(a[jh>>2]|0)?253:254;break;case 253:a[jh>>2]=1;d=254;break;case 254:a[(Pb+36|0)>>2]=1;a[(Pb+48|0)>>2]=0;d=262;break;case 255:var lg=Pb+28|0,d=0==(a[lg>>2]|0)?256:257;break;case 256:a[lg>>2]=1;d=257;break;case 257:var Je=Pb+85096|0,d=0==(a[Je>>2]|0)?258:259;break;case 258:a[Je>>2]=2;d=259;break;case 259:a[(Pb+40|0)>>2]=2;a[(Pb+44|0)>>2]=1;var kh=Pb+32|0,d=-1==(a[kh>>2]|0)?260:261;break;case 260:a[kh>>2]=1;d=261;break;case 261:a[(Pb+ +36|0)>>2]=1;a[(Pb+48|0)>>2]=1;d=262;break;case 262:var lh=a[(k+232|0)>>2];a[(a[D>>2]|0)>>2]=0>(lh|0)?3:lh;var Dh=Math.pow(10,b[(k+236|0)>>2]/-10);b[(a[D>>2]+4|0)>>2]=Dh;var pf=k+240|0,le=a[pf>>2];if(-1==(le|0))d=263;else if(0==(le|0))d=264;else var mh=le,d=266;break;case 263:a[pf>>2]=0;d=264;break;case 264:2>a[Td>>2]>>>0?d=265:(mh=0,d=266);break;case 265:mh=a[pf>>2]=1;d=266;break;case 266:a[(c+184|0)>>2]=mh;d=0>(lo(k)|0)?267:268;break;case 267:$k(k,1);d=268;break;case 268:d=0>(uk(k)|0)?269:270;break; +case 269:vk(k,0);d=270;break;case 270:d=0>wk(k)?271:272;break;case 271:xk(k,0);d=272;break;case 272:var nh=ko(k)|1;tk(k,nh);d=0>(a[Qe>>2]|0)?273:274;break;case 273:a[Qe>>2]=4;d=274;break;case 274:var Lg=k+224|0,d=0>b[Lg>>2]?275:276;break;case 275:b[Lg>>2]=4;d=276;break;case 276:var Jf=k+248|0,ih=b[Jf>>2];if(0>ih)d=277;else var Sd=ih,d=278;break;case 277:Sd=b[Jf>>2]=0;d=278;break;case 278:var qf=k+244|0,d=0>(a[qf>>2]|0)?279:280;break;case 279:a[qf>>2]=1;d=280;break;case 280:b[(c+188|0)>>2]=Sd;b[(c+ +192|0)>>2]=b[(k+252|0)>>2];var Gd=-b[(k+228|0)>>2];b[(c+196|0)>>2]=Gd;var hi=Math.pow(10,0.10000000149011612*Gd);b[(c+200|0)>>2]=hi;b[(c+204|0)>>2]=b[Lg>>2];a[(c+208|0)>>2]=a[Qe>>2];a[(c+212|0)>>2]=a[(k+208|0)>>2];a[(c+216|0)>>2]=a[(k+212|0)>>2];a[(c+220|0)>>2]=a[(k+216|0)>>2];a[(c+84|0)>>2]=a[(k+132|0)>>2];a[(c+88|0)>>2]=a[(k+136|0)>>2];a[(c+92|0)>>2]=a[qf>>2];var Kf=k+148|0;a[(c+96|0)>>2]=a[Kf>>2]&2;var Mg=a[Kf>>2]>>>2&63|0,Md=c+232|0;if(32>Mg)var Lf=Mg,d=282;else d=281;break;case 281:Lf=Mg-64; +d=282;break;case 282:b[Md>>2]=0.25*Lf;var Ng=a[Kf>>2]>>>8&63|0,ii=c+228|0;if(32>Ng)var mg=Ng,d=284;else d=283;break;case 283:mg=Ng-64;d=284;break;case 284:b[ii>>2]=0.25*mg;var ng=a[Kf>>2]>>>14&63|0,oh=c+236|0;if(32>ng)var ph=ng,d=286;else d=285;break;case 285:ph=ng-64;d=286;break;case 286:var mi=0.25*ph;b[oh>>2]=mi;var Mf=a[Kf>>2]>>>20&63|0,qh=c+240|0;if(32>Mf)var $g=Mf,d=288;else d=287;break;case 287:$g=Mf-64;d=288;break;case 288:b[qh>>2]=mi+0.25*$g;var Og=b[(k+20|0)>>2],ah=b[(k+24|0)>>2],rh=Og* +ah,sh=0*ah,ni=b[(k+28|0)>>2],Pg=0*ni,Hh=Og*ni;if(2==(a[K>>2]|0))d=289;else var Qg=rh,bh=sh,Ih=Pg,Jh=Hh,d=291;break;case 289:1==(a[F>>2]|0)?d=290:(Qg=rh,bh=sh,Ih=Pg,Jh=Hh,d=291);break;case 290:var oi=0.5*(sh+Hh),Qg=0.5*(rh+Pg),bh=oi,Jh=Ih=0,d=291;break;case 291:b[(c+264|0)>>2]=Qg;b[(c+268|0)>>2]=bh;b[(c+272|0)>>2]=Ih;b[(c+276|0)>>2]=Jh;var Kh=c+39832|0;a[Kh>>2]=0;var Nf=c+39836|0;a[Nf>>2]=0;d=0==(a[hg>>2]|0)?292:293;break;case 292:var cf=(Math.imul((72E3*a[Nc>>2]&-1)+72E3|0,a[ig>>2])|0)%(a[$b>>2]| +0)&-1;a[Kh>>2]=cf;a[Nf>>2]=cf;d=293;break;case 293:d=0==(k|0)?300:294;break;case 294:d=-487877==(a[(k|0)>>2]|0)?295:300;break;case 295:var rf=a[f>>2],d=0==(rf|0)?300:296;break;case 296:var Ke=rf+84040|0;a[(rf+84748|0)>>2]=0;d=0==(a[(k+68|0)>>2]|0)?298:297;break;case 297:a:for(var th=k,ce=0,ce=1;;)switch(ce){case 1:var pi=a[(th+288|0)>>2],ce=1==(a[(pi+85696|0)>>2]&5|0)?2:8;break;case 2:var og=Oo(th,0,0),pg=xd(og,1),ce=0==(pg|0)?8:3;break;case 3:var qg=Oo(th,pg,og),ce=qg>>>0>og>>>0?5:4;break;case 4:if(0== +(qg|0))ce=7;else var Le=0,ce=6;break;case 5:ua(pg);ce=8;break;case 6:Dk(pi,l[pg+Le|0],1);var uh=Le+1|0;uh>>>0>>0?(Le=uh,ce=6):ce=7;break;case 7:ua(pg);ce=8;break;case 8:break a}d=298;break;case 298:b[(rf+85684|0)>>2]=0;var Lh=rf+156|0;ra(Ke,0,704);d=0==(a[Lh>>2]|0)?300:299;break;case 299:a:{var Mh=k,Hd=0,Nh=m;m=m+2880|0;for(Hd=1;;)switch(Hd){case 1:var ch=Nh,Xc=a[(Mh+288|0)>>2],qi=a[(Xc+16|0)>>2];if(1==(qi|0))var ri=128,Hd=3;else Hd=2;break;case 2:ri=16E3>(a[(Xc+64|0)>>2]|0)?32:64;Hd=3;break; +case 3:if(0==(a[(Xc+104|0)>>2]|0))Hd=4;else var Oh=ri,Hd=5;break;case 4:Oh=a[(Xc+120|0)>>2];Hd=5;break;case 5:var vh=(Math.imul(Oh,(72E3*qi&-1)+72E3|0)|0)/(a[(Xc+64|0)>>2]|0)&-1,Ph=a[(Xc+24|0)>>2]+156|0,Qh=Xc+85792|0;a[Qh>>2]=vh;Hd=(vh|0)<(Ph|0)|2880<(vh|0)?6:7;break;case 6:a[(Xc+156|0)>>2]=0;Hd=13;break;case 7:a[(Xc+85784|0)>>2]=0;a[(Xc+85788|0)>>2]=0;a[(Xc+85760|0)>>2]=0;a[(Xc+85764|0)>>2]=0;a[(Xc+85768|0)>>2]=1;a[(Xc+85772|0)>>2]=0;var wh=Xc+85780|0,Hd=0==(a[wh>>2]|0)?8:11;break;case 8:var Rh= +Tc(1600);a[wh>>2]=Rh;var kc=Xc+85776|0,Hd=0==(Rh|0)?10:9;break;case 9:a[kc>>2]=400;Hd=11;break;case 10:a[kc>>2]=0;Oc(Xc,145584,(S=m,m=m+1|0,m=m+7>>3<<3,a[S>>2]=0,S));a[(Xc+156|0)>>2]=0;Hd=13;break;case 11:var bd=ch|0;ra(bd,0,2880);b:for(var Kd=Xc,id=bd,Me=0,Me=1;;)switch(Me){case 1:l[id]=-1;var rg=id+1|0,Eh=l[rg]<<3|7;l[rg]=Eh;var ti=Kd+64|0,Fh=Eh<<1|15999<(a[ti>>2]|0)&1;l[rg]=Fh;var Sh=Kd+16|0,ui=((Fh&255)<<1&62|a[Sh>>2]&1)<<2|1;l[rg]=ui&255;var dh=(ui<<1|0==(a[(Kd+160|0)>>2]|0)&1)&255;l[rg]=dh; +var Rg=id+2|0,fi=(l[Rg]&255)<<4|a[(Kd+84744|0)>>2]&15;l[Rg]=fi&255;var ed=fi<<2&124|a[(Kd+20|0)>>2]&3;l[Rg]=ed<<1&255;var Vi=(ed<<2|a[(Kd+172|0)>>2]&1)&255;l[Rg]=Vi;var xh=id+3|0,Jc=(l[xh]&255)<<2|a[(Kd+180|0)>>2]&3;l[xh]=Jc&255;var ji=Jc<<2|a[(Kd+84756|0)>>2]&3;l[xh]=ji&255;var ki=ji<<1|a[(Kd+164|0)>>2]&1;l[xh]=ki&255;var Ki=ki<<1|a[(Kd+168|0)>>2]&1;l[xh]=Ki&255;l[xh]=(Ki<<2|a[(Kd+176|0)>>2]&3)&255;l[id]=-1;var vd=dh&-15,vi=a[Sh>>2];if(1==(vi|0))var nj=128,Me=3;else Me=2;break;case 2:nj=16E3>(a[ti>> +2]|0)?32:64;Me=3;break;case 3:if(0==(a[(Kd+104|0)>>2]|0))Me=4;else var Wi=nj,Me=5;break;case 4:Wi=a[(Kd+120|0)>>2];Me=5;break;case 5:if(0==(a[(Kd+152|0)>>2]|0))Me=6;else var Th=0,Uh=vi,wi=Vi,Me=7;break;case 6:var oj=no(Wi,vi,a[ti>>2])<<28>>24,Vh=a[Sh>>2],gj=l[Rg],Th=oj,Uh=Vh,wi=gj,Me=7;break;case 7:l[rg]=(1==(Uh|0)?10:2)|vd;l[Rg]=(wi&13|Th)&255;break b}var Wh=a[Qh>>2];if(0==(Wh|0))Hd=13;else var sf=0,Hd=12;break;case 12:Dk(Xc,l[ch+sf|0],1);var sg=sf+1|0;sg>>>0>>0?(sf=sg,Hd=12):Hd=13;break;case 13:m= +Nh;break a}}d=300;break;case 300:a:for(var Ab=c,Ob=0,Ob=1;;)switch(Ob){case 1:var tg=Ab+8|0,Ob=0==(a[tg>>2]|0)?2:40;break;case 2:a[tg>>2]=1;a[(Ab+21312|0)>>2]=0;var xi=Ab+16|0,Li=Ab+85796|0,Db=a[Li>>2],tf=a[(Ab+64|0)>>2]|0,eh=Ab+224|0,uf=Ab+196|0,yh=0,Ob=4;break;case 3:if(22>(Xi|0))yh=Xi,Ob=4;else var ug=0,Ob=10;break;case 4:var Nd=a[(Ab+21360+(yh<<2)|0)>>2],Xi=yh+1|0,yi=a[(Ab+21360+(Xi<<2)|0)>>2],zi=Db+24+(yh<<2)|0;b[zi>>2]=9.999999933815813E36;if((Nd|0)<(yi|0))var Yi=Nd,Ob=5;else Ob=3;break;case 5:var Zi= +zg(xi,tf*(Yi|0)/1152),Xh=b[eh>>2],Ob=0>2])),qj=b[zi>>2];b[zi>>2]=qj(Rj|0))ug=Rj,Ob=10;else var rj=0,Ob=16;break;case 10:var Oi=a[(Ab+21508+(ug<<2)|0)>>2],Rj=ug+1|0,sj=a[(Ab+21508+(Rj<<2)|0)>>2],Sj=Db+164+(ug<<2)|0;b[Sj>>2]=9.999999933815813E36;if((Oi|0)<(sj|0))var gi=Oi,Ob=11;else Ob=9;break;case 11:var Pi= +zg(xi,tf*(gi|0)/1152),Qi=b[eh>>2],Ob=0>2])),Ti=b[Sj>>2];b[Sj>>2]=Ti>2],uj=rj+1|0,vg=Ab+21452+(uj<<2)|0,Tj=a[vg>>2],Ai=Db+112+(rj<<2)|0;b[Ai>>2]=9.999999933815813E36;if((tj|0)<(Tj|0))var Sg=tj,Ob=17;else var Uj= +9.999999933815813E36,Ob=21;break;case 17:var Vj=zg(xi,tf*(Sg|0)/384),hj=b[eh>>2],Ob=0>2])),kj=b[Ai>>2],Fk=kj>2]=Fk;var Mj=Sg+1|0;(Mj|0)<(Tj|0)?(Sg=Mj,Ob=17):(Uj=Fk,Ob=21);break;case 21:b[Ai>>2]=Uj*(a[vg>>2]-a[fj>>2]|0);13>(uj|0)?(rj=uj,Ob=16):Ob=15;break;case 22:var Nj=a[(Ab+21536+(si<<2)|0)>>2],sl=si+1|0,Pj=a[(Ab+21536+(sl<<2)|0)>>2],Wj=Db+188+(si<< +2)|0;b[Wj>>2]=9.999999933815813E36;if((Nj|0)<(Pj|0))var Lj=Nj,Ob=23;else var Ak=9.999999933815813E36,Ob=27;break;case 23:var tl=zg(xi,tf*(Lj|0)/384),ul=b[eh>>2],Ob=0>2])),vl=b[Wj>>2],Gk=vl>2]=Gk;var Xj=Lj+1|0;(Xj|0)<(Pj|0)?(Lj=Xj,Ob=23):(Ak=Gk,Ob=27);break;case 27:b[Wj>>2]=Ak*(a[lj>>2]-a[mj>>2]|0);6>(sl|0)?(si=sl,Ob=22):Ob=28;break;case 28:Ob=0==(a[(Ab+ +220|0)>>2]|0)?30:29;break;case 29:b[(Db+24|0)>>2]=9.999999682655225E-21;b[(Db+28|0)>>2]=9.999999682655225E-21;b[(Db+32|0)>>2]=9.999999682655225E-21;b[(Db+36|0)>>2]=9.999999682655225E-21;b[(Db+40|0)>>2]=9.999999682655225E-21;b[(Db+44|0)>>2]=9.999999682655225E-21;b[(Db+48|0)>>2]=9.999999682655225E-21;b[(Db+52|0)>>2]=9.999999682655225E-21;b[(Db+56|0)>>2]=9.999999682655225E-21;b[(Db+60|0)>>2]=9.999999682655225E-21;b[(Db+64|0)>>2]=9.999999682655225E-21;b[(Db+68|0)>>2]=9.999999682655225E-21;b[(Db+72|0)>> +2]=9.999999682655225E-21;b[(Db+76|0)>>2]=9.999999682655225E-21;b[(Db+80|0)>>2]=9.999999682655225E-21;b[(Db+84|0)>>2]=9.999999682655225E-21;b[(Db+88|0)>>2]=9.999999682655225E-21;b[(Db+92|0)>>2]=9.999999682655225E-21;b[(Db+96|0)>>2]=9.999999682655225E-21;b[(Db+100|0)>>2]=9.999999682655225E-21;b[(Db+104|0)>>2]=9.999999682655225E-21;b[(Db+108|0)>>2]=9.999999682655225E-21;b[(Db+164|0)>>2]=9.999999682655225E-21;b[(Db+168|0)>>2]=9.999999682655225E-21;b[(Db+172|0)>>2]=9.999999682655225E-21;b[(Db+176|0)>> +2]=9.999999682655225E-21;b[(Db+180|0)>>2]=9.999999682655225E-21;b[(Db+184|0)>>2]=9.999999682655225E-21;b[(Db+112|0)>>2]=9.999999682655225E-21;b[(Db+116|0)>>2]=9.999999682655225E-21;b[(Db+120|0)>>2]=9.999999682655225E-21;b[(Db+124|0)>>2]=9.999999682655225E-21;b[(Db+128|0)>>2]=9.999999682655225E-21;b[(Db+132|0)>>2]=9.999999682655225E-21;b[(Db+136|0)>>2]=9.999999682655225E-21;b[(Db+140|0)>>2]=9.999999682655225E-21;b[(Db+144|0)>>2]=9.999999682655225E-21;b[(Db+148|0)>>2]=9.999999682655225E-21;b[(Db+152| +0)>>2]=9.999999682655225E-21;b[(Db+156|0)>>2]=9.999999682655225E-21;b[(Db+160|0)>>2]=9.999999682655225E-21;b[(Db+188|0)>>2]=9.999999682655225E-21;b[(Db+192|0)>>2]=9.999999682655225E-21;b[(Db+196|0)>>2]=9.999999682655225E-21;b[(Db+200|0)>>2]=9.999999682655225E-21;b[(Db+204|0)>>2]=9.999999682655225E-21;b[(Db+208|0)>>2]=9.999999682655225E-21;Ob=30;break;case 30:var wl=zg(xi,-1),Hk=b[eh>>2],Ob=0>2])),xl=Math.log(pl)/Math.LN10*10;b[(a[Li>>2]+20|0)>>2]=xl;b[3602]=0;var $i=1,Ob=34;break;case 34:var rl=Math.pow($i|0,1.3333333333333333);b[(14408+($i<<2)|0)>>2]=rl;var yl=$i+1|0;8208>(yl|0)?($i=yl,Ob=34):Ob=35;break;case 35:b[26816]=0;var Yj=1,zl=b[3602],Ob=36;break;case 36:var jm=(Yj|0)-0.5,Al=b[(14408+(Yj<<2)|0)>>2],lm=Math.pow(0.5*(zl+Al),0.75);b[(107264+(Yj<<2)|0)>>2]=jm-lm;var al=Yj+1|0;if(8208>(al|0))Yj=al,zl=Al,Ob=36;else var Jk=0,Ob=37;break;case 37:var nm=Math.pow(2,-0.1875*(Jk- +210|0));b[(83560+(Jk<<2)|0)>>2]=nm;var Bl=Jk+1|0;if(257>(Bl|0))Jk=Bl,Ob=37;else var Zj=0,Ob=38;break;case 38:var Cl=Math.pow(2,0.25*(Zj-326|0));b[(47240+(Zj<<2)|0)>>2]=Cl;var aj=Zj+1|0;374>(aj|0)?(Zj=aj,Ob=38):Ob=39;break;case 39:b:for(var Bi=Ab,Of=0,Of=1;;)switch(Of){case 1:a[(Bi+85816|0)>>2]=50;var wb=2,Of=2;break;case 2:var Kk=0,Of=3;break;case 3:var ak=Kk+1|0;(a[(Bi+21360+(ak<<2)|0)>>2]|0)<(wb|0)?(Kk=ak,Of=3):Of=4;break;case 4:var we=a[(11448+(ak<<3)|0)>>2],vj=we,Of=5;break;case 5:var Tg=vj-1| +0;(a[(Bi+21360+((vj+1|0)<<2)|0)>>2]|0)>(wb|0)?(vj=Tg,Of=5):Of=6;break;case 6:var Ci=(0>(vj|0)?we:vj)&255;l[(wb-2|0)+(Bi+85100)|0]=Ci;var Dl=a[(11452+(ak<<3)|0)>>2],El=(Ci<<24>>24)+2|0,wj=Dl,Of=7;break;case 7:var om=wj-1|0;(a[(Bi+21360+((El+wj|0)<<2)|0)>>2]|0)>(wb|0)?(wj=om,Of=7):Of=8;break;case 8:l[(wb-1|0)+(Bi+85100)|0]=(0>(wj|0)?Dl:wj)&255;var Fl=wb+2|0;577>(Fl|0)?(wb=Fl,Of=2):Of=9;break;case 9:break b}a[Ab+85824>>2]=66;var bl=Ab+232|0,xj=Math.pow(10,0.10000000149011612*(b[bl>>2]-0.5));b[(Ab+84768| +0)>>2]=xj;b[(Ab+84772|0)>>2]=xj;b[(Ab+84776|0)>>2]=xj;b[(Ab+84780|0)>>2]=xj;b[(Ab+84784|0)>>2]=xj;b[(Ab+84788|0)>>2]=xj;b[(Ab+84792|0)>>2]=xj;var Di=Ab+228|0,Ei=Math.pow(10,0.10000000149011612*(b[Di>>2]-0.25));b[(Ab+84796|0)>>2]=Ei;b[(Ab+84800|0)>>2]=Ei;b[(Ab+84804|0)>>2]=Ei;b[(Ab+84808|0)>>2]=Ei;b[(Ab+84812|0)>>2]=Ei;b[(Ab+84816|0)>>2]=Ei;b[(Ab+84820|0)>>2]=Ei;var cl=Ab+236|0,zh=Math.pow(10,0.10000000149011612*(b[cl>>2]-0.02500000037252903));b[(Ab+84824|0)>>2]=zh;b[(Ab+84828|0)>>2]=zh;b[(Ab+84832| +0)>>2]=zh;b[(Ab+84836|0)>>2]=zh;b[(Ab+84840|0)>>2]=zh;b[(Ab+84844|0)>>2]=zh;b[(Ab+84848|0)>>2]=zh;var Gl=Ab+240|0,tm=Math.pow(10,0.10000000149011612*(b[Gl>>2]+0.5));b[(Ab+84852|0)>>2]=tm;var Yh=Math.pow(10,0.10000000149011612*(b[bl>>2]-2));b[(Ab+84856|0)>>2]=Yh;b[(Ab+84860|0)>>2]=Yh;b[(Ab+84864|0)>>2]=Yh;var bk=Math.pow(10,0.10000000149011612*(b[Di>>2]-1));b[(Ab+84868|0)>>2]=bk;b[(Ab+84872|0)>>2]=bk;b[(Ab+84876|0)>>2]=bk;b[(Ab+84880|0)>>2]=bk;var Zh=Math.pow(10,0.10000000149011612*(b[cl>>2]-0.05000000074505806)); +b[(Ab+84884|0)>>2]=Zh;b[(Ab+84888|0)>>2]=Zh;b[(Ab+84892|0)>>2]=Zh;b[(Ab+84896|0)>>2]=Zh;b[(Ab+84900|0)>>2]=Zh;var Fi=Math.pow(10,0.10000000149011612*(b[Gl>>2]+0.5));b[(Ab+84904|0)>>2]=Fi;Ob=40;break;case 40:break a}a:{var Pf=k,Ba=0,Gi=m;m=m+768|0;for(Ba=1;;)switch(Ba){case 1:var yj=Gi,um=Gi+256,zj=Gi+512,Lb=a[(Pf+288|0)>>2],ck=Lb+16|0,dk=Lb+64|0,$h=a[dk>>2]|0,Qm=-b[(Lb+280|0)>>2],Hl=Lb+85800|0,Ba=0==(a[Hl>>2]|0)?2:60;break;case 2:ra(zj,0,256);var wd=xd(1,6504);a[Hl>>2]=wd;a[(wd+6500|0)>>2]=a[(Pf+ +144|0)>>2];a[(Lb+27800|0)>>2]=0;var hc=a[(Lb+27796|0)>>2]=0,Ba=3;break;case 3:var Aj=0,Ba=4;break;case 4:b[(Lb+21564+(hc<<8)+(Aj<<2)|0)>>2]=1.0000000200408773E20;b[(Lb+22588+(hc<<8)+(Aj<<2)|0)>>2]=1.0000000200408773E20;b[(Lb+24636+(hc<<8)+(Aj<<2)|0)>>2]=1;b[(Lb+23612+(hc<<8)+(Aj<<2)|0)>>2]=1;var Rm=Aj+1|0;if(64>(Rm|0))Aj=Rm,Ba=4;else var ek=0,Ba=5;break;case 5:b[(Lb+26636+(244*hc&-1)+(ek<<2)|0)>>2]=1.0000000200408773E20;b[(Lb+25660+(244*hc&-1)+(ek<<2)|0)>>2]=1.0000000200408773E20;var Bj=ek+1|0;22> +(Bj|0)?(ek=Bj,Ba=5):Ba=6;break;case 6:var Sm=Lb+27780+(hc<<2)|0,cd=0,Ba=7;break;case 7:b[(Lb+26636+(244*hc&-1)+88+(cd<<2)|0)>>2]=1.0000000200408773E20;b[(Lb+25660+(244*hc&-1)+88+(cd<<2)|0)>>2]=1.0000000200408773E20;b[(Lb+26636+(244*hc&-1)+100+(cd<<2)|0)>>2]=1.0000000200408773E20;b[(Lb+25660+(244*hc&-1)+100+(cd<<2)|0)>>2]=1.0000000200408773E20;b[(Lb+26636+(244*hc&-1)+112+(cd<<2)|0)>>2]=1.0000000200408773E20;b[(Lb+25660+(244*hc&-1)+112+(cd<<2)|0)>>2]=1.0000000200408773E20;b[(Lb+26636+(244*hc&-1)+124+ +(cd<<2)|0)>>2]=1.0000000200408773E20;b[(Lb+25660+(244*hc&-1)+124+(cd<<2)|0)>>2]=1.0000000200408773E20;b[(Lb+26636+(244*hc&-1)+136+(cd<<2)|0)>>2]=1.0000000200408773E20;b[(Lb+25660+(244*hc&-1)+136+(cd<<2)|0)>>2]=1.0000000200408773E20;b[(Lb+26636+(244*hc&-1)+148+(cd<<2)|0)>>2]=1.0000000200408773E20;b[(Lb+25660+(244*hc&-1)+148+(cd<<2)|0)>>2]=1.0000000200408773E20;b[(Lb+26636+(244*hc&-1)+160+(cd<<2)|0)>>2]=1.0000000200408773E20;b[(Lb+25660+(244*hc&-1)+160+(cd<<2)|0)>>2]=1.0000000200408773E20;b[(Lb+26636+ +(244*hc&-1)+172+(cd<<2)|0)>>2]=1.0000000200408773E20;b[(Lb+25660+(244*hc&-1)+172+(cd<<2)|0)>>2]=1.0000000200408773E20;b[(Lb+26636+(244*hc&-1)+184+(cd<<2)|0)>>2]=1.0000000200408773E20;b[(Lb+25660+(244*hc&-1)+184+(cd<<2)|0)>>2]=1.0000000200408773E20;b[(Lb+26636+(244*hc&-1)+196+(cd<<2)|0)>>2]=1.0000000200408773E20;b[(Lb+25660+(244*hc&-1)+196+(cd<<2)|0)>>2]=1.0000000200408773E20;b[(Lb+26636+(244*hc&-1)+208+(cd<<2)|0)>>2]=1.0000000200408773E20;b[(Lb+25660+(244*hc&-1)+208+(cd<<2)|0)>>2]=1.0000000200408773E20; +b[(Lb+26636+(244*hc&-1)+220+(cd<<2)|0)>>2]=1.0000000200408773E20;b[(Lb+25660+(244*hc&-1)+220+(cd<<2)|0)>>2]=1.0000000200408773E20;b[(Lb+26636+(244*hc&-1)+232+(cd<<2)|0)>>2]=1.0000000200408773E20;b[(Lb+25660+(244*hc&-1)+232+(cd<<2)|0)>>2]=1.0000000200408773E20;a[Sm>>2]=0;var Tm=cd+1|0;3>(Tm|0)?(cd=Tm,Ba=7):Ba=8;break;case 8:b[(Lb+27636+(36*hc&-1)|0)>>2]=10;b[(Lb+27636+(36*hc&-1)+4|0)>>2]=10;b[(Lb+27636+(36*hc&-1)+8|0)>>2]=10;b[(Lb+27636+(36*hc&-1)+12|0)>>2]=10;b[(Lb+27636+(36*hc&-1)+16|0)>>2]=10;b[(Lb+ +27636+(36*hc&-1)+20|0)>>2]=10;b[(Lb+27636+(36*hc&-1)+24|0)>>2]=10;b[(Lb+27636+(36*hc&-1)+28|0)>>2]=10;b[(Lb+27636+(36*hc&-1)+32|0)>>2]=10;var Um=hc+1|0;4>(Um|0)?(hc=Um,Ba=3):Ba=9;break;case 9:b[(Lb+27616|0)>>2]=0;b[(Lb+27612|0)>>2]=0;var Il=wd;Ro(Il,$h,1024,576,22,Lb+21360|0);var Lk=yj|0,ai=um|0;So(Il,$h,1024,Lk,ai);var bi=wd+2148|0,Hi=a[bi>>2];if(0<(Hi|0))var Mk=0,Ba=10;else Ba=13;break;case 10:if(13>b[(yj+(Mk<<2)|0)>>2])var Vm=0,Ba=12;else Ba=11;break;case 11:Vm=0;Ba=12;break;case 12:var Nk=Math.pow(10, +Vm/10);b[(zj+(Mk<<2)|0)>>2]=Nk;var Ok=Mk+1|0;(Ok|0)<(Hi|0)?(Mk=Ok,Ba=10):Ba=13;break;case 13:var Cj=wd+1204|0,Wm=Cj,Jl=zj|0,Ba=0==(To(wd+2156|0,Cj,Hi,Lk,ai,Jl)|0)?14:60;break;case 14:Ba=0<(a[bi>>2]|0)?15:21;break;case 15:var Kl=wd+1716|0,vm=Lb+85796|0,df=Qm,Xm=wd+256|0,Dj=0,bj=0,Ba=16;break;case 16:var ci=Kl+(bj<<2)|0;if(0<(a[ci>>2]|0))Ba=17;else var Pk=9.999999933815813E36,Ym=Dj,Ba=20;break;case 17:var di=a[ci>>2],Qk=di|0,Ll=1<(di|0)?di:1,Ml=0,fk=1E37,gk=Dj,Ba=18;break;case 18:var Zm=0.1*(zg(ck, +$h*(gk|0)/1024E3*1E3)-20),Rk=Math.pow(10,Zm)*Qk,Nl=fk>Rk?Rk:fk,hk=Ml+1|0,$m=gk+1|0;(hk|0)<(di|0)?(Ml=hk,fk=Nl,gk=$m,Ba=18):Ba=19;break;case 19:var an=Dj+Ll|0,Pk=Nl,Ym=an,Ba=20;break;case 20:b[(a[vm>>2]+212+(bj<<2)|0)>>2]=Pk;var Ol=20*(b[(yj+(bj<<2)|0)>>2]/10-1),bn=6(a[dk>>2]|0)?30:Pl)-8)/10);b[(Xm+(bj<<2)|0)>>2]=Ej*(a[ci>>2]|0);var dl=bj+1|0;(dl|0)<(a[bi>>2]|0)?(Dj=Ym,bj=dl,Ba=16):Ba=21;break;case 21:var cj=wd+2160|0,Fj=cj,cn=Lb+21452|0;Ro(Fj,$h,256, +192,13,cn);So(Fj,$h,256,Lk,ai);var Gj=wd+4308|0,Ql=a[Gj>>2];if(0<(Ql|0))Ba=22;else var dn=Ql,Ba=34;break;case 22:var ik=wd+3876|0,Ii=Lb+85796|0,Sk=Qm,Rl=wd+2416|0,jk=0,Ug=0,Ba=23;break;case 23:var Ji=b[(yj+(Ug<<2)|0)>>2];if(13>Ji)var kk=-8.25,Ba=25;else Ba=24;break;case 24:kk=-4.5*(Ji-13)/11+-8.25*(24-Ji)/11;Ba=25;break;case 25:var Tk=Math.pow(10,kk/10);b[(zj+(Ug<<2)|0)>>2]=Tk;var lk=ik+(Ug<<2)|0;if(0<(a[lk>>2]|0))Ba=26;else var el=9.999999933815813E36,fl=jk,Ba=29;break;case 26:var en=a[lk>>2],zm= +en|0,Am=1<(en|0)?en:1,hl=0,yk=1E37,zk=jk,Ba=27;break;case 27:var Fm=0.1*(zg(ck,$h*(zk|0)/256E3*1E3)-20),jl=Math.pow(10,Fm)*zm,kl=yk>jl?jl:yk,ll=hl+1|0,Gm=zk+1|0;(ll|0)<(en|0)?(hl=ll,yk=kl,zk=Gm,Ba=27):Ba=28;break;case 28:var Hm=jk+Am|0,el=kl,fl=Hm,Ba=29;break;case 29:b[(a[Ii>>2]+468+(Ug<<2)|0)>>2]=el;var Uk=7*(Ji/12-1);if(12Ji)Ba=32;else var gn=fn,Ba=33;break;case 32:var Im=2.3*Math.log(1-fn)+ +1,gn=fn*Im,Ba=33;break;case 33:var ml=6(a[dk>>2]|0)?30:Jm)-8)/10);b[(Rl+(Ug<<2)|0)>>2]=Km*(a[lk>>2]|0);var nl=Ug+1|0,hn=a[Gj>>2];(nl|0)<(hn|0)?(jk=fl,Ug=nl,Ba=23):(dn=hn,Ba=34);break;case 34:Ba=0==(To(wd+4316|0,wd+3364|0,dn,Lk,ai,Jl)|0)?35:60;break;case 35:b[17970]=3.6517412662506104;b[17968]=31.62277603149414;b:for(var Lm=Lb,mk=0,mk=1;;)switch(mk){case 1:var jn=0,mk=2;break;case 2:var ol=(jn|0)+0.5,Mm=0.42-0.5*Math.cos(0.006135923151542565*ol),Nm=0.08* +Math.cos(0.01227184630308513*ol);b[(520+(jn<<2)|0)>>2]=Mm+Nm;var ql=jn+1|0;if(1024>(ql|0))jn=ql,mk=2;else var kn=0,mk=3;break;case 3:var Om=0.5*(1-Math.cos(0.02454369260617026*((kn|0)+0.5)));b[(8+(kn<<2)|0)>>2]=Om;var dm=kn+1|0;128>(dm|0)?(kn=dm,mk=3):mk=4;break;case 4:a[(Lm+85820|0)>>2]=72;break b}var fm=$h,Bn=Math.exp(-2.302585092994046/(0.01*fm/192));b[(wd+6496|0)>>2]=Bn;var Cn=0==(a[(Lb+96|0)>>2]|0)?3.5:1,Tn=Lb+192|0,Un=b[Tn>>2];b[Tn>>2]=0==Un?Cn:Un;var Vk=a[bi>>2],Ba=0<(Vk|0)?36:40;break;case 36:var gm= +Vk-1|0,Vn=0,Ba=37;break;case 37:var hm=Wm+(Vn<<3)+4|0,Ba=(a[hm>>2]|0)>(gm|0)?38:39;break;case 38:a[hm>>2]=gm;Ba=39;break;case 39:var im=Vn+1|0;(im|0)<(Vk|0)?(Vn=im,Ba=37):Ba=40;break;case 40:var Dn=Math.pow(10,576*(a[(Lb+76|0)>>2]|0)/fm*-1.2),fh=Lb+85796|0;b[(a[fh>>2]+16|0)>>2]=Dn;b[(a[fh>>2]+8|0)>>2]=0.009999999776482582;b[(a[fh>>2]+12|0)>>2]=1;Ba=-1==(a[(Lb+208|0)>>2]|0)?44:41;break;case 41:var Hj=9.765625E-4*(a[dk>>2]|0),nk=0,km=0,ln=0,Ba=42;break;case 42:var mm=Hj+nk,En=zg(ck,mm)/10,Fn=1/Math.pow(10, +En);b[(a[fh>>2]+724+(ln<<2)|0)>>2]=Fn;var mn=a[fh>>2],pm=km+b[(mn+724+(ln<<2)|0)>>2],qm=ln+1|0;512>(qm|0)?(nk=mm,km=pm,ln=qm,Ba=42):Ba=43;break;case 43:var rm=1/pm,sm=mn+2768|0;b[sm>>2]*=rm;var Tl=510,Ba=45;break;case 44:var Ul=a[Gj>>2],Gn=0<(Ul|0),wm=b[(Pf+264|0)>>2],Wn=b[(Pf+268|0)>>2],nn=0>wm?4.400000095367432:wm,Hn=0>Wn?25:Wn,In=wd+6480|0;b[(wd+6488|0)>>2]=nn;b[(wd+6484|0)>>2]=nn;b[In>>2]=nn;b[(wd+6492|0)>>2]=Hn;var Xn=a[(Pf+164|0)>>2];if(4>(Xn|0))var Sl=-7.400000095367432,Ba=47;else Ba=46;break; +case 45:var xm=a[fh>>2]+724+(Tl<<2)|0;b[xm>>2]*=rm;var fd=Tl-1|0;-1<(fd|0)?(Tl=fd,Ba=45):Ba=44;break;case 46:var jd=b[(14200+(Xn<<2)|0)>>2],Sl=jd+b[(Pf+160|0)>>2]*(jd-b[(14200+((Xn+1|0)<<2)|0)>>2]),Ba=47;break;case 47:if(Gn)Ba=48;else var ym=0,Ba=50;break;case 48:var Jn=cj,on=0,gl=Ul,Ba=51;break;case 49:64>(Yn|0)?(ym=Yn,Ba=50):Ba=52;break;case 50:var Vl=cj,Wl=ym,Ba=54;break;case 51:var Kn=Math.pow(10,(gl-on|0)/(gl|0)*Sl*0.10000000149011612);b[(Jn+(on<<2)|0)>>2]=Kn;var Yn=on+1|0,Bm=a[Gj>>2];(Yn|0)< +(Bm|0)?(on=Yn,gl=Bm,Ba=51):Ba=49;break;case 52:var gh=a[bi>>2];if(0<(gh|0))Ba=53;else var Ij=0,Ba=56;break;case 53:var Ln=wd,pn=0,qn=gh,Ba=57;break;case 54:b[(Vl+(Wl<<2)|0)>>2]=1;var Cm=Wl+1|0;64>(Cm|0)?(Wl=Cm,Ba=54):Ba=52;break;case 55:64>(dj|0)?(Ij=dj,Ba=56):Ba=59;break;case 56:var Zn=wd,il=Ij,Ba=58;break;case 57:var ok=Math.pow(10,(qn-pn|0)/(qn|0)*Sl*0.10000000149011612);b[(Ln+(pn<<2)|0)>>2]=ok;var dj=pn+1|0,Dm=a[bi>>2];(dj|0)<(Dm|0)?(pn=dj,qn=Dm,Ba=57):Ba=55;break;case 58:b[(Zn+(il<<2)|0)>>2]= +1;var rn=il+1|0;64>(rn|0)?(il=rn,Ba=58):Ba=59;break;case 59:var Em=wd+4320|0,Mn=Em;ha(Em,wd,2160);Ro(Mn,$h,1024,192,13,cn);Ba=60;break;case 60:m=Gi;break a}}var sn;a:{for(var Xl=g,$n=a[(k+124|0)>>2],Vg=0,Vg=1;;)switch(Vg){case 1:var so=a[(Xl+104|0)>>2],Vg=320<(so|0)?2:5;break;case 2:var tn=a[(Xl|0)>>2],Vg=1==($n|0)?3:4;break;case 3:var Nn=a[(Xl+48|0)>>2],pk=((Math.imul((72E3*tn&-1)+72E3|0,so)|0)/(Nn|0)&-1)<<3,Vg=11;break;case 4:pk=(7680*tn&-1)+7680|0;Vg=11;break;case 5:var Yl=a[(Xl+48|0)>>2],Wk=a[(Xl| +0)>>2],Vg=16E3>(Yl|0)?6:7;break;case 6:var un=106184+(Wk<<6)|0,Vg=8;break;case 7:un=106208+(Wk<<6)|0;Vg=8;break;case 8:1==($n|0)?Vg=9:2==($n|0)?Vg=10:(pk=11520,Vg=11);break;case 9:pk=((Math.imul(a[un>>2],(72E3*Wk&-1)+72E3|0)|0)/(Yl|0)&-1)<<3;Vg=11;break;case 10:pk=(7680*Wk&-1)+7680|0;Vg=11;break;case 11:sn=pk;break a}sn=void 0}a[(c+148|0)>>2]=sn;u=0;d=301;break;case 301:return m=e,u}};Module._lame_encode_buffer_ieee_float=function(a,b,e,f,c,g){return Bn(a,b,e,f,c,g,3,1,32767)};Module._lame_encode_flush= +function(k,d,e){var f=0,c=m;m=m+4608|0;for(f=1;;)switch(f){case 1:var g=c;if(0==(k|0))var h=-3,f=16;else f=2;break;case 2:-487877==(a[(k|0)>>2]|0)?f=3:(h=-3,f=16);break;case 3:var y=a[(k+288|0)>>2];0==(y|0)?(h=-3,f=16):f=4;break;case 4:-487877==(a[(y|0)>>2]|0)?f=5:(h=-3,f=16);break;case 5:var I=y+84032|0,p=a[I>>2];1>(p|0)?(h=0,f=16):f=6;break;case 6:var v=y+16|0,E=576*a[(y+76|0)>>2]&-1,z=E+752|0,A=p-1152|0,D=g;ra(D,0,4608);var w;a:{for(var u=0,u=1;;)switch(u){case 1:var t=a[(v+48|0)>>2]|0,s=a[(v+ +44|0)>>2];if((s|0)<(0.9994999766349792*t&-1|0))var G=1,u=3;else u=2;break;case 2:G=(1.000499963760376*t&-1|0)<(s|0)&1;u=3;break;case 3:w=G;break a}w=void 0}if(0==(w|0))var H=1,K=A,f=8;else f=7;break;case 7:var Q=(a[(y+60|0)>>2]|0)/(a[(y+64|0)>>2]|0),J=(A|0)+16/Q&-1,H=Q,K=J,f=8;break;case 8:var F=E-((K|0)%(E|0)&-1)|0,P=(576>(F|0)?E:0)+F|0;a[(y+84764|0)>>2]=P;var N=(P+K|0)/(E|0)&-1,f=0<(N|0)?10:9;break;case 9:a[I>>2]=0;var C=d,R=0,f=13;break;case 10:var L=y+84748|0,O=y+84036|0,B=0==(e|0),T=g+2304|0, +V=N,U=0,$=d,W=a[L>>2],f=11;break;case 11:var ha=H*(z-a[O>>2]|0)&-1,oa=1152<(ha|0)?1152:ha,ua=e-U|0,ja=Bn(k,D,T,1>(oa|0)?1:oa,$,B?0:ua,0,1,1),fa=$+ja|0,Za=ja+U|0,ib=a[L>>2],aa=V-((W|0)!=(ib|0)&1)|0;0<(aa|0)&-1<(ja|0)?(V=aa,U=Za,$=fa,W=ib,f=11):f=12;break;case 12:a[I>>2]=0;0>(ja|0)?(h=ja,f=16):(C=fa,R=Za,f=13);break;case 13:var ma=e-R|0,ia=0==(e|0),ea=ia?0:ma;a:{var Xa=y,Y=0,Mb=m;m=m+8|0;for(Y=1;;)switch(Y){case 1:var ta=RA(Xa,Mb),Y=0>(ta|0)?3:2;break;case 2:Gs(Xa,ta);a[(Xa+52140|0)>>2]=0;a[(Xa+21312| +0)>>2]=0;Y=3;break;case 3:m=Mb;break a}}var na=Vo(y,C,ea,1);a:for(var Z=y,Da=0,Da=1;;)switch(Da){case 1:var ka=Z+85680|0,Da=0==(a[(Z+128|0)>>2]|0)?7:2;break;case 2:var pa;b:{for(var za=a[(Z+85676|0)>>2],ca=0,ca=1;;)switch(ca){case 1:var va=0,Wb=0,ca=2;break;case 2:var Ea=a[(za+38792+(Wb<<2)|0)>>2]+va|0,Fa=Wb+1|0;12E3>Fa>>>0?(va=Ea,Wb=Fa,ca=2):ca=3;break;case 3:if(0==(Ea|0))var M=-24601,ca=8;else ca=4;break;case 4:var ac=Math.ceil(0.050000000000000044*(Ea>>>0)),Aa=0<=ac?Math.floor(ac):Math.ceil(ac), +wa=12E3,Ga=0,ca=5;break;case 5:var Qa=wa-1|0,ca=0==(wa|0)?7:6;break;case 6:var ec=a[(za+38792+(Qa<<2)|0)>>2]+Ga|0;ec>>>0>>0?(wa=Qa,Ga=ec,ca=5):ca=7;break;case 7:M=64.81999969482422-(Qa>>>0)/100;ca=8;break;case 8:var bc=0,ca=10;break;case 9:var Ma=za+29112|0,n=za+19464|0,qa=za+19380|0,Sa=za+9732|0,Ca=za+84|0,Va=za+38764|0;ra(za,0,40);ra(Ca,0,40);ra(Sa,0,40);ra(qa,0,40);ra(n,0,40);ra(Ma,0,40);var Ha=Va;a[Ha>>2]=0;a[Ha+4>>2]=0;a[Ha+8>>2]=0;a[Ha+12>>2]=0;a[Ha+16>>2]=0;pa=M;break b;case 10:var Ta= +za+38792+(bc<<2)|0,Ua=za+86792+(bc<<2)|0;a[Ua>>2]=a[Ua>>2]+a[Ta>>2]|0;a[Ta>>2]=0;var Nb=bc+1|0;12E3>Nb>>>0?(bc=Nb,ca=10):ca=9}pa=void 0}var gb=pa,Na=Math.abs(pa),$a=246019.999999974752427E-7*Na?5:6;break;case 4:Da=0.024600999937888446>2]=Math.floor(10*gb+0.5)&-1;Da=7;break;case 6:a[(Z+85688|0)>>2]=0;Da=7;break;case 7:Da=0==(a[(Z+132|0)>>2]|0)?11:8;break;case 8:var Ja=Z+85684|0,lb=Math.log(b[Ja>>2]/32767)/Math.LN10* +200,Ra=Math.ceil(lb)&-1;a[(Z+85692|0)>>2]=Ra;Da=0<(Ra|0)?9:10;break;case 9:b[(ka|0)>>2]=Math.floor(32767/b[Ja>>2]*100)/100;Da=11;break;case 10:b[(ka|0)>>2]=-1;Da=11;break;case 11:break a}0>(na|0)?(h=na,f=16):f=14;break;case 14:var sb=na+R|0;0==(a[(k+68|0)>>2]|0)?(h=sb,f=16):f=15;break;case 15:var ob=e-sb|0,hb=ia?0:ob,mb=C+na|0;a:{var Oa=k,nb=0,xb=m;m=m+128|0;for(nb=1;;)switch(nb){case 1:var Ya=xb,Ia=a[(Oa+288|0)>>2],tb;b:{var Ka=Oa,ab=Ya|0,ga=0,xa=m;m=m+8|0;for(ga=1;;)switch(ga){case 1:var La=xa; +if(0==(Ka|0))var yb=0,ga=38;else ga=2;break;case 2:ga=3;break;case 3:var pb=a[(Ka+288|0)>>2];0==(pb|0)|0==(ab|0)?(yb=0,ga=38):ga=4;break;case 4:var r=a[(pb+85696|0)>>2];1==(r&9|0)?ga=5:(yb=0,ga=38);break;case 5:var Hb=r<<1,Bb=ab+1|0;l[ab]=84;var Ib=ab+2|0;l[Bb]=65;var Fb=ab+3|0;l[Ib]=71;var bb=Hb&32,qb=a[(pb+85704|0)>>2],cb=Fb,ya=30,ga=6;break;case 6:var X=0==(qb|0),Jb=cb,db=ya,ga=7;break;case 7:var jb=db-1|0,ga=X?10:8;break;case 8:var Kc=l[qb],ga=0==Kc<<24>>24?10:9;break;case 9:var Uc=qb+1|0,Tc= +Jb+1|0;l[Jb]=Kc;if(0==(jb|0))var lc=Tc,ga=11;else qb=Uc,cb=Tc,ya=jb,ga=6;break;case 10:var vc=Jb+1|0;l[Jb]=bb;0==(jb|0)?(lc=vc,ga=11):(Jb=vc,db=jb,ga=7);break;case 11:var Oc=a[(pb+85708|0)>>2],wc=lc,Tb=30,ga=12;break;case 12:var Ub=0==(Oc|0),ub=wc,fc=Tb,ga=13;break;case 13:var vb=fc-1|0,ga=Ub?16:14;break;case 14:var xc=l[Oc],ga=0==xc<<24>>24?16:15;break;case 15:var Qb=Oc+1|0,eb=ub+1|0;l[ub]=xc;if(0==(vb|0))var Kb=eb,ga=17;else Oc=Qb,wc=eb,Tb=vb,ga=12;break;case 16:var mc=ub+1|0;l[ub]=bb;0==(vb|0)? +(Kb=mc,ga=17):(ub=mc,fc=vb,ga=13);break;case 17:var gc=a[(pb+85712|0)>>2],ld=Kb,Zb=30,ga=18;break;case 18:var nc=0==(gc|0),yc=ld,rc=Zb,ga=19;break;case 19:var Pc=rc-1|0,ga=nc?22:20;break;case 20:var cc=l[gc],ga=0==cc<<24>>24?22:21;break;case 21:var gd=gc+1|0,ic=yc+1|0;l[yc]=cc;if(0==(Pc|0))var Wc=ic,ga=23;else gc=gd,ld=ic,Zb=Pc,ga=18;break;case 22:var Gc=yc+1|0;l[yc]=bb;0==(Pc|0)?(Wc=Gc,ga=23):(yc=Gc,rc=Pc,ga=19);break;case 23:var Hc=La|0,Lc=pb+85700|0,pd=a[Lc>>2];Ui(Hc,141160,(S=m,m=m+8|0,a[S>>2]= +pd,S));var zc=0!=(a[Lc>>2]|0)?Hc:0,zb=Wc,Cb=4,ga=24;break;case 24:var Vb=0==(zc|0),$b=zb,Rb=Cb,ga=25;break;case 25:var Xb=Rb-1|0,ga=Vb?28:26;break;case 26:var sc=l[zc],ga=0==sc<<24>>24?28:27;break;case 27:var Qc=zc+1|0,Rc=$b+1|0;l[$b]=sc;if(0==(Xb|0))var Zc=Rc,ga=29;else zc=Qc,zb=Rc,Cb=Xb,ga=24;break;case 28:var kd=$b+1|0;l[$b]=bb;0==(Xb|0)?(Zc=kd,ga=29):($b=kd,Rb=Xb,ga=25);break;case 29:var Ac=pb+85720|0,Mc=a[(pb+85716|0)>>2],Bc=Zc,Cc=0!=(a[Ac>>2]|0)?28:30,ga=30;break;case 30:var dd=0==(Mc|0),Yb= +Bc,Sc=Cc,ga=31;break;case 31:var Dc=Sc-1|0,ga=dd?34:32;break;case 32:var Ec=l[Mc],ga=0==Ec<<24>>24?34:33;break;case 33:var oc=Mc+1|0,$c=Yb+1|0;l[Yb]=Ec;if(0==(Dc|0))var ad=$c,ga=35;else Mc=oc,Bc=$c,Cc=Dc,ga=30;break;case 34:var xd=Yb+1|0;l[Yb]=bb;0==(Dc|0)?(ad=xd,ga=35):(Yb=xd,Sc=Dc,ga=31);break;case 35:if(0==(a[Ac>>2]|0))var Ld=ad,ga=37;else ga=36;break;case 36:var Ic=ad+1|0;l[ad]=0;var de=ad+2|0;l[Ic]=a[Ac>>2]&255;Ld=de;ga=37;break;case 37:l[Ld]=a[(pb+85724|0)>>2]&255;yb=128;ga=38;break;case 38:m= +xa;tb=yb;break b}tb=void 0}if(128>>0|0==(tb|0))nb=3;else var qd=0,nb=2;break;case 2:Dk(Ia,l[Ya+qd|0],1);var Dd=qd+1|0;Dd>>>0>>0?(qd=Dd,nb=2):nb=3;break;case 3:m=xb;break a}}var rd=Vo(y,mb,hb,0),sd=(0>(rd|0)?0:sb)+rd|0;m=c;return sd;case 16:return m=c,h}};Module._lame_close=function(b){for(var d=0,d=1;;)switch(d){case 1:if(0==(b|0))var e=0,d=7;else d=2;break;case 2:var f=b|0;-487877==(a[f>>2]|0)?d=3:(e=0,d=7);break;case 3:var c=b+288|0,g=a[c>>2];a[f>>2]=0;if(0==(g|0))var h=-3,d=5;else d=4; +break;case 4:d=g|0;h=-487877==(a[d>>2]|0)?0:-3;a[d>>2]=0;Oj(g);a[c>>2]=0;d=5;break;case 5:0==(a[(b+284|0)>>2]|0)?(e=h,d=7):d=6;break;case 6:ua(b);e=h;d=7;break;case 7:return e}};Module._lame_init=function(){for(var k=0,k=1;;)switch(k){case 1:a:for(var d=0,d=1;;)switch(d){case 1:if(l[84592])d=3;else var e=0,d=2;break;case 2:d=Math.log(0.001953125*(e|0)+1)/0.6931471805599453;b[(71888+(e<<2)|0)>>2]=d;d=e+1|0;513>(d|0)?(e=d,d=2):d=3;break;case 3:l[84592]=1;break a}var f=d=xd(1,304);if(0==(d|0))var c= +0,k=5;else k=2;break;case 2:ra(d,0,304);a[d>>2]=-487877;var g=xd(1,85840);a[(d+288|0)>>2]=g;k=0==(g|0)?3:4;break;case 3:ua(d);c=0;k=5;break;case 4:a[(d+124|0)>>2]=2;a[(d+48|0)>>2]=4;a[(d+108|0)>>2]=1;a[(d+12|0)>>2]=44100;a[(d+8|0)>>2]=2;a[(d+4|0)>>2]=-1;a[(d+36|0)>>2]=1;a[(d+44|0)>>2]=-1;a[(d+240|0)>>2]=-1;a[(d+88|0)>>2]=-1;a[(d+184|0)>>2]=0;a[(d+188|0)>>2]=0;a[(d+192|0)>>2]=-1;a[(d+196|0)>>2]=-1;a[(d+156|0)>>2]=0;a[(d+164|0)>>2]=4;b[(d+224|0)>>2]=-1;a[(d+168|0)>>2]=128;a[(d+172|0)>>2]=0;a[(d+176| +0)>>2]=0;a[(d+180|0)>>2]=0;a[(g+112|0)>>2]=1;a[(g+116|0)>>2]=13;a[(d+132|0)>>2]=-1;a[(d+136|0)>>2]=-1;b[(d+252|0)>>2]=-1;a[(g+84920|0)>>2]=180;a[(g+84924|0)>>2]=180;a[(g+84928|0)>>2]=4;a[(g+84932|0)>>2]=4;b[(g+84908|0)>>2]=1;b[(d+264|0)>>2]=-1;b[(d+268|0)>>2]=-1;b[(d+20|0)>>2]=1;b[(d+24|0)>>2]=1;b[(d+28|0)>>2]=1;a[(d+232|0)>>2]=-1;a[(d+220|0)>>2]=-1;b[(d+236|0)>>2]=0;a[(d+244|0)>>2]=-1;b[(d+248|0)>>2]=-1;a[(g+84032|0)>>2]=1728;a[(g+84764|0)>>2]=0;a[(g+84036|0)>>2]=528;a[(d+60|0)>>2]=0;a[(d+64|0)>> +2]=0;a[(g+136|0)>>2]=0;a[(g+128|0)>>2]=0;a[(g+132|0)>>2]=0;c=g+85680|0;a[(g+85688|0)>>2]=0;a[(g+85692|0)>>2]=0;b[c>>2]=-1;a[(d+292|0)>>2]=1;a[(d+296|0)>>2]=1;a[(d+300|0)>>2]=1;a[(d+152|0)>>2]=0;a[(d+68|0)>>2]=1;a[(d+276|0)>>2]=74;a[(d+280|0)>>2]=74;a[(d+272|0)>>2]=74;a[(d+284|0)>>2]=1;c=f;k=5;break;case 5:return c}};Module._lame_set_num_samples=function(b,d){for(var e=0,e=1;;)switch(e){case 1:if(0==($(b)|0))var f=-1,e=3;else e=2;break;case 2:a[(b+4|0)>>2]=d;f=0;e=3;break;case 3:return f}};Module._lame_get_num_samples= +function(b){for(var d=0,d=1;;)switch(d){case 1:if(0==($(b)|0))var e=0,d=3;else d=2;break;case 2:e=a[(b+4|0)>>2];d=3;break;case 3:return e}};Module._lame_set_in_samplerate=function(b,d){for(var e=0,e=1;;)switch(e){case 1:if(0==($(b)|0))var f=-1,e=3;else e=2;break;case 2:a[(b+12|0)>>2]=d;f=0;e=3;break;case 3:return f}};Module._lame_get_in_samplerate=function(b){for(var d=0,d=1;;)switch(d){case 1:if(0==($(b)|0))var e=0,d=3;else d=2;break;case 2:e=a[(b+12|0)>>2];d=3;break;case 3:return e}};Module._lame_set_num_channels= +function(b,d){for(var e=0,e=1;;)switch(e){case 1:if(0==($(b)|0))var f=-1,e=4;else e=2;break;case 2:2<(d|0)|0==(d|0)?(f=-1,e=4):e=3;break;case 3:a[(b+8|0)>>2]=d;f=0;e=4;break;case 4:return f}};Module._lame_get_num_channels=function(b){for(var d=0,d=1;;)switch(d){case 1:if(0==($(b)|0))var e=0,d=3;else d=2;break;case 2:e=a[(b+8|0)>>2];d=3;break;case 3:return e}};Module._lame_set_out_samplerate=function(b,d){for(var e=0,e=1;;)switch(e){case 1:if(0==($(b)|0))var f=-1,e=3;else e=2;break;case 2:a[(b+16| +0)>>2]=d;f=0;e=3;break;case 3:return f}};Module._lame_get_out_samplerate=function(b){for(var d=0,d=1;;)switch(d){case 1:if(0==($(b)|0))var e=0,d=3;else d=2;break;case 2:e=a[(b+16|0)>>2];d=3;break;case 3:return e}};Module._lame_set_mode=function(b,d){for(var e=0,e=1;;)switch(e){case 1:if(0==($(b)|0)|4>>0)var f=-1,e=3;else e=2;break;case 2:a[(b+48|0)>>2]=d;f=0;e=3;break;case 3:return f}};Module._lame_get_mode=function(b){for(var d=0,d=1;;)switch(d){case 1:if(0==($(b)|0))var e=4,d=3;else d=2;break; +case 2:e=a[(b+48|0)>>2];d=3;break;case 3:return e}};Module._lame_set_brate=Dn;Module._lame_get_brate=function(b){for(var d=0,d=1;;)switch(d){case 1:if(0==($(b)|0))var e=0,d=3;else d=2;break;case 2:e=a[(b+96|0)>>2];d=3;break;case 3:return e}};Module._lame_set_VBR=Uf;Module._lame_get_VBR=cl;Module._lame_set_VBR_q=rm;Module._lame_get_VBR_q=function(b){for(var d=0,d=1;;)switch(d){case 1:if(0==($(b)|0))var e=0,d=3;else d=2;break;case 2:e=a[(b+164|0)>>2];d=3;break;case 3:return e}};Module._lame_set_VBR_mean_bitrate_kbps= +Kj;Module._lame_get_VBR_mean_bitrate_kbps=jm;Module._lame_set_VBR_min_bitrate_kbps=function(b,d){for(var e=0,e=1;;)switch(e){case 1:if(0==($(b)|0))var f=-1,e=3;else e=2;break;case 2:a[(b+172|0)>>2]=d;f=0;e=3;break;case 3:return f}};Module._lame_get_VBR_min_bitrate_kbps=function(b){for(var d=0,d=1;;)switch(d){case 1:if(0==($(b)|0))var e=0,d=3;else d=2;break;case 2:e=a[(b+172|0)>>2];d=3;break;case 3:return e}};Module._lame_set_VBR_max_bitrate_kbps=function(b,d){for(var e=0,e=1;;)switch(e){case 1:if(0== +($(b)|0))var f=-1,e=3;else e=2;break;case 2:a[(b+176|0)>>2]=d;f=0;e=3;break;case 3:return f}};Module._lame_get_VBR_max_bitrate_kbps=function(b){for(var d=0,d=1;;)switch(d){case 1:if(0==($(b)|0))var e=0,d=3;else d=2;break;case 2:e=a[(b+176|0)>>2];d=3;break;case 3:return e}};Module._get_lame_version=function(){return 142432};Module._calloc=xd;Module._realloc=function(b,d){for(var e=0,e=1;;)switch(e){case 1:e=0==(b|0)?2:3;break;case 2:var f=Tc(d),e=11;break;case 3:e=4294967231>>0?4:5;break;case 4:a[ih>> +2]=12;f=0;e=11;break;case 5:if(11>d>>>0)var c=16,e=7;else e=6;break;case 6:c=(d+11|0)&-8;e=7;break;case 7:var g;a:{g=b-8|0;for(var e=c,h=0,h=1;;)switch(h){case 1:var l=g+4|0,m=a[l>>2],p=m&-8,v=g,E=v+p|0,z=E,A=a[36410],h=v>>>0>>0?69:2;break;case 2:var D=m&3,h=1!=(D|0)&v>>>0>>0?3:69;break;case 3:var w=v+(p|4)|0,u=a[w>>2],h=0==(u&1|0)?69:4;break;case 4:h=0==(D|0)?5:6;break;case 5:var t;b:{t=0;for(t=1;;)switch(t){case 1:var s=a[(g+4|0)>>2]&-8;if(256>e>>>0){var G=0;t=5}else t=2;break;case 2:t=s>>> +0<(e+4|0)>>>0?4:3;break;case 3:(s-e|0)>>>0>a[12418]<<1>>>0?t=4:(G=g,t=5);break;case 4:G=0;t=5;break;case 5:t=G;break b}t=void 0}h=70;break;case 6:h=p>>>0>>0?9:7;break;case 7:var H=p-e|0;15>>0?h=8:(t=g,h=70);break;case 8:t=v+e|0;a[l>>2]=m&1|e|2;a[(v+(e+4|0)|0)>>2]=H|3;a[w>>2]|=1;Hn(t,H);t=g;h=70;break;case 9:h=(z|0)==(a[36412]|0)?10:12;break;case 10:var I=a[36409]+p|0;I>>>0>e>>>0?h=11:(t=0,h=70);break;case 11:t=I-e|0;h=v+e|0;a[l>>2]=m&1|e|2;a[(v+(e+4|0)|0)>>2]=t|1;a[36412]=h;a[36409]=t;t=g;h= +70;break;case 12:h=(z|0)==(a[36411]|0)?13:18;break;case 13:var Q=a[36408]+p|0;Q>>>0>>0?(t=0,h=70):h=14;break;case 14:var J=Q-e|0,h=15>>0?15:16;break;case 15:var F=v+e|0,P=v+Q|0;a[l>>2]=m&1|e|2;a[(v+(e+4|0)|0)>>2]=J|1;a[P>>2]=J;P=v+(Q+4|0)|0;a[P>>2]&=-2;P=J;h=17;break;case 16:a[l>>2]=m&1|Q|2;F=v+(Q+4|0)|0;a[F>>2]|=1;P=F=0;h=17;break;case 17:a[36408]=P;a[36411]=F;t=g;h=70;break;case 18:0==(u&2|0)?h=19:(t=0,h=70);break;case 19:var N=(u&-8)+p|0;N>>>0>>0?(t=0,h=70):h=20;break;case 20:var C=N- +e|0,S=u>>>3,h=256>u>>>0?21:32;break;case 21:var L=a[(v+(p+8|0)|0)>>2],O=a[(v+(p+12|0)|0)>>2],B=145664+(S<<1<<2)|0,h=(L|0)==(B|0)?24:22;break;case 22:h=L>>>0>>0?31:23;break;case 23:h=(a[(L+12|0)>>2]|0)==(z|0)?24:31;break;case 24:h=(O|0)==(L|0)?25:26;break;case 25:a[36406]&=1<>>0>>0?30:28;break;case 28:h=(a[(O+8|0)>>2]|0)==(z|0)?29:30;break;case 29:a[(L+12|0)>>2]=O;a[(O+8|0)>>2]=L;h=66;break;case 30:R();case 31:R();case 32:var T= +E,V=a[(v+(p+24|0)|0)>>2],U=a[(v+(p+12|0)|0)>>2],h=(U|0)==(T|0)?38:33;break;case 33:var $=a[(v+(p+8|0)|0)>>2],h=$>>>0>>0?37:34;break;case 34:var W=$+12|0,h=(a[W>>2]|0)==(T|0)?35:37;break;case 35:var oa=U+8|0,h=(a[oa>>2]|0)==(T|0)?36:37;break;case 36:a[W>>2]=U;a[oa>>2]=$;var ra=U,h=46;break;case 37:R();case 38:var h=v+(p+20|0)|0,Xa=a[h>>2];if(0==(Xa|0))h=39;else var ja=Xa,fa=h,h=40;break;case 39:h=v+(p+16|0)|0;Xa=a[h>>2];0==(Xa|0)?(ra=0,h=46):(ja=Xa,fa=h,h=40);break;case 40:h=ja+20|0;if(0==(a[h>> +2]|0))h=41;else var Za=h,h=42;break;case 41:h=ja+16|0;0==(a[h>>2]|0)?h=43:(Za=h,h=42);break;case 42:ja=a[Za>>2];fa=Za;h=40;break;case 43:h=fa>>>0>>0?45:44;break;case 44:a[fa>>2]=0;ra=ja;h=46;break;case 45:R();case 46:h=0==(V|0)?66:47;break;case 47:var ib=v+(p+28|0)|0,aa=145928+(a[ib>>2]<<2)|0,h=(T|0)==(a[aa>>2]|0)?48:50;break;case 48:a[aa>>2]=ra;h=0==(ra|0)?49:56;break;case 49:a[36407]&=1<>2]^-1;h=66;break;case 50:h=V>>>0>>0?54:51;break;case 51:var ma=V+16|0,h=(a[ma>>2]| +0)==(T|0)?52:53;break;case 52:a[ma>>2]=ra;h=55;break;case 53:a[(V+20|0)>>2]=ra;h=55;break;case 54:R();case 55:h=0==(ra|0)?66:56;break;case 56:h=ra>>>0>>0?65:57;break;case 57:a[(ra+24|0)>>2]=V;var ia=a[(v+(p+16|0)|0)>>2],h=0==(ia|0)?61:58;break;case 58:h=ia>>>0>>0?60:59;break;case 59:a[(ra+16|0)>>2]=ia;a[(ia+24|0)>>2]=ra;h=61;break;case 60:R();case 61:var ea=a[(v+(p+20|0)|0)>>2],h=0==(ea|0)?66:62;break;case 62:h=ea>>>0>>0?64:63;break;case 63:a[(ra+20|0)>>2]=ea;a[(ea+24| +0)>>2]=ra;h=66;break;case 64:R();case 65:R();case 66:h=16>C>>>0?67:68;break;case 67:a[l>>2]=N|a[l>>2]&1|2;t=v+(N|4)|0;a[t>>2]|=1;t=g;h=70;break;case 68:t=v+e|0;a[l>>2]=a[l>>2]&1|e|2;a[(v+(e+4|0)|0)>>2]=C|3;h=v+(N|4)|0;a[h>>2]|=1;Hn(t,C);t=g;h=70;break;case 69:R();case 70:g=t;break a}g=void 0}e=0==(g|0)?9:8;break;case 8:f=g+8|0;e=11;break;case 9:var Mb=Tc(d);0==(Mb|0)?(f=0,e=11):e=10;break;case 10:f=a[(b-4|0)>>2];f=(f&-8)-(0==(f&3|0)?8:4)|0;ha(Mb,b,f>>>0>>0?f:d);ua(b);f=Mb;e=11;break;case 11:return f}}; +var ji=null;Module.callMain=function(a){function b(){for(var a=0;3>a;a++)f.push(0)}ac(0==xf,"cannot call main when async dependencies remain! (listen on __ATMAIN__)");ac(!Module.preRun||0==Module.preRun.length,"cannot call main when preRun functions remain to be called");a=a||[];fi||(fi=!0,Xg(gl));var e=a.length+1,f=[Za(Pe("/bin/this.program"),"i8",0)];b();for(var c=0;c