@spz-loader/core
Version:
.spz Gaussian Splatting file loader
757 lines • 251 kB
JavaScript
async function TI(R = {}) {
var DI;
var s, i = R, L = typeof window == "object", k = typeof WorkerGlobalScope < "u", f = typeof process == "object" && ((DI = process.versions) == null ? void 0 : DI.node) && process.type != "renderer";
if (f) {
const { createRequire: I } = await Promise.resolve().then(() => bI);
var r = I(import.meta.url);
}
var x = "./this.program", p = import.meta.url, $;
if (f) {
var wI = r("fs");
p.startsWith("file:") && r("path").dirname(r("url").fileURLToPath(p)), $ = (I) => (I = oI(I) ? new URL(I) : I, wI.readFileSync(I)), 1 < process.argv.length && (x = process.argv[1].replace(/\\/g, "/")), process.argv.slice(2);
} else if (L || k) {
try {
new URL(".", p);
} catch {
}
k && ($ = (I) => {
var A = new XMLHttpRequest();
return A.open("GET", I, !1), A.responseType = "arraybuffer", A.send(null), new Uint8Array(A.response);
});
}
var qA = console.log.bind(console), _ = console.error.bind(console), GA, fA = !1, oI = (I) => I.startsWith("file://"), AA, IA, gA, BA, c, O, P, W, a, eA, dA, lA, xA, WA = !1;
function ZA() {
var I = gA.buffer;
BA = new Int8Array(I), O = new Int16Array(I), i.HEAPU8 = c = new Uint8Array(I), P = new Uint16Array(I), W = new Int32Array(I), a = new Uint32Array(I), i.HEAPF32 = eA = new Float32Array(I), dA = new Float64Array(I), lA = new BigInt64Array(I), xA = new BigUint64Array(I);
}
var e = 0, u = null;
function jA(I) {
var A;
throw (A = i.onAbort) == null || A.call(i, I), I = "Aborted(" + I + ")", _(I), fA = !0, I = new WebAssembly.RuntimeError(I + ". Build with -sASSERTIONS for more info."), IA == null || IA(I), I;
}
var RA;
async function FI(I) {
if (!ArrayBuffer.isView(I)) if (I == RA && GA) I = new Uint8Array(GA);
else if ($) I = $(I);
else throw "both async and sync fetching of the wasm failed";
return I;
}
async function GI(I) {
var A = RA;
try {
var g = await FI(A);
return await WebAssembly.instantiate(g, I);
} catch (B) {
_(`failed to asynchronously prepare wasm: ${B}`), jA(B);
}
}
async function RI(I) {
return GI(I);
}
var VA = (I) => {
for (; 0 < I.length; ) I.shift()(i);
}, XA = [], TA = [], sI = () => {
var I = i.preRun.shift();
TA.push(I);
}, yI = (I) => {
if (f) return I = Buffer.from(I, "base64"), new Uint8Array(I.buffer, I.byteOffset, I.length);
for (var A, g, B = 0, Q = 0, E = I.length, C = new Uint8Array((3 * E >> 2) - (I[E - 2] == "=") - (I[E - 1] == "=")); B < E; B += 4, Q += 3) A = t[I.charCodeAt(B + 1)], g = t[I.charCodeAt(B + 2)], C[Q] = t[I.charCodeAt(B)] << 2 | A >> 4, C[Q + 1] = A << 4 | g >> 2, C[Q + 2] = g << 6 | t[I.charCodeAt(B + 3)];
return C;
}, QA = {}, sA = (I) => {
for (; I.length; ) {
var A = I.pop();
I.pop()(A);
}
};
function m(I) {
return this.N(a[I >> 2]);
}
var Z = {}, d = {}, CA = {}, EA = class extends Error {
constructor(I) {
super(I), this.name = "InternalError";
}
}, l = (I, A, g) => {
function B(D) {
if (D = g(D), D.length !== I.length) throw new EA("Mismatched type converter count");
for (var o = 0; o < I.length; ++o) J(I[o], D[o]);
}
I.forEach((D) => CA[D] = A);
var Q = Array(A.length), E = [], C = 0;
A.forEach((D, o) => {
d.hasOwnProperty(D) ? Q[o] = d[D] : (E.push(D), Z.hasOwnProperty(D) || (Z[D] = []), Z[D].push(() => {
Q[o] = d[D], ++C, C === E.length && B(Q);
}));
}), E.length === 0 && B(Q);
}, h = (I) => {
for (var A = ""; ; ) {
var g = c[I++];
if (!g) return A;
A += String.fromCharCode(g);
}
}, G = class extends Error {
constructor(I) {
super(I), this.name = "BindingError";
}
}, aI = (I) => {
throw new G(I);
};
function hI(I, A, g = {}) {
var B = A.name;
if (!I) throw new G(`type "${B}" must have a positive integer typeid pointer`);
if (d.hasOwnProperty(I)) {
if (g.wa) return;
throw new G(`Cannot register type '${B}' twice`);
}
d[I] = A, delete CA[I], Z.hasOwnProperty(I) && (A = Z[I], delete Z[I], A.forEach((Q) => Q()));
}
function J(I, A, g = {}) {
return hI(I, A, g);
}
var pA = (I, A, g) => {
switch (A) {
case 1:
return g ? (B) => BA[B] : (B) => c[B];
case 2:
return g ? (B) => O[B >> 1] : (B) => P[B >> 1];
case 4:
return g ? (B) => W[B >> 2] : (B) => a[B >> 2];
case 8:
return g ? (B) => lA[B >> 3] : (B) => xA[B >> 3];
default:
throw new TypeError(`invalid integer width (${A}): ${I}`);
}
}, yA = (I) => {
throw new G(I.L.P.M.name + " instance already deleted");
}, aA = !1, OA = () => {
}, b = (I) => typeof FinalizationRegistry > "u" ? (b = (A) => A, I) : (aA = new FinalizationRegistry((A) => {
A = A.L, --A.count.value, A.count.value === 0 && (A.S ? A.W.Y(A.S) : A.P.M.Y(A.O));
}), b = (A) => {
var g = A.L;
return g.S && aA.register(A, { L: g }, A), A;
}, OA = (A) => {
aA.unregister(A);
}, b(I));
function DA() {
}
var iA = (I, A) => Object.defineProperty(A, "name", { value: I }), PA = {}, uA = (I, A, g) => {
if (I[A].R === void 0) {
var B = I[A];
I[A] = function(...Q) {
if (!I[A].R.hasOwnProperty(Q.length)) throw new G(`Function '${g}' called with an invalid number of arguments (${Q.length}) - expects one of (${I[A].R})!`);
return I[A].R[Q.length].apply(this, Q);
}, I[A].R = [], I[A].R[B.aa] = B;
}
}, hA = (I, A, g) => {
if (i.hasOwnProperty(I)) {
if (g === void 0 || i[I].R !== void 0 && i[I].R[g] !== void 0) throw new G(`Cannot register public name '${I}' twice`);
if (uA(i, I, I), i[I].R.hasOwnProperty(g)) throw new G(`Cannot register multiple overloads of a function with the same number of arguments (${g})!`);
i[I].R[g] = A;
} else i[I] = A, i[I].aa = g;
}, MI = (I) => {
I = I.replace(/[^a-zA-Z0-9_]/g, "$");
var A = I.charCodeAt(0);
return 48 <= A && 57 >= A ? `_${I}` : I;
};
function NI(I, A, g, B, Q, E, C, D) {
this.name = I, this.constructor = A, this.$ = g, this.Y = B, this.U = Q, this.ra = E, this.ea = C, this.pa = D, this.ya = [];
}
var MA = (I, A, g) => {
for (; A !== g; ) {
if (!A.ea) throw new G(`Expected null or instance of ${g.name}, got an instance of ${A.name}`);
I = A.ea(I), A = A.U;
}
return I;
}, NA = (I) => {
if (I === null) return "null";
var A = typeof I;
return A === "object" || A === "array" || A === "function" ? I.toString() : "" + I;
};
function UI(I, A) {
if (A === null) {
if (this.ha) throw new G(`null is not a valid ${this.name}`);
return 0;
}
if (!A.L) throw new G(`Cannot pass "${NA(A)}" as a ${this.name}`);
if (!A.L.O) throw new G(`Cannot pass deleted object as a pointer of type ${this.name}`);
return MA(A.L.O, A.L.P.M, this.M);
}
function SI(I, A) {
if (A === null) {
if (this.ha) throw new G(`null is not a valid ${this.name}`);
if (this.ga) {
var g = this.ia();
return I !== null && I.push(this.Y, g), g;
}
return 0;
}
if (!A || !A.L) throw new G(`Cannot pass "${NA(A)}" as a ${this.name}`);
if (!A.L.O) throw new G(`Cannot pass deleted object as a pointer of type ${this.name}`);
if (!this.fa && A.L.P.fa) throw new G(`Cannot convert argument of type ${A.L.W ? A.L.W.name : A.L.P.name} to parameter type ${this.name}`);
if (g = MA(A.L.O, A.L.P.M, this.M), this.ga) {
if (A.L.S === void 0) throw new G("Passing raw pointer to smart pointer is illegal");
switch (this.Da) {
case 0:
if (A.L.W === this) g = A.L.S;
else throw new G(`Cannot convert argument of type ${A.L.W ? A.L.W.name : A.L.P.name} to parameter type ${this.name}`);
break;
case 1:
g = A.L.S;
break;
case 2:
if (A.L.W === this) g = A.L.S;
else {
var B = A.clone();
g = this.za(g, LA(() => B.delete())), I !== null && I.push(this.Y, g);
}
break;
default:
throw new G("Unsupporting sharing policy");
}
}
return g;
}
function JI(I, A) {
if (A === null) {
if (this.ha) throw new G(`null is not a valid ${this.name}`);
return 0;
}
if (!A.L) throw new G(`Cannot pass "${NA(A)}" as a ${this.name}`);
if (!A.L.O) throw new G(`Cannot pass deleted object as a pointer of type ${this.name}`);
if (A.L.P.fa) throw new G(`Cannot convert argument of type ${A.L.P.name} to parameter type ${this.name}`);
return MA(A.L.O, A.L.P.M, this.M);
}
var mA = (I, A, g) => A === g ? I : g.U === void 0 ? null : (I = mA(I, A, g.U), I === null ? null : g.pa(I)), YI = {}, LI = (I, A) => {
if (A === void 0) throw new G("ptr should not be undefined");
for (; I.U; ) A = I.ea(A), I = I.U;
return YI[A];
}, wA = (I, A) => {
if (!A.P || !A.O) throw new EA("makeClassHandle requires ptr and ptrType");
if (!!A.W != !!A.S) throw new EA("Both smartPtrType and smartPtr must be specified");
return A.count = { value: 1 }, b(Object.create(I, { L: { value: A, writable: !0 } }));
};
function oA(I, A, g, B, Q, E, C, D, o, F, w) {
this.name = I, this.M = A, this.ha = g, this.fa = B, this.ga = Q, this.xa = E, this.Da = C, this.na = D, this.ia = o, this.za = F, this.Y = w, Q || A.U !== void 0 ? this.T = SI : (this.T = B ? UI : JI, this.V = null);
}
var bA = (I, A, g) => {
if (!i.hasOwnProperty(I)) throw new EA("Replacing nonexistent public symbol");
i[I].R !== void 0 && g !== void 0 ? i[I].R[g] = A : (i[I] = A, i[I].aa = g);
}, zA, H = (I, A) => {
I = h(I);
var g = zA.get(A);
if (typeof g != "function") throw new G(`unknown function pointer with signature ${I}: ${A}`);
return g;
};
class kI extends Error {
}
var vA = (I) => {
I = EI(I);
var A = h(I);
return q(I), A;
}, FA = (I, A) => {
function g(E) {
Q[E] || d[E] || (CA[E] ? CA[E].forEach(g) : (B.push(E), Q[E] = !0));
}
var B = [], Q = {};
throw A.forEach(g), new kI(`${I}: ` + B.map(vA).join([", "]));
}, UA = (I, A) => {
for (var g = [], B = 0; B < I; B++) g.push(a[A + 4 * B >> 2]);
return g;
};
function $A(I) {
for (var A = 1; A < I.length; ++A) if (I[A] !== null && I[A].V === void 0) return !0;
return !1;
}
function SA(I, A, g, B, Q, E) {
var C = A.length;
if (2 > C) throw new G("argTypes array size mismatch! Must at least get return value and 'this' types!");
var D = A[1] !== null && g !== null, o = $A(A);
g = !A[0].ma;
var F = A[0], w = A[1];
for (B = [I, aI, B, Q, sA, F.N.bind(F), w == null ? void 0 : w.T.bind(w)], Q = 2; Q < C; ++Q) F = A[Q], B.push(F.T.bind(F));
if (!o) for (Q = D ? 1 : 2; Q < A.length; ++Q) A[Q].V !== null && B.push(A[Q].V);
for (o = $A(A), Q = A.length - 2, w = [], F = ["fn"], D && F.push("thisWired"), C = 0; C < Q; ++C) w.push(`arg${C}`), F.push(`arg${C}Wired`);
w = w.join(","), F = F.join(","), w = `return function (${w}) {
`, o && (w += `var destructors = [];
`);
var y = o ? "destructors" : "null", U = "humanName throwBindingError invoker fn runDestructors fromRetWire toClassParamWire".split(" ");
for (D && (w += `var thisWired = toClassParamWire(${y}, this);
`), C = 0; C < Q; ++C) {
var M = `toArg${C}Wire`;
w += `var arg${C}Wired = ${M}(${y}, arg${C});
`, U.push(M);
}
if (w += (g || E ? "var rv = " : "") + `invoker(${F});
`, o) w += `runDestructors(destructors);
`;
else for (C = D ? 1 : 2; C < A.length; ++C) E = C === 1 ? "thisWired" : "arg" + (C - 2) + "Wired", A[C].V !== null && (w += `${E}_dtor(${E});
`, U.push(`${E}_dtor`));
return g && (w += `var ret = fromRetWire(rv);
return ret;
`), A = new Function(U, w + `}
`)(...B), iA(I, A);
}
for (var _A = (I) => {
I = I.trim();
const A = I.indexOf("(");
return A === -1 ? I : I.slice(0, A);
}, AI = [], j = [0, 1, , 1, null, 1, !0, 1, !1, 1], JA = (I) => {
9 < I && --j[I + 1] === 0 && (j[I] = void 0, AI.push(I));
}, YA = (I) => {
if (!I) throw new G(`Cannot use deleted val. handle = ${I}`);
return j[I];
}, LA = (I) => {
switch (I) {
case void 0:
return 2;
case null:
return 4;
case !0:
return 6;
case !1:
return 8;
default:
const A = AI.pop() || j.length;
return j[A] = I, j[A + 1] = 1, A;
}
}, II = { name: "emscripten::val", N: (I) => {
var A = YA(I);
return JA(I), A;
}, T: (I, A) => LA(A), X: m, V: null }, cI = (I, A, g) => {
switch (A) {
case 1:
return g ? function(B) {
return this.N(BA[B]);
} : function(B) {
return this.N(c[B]);
};
case 2:
return g ? function(B) {
return this.N(O[B >> 1]);
} : function(B) {
return this.N(P[B >> 1]);
};
case 4:
return g ? function(B) {
return this.N(W[B >> 2]);
} : function(B) {
return this.N(a[B >> 2]);
};
default:
throw new TypeError(`invalid integer width (${A}): ${I}`);
}
}, gI = (I, A) => {
var g = d[I];
if (g === void 0) throw I = `${A} has unknown type ${vA(I)}`, new G(I);
return g;
}, HI = (I, A) => {
switch (A) {
case 4:
return function(g) {
return this.N(eA[g >> 2]);
};
case 8:
return function(g) {
return this.N(dA[g >> 3]);
};
default:
throw new TypeError(`invalid float width (${A}): ${I}`);
}
}, tI = Object.assign({ optional: !0 }, II), V = (I, A, g) => {
var B = c;
if (!(0 < g)) return 0;
var Q = A;
g = A + g - 1;
for (var E = 0; E < I.length; ++E) {
var C = I.codePointAt(E);
if (127 >= C) {
if (A >= g) break;
B[A++] = C;
} else if (2047 >= C) {
if (A + 1 >= g) break;
B[A++] = 192 | C >> 6, B[A++] = 128 | C & 63;
} else if (65535 >= C) {
if (A + 2 >= g) break;
B[A++] = 224 | C >> 12, B[A++] = 128 | C >> 6 & 63, B[A++] = 128 | C & 63;
} else {
if (A + 3 >= g) break;
B[A++] = 240 | C >> 18, B[A++] = 128 | C >> 12 & 63, B[A++] = 128 | C >> 6 & 63, B[A++] = 128 | C & 63, E++;
}
}
return B[A] = 0, A - Q;
}, BI = (I) => {
for (var A = 0, g = 0; g < I.length; ++g) {
var B = I.charCodeAt(g);
127 >= B ? A++ : 2047 >= B ? A += 2 : 55296 <= B && 57343 >= B ? (A += 4, ++g) : A += 3;
}
return A;
}, QI = new TextDecoder(), kA = (I, A, g, B) => {
if (g = A + g, B) return g;
for (; I[A] && !(A >= g); ) ++A;
return A;
}, KI = new TextDecoder("utf-16le"), rI = (I, A, g) => (I >>= 1, KI.decode(P.subarray(I, kA(P, I, A / 2, g)))), nI = (I, A, g) => {
if (g ?? (g = 2147483647), 2 > g) return 0;
g -= 2;
var B = A;
g = g < 2 * I.length ? g / 2 : I.length;
for (var Q = 0; Q < g; ++Q) O[A >> 1] = I.charCodeAt(Q), A += 2;
return O[A >> 1] = 0, A - B;
}, qI = (I) => 2 * I.length, fI = (I, A, g) => {
var B = "";
I >>= 2;
for (var Q = 0; !(Q >= A / 4); Q++) {
var E = a[I + Q];
if (!E && !g) break;
B += String.fromCodePoint(E);
}
return B;
}, eI = (I, A, g) => {
if (g ?? (g = 2147483647), 4 > g) return 0;
var B = A;
g = B + g - 4;
for (var Q = 0; Q < I.length; ++Q) {
var E = I.codePointAt(Q);
if (65535 < E && Q++, W[A >> 2] = E, A += 4, A + 4 > g) break;
}
return W[A >> 2] = 0, A - B;
}, dI = (I) => {
for (var A = 0, g = 0; g < I.length; ++g) 65535 < I.codePointAt(g) && g++, A += 4;
return A;
}, cA = [], lI = (I) => {
var A = cA.length;
return cA.push(I), A;
}, xI = (I, A) => {
for (var g = Array(I), B = 0; B < I; ++B) g[B] = gI(a[A + 4 * B >> 2], `parameter ${B}`);
return g;
}, WI = (I, A, g) => {
var B = [];
return I = I(B, g), B.length && (a[A >> 2] = LA(B)), I;
}, ZI = {}, jI = (I) => {
var A = ZI[I];
return A === void 0 ? h(I) : A;
}, HA = {}, CI = () => {
if (!tA) {
var I = { USER: "web_user", LOGNAME: "web_user", PATH: "/", PWD: "/", HOME: "/home/web_user", LANG: (typeof navigator == "object" && navigator.language || "C").replace("-", "_") + ".UTF-8", _: x || "./this.program" }, A;
for (A in HA) HA[A] === void 0 ? delete I[A] : I[A] = HA[A];
var g = [];
for (A in I) g.push(`${A}=${I[A]}`);
tA = g;
}
return tA;
}, tA, VI = [null, [], []], t = new Uint8Array(123), n = 25; 0 <= n; --n) t[48 + n] = 52 + n, t[65 + n] = n, t[97 + n] = 26 + n;
t[43] = 62, t[47] = 63, (() => {
let I = DA.prototype;
Object.assign(I, { isAliasOf: function(g) {
if (!(this instanceof DA && g instanceof DA)) return !1;
var B = this.L.P.M, Q = this.L.O;
g.L = g.L;
var E = g.L.P.M;
for (g = g.L.O; B.U; ) Q = B.ea(Q), B = B.U;
for (; E.U; ) g = E.ea(g), E = E.U;
return B === E && Q === g;
}, clone: function() {
if (this.L.O || yA(this), this.L.da) return this.L.count.value += 1, this;
var g = b, B = Object, Q = B.create, E = Object.getPrototypeOf(this), C = this.L;
return g = g(Q.call(B, E, { L: { value: { count: C.count, ba: C.ba, da: C.da, O: C.O, P: C.P, S: C.S, W: C.W } } })), g.L.count.value += 1, g.L.ba = !1, g;
}, delete() {
if (this.L.O || yA(this), this.L.ba && !this.L.da) throw new G("Object already scheduled for deletion");
OA(this);
var g = this.L;
--g.count.value, g.count.value === 0 && (g.S ? g.W.Y(g.S) : g.P.M.Y(g.O)), this.L.da || (this.L.S = void 0, this.L.O = void 0);
}, isDeleted: function() {
return !this.L.O;
}, deleteLater: function() {
if (this.L.O || yA(this), this.L.ba && !this.L.da) throw new G("Object already scheduled for deletion");
return this.L.ba = !0, this;
} });
const A = Symbol.dispose;
A && (I[A] = I.delete);
})(), Object.assign(oA.prototype, { sa(I) {
return this.na && (I = this.na(I)), I;
}, ka(I) {
var A;
(A = this.Y) == null || A.call(this, I);
}, X: m, N: function(I) {
function A() {
return this.ga ? wA(this.M.$, { P: this.xa, O: g, W: this, S: I }) : wA(this.M.$, { P: this, O: I });
}
var g = this.sa(I);
if (!g) return this.ka(I), null;
var B = LI(this.M, g);
if (B !== void 0)
return B.L.count.value === 0 ? (B.L.O = g, B.L.S = I, B.clone()) : (B = B.clone(), this.ka(I), B);
if (B = this.M.ra(g), B = PA[B], !B) return A.call(this);
B = this.fa ? B.oa : B.pointerType;
var Q = mA(g, this.M, B.M);
return Q === null ? A.call(this) : this.ga ? wA(B.M.$, { P: B, O: Q, W: this, S: I }) : wA(B.M.$, { P: B, O: Q });
} }), i.print && (qA = i.print), i.printErr && (_ = i.printErr), i.wasmBinary && (GA = i.wasmBinary), i.thisProgram && (x = i.thisProgram);
var EI, KA, q, XI = { x: () => jA(""), q: (I) => {
var A = QA[I];
delete QA[I];
var g = A.ia, B = A.Y, Q = A.la, E = Q.map((C) => C.va).concat(Q.map((C) => C.Ba));
l([I], E, (C) => {
var D = {};
return Q.forEach((o, F) => {
var w = C[F], y = o.ta, U = o.ua, M = C[F + Q.length], N = o.Aa, Y = o.Ca;
D[o.qa] = { read: (K) => w.N(y(U, K)), write: (K, z) => {
var S = [];
N(Y, K, M.T(S, z)), sA(S);
}, optional: C[F].optional };
}), [{ name: A.name, N: (o) => {
var F = {}, w;
for (w in D) F[w] = D[w].read(o);
return B(o), F;
}, T: (o, F) => {
for (var w in D) if (!(w in F || D[w].optional)) throw new TypeError(`Missing field: "${w}"`);
var y = g();
for (w in D) D[w].write(y, F[w]);
return o !== null && o.push(B, y), y;
}, X: m, V: B }];
});
}, n: (I, A, g, B, Q) => {
A = h(A), B = B === 0n;
let E = (C) => C;
if (B) {
const C = 8 * g;
E = (D) => BigInt.asUintN(C, D), Q = E(Q);
}
J(I, { name: A, N: E, T: (C, D) => (typeof D == "number" && (D = BigInt(D)), D), X: pA(A, g, !B), V: null });
}, B: (I, A, g, B) => {
A = h(A), J(I, { name: A, N: function(Q) {
return !!Q;
}, T: function(Q, E) {
return E ? g : B;
}, X: function(Q) {
return this.N(c[Q]);
}, V: null });
}, j: (I, A, g, B, Q, E, C, D, o, F, w, y, U) => {
w = h(w), E = H(Q, E), D && (D = H(C, D)), F && (F = H(o, F)), U = H(y, U);
var M = MI(w);
hA(M, function() {
FA(
`Cannot construct ${w} due to unbound types`,
[B]
);
}), l([I, A, g], B ? [B] : [], (N) => {
if (N = N[0], B)
var Y = N.M, K = Y.$;
else K = DA.prototype;
N = iA(w, function(...nA) {
if (Object.getPrototypeOf(this) !== z) throw new G(`Use 'new' to construct ${w}`);
if (S.Z === void 0) throw new G(`${w} has no accessible constructor`);
var iI = S.Z[nA.length];
if (iI === void 0) throw new G(`Tried to invoke ctor of ${w} with invalid number of parameters (${nA.length}) - expected (${Object.keys(S.Z).toString()}) parameters instead!`);
return iI.apply(this, nA);
});
var z = Object.create(K, { constructor: { value: N } });
N.prototype = z;
var S = new NI(w, N, z, U, Y, E, D, F);
if (S.U) {
var v;
(v = S.U).ja ?? (v.ja = []), S.U.ja.push(S);
}
return Y = new oA(w, S, !0, !1, !1), v = new oA(w + "*", S, !1, !1, !1), K = new oA(w + " const*", S, !1, !0, !1), PA[I] = { pointerType: v, oa: K }, bA(M, N), [Y, v, K];
});
}, g: (I, A, g, B, Q, E) => {
var C = UA(A, g);
Q = H(B, Q), l([], [I], (D) => {
D = D[0];
var o = `constructor ${D.name}`;
if (D.M.Z === void 0 && (D.M.Z = []), D.M.Z[A - 1] !== void 0) throw new G(`Cannot register multiple constructors with identical number of parameters (${A - 1}) for class '${D.name}'! Overload resolution is currently only performed using the parameter count, not actual type info!`);
return D.M.Z[A - 1] = () => {
FA(`Cannot construct ${D.name} due to unbound types`, C);
}, l([], C, (F) => (F.splice(1, 0, null), D.M.Z[A - 1] = SA(o, F, null, Q, E), [])), [];
});
}, b: (I, A, g, B, Q, E, C, D, o) => {
var F = UA(g, B);
A = h(A), A = _A(A), E = H(Q, E), l([], [I], (w) => {
function y() {
FA(`Cannot call ${U} due to unbound types`, F);
}
w = w[0];
var U = `${w.name}.${A}`;
A.startsWith("@@") && (A = Symbol[A.substring(2)]), D && w.M.ya.push(A);
var M = w.M.$, N = M[A];
return N === void 0 || N.R === void 0 && N.className !== w.name && N.aa === g - 2 ? (y.aa = g - 2, y.className = w.name, M[A] = y) : (uA(
M,
A,
U
), M[A].R[g - 2] = y), l([], F, (Y) => (Y = SA(U, Y, w, E, C, o), M[A].R === void 0 ? (Y.aa = g - 2, M[A] = Y) : M[A].R[g - 2] = Y, [])), [];
});
}, z: (I) => J(I, II), r: (I, A, g, B) => {
function Q() {
}
A = h(A), Q.values = {}, J(I, { name: A, constructor: Q, N: function(E) {
return this.constructor.values[E];
}, T: (E, C) => C.value, X: cI(A, g, B), V: null }), hA(A, Q);
}, d: (I, A, g) => {
var B = gI(I, "enum");
A = h(A), I = B.constructor, B = Object.create(B.constructor.prototype, { value: { value: g }, constructor: { value: iA(`${B.name}_${A}`, function() {
}) } }), I.values[g] = B, I[A] = B;
}, m: (I, A, g) => {
A = h(A), J(I, { name: A, N: (B) => B, T: (B, Q) => Q, X: HI(A, g), V: null });
}, l: (I, A, g, B, Q, E, C) => {
var D = UA(A, g);
I = h(I), I = _A(I), Q = H(B, Q), hA(I, function() {
FA(`Cannot call ${I} due to unbound types`, D);
}, A - 1), l([], D, (o) => (o = [o[0], null].concat(o.slice(1)), bA(I, SA(I, o, null, Q, E, C), A - 1), []));
}, c: (I, A, g, B, Q) => {
A = h(A);
let E = (D) => D;
if (B === 0) {
var C = 32 - 8 * g;
E = (D) => D << C >>> C, Q = E(Q);
}
J(I, { name: A, N: E, T: (D, o) => o, X: pA(A, g, B !== 0), V: null });
}, a: (I, A, g) => {
function B(E) {
return new Q(BA.buffer, a[E + 4 >> 2], a[E >> 2]);
}
var Q = [
Int8Array,
Uint8Array,
Int16Array,
Uint16Array,
Int32Array,
Uint32Array,
Float32Array,
Float64Array,
BigInt64Array,
BigUint64Array
][A];
g = h(g), J(I, { name: g, N: B, X: B }, { wa: !0 });
}, h: (I) => {
J(I, tI);
}, A: (I, A) => {
A = h(A), J(I, { name: A, N(g) {
var B = (B = g + 4) ? QI.decode(c.subarray(B, kA(c, B, a[g >> 2], !0))) : "";
return q(g), B;
}, T(g, B) {
B instanceof ArrayBuffer && (B = new Uint8Array(B));
var Q = typeof B == "string";
if (!(Q || ArrayBuffer.isView(B) && B.BYTES_PER_ELEMENT == 1)) throw new G("Cannot pass non-string to std::string");
var E = Q ? BI(B) : B.length, C = KA(4 + E + 1), D = C + 4;
return a[C >> 2] = E, Q ? V(B, D, E + 1) : c.set(B, D), g !== null && g.push(q, C), C;
}, X: m, V(g) {
q(g);
} });
}, f: (I, A, g) => {
if (g = h(g), A === 2)
var B = rI, Q = nI, E = qI;
else B = fI, Q = eI, E = dI;
J(I, { name: g, N: (C) => {
var D = B(C + 4, a[C >> 2] * A, !0);
return q(C), D;
}, T: (C, D) => {
if (typeof D != "string") throw new G(`Cannot pass non-string to C++ string type ${g}`);
var o = E(D), F = KA(4 + o + A);
return a[F >> 2] = o / A, Q(D, F + 4, o + A), C !== null && C.push(q, F), F;
}, X: m, V(C) {
q(C);
} });
}, i: (I, A, g, B, Q, E) => {
QA[I] = { name: h(A), ia: H(g, B), Y: H(Q, E), la: [] };
}, e: (I, A, g, B, Q, E, C, D, o, F) => {
QA[I].la.push({
qa: h(A),
va: g,
ta: H(B, Q),
ua: E,
Ba: C,
Aa: H(D, o),
Ca: F
});
}, C: (I, A) => {
A = h(A), J(I, { ma: !0, name: A, N: () => {
}, T: () => {
} });
}, p: (I, A, g) => {
var [B, ...Q] = xI(I, A);
A = B.T.bind(B);
var E = Q.map((o) => o.X.bind(o));
I--;
var C = { toValue: YA };
switch (I = E.map((o, F) => {
var w = `argFromPtr${F}`;
return C[w] = o, `${w}(args${F ? "+" + 8 * F : ""})`;
}), g) {
case 0:
var D = "toValue(handle)";
break;
case 2:
D = "new (toValue(handle))";
break;
case 3:
D = "";
break;
case 1:
C.getStringOrSymbol = jI, D = "toValue(handle)[getStringOrSymbol(methodName)]";
}
return D += `(${I})`, B.ma || (C.toReturnWire = A, C.emval_returnValue = WI, D = `return emval_returnValue(toReturnWire, destructorsRef, ${D})`), D = `return function (handle, methodName, destructorsRef, args) {
${D}
}`, g = new Function(Object.keys(C), D)(...Object.values(C)), D = `methodCaller<(${Q.map((o) => o.name)}) => ${B.name}>`, lI(iA(D, g));
}, E: JA, o: (I, A, g, B, Q) => cA[I](A, g, B, Q), D: (I) => {
var A = YA(I);
sA(A), JA(I);
}, s: (I, A, g, B) => {
var Q = (/* @__PURE__ */ new Date()).getFullYear(), E = new Date(Q, 0, 1).getTimezoneOffset();
Q = new Date(Q, 6, 1).getTimezoneOffset(), a[I >> 2] = 60 * Math.max(E, Q), W[A >> 2] = +(E != Q), A = (C) => {
var D = Math.abs(C);
return `UTC${0 <= C ? "-" : "+"}${String(Math.floor(D / 60)).padStart(2, "0")}${String(D % 60).padStart(2, "0")}`;
}, I = A(E), A = A(Q), Q < E ? (V(I, g, 17), V(A, B, 17)) : (V(I, B, 17), V(A, g, 17));
}, y: (I) => {
var A = c.length;
if (I >>>= 0, 2147483648 < I) return !1;
for (var g = 1; 4 >= g; g *= 2) {
var B = A * (1 + 0.2 / g);
B = Math.min(B, I + 100663296);
A: {
B = (Math.min(2147483648, 65536 * Math.ceil(Math.max(I, B) / 65536)) - gA.buffer.byteLength + 65535) / 65536 | 0;
try {
gA.grow(B), ZA();
var Q = 1;
break A;
} catch {
}
Q = void 0;
}
if (Q) return !0;
}
return !1;
}, t: (I, A) => {
var g = 0, B = 0, Q;
for (Q of CI()) {
var E = A + g;
a[I + B >> 2] = E, g += V(Q, E, 1 / 0) + 1, B += 4;
}
return 0;
}, u: (I, A) => {
var g = CI();
a[I >> 2] = g.length, I = 0;
for (var B of g) I += BI(B) + 1;
return a[A >> 2] = I, 0;
}, v: () => 52, w: function() {
return 70;
}, k: (I, A, g, B) => {
for (var Q = 0, E = 0; E < g; E++) {
var C = a[A >> 2], D = a[A + 4 >> 2];
A += 8;
for (var o = 0; o < D; o++) {
var F = I, w = c[C + o], y = VI[F];
w === 0 || w === 10 ? (F = F === 1 ? qA : _, w = kA(y, 0), w = QI.decode(y.buffer ? y.subarray(0, w) : new Uint8Array(y.slice(0, w))), F(w), y.length = 0) : y.push(w);
}
Q += D;
}
return a[B >> 2] = Q, 0;
} }, X = await async function() {
var g;
function I(B) {
var Q;
return X = B.exports, gA = X.F, ZA(), zA = X.H, B = X, EI = B.I, i._malloc = KA = B.J, i._free = q = B.K, e--, (Q = i.monitorRunDependencies) == null || Q.call(i, e), e == 0 && u && (B = u, u = null, B()), X;
}
e++, (g = i.monitorRunDependencies) == null || g.call(i, e);
var A = { a: XI };
return i.instantiateWasm ? new Promise((B) => {
i.instantiateWasm(A, (Q, E) => {
B(I(Q));
});
}) : (RA ?? (RA = yI("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C0EAEKEDRQRAQZiDASEBIARBmIMBQRgQiwFFDQJBsIMBIQEgBEGwgwFBGBCLAUUNAkEAIQBBvO4BLQAARQRAA0AgAEECdCAAQcYfEKIDNgKM7gEgAEEBaiIAQQZHDQALQbzuAUEBOgAAQaTuAUGM7gEoAgA2AgALQYzuASEBIAJBCGoiAEGM7gFBGBCLAUUNAkGk7gEhASAAQaTuAUEYEIsBRQ0CQRgQNCIBRQ0BCyABIAIpAgg3AgAgASACKQIYNwIQIAEgAikCEDcCCAwBC0EAIQELIAJBIGokAEGc8QFBAToAAEGY8QEgATYCACABC80KAgV/CX4jAEHgAGsiBSQAIARC////////P4MhCiACIASFQoCAgICAgICAgH+DIQsgAkL///////8/gyIMQiCIIQ8gBEIwiKdB//8BcSEHAkACQCACQjCIp0H//wFxIglB//8Ba0GCgH5PBEAgB0H//wFrQYGAfksNAQsgAVAgAkL///////////8AgyINQoCAgICAgMD//wBUIA1CgICAgICAwP//AFEbRQRAIAJCgICAgICAIIQhCwwCCyADUCAEQv///////////wCDIgJCgICAgICAwP//AFQgAkKAgICAgIDA//8AURtFBEAgBEKAgICAgIAghCELIAMhAQwCCyABIA1CgICAgICAwP//AIWEUARAIAIgA4RQBEBCgICAgICA4P//ACELQgAhAQwDCyALQoCAgICAgMD//wCEIQtCACEBDAILIAMgAkKAgICAgIDA//8AhYRQBEAgASANhEIAIQFQBEBCgICAgICA4P//ACELDAMLIAtCgICAgICAwP//AIQhCwwCCyABIA2EUARAQgAhAQwCCyACIAOEUARAQgAhAQwCCyANQv///////z9YBEAgBUHQAGogASAMIAEgDCAMUCIGG3lCwABCACAGG3ynIgZBD2sQREEQIAZrIQYgBSkDWCIMQiCIIQ8gBSkDUCEBCyACQv///////z9WDQAgBUFAayADIAogAyAKIApQIggbeULAAEIAIAgbfKciCEEPaxBEIAYgCGtBEGohBiAFKQNIIQogBSkDQCEDCyAHIAlqIAZqQf//AGshBgJAIApCD4YiDkIgiEKAgICACIQiAiABQiCIIgR+IhAgA0IPhiIRQiCIIgogD0KAgASEIg1+fCIPIBBUrSAPIANCMYggDoRC/////w+DIgMgDEL/////D4MiDH58Ig4gD1StfCACIA1+fCAOIA4gEUKAgP7/D4MiDyAMfiIRIAQgCn58IhAgEVStIBAgECADIAFC/////w+DIgF+fCIQVq18fCIOVq18IAMgDX4iEiACIAx+fCIRIBJUrUIghiARQiCIhHwgDiAOIBFCIIZ8Ig5WrXwgDiANIA9+Ig0gCiAMfnwiDCABIAJ+fCICIAMgBH58IgNCIIggAiADVq0gDCANVK0gAiAMVK18fEIghoR8IgIgDlStfCACIBAgBCAPfiIMIAEgCn58IgRCIIggBCAMVK1CIIaEfCIKIBBUrSAKIANCIIZ8IgMgClStfHwiCiACVK18IAogAyAEQiCGIgIgASAPfnwiASACVK18IgIgA1StfCIEIApUrXwiA0KAgICAgIDAAINQRQRAIAZBAWohBgwBCyABQj+IIANCAYYgBEI/iIQhAyAEQgGGIAJCP4iEIQQgAUIBhiEBIAJCAYaEIQILIAZB//8BTgRAIAtCgICAgICAwP//AIQhC0IAIQEMAQsCfiAGQQBMBEBBASAGayIHQf8ATQRAIAVBMGogASACIAZB/wBqIgYQRCAFQSBqIAQgAyAGEEQgBUEQaiABIAIgBxCKASAFIAQgAyAHEIoBIAUpAzAgBSkDOIRCAFKtIAUpAyAgBSkDEISEIQEgBSkDKCAFKQMYhCECIAUpAwAhBCAFKQMIDAILQgAhAQwCCyADQv///////z+DIAatQjCGhAsgC4QhCyABUCACQgBZIAJCgICAgICAgICAf1EbRQRAIAsgBEIBfCIBUK18IQsMAQsgASACQoCAgICAgICAgH+FhFBFBEAgBCEBDAELIAsgBCAEQgGDfCIBIARUrXwhCwsgACABNwMAIAAgCzcDCCAFQeAAaiQACwYAIAAQLQt8AQN/IwBBEGsiASQAIAEgADYCDCMAQRBrIgIkACAAKAIAQX9HBEAgAkEIaiACQQxqIAFBDGoQVRBVIQMDQCAAKAIAQQFGDQALIAAoAgBFBEAgAEEBNgIAIAMQ0gIgAEF/NgIACwsgAkEQaiQAIAAoAgQgAUEQaiQAQQFrCyAAIAAgAUEBazYCBCAAQeDVATYCACAAQZCtATYCACAAC/cFAQl/IwBBEGsiCSQAIAEQ1wIgCUEMaiABEFUhCCAAQQhqIgMQayACTQRAAkAgAkEBaiIAIAMQayIBSwRAIwBBIGsiCiQAAkAgACABayIHIAMoAgggAygCBGtBAnVNBEAgAyAHENkCDAELIApBDGohAQJ/IAMQayAHaiEFIwBBEGsiACQAIAAgBTYCDCAFELwCIgRNBEAgAxC5AiIFIARBAXZJBEAgACAFQQF0NgIIIABBCGogAEEMahCgASgCACEECyAAQRBqJAAgBAwBCxCMAQALIQQgAxBrIQUjAEEQayIAJAAgASADQQxqIgs2AhAgAUEANgIMIAQEfyAAQQhqIAsgBBC7AiAAKAIIIQYgACgCDAVBAAshBCABIAY2AgAgASAGIAVBAnRqIgU2AgggASAGIARBAnRqNgIMIAEgBTYCBCAAQRBqJAAjAEEQayIGJAAgASgCCCEEIAZBBGoiACABQQhqNgIIIAAgBDYCACAAIAQgB0ECdGo2AgQgACgCACEEA0AgACgCBCAERwRAIAEoAhAaIAQQugIgACAAKAIAQQRqIgQ2AgAMAQsLIAAoAgggACgCADYCACAGQRBqJAAgASgCBCADKAIAIgAgAygCBGtqIQQgAygCBCAAayIHBEAgBCAAIAf8CgAACyABIAQ2AgQgAyADKAIANgIEIAMgAUEEahDXASADQQRqIAFBCGoQ1wEgA0EIaiABQQxqENcBIAEgASgCBDYCACADEGsaIAEoAgQhAANAIAEoAggiBCAARwRAIAEgBEEEazYCCCABKAIQGgwBCwsgASgCACIABEAgASgCECAAIAEoAgwgASgCAGtBAnUQuAILCyAKQSBqJAAMAQsgACABSQRAIAMoAgAgAEECdGohACADEGsaIAMgABDYAgsLCyADIAIQggEoAgAEQCADIAIQggEoAgAQvwELIAgQrAEhACADIAIQggEgADYCACAIKAIAIQAgCEEANgIAIAAEQCAAEL8BCyAJQRBqJAALySgBC38jAEEQayIKJAACQAJAAkACQAJAAkACQAJAAkACQCAAQfQBTQRAQYzqASgCACIEQRAgAEELakH4A3EgAEELSRsiBkEDdiIAdiIBQQNxBEACQCABQX9zQQFxIABqIgJBA3QiAUG06gFqIgAgASgCvOoBIgEoAggiBUYEQEGM6gEgBEF+IAJ3cTYCAAwBCyAFIAA2AgwgACAFNgIICyABQQhqIQAgASACQQN0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KAIAKAIcEQQAC8EBAQN/IAAtAABBIHFFBEACQCAAKAIQIgMEfyADBSAAEN8BDQEgACgCEAsgACgCFCIEayACSQRAIAAgASACIAAoAiQRAwAaDAELAkACQCACRSAAKAJQQQBIcg0AIAIhAwNAIAEgA2oiBUEBay0AAEEKRwRAIANBAWsiAw0BDAILCyAAIAEgAyAAKAIkEQMAIANJDQIgAiADayECIAAoAhQhBAwBCyABIQULIAQgBSACEHEaIAAgACgCFCACajYCFAsLC6EBAQJ/AkAgABAfRSACIAFrQQVIcg0AIAEgAhDHASACQQRrIQQgABAjIgIgABAfaiEFAkADQAJAIAIsAAAhACABIARPDQAgAEEATCAAQf8ATnJFBEAgASgCACACLAAARw0DCyABQQRqIQEgAiAFIAJrQQFKaiECDAELCyAAQQBMIABB/wBOcg0BIAIsAAAgBCgCAEEBa0sNAQsgA0EENgIACwtQAQF+AkAgA0HAAHEEQCABIANBQGqthiECQgAhAQwBCyADRQ0AIAIgA60iBIYgAUHAACADa62IhCECIAEgBIYhAQsgACABNwMAIAAgAjcDCAtpAQF/IwBBgAJrIgUkACAEQYDABHEgAiADTHJFBEAgBSABIAIgA2siA0GAAiADQYACSSIBGxCYAiABRQRAA0AgACAFQYACEEIgA0GAAmsiA0H/AUsNAAsLIAAgBSADEEILIAVBgAJqJAALBABBAAsKACAALQALQQd2CwoAIABB0PIBEHoLCgAgAEHY8gEQegvPCQIEfwR+IwBB8ABrIgYkACAEQv///////////wCDIQkCQAJAIAFQIgUgAkL///////////8AgyIKQoCAgICAgMD//wB9QoCAgICAgMCAgH9UIApQG0UEQCADQgBSIAlCgICAgICAwP//AH0iC0KAgICAgIDAgIB/ViALQoCAgICAgMCAgH9RGw0BCyAFIApCgICAgICAwP//AFQgCkKAgICAgIDA//8AURtFBEAgAkKAgICAgIAghCEEIAEhAwwCCyADUCAJQoCAgICAgMD//wBUIAlCgICAgICAwP//AFEbRQRAIARCgICAgICAIIQhBAwCCyABIApCgICAgICAwP//AIWEUARAQoCAgICAgOD//wAgAiABIAOFIAIgBIVCgICAgICAgICAf4WEUCIFGyEEQgAgASAFGyEDDAILIAMgCUKAgICAgIDA//8AhYRQDQEgASAKhFAEQCADIAmEQgBSDQIgASADgyEDIAIgBIMhBAwCCyADIAmEUEUNACABIQMgAiEEDAELIAMgASABIANUIAkgClYgCSAKURsiCBshCiAEIAIgCBsiDEL///////8/gyEJIAIgBCAIGyILQjCIp0H//wFxIQcgDEIwiKdB//8BcSIFRQRAIAZB4ABqIAogCSAKIAkgCVAiBRt5QsAAQgAgBRt8pyIFQQ9rEEQgBikDaCEJIAYpA2AhCkEQIAVrIQULIAEgAyAIGyEDIAtC////////P4MhASAHBH4gAQUgBkHQAGogAyABIAMgASABUCIHG3lCwABCACAHG3ynIgdBD2sQREEQIAdrIQcgBikDUCEDIAYpA1gLQgOGIANCPYiEQoCAgICAgIAEhCEBIAlCA4YgCkI9iIQgAiAEhSEEAn4gA0IDhiICIAUgB0YNABogBSAHayIHQf8ASwRAQgAhAUIBDAELIAZBQGsgAiABQYABIAdrEEQgBkEwaiACIAEgBxCKASAGKQM4IQEgBikDMCAGKQNAIAYpA0iEQgBSrYQLIQlCgICAgICAgASEIQsgCkIDhiEKAkAgBEIAUwRAQgAhA0IAIQQgCSAKhSABIAuFhFANAiAKIAl9IQIgCyABfSAJIApWrX0iBEL/////////A1YNASAGQSBqIAIgBCACIAQgBFAiBxt5QsAAQgAgBxt8p0EMayIHEEQgBSAHayEFIAYpAyghBCAGKQMgIQIMAQsgCSAKfCICIAlUrSABIAt8fCIEQoCAgICAgIAIg1ANACAJQgGDIARCP4YgAkIBiISEIQIgBUEBaiEFIARCAYghBAsgDEKAgICAgICAgIB/gyEDIAVB//8BTgRAIANCgICAgICAwP//AIQhBEIAIQMMAQtBACEHAkAgBUEASgRAIAUhBwwBCyAGQRBqIAIgBCAFQf8AahBEIAYgAiAEQQEgBWsQigEgBikDACAGKQMQIAYpAxiEQgBSrYQhAiAGKQMIIQQLIARCPYYgAkIDiIQhASAEQgOIQv///////z+DIAetQjCGhCADhCEEAkACQCACp0EHcSIFQQRHBEAgBCABIAEgBUEES618IgNWrXwhBAwBCyAEIAEgASABQgGDfCIDVq18IQQMAQsgBUUNAQsLIAAgAzcDACAAIAQ3AwggBkHwAGokAAsRACAAIAEgACgCACgCLBEEAAsIACAAQYABSQsRACACBEAgACABIAL8CgAACwsJACAAECMQ9wELhAECAn8BfiMAQRBrIgMkACAAAn4gAUUEQEIADAELIAMgASABQR91IgJzIAJrIgKtQgAgAmciAkHRAGoQRCADKQMIQoCAgICAgMAAhUGegAEgAmutQjCGfEKAgICAgICAgIB/QgAgAUEASBuEIQQgAykDAAs3AwAgACAENwMIIANBEGokAAsNACAAIAFB/wBxOgALC6oMAQh/An9BACABRQ0AGiAAQX9zIQMgAkEXTwRAAkAgAUEDcUUNACABLQAAIANzQf8BcUECdCgC0DMgA0EIdnMhAyACQQFrIgBFIAFBAWoiBEEDcUVyRQRAIAEtAAEgA3NB/wFxQQJ0KALQMyADQQh2cyEDIAJBAmsiAEUgAUECaiIEQQNxRXJFBEAgAS0AAiADc0H/AXFBAnQoAtAzIANBCHZzIQMgAkEDayIARSABQQNqIgRBA3FFckUEQCABLQADIANzQf8BcUECdCgC0DMgA0EIdnMhAyABQQRqIQEgAkEEayECDAMLIAAhAiAEIQEMAgsgACECIAQhAQwBCyAAIQIgBCEBCyACQRRuIghBbGwhCgJAIAhBAWsiCUUEQEEAIQQMAQsgASEAQQAhBANAIAAoAhAgB3MiB0EWdkH8B3EoAtBTIAdBDnZB/AdxKALQSyAHQQZ2QfwHcSgC0EMgB0H/AXFBAnQoAtA7c3NzIQcgACgCDCAGcyIGQRZ2QfwHcSgC0FMgBkEOdkH8B3EoAtBLIAZBBnZB/AdxKALQQyAGQf8BcUECdCgC0Dtzc3MhBiAAKAIIIARzIgRBFnZB/AdxKALQUyAEQQ52QfwHcSgC0EsgBEEGdkH8B3EoAtBDIARB/wFxQQJ0KALQO3NzcyEEIAAoAgQgBXMiBUEWdkH8B3EoAtBTIAVBDnZB/AdxKALQSyAFQQZ2QfwHcSgC0EMgBUH/AXFBAnQoAtA7c3NzIQUgACgCACADcyIDQRZ2QfwHcSgC0FMgA0EOdkH8B3EoAtBLIANBBnZB/AdxKALQQyADQf8BcUECdCgC0Dtzc3MhAyAAQRRqIQAgCUEBayIJDQALIAEgCEEUbGpBFGshAQsgAiAKaiECIAEoAhAgASgCDCABKAIIIAEoAgQgASgCACADcyIAQQh2IABB/wFxQQJ0KALQM3MiAEEIdiAAQf8BcUECdCgC0DNzIgBBCHYgAEH/AXFBAnQoAtAzcyIAQf8BcUECdCgC0DMgBXNzIABBCHZzIgBBCHYgAEH/AXFBAnQoAtAzcyIAQQh2IABB/wFxQQJ0KALQM3MiAEEIdiAAQf8BcUECdCgC0DNzIgBB/wFxQQJ0KALQMyAEc3MgAEEIdnMiAEEIdiAAQf8