blob: e4bdc8a983668eddfb0a9261ba85d7eeef537377 [file] [log] [blame]
Module["asm"] = (function(global,env,buffer) {
"almost asm";
var a = global.Int8Array;
var b = global.Int16Array;
var c = global.Int32Array;
var d = global.Uint8Array;
var e = global.Uint16Array;
var f = global.Uint32Array;
var g = global.Float32Array;
var h = global.Float64Array;
var i = new a(buffer);
var j = new b(buffer);
var k = new c(buffer);
var l = new d(buffer);
var m = new e(buffer);
var n = new f(buffer);
var o = new g(buffer);
var p = new h(buffer);
var q = global.byteLength;
var r = env.STACKTOP | 0;
var s = env.STACK_MAX | 0;
var t = env.tempDoublePtr | 0;
var u = env.ABORT | 0;
var v = 0;
var w = 0;
var x = 0;
var y = 0;
var z = global.NaN, A = global.Infinity;
var B = 0, C = 0, D = 0, E = 0, F = 0.0, G = 0, H = 0, I = 0, J = 0.0;
var K = 0;
var L = 0;
var M = 0;
var N = 0;
var O = 0;
var P = 0;
var Q = 0;
var R = 0;
var S = 0;
var T = 0;
var U = global.Math.floor;
var V = global.Math.abs;
var W = global.Math.sqrt;
var X = global.Math.pow;
var Y = global.Math.cos;
var Z = global.Math.sin;
var _ = global.Math.tan;
var $ = global.Math.acos;
var aa = global.Math.asin;
var ba = global.Math.atan;
var ca = global.Math.atan2;
var da = global.Math.exp;
var ea = global.Math.log;
var fa = global.Math.ceil;
var ga = global.Math.imul;
var ha = global.Math.min;
var ia = global.Math.clz32;
var ja = env.abort;
var ka = env.assert;
var la = env.invoke_ii;
var ma = env.invoke_iiii;
var na = env.invoke_vi;
var oa = env._pthread_cleanup_pop;
var pa = env.___lock;
var qa = env._abort;
var ra = env._pthread_cleanup_push;
var sa = env.___syscall6;
var ta = env._sbrk;
var ua = env.___syscall140;
var va = env._emscripten_memcpy_big;
var wa = env.___syscall54;
var xa = env.___unlock;
var ya = env.___syscall146;
var za = 0.0;
function Aa(newBuffer) {
if (q(newBuffer) & 16777215 || q(newBuffer) <= 16777215 || q(newBuffer) > 2147483648) return false;
i = new a(newBuffer);
j = new b(newBuffer);
k = new c(newBuffer);
l = new d(newBuffer);
m = new e(newBuffer);
n = new f(newBuffer);
o = new g(newBuffer);
p = new h(newBuffer);
buffer = newBuffer;
return true;
}
// EMSCRIPTEN_START_FUNCS
function eb(a) {
a = a | 0;
var b = 0, c = 0, d = 0, e = 0, f = 0, g = 0, h = 0, i = 0, j = 0, l = 0, m = 0, n = 0, o = 0, p = 0, q = 0, s = 0, t = 0, u = 0, v = 0, w = 0, x = 0, y = 0, z = 0, A = 0, B = 0, C = 0, D = 0, E = 0, F = 0, G = 0, H = 0, I = 0, J = 0, K = 0, L = 0, M = 0, N = 0, O = 0, P = 0, Q = 0, R = 0, S = 0, T = 0, U = 0, V = 0, W = 0, X = 0, Y = 0, Z = 0, _ = 0, $ = 0, aa = 0, ba = 0, ca = 0, da = 0, ea = 0, fa = 0, ga = 0, ha = 0, ia = 0, ja = 0, ka = 0, la = 0, ma = 0, na = 0, oa = 0, pa = 0, ra = 0, sa = 0, ua = 0, va = 0, wa = 0, xa = 0, ya = 0, za = 0, Aa = 0, Ba = 0, Ca = 0, Da = 0, Ea = 0, Fa = 0, Ga = 0, Ha = 0, Ia = 0, Ja = 0, Ka = 0, La = 0, Ma = 0, Na = 0, Oa = 0, Pa = 0, Ra = 0, Sa = 0;
b = r;
r = r + 16 | 0;
c = b;
do if (a >>> 0 < 245) {
d = a >>> 0 < 11 ? 16 : a + 11 & -8;
e = d >>> 3;
f = k[302] | 0;
g = f >>> e;
if (g & 3 | 0) {
h = (g & 1 ^ 1) + e | 0;
i = 1248 + (h << 1 << 2) | 0;
j = i + 8 | 0;
l = k[j >> 2] | 0;
m = l + 8 | 0;
n = k[m >> 2] | 0;
do if ((i | 0) == (n | 0)) k[302] = f & ~(1 << h); else {
if (n >>> 0 < (k[306] | 0) >>> 0) qa();
o = n + 12 | 0;
if ((k[o >> 2] | 0) == (l | 0)) {
k[o >> 2] = i;
k[j >> 2] = n;
break;
} else qa();
} while (0);
n = h << 3;
k[l + 4 >> 2] = n | 3;
j = l + n + 4 | 0;
k[j >> 2] = k[j >> 2] | 1;
p = m;
r = b;
return p | 0;
}
j = k[304] | 0;
if (d >>> 0 > j >>> 0) {
if (g | 0) {
n = 2 << e;
i = g << e & (n | 0 - n);
n = (i & 0 - i) + -1 | 0;
i = n >>> 12 & 16;
o = n >>> i;
n = o >>> 5 & 8;
q = o >>> n;
o = q >>> 2 & 4;
s = q >>> o;
q = s >>> 1 & 2;
t = s >>> q;
s = t >>> 1 & 1;
u = (n | i | o | q | s) + (t >>> s) | 0;
s = 1248 + (u << 1 << 2) | 0;
t = s + 8 | 0;
q = k[t >> 2] | 0;
o = q + 8 | 0;
i = k[o >> 2] | 0;
do if ((s | 0) == (i | 0)) {
k[302] = f & ~(1 << u);
v = j;
} else {
if (i >>> 0 < (k[306] | 0) >>> 0) qa();
n = i + 12 | 0;
if ((k[n >> 2] | 0) == (q | 0)) {
k[n >> 2] = s;
k[t >> 2] = i;
v = k[304] | 0;
break;
} else qa();
} while (0);
i = (u << 3) - d | 0;
k[q + 4 >> 2] = d | 3;
t = q + d | 0;
k[t + 4 >> 2] = i | 1;
k[t + i >> 2] = i;
if (v | 0) {
s = k[307] | 0;
j = v >>> 3;
f = 1248 + (j << 1 << 2) | 0;
e = k[302] | 0;
g = 1 << j;
if (!(e & g)) {
k[302] = e | g;
w = f + 8 | 0;
x = f;
} else {
g = f + 8 | 0;
e = k[g >> 2] | 0;
if (e >>> 0 < (k[306] | 0) >>> 0) qa(); else {
w = g;
x = e;
}
}
k[w >> 2] = s;
k[x + 12 >> 2] = s;
k[s + 8 >> 2] = x;
k[s + 12 >> 2] = f;
}
k[304] = i;
k[307] = t;
p = o;
r = b;
return p | 0;
}
t = k[303] | 0;
if (!t) y = d; else {
i = (t & 0 - t) + -1 | 0;
t = i >>> 12 & 16;
f = i >>> t;
i = f >>> 5 & 8;
s = f >>> i;
f = s >>> 2 & 4;
e = s >>> f;
s = e >>> 1 & 2;
g = e >>> s;
e = g >>> 1 & 1;
j = k[1512 + ((i | t | f | s | e) + (g >>> e) << 2) >> 2] | 0;
e = (k[j + 4 >> 2] & -8) - d | 0;
g = j;
s = j;
while (1) {
j = k[g + 16 >> 2] | 0;
if (!j) {
f = k[g + 20 >> 2] | 0;
if (!f) {
z = e;
A = s;
break;
} else B = f;
} else B = j;
j = (k[B + 4 >> 2] & -8) - d | 0;
f = j >>> 0 < e >>> 0;
e = f ? j : e;
g = B;
s = f ? B : s;
}
s = k[306] | 0;
if (A >>> 0 < s >>> 0) qa();
g = A + d | 0;
if (A >>> 0 >= g >>> 0) qa();
e = k[A + 24 >> 2] | 0;
o = k[A + 12 >> 2] | 0;
do if ((o | 0) == (A | 0)) {
q = A + 20 | 0;
u = k[q >> 2] | 0;
if (!u) {
f = A + 16 | 0;
j = k[f >> 2] | 0;
if (!j) {
C = 0;
break;
} else {
D = j;
E = f;
}
} else {
D = u;
E = q;
}
while (1) {
q = D + 20 | 0;
u = k[q >> 2] | 0;
if (u | 0) {
D = u;
E = q;
continue;
}
q = D + 16 | 0;
u = k[q >> 2] | 0;
if (!u) {
F = D;
G = E;
break;
} else {
D = u;
E = q;
}
}
if (G >>> 0 < s >>> 0) qa(); else {
k[G >> 2] = 0;
C = F;
break;
}
} else {
q = k[A + 8 >> 2] | 0;
if (q >>> 0 < s >>> 0) qa();
u = q + 12 | 0;
if ((k[u >> 2] | 0) != (A | 0)) qa();
f = o + 8 | 0;
if ((k[f >> 2] | 0) == (A | 0)) {
k[u >> 2] = o;
k[f >> 2] = q;
C = o;
break;
} else qa();
} while (0);
do if (e | 0) {
o = k[A + 28 >> 2] | 0;
s = 1512 + (o << 2) | 0;
if ((A | 0) == (k[s >> 2] | 0)) {
k[s >> 2] = C;
if (!C) {
k[303] = k[303] & ~(1 << o);
break;
}
} else {
if (e >>> 0 < (k[306] | 0) >>> 0) qa();
o = e + 16 | 0;
if ((k[o >> 2] | 0) == (A | 0)) k[o >> 2] = C; else k[e + 20 >> 2] = C;
if (!C) break;
}
o = k[306] | 0;
if (C >>> 0 < o >>> 0) qa();
k[C + 24 >> 2] = e;
s = k[A + 16 >> 2] | 0;
do if (s | 0) if (s >>> 0 < o >>> 0) qa(); else {
k[C + 16 >> 2] = s;
k[s + 24 >> 2] = C;
break;
} while (0);
s = k[A + 20 >> 2] | 0;
if (s | 0) if (s >>> 0 < (k[306] | 0) >>> 0) qa(); else {
k[C + 20 >> 2] = s;
k[s + 24 >> 2] = C;
break;
}
} while (0);
if (z >>> 0 < 16) {
e = z + d | 0;
k[A + 4 >> 2] = e | 3;
s = A + e + 4 | 0;
k[s >> 2] = k[s >> 2] | 1;
} else {
k[A + 4 >> 2] = d | 3;
k[g + 4 >> 2] = z | 1;
k[g + z >> 2] = z;
s = k[304] | 0;
if (s | 0) {
e = k[307] | 0;
o = s >>> 3;
s = 1248 + (o << 1 << 2) | 0;
q = k[302] | 0;
f = 1 << o;
if (!(q & f)) {
k[302] = q | f;
H = s + 8 | 0;
I = s;
} else {
f = s + 8 | 0;
q = k[f >> 2] | 0;
if (q >>> 0 < (k[306] | 0) >>> 0) qa(); else {
H = f;
I = q;
}
}
k[H >> 2] = e;
k[I + 12 >> 2] = e;
k[e + 8 >> 2] = I;
k[e + 12 >> 2] = s;
}
k[304] = z;
k[307] = g;
}
p = A + 8 | 0;
r = b;
return p | 0;
}
} else y = d;
} else if (a >>> 0 > 4294967231) y = -1; else {
s = a + 11 | 0;
e = s & -8;
q = k[303] | 0;
if (!q) y = e; else {
f = 0 - e | 0;
o = s >>> 8;
if (!o) J = 0; else if (e >>> 0 > 16777215) J = 31; else {
s = (o + 1048320 | 0) >>> 16 & 8;
u = o << s;
o = (u + 520192 | 0) >>> 16 & 4;
j = u << o;
u = (j + 245760 | 0) >>> 16 & 2;
t = 14 - (o | s | u) + (j << u >>> 15) | 0;
J = e >>> (t + 7 | 0) & 1 | t << 1;
}
t = k[1512 + (J << 2) >> 2] | 0;
a : do if (!t) {
K = f;
L = 0;
M = 0;
N = 86;
} else {
u = f;
j = 0;
s = e << ((J | 0) == 31 ? 0 : 25 - (J >>> 1) | 0);
o = t;
i = 0;
while (1) {
m = k[o + 4 >> 2] & -8;
l = m - e | 0;
if (l >>> 0 < u >>> 0) if ((m | 0) == (e | 0)) {
O = l;
P = o;
Q = o;
N = 90;
break a;
} else {
R = l;
S = o;
} else {
R = u;
S = i;
}
l = k[o + 20 >> 2] | 0;
o = k[o + 16 + (s >>> 31 << 2) >> 2] | 0;
m = (l | 0) == 0 | (l | 0) == (o | 0) ? j : l;
l = (o | 0) == 0;
if (l) {
K = R;
L = m;
M = S;
N = 86;
break;
} else {
u = R;
j = m;
s = s << (l & 1 ^ 1);
i = S;
}
}
} while (0);
if ((N | 0) == 86) {
if ((L | 0) == 0 & (M | 0) == 0) {
t = 2 << J;
f = q & (t | 0 - t);
if (!f) {
y = e;
break;
}
t = (f & 0 - f) + -1 | 0;
f = t >>> 12 & 16;
d = t >>> f;
t = d >>> 5 & 8;
g = d >>> t;
d = g >>> 2 & 4;
i = g >>> d;
g = i >>> 1 & 2;
s = i >>> g;
i = s >>> 1 & 1;
T = k[1512 + ((t | f | d | g | i) + (s >>> i) << 2) >> 2] | 0;
} else T = L;
if (!T) {
U = K;
V = M;
} else {
O = K;
P = T;
Q = M;
N = 90;
}
}
if ((N | 0) == 90) while (1) {
N = 0;
i = (k[P + 4 >> 2] & -8) - e | 0;
s = i >>> 0 < O >>> 0;
g = s ? i : O;
i = s ? P : Q;
s = k[P + 16 >> 2] | 0;
if (s | 0) {
O = g;
P = s;
Q = i;
N = 90;
continue;
}
P = k[P + 20 >> 2] | 0;
if (!P) {
U = g;
V = i;
break;
} else {
O = g;
Q = i;
N = 90;
}
}
if (!V) y = e; else if (U >>> 0 < ((k[304] | 0) - e | 0) >>> 0) {
q = k[306] | 0;
if (V >>> 0 < q >>> 0) qa();
i = V + e | 0;
if (V >>> 0 >= i >>> 0) qa();
g = k[V + 24 >> 2] | 0;
s = k[V + 12 >> 2] | 0;
do if ((s | 0) == (V | 0)) {
d = V + 20 | 0;
f = k[d >> 2] | 0;
if (!f) {
t = V + 16 | 0;
j = k[t >> 2] | 0;
if (!j) {
W = 0;
break;
} else {
X = j;
Y = t;
}
} else {
X = f;
Y = d;
}
while (1) {
d = X + 20 | 0;
f = k[d >> 2] | 0;
if (f | 0) {
X = f;
Y = d;
continue;
}
d = X + 16 | 0;
f = k[d >> 2] | 0;
if (!f) {
Z = X;
_ = Y;
break;
} else {
X = f;
Y = d;
}
}
if (_ >>> 0 < q >>> 0) qa(); else {
k[_ >> 2] = 0;
W = Z;
break;
}
} else {
d = k[V + 8 >> 2] | 0;
if (d >>> 0 < q >>> 0) qa();
f = d + 12 | 0;
if ((k[f >> 2] | 0) != (V | 0)) qa();
t = s + 8 | 0;
if ((k[t >> 2] | 0) == (V | 0)) {
k[f >> 2] = s;
k[t >> 2] = d;
W = s;
break;
} else qa();
} while (0);
do if (g | 0) {
s = k[V + 28 >> 2] | 0;
q = 1512 + (s << 2) | 0;
if ((V | 0) == (k[q >> 2] | 0)) {
k[q >> 2] = W;
if (!W) {
k[303] = k[303] & ~(1 << s);
break;
}
} else {
if (g >>> 0 < (k[306] | 0) >>> 0) qa();
s = g + 16 | 0;
if ((k[s >> 2] | 0) == (V | 0)) k[s >> 2] = W; else k[g + 20 >> 2] = W;
if (!W) break;
}
s = k[306] | 0;
if (W >>> 0 < s >>> 0) qa();
k[W + 24 >> 2] = g;
q = k[V + 16 >> 2] | 0;
do if (q | 0) if (q >>> 0 < s >>> 0) qa(); else {
k[W + 16 >> 2] = q;
k[q + 24 >> 2] = W;
break;
} while (0);
q = k[V + 20 >> 2] | 0;
if (q | 0) if (q >>> 0 < (k[306] | 0) >>> 0) qa(); else {
k[W + 20 >> 2] = q;
k[q + 24 >> 2] = W;
break;
}
} while (0);
do if (U >>> 0 < 16) {
g = U + e | 0;
k[V + 4 >> 2] = g | 3;
q = V + g + 4 | 0;
k[q >> 2] = k[q >> 2] | 1;
} else {
k[V + 4 >> 2] = e | 3;
k[i + 4 >> 2] = U | 1;
k[i + U >> 2] = U;
q = U >>> 3;
if (U >>> 0 < 256) {
g = 1248 + (q << 1 << 2) | 0;
s = k[302] | 0;
d = 1 << q;
if (!(s & d)) {
k[302] = s | d;
$ = g + 8 | 0;
aa = g;
} else {
d = g + 8 | 0;
s = k[d >> 2] | 0;
if (s >>> 0 < (k[306] | 0) >>> 0) qa(); else {
$ = d;
aa = s;
}
}
k[$ >> 2] = i;
k[aa + 12 >> 2] = i;
k[i + 8 >> 2] = aa;
k[i + 12 >> 2] = g;
break;
}
g = U >>> 8;
if (!g) ba = 0; else if (U >>> 0 > 16777215) ba = 31; else {
s = (g + 1048320 | 0) >>> 16 & 8;
d = g << s;
g = (d + 520192 | 0) >>> 16 & 4;
q = d << g;
d = (q + 245760 | 0) >>> 16 & 2;
t = 14 - (g | s | d) + (q << d >>> 15) | 0;
ba = U >>> (t + 7 | 0) & 1 | t << 1;
}
t = 1512 + (ba << 2) | 0;
k[i + 28 >> 2] = ba;
d = i + 16 | 0;
k[d + 4 >> 2] = 0;
k[d >> 2] = 0;
d = k[303] | 0;
q = 1 << ba;
if (!(d & q)) {
k[303] = d | q;
k[t >> 2] = i;
k[i + 24 >> 2] = t;
k[i + 12 >> 2] = i;
k[i + 8 >> 2] = i;
break;
}
q = U << ((ba | 0) == 31 ? 0 : 25 - (ba >>> 1) | 0);
d = k[t >> 2] | 0;
while (1) {
if ((k[d + 4 >> 2] & -8 | 0) == (U | 0)) {
ca = d;
N = 148;
break;
}
t = d + 16 + (q >>> 31 << 2) | 0;
s = k[t >> 2] | 0;
if (!s) {
da = t;
ea = d;
N = 145;
break;
} else {
q = q << 1;
d = s;
}
}
if ((N | 0) == 145) if (da >>> 0 < (k[306] | 0) >>> 0) qa(); else {
k[da >> 2] = i;
k[i + 24 >> 2] = ea;
k[i + 12 >> 2] = i;
k[i + 8 >> 2] = i;
break;
} else if ((N | 0) == 148) {
d = ca + 8 | 0;
q = k[d >> 2] | 0;
s = k[306] | 0;
if (q >>> 0 >= s >>> 0 & ca >>> 0 >= s >>> 0) {
k[q + 12 >> 2] = i;
k[d >> 2] = i;
k[i + 8 >> 2] = q;
k[i + 12 >> 2] = ca;
k[i + 24 >> 2] = 0;
break;
} else qa();
}
} while (0);
p = V + 8 | 0;
r = b;
return p | 0;
} else y = e;
}
} while (0);
V = k[304] | 0;
if (V >>> 0 >= y >>> 0) {
ca = V - y | 0;
ea = k[307] | 0;
if (ca >>> 0 > 15) {
da = ea + y | 0;
k[307] = da;
k[304] = ca;
k[da + 4 >> 2] = ca | 1;
k[da + ca >> 2] = ca;
k[ea + 4 >> 2] = y | 3;
} else {
k[304] = 0;
k[307] = 0;
k[ea + 4 >> 2] = V | 3;
ca = ea + V + 4 | 0;
k[ca >> 2] = k[ca >> 2] | 1;
}
p = ea + 8 | 0;
r = b;
return p | 0;
}
ea = k[305] | 0;
if (ea >>> 0 > y >>> 0) {
ca = ea - y | 0;
k[305] = ca;
ea = k[308] | 0;
V = ea + y | 0;
k[308] = V;
k[V + 4 >> 2] = ca | 1;
k[ea + 4 >> 2] = y | 3;
p = ea + 8 | 0;
r = b;
return p | 0;
}
if (!(k[420] | 0)) {
k[422] = 4096;
k[421] = 4096;
k[423] = -1;
k[424] = -1;
k[425] = 0;
k[413] = 0;
ea = c & -16 ^ 1431655768;
k[c >> 2] = ea;
k[420] = ea;
}
ea = y + 48 | 0;
c = k[422] | 0;
ca = y + 47 | 0;
V = c + ca | 0;
da = 0 - c | 0;
c = V & da;
if (c >>> 0 <= y >>> 0) {
p = 0;
r = b;
return p | 0;
}
U = k[412] | 0;
if (U | 0) {
ba = k[410] | 0;
aa = ba + c | 0;
if (aa >>> 0 <= ba >>> 0 | aa >>> 0 > U >>> 0) {
p = 0;
r = b;
return p | 0;
}
}
b : do if (!(k[413] & 4)) {
U = k[308] | 0;
c : do if (!U) N = 171; else {
aa = 1656;
while (1) {
ba = k[aa >> 2] | 0;
if (ba >>> 0 <= U >>> 0) {
$ = aa + 4 | 0;
if ((ba + (k[$ >> 2] | 0) | 0) >>> 0 > U >>> 0) {
fa = aa;
ga = $;
break;
}
}
aa = k[aa + 8 >> 2] | 0;
if (!aa) {
N = 171;
break c;
}
}
aa = V - (k[305] | 0) & da;
if (aa >>> 0 < 2147483647) {
$ = ta(aa | 0) | 0;
if (($ | 0) == ((k[fa >> 2] | 0) + (k[ga >> 2] | 0) | 0)) {
if (($ | 0) != (-1 | 0)) {
ha = $;
ia = aa;
N = 191;
break b;
}
} else {
ja = $;
ka = aa;
N = 181;
}
}
} while (0);
do if ((N | 0) == 171) {
U = ta(0) | 0;
if ((U | 0) != (-1 | 0)) {
e = U;
aa = k[421] | 0;
$ = aa + -1 | 0;
if (!($ & e)) la = c; else la = c - e + ($ + e & 0 - aa) | 0;
aa = k[410] | 0;
e = aa + la | 0;
if (la >>> 0 > y >>> 0 & la >>> 0 < 2147483647) {
$ = k[412] | 0;
if ($ | 0) if (e >>> 0 <= aa >>> 0 | e >>> 0 > $ >>> 0) break;
$ = ta(la | 0) | 0;
if (($ | 0) == (U | 0)) {
ha = U;
ia = la;
N = 191;
break b;
} else {
ja = $;
ka = la;
N = 181;
}
}
}
} while (0);
d : do if ((N | 0) == 181) {
$ = 0 - ka | 0;
do if (ea >>> 0 > ka >>> 0 & (ka >>> 0 < 2147483647 & (ja | 0) != (-1 | 0))) {
U = k[422] | 0;
e = ca - ka + U & 0 - U;
if (e >>> 0 < 2147483647) if ((ta(e | 0) | 0) == (-1 | 0)) {
ta($ | 0) | 0;
break d;
} else {
ma = e + ka | 0;
break;
} else ma = ka;
} else ma = ka; while (0);
if ((ja | 0) != (-1 | 0)) {
ha = ja;
ia = ma;
N = 191;
break b;
}
} while (0);
k[413] = k[413] | 4;
N = 188;
} else N = 188; while (0);
if ((N | 0) == 188) if (c >>> 0 < 2147483647) {
ma = ta(c | 0) | 0;
c = ta(0) | 0;
if (ma >>> 0 < c >>> 0 & ((ma | 0) != (-1 | 0) & (c | 0) != (-1 | 0))) {
ja = c - ma | 0;
if (ja >>> 0 > (y + 40 | 0) >>> 0) {
ha = ma;
ia = ja;
N = 191;
}
}
}
if ((N | 0) == 191) {
ja = (k[410] | 0) + ia | 0;
k[410] = ja;
if (ja >>> 0 > (k[411] | 0) >>> 0) k[411] = ja;
ja = k[308] | 0;
do if (!ja) {
ma = k[306] | 0;
if ((ma | 0) == 0 | ha >>> 0 < ma >>> 0) k[306] = ha;
k[414] = ha;
k[415] = ia;
k[417] = 0;
k[311] = k[420];
k[310] = -1;
ma = 0;
do {
c = 1248 + (ma << 1 << 2) | 0;
k[c + 12 >> 2] = c;
k[c + 8 >> 2] = c;
ma = ma + 1 | 0;
} while ((ma | 0) != 32);
ma = ha + 8 | 0;
c = (ma & 7 | 0) == 0 ? 0 : 0 - ma & 7;
ma = ha + c | 0;
ka = ia + -40 - c | 0;
k[308] = ma;
k[305] = ka;
k[ma + 4 >> 2] = ka | 1;
k[ma + ka + 4 >> 2] = 40;
k[309] = k[424];
} else {
ka = 1656;
do {
ma = k[ka >> 2] | 0;
c = ka + 4 | 0;
ca = k[c >> 2] | 0;
if ((ha | 0) == (ma + ca | 0)) {
na = ma;
oa = c;
pa = ca;
ra = ka;
N = 201;
break;
}
ka = k[ka + 8 >> 2] | 0;
} while ((ka | 0) != 0);
if ((N | 0) == 201) if (!(k[ra + 12 >> 2] & 8)) if (ja >>> 0 < ha >>> 0 & ja >>> 0 >= na >>> 0) {
k[oa >> 2] = pa + ia;
ka = ja + 8 | 0;
ca = (ka & 7 | 0) == 0 ? 0 : 0 - ka & 7;
ka = ja + ca | 0;
c = ia - ca + (k[305] | 0) | 0;
k[308] = ka;
k[305] = c;
k[ka + 4 >> 2] = c | 1;
k[ka + c + 4 >> 2] = 40;
k[309] = k[424];
break;
}
c = k[306] | 0;
if (ha >>> 0 < c >>> 0) {
k[306] = ha;
sa = ha;
} else sa = c;
c = ha + ia | 0;
ka = 1656;
while (1) {
if ((k[ka >> 2] | 0) == (c | 0)) {
ua = ka;
va = ka;
N = 209;
break;
}
ka = k[ka + 8 >> 2] | 0;
if (!ka) {
wa = 1656;
break;
}
}
if ((N | 0) == 209) if (!(k[va + 12 >> 2] & 8)) {
k[ua >> 2] = ha;
ka = va + 4 | 0;
k[ka >> 2] = (k[ka >> 2] | 0) + ia;
ka = ha + 8 | 0;
ca = ha + ((ka & 7 | 0) == 0 ? 0 : 0 - ka & 7) | 0;
ka = c + 8 | 0;
ma = c + ((ka & 7 | 0) == 0 ? 0 : 0 - ka & 7) | 0;
ka = ca + y | 0;
ea = ma - ca - y | 0;
k[ca + 4 >> 2] = y | 3;
do if ((ma | 0) == (ja | 0)) {
la = (k[305] | 0) + ea | 0;
k[305] = la;
k[308] = ka;
k[ka + 4 >> 2] = la | 1;
} else {
if ((ma | 0) == (k[307] | 0)) {
la = (k[304] | 0) + ea | 0;
k[304] = la;
k[307] = ka;
k[ka + 4 >> 2] = la | 1;
k[ka + la >> 2] = la;
break;
}
la = k[ma + 4 >> 2] | 0;
if ((la & 3 | 0) == 1) {
ga = la & -8;
fa = la >>> 3;
e : do if (la >>> 0 < 256) {
da = k[ma + 8 >> 2] | 0;
V = k[ma + 12 >> 2] | 0;
$ = 1248 + (fa << 1 << 2) | 0;
do if ((da | 0) != ($ | 0)) {
if (da >>> 0 < sa >>> 0) qa();
if ((k[da + 12 >> 2] | 0) == (ma | 0)) break;
qa();
} while (0);
if ((V | 0) == (da | 0)) {
k[302] = k[302] & ~(1 << fa);
break;
}
do if ((V | 0) == ($ | 0)) xa = V + 8 | 0; else {
if (V >>> 0 < sa >>> 0) qa();
e = V + 8 | 0;
if ((k[e >> 2] | 0) == (ma | 0)) {
xa = e;
break;
}
qa();
} while (0);
k[da + 12 >> 2] = V;
k[xa >> 2] = da;
} else {
$ = k[ma + 24 >> 2] | 0;
e = k[ma + 12 >> 2] | 0;
do if ((e | 0) == (ma | 0)) {
U = ma + 16 | 0;
aa = U + 4 | 0;
ba = k[aa >> 2] | 0;
if (!ba) {
W = k[U >> 2] | 0;
if (!W) {
ya = 0;
break;
} else {
za = W;
Aa = U;
}
} else {
za = ba;
Aa = aa;
}
while (1) {
aa = za + 20 | 0;
ba = k[aa >> 2] | 0;
if (ba | 0) {
za = ba;
Aa = aa;
continue;
}
aa = za + 16 | 0;
ba = k[aa >> 2] | 0;
if (!ba) {
Ba = za;
Ca = Aa;
break;
} else {
za = ba;
Aa = aa;
}
}
if (Ca >>> 0 < sa >>> 0) qa(); else {
k[Ca >> 2] = 0;
ya = Ba;
break;
}
} else {
aa = k[ma + 8 >> 2] | 0;
if (aa >>> 0 < sa >>> 0) qa();
ba = aa + 12 | 0;
if ((k[ba >> 2] | 0) != (ma | 0)) qa();
U = e + 8 | 0;
if ((k[U >> 2] | 0) == (ma | 0)) {
k[ba >> 2] = e;
k[U >> 2] = aa;
ya = e;
break;
} else qa();
} while (0);
if (!$) break;
e = k[ma + 28 >> 2] | 0;
da = 1512 + (e << 2) | 0;
do if ((ma | 0) == (k[da >> 2] | 0)) {
k[da >> 2] = ya;
if (ya | 0) break;
k[303] = k[303] & ~(1 << e);
break e;
} else {
if ($ >>> 0 < (k[306] | 0) >>> 0) qa();
V = $ + 16 | 0;
if ((k[V >> 2] | 0) == (ma | 0)) k[V >> 2] = ya; else k[$ + 20 >> 2] = ya;
if (!ya) break e;
} while (0);
e = k[306] | 0;
if (ya >>> 0 < e >>> 0) qa();
k[ya + 24 >> 2] = $;
da = ma + 16 | 0;
V = k[da >> 2] | 0;
do if (V | 0) if (V >>> 0 < e >>> 0) qa(); else {
k[ya + 16 >> 2] = V;
k[V + 24 >> 2] = ya;
break;
} while (0);
V = k[da + 4 >> 2] | 0;
if (!V) break;
if (V >>> 0 < (k[306] | 0) >>> 0) qa(); else {
k[ya + 20 >> 2] = V;
k[V + 24 >> 2] = ya;
break;
}
} while (0);
Da = ma + ga | 0;
Ea = ga + ea | 0;
} else {
Da = ma;
Ea = ea;
}
fa = Da + 4 | 0;
k[fa >> 2] = k[fa >> 2] & -2;
k[ka + 4 >> 2] = Ea | 1;
k[ka + Ea >> 2] = Ea;
fa = Ea >>> 3;
if (Ea >>> 0 < 256) {
la = 1248 + (fa << 1 << 2) | 0;
V = k[302] | 0;
e = 1 << fa;
do if (!(V & e)) {
k[302] = V | e;
Fa = la + 8 | 0;
Ga = la;
} else {
fa = la + 8 | 0;
$ = k[fa >> 2] | 0;
if ($ >>> 0 >= (k[306] | 0) >>> 0) {
Fa = fa;
Ga = $;
break;
}
qa();
} while (0);
k[Fa >> 2] = ka;
k[Ga + 12 >> 2] = ka;
k[ka + 8 >> 2] = Ga;
k[ka + 12 >> 2] = la;
break;
}
e = Ea >>> 8;
do if (!e) Ha = 0; else {
if (Ea >>> 0 > 16777215) {
Ha = 31;
break;
}
V = (e + 1048320 | 0) >>> 16 & 8;
ga = e << V;
$ = (ga + 520192 | 0) >>> 16 & 4;
fa = ga << $;
ga = (fa + 245760 | 0) >>> 16 & 2;
aa = 14 - ($ | V | ga) + (fa << ga >>> 15) | 0;
Ha = Ea >>> (aa + 7 | 0) & 1 | aa << 1;
} while (0);
e = 1512 + (Ha << 2) | 0;
k[ka + 28 >> 2] = Ha;
la = ka + 16 | 0;
k[la + 4 >> 2] = 0;
k[la >> 2] = 0;
la = k[303] | 0;
aa = 1 << Ha;
if (!(la & aa)) {
k[303] = la | aa;
k[e >> 2] = ka;
k[ka + 24 >> 2] = e;
k[ka + 12 >> 2] = ka;
k[ka + 8 >> 2] = ka;
break;
}
aa = Ea << ((Ha | 0) == 31 ? 0 : 25 - (Ha >>> 1) | 0);
la = k[e >> 2] | 0;
while (1) {
if ((k[la + 4 >> 2] & -8 | 0) == (Ea | 0)) {
Ia = la;
N = 279;
break;
}
e = la + 16 + (aa >>> 31 << 2) | 0;
ga = k[e >> 2] | 0;
if (!ga) {
Ja = e;
Ka = la;
N = 276;
break;
} else {
aa = aa << 1;
la = ga;
}
}
if ((N | 0) == 276) if (Ja >>> 0 < (k[306] | 0) >>> 0) qa(); else {
k[Ja >> 2] = ka;
k[ka + 24 >> 2] = Ka;
k[ka + 12 >> 2] = ka;
k[ka + 8 >> 2] = ka;
break;
} else if ((N | 0) == 279) {
la = Ia + 8 | 0;
aa = k[la >> 2] | 0;
ga = k[306] | 0;
if (aa >>> 0 >= ga >>> 0 & Ia >>> 0 >= ga >>> 0) {
k[aa + 12 >> 2] = ka;
k[la >> 2] = ka;
k[ka + 8 >> 2] = aa;
k[ka + 12 >> 2] = Ia;
k[ka + 24 >> 2] = 0;
break;
} else qa();
}
} while (0);
p = ca + 8 | 0;
r = b;
return p | 0;
} else wa = 1656;
while (1) {
ka = k[wa >> 2] | 0;
if (ka >>> 0 <= ja >>> 0) {
ea = ka + (k[wa + 4 >> 2] | 0) | 0;
if (ea >>> 0 > ja >>> 0) {
La = ea;
break;
}
}
wa = k[wa + 8 >> 2] | 0;
}
ca = La + -47 | 0;
ea = ca + 8 | 0;
ka = ca + ((ea & 7 | 0) == 0 ? 0 : 0 - ea & 7) | 0;
ea = ja + 16 | 0;
ca = ka >>> 0 < ea >>> 0 ? ja : ka;
ka = ca + 8 | 0;
ma = ha + 8 | 0;
c = (ma & 7 | 0) == 0 ? 0 : 0 - ma & 7;
ma = ha + c | 0;
aa = ia + -40 - c | 0;
k[308] = ma;
k[305] = aa;
k[ma + 4 >> 2] = aa | 1;
k[ma + aa + 4 >> 2] = 40;
k[309] = k[424];
aa = ca + 4 | 0;
k[aa >> 2] = 27;
k[ka >> 2] = k[414];
k[ka + 4 >> 2] = k[415];
k[ka + 8 >> 2] = k[416];
k[ka + 12 >> 2] = k[417];
k[414] = ha;
k[415] = ia;
k[417] = 0;
k[416] = ka;
ka = ca + 24 | 0;
do {
ka = ka + 4 | 0;
k[ka >> 2] = 7;
} while ((ka + 4 | 0) >>> 0 < La >>> 0);
if ((ca | 0) != (ja | 0)) {
ka = ca - ja | 0;
k[aa >> 2] = k[aa >> 2] & -2;
k[ja + 4 >> 2] = ka | 1;
k[ca >> 2] = ka;
ma = ka >>> 3;
if (ka >>> 0 < 256) {
c = 1248 + (ma << 1 << 2) | 0;
la = k[302] | 0;
ga = 1 << ma;
if (!(la & ga)) {
k[302] = la | ga;
Ma = c + 8 | 0;
Na = c;
} else {
ga = c + 8 | 0;
la = k[ga >> 2] | 0;
if (la >>> 0 < (k[306] | 0) >>> 0) qa(); else {
Ma = ga;
Na = la;
}
}
k[Ma >> 2] = ja;
k[Na + 12 >> 2] = ja;
k[ja + 8 >> 2] = Na;
k[ja + 12 >> 2] = c;
break;
}
c = ka >>> 8;
if (!c) Oa = 0; else if (ka >>> 0 > 16777215) Oa = 31; else {
la = (c + 1048320 | 0) >>> 16 & 8;
ga = c << la;
c = (ga + 520192 | 0) >>> 16 & 4;
ma = ga << c;
ga = (ma + 245760 | 0) >>> 16 & 2;
e = 14 - (c | la | ga) + (ma << ga >>> 15) | 0;
Oa = ka >>> (e + 7 | 0) & 1 | e << 1;
}
e = 1512 + (Oa << 2) | 0;
k[ja + 28 >> 2] = Oa;
k[ja + 20 >> 2] = 0;
k[ea >> 2] = 0;
ga = k[303] | 0;
ma = 1 << Oa;
if (!(ga & ma)) {
k[303] = ga | ma;
k[e >> 2] = ja;
k[ja + 24 >> 2] = e;
k[ja + 12 >> 2] = ja;
k[ja + 8 >> 2] = ja;
break;
}
ma = ka << ((Oa | 0) == 31 ? 0 : 25 - (Oa >>> 1) | 0);
ga = k[e >> 2] | 0;
while (1) {
if ((k[ga + 4 >> 2] & -8 | 0) == (ka | 0)) {
Pa = ga;
N = 305;
break;
}
e = ga + 16 + (ma >>> 31 << 2) | 0;
la = k[e >> 2] | 0;
if (!la) {
Ra = e;
Sa = ga;
N = 302;
break;
} else {
ma = ma << 1;
ga = la;
}
}
if ((N | 0) == 302) if (Ra >>> 0 < (k[306] | 0) >>> 0) qa(); else {
k[Ra >> 2] = ja;
k[ja + 24 >> 2] = Sa;
k[ja + 12 >> 2] = ja;
k[ja + 8 >> 2] = ja;
break;
} else if ((N | 0) == 305) {
ga = Pa + 8 | 0;
ma = k[ga >> 2] | 0;
ka = k[306] | 0;
if (ma >>> 0 >= ka >>> 0 & Pa >>> 0 >= ka >>> 0) {
k[ma + 12 >> 2] = ja;
k[ga >> 2] = ja;
k[ja + 8 >> 2] = ma;
k[ja + 12 >> 2] = Pa;
k[ja + 24 >> 2] = 0;
break;
} else qa();
}
}
} while (0);
ja = k[305] | 0;
if (ja >>> 0 > y >>> 0) {
Pa = ja - y | 0;
k[305] = Pa;
ja = k[308] | 0;
N = ja + y | 0;
k[308] = N;
k[N + 4 >> 2] = Pa | 1;
k[ja + 4 >> 2] = y | 3;
p = ja + 8 | 0;
r = b;
return p | 0;
}
}
ja = Qa() | 0;
k[ja >> 2] = 12;
p = 0;
r = b;
return p | 0;
}
function fb(a) {
a = a | 0;
var b = 0, c = 0, d = 0, e = 0, f = 0, g = 0, h = 0, i = 0, j = 0, l = 0, m = 0, n = 0, o = 0, p = 0, q = 0, r = 0, s = 0, t = 0, u = 0, v = 0, w = 0, x = 0, y = 0, z = 0, A = 0, B = 0, C = 0, D = 0, E = 0, F = 0, G = 0, H = 0, I = 0, J = 0, K = 0, L = 0;
if (!a) return;
b = a + -8 | 0;
c = k[306] | 0;
if (b >>> 0 < c >>> 0) qa();
d = k[a + -4 >> 2] | 0;
a = d & 3;
if ((a | 0) == 1) qa();
e = d & -8;
f = b + e | 0;
do if (!(d & 1)) {
g = k[b >> 2] | 0;
if (!a) return;
h = b + (0 - g) | 0;
i = g + e | 0;
if (h >>> 0 < c >>> 0) qa();
if ((h | 0) == (k[307] | 0)) {
j = f + 4 | 0;
l = k[j >> 2] | 0;
if ((l & 3 | 0) != 3) {
m = h;
n = i;
break;
}
k[304] = i;
k[j >> 2] = l & -2;
k[h + 4 >> 2] = i | 1;
k[h + i >> 2] = i;
return;
}
l = g >>> 3;
if (g >>> 0 < 256) {
g = k[h + 8 >> 2] | 0;
j = k[h + 12 >> 2] | 0;
o = 1248 + (l << 1 << 2) | 0;
if ((g | 0) != (o | 0)) {
if (g >>> 0 < c >>> 0) qa();
if ((k[g + 12 >> 2] | 0) != (h | 0)) qa();
}
if ((j | 0) == (g | 0)) {
k[302] = k[302] & ~(1 << l);
m = h;
n = i;
break;
}
if ((j | 0) == (o | 0)) p = j + 8 | 0; else {
if (j >>> 0 < c >>> 0) qa();
o = j + 8 | 0;
if ((k[o >> 2] | 0) == (h | 0)) p = o; else qa();
}
k[g + 12 >> 2] = j;
k[p >> 2] = g;
m = h;
n = i;
break;
}
g = k[h + 24 >> 2] | 0;
j = k[h + 12 >> 2] | 0;
do if ((j | 0) == (h | 0)) {
o = h + 16 | 0;
l = o + 4 | 0;
q = k[l >> 2] | 0;
if (!q) {
r = k[o >> 2] | 0;
if (!r) {
s = 0;
break;
} else {
t = r;
u = o;
}
} else {
t = q;
u = l;
}
while (1) {
l = t + 20 | 0;
q = k[l >> 2] | 0;
if (q | 0) {
t = q;
u = l;
continue;
}
l = t + 16 | 0;
q = k[l >> 2] | 0;
if (!q) {
v = t;
w = u;
break;
} else {
t = q;
u = l;
}
}
if (w >>> 0 < c >>> 0) qa(); else {
k[w >> 2] = 0;
s = v;
break;
}
} else {
l = k[h + 8 >> 2] | 0;
if (l >>> 0 < c >>> 0) qa();
q = l + 12 | 0;
if ((k[q >> 2] | 0) != (h | 0)) qa();
o = j + 8 | 0;
if ((k[o >> 2] | 0) == (h | 0)) {
k[q >> 2] = j;
k[o >> 2] = l;
s = j;
break;
} else qa();
} while (0);
if (!g) {
m = h;
n = i;
} else {
j = k[h + 28 >> 2] | 0;
l = 1512 + (j << 2) | 0;
if ((h | 0) == (k[l >> 2] | 0)) {
k[l >> 2] = s;
if (!s) {
k[303] = k[303] & ~(1 << j);
m = h;
n = i;
break;
}
} else {
if (g >>> 0 < (k[306] | 0) >>> 0) qa();
j = g + 16 | 0;
if ((k[j >> 2] | 0) == (h | 0)) k[j >> 2] = s; else k[g + 20 >> 2] = s;
if (!s) {
m = h;
n = i;
break;
}
}
j = k[306] | 0;
if (s >>> 0 < j >>> 0) qa();
k[s + 24 >> 2] = g;
l = h + 16 | 0;
o = k[l >> 2] | 0;
do if (o | 0) if (o >>> 0 < j >>> 0) qa(); else {
k[s + 16 >> 2] = o;
k[o + 24 >> 2] = s;
break;
} while (0);
o = k[l + 4 >> 2] | 0;
if (!o) {
m = h;
n = i;
} else if (o >>> 0 < (k[306] | 0) >>> 0) qa(); else {
k[s + 20 >> 2] = o;
k[o + 24 >> 2] = s;
m = h;
n = i;
break;
}
}
} else {
m = b;
n = e;
} while (0);
if (m >>> 0 >= f >>> 0) qa();
e = f + 4 | 0;
b = k[e >> 2] | 0;
if (!(b & 1)) qa();
if (!(b & 2)) {
if ((f | 0) == (k[308] | 0)) {
s = (k[305] | 0) + n | 0;
k[305] = s;
k[308] = m;
k[m + 4 >> 2] = s | 1;
if ((m | 0) != (k[307] | 0)) return;
k[307] = 0;
k[304] = 0;
return;
}
if ((f | 0) == (k[307] | 0)) {
s = (k[304] | 0) + n | 0;
k[304] = s;
k[307] = m;
k[m + 4 >> 2] = s | 1;
k[m + s >> 2] = s;
return;
}
s = (b & -8) + n | 0;
c = b >>> 3;
do if (b >>> 0 < 256) {
v = k[f + 8 >> 2] | 0;
w = k[f + 12 >> 2] | 0;
u = 1248 + (c << 1 << 2) | 0;
if ((v | 0) != (u | 0)) {
if (v >>> 0 < (k[306] | 0) >>> 0) qa();
if ((k[v + 12 >> 2] | 0) != (f | 0)) qa();
}
if ((w | 0) == (v | 0)) {
k[302] = k[302] & ~(1 << c);
break;
}
if ((w | 0) == (u | 0)) x = w + 8 | 0; else {
if (w >>> 0 < (k[306] | 0) >>> 0) qa();
u = w + 8 | 0;
if ((k[u >> 2] | 0) == (f | 0)) x = u; else qa();
}
k[v + 12 >> 2] = w;
k[x >> 2] = v;
} else {
v = k[f + 24 >> 2] | 0;
w = k[f + 12 >> 2] | 0;
do if ((w | 0) == (f | 0)) {
u = f + 16 | 0;
t = u + 4 | 0;
p = k[t >> 2] | 0;
if (!p) {
a = k[u >> 2] | 0;
if (!a) {
y = 0;
break;
} else {
z = a;
A = u;
}
} else {
z = p;
A = t;
}
while (1) {
t = z + 20 | 0;
p = k[t >> 2] | 0;
if (p | 0) {
z = p;
A = t;
continue;
}
t = z + 16 | 0;
p = k[t >> 2] | 0;
if (!p) {
B = z;
C = A;
break;
} else {
z = p;
A = t;
}
}
if (C >>> 0 < (k[306] | 0) >>> 0) qa(); else {
k[C >> 2] = 0;
y = B;
break;
}
} else {
t = k[f + 8 >> 2] | 0;
if (t >>> 0 < (k[306] | 0) >>> 0) qa();
p = t + 12 | 0;
if ((k[p >> 2] | 0) != (f | 0)) qa();
u = w + 8 | 0;
if ((k[u >> 2] | 0) == (f | 0)) {
k[p >> 2] = w;
k[u >> 2] = t;
y = w;
break;
} else qa();
} while (0);
if (v | 0) {
w = k[f + 28 >> 2] | 0;
i = 1512 + (w << 2) | 0;
if ((f | 0) == (k[i >> 2] | 0)) {
k[i >> 2] = y;
if (!y) {
k[303] = k[303] & ~(1 << w);
break;
}
} else {
if (v >>> 0 < (k[306] | 0) >>> 0) qa();
w = v + 16 | 0;
if ((k[w >> 2] | 0) == (f | 0)) k[w >> 2] = y; else k[v + 20 >> 2] = y;
if (!y) break;
}
w = k[306] | 0;
if (y >>> 0 < w >>> 0) qa();
k[y + 24 >> 2] = v;
i = f + 16 | 0;
h = k[i >> 2] | 0;
do if (h | 0) if (h >>> 0 < w >>> 0) qa(); else {
k[y + 16 >> 2] = h;
k[h + 24 >> 2] = y;
break;
} while (0);
h = k[i + 4 >> 2] | 0;
if (h | 0) if (h >>> 0 < (k[306] | 0) >>> 0) qa(); else {
k[y + 20 >> 2] = h;
k[h + 24 >> 2] = y;
break;
}
}
} while (0);
k[m + 4 >> 2] = s | 1;
k[m + s >> 2] = s;
if ((m | 0) == (k[307] | 0)) {
k[304] = s;
return;
} else D = s;
} else {
k[e >> 2] = b & -2;
k[m + 4 >> 2] = n | 1;
k[m + n >> 2] = n;
D = n;
}
n = D >>> 3;
if (D >>> 0 < 256) {
b = 1248 + (n << 1 << 2) | 0;
e = k[302] | 0;
s = 1 << n;
if (!(e & s)) {
k[302] = e | s;
E = b + 8 | 0;
F = b;
} else {
s = b + 8 | 0;
e = k[s >> 2] | 0;
if (e >>> 0 < (k[306] | 0) >>> 0) qa(); else {
E = s;
F = e;
}
}
k[E >> 2] = m;
k[F + 12 >> 2] = m;
k[m + 8 >> 2] = F;
k[m + 12 >> 2] = b;
return;
}
b = D >>> 8;
if (!b) G = 0; else if (D >>> 0 > 16777215) G = 31; else {
F = (b + 1048320 | 0) >>> 16 & 8;
E = b << F;
b = (E + 520192 | 0) >>> 16 & 4;
e = E << b;
E = (e + 245760 | 0) >>> 16 & 2;
s = 14 - (b | F | E) + (e << E >>> 15) | 0;
G = D >>> (s + 7 | 0) & 1 | s << 1;
}
s = 1512 + (G << 2) | 0;
k[m + 28 >> 2] = G;
k[m + 20 >> 2] = 0;
k[m + 16 >> 2] = 0;
E = k[303] | 0;
e = 1 << G;
do if (!(E & e)) {
k[303] = E | e;
k[s >> 2] = m;
k[m + 24 >> 2] = s;
k[m + 12 >> 2] = m;
k[m + 8 >> 2] = m;
} else {
F = D << ((G | 0) == 31 ? 0 : 25 - (G >>> 1) | 0);
b = k[s >> 2] | 0;
while (1) {
if ((k[b + 4 >> 2] & -8 | 0) == (D | 0)) {
H = b;
I = 130;
break;
}
n = b + 16 + (F >>> 31 << 2) | 0;
y = k[n >> 2] | 0;
if (!y) {
J = n;
K = b;
I = 127;
break;
} else {
F = F << 1;
b = y;
}
}
if ((I | 0) == 127) if (J >>> 0 < (k[306] | 0) >>> 0) qa(); else {
k[J >> 2] = m;
k[m + 24 >> 2] = K;
k[m + 12 >> 2] = m;
k[m + 8 >> 2] = m;
break;
} else if ((I | 0) == 130) {
b = H + 8 | 0;
F = k[b >> 2] | 0;
i = k[306] | 0;
if (F >>> 0 >= i >>> 0 & H >>> 0 >= i >>> 0) {
k[F + 12 >> 2] = m;
k[b >> 2] = m;
k[m + 8 >> 2] = F;
k[m + 12 >> 2] = H;
k[m + 24 >> 2] = 0;
break;
} else qa();
}
} while (0);
m = (k[310] | 0) + -1 | 0;
k[310] = m;
if (!m) L = 1664; else return;
while (1) {
m = k[L >> 2] | 0;
if (!m) break; else L = m + 8 | 0;
}
k[310] = -1;
return;
}
function Ra(a, b, c) {
a = a | 0;
b = b | 0;
c = c | 0;
var d = 0, e = 0, f = 0, g = 0, h = 0, i = 0, j = 0, l = 0, m = 0, n = 0, o = 0, p = 0, q = 0, s = 0, t = 0, u = 0, v = 0, w = 0, x = 0, y = 0, z = 0;
d = r;
r = r + 48 | 0;
e = d + 16 | 0;
f = d;
g = d + 32 | 0;
h = a + 28 | 0;
i = k[h >> 2] | 0;
k[g >> 2] = i;
j = a + 20 | 0;
l = (k[j >> 2] | 0) - i | 0;
k[g + 4 >> 2] = l;
k[g + 8 >> 2] = b;
k[g + 12 >> 2] = c;
b = a + 60 | 0;
i = a + 44 | 0;
m = g;
g = 2;
n = l + c | 0;
while (1) {
if (!(k[290] | 0)) {
k[e >> 2] = k[b >> 2];
k[e + 4 >> 2] = m;
k[e + 8 >> 2] = g;
o = Pa(ya(146, e | 0) | 0) | 0;
} else {
ra(1, a | 0);
k[f >> 2] = k[b >> 2];
k[f + 4 >> 2] = m;
k[f + 8 >> 2] = g;
l = Pa(ya(146, f | 0) | 0) | 0;
oa(0);
o = l;
}
if ((n | 0) == (o | 0)) {
p = 6;
break;
}
if ((o | 0) < 0) {
q = m;
s = g;
p = 8;
break;
}
l = n - o | 0;
t = k[m + 4 >> 2] | 0;
if (o >>> 0 > t >>> 0) {
u = k[i >> 2] | 0;
k[h >> 2] = u;
k[j >> 2] = u;
v = k[m + 12 >> 2] | 0;
w = o - t | 0;
x = m + 8 | 0;
y = g + -1 | 0;
} else if ((g | 0) == 2) {
k[h >> 2] = (k[h >> 2] | 0) + o;
v = t;
w = o;
x = m;
y = 2;
} else {
v = t;
w = o;
x = m;
y = g;
}
k[x >> 2] = (k[x >> 2] | 0) + w;
k[x + 4 >> 2] = v - w;
m = x;
g = y;
n = l;
}
if ((p | 0) == 6) {
n = k[i >> 2] | 0;
k[a + 16 >> 2] = n + (k[a + 48 >> 2] | 0);
i = n;
k[h >> 2] = i;
k[j >> 2] = i;
z = c;
} else if ((p | 0) == 8) {
k[a + 16 >> 2] = 0;
k[h >> 2] = 0;
k[j >> 2] = 0;
k[a >> 2] = k[a >> 2] | 32;
if ((s | 0) == 2) z = 0; else z = c - (k[q + 4 >> 2] | 0) | 0;
}
r = d;
return z | 0;
}
function Wa(a, b, c) {
a = a | 0;
b = b | 0;
c = c | 0;
var d = 0, e = 0, f = 0, g = 0, h = 0, j = 0, l = 0, m = 0, n = 0, o = 0, p = 0, q = 0;
d = c + 16 | 0;
e = k[d >> 2] | 0;
if (!e) if (!(Xa(c) | 0)) {
f = k[d >> 2] | 0;
g = 5;
} else h = 0; else {
f = e;
g = 5;
}
a : do if ((g | 0) == 5) {
e = c + 20 | 0;
d = k[e >> 2] | 0;
j = d;
if ((f - d | 0) >>> 0 < b >>> 0) {
h = Ca[k[c + 36 >> 2] & 3](c, a, b) | 0;
break;
}
b : do if ((i[c + 75 >> 0] | 0) > -1) {
d = b;
while (1) {
if (!d) {
l = b;
m = a;
n = j;
o = 0;
break b;
}
p = d + -1 | 0;
if ((i[a + p >> 0] | 0) == 10) {
q = d;
break;
} else d = p;
}
if ((Ca[k[c + 36 >> 2] & 3](c, a, q) | 0) >>> 0 < q >>> 0) {
h = q;
break a;
}
l = b - q | 0;
m = a + q | 0;
n = k[e >> 2] | 0;
o = q;
} else {
l = b;
m = a;
n = j;
o = 0;
} while (0);
jb(n | 0, m | 0, l | 0) | 0;
k[e >> 2] = (k[e >> 2] | 0) + l;
h = o + l | 0;
} while (0);
return h | 0;
}
function Za(a) {
a = a | 0;
var b = 0, c = 0, d = 0, e = 0, f = 0, g = 0, h = 0, j = 0, l = 0, m = 0;
b = a;
a : do if (!(b & 3)) {
c = a;
d = 4;
} else {
e = a;
f = b;
while (1) {
if (!(i[e >> 0] | 0)) {
g = f;
break a;
}
h = e + 1 | 0;
f = h;
if (!(f & 3)) {
c = h;
d = 4;
break;
} else e = h;
}
} while (0);
if ((d | 0) == 4) {
d = c;
while (1) {
c = k[d >> 2] | 0;
if (!((c & -2139062144 ^ -2139062144) & c + -16843009)) d = d + 4 | 0; else {
j = c;
l = d;
break;
}
}
if (!((j & 255) << 24 >> 24)) m = l; else {
j = l;
while (1) {
l = j + 1 | 0;
if (!(i[l >> 0] | 0)) {
m = l;
break;
} else j = l;
}
}
g = m;
}
return g - b | 0;
}
function _a(a) {
a = a | 0;
var b = 0, c = 0, d = 0, e = 0, f = 0, g = 0, h = 0;
do if (!a) {
if (!(k[285] | 0)) b = 0; else b = _a(k[285] | 0) | 0;
pa(1188);
c = k[296] | 0;
if (!c) d = b; else {
e = c;
c = b;
while (1) {
if ((k[e + 76 >> 2] | 0) > -1) f = Ya(e) | 0; else f = 0;
if ((k[e + 20 >> 2] | 0) >>> 0 > (k[e + 28 >> 2] | 0) >>> 0) g = $a(e) | 0 | c; else g = c;
if (f | 0) Ta(e);
e = k[e + 56 >> 2] | 0;
if (!e) {
d = g;
break;
} else c = g;
}
}
xa(1188);
h = d;
} else {
if ((k[a + 76 >> 2] | 0) <= -1) {
h = $a(a) | 0;
break;
}
c = (Ya(a) | 0) == 0;
e = $a(a) | 0;
if (c) h = e; else {
Ta(a);
h = e;
}
} while (0);
return h | 0;
}
function ab(a, b) {
a = a | 0;
b = b | 0;
var c = 0, d = 0, e = 0, f = 0, g = 0, h = 0, j = 0, m = 0, n = 0;
c = r;
r = r + 16 | 0;
d = c;
e = b & 255;
i[d >> 0] = e;
f = a + 16 | 0;
g = k[f >> 2] | 0;
if (!g) if (!(Xa(a) | 0)) {
h = k[f >> 2] | 0;
j = 4;
} else m = -1; else {
h = g;
j = 4;
}
do if ((j | 0) == 4) {
g = a + 20 | 0;
f = k[g >> 2] | 0;
if (f >>> 0 < h >>> 0) {
n = b & 255;
if ((n | 0) != (i[a + 75 >> 0] | 0)) {
k[g >> 2] = f + 1;
i[f >> 0] = e;
m = n;
break;
}
}
if ((Ca[k[a + 36 >> 2] & 3](a, d, 1) | 0) == 1) m = l[d >> 0] | 0; else m = -1;
} while (0);
r = c;
return m | 0;
}
function $a(a) {
a = a | 0;
var b = 0, c = 0, d = 0, e = 0, f = 0, g = 0, h = 0;
b = a + 20 | 0;
c = a + 28 | 0;
if ((k[b >> 2] | 0) >>> 0 > (k[c >> 2] | 0) >>> 0) {
Ca[k[a + 36 >> 2] & 3](a, 0, 0) | 0;
if (!(k[b >> 2] | 0)) d = -1; else e = 3;
} else e = 3;
if ((e | 0) == 3) {
e = a + 4 | 0;
f = k[e >> 2] | 0;
g = a + 8 | 0;
h = k[g >> 2] | 0;
if (f >>> 0 < h >>> 0) Ca[k[a + 40 >> 2] & 3](a, f - h | 0, 1) | 0;
k[a + 16 >> 2] = 0;
k[c >> 2] = 0;
k[b >> 2] = 0;
k[g >> 2] = 0;
k[e >> 2] = 0;
d = 0;
}
return d | 0;
}
function jb(a, b, c) {
a = a | 0;
b = b | 0;
c = c | 0;
var d = 0;
if ((c | 0) >= 4096) return va(a | 0, b | 0, c | 0) | 0;
d = a | 0;
if ((a & 3) == (b & 3)) {
while (a & 3) {
if (!c) return d | 0;
i[a >> 0] = i[b >> 0] | 0;
a = a + 1 | 0;
b = b + 1 | 0;
c = c - 1 | 0;
}
while ((c | 0) >= 4) {
k[a >> 2] = k[b >> 2];
a = a + 4 | 0;
b = b + 4 | 0;
c = c - 4 | 0;
}
}
while ((c | 0) > 0) {
i[a >> 0] = i[b >> 0] | 0;
a = a + 1 | 0;
b = b + 1 | 0;
c = c - 1 | 0;
}
return d | 0;
}
function gb() {}
function hb(a, b, c) {
a = a | 0;
b = b | 0;
c = c | 0;
var d = 0, e = 0, f = 0, g = 0;
d = a + c | 0;
if ((c | 0) >= 20) {
b = b & 255;
e = a & 3;
f = b | b << 8 | b << 16 | b << 24;
g = d & ~3;
if (e) {
e = a + 4 - e | 0;
while ((a | 0) < (e | 0)) {
i[a >> 0] = b;
a = a + 1 | 0;
}
}
while ((a | 0) < (g | 0)) {
k[a >> 2] = f;
a = a + 4 | 0;
}
}
while ((a | 0) < (d | 0)) {
i[a >> 0] = b;
a = a + 1 | 0;
}
return a - c | 0;
}
function db(a) {
a = a | 0;
var b = 0, c = 0, d = 0, e = 0, f = 0;
b = k[256] | 0;
if ((k[b + 76 >> 2] | 0) > -1) c = Ya(b) | 0; else c = 0;
do if ((cb(a, b) | 0) < 0) d = 1; else {
if ((i[b + 75 >> 0] | 0) != 10) {
e = b + 20 | 0;
f = k[e >> 2] | 0;
if (f >>> 0 < (k[b + 16 >> 2] | 0) >>> 0) {
k[e >> 2] = f + 1;
i[f >> 0] = 10;
d = 0;
break;
}
}
d = (ab(b, 10) | 0) < 0;
} while (0);
if (c | 0) Ta(b);
return d << 31 >> 31 | 0;
}
function Xa(a) {
a = a | 0;
var b = 0, c = 0, d = 0;
b = a + 74 | 0;
c = i[b >> 0] | 0;
i[b >> 0] = c + 255 | c;
c = k[a >> 2] | 0;
if (!(c & 8)) {
k[a + 8 >> 2] = 0;
k[a + 4 >> 2] = 0;
b = k[a + 44 >> 2] | 0;
k[a + 28 >> 2] = b;
k[a + 20 >> 2] = b;
k[a + 16 >> 2] = b + (k[a + 48 >> 2] | 0);
d = 0;
} else {
k[a >> 2] = c | 32;
d = -1;
}
return d | 0;
}
function bb(a, b, c, d) {
a = a | 0;
b = b | 0;
c = c | 0;
d = d | 0;
var e = 0, f = 0, g = 0, h = 0, i = 0;
e = ga(c, b) | 0;
if ((k[d + 76 >> 2] | 0) > -1) {
f = (Ya(d) | 0) == 0;
g = Wa(a, e, d) | 0;
if (f) h = g; else {
Ta(d);
h = g;
}
} else h = Wa(a, e, d) | 0;
if ((h | 0) == (e | 0)) i = c; else i = (h >>> 0) / (b >>> 0) | 0;
return i | 0;
}
function Ua(a, b, c) {
a = a | 0;
b = b | 0;
c = c | 0;
var d = 0, e = 0, f = 0, g = 0;
d = r;
r = r + 32 | 0;
e = d;
f = d + 20 | 0;
k[e >> 2] = k[a + 60 >> 2];
k[e + 4 >> 2] = 0;
k[e + 8 >> 2] = b;
k[e + 12 >> 2] = f;
k[e + 16 >> 2] = c;
if ((Pa(ua(140, e | 0) | 0) | 0) < 0) {
k[f >> 2] = -1;
g = -1;
} else g = k[f >> 2] | 0;
r = d;
return g | 0;
}
function Va(a, b, c) {
a = a | 0;
b = b | 0;
c = c | 0;
var d = 0, e = 0;
d = r;
r = r + 80 | 0;
e = d;
k[a + 36 >> 2] = 3;
if (!(k[a >> 2] & 64)) {
k[e >> 2] = k[a + 60 >> 2];
k[e + 4 >> 2] = 21505;
k[e + 8 >> 2] = d + 12;
if (wa(54, e | 0) | 0) i[a + 75 >> 0] = -1;
}
e = Ra(a, b, c) | 0;
r = d;
return e | 0;
}
function Ka(a) {
a = a | 0;
i[t >> 0] = i[a >> 0];
i[t + 1 >> 0] = i[a + 1 >> 0];
i[t + 2 >> 0] = i[a + 2 >> 0];
i[t + 3 >> 0] = i[a + 3 >> 0];
i[t + 4 >> 0] = i[a + 4 >> 0];
i[t + 5 >> 0] = i[a + 5 >> 0];
i[t + 6 >> 0] = i[a + 6 >> 0];
i[t + 7 >> 0] = i[a + 7 >> 0];
}
function Oa(a) {
a = a | 0;
var b = 0, c = 0;
b = r;
r = r + 16 | 0;
c = b;
k[c >> 2] = k[a + 60 >> 2];
a = Pa(sa(6, c | 0) | 0) | 0;
r = b;
return a | 0;
}
function Pa(a) {
a = a | 0;
var b = 0, c = 0;
if (a >>> 0 > 4294963200) {
b = Qa() | 0;
k[b >> 2] = 0 - a;
c = -1;
} else c = a;
return c | 0;
}
function Ja(a) {
a = a | 0;
i[t >> 0] = i[a >> 0];
i[t + 1 >> 0] = i[a + 1 >> 0];
i[t + 2 >> 0] = i[a + 2 >> 0];
i[t + 3 >> 0] = i[a + 3 >> 0];
}
function Qa() {
var a = 0, b = 0;
if (!(k[290] | 0)) a = 1204; else {
b = (ib() | 0) + 64 | 0;
a = k[b >> 2] | 0;
}
return a | 0;
}
function lb(a, b, c, d) {
a = a | 0;
b = b | 0;
c = c | 0;
d = d | 0;
return Ca[a & 3](b | 0, c | 0, d | 0) | 0;
}
function Ea(a) {
a = a | 0;
var b = 0;
b = r;
r = r + a | 0;
r = r + 15 & -16;
return b | 0;
}
function cb(a, b) {
a = a | 0;
b = b | 0;
return (bb(a, Za(a) | 0, 1, b) | 0) + -1 | 0;
}
function ob(a, b, c) {
a = a | 0;
b = b | 0;
c = c | 0;
ja(1);
return 0;
}
function Ia(a, b) {
a = a | 0;
b = b | 0;
if (!v) {
v = a;
w = b;
}
}
function kb(a, b) {
a = a | 0;
b = b | 0;
return Ba[a & 1](b | 0) | 0;
}
function Sa(a) {
a = a | 0;
if (!(k[a + 68 >> 2] | 0)) Ta(a);
return;
}
function mb(a, b) {
a = a | 0;
b = b | 0;
Da[a & 1](b | 0);
}
function Ha(a, b) {
a = a | 0;
b = b | 0;
r = a;
s = b;
}
function nb(a) {
a = a | 0;
ja(0);
return 0;
}
function Na() {
db(1144) | 0;
return 0;
}
function Ya(a) {
a = a | 0;
return 0;
}
function Ta(a) {
a = a | 0;
return;
}
function pb(a) {
a = a | 0;
ja(2);
}
function La(a) {
a = a | 0;
K = a;
}
function Ga(a) {
a = a | 0;
r = a;
}
function Ma() {
return K | 0;
}
function Fa() {
return r | 0;
}
function ib() {
return 0;
}
// EMSCRIPTEN_END_FUNCS
var Ba = [ nb, Oa ];
var Ca = [ ob, Va, Ua, Ra ];
var Da = [ pb, Sa ];
return {
_free: fb,
_main: Na,
_pthread_self: ib,
_memset: hb,
_malloc: eb,
_memcpy: jb,
_fflush: _a,
___errno_location: Qa,
runPostSets: gb,
_emscripten_replace_memory: Aa,
stackAlloc: Ea,
stackSave: Fa,
stackRestore: Ga,
establishStackSpace: Ha,
setThrew: Ia,
setTempRet0: La,
getTempRet0: Ma,
dynCall_ii: kb,
dynCall_iiii: lb,
dynCall_vi: mb
};
})
;