cocos-engine-external/emscripten/meshopt/meshopt_decoder.asm.js

1308 lines
45 KiB
JavaScript

// This file is part of meshoptimizer library and is distributed under the terms of MIT License.
// Copyright (C) 2016-2023, by Arseny Kapoulkine (arseny.kapoulkine@gmail.com)
var MeshoptDecoder = (function () {
"use strict";
var instance = {};
var ready = Promise.resolve().then(function () {
instance.exports = instantiate({// env
abort: function (msg, file, line, column) {
throw Error("abort: " + msg + " at " + file + ":" + line + ":" + column);
},
});
instance.exports.__wasm_call_ctors();
});
function unpack(data) {
var result = new Uint8Array(data.length);
for (var i = 0; i < data.length; ++i) {
var ch = data.charCodeAt(i);
result[i] = ch > 96 ? ch - 97 : ch > 64 ? ch - 39 : ch + 4;
}
var write = 0;
for (var i = 0; i < data.length; ++i) {
result[write++] = (result[i] < 60) ? wasmpack[result[i]] : (result[i] - 60) * 64 + result[++i];
}
return result.buffer.slice(0, write);
}
function decode(fun, target, count, size, source, filter) {
var sbrk = instance.exports.sbrk;
var count4 = (count + 3) & ~3;
var tp = sbrk(count4 * size);
var sp = sbrk(source.length);
var heap = new Uint8Array(instance.exports.memory.buffer);
heap.set(source, sp);
var res = fun(tp, count, size, sp, source.length);
if (res == 0 && filter) {
filter(tp, count4, size);
}
target.set(heap.subarray(tp, tp + count * size));
sbrk(tp - sbrk(0));
if (res != 0) {
throw new Error("Malformed buffer data: " + res);
}
}
var filters = {
NONE: "",
OCTAHEDRAL: "meshopt_decodeFilterOct",
QUATERNION: "meshopt_decodeFilterQuat",
EXPONENTIAL: "meshopt_decodeFilterExp",
};
var decoders = {
ATTRIBUTES: "meshopt_decodeVertexBuffer",
TRIANGLES: "meshopt_decodeIndexBuffer",
INDICES: "meshopt_decodeIndexSequence",
};
var workers = [];
var requestId = 0;
function createWorker(url) {
var worker = {
object: new Worker(url),
pending: 0,
requests: {}
};
worker.object.onmessage = function (event) {
var data = event.data;
worker.pending -= data.count;
worker.requests[data.id][data.action](data.value);
delete worker.requests[data.id];
};
return worker;
}
function initWorkers(count) {
var source =
"var instance; var ready = WebAssembly.instantiate(new Uint8Array([" + new Uint8Array(unpack(wasm)) + "]), {})" +
".then(function(result) { instance = result.instance; instance.exports.__wasm_call_ctors(); });" +
"self.onmessage = workerProcess;" +
decode.toString() + workerProcess.toString();
var blob = new Blob([source], { type: 'text/javascript' });
var url = URL.createObjectURL(blob);
for (var i = 0; i < count; ++i) {
workers[i] = createWorker(url);
}
URL.revokeObjectURL(url);
}
function decodeWorker(count, size, source, mode, filter) {
var worker = workers[0];
for (var i = 1; i < workers.length; ++i) {
if (workers[i].pending < worker.pending) {
worker = workers[i];
}
}
return new Promise(function (resolve, reject) {
var data = new Uint8Array(source);
var id = requestId++;
worker.pending += count;
worker.requests[id] = { resolve: resolve, reject: reject };
worker.object.postMessage({ id: id, count: count, size: size, source: data, mode: mode, filter: filter }, [data.buffer]);
});
}
function workerProcess(event) {
ready.then(function () {
var data = event.data;
try {
var target = new Uint8Array(data.count * data.size);
decode(instance.exports[data.mode], target, data.count, data.size, data.source, instance.exports[data.filter]);
self.postMessage({ id: data.id, count: data.count, action: "resolve", value: target }, [target.buffer]);
} catch (error) {
self.postMessage({ id: data.id, count: data.count, action: "reject", value: error });
}
});
}
return {
ready: ready,
supported: true,
useWorkers: function (count) {
initWorkers(count);
},
decodeVertexBuffer: function (target, count, size, source, filter) {
decode(instance.exports.meshopt_decodeVertexBuffer, target, count, size, source, instance.exports[filters[filter]]);
},
decodeIndexBuffer: function (target, count, size, source) {
decode(instance.exports.meshopt_decodeIndexBuffer, target, count, size, source);
},
decodeIndexSequence: function (target, count, size, source) {
decode(instance.exports.meshopt_decodeIndexSequence, target, count, size, source);
},
decodeGltfBuffer: function (target, count, size, source, mode, filter) {
decode(instance.exports[decoders[mode]], target, count, size, source, instance.exports[filters[filter]]);
},
decodeGltfBufferAsync: function (count, size, source, mode, filter) {
if (workers.length > 0) {
return decodeWorker(count, size, source, decoders[mode], filters[filter]);
}
return ready.then(function () {
var target = new Uint8Array(count * size);
decode(instance.exports[decoders[mode]], target, count, size, source, instance.exports[filters[filter]]);
return target;
});
}
};
})();
// UMD-style export
if (typeof exports === 'object' && typeof module === 'object')
module.exports = MeshoptDecoder;
else if (typeof define === 'function' && define['amd'])
define([], function () {
return MeshoptDecoder;
});
else if (typeof exports === 'object')
exports["MeshoptDecoder"] = MeshoptDecoder;
else
(typeof self !== 'undefined' ? self : this).MeshoptDecoder = MeshoptDecoder;
function instantiate(asmLibraryArg) {
var bufferView;
var base64ReverseLookup = new Uint8Array(123/*'z'+1*/);
for (var i = 25; i >= 0; --i) {
base64ReverseLookup[48 + i] = 52 + i; // '0-9'
base64ReverseLookup[65 + i] = i; // 'A-Z'
base64ReverseLookup[97 + i] = 26 + i; // 'a-z'
}
base64ReverseLookup[43] = 62; // '+'
base64ReverseLookup[47] = 63; // '/'
/** @noinline Inlining this function would mean expanding the base64 string 4x times in the source code, which Closure seems to be happy to do. */
function base64DecodeToExistingUint8Array(uint8Array, offset, b64) {
var b1, b2, i = 0, j = offset, bLength = b64.length, end = offset + (bLength * 3 >> 2) - (b64[bLength - 2] == '=') - (b64[bLength - 1] == '=');
for (; i < bLength; i += 4) {
b1 = base64ReverseLookup[b64.charCodeAt(i + 1)];
b2 = base64ReverseLookup[b64.charCodeAt(i + 2)];
uint8Array[j++] = base64ReverseLookup[b64.charCodeAt(i)] << 2 | b1 >> 4;
if (j < end) uint8Array[j++] = b1 << 4 | b2 >> 2;
if (j < end) uint8Array[j++] = b2 << 6 | base64ReverseLookup[b64.charCodeAt(i + 3)];
}
}
function initActiveSegments(imports) {
base64DecodeToExistingUint8Array(bufferView, 1024, "EGQAAA==");
}
function asmFunc(env) {
var buffer = new ArrayBuffer(65536);
var HEAP8 = new Int8Array(buffer);
var HEAP16 = new Int16Array(buffer);
var HEAP32 = new Int32Array(buffer);
var HEAPU8 = new Uint8Array(buffer);
var HEAPU16 = new Uint16Array(buffer);
var HEAPU32 = new Uint32Array(buffer);
var HEAPF32 = new Float32Array(buffer);
var HEAPF64 = new Float64Array(buffer);
var Math_imul = Math.imul;
var Math_fround = Math.fround;
var Math_abs = Math.abs;
var Math_clz32 = Math.clz32;
var Math_min = Math.min;
var Math_max = Math.max;
var Math_floor = Math.floor;
var Math_ceil = Math.ceil;
var Math_trunc = Math.trunc;
var Math_sqrt = Math.sqrt;
var abort = env.abort;
var nan = NaN;
var infinity = Infinity;
var global$0 = 25616;
// EMSCRIPTEN_START_FUNCS
;
function $0() {
}
function $1($0_1, $1_1, $2_1, $3_1, $4_1) {
$0_1 = $0_1 | 0;
$1_1 = $1_1 | 0;
$2_1 = $2_1 | 0;
$3_1 = $3_1 | 0;
$4_1 = $4_1 | 0;
var $20 = 0, $19 = 0, $21 = 0, $6 = 0, i64toi32_i32$1 = 0, $8 = 0, $18 = 0, i64toi32_i32$0 = 0, $17 = 0, $13 = 0, $11 = 0, $60 = 0, $7 = 0, $12 = 0, $15 = 0, $10 = 0, $14 = 0, $61 = 0, $62 = 0, $5_1 = 0, $16 = 0, $9 = 0, $117 = 0, $137 = 0, $152 = 0, $166 = 0, $182 = 0, $197 = 0, $212 = 0, $226 = 0, $242 = 0, $257 = 0, $272 = 0, $286 = 0, $302 = 0, $317 = 0, $332 = 0, $338 = 0, $346 = 0, $361 = 0, $380 = 0, $396 = 0, $410 = 0, $426 = 0, $440 = 0, $456 = 0, $470 = 0, $486 = 0, $500 = 0, $516 = 0, $530 = 0, $546 = 0, $560 = 0, $576 = 0, $582 = 0, $590 = 0, $600 = 0, $605 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0, wasm2js_i32$2 = 0;
$5_1 = global$0 - 8704 | 0;
global$0 = $5_1;
$6 = -2;
label$1: {
if (($2_1 + 1 | 0) >>> 0 > $4_1 >>> 0) {
break label$1
}
$6 = -1;
if ((HEAPU8[$3_1 >> 0] | 0 | 0) != (160 | 0)) {
break label$1
}
$7 = $3_1 + $4_1 | 0;
$8 = $4($5_1 | 0, $7 - $2_1 | 0 | 0, $2_1 | 0) | 0;
$4_1 = (8192 >>> 0) / ($2_1 >>> 0) | 0;
$6 = $3_1 + 1 | 0;
label$2: {
if (!$2_1) {
break label$2
}
$4_1 = $4_1 & 16368 | 0;
$9 = $4_1 >>> 0 < 256 >>> 0 ? $4_1 : 256;
$10 = 0;
label$3: while (1) {
if ($10 >>> 0 >= $1_1 >>> 0) {
break label$2
}
$11 = ($10 + $9 | 0) >>> 0 < $1_1 >>> 0 ? $9 : $1_1 - $10 | 0;
$4_1 = $11 + 15 | 0;
$12 = (($4_1 >>> 4 | 0) + 3 | 0) >>> 2 | 0;
label$4: {
label$5: {
label$6: {
label$7: {
$13 = $4_1 & -16 | 0;
if (!$13) {
break label$7
}
$14 = 0;
$15 = 1;
$16 = $8 + 256 | 0;
$17 = $6;
label$8: while (1) {
if (($7 - $17 | 0) >>> 0 < $12 >>> 0) {
break label$5
}
label$9: {
$6 = $17 + $12 | 0;
if (($7 - $6 | 0) >>> 0 < 24 >>> 0) {
break label$9
}
$4_1 = 16;
$18 = 0;
label$10: while (1) {
$3_1 = $4_1;
$19 = $4_1 + -16 | 0;
$4_1 = $19 + ($8 + 8448 | 0) | 0;
label$11: {
label$12: {
switch (((HEAPU8[($17 + ($19 >>> 6 | 0) | 0) >> 0] | 0) >>> ($18 & 6 | 0) | 0) & 3 | 0 | 0) {
default:
i64toi32_i32$1 = $4_1;
i64toi32_i32$0 = 0;
HEAP32[$4_1 >> 2] = 0;
HEAP32[($4_1 + 4 | 0) >> 2] = i64toi32_i32$0;
i64toi32_i32$1 = $4_1 + 8 | 0;
i64toi32_i32$0 = 0;
HEAP32[i64toi32_i32$1 >> 2] = 0;
HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0;
break label$11;
case 1:
$19 = HEAPU8[$6 >> 0] | 0;
$20 = $19 >>> 6 | 0;
$117 = $20;
$20 = ($20 | 0) == (3 | 0);
HEAP8[$4_1 >> 0] = (wasm2js_i32$0 = HEAPU8[($6 + 4 | 0) >> 0] | 0, wasm2js_i32$1 = $117, wasm2js_i32$2 = $20, wasm2js_i32$2 ? wasm2js_i32$0 : wasm2js_i32$1);
$4_1 = ($8 + 8448 | 0) + $3_1 | 0;
$20 = ($6 + 4 | 0) + $20 | 0;
$21 = ($19 >>> 4 | 0) & 3 | 0;
$137 = $21;
$21 = ($21 | 0) == (3 | 0);
HEAP8[($4_1 + -15 | 0) >> 0] = (wasm2js_i32$0 = HEAPU8[$20 >> 0] | 0, wasm2js_i32$1 = $137, wasm2js_i32$2 = $21, wasm2js_i32$2 ? wasm2js_i32$0 : wasm2js_i32$1);
$20 = $20 + $21 | 0;
$21 = ($19 >>> 2 | 0) & 3 | 0;
$152 = $21;
$21 = ($21 | 0) == (3 | 0);
HEAP8[($4_1 + -14 | 0) >> 0] = (wasm2js_i32$0 = HEAPU8[$20 >> 0] | 0, wasm2js_i32$1 = $152, wasm2js_i32$2 = $21, wasm2js_i32$2 ? wasm2js_i32$0 : wasm2js_i32$1);
$20 = $20 + $21 | 0;
$19 = $19 & 3 | 0;
$166 = $19;
$19 = ($19 | 0) == (3 | 0);
HEAP8[($4_1 + -13 | 0) >> 0] = (wasm2js_i32$0 = HEAPU8[$20 >> 0] | 0, wasm2js_i32$1 = $166, wasm2js_i32$2 = $19, wasm2js_i32$2 ? wasm2js_i32$0 : wasm2js_i32$1);
$20 = $20 + $19 | 0;
$19 = HEAPU8[($6 + 1 | 0) >> 0] | 0;
$21 = $19 >>> 6 | 0;
$182 = $21;
$21 = ($21 | 0) == (3 | 0);
HEAP8[($4_1 + -12 | 0) >> 0] = (wasm2js_i32$0 = HEAPU8[$20 >> 0] | 0, wasm2js_i32$1 = $182, wasm2js_i32$2 = $21, wasm2js_i32$2 ? wasm2js_i32$0 : wasm2js_i32$1);
$20 = $20 + $21 | 0;
$21 = ($19 >>> 4 | 0) & 3 | 0;
$197 = $21;
$21 = ($21 | 0) == (3 | 0);
HEAP8[($4_1 + -11 | 0) >> 0] = (wasm2js_i32$0 = HEAPU8[$20 >> 0] | 0, wasm2js_i32$1 = $197, wasm2js_i32$2 = $21, wasm2js_i32$2 ? wasm2js_i32$0 : wasm2js_i32$1);
$20 = $20 + $21 | 0;
$21 = ($19 >>> 2 | 0) & 3 | 0;
$212 = $21;
$21 = ($21 | 0) == (3 | 0);
HEAP8[($4_1 + -10 | 0) >> 0] = (wasm2js_i32$0 = HEAPU8[$20 >> 0] | 0, wasm2js_i32$1 = $212, wasm2js_i32$2 = $21, wasm2js_i32$2 ? wasm2js_i32$0 : wasm2js_i32$1);
$20 = $20 + $21 | 0;
$19 = $19 & 3 | 0;
$226 = $19;
$19 = ($19 | 0) == (3 | 0);
HEAP8[($4_1 + -9 | 0) >> 0] = (wasm2js_i32$0 = HEAPU8[$20 >> 0] | 0, wasm2js_i32$1 = $226, wasm2js_i32$2 = $19, wasm2js_i32$2 ? wasm2js_i32$0 : wasm2js_i32$1);
$20 = $20 + $19 | 0;
$19 = HEAPU8[($6 + 2 | 0) >> 0] | 0;
$21 = $19 >>> 6 | 0;
$242 = $21;
$21 = ($21 | 0) == (3 | 0);
HEAP8[($4_1 + -8 | 0) >> 0] = (wasm2js_i32$0 = HEAPU8[$20 >> 0] | 0, wasm2js_i32$1 = $242, wasm2js_i32$2 = $21, wasm2js_i32$2 ? wasm2js_i32$0 : wasm2js_i32$1);
$20 = $20 + $21 | 0;
$21 = ($19 >>> 4 | 0) & 3 | 0;
$257 = $21;
$21 = ($21 | 0) == (3 | 0);
HEAP8[($4_1 + -7 | 0) >> 0] = (wasm2js_i32$0 = HEAPU8[$20 >> 0] | 0, wasm2js_i32$1 = $257, wasm2js_i32$2 = $21, wasm2js_i32$2 ? wasm2js_i32$0 : wasm2js_i32$1);
$20 = $20 + $21 | 0;
$21 = ($19 >>> 2 | 0) & 3 | 0;
$272 = $21;
$21 = ($21 | 0) == (3 | 0);
HEAP8[($4_1 + -6 | 0) >> 0] = (wasm2js_i32$0 = HEAPU8[$20 >> 0] | 0, wasm2js_i32$1 = $272, wasm2js_i32$2 = $21, wasm2js_i32$2 ? wasm2js_i32$0 : wasm2js_i32$1);
$20 = $20 + $21 | 0;
$19 = $19 & 3 | 0;
$286 = $19;
$19 = ($19 | 0) == (3 | 0);
HEAP8[($4_1 + -5 | 0) >> 0] = (wasm2js_i32$0 = HEAPU8[$20 >> 0] | 0, wasm2js_i32$1 = $286, wasm2js_i32$2 = $19, wasm2js_i32$2 ? wasm2js_i32$0 : wasm2js_i32$1);
$19 = $20 + $19 | 0;
$6 = HEAPU8[($6 + 3 | 0) >> 0] | 0;
$20 = $6 >>> 6 | 0;
$302 = $20;
$20 = ($20 | 0) == (3 | 0);
HEAP8[($4_1 + -4 | 0) >> 0] = (wasm2js_i32$0 = HEAPU8[$19 >> 0] | 0, wasm2js_i32$1 = $302, wasm2js_i32$2 = $20, wasm2js_i32$2 ? wasm2js_i32$0 : wasm2js_i32$1);
$19 = $19 + $20 | 0;
$20 = ($6 >>> 4 | 0) & 3 | 0;
$317 = $20;
$20 = ($20 | 0) == (3 | 0);
HEAP8[($4_1 + -3 | 0) >> 0] = (wasm2js_i32$0 = HEAPU8[$19 >> 0] | 0, wasm2js_i32$1 = $317, wasm2js_i32$2 = $20, wasm2js_i32$2 ? wasm2js_i32$0 : wasm2js_i32$1);
$19 = $19 + $20 | 0;
$20 = ($6 >>> 2 | 0) & 3 | 0;
$332 = $20;
$20 = ($20 | 0) == (3 | 0);
HEAP8[($4_1 + -2 | 0) >> 0] = (wasm2js_i32$0 = HEAPU8[$19 >> 0] | 0, wasm2js_i32$1 = $332, wasm2js_i32$2 = $20, wasm2js_i32$2 ? wasm2js_i32$0 : wasm2js_i32$1);
$338 = $4_1 + -1 | 0;
$4_1 = $19 + $20 | 0;
$6 = $6 & 3 | 0;
$346 = $6;
$6 = ($6 | 0) == (3 | 0);
HEAP8[$338 >> 0] = (wasm2js_i32$0 = HEAPU8[$4_1 >> 0] | 0, wasm2js_i32$1 = $346, wasm2js_i32$2 = $6, wasm2js_i32$2 ? wasm2js_i32$0 : wasm2js_i32$1);
$6 = $4_1 + $6 | 0;
break label$11;
case 2:
$19 = HEAPU8[$6 >> 0] | 0;
$20 = $19 >>> 4 | 0;
$361 = $20;
$20 = ($20 | 0) == (15 | 0);
HEAP8[$4_1 >> 0] = (wasm2js_i32$0 = HEAPU8[($6 + 8 | 0) >> 0] | 0, wasm2js_i32$1 = $361, wasm2js_i32$2 = $20, wasm2js_i32$2 ? wasm2js_i32$0 : wasm2js_i32$1);
$4_1 = ($8 + 8448 | 0) + $3_1 | 0;
$20 = ($6 + 8 | 0) + $20 | 0;
$19 = $19 & 15 | 0;
$380 = $19;
$19 = ($19 | 0) == (15 | 0);
HEAP8[($4_1 + -15 | 0) >> 0] = (wasm2js_i32$0 = HEAPU8[$20 >> 0] | 0, wasm2js_i32$1 = $380, wasm2js_i32$2 = $19, wasm2js_i32$2 ? wasm2js_i32$0 : wasm2js_i32$1);
$19 = $20 + $19 | 0;
$20 = HEAPU8[($6 + 1 | 0) >> 0] | 0;
$21 = $20 >>> 4 | 0;
$396 = $21;
$21 = ($21 | 0) == (15 | 0);
HEAP8[($4_1 + -14 | 0) >> 0] = (wasm2js_i32$0 = HEAPU8[$19 >> 0] | 0, wasm2js_i32$1 = $396, wasm2js_i32$2 = $21, wasm2js_i32$2 ? wasm2js_i32$0 : wasm2js_i32$1);
$19 = $19 + $21 | 0;
$20 = $20 & 15 | 0;
$410 = $20;
$20 = ($20 | 0) == (15 | 0);
HEAP8[($4_1 + -13 | 0) >> 0] = (wasm2js_i32$0 = HEAPU8[$19 >> 0] | 0, wasm2js_i32$1 = $410, wasm2js_i32$2 = $20, wasm2js_i32$2 ? wasm2js_i32$0 : wasm2js_i32$1);
$19 = $19 + $20 | 0;
$20 = HEAPU8[($6 + 2 | 0) >> 0] | 0;
$21 = $20 >>> 4 | 0;
$426 = $21;
$21 = ($21 | 0) == (15 | 0);
HEAP8[($4_1 + -12 | 0) >> 0] = (wasm2js_i32$0 = HEAPU8[$19 >> 0] | 0, wasm2js_i32$1 = $426, wasm2js_i32$2 = $21, wasm2js_i32$2 ? wasm2js_i32$0 : wasm2js_i32$1);
$19 = $19 + $21 | 0;
$20 = $20 & 15 | 0;
$440 = $20;
$20 = ($20 | 0) == (15 | 0);
HEAP8[($4_1 + -11 | 0) >> 0] = (wasm2js_i32$0 = HEAPU8[$19 >> 0] | 0, wasm2js_i32$1 = $440, wasm2js_i32$2 = $20, wasm2js_i32$2 ? wasm2js_i32$0 : wasm2js_i32$1);
$19 = $19 + $20 | 0;
$20 = HEAPU8[($6 + 3 | 0) >> 0] | 0;
$21 = $20 >>> 4 | 0;
$456 = $21;
$21 = ($21 | 0) == (15 | 0);
HEAP8[($4_1 + -10 | 0) >> 0] = (wasm2js_i32$0 = HEAPU8[$19 >> 0] | 0, wasm2js_i32$1 = $456, wasm2js_i32$2 = $21, wasm2js_i32$2 ? wasm2js_i32$0 : wasm2js_i32$1);
$19 = $19 + $21 | 0;
$20 = $20 & 15 | 0;
$470 = $20;
$20 = ($20 | 0) == (15 | 0);
HEAP8[($4_1 + -9 | 0) >> 0] = (wasm2js_i32$0 = HEAPU8[$19 >> 0] | 0, wasm2js_i32$1 = $470, wasm2js_i32$2 = $20, wasm2js_i32$2 ? wasm2js_i32$0 : wasm2js_i32$1);
$19 = $19 + $20 | 0;
$20 = HEAPU8[($6 + 4 | 0) >> 0] | 0;
$21 = $20 >>> 4 | 0;
$486 = $21;
$21 = ($21 | 0) == (15 | 0);
HEAP8[($4_1 + -8 | 0) >> 0] = (wasm2js_i32$0 = HEAPU8[$19 >> 0] | 0, wasm2js_i32$1 = $486, wasm2js_i32$2 = $21, wasm2js_i32$2 ? wasm2js_i32$0 : wasm2js_i32$1);
$19 = $19 + $21 | 0;
$20 = $20 & 15 | 0;
$500 = $20;
$20 = ($20 | 0) == (15 | 0);
HEAP8[($4_1 + -7 | 0) >> 0] = (wasm2js_i32$0 = HEAPU8[$19 >> 0] | 0, wasm2js_i32$1 = $500, wasm2js_i32$2 = $20, wasm2js_i32$2 ? wasm2js_i32$0 : wasm2js_i32$1);
$19 = $19 + $20 | 0;
$20 = HEAPU8[($6 + 5 | 0) >> 0] | 0;
$21 = $20 >>> 4 | 0;
$516 = $21;
$21 = ($21 | 0) == (15 | 0);
HEAP8[($4_1 + -6 | 0) >> 0] = (wasm2js_i32$0 = HEAPU8[$19 >> 0] | 0, wasm2js_i32$1 = $516, wasm2js_i32$2 = $21, wasm2js_i32$2 ? wasm2js_i32$0 : wasm2js_i32$1);
$19 = $19 + $21 | 0;
$20 = $20 & 15 | 0;
$530 = $20;
$20 = ($20 | 0) == (15 | 0);
HEAP8[($4_1 + -5 | 0) >> 0] = (wasm2js_i32$0 = HEAPU8[$19 >> 0] | 0, wasm2js_i32$1 = $530, wasm2js_i32$2 = $20, wasm2js_i32$2 ? wasm2js_i32$0 : wasm2js_i32$1);
$19 = $19 + $20 | 0;
$20 = HEAPU8[($6 + 6 | 0) >> 0] | 0;
$21 = $20 >>> 4 | 0;
$546 = $21;
$21 = ($21 | 0) == (15 | 0);
HEAP8[($4_1 + -4 | 0) >> 0] = (wasm2js_i32$0 = HEAPU8[$19 >> 0] | 0, wasm2js_i32$1 = $546, wasm2js_i32$2 = $21, wasm2js_i32$2 ? wasm2js_i32$0 : wasm2js_i32$1);
$19 = $19 + $21 | 0;
$20 = $20 & 15 | 0;
$560 = $20;
$20 = ($20 | 0) == (15 | 0);
HEAP8[($4_1 + -3 | 0) >> 0] = (wasm2js_i32$0 = HEAPU8[$19 >> 0] | 0, wasm2js_i32$1 = $560, wasm2js_i32$2 = $20, wasm2js_i32$2 ? wasm2js_i32$0 : wasm2js_i32$1);
$19 = $19 + $20 | 0;
$6 = HEAPU8[($6 + 7 | 0) >> 0] | 0;
$20 = $6 >>> 4 | 0;
$576 = $20;
$20 = ($20 | 0) == (15 | 0);
HEAP8[($4_1 + -2 | 0) >> 0] = (wasm2js_i32$0 = HEAPU8[$19 >> 0] | 0, wasm2js_i32$1 = $576, wasm2js_i32$2 = $20, wasm2js_i32$2 ? wasm2js_i32$0 : wasm2js_i32$1);
$582 = $4_1 + -1 | 0;
$4_1 = $19 + $20 | 0;
$6 = $6 & 15 | 0;
$590 = $6;
$6 = ($6 | 0) == (15 | 0);
HEAP8[$582 >> 0] = (wasm2js_i32$0 = HEAPU8[$4_1 >> 0] | 0, wasm2js_i32$1 = $590, wasm2js_i32$2 = $6, wasm2js_i32$2 ? wasm2js_i32$0 : wasm2js_i32$1);
$6 = $4_1 + $6 | 0;
break label$11;
case 3:
break label$12;
};
}
i64toi32_i32$0 = HEAPU8[$6 >> 0] | 0 | ((HEAPU8[($6 + 1 | 0) >> 0] | 0) << 8 | 0) | 0 | ((HEAPU8[($6 + 2 | 0) >> 0] | 0) << 16 | 0 | ((HEAPU8[($6 + 3 | 0) >> 0] | 0) << 24 | 0) | 0) | 0;
i64toi32_i32$1 = HEAPU8[($6 + 4 | 0) >> 0] | 0 | ((HEAPU8[($6 + 5 | 0) >> 0] | 0) << 8 | 0) | 0 | ((HEAPU8[($6 + 6 | 0) >> 0] | 0) << 16 | 0 | ((HEAPU8[($6 + 7 | 0) >> 0] | 0) << 24 | 0) | 0) | 0;
$600 = i64toi32_i32$0;
i64toi32_i32$0 = $4_1;
$61 = $600;
HEAP8[$4_1 >> 0] = $61;
HEAP8[($4_1 + 1 | 0) >> 0] = $61 >>> 8 | 0;
HEAP8[($4_1 + 2 | 0) >> 0] = $61 >>> 16 | 0;
HEAP8[($4_1 + 3 | 0) >> 0] = $61 >>> 24 | 0;
HEAP8[($4_1 + 4 | 0) >> 0] = i64toi32_i32$1;
HEAP8[($4_1 + 5 | 0) >> 0] = i64toi32_i32$1 >>> 8 | 0;
HEAP8[($4_1 + 6 | 0) >> 0] = i64toi32_i32$1 >>> 16 | 0;
HEAP8[($4_1 + 7 | 0) >> 0] = i64toi32_i32$1 >>> 24 | 0;
$60 = $6 + 8 | 0;
i64toi32_i32$1 = HEAPU8[$60 >> 0] | 0 | ((HEAPU8[($60 + 1 | 0) >> 0] | 0) << 8 | 0) | 0 | ((HEAPU8[($60 + 2 | 0) >> 0] | 0) << 16 | 0 | ((HEAPU8[($60 + 3 | 0) >> 0] | 0) << 24 | 0) | 0) | 0;
i64toi32_i32$0 = HEAPU8[($60 + 4 | 0) >> 0] | 0 | ((HEAPU8[($60 + 5 | 0) >> 0] | 0) << 8 | 0) | 0 | ((HEAPU8[($60 + 6 | 0) >> 0] | 0) << 16 | 0 | ((HEAPU8[($60 + 7 | 0) >> 0] | 0) << 24 | 0) | 0) | 0;
$605 = i64toi32_i32$1;
i64toi32_i32$1 = $4_1 + 8 | 0;
$62 = $605;
HEAP8[i64toi32_i32$1 >> 0] = $62;
HEAP8[(i64toi32_i32$1 + 1 | 0) >> 0] = $62 >>> 8 | 0;
HEAP8[(i64toi32_i32$1 + 2 | 0) >> 0] = $62 >>> 16 | 0;
HEAP8[(i64toi32_i32$1 + 3 | 0) >> 0] = $62 >>> 24 | 0;
HEAP8[(i64toi32_i32$1 + 4 | 0) >> 0] = i64toi32_i32$0;
HEAP8[(i64toi32_i32$1 + 5 | 0) >> 0] = i64toi32_i32$0 >>> 8 | 0;
HEAP8[(i64toi32_i32$1 + 6 | 0) >> 0] = i64toi32_i32$0 >>> 16 | 0;
HEAP8[(i64toi32_i32$1 + 7 | 0) >> 0] = i64toi32_i32$0 >>> 24 | 0;
$6 = $6 + 16 | 0;
}
label$16: {
if ($3_1 >>> 0 >= $13 >>> 0) {
break label$16
}
$18 = $18 + 2 | 0;
$4_1 = $3_1 + 16 | 0;
if (($7 - $6 | 0) >>> 0 > 23 >>> 0) {
continue label$10
}
}
break label$10;
};
if ($3_1 >>> 0 < $13 >>> 0) {
break label$6
}
if (!$6) {
break label$6
}
label$17: {
if (!$11) {
break label$17
}
$18 = HEAPU8[($8 + $14 | 0) >> 0] | 0;
$4_1 = $8 + 8448 | 0;
$3_1 = $16;
$19 = $11;
label$18: while (1) {
$17 = HEAPU8[$4_1 >> 0] | 0;
$18 = (($17 >>> 1 | 0) ^ (0 - ($17 & 1 | 0) | 0) | 0) + $18 | 0;
HEAP8[$3_1 >> 0] = $18;
$3_1 = $3_1 + $2_1 | 0;
$4_1 = $4_1 + 1 | 0;
$19 = $19 + -1 | 0;
if ($19) {
continue label$18
}
break label$18;
};
}
$16 = $16 + 1 | 0;
$14 = $14 + 1 | 0;
$15 = $14 >>> 0 < $2_1 >>> 0;
$17 = $6;
if (($14 | 0) != ($2_1 | 0)) {
continue label$8
}
break label$4;
}
break label$8;
};
$6 = 0;
if ($15 & 1 | 0) {
break label$5
}
break label$4;
}
$21 = $6 + Math_imul($12, $2_1) | 0;
label$19: {
if (!$11) {
break label$19
}
$13 = 0;
$15 = 1;
$20 = $8 + 256 | 0;
label$20: while (1) {
if (($7 - $6 | 0) >>> 0 < $12 >>> 0) {
break label$5
}
if (!$6) {
break label$6
}
$6 = $6 + $12 | 0;
$18 = HEAPU8[($8 + $13 | 0) >> 0] | 0;
$4_1 = $8 + 8448 | 0;
$3_1 = $20;
$19 = $11;
label$21: while (1) {
$17 = HEAPU8[$4_1 >> 0] | 0;
$18 = (($17 >>> 1 | 0) ^ (0 - ($17 & 1 | 0) | 0) | 0) + $18 | 0;
HEAP8[$3_1 >> 0] = $18;
$3_1 = $3_1 + $2_1 | 0;
$4_1 = $4_1 + 1 | 0;
$19 = $19 + -1 | 0;
if ($19) {
continue label$21
}
break label$21;
};
$20 = $20 + 1 | 0;
$13 = $13 + 1 | 0;
$15 = $13 >>> 0 < $2_1 >>> 0;
if (($13 | 0) != ($2_1 | 0)) {
continue label$20
}
break label$20;
};
$6 = $21;
break label$4;
}
$4_1 = 0;
$15 = 1;
label$22: while (1) {
if (($7 - $6 | 0) >>> 0 < $12 >>> 0) {
break label$5
}
if (!$6) {
break label$6
}
$6 = $6 + $12 | 0;
$4_1 = $4_1 + 1 | 0;
$15 = $4_1 >>> 0 < $2_1 >>> 0;
if (($2_1 | 0) != ($4_1 | 0)) {
continue label$22
}
break label$22;
};
$6 = $21;
break label$4;
}
$6 = 0;
if (!($15 & 1 | 0)) {
break label$4
}
}
$6 = -2;
break label$1;
}
$4($0_1 + Math_imul($10, $2_1) | 0 | 0, $8 + 256 | 0 | 0, Math_imul($11, $2_1) | 0) | 0;
$4($8 | 0, ($8 + 256 | 0) + Math_imul($11 + -1 | 0, $2_1) | 0 | 0, $2_1 | 0) | 0;
$10 = $11 + $10 | 0;
if ($6) {
continue label$3
}
break label$3;
};
$6 = -2;
break label$1;
}
$6 = ($7 - $6 | 0 | 0) == (($2_1 >>> 0 > 32 >>> 0 ? $2_1 : 32) | 0) ? 0 : -3;
}
global$0 = $5_1 + 8704 | 0;
return $6 | 0;
}
function $2($0_1, $1_1, $2_1, $3_1, $4_1) {
$0_1 = $0_1 | 0;
$1_1 = $1_1 | 0;
$2_1 = $2_1 | 0;
$3_1 = $3_1 | 0;
$4_1 = $4_1 | 0;
var $9 = 0, $15 = 0, $14 = 0, $5_1 = 0, $6 = 0, $17 = 0, $18 = 0, $16 = 0, i64toi32_i32$1 = 0, $13 = 0, i64toi32_i32$0 = 0, $7 = 0, $12 = 0, $19 = 0, $8 = 0, $20 = 0, $10 = 0, $21 = 0, $11 = 0, wasm2js_i32$0 = 0, wasm2js_i32$1 = 0, wasm2js_i32$2 = 0;
$5_1 = global$0 - 192 | 0;
global$0 = $5_1;
$6 = -2;
label$1: {
$7 = ($1_1 >>> 0) / (3 >>> 0) | 0;
if (($7 + 17 | 0) >>> 0 > $4_1 >>> 0) {
break label$1
}
$6 = -1;
$8 = HEAPU8[$3_1 >> 0] | 0;
if (($8 & 240 | 0 | 0) != (224 | 0)) {
break label$1
}
$9 = $8 & 15 | 0;
if ($9 >>> 0 > 1 >>> 0) {
break label$1
}
$5($5_1 + 64 | 0 | 0, 255 | 0, 128 | 0) | 0;
i64toi32_i32$1 = $5_1 + 56 | 0;
i64toi32_i32$0 = -1;
HEAP32[i64toi32_i32$1 >> 2] = -1;
HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0;
i64toi32_i32$1 = $5_1 + 48 | 0;
i64toi32_i32$0 = -1;
HEAP32[i64toi32_i32$1 >> 2] = -1;
HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0;
i64toi32_i32$1 = $5_1 + 40 | 0;
i64toi32_i32$0 = -1;
HEAP32[i64toi32_i32$1 >> 2] = -1;
HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0;
i64toi32_i32$1 = $5_1 + 32 | 0;
i64toi32_i32$0 = -1;
HEAP32[i64toi32_i32$1 >> 2] = -1;
HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0;
i64toi32_i32$1 = $5_1 + 24 | 0;
i64toi32_i32$0 = -1;
HEAP32[i64toi32_i32$1 >> 2] = -1;
HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0;
i64toi32_i32$1 = $5_1 + 16 | 0;
i64toi32_i32$0 = -1;
HEAP32[i64toi32_i32$1 >> 2] = -1;
HEAP32[(i64toi32_i32$1 + 4 | 0) >> 2] = i64toi32_i32$0;
i64toi32_i32$1 = $5_1;
i64toi32_i32$0 = -1;
HEAP32[($5_1 + 8 | 0) >> 2] = -1;
HEAP32[($5_1 + 12 | 0) >> 2] = i64toi32_i32$0;
i64toi32_i32$1 = $5_1;
i64toi32_i32$0 = -1;
HEAP32[$5_1 >> 2] = -1;
HEAP32[($5_1 + 4 | 0) >> 2] = i64toi32_i32$0;
$10 = ($3_1 + $4_1 | 0) + -16 | 0;
$8 = $3_1 + 1 | 0;
$6 = $8 + $7 | 0;
label$2: {
if (!$1_1) {
break label$2
}
$11 = ($9 | 0) == (1 | 0) ? 13 : 15;
$12 = 0;
$13 = 0;
$7 = 0;
$3_1 = 0;
$4_1 = 0;
label$3: while (1) {
label$4: {
if ($6 >>> 0 <= $10 >>> 0) {
break label$4
}
$6 = -2;
break label$1;
}
label$5: {
label$6: {
$9 = HEAPU8[$8 >> 0] | 0;
if ($9 >>> 0 > 239 >>> 0) {
break label$6
}
$14 = $9 ^ -1 | 0;
$15 = ($5_1 + 64 | 0) + ((($4_1 + ($14 >>> 4 | 0) | 0) & 15 | 0) << 3 | 0) | 0;
$16 = HEAP32[($15 + 4 | 0) >> 2] | 0;
$17 = HEAP32[$15 >> 2] | 0;
label$7: {
$9 = $9 & 15 | 0;
if ($9 >>> 0 >= $11 >>> 0) {
break label$7
}
$15 = (wasm2js_i32$0 = HEAP32[($5_1 + ((($3_1 + $14 | 0) & 15 | 0) << 2 | 0) | 0) >> 2] | 0, wasm2js_i32$1 = $12, wasm2js_i32$2 = $9, wasm2js_i32$2 ? wasm2js_i32$0 : wasm2js_i32$1);
$9 = !$9;
label$8: {
label$9: {
if (($2_1 | 0) != (2 | 0)) {
break label$9
}
$14 = $0_1 + ($7 << 1 | 0) | 0;
HEAP16[$14 >> 1] = $17;
HEAP16[($14 + 2 | 0) >> 1] = $16;
HEAP16[($14 + 4 | 0) >> 1] = $15;
break label$8;
}
$14 = $0_1 + ($7 << 2 | 0) | 0;
HEAP32[$14 >> 2] = $17;
HEAP32[($14 + 4 | 0) >> 2] = $16;
HEAP32[($14 + 8 | 0) >> 2] = $15;
}
$12 = $12 + $9 | 0;
$14 = ($5_1 + 64 | 0) + ($4_1 << 3 | 0) | 0;
HEAP32[$14 >> 2] = $15;
HEAP32[($14 + 4 | 0) >> 2] = $16;
HEAP32[($5_1 + ($3_1 << 2 | 0) | 0) >> 2] = $15;
$4_1 = ($4_1 + 1 | 0) & 15 | 0;
$14 = ($5_1 + 64 | 0) + ($4_1 << 3 | 0) | 0;
HEAP32[$14 >> 2] = $17;
HEAP32[($14 + 4 | 0) >> 2] = $15;
$3_1 = $3_1 + $9 | 0;
$4_1 = $4_1 + 1 | 0;
break label$5;
}
label$10: {
label$11: {
if (($9 | 0) == (15 | 0)) {
break label$11
}
$13 = (($13 + $9 | 0) + ($9 ^ -4 | 0) | 0) + 1 | 0;
break label$10;
}
$9 = $6 + 1 | 0;
$15 = HEAP8[$6 >> 0] | 0;
$14 = $15 & 255 | 0;
label$12: {
label$13: {
if (($15 | 0) <= (-1 | 0)) {
break label$13
}
$6 = $9;
break label$12;
}
$6 = $6 + 5 | 0;
$14 = $14 & 127 | 0;
$15 = 7;
label$14: {
label$15: while (1) {
$18 = HEAP8[$9 >> 0] | 0;
$14 = ($18 & 127 | 0) << $15 | 0 | $14 | 0;
if (($18 | 0) > (-1 | 0)) {
break label$14
}
$9 = $9 + 1 | 0;
$15 = $15 + 7 | 0;
if (($15 | 0) != (35 | 0)) {
continue label$15
}
break label$12;
};
}
$6 = $9 + 1 | 0;
}
$13 = (($14 >>> 1 | 0) ^ (0 - ($14 & 1 | 0) | 0) | 0) + $13 | 0;
}
label$16: {
label$17: {
if (($2_1 | 0) != (2 | 0)) {
break label$17
}
$9 = $0_1 + ($7 << 1 | 0) | 0;
HEAP16[$9 >> 1] = $17;
HEAP16[($9 + 2 | 0) >> 1] = $16;
HEAP16[($9 + 4 | 0) >> 1] = $13;
break label$16;
}
$9 = $0_1 + ($7 << 2 | 0) | 0;
HEAP32[$9 >> 2] = $17;
HEAP32[($9 + 4 | 0) >> 2] = $16;
HEAP32[($9 + 8 | 0) >> 2] = $13;
}
$9 = ($5_1 + 64 | 0) + ($4_1 << 3 | 0) | 0;
HEAP32[$9 >> 2] = $13;
HEAP32[($9 + 4 | 0) >> 2] = $16;
HEAP32[($5_1 + ($3_1 << 2 | 0) | 0) >> 2] = $13;
$4_1 = ($4_1 + 1 | 0) & 15 | 0;
$9 = ($5_1 + 64 | 0) + ($4_1 << 3 | 0) | 0;
HEAP32[$9 >> 2] = $17;
HEAP32[($9 + 4 | 0) >> 2] = $13;
$3_1 = $3_1 + 1 | 0;
$4_1 = $4_1 + 1 | 0;
break label$5;
}
label$18: {
if ($9 >>> 0 > 253 >>> 0) {
break label$18
}
$18 = $12 + 1 | 0;
$15 = HEAPU8[($10 + ($9 & 15 | 0) | 0) >> 0] | 0;
$14 = $15 >>> 0 < 16 >>> 0;
$9 = (wasm2js_i32$0 = $18, wasm2js_i32$1 = HEAP32[($5_1 + ((($3_1 - ($15 >>> 4 | 0) | 0) & 15 | 0) << 2 | 0) | 0) >> 2] | 0, wasm2js_i32$2 = $14, wasm2js_i32$2 ? wasm2js_i32$0 : wasm2js_i32$1);
$16 = $18 + $14 | 0;
$18 = $15 & 15 | 0;
$15 = (wasm2js_i32$0 = HEAP32[($5_1 + ((($3_1 - $15 | 0) & 15 | 0) << 2 | 0) | 0) >> 2] | 0, wasm2js_i32$1 = $16, wasm2js_i32$2 = $18, wasm2js_i32$2 ? wasm2js_i32$0 : wasm2js_i32$1);
$18 = !$18;
label$19: {
label$20: {
if (($2_1 | 0) != (2 | 0)) {
break label$20
}
$17 = $0_1 + ($7 << 1 | 0) | 0;
HEAP16[$17 >> 1] = $12;
HEAP16[($17 + 2 | 0) >> 1] = $9;
HEAP16[($17 + 4 | 0) >> 1] = $15;
break label$19;
}
$17 = $0_1 + ($7 << 2 | 0) | 0;
HEAP32[$17 >> 2] = $12;
HEAP32[($17 + 4 | 0) >> 2] = $9;
HEAP32[($17 + 8 | 0) >> 2] = $15;
}
HEAP32[($5_1 + ($3_1 << 2 | 0) | 0) >> 2] = $12;
$17 = ($5_1 + 64 | 0) + ($4_1 << 3 | 0) | 0;
HEAP32[$17 >> 2] = $9;
HEAP32[($17 + 4 | 0) >> 2] = $12;
$3_1 = $3_1 + 1 | 0;
HEAP32[($5_1 + (($3_1 & 15 | 0) << 2 | 0) | 0) >> 2] = $9;
$17 = ($5_1 + 64 | 0) + ((($4_1 + 1 | 0) & 15 | 0) << 3 | 0) | 0;
HEAP32[$17 >> 2] = $15;
HEAP32[($17 + 4 | 0) >> 2] = $9;
$3_1 = ($3_1 + $14 | 0) & 15 | 0;
HEAP32[($5_1 + ($3_1 << 2 | 0) | 0) >> 2] = $15;
$4_1 = ($4_1 + 2 | 0) & 15 | 0;
$9 = ($5_1 + 64 | 0) + ($4_1 << 3 | 0) | 0;
HEAP32[$9 >> 2] = $12;
HEAP32[($9 + 4 | 0) >> 2] = $15;
$4_1 = $4_1 + 1 | 0;
$3_1 = $3_1 + $18 | 0;
$12 = $16 + $18 | 0;
break label$5;
}
$17 = HEAPU8[$6 >> 0] | 0;
$19 = $17 ? $12 : 0;
$9 = ($9 | 0) == (254 | 0);
$16 = $19 + $9 | 0;
$20 = $17 & 15 | 0;
$21 = $17 >>> 4 | 0;
label$21: {
label$22: {
if ($17 >>> 0 > 15 >>> 0) {
break label$22
}
$18 = $16 + 1 | 0;
break label$21;
}
$18 = $16;
$16 = HEAP32[($5_1 + ((($3_1 - $21 | 0) & 15 | 0) << 2 | 0) | 0) >> 2] | 0;
}
label$23: {
label$24: {
if ($20) {
break label$24
}
$12 = $18 + 1 | 0;
break label$23;
}
$12 = $18;
$18 = HEAP32[($5_1 + ((($3_1 - $17 | 0) & 15 | 0) << 2 | 0) | 0) >> 2] | 0;
}
label$25: {
label$26: {
if (!$9) {
break label$26
}
$9 = $6 + 1 | 0;
break label$25;
}
$9 = $6 + 2 | 0;
$14 = HEAP8[($6 + 1 | 0) >> 0] | 0;
$15 = $14 & 255 | 0;
label$27: {
if (($14 | 0) > (-1 | 0)) {
break label$27
}
$19 = $6 + 6 | 0;
$15 = $15 & 127 | 0;
$6 = 7;
label$28: {
label$29: while (1) {
$14 = HEAP8[$9 >> 0] | 0;
$15 = ($14 & 127 | 0) << $6 | 0 | $15 | 0;
if (($14 | 0) > (-1 | 0)) {
break label$28
}
$9 = $9 + 1 | 0;
$6 = $6 + 7 | 0;
if (($6 | 0) != (35 | 0)) {
continue label$29
}
break label$29;
};
$9 = $19;
break label$27;
}
$9 = $9 + 1 | 0;
}
$13 = (($15 >>> 1 | 0) ^ (0 - ($15 & 1 | 0) | 0) | 0) + $13 | 0;
$19 = $13;
}
label$30: {
label$31: {
if (($21 | 0) == (15 | 0)) {
break label$31
}
$15 = $9;
break label$30;
}
$15 = $9 + 1 | 0;
$6 = HEAP8[$9 >> 0] | 0;
$14 = $6 & 255 | 0;
label$32: {
if (($6 | 0) > (-1 | 0)) {
break label$32
}
$16 = $9 + 5 | 0;
$14 = $14 & 127 | 0;
$6 = 7;
label$33: {
label$34: while (1) {
$9 = HEAP8[$15 >> 0] | 0;
$14 = ($9 & 127 | 0) << $6 | 0 | $14 | 0;
if (($9 | 0) > (-1 | 0)) {
break label$33
}
$15 = $15 + 1 | 0;
$6 = $6 + 7 | 0;
if (($6 | 0) != (35 | 0)) {
continue label$34
}
break label$34;
};
$15 = $16;
break label$32;
}
$15 = $15 + 1 | 0;
}
$13 = (($14 >>> 1 | 0) ^ (0 - ($14 & 1 | 0) | 0) | 0) + $13 | 0;
$16 = $13;
}
label$35: {
label$36: {
if (($20 | 0) == (15 | 0)) {
break label$36
}
$6 = $15;
break label$35;
}
$6 = $15 + 1 | 0;
$9 = HEAP8[$15 >> 0] | 0;
$14 = $9 & 255 | 0;
label$37: {
if (($9 | 0) > (-1 | 0)) {
break label$37
}
$18 = $15 + 5 | 0;
$14 = $14 & 127 | 0;
$9 = 7;
label$38: {
label$39: while (1) {
$15 = HEAP8[$6 >> 0] | 0;
$14 = ($15 & 127 | 0) << $9 | 0 | $14 | 0;
if (($15 | 0) > (-1 | 0)) {
break label$38
}
$6 = $6 + 1 | 0;
$9 = $9 + 7 | 0;
if (($9 | 0) != (35 | 0)) {
continue label$39
}
break label$39;
};
$6 = $18;
break label$37;
}
$6 = $6 + 1 | 0;
}
$13 = (($14 >>> 1 | 0) ^ (0 - ($14 & 1 | 0) | 0) | 0) + $13 | 0;
$18 = $13;
}
label$40: {
label$41: {
if (($2_1 | 0) != (2 | 0)) {
break label$41
}
$9 = $0_1 + ($7 << 1 | 0) | 0;
HEAP16[$9 >> 1] = $19;
HEAP16[($9 + 2 | 0) >> 1] = $16;
HEAP16[($9 + 4 | 0) >> 1] = $18;
break label$40;
}
$9 = $0_1 + ($7 << 2 | 0) | 0;
HEAP32[$9 >> 2] = $19;
HEAP32[($9 + 4 | 0) >> 2] = $16;
HEAP32[($9 + 8 | 0) >> 2] = $18;
}
$9 = ($5_1 + 64 | 0) + ($4_1 << 3 | 0) | 0;
HEAP32[$9 >> 2] = $16;
HEAP32[($9 + 4 | 0) >> 2] = $19;
HEAP32[($5_1 + ($3_1 << 2 | 0) | 0) >> 2] = $19;
$9 = ($5_1 + 64 | 0) + ((($4_1 + 1 | 0) & 15 | 0) << 3 | 0) | 0;
HEAP32[$9 >> 2] = $18;
HEAP32[($9 + 4 | 0) >> 2] = $16;
$3_1 = $3_1 + 1 | 0;
HEAP32[($5_1 + (($3_1 & 15 | 0) << 2 | 0) | 0) >> 2] = $16;
$9 = ($5_1 + 64 | 0) + ((($4_1 + 2 | 0) & 15 | 0) << 3 | 0) | 0;
HEAP32[$9 >> 2] = $19;
HEAP32[($9 + 4 | 0) >> 2] = $18;
$3_1 = $3_1 + ($17 >>> 0 < 16 >>> 0 | ($21 | 0) == (15 | 0) | 0) | 0;
HEAP32[($5_1 + (($3_1 & 15 | 0) << 2 | 0) | 0) >> 2] = $18;
$3_1 = $3_1 + (!$20 | ($20 | 0) == (15 | 0) | 0) | 0;
$4_1 = $4_1 + 3 | 0;
}
$8 = $8 + 1 | 0;
$4_1 = $4_1 & 15 | 0;
$3_1 = $3_1 & 15 | 0;
$7 = $7 + 3 | 0;
if ($7 >>> 0 < $1_1 >>> 0) {
continue label$3
}
break label$3;
};
}
$6 = ($6 | 0) == ($10 | 0) ? 0 : -3;
}
global$0 = $5_1 + 192 | 0;
return $6 | 0;
}
function $3($0_1) {
$0_1 = $0_1 | 0;
var $1_1 = 0, $2_1 = 0, $3_1 = 0;
$1_1 = HEAP32[(0 + 1024 | 0) >> 2] | 0;
$0_1 = $1_1 + (($0_1 + 3 | 0) & -4 | 0) | 0;
HEAP32[(0 + 1024 | 0) >> 2] = $0_1;
label$1: {
label$2: {
$2_1 = __wasm_memory_size() << 16 | 0;
if ($0_1 >>> 0 <= $2_1 >>> 0) {
break label$2
}
$3_1 = -1;
if ((__wasm_memory_grow((($0_1 - $2_1 | 0) + 65535 | 0) >>> 16 | 0 | 0) | 0) == (-1 | 0)) {
break label$1
}
}
$3_1 = $1_1;
}
return $3_1 | 0;
}
function $4($0_1, $1_1, $2_1) {
$0_1 = $0_1 | 0;
$1_1 = $1_1 | 0;
$2_1 = $2_1 | 0;
var $3_1 = 0;
label$1: {
label$2: {
if (!(($1_1 | $0_1 | 0) & 3 | 0)) {
break label$2
}
$3_1 = $0_1;
break label$1;
}
label$3: {
label$4: {
if ($2_1 >>> 0 >= 16 >>> 0) {
break label$4
}
$3_1 = $0_1;
break label$3;
}
$3_1 = $0_1;
label$5: while (1) {
HEAP32[$3_1 >> 2] = HEAP32[$1_1 >> 2] | 0;
HEAP32[($3_1 + 4 | 0) >> 2] = HEAP32[($1_1 + 4 | 0) >> 2] | 0;
HEAP32[($3_1 + 8 | 0) >> 2] = HEAP32[($1_1 + 8 | 0) >> 2] | 0;
HEAP32[($3_1 + 12 | 0) >> 2] = HEAP32[($1_1 + 12 | 0) >> 2] | 0;
$1_1 = $1_1 + 16 | 0;
$3_1 = $3_1 + 16 | 0;
$2_1 = $2_1 + -16 | 0;
if ($2_1 >>> 0 > 15 >>> 0) {
continue label$5
}
break label$5;
};
}
if ($2_1 >>> 0 < 4 >>> 0) {
break label$1
}
label$6: while (1) {
HEAP32[$3_1 >> 2] = HEAP32[$1_1 >> 2] | 0;
$1_1 = $1_1 + 4 | 0;
$3_1 = $3_1 + 4 | 0;
$2_1 = $2_1 + -4 | 0;
if ($2_1 >>> 0 > 3 >>> 0) {
continue label$6
}
break label$6;
};
}
label$7: {
if (!$2_1) {
break label$7
}
label$8: while (1) {
HEAP8[$3_1 >> 0] = HEAPU8[$1_1 >> 0] | 0;
$3_1 = $3_1 + 1 | 0;
$1_1 = $1_1 + 1 | 0;
$2_1 = $2_1 + -1 | 0;
if ($2_1) {
continue label$8
}
break label$8;
};
}
return $0_1 | 0;
}
function $5($0_1, $1_1, $2_1) {
$0_1 = $0_1 | 0;
$1_1 = $1_1 | 0;
$2_1 = $2_1 | 0;
var $3_1 = 0, $4_1 = 0;
label$1: {
label$2: {
if (!($0_1 & 3 | 0)) {
break label$2
}
$3_1 = $0_1;
break label$1;
}
$4_1 = Math_imul($1_1 & 255 | 0, 16843009);
label$3: {
label$4: {
if ($2_1 >>> 0 >= 16 >>> 0) {
break label$4
}
$3_1 = $0_1;
break label$3;
}
$3_1 = $0_1;
label$5: while (1) {
HEAP32[$3_1 >> 2] = $4_1;
HEAP32[($3_1 + 12 | 0) >> 2] = $4_1;
HEAP32[($3_1 + 8 | 0) >> 2] = $4_1;
HEAP32[($3_1 + 4 | 0) >> 2] = $4_1;
$3_1 = $3_1 + 16 | 0;
$2_1 = $2_1 + -16 | 0;
if ($2_1 >>> 0 > 15 >>> 0) {
continue label$5
}
break label$5;
};
}
if ($2_1 >>> 0 < 4 >>> 0) {
break label$1
}
label$6: while (1) {
HEAP32[$3_1 >> 2] = $4_1;
$3_1 = $3_1 + 4 | 0;
$2_1 = $2_1 + -4 | 0;
if ($2_1 >>> 0 > 3 >>> 0) {
continue label$6
}
break label$6;
};
}
label$7: {
if (!$2_1) {
break label$7
}
label$8: while (1) {
HEAP8[$3_1 >> 0] = $1_1;
$3_1 = $3_1 + 1 | 0;
$2_1 = $2_1 + -1 | 0;
if ($2_1) {
continue label$8
}
break label$8;
};
}
return $0_1 | 0;
}
// EMSCRIPTEN_END_FUNCS
;
bufferView = HEAPU8;
initActiveSegments(env);
function __wasm_memory_size() {
return buffer.byteLength / 65536 | 0;
}
function __wasm_memory_grow(pagesToAdd) {
pagesToAdd = pagesToAdd | 0;
var oldPages = __wasm_memory_size() | 0;
var newPages = oldPages + pagesToAdd | 0;
if ((oldPages < newPages) && (newPages < 65536)) {
var newBuffer = new ArrayBuffer(Math_imul(newPages, 65536));
var newHEAP8 = new Int8Array(newBuffer);
newHEAP8.set(HEAP8);
HEAP8 = new Int8Array(newBuffer);
HEAP16 = new Int16Array(newBuffer);
HEAP32 = new Int32Array(newBuffer);
HEAPU8 = new Uint8Array(newBuffer);
HEAPU16 = new Uint16Array(newBuffer);
HEAPU32 = new Uint32Array(newBuffer);
HEAPF32 = new Float32Array(newBuffer);
HEAPF64 = new Float64Array(newBuffer);
buffer = newBuffer;
bufferView = HEAPU8;
}
return oldPages;
}
return {
"memory": Object.create(Object.prototype, {
"grow": {
"value": __wasm_memory_grow
},
"buffer": {
"get": function () {
return buffer;
}
}
}),
"__wasm_call_ctors": $0,
"meshopt_decodeVertexBuffer": $1,
"meshopt_decodeIndexBuffer": $2,
"sbrk": $3
};
}
return asmFunc(asmLibraryArg);
}