Skip to content

Instantly share code, notes, and snippets.

@Kreijstal
Created November 7, 2022 14:56
Show Gist options
  • Save Kreijstal/f8a26af8b8a163e434f3aecd4cdb0a8e to your computer and use it in GitHub Desktop.
Save Kreijstal/f8a26af8b8a163e434f3aecd4cdb0a8e to your computer and use it in GitHub Desktop.
(function () { /*
Copyright The Closure Library Authors.
SPDX-License-Identifier: Apache-2.0
*/
'use strict';
var q,
aa = 'function' == typeof Object.defineProperties ? Object.defineProperty : function (a, b, c) {
if (a == Array.prototype || a == Object.prototype) return a;
a[b] = c.value;
return a
};
function ba(a) {
a = [
'object' == typeof globalThis && globalThis,
a,
'object' == typeof window && window,
'object' == typeof self && self,
'object' == typeof global && global
];
for (var b = 0; b < a.length; ++b) {
var c = a[b];
if (c && c.Math == Math) return c
}
throw Error('a');
}
var ca = ba(this);
function da(a, b) {
if (b) a: {
var c = ca;
a = a.split('.');
for (var d = 0; d < a.length - 1; d++) {
var e = a[d];
if (!(e in c)) break a;
c = c[e]
}
a = a[a.length - 1];
d = c[a];
b = b(d);
b != d && null != b && aa(c, a, {
configurable: !0,
writable: !0,
value: b
})
}
}
function ea(a) {
function b(d) {
return a.next(d)
}
function c(d) {
return a.throw(d)
}
return new Promise(function (d, e) {
function f(g) {
g.done ? d(g.value) : Promise.resolve(g.value).then(b, c).then(f, e)
}
f(a.next())
})
}
function r(a) {
return ea(a())
}
da('Object.entries', function (a) {
return a ? a : function (b) {
var c = [
],
d;
for (d in b) Object.prototype.hasOwnProperty.call(b, d) && c.push([d,
b[d]]);
return c
}
});
function fa(a, b) {
a instanceof String && (a += '');
var c = 0,
d = !1,
e = {
next: function () {
if (!d && c < a.length) {
var f = c++;
return {
value: b(f, a[f]),
done: !1
}
}
d = !0;
return {
done: !0,
value: void 0
}
}
};
e[Symbol.iterator] = function () {
return e
};
return e
}
da('Array.prototype.values', function (a) {
return a ? a : function () {
return fa(this, function (b, c) {
return c
})
}
});
da('Array.prototype.includes', function (a) {
return a ? a : function (b, c) {
var d = this;
d instanceof String && (d = String(d));
var e = d.length;
c = c || 0;
for (0 > c && (c = Math.max(c + e, 0)); c < e; c++) {
var f = d[c];
if (f === b || Object.is(f, b)) return !0
}
return !1
}
});
da('Object.values', function (a) {
return a ? a : function (b) {
var c = [
],
d;
for (d in b) Object.prototype.hasOwnProperty.call(b, d) && c.push(b[d]);
return c
}
});
da('Promise.prototype.finally', function (a) {
return a ? a : function (b) {
return this.then(function (c) {
return Promise.resolve(b()).then(function () {
return c
})
}, function (c) {
return Promise.resolve(b()).then(function () {
throw c;
})
})
}
});
var ha = ha || {
},
t = this || self;
function ia() {
throw Error('b');
}
function ja(a) {
a.Cc = void 0;
a.Wa = function () {
return a.Cc ? a.Cc : a.Cc = new a
}
}
function ka(a) {
var b = typeof a;
return 'object' != b ? b : a ? Array.isArray(a) ? 'array' : b : 'null'
}
function la(a) {
var b = ka(a);
return 'array' == b || 'object' == b && 'number' == typeof a.length
}
function ma(a) {
var b = typeof a;
return 'object' == b && null != a || 'function' == b
}
function oa(a, b, c) {
return a.call.apply(a.bind, arguments)
}
function pa(a, b, c) {
if (!a) throw Error();
if (2 < arguments.length) {
var d = Array.prototype.slice.call(arguments, 2);
return function () {
var e = Array.prototype.slice.call(arguments);
Array.prototype.unshift.apply(e, d);
return a.apply(b, e)
}
}
return function () {
return a.apply(b, arguments)
}
}
function qa(a, b, c) {
Function.prototype.bind && - 1 != Function.prototype.bind.toString().indexOf('native code') ? qa = oa : qa = pa;
return qa.apply(null, arguments)
}
function ra(a, b) {
var c = Array.prototype.slice.call(arguments, 1);
return function () {
var d = c.slice();
d.push.apply(d, arguments);
return a.apply(this, d)
}
}
function sa(a, b) {
a = a.split('.');
var c = t;
a[0] in c || 'undefined' == typeof c.execScript || c.execScript('var ' + a[0]);
for (var d; a.length && (d = a.shift()); ) a.length || void 0 === b ? c[d] && c[d] !== Object.prototype[d] ? c = c[d] : c = c[d] = {
}
: c[d] = b
}
function ta(a, b) {
function c() {
}
c.prototype = b.prototype;
a.Tb = b.prototype;
a.prototype = new c;
a.prototype.constructor = a;
a.Og = function (d, e, f) {
for (var g = Array(arguments.length - 2), h = 2; h < arguments.length; h++) g[h - 2] = arguments[h];
return b.prototype[e].apply(d, g)
}
}
function ua(a) {
return a
};
function va(a, b) {
if (Error.captureStackTrace) Error.captureStackTrace(this, va);
else {
const c = Error().stack;
c && (this.stack = c)
}
a && (this.message = String(a));
void 0 !== b && (this.cause = b)
}
ta(va, Error);
va.prototype.name = 'CustomError';
var wa;
function xa() {
throw Error('c');
}
function ya(a, b) {
b = String.fromCharCode.apply(null, b);
return null == a ? b : a + b
}
let za = void 0,
Aa;
const Ba = 'undefined' !== typeof TextDecoder;
let Ca;
const Da = 'undefined' !== typeof TextEncoder;
function Ea(a) {
if (Da) a = (Ca || (Ca = new TextEncoder)).encode(a);
else {
let c = 0;
const d = new Uint8Array(3 * a.length);
for (let e = 0; e < a.length; e++) {
var b = a.charCodeAt(e);
if (128 > b) d[c++] = b;
else {
if (2048 > b) d[c++] = b >> 6 | 192;
else {
if (55296 <= b && 57343 >= b) {
if (56319 >= b && e < a.length) {
const f = a.charCodeAt(++e);
if (56320 <= f && 57343 >= f) {
b = 1024 * (b - 55296) + f - 56320 + 65536;
d[c++] = b >> 18 | 240;
d[c++] = b >> 12 & 63 | 128;
d[c++] = b >> 6 & 63 | 128;
d[c++] = b & 63 | 128;
continue
} else e--
}
b = 65533
}
d[c++] = b >> 12 | 224;
d[c++] = b >> 6 & 63 | 128
}
d[c++] = b & 63 | 128
}
}
a = c === d.length ?
d : d.subarray(0, c)
}
return a
};
function Fa(a) {
t.setTimeout(() =>{
throw a;
}, 0)
};
var Ga = /&/g,
Ha = /</g,
Ia = />/g,
Ja = /"/g,
Ka = /'/g,
La = /\x00/g,
Ma = /[\x00&<>"']/;
function Na() {
var a = t.navigator;
return a && (a = a.userAgent) ? a : ''
}
function Oa(a) {
return - 1 != Na().indexOf(a)
};
const Pa = Array.prototype.indexOf ? function (a, b) {
return Array.prototype.indexOf.call(a, b, void 0)
}
: function (a, b) {
if ('string' === typeof a) return 'string' !== typeof b || 1 != b.length ? - 1 : a.indexOf(b, 0);
for (let c = 0; c < a.length; c++) if (c in a && a[c] === b) return c;
return - 1
},
Qa = Array.prototype.forEach ? function (a, b) {
Array.prototype.forEach.call(a, b, void 0)
}
: function (a, b) {
const c = a.length,
d = 'string' === typeof a ? a.split('') : a;
for (let e = 0; e < c; e++) e in d && b.call(void 0, d[e], e, a)
},
Ra = Array.prototype.map ? function (a, b) {
return Array.prototype.map.call(a, b, void 0)
}
: function (a, b) {
const c = a.length,
d = Array(c),
e = 'string' === typeof a ? a.split('') : a;
for (let f = 0; f < c; f++) f in e && (d[f] = b.call(void 0, e[f], f, a));
return d
},
Sa = Array.prototype.some ? function (a, b) {
return Array.prototype.some.call(a, b, void 0)
}
: function (a, b) {
const c = a.length,
d = 'string' === typeof a ? a.split('') : a;
for (let e = 0; e < c; e++) if (e in d && b.call(void 0, d[e], e, a)) return !0;
return !1
},
Ta = Array.prototype.every ? function (a, b) {
return Array.prototype.every.call(a, b, void 0)
}
: function (a, b) {
const c = a.length,
d = 'string' === typeof a ? a.split('') : a;
for (let e = 0; e < c; e++) if (e in d && !b.call(void 0, d[e], e, a)) return !1;
return !0
};
function Ua(a, b) {
b = Pa(a, b);
let c;
(c = 0 <= b) && Array.prototype.splice.call(a, b, 1);
return c
}
function Va(a) {
const b = a.length;
if (0 < b) {
const c = Array(b);
for (let d = 0; d < b; d++) c[d] = a[d];
return c
}
return []
};
function Wa(a) {
Wa[' '](a);
return a
}
Wa[' '] = function () {
};
var Xa = Oa('Trident') || Oa('MSIE'),
Ya = Oa('Gecko') && !( - 1 != Na().toLowerCase().indexOf('webkit') && !Oa('Edge')) && !(Oa('Trident') || Oa('MSIE')) && !Oa('Edge'),
Za = - 1 != Na().toLowerCase().indexOf('webkit') && !Oa('Edge');
var $a = {
},
ab = null;
function bb(a, b) {
void 0 === b && (b = 0);
cb();
b = $a[b];
const c = Array(Math.floor(a.length / 3)),
d = b[64] || '';
let e = 0,
f = 0;
for (; e < a.length - 2; e += 3) {
var g = a[e],
h = a[e + 1],
k = a[e + 2],
l = b[g >> 2];
g = b[(g & 3) << 4 | h >> 4];
h = b[(h & 15) << 2 | k >> 6];
k = b[k & 63];
c[f++] = l + g + h + k
}
l = 0;
k = d;
switch (a.length - e) {
case 2:
l = a[e + 1],
k = b[(l & 15) << 2] || d;
case 1:
a = a[e],
c[f] = b[a >> 2] + b[(a & 3) << 4 | l >> 4] + k + d
}
return c.join('')
}
function db(a) {
var b = a.length,
c = 3 * b / 4;
c % 3 ? c = Math.floor(c) : - 1 != '=.'.indexOf(a[b - 1]) && (c = - 1 != '=.'.indexOf(a[b - 2]) ? c - 2 : c - 1);
var d = new Uint8Array(c),
e = 0;
eb(a, function (f) {
d[e++] = f
});
return e !== c ? d.subarray(0, e) : d
}
function eb(a, b) {
function c(k) {
for (; d < a.length; ) {
var l = a.charAt(d++),
m = ab[l];
if (null != m) return m;
if (!/^[\s\xa0]*$/.test(l)) throw Error('e`' + l);
}
return k
}
cb();
for (var d = 0; ; ) {
var e = c( - 1),
f = c(0),
g = c(64),
h = c(64);
if (64 === h && - 1 === e) break;
b(e << 2 | f >> 4);
64 != g && (b(f << 4 & 240 | g >> 2), 64 != h && b(g << 6 & 192 | h))
}
}
function cb() {
if (!ab) {
ab = {
};
for (var a = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'.split(''), b = [
'+/=',
'+/',
'-_=',
'-_.',
'-_'
], c = 0; 5 > c; c++) {
var d = a.concat(b[c].split(''));
$a[c] = d;
for (var e = 0; e < d.length; e++) {
var f = d[e];
void 0 === ab[f] && (ab[f] = e)
}
}
}
};
var fb = 'undefined' !== typeof Uint8Array;
function gb(a) {
return null == a || hb(a) ? a : 'string' === typeof a ? db(a) : null
}
function hb(a) {
return fb && null != a && a instanceof Uint8Array
}
let ib;
function jb() {
return ib || (ib = new Uint8Array(0))
}
var kb = {
};
let lb;
function mb(a) {
if (a !== kb) throw Error('f');
}
function nb() {
return lb || (lb = new ob(null, kb))
}
function pb(a) {
mb(kb);
const b = gb(a.Tc);
return null == b ? b : a.Tc = b
}
var ob = class {
constructor(a, b) {
mb(b);
this.Tc = a;
if (null != a && 0 === a.length) throw Error('g');
}
isEmpty() {
return null == this.Tc
}
};
const qb = 'function' === typeof Symbol && 'symbol' === typeof Symbol() ? Symbol(void 0) : void 0;
function rb(a, b) {
Object.isFrozen(a) || (qb ? a[qb] |= b : void 0 !== a.bc ? a.bc |= b : Object.defineProperties(a, {
bc: {
value: b,
configurable: !0,
writable: !0,
enumerable: !1
}
}))
}
function sb(a, b) {
Object.isExtensible(a) && (qb ? a[qb] && (a[qb] &= ~b) : void 0 !== a.bc && (a.bc &= ~b))
}
function tb(a) {
let b;
qb ? b = a[qb] : b = a.bc;
return null == b ? 0 : b
}
function ub(a, b) {
qb ? a[qb] = b : void 0 !== a.bc ? a.bc = b : Object.defineProperties(a, {
bc: {
value: b,
configurable: !0,
writable: !0,
enumerable: !1
}
})
}
function vb(a) {
rb(a, 1);
return a
}
function wb(a) {
rb(a, 17);
return a
}
function xb(a) {
return a ? !!(tb(a) & 2) : !1
}
function yb(a) {
rb(a, 16);
return a
}
function zb(a, b) {
ub(b, (tb(a) | 0) & - 51)
}
function Ab(a, b) {
ub(b, (tb(a) | 18) & - 33)
};
var Bb = {
};
function Cb(a) {
return null !== a && 'object' === typeof a && !Array.isArray(a) && a.constructor === Object
}
let Db;
function Eb(a, b) {
if (null != a) if ('string' === typeof a) a = a ? new ob(a, kb) : nb();
else if (a.constructor !== ob) if (hb(a)) a = a.length ? new ob(new Uint8Array(a), kb) : nb();
else {
if (!b) throw Error();
a = void 0
}
return a
}
function Fb(a) {
a instanceof ob && (mb(kb), a = a.Tc || '');
return a
}
var Gb = Object,
Hb = Gb.freeze,
Ib = [
];
rb(Ib, 3);
var Jb = Hb.call(Gb, Ib);
function Kb(a) {
if (xb(a.Ga)) throw Error('j');
};
function Lb(a, b, c) {
let d = !1;
if (null != a && 'object' === typeof a && !(d = Array.isArray(a)) && a.Nd === Bb) return a;
if (d) return new b(a);
if (c) return new b
}
function Mb(a, b, c = !1) {
if (Array.isArray(a)) return new b(c ? yb(a) : a)
};
function Nb(a, b) {
a = a || {
};
b = b || {
};
const c = {
};
for (let d in a) c[d] = 0;
for (let d in b) c[d] = 0;
for (let d in c) if (!Ob(a[d], b[d])) return !1;
return !0
}
function Pb(a) {
return a && 'object' === typeof a ? a.Ga || a : a
}
function Ob(a, b) {
a = Fb(a);
b = Fb(b);
a = Pb(a);
b = Pb(b);
if (a == b) return !0;
if (fb) {
var c = hb(a),
d = hb(b);
if (c || d) {
if (!c) if ('string' === typeof a) a = gb(a);
else return !1;
if (d) d = b;
else if ('string' === typeof b) d = gb(b);
else return !1;
if (a.length !== d.length) return !1;
for (b = 0; b < a.length; b++) if (a[b] !== d[b]) return !1;
return !0
}
}
if (null == a && Array.isArray(b) && b && tb(b) & 1 && !b.length || null == b && Array.isArray(a) && a && tb(a) & 1 && !a.length) return !0;
if (!ma(a) || !ma(b)) return 'number' === typeof a && isNaN(a) || 'number' === typeof b && isNaN(b) ? String(a) ==
String(b) : !1;
if (a.constructor != b.constructor) return !1;
if (a.constructor === Array) {
d = a;
c = a = void 0;
const e = Math.max(d.length, b.length);
for (let f = 0; f < e; f++) {
let g = d[f],
h = b[f];
g && g.constructor == Object && (a = g, g = void 0);
h && h.constructor == Object && (c = h, h = void 0);
if (!Ob(g, h)) return !1
}
return a || c ? (a = a || {
}, c = c || {
}, Nb(a, c)) : !0
}
if (a.constructor === Object) return Nb(a, b);
throw Error('m');
};
function Qb(a) {
switch (typeof a) {
case 'number':
return isFinite(a) ? a : String(a);
case 'object':
if (a && !Array.isArray(a)) {
if (hb(a)) return bb(a);
if (a instanceof ob) {
const b = a.Tc;
return null == b ? '' : 'string' === typeof b ? b : a.Tc = bb(b)
}
}
}
return a
};
function Rb(a, b, c, d) {
if (null != a) {
if (Array.isArray(a)) a = Sb(a, b, c, void 0 !== d);
else if (Cb(a)) {
const e = {
};
for (let f in a) e[f] = Rb(a[f], b, c, d);
a = e
} else a = b(a, d);
return a
}
}
function Sb(a, b, c, d) {
d = d ? !!(tb(a) & 16) : void 0;
const e = Array.prototype.slice.call(a);
c(a, e);
for (a = 0; a < e.length; a++) e[a] = Rb(e[a], b, c, d);
return e
}
function Tb(a) {
return a.Nd === Bb ? a.toJSON() : Qb(a)
}
function Ub(a) {
if (!a) return a;
if ('object' === typeof a) {
if (hb(a)) return new Uint8Array(a);
if (a.Nd === Bb) return a.clone()
}
return a
}
function Vb() {
};
function Wb(a, b, c = !1) {
return - 1 === b ? null : b >= a.zc ? a.Gb ? a.Gb[b] : void 0 : c && a.Gb && (c = a.Gb[b], null != c) ? c : a.Ga[b + a.qc]
}
function B(a, b, c, d = !1, e = !1) {
e || Kb(a);
a.g && (a.g = void 0);
if (b >= a.zc || d) return (a.Gb || (a.Gb = a.Ga[a.zc + a.qc] = {
})) [b] = c,
a;
void 0 !== a.Gb && a.zc >= a.Ga.length ? (d = a.Ga.length - 1, e = b + a.qc, e >= d ? (a.Ga[d] = void 0, a.Ga[e] = c, a.Ga.push(a.Gb)) : a.Ga[e] = c) : a.Ga[b + a.qc] = c;
void 0 !== a.Gb && b in a.Gb && delete a.Gb[b];
return a
}
function Xb(a, b, c, d) {
let e = Wb(a, b, d);
Array.isArray(e) || (e = Jb);
const f = tb(e);
f & 1 || vb(e);
if (xb(a.Ga)) f & 2 || rb(e, 2),
c & 1 || Object.freeze(e);
else if (!(c & 1) && f & 2) e = vb(Array.prototype.slice.call(e)),
B(a, b, e, d);
else if (!(c & 2) && f & 16) {
a = e;
if (!Array.isArray(a)) throw Error('h');
sb(a, 16)
}
return e
}
function Yb(a, b) {
a = Wb(a, b);
return null == a ? a : + a
}
function Zb(a, b) {
a = Wb(a, b);
return null == a ? a : !!a
}
function $b(a, b) {
const c = Wb(a, b),
d = Eb(c, !0);
null != d && d !== c && B(a, b, d, void 0, !0);
return d
}
function E(a, b, c) {
a = Wb(a, b);
return null == a ? c : a
}
function ac(a, b, c) {
return B(a, b, void 0, !1, c)
}
function cc(a, b, c) {
Kb(a);
'' !== c ? B(a, b, c) : ac(a, b);
return a
}
function dc(a, b, c) {
Kb(a);
c = Eb(c, !1);
null == c || c.isEmpty() ? ac(a, b) : B(a, b, c)
}
function ec(a, b, c, d) {
Kb(a);
(c = fc(a, c)) && c !== b && null != d && ac(a, c);
B(a, b, d)
}
function fc(a, b) {
let c = 0;
for (let d = 0; d < b.length; d++) {
const e = b[d];
null != Wb(a, e) && (0 !== c && ac(a, c, !0), c = e)
}
return c
}
function gc(a, b, c) {
Kb(a);
const d = Wb(a, c);
b = hc(Lb(d, b, !0));
d !== b && B(a, c, b);
return b
}
function ic(a, b, c) {
const d = Wb(a, c, !1);
b = Lb(d, b);
b !== d && null != b && (B(a, c, b, !1, !0), rb(b.Ga, tb(a.Ga) & - 33));
return b
}
function F(a, b, c) {
b = ic(a, b, c);
if (null == b) return b;
xb(b.Ga) && !xb(a.Ga) && (b = hc(b), B(a, c, b, !1));
return b
}
function jc(a, b, c, d, e = !0) {
a.Kb || (a.Kb = {
});
let f = a.Kb[c],
g = Xb(a, c, 3, d);
const h = xb(a.Ga);
if (f) h || (Object.isFrozen(f) ? e || (f = Array.prototype.slice.call(f), a.Kb[c] = f) : e && Object.freeze(f));
else {
f = [
];
const l = !!(tb(a.Ga) & 16),
m = xb(g);
!h && m && (g = vb(Array.prototype.slice.call(g)), B(a, c, g, d));
d = m;
for (let n = 0; n < g.length; n++) {
var k = g[n];
d = d || xb(k);
k = Mb(k, b, l);
void 0 !== k && (f.push(k), m && rb(k.Ga, 2))
}
a.Kb[c] = f;
a = g;
Object.isFrozen(a) || (b = tb(a) | 33, ub(a, d ? b & - 9 : b | 8));
(h || e && m) && rb(f, 2);
(h || e) && Object.freeze(f)
}
return f
}
function kc(a, b, c, d = !1) {
var e = xb(a.Ga);
b = jc(a, b, c, d, e);
a = Xb(a, c, 3, d);
if (e = !e && a) {
if (!a) throw Error('i');
e = !(tb(a) & 8)
}
if (e) {
for (e = 0; e < b.length; e++) (c = b[e]) && xb(c.Ga) && (b[e] = hc(b[e]), a[e] = b[e].Ga);
rb(a, 8)
}
return b
}
function lc(a, b, c) {
Kb(a);
null == c && (c = void 0);
B(a, b, c)
}
function mc(a, b, c, d) {
Kb(a);
let e;
if (null != c) {
e = vb([]);
let f = !1;
for (let g = 0; g < c.length; g++) e[g] = c[g].Ga,
f = f || xb(e[g]);
a.Kb || (a.Kb = {
});
a.Kb[b] = c;
c = e;
f ? sb(c, 8) : rb(c, 8)
} else a.Kb && (a.Kb[b] = void 0),
e = Jb;
B(a, b, e, d)
}
function nc(a, b, c, d) {
Kb(a);
const e = jc(a, c, b, void 0, !1);
c = null != d ? d : new c;
a = Xb(a, b, 2);
e.push(c);
a.push(c.Ga);
c.jc() && sb(a, 8);
return c
}
function oc(a, b) {
return null == a ? b : a
}
function pc(a, b) {
return oc(Wb(a, b), '')
}
function qc(a, b) {
return oc(Zb(a, b), !1)
}
function rc(a, b) {
return oc(Yb(a, b), 0)
}
function sc(a, b) {
return oc(Wb(a, b), 0)
};
function tc(a) {
if (xb(a) && Object.isFrozen(a)) return a;
const b = Ra(a, uc);
Ab(a, b);
Object.freeze(b);
return b
}
function vc(a, b) {
if (null != a) {
if (fb && a instanceof Uint8Array) return a.length ? new ob(new Uint8Array(a), kb) : nb();
if (Array.isArray(a)) {
if (xb(a)) return a;
b && (b = tb(a), b = !(b & 32) && (!!(b & 16) || 0 === b));
if (b) return rb(a, 2),
a;
a = Sb(a, vc, Ab);
tb(a) & 4 && Object.freeze(a);
return a
}
return a.Nd === Bb ? uc(a) : a
}
}
function uc(a) {
if (xb(a.Ga)) return a;
a = wc(a);
rb(a.Ga, 2);
return a
}
function wc(a) {
const b = new a.constructor;
a.wc && (b.wc = a.wc.slice());
const c = a.Ga,
d = !!(tb(c) & 16);
for (let l = 0; l < c.length; l++) {
var e = c[l];
if (l === c.length - 1 && Cb(e)) for (const m in e) {
var f = + m;
if (Number.isNaN(f)) (b.Gb || (b.Gb = b.Ga[b.zc + b.qc] = {
})) [f] = e[f];
else {
var g = b,
h = e[m],
k = d;
const n = a.Kb && a.Kb[f];
n ? mc(g, f, tc(n), !0) : B(g, f, vc(h, k), !0)
}
} else g = b,
f = l - a.qc,
h = d,
(k = a.Kb && a.Kb[f]) ? mc(g, f, tc(k), !1) : B(g, f, vc(e, h), !1)
}
return b
};
function hc(a) {
if (xb(a.Ga)) {
var b = wc(a);
b.g = a;
a = b
}
return a
}
var H = class {
constructor(a, b, c) {
null == a && (a = xc);
xc = null;
var d = this.constructor.g || 0,
e = 0 < d,
f = this.constructor.i,
g = !1;
if (null == a) {
var h = f ? [
f
] : [
];
rb(h, 48);
a = h;
h = !0
} else {
if (!Array.isArray(a)) throw Error();
if (f && f !== a[0]) throw Error();
if (h = !!(tb(a) & 16)) g = tb(a),
ub(a, g | 32),
g = !!(g & 32)
}
e && 0 < a.length && Cb(a[a.length - 1]) && 'g' in a[a.length - 1] && (d = 0);
this.qc = (f ? 0 : - 1) - d;
this.Kb = void 0;
this.Ga = a;
a: {
f = this.Ga.length;
d = f - 1;
if (f && (f = this.Ga[d], Cb(f))) {
this.Gb = f;
b = Object.keys(f);
0 < b.length && Ta(b, isNaN) ? this.zc = Number.MAX_VALUE :
this.zc = d - this.qc;
break a
}
void 0 !== b && - 1 < b ? (this.zc = Math.max(b, d + 1 - this.qc), this.Gb = void 0) : this.zc = Number.MAX_VALUE
}
if (!e && this.Gb && 'g' in this.Gb) throw Error('n');
if (c) for (e = h && !g ? wb : vb, b = 0; b < c.length; b++) h = c[b],
(g = Wb(this, h)) ? Array.isArray(g) && e(g) : B(this, h, Jb, !1, !0)
}
toJSON() {
const a = this.Ga;
return Db ? a : Sb(a, Tb, Vb)
}
Rd() {
Db = !0;
try {
return JSON.stringify(this.toJSON(), yc)
} finally {
Db = !1
}
}
clone() {
var a = Sb(this.Ga, Ub, zb);
yb(a);
xc = a;
a = new this.constructor(a);
xc = null;
zc(a, this);
return a
}
jc() {
return xb(this.Ga)
}
};
H.prototype.Nd = Bb;
H.prototype.toString = function () {
return this.Ga.toString()
};
function yc(a, b) {
return Qb(b)
}
function zc(a, b) {
b.wc && (a.wc = b.wc.slice());
const c = b.Kb;
if (c) {
b = b.Gb;
for (let f in c) {
const g = c[f];
if (g) {
var d = !(!b || !b[f]),
e = + f;
if (Array.isArray(g)) {
if (g.length) for (d = kc(a, g[0].constructor, e, d), e = 0; e < Math.min(d.length, g.length); e++) zc(d[e], g[e])
} else throw Error('o`' + ka(g) + '`' + g);
}
}
}
}
let xc;
function Ac(a) {
if ('string' === typeof a) return {
buffer: db(a),
jc: !1
};
if (Array.isArray(a)) return {
buffer: new Uint8Array(a),
jc: !1
};
if (a.constructor === Uint8Array) return {
buffer: a,
jc: !1
};
if (a.constructor === ArrayBuffer) return {
buffer: new Uint8Array(a),
jc: !1
};
if (a.constructor === ob) return {
buffer: pb(a) || jb(),
jc: !0
};
if (a instanceof Uint8Array) return {
buffer: new Uint8Array(a.buffer, a.byteOffset, a.byteLength),
jc: !1
};
throw Error('x');
};
const Bc = 'function' === typeof Uint8Array.prototype.slice;
let Cc = 0,
Dc = 0;
function Ec(a) {
const b = 0 > a;
a = Math.abs(a);
let c = a >>> 0;
a = Math.floor((a - c) / 4294967296);
if (b) {
const [d,
e] = Fc(c, a);
a = e;
c = d
}
Cc = c >>> 0;
Dc = a >>> 0
}
const Gc = 'function' === typeof BigInt;
function Fc(a, b) {
b = ~b;
a ? a = ~a + 1 : b += 1;
return [a,
b]
};
function Hc(a, b) {
var {
ue: c = !1
}
= {
};
a.ue = c;
b && (b = Ac(b), a.i = b.buffer, a.v = b.jc, a.u = 0, a.j = a.i.length, a.g = a.u)
}
function Ic(a, b) {
a.g = b;
if (b > a.j) throw Error('v`' + b + '`' + a.j);
}
function Jc(a) {
let b = 0,
c = a.g;
const d = c + 10,
e = a.i;
for (; c < d; ) {
const f = e[c++];
b |= f;
if (0 === (f & 128)) return Ic(a, c),
!!(b & 127)
}
throw Error('u');
}
function Kc(a) {
var b = a.i;
const c = a.g;
var d = b[c];
var e = b[c + 1];
const f = b[c + 2];
b = b[c + 3];
a.advance(4);
e = (d << 0 | e << 8 | f << 16 | b << 24) >>> 0;
a = 2 * (e >> 31) + 1;
d = e >>> 23 & 255;
e &= 8388607;
return 255 == d ? e ? NaN : Infinity * a : 0 == d ? a * Math.pow(2, - 149) * e : a * Math.pow(2, d - 150) * (e + Math.pow(2, 23))
}
function Lc(a, b) {
if (0 > b) throw Error('w`' + b);
const c = a.g,
d = c + b;
if (d > a.j) throw Error('v`' + (a.j - c) + '`' + b);
a.g = d;
return c
}
function Mc(a, b) {
if (0 == b) return nb();
var c = Lc(a, b);
a.ue && a.v ? c = a.i.subarray(c, c + b) : (a = a.i, b = c + b, c = c === b ? jb() : Bc ? a.slice(c, b) : new Uint8Array(a.subarray(c, b)));
return 0 == c.length ? nb() : new ob(c, kb)
}
var Oc = class {
constructor(a) {
this.i = null;
this.v = !1;
this.g = this.j = this.u = 0;
Hc(this, a)
}
H() {
this.clear();
100 > Nc.length && Nc.push(this)
}
clear() {
this.i = null;
this.v = !1;
this.g = this.j = this.u = 0;
this.ue = !1
}
reset() {
this.g = this.u
}
advance(a) {
Ic(this, this.g + a)
}
o() {
const a = this.i;
let b = this.g,
c = a[b++],
d = c & 127;
if (c & 128 && (c = a[b++], d |= (c & 127) << 7, c & 128 && (c = a[b++], d |= (c & 127) << 14, c & 128 && (c = a[b++], d |= (c & 127) << 21, c & 128 && (c = a[b++], d |= c << 28, c & 128 && a[b++] & 128 && a[b++] & 128 && a[b++] & 128 && a[b++] & 128 && a[b++] & 128))))) throw Error('u');
Ic(this, b);
return d
}
},
Nc = [
];
function Pc(a) {
var b = a.g;
if (b.g == b.j) return !1;
a.j = a.g.g;
var c = a.g.o() >>> 0;
b = c >>> 3;
c &= 7;
if (!(0 <= c && 5 >= c)) throw Error('q`' + c + '`' + a.j);
if (1 > b) throw Error('r`' + b + '`' + a.j);
a.o = b;
a.i = c;
return !0
}
function Qc(a) {
switch (a.i) {
case 0:
0 != a.i ? Qc(a) : Jc(a.g);
break;
case 1:
a.g.advance(8);
break;
case 2:
if (2 != a.i) Qc(a);
else {
var b = a.g.o() >>> 0;
a.g.advance(b)
}
break;
case 5:
a.g.advance(4);
break;
case 3:
b = a.o;
do {
if (!Pc(a)) throw Error('s');
if (4 == a.i) {
if (a.o != b) throw Error('t');
break
}
Qc(a)
} while (1);
break;
default:
throw Error('q`' + a.i + '`' + a.j);
}
}
function Rc(a, b, c) {
const d = a.g.j,
e = a.g.o() >>> 0,
f = a.g.g + e;
let g = f - d;
0 >= g && (a.g.j = f, c(b, a, void 0, void 0, void 0), g = f - a.g.g);
if (g) throw Error('p`' + e + '`' + (e - g));
a.g.g = f;
a.g.j = d
}
function Sc(a) {
var b = a.g.o() >>> 0;
a = a.g;
var c = Lc(a, b);
a = a.i;
if (Ba) {
var d = a,
e;
(e = Aa) || (e = Aa = new TextDecoder('utf-8', {
fatal: !0
}));
a = c + b;
d = 0 === c && a === d.length ? d : d.subarray(c, a);
try {
var f = e.decode(d)
} catch (h) {
if (void 0 === za) {
try {
e.decode(new Uint8Array([128]))
} catch (k) {
}
try {
e.decode(new Uint8Array([97])),
za = !0
} catch (k) {
za = !1
}
}
!za && (Aa = void 0);
throw h;
}
} else {
f = c;
b = f + b;
c = [
];
let h = null;
let k;
for (; f < b; ) {
var g = a[f++];
128 > g ? c.push(g) : 224 > g ? f >= b ? xa() : (k = a[f++], 194 > g || 128 !== (k & 192) ? (f--, xa()) : c.push((g & 31) << 6 | k & 63)) : 240 > g ? f >= b - 1 ? xa() : (k = a[f++], 128 !== (k & 192) || 224 === g && 160 > k || 237 === g && 160 <= k || 128 !== ((d = a[f++]) & 192) ? (f--, xa()) : c.push((g & 15) << 12 | (k & 63) << 6 | d & 63)) : 244 >= g ? f >= b - 2 ? xa() : (k = a[f++], 128 !== (k & 192) || 0 !== (g << 28) + (k - 144) >> 30 || 128 !== ((d = a[f++]) & 192) || 128 !== ((e = a[f++]) & 192) ? (f--, xa()) : (g = (g & 7) << 18 | (k & 63) << 12 | (d & 63) << 6 | e & 63, g -= 65536, c.push((g >> 10 & 1023) + 55296, (g & 1023) + 56320))) : xa();
8192 <= c.length && (h = ya(h, c), c.length = 0)
}
f = ya(h, c)
}
return f
}
var Uc = class {
constructor(a) {
if (Nc.length) {
const b = Nc.pop();
Hc(b, a);
a = b
} else a = new Oc(a);
this.g = a;
this.j = this.g.g;
this.i = this.o = - 1;
({
Id: a = !1
}
= {
});
this.Id = a
}
H() {
this.g.clear();
this.i = this.o = - 1;
100 > Tc.length && Tc.push(this)
}
reset() {
this.g.reset();
this.j = this.g.g;
this.i = this.o = - 1
}
advance(a) {
this.g.advance(a)
}
},
Tc = [
];
function Vc(a) {
if (!a) return Xc || (Xc = new Yc(0, 0));
if (!/^-?\d+$/.test(a)) return null;
if (16 > a.length) Ec(Number(a));
else if (Gc) a = BigInt(a),
Cc = Number(a & BigInt(4294967295)) >>> 0,
Dc = Number(a >> BigInt(32) & BigInt(4294967295));
else {
const b = + ('-' === a[0]);
Dc = Cc = 0;
const c = a.length;
for (let d = b, e = (c - b) % 6 + b; e <= c; d = e, e += 6) {
const f = Number(a.slice(d, e));
Dc *= 1000000;
Cc = 1000000 * Cc + f;
4294967296 <= Cc && (Dc += Cc / 4294967296 | 0, Cc %= 4294967296)
}
if (b) {
const [d,
e] = Fc(Cc, Dc);
Cc = d;
Dc = e
}
}
return new Yc(Cc, Dc)
}
var Yc = class {
constructor(a, b) {
this.i = a >>> 0;
this.g = b >>> 0
}
};
let Xc;
function Zc(a, b, c) {
for (; 0 < c || 127 < b; ) a.g.push(b & 127 | 128),
b = (b >>> 7 | c << 25) >>> 0,
c >>>= 7;
a.g.push(b)
}
function $c(a, b) {
for (; 127 < b; ) a.g.push(b & 127 | 128),
b >>>= 7;
a.g.push(b)
}
function ad(a, b) {
if (0 <= b) $c(a, b);
else {
for (let c = 0; 9 > c; c++) a.g.push(b & 127 | 128),
b >>= 7;
a.g.push(1)
}
}
var bd = class {
constructor() {
this.g = [
]
}
length() {
return this.g.length
}
end() {
const a = this.g;
this.g = [
];
return a
}
};
function cd(a, b) {
0 !== b.length && (a.j.push(b), a.i += b.length)
}
function dd(a, b) {
$c(a.g, 8 * b + 2);
b = a.g.end();
cd(a, b);
b.push(a.i);
return b
}
function ed(a, b) {
var c = b.pop();
for (c = a.i + a.g.length() - c; 127 < c; ) b.push(c & 127 | 128),
c >>>= 7,
a.i++;
b.push(c);
a.i++
}
function fd(a, b) {
if (b = b.wc) {
cd(a, a.g.end());
for (let c = 0; c < b.length; c++) cd(a, pb(b[c]) || jb())
}
}
function gd(a, b, c) {
$c(a.g, 8 * b + 2);
$c(a.g, c.length);
cd(a, a.g.end());
cd(a, c)
}
var hd = class {
constructor() {
this.j = [
];
this.i = 0;
this.g = new bd
}
};
function id(a, b, c) {
if (c) for (let d in c) {
const e = c[d];
let f = e.og;
if (!f) {
const g = e.Xg || e.hg.Yd;
if (e.We) {
const h = jd(e.We);
f = (k, l, m) =>g(k, l, m, h)
} else if (e.jf) {
const h = kd(e.Ae.tc, e.jf);
f = (k, l, m) =>g(k, l, m, h)
} else f = g;
e.og = f
}
f(b, a, e.Ae)
}
fd(b, a)
}
const ld = Symbol();
function md(a, b, c) {
return a[ld] || (a[ld] = (d, e) =>b(d, e, c))
}
function nd(a) {
let b = a[ld];
if (!b) {
const c = od(a);
b = (d, e) =>pd(d, e, c);
a[ld] = b
}
return b
}
function qd(a) {
var b = a.We;
if (b) return nd(b);
if (b = a.Wg) return md(a.Ae.tc, b, a.jf)
}
function rd(a) {
const b = qd(a),
c = a.Ae,
d = a.hg.Pd;
return b ? (e, f) =>d(e, f, c, b) : (e, f) =>d(e, f, c)
}
function sd(a, b) {
let c = a[b];
'function' == typeof c && 0 === c.length && (c = c(), a[b] = c);
return Array.isArray(c) && (td in c || ud in c || 0 < c.length && 'function' == typeof c[0]) ? c : void 0
}
function vd(a, b, c, d, e, f) {
b.tc = a[0];
let g = 1;
if (a.length > g && 'number' !== typeof a[g]) {
var h = a[g++];
c(b, h)
}
for (; g < a.length; ) {
c = a[g++];
for (var k = g + 1; k < a.length && 'number' !== typeof a[k]; ) k++;
h = a[g++];
k -= g;
switch (k) {
case 0:
d(b, c, h);
break;
case 1:
(k = sd(a, g)) ? (g++, e(b, c, h, k)) : d(b, c, h, a[g++]);
break;
case 2:
k = g++;
k = sd(a, k);
e(b, c, h, k, a[g++]);
break;
case 3:
f(b, c, h, a[g++], a[g++], a[g++]);
break;
case 4:
f(b, c, h, a[g++], a[g++], a[g++], a[g++]);
break;
default:
throw Error('y`' + k);
}
}
return b
}
const wd = Symbol();
function jd(a) {
let b = a[wd];
if (!b) {
const c = xd(a);
b = (d, e) =>yd(d, e, c);
a[wd] = b
}
return b
}
function kd(a, b) {
let c = a[wd];
c || (c = (d, e) =>id(d, e, b), a[wd] = c);
return c
}
const ud = Symbol();
function zd(a, b) {
a.push(b)
}
function Ad(a, b, c) {
a.push(b, c.Yd)
}
function Bd(a, b, c, d) {
const e = jd(d),
f = xd(d).tc,
g = c.Yd;
a.push(b, (h, k, l) =>g(h, k, l, f, e))
}
function Cd(a, b, c, d, e, f) {
const g = kd(d, f),
h = c.Yd;
a.push(b, (k, l, m) =>h(k, l, m, d, g))
}
function xd(a) {
let b = a[ud];
if (b) return b;
b = vd(a, a[ud] = [
], zd, Ad, Bd, Cd);
td in a && ud in a && (a.length = 0);
return b
}
const td = Symbol();
function Dd(a, b) {
a[0] = b
}
function Ed(a, b, c, d) {
const e = c.Pd;
a[b] = d ? (f, g, h) =>e(f, g, h, d) : e
}
function Fd(a, b, c, d, e) {
const f = c.Pd,
g = nd(d),
h = od(d).tc;
a[b] = (k, l, m) =>f(k, l, m, h, g, e)
}
function Gd(a, b, c, d, e, f, g) {
const h = c.Pd,
k = md(d, e, f);
a[b] = (l, m, n) =>h(l, m, n, d, k, g)
}
function od(a) {
let b = a[td];
if (b) return b;
b = vd(a, a[td] = {
}, Dd, Ed, Fd, Gd);
td in a && ud in a && (a.length = 0);
return b
}
function pd(a, b, c) {
for (; Pc(b) && 4 != b.i; ) {
var d = b.o,
e = c[d];
if (!e) {
var f = c[0];
f && (f = f[d]) && (e = c[d] = rd(f))
}
if (!e || !e(b, a, d)) if (f = b, d = a, e = f.j, Qc(f), !f.Id) {
const g = f.g.g - e;
f.g.g = e;
e = Mc(f.g, g);
(f = d.wc) ? f.push(e) : d.wc = [
e
]
}
}
return a
}
var Hd = (a, b) =>{
if (Tc.length) {
const d = Tc.pop();
var {
Id: c = !1
}
= {
};
d.Id = c;
Hc(d.g, a);
a = d
} else a = new Uc(a);
try {
const d = od(b);
return pd(new d.tc, a, d)
} finally {
a.H()
}
};
function yd(a, b, c) {
const d = c.length,
e = 1 == d % 2;
let f = e ? 1 : 0;
for (; f < d; f += 2) (0, c[f + 1]) (b, a, c[f]);
id(a, b, e ? c[0] : void 0)
}
var Id = (a, b) =>{
const c = new hd;
yd(a, c, xd(b));
cd(c, c.g.end());
a = new Uint8Array(c.i);
b = c.j;
const d = b.length;
let e = 0;
for (let f = 0; f < d; f++) {
const g = b[f];
a.set(g, e);
e += g.length
}
c.j = [
a
];
return a
};
function Jd(a, b) {
return {
Pd: a,
Yd: b
}
}
function Kd(a, b, c) {
b = Yb(b, c);
if (null != b) {
$c(a.g, 8 * c + 5);
a = a.g;
var d = + b;
0 === d ? 0 < 1 / d ? Cc = Dc = 0 : (Dc = 0, Cc = 2147483648) : isNaN(d) ? (Dc = 0, Cc = 2147483647) : (d = (c = 0 > d ? - 2147483648 : 0) ? - d : d, 3.4028234663852886e+38 < d ? (Dc = 0, Cc = (c | 2139095040) >>> 0) : 1.1754943508222875e-38 > d ? (d = Math.round(d / Math.pow(2, - 149)), Dc = 0, Cc = (c | d) >>> 0) : (b = Math.floor(Math.log(d) / Math.LN2), d *= Math.pow(2, - b), d = Math.round(8388608 * d), 16777216 <= d && ++b, Dc = 0, Cc = (c | b + 127 << 23 | d & 8388607) >>> 0));
c = Cc;
a.g.push(c >>> 0 & 255);
a.g.push(c >>> 8 & 255);
a.g.push(c >>> 16 & 255);
a.g.push(c >>> 24 & 255)
}
}
function Ld(a, b, c) {
b = Zb(b, c);
null != b && ($c(a.g, 8 * c), a.g.g.push(b ? 1 : 0))
}
function Md(a, b, c) {
b = Wb(b, c);
null != b && gd(a, c, Ea(b))
}
function Nd(a, b, c, d, e) {
b = F(b, d, c);
null != b && (c = dd(a, c), e(b, a), ed(a, c))
}
var Od = Jd(function (a, b, c) {
if (5 !== a.i) return !1;
B(b, c, Kc(a.g));
return !0
}, Kd),
Pd = Jd(function (a, b, c, d) {
if (5 !== a.i) return !1;
ec(b, c, d, Kc(a.g));
return !0
}, Kd),
Qd = Jd(function (a, b, c) {
if (0 !== a.i) return !1;
{
var d = a.g;
let f = 0,
g = a = 0;
const h = d.i;
let k = d.g;
do {
var e = h[k++];
f |= (e & 127) << g;
g += 7
} while (32 > g && e & 128);
32 < g && (a |= (e & 127) >> 4);
for (g = 3; 32 > g && e & 128; g += 7) e = h[k++],
a |= (e & 127) << g;
Ic(d, k);
if (128 > e) {
d = f >>> 0;
e = a >>> 0;
if (a = e & 2147483648) d = ~d + 1 >>> 0,
e = ~e >>> 0,
0 == d && (e = e + 1 >>> 0);
d = 4294967296 * e + (d >>> 0);
a = a ? - d : d
} else throw Error('u');
}
B(b, c, a);
return !0
}, function (a, b, c) {
b = Wb(b, c);
null != b && ('string' === typeof b && Vc(b), null != b && ($c(a.g, 8 * c), 'number' === typeof b ? (a = a.g, Ec(b), Zc(a, Cc, Dc)) : (c = Vc(b), Zc(a.g, c.i, c.g))))
}),
Rd = Jd(function (a, b, c) {
if (0 !== a.i) return !1;
B(b, c, a.g.o());
return !0
}, function (a, b, c) {
b = Wb(b, c);
null != b && null != b && ($c(a.g, 8 * c), ad(a.g, b))
}),
Sd = Jd(function (a, b, c) {
if (0 !== a.i && 2 !== a.i) return !1;
b = Xb(b, c, 0, !1);
if (2 == a.i) {
c = Oc.prototype.o;
var d = a.g.o() >>> 0;
for (d = a.g.g + d; a.g.g < d; ) b.push(c.call(a.g))
} else b.push(a.g.o());
return !0
}, function (a, b, c) {
b = Xb(b, c, 0, !1);
if (null != b) for (let f = 0; f < b.length; f++) {
var d = a,
e = b[f];
null != e && ($c(d.g, 8 * c), ad(d.g, e))
}
}),
Td = Jd(function (a, b, c) {
if (0 !== a.i) return !1;
B(b, c, Jc(a.g));
return !0
}, Ld),
Ud = Jd(function (a, b, c, d) {
if (0 !== a.i) return !1;
ec(b, c, d, Jc(a.g));
return !0
}, Ld),
Vd = Jd(function (a, b, c) {
if (2 !== a.i) return !1;
B(b, c, Sc(a));
return !0
}, Md),
Wd = Jd(function (a, b, c) {
if (2 !== a.i) return !1;
a = Sc(a);
Kb(b);
Xb(b, c, 2, !1).push(a);
return !0
}, function (a, b, c) {
var d = Xb(b, c, 1, !1);
if (d.length && !(tb(d) & 4)) {
Object.isFrozen(d) && (d = vb(d.slice()), B(b, c, d, !1, !0));
var e = 0;
let f = 0;
for (; e < d.length; e++) {
const g = d[e];
null != g && (d[f++] = g)
}
f < e && (d.length = f);
rb(d, 5)
}(e = xb(b.Ga)) && !Object.isFrozen(d) ? (rb(d, 2), Object.freeze(d)) : !e && Object.isFrozen(d) && (d = Array.prototype.slice.call(d), rb(d, 5), e = d, null == e ? e = Jb : vb(e), B(b, c, e, !1));
b = d;
if (null != b) for (e = 0; e < b.length; e++) d = b[e],
null != d && gd(a, c, Ea(d))
}),
Xd = Jd(function (a, b, c, d) {
if (2 !== a.i) return !1;
ec(b, c, d, Sc(a));
return !0
}, Md),
Yd = Jd(function (a, b, c, d, e) {
if (2 !== a.i) return !1;
Rc(a, gc(b, d, c), e);
return !0
}, Nd),
Zd = Jd(function (a, b, c, d, e) {
if (2 !== a.i) return !1;
Rc(a, nc(b, c, d), e);
return !0
}, function (a, b, c, d, e) {
b = kc(b, d, c);
if (null != b) for (d = 0; d < b.length; d++) {
const f = dd(a, c);
e(b[d], a);
ed(a, f)
}
}),
$d = Jd(function (a, b, c, d, e, f) {
if (2 !== a.i) return !1;
(f = fc(b, f)) && f !== c && ac(b, f);
b = gc(b, d, c);
Rc(a, b, e);
return !0
}, Nd),
ae = Jd(function (a, b, c) {
if (0 !== a.i) return !1;
B(b, c, a.g.o());
return !0
}, function (a, b, c) {
b = Wb(b, c);
null != b && (b = parseInt(b, 10), $c(a.g, 8 * c), ad(a.g, b))
});
var be = class extends H {
constructor(a) {
super (a)
}
getTypeName() {
return pc(this, 1).split('/').pop()
}
},
ce = [
be,
1,
Jd(function (a, b, c) {
if (2 !== a.i) return !1;
a = Sc(a);
cc(b, c, a);
return !0
}, Md),
2,
Jd(function (a, b, c) {
if (2 !== a.i) return !1;
const d = a.g.o() >>> 0;
a = Mc(a.g, d);
dc(b, c, a);
return !0
}, function (a, b, c) {
b = $b(b, c);
null != b && gd(a, c, Ac(b).buffer)
})
];
function de() {
};
function ee(a, b, c) {
for (const d in a) b.call(c, a[d], d, a)
}
const fe = 'constructor hasOwnProperty isPrototypeOf propertyIsEnumerable toLocaleString toString valueOf'.split(' ');
function ge(a, b) {
let c,
d;
for (let e = 1; e < arguments.length; e++) {
d = arguments[e];
for (c in d) a[c] = d[c];
for (let f = 0; f < fe.length; f++) c = fe[f],
Object.prototype.hasOwnProperty.call(d, c) && (a[c] = d[c])
}
};
var he;
function ie() {
if (void 0 === he) {
var a = null,
b = t.trustedTypes;
if (b && b.createPolicy) {
try {
a = b.createPolicy('goog#html', {
createHTML: ua,
createScript: ua,
createScriptURL: ua
})
} catch (c) {
t.console && t.console.error(c.message)
}
he = a
} else he = a
}
return he
};
function je(a, b) {
this.g = a === ke && b || '';
this.i = le
}
je.prototype.Nc = !0;
je.prototype.Mc = function () {
return this.g
};
function me(a) {
return a instanceof je && a.constructor === je && a.i === le ? a.g : 'type_error:Const'
}
var le = {
},
ke = {
};
var oe = class {
constructor(a, b) {
this.g = b === ne ? a : ''
}
toString() {
return this.g + ''
}
};
oe.prototype.Nc = !0;
oe.prototype.Mc = function () {
return this.g.toString()
};
function pe(a) {
return a instanceof oe && a.constructor === oe ? a.g : 'type_error:TrustedResourceUrl'
}
function qe() {
var a = {
},
b = me(new je(ke, '//google-doodles.appspot.com/?'));
if (!re.test(b)) throw Error('A`' + b);
var c = b.replace(se, function (d, e) {
if (!Object.prototype.hasOwnProperty.call(a, e)) throw Error('B`' + e + '`' + b + '`' + JSON.stringify(a));
d = a[e];
return d instanceof je ? me(d) : encodeURIComponent(String(d))
});
return te(c)
}
var se = /%{(\w+)}/g,
re = RegExp('^((https:)?//[0-9a-z.:[\\]-]+/|/[^/\\\\]|[^:/\\\\%]+/|[^:/\\\\%]*[?#]|about:blank#)', 'i'),
ue = /^([^?#]*)(\?[^#]*)?(#[\s\S]*)?/;
function ve(a) {
var b = qe();
b = ue.exec(pe(b).toString());
var c = b[3] || '';
return te(b[1] + we('?', b[2] || '', a) + we('#', c))
}
var ne = {
};
function te(a) {
const b = ie();
a = b ? b.createScriptURL(a) : a;
return new oe(a, ne)
}
function we(a, b, c) {
if (null == c) return b;
if ('string' === typeof c) return c ? a + encodeURIComponent(c) : '';
for (var d in c) if (Object.prototype.hasOwnProperty.call(c, d)) {
var e = c[d];
e = Array.isArray(e) ? e : [
e
];
for (var f = 0; f < e.length; f++) {
var g = e[f];
null != g && (b || (b = a), b += (b.length > a.length ? '&' : '') + encodeURIComponent(d) + '=' + encodeURIComponent(String(g)))
}
}
return b
};
var ye = class {
constructor(a, b) {
this.g = b === xe ? a : ''
}
toString() {
return this.g.toString()
}
};
ye.prototype.Nc = !0;
ye.prototype.Mc = function () {
return this.g.toString()
};
function ze(a) {
return a instanceof ye && a.constructor === ye ? a.g : 'type_error:SafeUrl'
}
var Ae = /^(?:(?:https?|mailto|ftp):|[^:/?#]*(?:[/?#]|$))/i,
xe = {
},
Be = new ye('about:invalid#zClosurez', xe);
const Ce = {
};
function De(a) {
return a instanceof Ee && a.constructor === Ee ? a.g : 'type_error:SafeHtml'
}
function Fe(a) {
a instanceof Ee || (a = 'object' == typeof a && a.Nc ? a.Mc() : String(a), Ma.test(a) && ( - 1 != a.indexOf('&') && (a = a.replace(Ga, '&amp;')), - 1 != a.indexOf('<') && (a = a.replace(Ha, '&lt;')), - 1 != a.indexOf('>') && (a = a.replace(Ia, '&gt;')), - 1 != a.indexOf('"') && (a = a.replace(Ja, '&quot;')), - 1 != a.indexOf('\'') && (a = a.replace(Ka, '&#39;')), - 1 != a.indexOf('\x00') && (a = a.replace(La, '&#0;'))), a = Ge(a));
return a
}
function Ge(a) {
const b = ie();
a = b ? b.createHTML(a) : a;
return new Ee(a, Ce)
}
function He(a) {
const b = Fe(Ie),
c = [
],
d = e=>{
Array.isArray(e) ? e.forEach(d) : (e = Fe(e), c.push(De(e).toString()))
};
a.forEach(d);
return Ge(c.join(De(b).toString()))
}
function Je(a) {
return He(Array.prototype.slice.call(arguments))
}
class Ee {
constructor(a, b) {
this.g = b === Ce ? a : '';
this.Nc = !0
}
Mc() {
return this.g.toString()
}
toString() {
return this.g.toString()
}
}
var Ie = new Ee(t.trustedTypes && t.trustedTypes.emptyHTML || '', Ce),
Ke = Ge('<br>');
var Le = function (a) {
let b = !1,
c;
return function () {
b || (c = a(), b = !0);
return c
}
}(function () {
var a = document.createElement('div'),
b = document.createElement('div');
b.appendChild(document.createElement('div'));
a.appendChild(b);
b = a.firstChild.firstChild;
a.innerHTML = De(Ie);
return !b.parentElement
});
function Me(a, b) {
if (Le()) for (; a.lastChild; ) a.removeChild(a.lastChild);
a.innerHTML = De(b)
}
function Ne(a, b) {
a: {
var c = (a.ownerDocument && a.ownerDocument.defaultView || t).document;
if (c.querySelector && (c = c.querySelector('script[nonce]')) && (c = c.nonce || c.getAttribute('nonce')) && Oe.test(c)) break a;
c = ''
}
c && a.setAttribute('nonce', c);
a.src = pe(b)
}
function Pe(a) {
a instanceof ye || a instanceof ye || (a = 'object' == typeof a && a.Nc ? a.Mc() : String(a), Ae.test(a) || (a = 'about:invalid#zClosurez'), a = new ye(a, xe));
t.open(ze(a), '')
}
var Oe = /^[\w+/_-]+[=]{0,2}$/;
var Qe = RegExp('^(?:([^:/?#.]+):)?(?://(?:([^\\\\/?#]*)@)?([^\\\\/?#]*?)(?::([0-9]+))?(?=[\\\\/?#]|$))?([^?#]+)?(?:\\?([^#]*))?(?:#([\\s\\S]*))?$');
function Re(a, b) {
if (a) {
a = a.split('&');
for (var c = 0; c < a.length; c++) {
var d = a[c].indexOf('='),
e = null;
if (0 <= d) {
var f = a[c].substring(0, d);
e = a[c].substring(d + 1)
} else f = a[c];
b(f, e ? decodeURIComponent(e.replace(/\+/g, ' ')) : '')
}
}
};
function Se(a) {
this.j = this.O = this.o = '';
this.H = null;
this.v = this.u = '';
this.i = !1;
var b;
a instanceof Se ? (this.i = a.i, Te(this, a.o), this.O = a.O, this.j = a.j, Ue(this, a.H), this.u = a.u, Ve(this, a.g.clone()), this.v = a.v) : a && (b = String(a).match(Qe)) ? (this.i = !1, Te(this, b[1] || '', !0), this.O = We(b[2] || ''), this.j = We(b[3] || '', !0), Ue(this, b[4]), this.u = We(b[5] || '', !0), Ve(this, b[6] || '', !0), this.v = We(b[7] || '')) : (this.i = !1, this.g = new Ze(null, this.i))
}
Se.prototype.toString = function () {
var a = [
],
b = this.o;
b && a.push($e(b, af, !0), ':');
var c = this.j;
if (c || 'file' == b) a.push('//'),
(b = this.O) && a.push($e(b, af, !0), '@'),
a.push(encodeURIComponent(String(c)).replace(/%25([0-9a-fA-F]{2})/g, '%$1')),
c = this.H,
null != c && a.push(':', String(c));
if (c = this.u) this.j && '/' != c.charAt(0) && a.push('/'),
a.push($e(c, '/' == c.charAt(0) ? bf : cf, !0));
(c = this.g.toString()) && a.push('?', c);
(c = this.v) && a.push('#', $e(c, df));
return a.join('')
};
Se.prototype.clone = function () {
return new Se(this)
};
function Te(a, b, c) {
a.o = c ? We(b, !0) : b;
a.o && (a.o = a.o.replace(/:$/, ''))
}
function Ue(a, b) {
if (b) {
b = Number(b);
if (isNaN(b) || 0 > b) throw Error('C`' + b);
a.H = b
} else a.H = null
}
function Ve(a, b, c) {
b instanceof Ze ? (a.g = b, ef(a.g, a.i)) : (c || (b = $e(b, ff)), a.g = new Ze(b, a.i))
}
function gf(a, b, c) {
a.g.set(b, c);
return a
}
function hf(a) {
return a instanceof Se ? a.clone() : new Se(a)
}
function We(a, b) {
return a ? b ? decodeURI(a.replace(/%25/g, '%2525')) : decodeURIComponent(a) : ''
}
function $e(a, b, c) {
return 'string' === typeof a ? (a = encodeURI(a).replace(b, jf), c && (a = a.replace(/%25([0-9a-fA-F]{2})/g, '%$1')), a) : null
}
function jf(a) {
a = a.charCodeAt(0);
return '%' + (a >> 4 & 15).toString(16) + (a & 15).toString(16)
}
var af = /[#\/\?@]/g,
cf = /[#\?:]/g,
bf = /[#\?]/g,
ff = /[#\?@]/g,
df = /#/g;
function Ze(a, b) {
this.i = this.g = null;
this.j = a || null;
this.o = !!b
}
function kf(a) {
a.g || (a.g = new Map, a.i = 0, a.j && Re(a.j, function (b, c) {
a.add(decodeURIComponent(b.replace(/\+/g, ' ')), c)
}))
}
q = Ze.prototype;
q.add = function (a, b) {
kf(this);
this.j = null;
a = lf(this, a);
var c = this.g.get(a);
c || this.g.set(a, c = [
]);
c.push(b);
this.i += 1;
return this
};
function mf(a, b) {
kf(a);
b = lf(a, b);
a.g.has(b) && (a.j = null, a.i -= a.g.get(b).length, a.g.delete(b))
}
q.clear = function () {
this.g = this.j = null;
this.i = 0
};
q.isEmpty = function () {
kf(this);
return 0 == this.i
};
function nf(a, b) {
kf(a);
b = lf(a, b);
return a.g.has(b)
}
q.forEach = function (a, b) {
kf(this);
this.g.forEach(function (c, d) {
c.forEach(function (e) {
a.call(b, e, d, this)
}, this)
}, this)
};
q.Ce = function (a) {
kf(this);
let b = [
];
if ('string' === typeof a) nf(this, a) && (b = b.concat(this.g.get(lf(this, a))));
else {
a = Array.from(this.g.values());
for (let c = 0; c < a.length; c++) b = b.concat(a[c])
}
return b
};
q.set = function (a, b) {
kf(this);
this.j = null;
a = lf(this, a);
nf(this, a) && (this.i -= this.g.get(a).length);
this.g.set(a, [
b
]);
this.i += 1;
return this
};
q.get = function (a, b) {
if (!a) return b;
a = this.Ce(a);
return 0 < a.length ? String(a[0]) : b
};
q.toString = function () {
if (this.j) return this.j;
if (!this.g) return '';
const a = [
],
b = Array.from(this.g.keys());
for (var c = 0; c < b.length; c++) {
var d = b[c];
const f = encodeURIComponent(String(d)),
g = this.Ce(d);
for (d = 0; d < g.length; d++) {
var e = f;
'' !== g[d] && (e += '=' + encodeURIComponent(String(g[d])));
a.push(e)
}
}
return this.j = a.join('&')
};
q.clone = function () {
var a = new Ze;
a.j = this.j;
this.g && (a.g = new Map(this.g), a.i = this.i);
return a
};
function lf(a, b) {
b = String(b);
a.o && (b = b.toLowerCase());
return b
}
function ef(a, b) {
b && !a.o && (kf(a), a.j = null, a.g.forEach(function (c, d) {
var e = d.toLowerCase();
d != e && (mf(this, d), mf(this, e), 0 < c.length && (this.j = null, this.g.set(lf(this, e), Va(c)), this.i += c.length))
}, a));
a.o = b
};
var of = navigator.userAgent,
pf = new Se(location.href),
qf = () =>'MacIntel' === navigator.platform && 1 < navigator.maxTouchPoints,
rf = () =>of.includes('iPad') || of.includes('iPhone') || of.includes('iPod') || qf();
const sf = () =>of.toLowerCase().includes('gsa') || of.includes('GoogleApp');
var I = () =>rf() || of.includes('Android') || of.includes('Mobile') || of.includes('Silk') || of.includes('UCBrowser') || of.includes('UCWEB'),
tf = 'sdoodles' === document.documentElement.id && !I();
of.includes('GT-I9300') && of.includes('Chrome');
var uf = () =>pf.u.includes('/logos/') && pf.u.includes('.html'),
vf = () =>{
const a = pf.g.get('ntp');
return '1' === a || '2' === a
},
wf = () =>'1' === pf.g.get('fpdoodle') && !!document.getElementById('fpdoodle'),
xf = () =>!!document.querySelector('body#iframedoodle'),
yf = () =>(!I() || qf()) && !tf && !(document.getElementById('fkbx') || vf()) && !wf() && !uf(),
zf = qf() && !tf && !(document.getElementById('fkbx') || vf()) && !wf() && !uf();
var Cf = a=>{
let b = new Image;
b.onerror = b.onload = b.onabort = () =>{
delete Af[Bf]
};
Af[Bf] = b;
b.src = `${ '' }/gen_204?atyp=i&ct=${ 'doodle' }&cad=${ a }&zx=${ Date.now() }`;
Bf++
};
let Af = [
],
Bf = 0; /*
SPDX-License-Identifier: Apache-2.0
*/
var Df;
try {
new URL('s://g'),
Df = !0
} catch (a) {
Df = !1
}
const Ef = Df;
function Ff(a, b) {
a.src = pe(b);
var c;
let d;
(c = (b = null == (d = (c = (a.ownerDocument && a.ownerDocument.defaultView || window).document).querySelector) ? void 0 : d.call(c, 'script[nonce]')) ? b.nonce || b.getAttribute('nonce') || '' : '') && a.setAttribute('nonce', c)
};
function Gf(a, b, c) {
b = String(b);
let d = c;
'inserthtml' === b.toLowerCase() && (d = De(c));
return a.execCommand(b, !1, d)
};
var Hf = RegExp('[A-Za-zÀ-ÖØ-öø-ʸ̀-֐ऀ-῿‎Ⰰ-𐐄-𞐼-􏴀-﬜︀-﹯﻽-￿]'),
If = RegExp('^[^A-Za-zÀ-ÖØ-öø-ʸ̀-֐ऀ-῿‎Ⰰ-𐐄-𞐼-􏴀-﬜︀-﹯﻽-￿]*[֑-ۯۺ-ࣿ‏𐠭𐰺-𞼝-﷿ﹰ-ﻼ]'),
Jf = /^http:\/\/.*/,
Kf = /\s+/,
Lf = /[\d\u06f0-\u06f9]/;
class Mf {
constructor(a) {
this.hd = a
}
}
function Nf(a) {
return new Mf(b=>b.substr(0, a.length + 1).toLowerCase() === a + ':')
}
const Of = [
Nf('data'),
Nf('http'),
Nf('https'),
Nf('mailto'),
Nf('ftp'),
new Mf(a=>/^[^:]*([/?#]|$)/.test(a))
];
function Pf(a, b = Of) {
for (let c = 0; c < b.length; ++c) {
const d = b[c];
if (d instanceof Mf && d.hd(a)) return new ye(a, xe)
}
};
var Qf = (a, ...b) =>{
if (a) for (let c = 0; c < b.length; c += 2) {
const d = b[c],
e = b[c + 1],
f = a.style;
f && d in f ? f[d] = e : d in a && (a[d] = e)
}
},
Rf = Date.now,
Sf = [
'Moz',
'ms',
'O',
'webkit'
],
Tf = (a, b, c) =>{
if (a) {
for (const d of Sf) a.style[d + b] = c;
a.style[b.charAt(0).toLowerCase() + b.substr(1)] = c
}
},
Uf = [
'',
'moz',
'ms',
'o',
'webkit'
],
Vf = (a, b) =>{
if (!a) return null;
for (const d of Uf) {
var c = b;
0 < d.length && (c = b.charAt(0).toUpperCase() + b.substr(1));
c = d + c;
if ('undefined' != typeof a[c]) return c
}
return null
},
Wf = (a, b) =>{
if (b = (b = b && !(sf() && rf())) || vf()) Pe(a);
else {
b = window.top.location;
a = Pf(a, Of) || Be;
if (a instanceof ye) a = ze(a);
else {
b: if (Ef) {
try {
var c = new URL(a)
} catch (d) {
c = 'https:';
break b
}
c = c.protocol
} else c: {
c = document.createElement('a');
try {
c.href = a
} catch (d) {
c = void 0;
break c
}
c = c.protocol;
c = ':' === c || '' === c ? 'https:' : c
}
a = 'javascript:' !== c ? a : void 0
}
void 0 !== a && b.assign(a)
}
},
Xf = () =>window.google && void 0 !== window.google.doodle ? window.google.doodle : null,
Yf = (a, b) =>{
const c = Xf();
return c && void 0 != c[a] ? c[a] : b
},
Zf = a=>{
Xf() || (window.google.doodle = {
});
window.google.doodle.pvc = a
};
function $f() {
var a = ag;
a = bg(cg(dg(new eg, pc(F(a.g, eg, 2), 1)), pc(F(a.g, eg, 2), 2)), fg.Zd.name);
a = bb(Id(a, gg), 3);
a = gf(hf('https://www.google.com/webhp'), 'doodle', `${ hg }_${ a }`).toString();
a = new URL(a);
const b = new URL(a.origin);
for (let c of'fpdoodle tune doodle hl gl nord'.split(' ')) {
const d = a.searchParams.get(c);
d && b.searchParams.set(c, d)
}
return b.toString()
}
var ig = (a, b) =>{
a = Yf('doodle_args', {
}) [a];
return null != a ? a : b
},
jg = () =>!!ig('is_dogfood', !1),
kg = Yf('hl', 'en'),
lg = Yf('gl', '');
RegExp('^(ar|ckb|dv|he|iw|fa|nqo|ps|sd|ug|ur|yi|.*[-_](Adlm|Arab|Hebr|Nkoo|Rohg|Thaa))(?!.*[-_](Latn|Cyrl)($|-|_))($|-|_)', 'i').test(kg);
var ng = (a, b, c) =>{
const d = Math.max(0, c - 230) + (document.querySelector('div.og-pdp') ? 36 : 12);
Qf(a, 'width', `${ b }px`, 'height', `${ c }px`);
mg(d)
};
const mg = a=>{
a = `${ a }px`;
var b = document.getElementById('lga');
b && Qf(b, 'marginBottom', a);
document.getElementById('fkbx') || vf() || ((b = document.getElementById('searchform')) && Qf(b, 'transform', 'translateY(' + a + ')'), a = new UIEvent('resize', {
bubbles: !1,
Pg: !1,
view: window,
detail: 0
}), window.dispatchEvent(a))
};
let og = null,
pg = null,
qg = null;
var rg = () =>{
qg || (window.google && window.google.kEI && window.google.kEI.length ? qg = window.google.kEI : xf() && nf(pf.g, 'ei') && (qg = pf.g.get('ei')));
return qg
},
sg = () =>{
if (!og) {
const a = document.getElementById('hplogoved');
a ? og = a.getAttribute('data-ved') : xf() && nf(pf.g, 'ved') && (og = pf.g.get('ved'))
}
return og
},
tg = a=>{
const b = new Se('/');
gf(b, 'fpdoodle', '1');
gf(b, 'doodle', String(a));
kg && gf(b, 'hl', kg);
lg && gf(b, 'gl', lg);
Wf(b.toString(), !1)
};
var ug = {
[
2
]: 'wss://matchmaker.prod.h22.cloud.doodles.goog',
[
3
]: '',
[
4
]: 'wss://matchmaker.prod.h22.cloud.doodles.goog',
[
6
]: 'wss://matchmaker.18.h18.cloud.doodles.goog',
[
5
]: 'wss://matchmaker.18.h18.cloud.doodles.goog',
[
1
]: '',
[
0
]: ''
}
[
4
],
J = I() && !zf,
L = J ? 540 : 960,
vg = J ? 960 : 540,
wg = 1000 / 24,
xg = document.querySelector('#hplogo'),
N = document.getElementById('hpcanvas'),
yg = N.getContext('2d'),
zg = {
Ag: 'MOST_SPIRITS_COLLECTED',
Kg: 'STOLE_MOST',
zg: 'MOST_MEGA_FLAMES',
qg: 'COLLECT_1000_SPIRITS',
yg: 'COLLECT_5000_SPIRITS',
Jg: 'STEAL_250',
Ig: 'STEAL_1000',
rg: 'COLLECT_10_MEGA_FLAMES',
xg: 'COLLECT_30_MEGA_FLAMES',
Mg: 'WIN_5_GAMES',
Lg: 'WIN_35_GAMES',
Gg: 'PLAY_10_GAMES',
Hg: 'PLAY_50_GAMES',
vg: 'COLLECT_150_SPIRITS_SINGLE_GAME',
wg: 'COLLECT_200_SPIRITS_SINGLE_GAME',
Bg: 'MOST_SPIRITS_COLLECTED_5_GAMES'
},
Ag = new Map([[87,
!0],
[
65,
!0
],
[
83,
!0
],
[
68,
!0
],
[
32,
!0
],
[
37,
!0
],
[
38,
!0
],
[
39,
!0
],
[
40,
!0
],
[
192,
!1
]]),
hg = Yf('id', '207425579'),
Bg = I() ? 78 : 0,
Cg = 0 <= 'en en-US en-GB ko ko-KR ko-US'.split(' ').indexOf(kg) ? 'Poor Story' : 'Noto Sans',
O = `${ Cg },sans-serif`,
Dg = 'true' ===
ig('disable_host', 'false');
function Eg(a) {
if (!a.g) {
a.g = !0;
for (const b of a.i) b()
}
}
function Fg(a, b) {
a.g ? b() : a.i.push(b)
}
class Gg {
constructor(a) {
this.o = a;
this.g = !1;
this.i = [
]
}
preload() {
}
}
var Hg = (a, b) =>{
Promise.all(a.map(c=>c.preload())).then(b)
};
class Ig extends Gg {
constructor(a) {
super (a);
this.image = new Image
}
preload() {
if (this.image.src) return Promise.resolve(this.image);
let a;
const b = new Promise(d=>a = d),
c = () =>{
Eg(this);
a(this.image)
};
this.image.crossOrigin = 'Anonymous';
this.image.decode ? (this.image.src = this.o, this.image.decode().then(c, () =>{
this.image.removeAttribute('crossOrigin');
this.image.src = this.o;
this.image.decode().then(c, () =>{
c()
})
})) : (this.image.onload = c, this.image.onerror = () =>{
this.image.removeAttribute('crossOrigin');
this.image.removeAttribute('onerror');
this.image.src = this.image.src
}, this.image.src = this.o);
(this.image.complete || 'complete' == this.image.readyState) && c();
return b
}
};
function Jg(a, b, c) {
a.g.push(b);
a.i.push(c);
return a.g.length - 1
}
function Kg(a, b) {
var c = Lg;
Promise.all(a.map(d=>c.preload(d))).then(() =>b && b())
}
function Mg(a, b, c, d, e, f, g, h, k) {
var l = c[1],
m = c[2];
const n = c[3],
w = c[4];
let v,
A,
p,
u;
void 0 === d ? (v = l, A = m, p = n, u = w, g = f = 0, d = n, e = w) : void 0 === f ? (v = l, A = m, p = n, u = w, g = f = 0) : (v = l, A = m, p = d, u = e, d = h, e = k);
v < l && (k = l - v, v = l, p -= k, f += k, d -= k);
A < m && (k = m - A, A = m, u -= k, g += k, e -= k);
v + p > l + n && (l = v + p - (l + n), p -= l, d -= l);
A + u > m + w && (m = A + u - (m + w), u -= m, e -= m);
a = a.g['number' === typeof c ? c : c[0]];
if (!a.g) throw Error('E');
0 < p && 0 < u && b.drawImage(a.image, v, A, p, u, f, g, d, e)
}
function Ng(a, b, c, d, e, f = 1, g = !1) {
const h = b[3],
k = b[4];
c.save();
c.translate(d, e);
c.scale(f, f);
Mg(a, c, b, h, k, - h * (g ? 0.5 : 0), - k * (g ? 0.5 : 0), h, k);
c.restore()
}
var Pg = class {
constructor() {
var a = Og;
this.g = [
];
this.i = [
];
for (const b of a) Jg(this, new Ig('/logos/2021/halloween21/r1030_5e329/' + b.filename), b.size)
}
preload(a, b) {
const c = this.g['number' === typeof a ? a : a[0]];
return (new Promise(d=>{
Fg(c, d);
c.preload()
})).then(() =>b && b())
}
getSize(a) {
return {
width: a[3],
height: a[4]
}
}
};
class Qg extends Pg {
}
ja(Qg);
var Og = [
{
filename: 'main-sprite.png',
size: [
2042,
565
]
},
{
filename: 'hats-sprite.png',
size: [
2047,
1120
]
},
{
filename: 'achievements-sprite.png',
size: [
2047,
1195
]
},
{
filename: 'tutorial-sprite.png',
size: [
2044,
1615
]
},
{
filename: 'alpha-sprite.png',
size: [
2045,
3832
]
},
{
filename: 'bravo-sprite.png',
size: [
2047,
3574
]
},
{
filename: 'desktop-sprite.png',
size: [
3849,
1083
]
},
{
filename: 'initial-sprite.png',
size: [
1017,
412
]
},
{
filename: 'mobile-sprite.png',
size: [
3798,
1923
]
},
{
filename: 'dogfood-sprite.png',
size: [
60,
60
]
}
],
Rg = [
2,
1926,
722,
84,
84
],
Sg = [
2,
1926,
148,
98,
98
],
Tg = [
2,
0,
982,
172,
172
],
Ug = [
2,
1926,
350,
98,
98
],
Vg = [
2,
0,
0,
960,
540
],
Wg = [
2,
963,
0,
540,
960
],
Xg = [
2,
1506,
0,
417,
436
],
Yg = [
2,
1506,
439,
417,
436
],
Zg = [
2,
0,
543,
417,
436
],
$g = [
2,
1926,
542,
87,
87
],
ah = [
2,
1926,
632,
87,
87
],
bh = [
2,
1926,
451,
93,
88
],
ch = [
4,
234,
3708,
75,
75
],
dh = [
6,
0,
0,
960,
540
],
eh = [
8,
0,
0,
540,
960
],
fh = [
0,
951,
271,
306,
117
],
gh = [
0,
951,
235,
32,
33
],
hh = [
6,
963,
0,
960,
540
],
ih = [
8,
543,
0,
540,
960
],
jh = [
0,
1795,
271,
166,
192
],
kh = [
3,
874,
718,
300,
100
],
lh = [
0,
459,
415,
96,
96
],
mh = [
6,
2889,
0,
960,
540
],
nh = [
8,
1629,
0,
540,
960
],
oh = [
3,
0,
0,
512,
512
],
ph = [
3,
515,
0,
512,
512
],
qh = [
3,
1829,
718,
156,
76
],
rh = [
3,
874,
668,
56,
37
],
sh = [
1,
687,
956,
100,
100
],
th = [
3,
1177,
718,
275,
261
],
uh = [
3,
1924,
0,
116,
116
],
vh = [
6,
0,
543,
960,
540
],
wh = [
6,
963,
543,
960,
540
],
xh = [
8,
2715,
0,
540,
960
],
yh = [
6,
1926,
543,
960,
540
],
zh = [
8,
3258,
0,
540,
960
],
Ah = [
3,
1455,
718,
205,
93
],
Bh = [
0,
1528,
271,
264,
202
],
Ch = [
0,
1260,
271,
265,
265
],
Dh = [
3,
447,
515,
424,
462
],
Eh = [
3,
1924,
119,
100,
98
],
Fh = [
3,
1030,
0,
444,
356
],
Gh = [
3,
1477,
0,
444,
356
],
Hh = [
3,
1477,
0,
444,
356
],
Ih = [
3,
1030,
359,
444,
356
],
Jh = [
3,
1477,
359,
444,
356
],
Kh = [
3,
0,
515,
444,
356
],
Lh = [
0,
1964,
271,
77,
77
],
Mh = [
0,
0,
0,
640,
141
],
Nh = [
3,
1663,
718,
163,
75
],
Oh = [
3,
933,
668,
56,
37
],
Ph = [
6,
2889,
543,
960,
540
],
Qh = [
8,
0,
963,
540,
960
],
Rh = [
[3,
874,
515,
150,
150],
[
3,
874,
515,
150,
150
],
[
3,
1663,
796,
150,
150
],
[
3,
1663,
796,
150,
150
],
[
3,
1663,
796,
150,
150
],
[
3,
1816,
797,
150,
150
],
[
3,
1816,
797,
150,
150
],
[
3,
1816,
797,
150,
150
],
[
3,
1455,
814,
150,
150
],
[
3,
1455,
814,
150,
150
],
[
3,
1455,
814,
150,
150
],
[
3,
874,
821,
150,
150
],
[
3,
874,
821,
150,
150
],
[
3,
874,
821,
150,
150
],
[
3,
0,
874,
150,
150
],
[
3,
153,
874,
150,
150
],
[
3,
153,
874,
150,
150
],
[
3,
153,
874,
150,
150
],
[
3,
1608,
949,
150,
150
],
[
3,
1608,
949,
150,
150
],
[
3,
1761,
950,
150,
150
],
[
3,
1761,
950,
150,
150
],
[
3,
1761,
950,
150,
150
],
[
3,
874,
515,
150,
150
],
[
3,
1455,
967,
150,
150
],
[
3,
874,
974,
150,
150
],
[
3,
874,
974,
150,
150
],
[
3,
306,
980,
150,
150
],
[
3,
1816,
797,
150,
150
],
[
3,
1816,
797,
150,
150
],
[
3,
1816,
797,
150,
150
],
[
3,
1455,
814,
150,
150
],
[
3,
1455,
814,
150,
150
],
[
3,
1455,
814,
150,
150
],
[
3,
874,
821,
150,
150
],
[
3,
874,
821,
150,
150
],
[
3,
874,
821,
150,
150
],
[
3,
0,
874,
150,
150
],
[
3,
153,
874,
150,
150
],
[
3,
153,
874,
150,
150
],
[
3,
153,
874,
150,
150
],
[
3,
1608,
949,
150,
150
],
[
3,
1608,
949,
150,
150
],
[
3,
1761,
950,
150,
150
],
[
3,
1761,
950,
150,
150
],
[
3,
1761,
950,
150,
150
]
],
Sh = [
[1,
793,
144,
200,
200],
[
1,
1467,
152,
200,
200
],
[
1,
0,
163,
200,
200
],
[
1,
996,
174,
200,
200
],
[
1,
1199,
174,
200,
200
],
[
1,
203,
181,
200,
200
],
[
1,
1670,
187,
200,
200
],
[
1,
406,
331,
200,
200
],
[
1,
609,
347,
200,
200
],
[
1,
1402,
355,
200,
200
],
[
1,
0,
366,
200,
200
],
[
1,
812,
377,
200,
200
],
[
1,
1015,
377,
200,
200
],
[
1,
203,
384,
200,
200
],
[
1,
1605,
390,
200,
200
],
[
1,
1808,
390,
200,
200
],
[
1,
406,
534,
200,
200
],
[
1,
609,
550,
200,
200
],
[
1,
1218,
558,
200,
200
],
[
1,
0,
569,
200,
200
],
[
1,
812,
580,
200,
200
],
[
1,
1015,
580,
200,
200
],
[
1,
203,
587,
200,
200
],
[
1,
1421,
593,
200,
200
],
[
1,
1624,
593,
200,
200
],
[
1,
1827,
593,
200,
200
],
[
1,
406,
737,
200,
200
],
[
1,
609,
753,
200,
200
],
[
1,
1218,
761,
200,
200
],
[
1,
0,
772,
200,
200
],
[
1,
812,
783,
200,
200
]
],
Th = [
[3,
1988,
688,
50,
50],
[
3,
1988,
688,
50,
50
],
[
3,
1988,
741,
50,
50
],
[
3,
1988,
741,
50,
50
],
[
3,
1608,
814,
50,
50
],
[
3,
1608,
814,
50,
50
],
[
3,
1105,
821,
50,
50
],
[
3,
1105,
821,
50,
50
],
[
3,
1608,
867,
50,
50
],
[
3,
1608,
867,
50,
50
],
[
3,
384,
874,
50,
50
],
[
3,
384,
874,
50,
50
],
[
3,
1105,
874,
50,
50
],
[
3,
1105,
874,
50,
50
],
[
3,
1105,
927,
50,
50
],
[
3,
1105,
927,
50,
50
],
[
3,
1988,
688,
50,
50
],
[
3,
1988,
688,
50,
50
],
[
3,
1988,
741,
50,
50
],
[
3,
1988,
741,
50,
50
],
[
3,
1608,
814,
50,
50
],
[
3,
1608,
814,
50,
50
],
[
3,
1105,
821,
50,
50
],
[
3,
1992,
953,
50,
50
],
[
3,
1992,
1006,
50,
50
],
[
3,
765,
1058,
50,
50
],
[
3,
818,
1058,
50,
50
],
[
3,
818,
1058,
50,
50
],
[
3,
1992,
1059,
50,
50
],
[
3,
1992,
1059,
50,
50
],
[
3,
1333,
1060,
50,
50
],
[
3,
1333,
1060,
50,
50
],
[
3,
1386,
1060,
50,
50
],
[
3,
1386,
1060,
50,
50
],
[
3,
1992,
1112,
50,
50
],
[
3,
1992,
1112,
50,
50
],
[
3,
1486,
1198,
50,
50
],
[
3,
1486,
1198,
50,
50
],
[
3,
1539,
1198,
50,
50
],
[
3,
1539,
1198,
50,
50
],
[
3,
1224,
1213,
50,
50
],
[
3,
1224,
1213,
50,
50
],
[
3,
818,
1058,
50,
50
],
[
3,
818,
1058,
50,
50
],
[
3,
1992,
1059,
50,
50
],
[
3,
1992,
1059,
50,
50
],
[
3,
1333,
1060,
50,
50
],
[
3,
1333,
1060,
50,
50
],
[
3,
1386,
1060,
50,
50
],
[
3,
1386,
1060,
50,
50
],
[
3,
1992,
1112,
50,
50
],
[
3,
1992,
1112,
50,
50
],
[
3,
1486,
1198,
50,
50
],
[
3,
1486,
1198,
50,
50
],
[
3,
1277,
1213,
50,
50
],
[
3,
1277,
1213,
50,
50
],
[
3,
1149,
1288,
50,
50
],
[
3,
1608,
867,
50,
50
],
[
3,
384,
874,
50,
50
],
[
3,
384,
874,
50,
50
],
[
3,
1105,
874,
50,
50
],
[
3,
1105,
874,
50,
50
],
[
3,
1105,
927,
50,
50
],
[
3,
1105,
927,
50,
50
],
[
3,
1988,
688,
50,
50
],
[
3,
1988,
688,
50,
50
],
[
3,
1988,
741,
50,
50
],
[
3,
1988,
741,
50,
50
],
[
3,
1608,
814,
50,
50
],
[
3,
1608,
814,
50,
50
],
[
3,
1105,
821,
50,
50
],
[
3,
1105,
821,
50,
50
],
[
3,
234,
1333,
50,
50
],
[
3,
234,
1333,
50,
50
],
[
3,
1149,
1341,
50,
50
],
[
3,
384,
874,
50,
50
],
[
3,
1105,
874,
50,
50
],
[
3,
1105,
874,
50,
50
],
[
3,
1105,
927,
50,
50
],
[
3,
1105,
927,
50,
50
]
],
Uh = [
[3,
1383,
1429,
50,
50],
[
3,
1383,
1429,
50,
50
],
[
3,
702,
1439,
50,
50
],
[
3,
702,
1439,
50,
50
],
[
3,
1077,
1444,
50,
50
],
[
3,
1077,
1444,
50,
50
],
[
3,
702,
1492,
50,
50
],
[
3,
702,
1492,
50,
50
],
[
3,
1311,
1507,
50,
50
],
[
3,
1311,
1507,
50,
50
],
[
3,
755,
1511,
50,
50
],
[
3,
755,
1511,
50,
50
],
[
3,
234,
1517,
50,
50
],
[
3,
234,
1517,
50,
50
],
[
3,
287,
1517,
50,
50
],
[
3,
287,
1517,
50,
50
],
[
3,
1383,
1429,
50,
50
],
[
3,
340,
1517,
50,
50
],
[
3,
393,
1517,
50,
50
],
[
3,
393,
1517,
50,
50
],
[
3,
446,
1517,
50,
50
],
[
3,
499,
1517,
50,
50
],
[
3,
552,
1517,
50,
50
],
[
3,
605,
1517,
50,
50
],
[
3,
808,
1519,
50,
50
],
[
3,
808,
1519,
50,
50
],
[
3,
861,
1519,
50,
50
],
[
3,
861,
1519,
50,
50
],
[
3,
914,
1519,
50,
50
],
[
3,
914,
1519,
50,
50
],
[
3,
967,
1522,
50,
50
],
[
3,
967,
1522,
50,
50
],
[
3,
1020,
1522,
50,
50
],
[
3,
1020,
1522,
50,
50
],
[
3,
658,
1545,
50,
50
],
[
3,
658,
1545,
50,
50
],
[
3,
1311,
1560,
50,
50
],
[
3,
1311,
1560,
50,
50
],
[
3,
605,
1517,
50,
50
],
[
3,
605,
1517,
50,
50
],
[
3,
808,
1519,
50,
50
],
[
3,
808,
1519,
50,
50
],
[
3,
861,
1519,
50,
50
],
[
3,
711,
1564,
50,
50
],
[
3,
1364,
1564,
50,
50
],
[
3,
1364,
1564,
50,
50
],
[
3,
1417,
1564,
50,
50
],
[
3,
1470,
1564,
50,
50
],
[
3,
1383,
1429,
50,
50
],
[
3,
1383,
1429,
50,
50
],
[
3,
702,
1439,
50,
50
],
[
3,
702,
1439,
50,
50
],
[
3,
1077,
1444,
50,
50
],
[
3,
1077,
1444,
50,
50
],
[
3,
702,
1492,
50,
50
],
[
3,
702,
1492,
50,
50
],
[
3,
1311,
1507,
50,
50
],
[
3,
1311,
1507,
50,
50
],
[
3,
755,
1511,
50,
50
],
[
3,
755,
1511,
50,
50
],
[
3,
234,
1517,
50,
50
],
[
3,
1523,
1565,
50,
50
],
[
3,
1576,
1565,
50,
50
],
[
3,
1576,
1565,
50,
50
],
[
3,
1629,
1565,
50,
50
],
[
3,
1383,
1429,
50,
50
],
[
3,
702,
1439,
50,
50
],
[
3,
702,
1439,
50,
50
],
[
3,
1077,
1444,
50,
50
],
[
3,
1077,
1444,
50,
50
],
[
3,
702,
1492,
50,
50
],
[
3,
702,
1492,
50,
50
],
[
3,
1311,
1507,
50,
50
],
[
3,
1311,
1507,
50,
50
],
[
3,
755,
1511,
50,
50
],
[
3,
755,
1511,
50,
50
],
[
3,
234,
1517,
50,
50
],
[
3,
234,
1517,
50,
50
],
[
3,
287,
1517,
50,
50
],
[
3,
287,
1517,
50,
50
]
],
Vh = [
[7,
966,
0,
50,
50],
[
7,
966,
0,
50,
50
],
[
7,
966,
53,
50,
50
],
[
7,
966,
53,
50,
50
],
[
7,
966,
106,
50,
50
],
[
7,
966,
106,
50,
50
],
[
7,
966,
159,
50,
50
],
[
7,
966,
159,
50,
50
],
[
7,
702,
332,
50,
50
],
[
7,
702,
332,
50,
50
],
[
7,
755,
332,
50,
50
],
[
7,
755,
332,
50,
50
],
[
7,
808,
332,
50,
50
],
[
7,
808,
332,
50,
50
],
[
7,
861,
332,
50,
50
],
[
7,
861,
332,
50,
50
],
[
7,
914,
332,
50,
50
],
[
7,
914,
332,
50,
50
],
[
7,
967,
332,
50,
50
],
[
7,
78,
349,
50,
50
],
[
7,
966,
106,
50,
50
],
[
7,
966,
106,
50,
50
],
[
7,
966,
159,
50,
50
],
[
7,
966,
159,
50,
50
],
[
7,
702,
332,
50,
50
],
[
7,
702,
332,
50,
50
],
[
7,
755,
332,
50,
50
],
[
7,
755,
332,
50,
50
],
[
7,
808,
332,
50,
50
],
[
7,
808,
332,
50,
50
],
[
7,
861,
332,
50,
50
],
[
7,
861,
332,
50,
50
],
[
7,
966,
0,
50,
50
],
[
7,
966,
0,
50,
50
],
[
7,
966,
53,
50,
50
],
[
7,
966,
53,
50,
50
],
[
7,
966,
106,
50,
50
],
[
7,
966,
106,
50,
50
],
[
7,
966,
159,
50,
50
],
[
7,
966,
159,
50,
50
],
[
7,
702,
332,
50,
50
],
[
7,
702,
332,
50,
50
],
[
7,
755,
332,
50,
50
],
[
7,
755,
332,
50,
50
],
[
7,
808,
332,
50,
50
],
[
7,
808,
332,
50,
50
],
[
7,
861,
332,
50,
50
],
[
7,
861,
332,
50,
50
],
[
7,
966,
0,
50,
50
],
[
7,
966,
0,
50,
50
],
[
7,
966,
53,
50,
50
],
[
7,
966,
53,
50,
50
],
[
7,
966,
106,
50,
50
],
[
7,
966,
106,
50,
50
],
[
7,
966,
159,
50,
50
],
[
7,
966,
159,
50,
50
],
[
7,
702,
332,
50,
50
],
[
7,
702,
332,
50,
50
],
[
7,
755,
332,
50,
50
],
[
7,
755,
332,
50,
50
],
[
7,
808,
332,
50,
50
],
[
7,
808,
332,
50,
50
],
[
7,
861,
332,
50,
50
],
[
7,
861,
332,
50,
50
],
[
7,
966,
0,
50,
50
],
[
7,
966,
0,
50,
50
],
[
7,
966,
53,
50,
50
],
[
7,
966,
53,
50,
50
],
[
7,
966,
106,
50,
50
],
[
7,
966,
106,
50,
50
],
[
7,
966,
159,
50,
50
],
[
7,
966,
159,
50,
50
],
[
7,
702,
332,
50,
50
],
[
7,
702,
332,
50,
50
],
[
7,
755,
332,
50,
50
],
[
7,
755,
332,
50,
50
],
[
7,
808,
332,
50,
50
],
[
7,
808,
332,
50,
50
],
[
7,
861,
332,
50,
50
],
[
7,
861,
332,
50,
50
]
],
Wh = [
[0,
1067,
0,
314,
268],
[
0,
1384,
0,
314,
268
],
[
0,
1384,
0,
314,
268
],
[
0,
1701,
0,
314,
268
],
[
0,
0,
144,
314,
268
],
[
0,
317,
144,
314,
268
],
[
0,
317,
144,
314,
268
],
[
0,
634,
235,
314,
268
]
],
Xh = [
[0,
2018,
0,
24,
31],
[
0,
2018,
0,
24,
31
],
[
0,
2018,
34,
24,
31
],
[
0,
2018,
34,
24,
31
],
[
0,
2018,
68,
24,
31
],
[
0,
2018,
68,
24,
31
],
[
0,
2018,
102,
24,
31
],
[
0,
2018,
102,
24,
31
],
[
0,
2018,
136,
24,
31
],
[
0,
2018,
136,
24,
31
]
],
Yh = [
[7,
186,
0,
75,
80],
[
7,
186,
0,
75,
80
],
[
7,
264,
0,
75,
80
],
[
7,
342,
0,
75,
80
],
[
7,
420,
0,
75,
80
],
[
7,
498,
0,
75,
80
],
[
7,
576,
0,
75,
80
],
[
7,
654,
0,
75,
80
],
[
7,
732,
0,
75,
80
],
[
7,
810,
0,
75,
80
],
[
7,
810,
0,
75,
80
],
[
7,
888,
0,
75,
80
],
[
7,
186,
83,
75,
80
],
[
7,
186,
83,
75,
80
],
[
7,
264,
83,
75,
80
],
[
7,
342,
83,
75,
80
],
[
7,
420,
83,
75,
80
],
[
7,
498,
83,
75,
80
],
[
7,
576,
83,
75,
80
],
[
7,
654,
83,
75,
80
],
[
7,
732,
83,
75,
80
],
[
7,
810,
83,
75,
80
],
[
7,
888,
83,
75,
80
],
[
7,
888,
83,
75,
80
],
[
7,
186,
0,
75,
80
],
[
7,
186,
0,
75,
80
],
[
7,
186,
0,
75,
80
],
[
7,
342,
0,
75,
80
],
[
7,
93,
100,
75,
80
],
[
7,
0,
101,
75,
80
],
[
7,
171,
166,
75,
80
],
[
7,
249,
166,
75,
80
],
[
7,
327,
166,
75,
80
],
[
7,
405,
166,
75,
80
],
[
7,
483,
166,
75,
80
],
[
7,
561,
166,
75,
80
],
[
7,
888,
0,
75,
80
],
[
7,
810,
0,
75,
80
],
[
7,
186,
83,
75,
80
],
[
7,
264,
83,
75,
80
],
[
7,
639,
166,
75,
80
],
[
7,
420,
83,
75,
80
],
[
7,
498,
83,
75,
80
],
[
7,
717,
166,
75,
80
],
[
7,
654,
83,
75,
80
],
[
7,
732,
83,
75,
80
],
[
7,
795,
166,
75,
80
],
[
7,
888,
83,
75,
80
],
[
7,
888,
83,
75,
80
],
[
7,
888,
83,
75,
80
]
],
Zh = [
[7,
873,
166,
75,
80],
[
7,
78,
183,
75,
80
],
[
7,
0,
184,
75,
80
],
[
7,
156,
249,
75,
80
],
[
7,
234,
249,
75,
80
],
[
7,
312,
249,
75,
80
],
[
7,
390,
249,
75,
80
],
[
7,
468,
249,
75,
80
],
[
7,
546,
249,
75,
80
],
[
7,
624,
249,
75,
80
],
[
7,
702,
249,
75,
80
],
[
7,
780,
249,
75,
80
],
[
7,
858,
249,
75,
80
],
[
7,
936,
249,
75,
80
],
[
7,
78,
266,
75,
80
],
[
7,
0,
267,
75,
80
]
],
$h = [
[7,
156,
332,
75,
80],
[
7,
234,
332,
75,
80
],
[
7,
312,
332,
75,
80
],
[
7,
312,
332,
75,
80
],
[
7,
390,
332,
75,
80
],
[
7,
390,
332,
75,
80
],
[
7,
468,
332,
75,
80
],
[
7,
468,
332,
75,
80
],
[
7,
546,
332,
75,
80
],
[
7,
546,
332,
75,
80
],
[
7,
546,
332,
75,
80
],
[
7,
624,
332,
75,
80
],
[
7,
624,
332,
75,
80
],
[
7,
624,
332,
75,
80
]
],
ai = [
[0,
951,
391,
150,
150],
[
0,
951,
391,
150,
150
],
[
0,
951,
391,
150,
150
],
[
0,
1104,
391,
150,
150
],
[
0,
1104,
391,
150,
150
],
[
0,
1104,
391,
150,
150
],
[
0,
0,
415,
150,
150
],
[
0,
0,
415,
150,
150
],
[
0,
0,
415,
150,
150
],
[
0,
153,
415,
150,
150
],
[
0,
153,
415,
150,
150
],
[
0,
153,
415,
150,
150
]
];
function bi(a) {
a && 'function' == typeof a.dispose && a.dispose()
};
function ci() {
this.wa = this.wa;
this.va = this.va
}
ci.prototype.wa = !1;
ci.prototype.dispose = function () {
this.wa || (this.wa = !0, this.ub())
};
function di(a, b) {
a.wa ? b() : (a.va || (a.va = [
]), a.va.push(b))
}
ci.prototype.ub = function () {
if (this.va) for (; this.va.length; ) this.va.shift() ()
};
function ei(a, b) {
this.type = a;
this.i = this.target = b;
this.defaultPrevented = !1
}
ei.prototype.preventDefault = function () {
this.defaultPrevented = !0
};
var fi = function () {
if (!t.addEventListener || !Object.defineProperty) return !1;
var a = !1,
b = Object.defineProperty({
}, 'passive', {
get: function () {
a = !0
}
});
try {
t.addEventListener('test', () =>{
}, b),
t.removeEventListener('test', () =>{
}, b)
} catch (c) {
}
return a
}();
function gi(a, b) {
ei.call(this, a ? a.type : '');
this.relatedTarget = this.i = this.target = null;
this.button = this.screenY = this.screenX = this.clientY = this.clientX = this.offsetY = this.offsetX = 0;
this.key = '';
this.keyCode = 0;
this.metaKey = this.shiftKey = this.altKey = this.ctrlKey = !1;
this.state = null;
this.pointerId = 0;
this.pointerType = '';
this.g = null;
if (a) {
var c = this.type = a.type,
d = a.changedTouches && a.changedTouches.length ? a.changedTouches[0] : null;
this.target = a.target || a.srcElement;
this.i = b;
if (b = a.relatedTarget) {
if (Ya) {
a: {
try {
Wa(b.nodeName);
var e = !0;
break a
} catch (f) {
}
e = !1
}
e || (b = null)
}
} else 'mouseover' == c ? b = a.fromElement : 'mouseout' == c && (b = a.toElement);
this.relatedTarget = b;
d ? (this.clientX = void 0 !== d.clientX ? d.clientX : d.pageX, this.clientY = void 0 !== d.clientY ? d.clientY : d.pageY, this.screenX = d.screenX || 0, this.screenY = d.screenY || 0) : (this.offsetX = Za || void 0 !== a.offsetX ? a.offsetX : a.layerX, this.offsetY = Za || void 0 !== a.offsetY ? a.offsetY : a.layerY, this.clientX = void 0 !== a.clientX ? a.clientX : a.pageX, this.clientY = void 0 !== a.clientY ? a.clientY : a.pageY, this.screenX = a.screenX || 0, this.screenY = a.screenY || 0);
this.button = a.button;
this.keyCode = a.keyCode || 0;
this.key = a.key || '';
this.ctrlKey = a.ctrlKey;
this.altKey = a.altKey;
this.shiftKey = a.shiftKey;
this.metaKey = a.metaKey;
this.pointerId = a.pointerId || 0;
this.pointerType = 'string' === typeof a.pointerType ? a.pointerType : hi[a.pointerType] || '';
this.state = a.state;
this.g = a;
a.defaultPrevented && gi.Tb.preventDefault.call(this)
}
}
ta(gi, ei);
var hi = {
2: 'touch',
3: 'pen',
4: 'mouse'
};
gi.prototype.preventDefault = function () {
gi.Tb.preventDefault.call(this);
var a = this.g;
a.preventDefault ? a.preventDefault() : a.returnValue = !1
};
gi.prototype.j = function () {
return this.g
};
var ii = 'closure_listenable_' + (1000000 * Math.random() | 0);
var ji = 0;
function ki(a, b, c, d, e) {
this.listener = a;
this.proxy = null;
this.src = b;
this.type = c;
this.capture = !!d;
this.Jd = e;
this.key = ++ji;
this.nd = this.Fd = !1
}
function li(a) {
a.nd = !0;
a.listener = null;
a.proxy = null;
a.src = null;
a.Jd = null
};
function mi(a) {
this.src = a;
this.g = {
};
this.i = 0
}
mi.prototype.add = function (a, b, c, d, e) {
var f = a.toString();
a = this.g[f];
a || (a = this.g[f] = [
], this.i++);
var g = ni(a, b, d, e);
- 1 < g ? (b = a[g], c || (b.Fd = !1)) : (b = new ki(b, this.src, f, !!d, e), b.Fd = c, a.push(b));
return b
};
function oi(a, b) {
var c = b.type;
c in a.g && Ua(a.g[c], b) && (li(b), 0 == a.g[c].length && (delete a.g[c], a.i--))
}
function ni(a, b, c, d) {
for (var e = 0; e < a.length; ++e) {
var f = a[e];
if (!f.nd && f.listener == b && f.capture == !!c && f.Jd == d) return e
}
return - 1
};
var pi = 'closure_lm_' + (1000000 * Math.random() | 0),
qi = {
},
ri = 0;
function si(a, b, c, d, e) {
if (d && d.once) return ti(a, b, c, d, e);
if (Array.isArray(b)) {
for (var f = 0; f < b.length; f++) si(a, b[f], c, d, e);
return null
}
c = ui(c);
return a && a[ii] ? vi(a, b, c, ma(d) ? !!d.capture : !!d, e) : wi(a, b, c, !1, d, e)
}
function wi(a, b, c, d, e, f) {
if (!b) throw Error('F');
var g = ma(e) ? !!e.capture : !!e,
h = xi(a);
h || (a[pi] = h = new mi(a));
c = h.add(b, c, d, g, f);
if (c.proxy) return c;
d = yi();
c.proxy = d;
d.src = a;
d.listener = c;
if (a.addEventListener) fi || (e = g),
void 0 === e && (e = !1),
a.addEventListener(b.toString(), d, e);
else if (a.attachEvent) a.attachEvent(zi(b.toString()), d);
else if (a.addListener && a.removeListener) a.addListener(d);
else throw Error('G');
ri++;
return c
}
function yi() {
function a(c) {
return b.call(a.src, a.listener, c)
}
const b = Ai;
return a
}
function ti(a, b, c, d, e) {
if (Array.isArray(b)) {
for (var f = 0; f < b.length; f++) ti(a, b[f], c, d, e);
return null
}
c = ui(c);
return a && a[ii] ? a.j.add(String(b), c, !0, ma(d) ? !!d.capture : !!d, e) : wi(a, b, c, !0, d, e)
}
function Bi(a, b, c, d, e) {
if (Array.isArray(b)) for (var f = 0; f < b.length; f++) Bi(a, b[f], c, d, e);
else (d = ma(d) ? !!d.capture : !!d, c = ui(c), a && a[ii]) ? (a = a.j, b = String(b).toString(), b in a.g && (f = a.g[b], c = ni(f, c, d, e), - 1 < c && (li(f[c]), Array.prototype.splice.call(f, c, 1), 0 == f.length && (delete a.g[b], a.i--)))) : a && (a = xi(a)) && (b = a.g[b.toString()], a = - 1, b && (a = ni(b, c, d, e)), (c = - 1 < a ? b[a] : null) && Ci(c))
}
function Ci(a) {
if ('number' !== typeof a && a && !a.nd) {
var b = a.src;
if (b && b[ii]) oi(b.j, a);
else {
var c = a.type,
d = a.proxy;
b.removeEventListener ? b.removeEventListener(c, d, a.capture) : b.detachEvent ? b.detachEvent(zi(c), d) : b.addListener && b.removeListener && b.removeListener(d);
ri--;
(c = xi(b)) ? (oi(c, a), 0 == c.i && (c.src = null, b[pi] = null)) : li(a)
}
}
}
function zi(a) {
return a in qi ? qi[a] : qi[a] = 'on' + a
}
function Ai(a, b) {
if (a.nd) a = !0;
else {
b = new gi(b, this);
var c = a.listener,
d = a.Jd || a.src;
a.Fd && Ci(a);
a = c.call(d, b)
}
return a
}
function xi(a) {
a = a[pi];
return a instanceof mi ? a : null
}
var Di = '__closure_events_fn_' + (1000000000 * Math.random() >>> 0);
function ui(a) {
if ('function' === typeof a) return a;
a[Di] || (a[Di] = function (b) {
return a.handleEvent(b)
});
return a[Di]
};
function Ei() {
ci.call(this);
this.j = new mi(this);
this.Xa = this;
this.Da = null
}
ta(Ei, ci);
Ei.prototype[ii] = !0;
Ei.prototype.addEventListener = function (a, b, c, d) {
si(this, a, b, c, d)
};
Ei.prototype.removeEventListener = function (a, b, c, d) {
Bi(this, a, b, c, d)
};
Ei.prototype.dispatchEvent = function (a) {
var b,
c = this.Da;
if (c) for (b = [
]; c; c = c.Da) b.push(c);
c = this.Xa;
var d = a.type || a;
if ('string' === typeof a) a = new ei(a, c);
else if (a instanceof ei) a.target = a.target || c;
else {
var e = a;
a = new ei(d, c);
ge(a, e)
}
e = !0;
if (b) for (var f = b.length - 1; 0 <= f; f--) {
var g = a.i = b[f];
e = Fi(g, d, !0, a) && e
}
g = a.i = c;
e = Fi(g, d, !0, a) && e;
e = Fi(g, d, !1, a) && e;
if (b) for (f = 0; f < b.length; f++) g = a.i = b[f],
e = Fi(g, d, !1, a) && e;
return e
};
Ei.prototype.ub = function () {
Ei.Tb.ub.call(this);
Gi(this);
this.Da = null
};
function vi(a, b, c, d, e) {
return a.j.add(String(b), c, !1, d, e)
}
function Gi(a) {
if (a.j) {
a = a.j;
var b = 0,
c;
for (c in a.g) {
for (var d = a.g[c], e = 0; e < d.length; e++) ++b,
li(d[e]);
delete a.g[c];
a.i--
}
}
}
function Fi(a, b, c, d) {
b = a.j.g[String(b)];
if (!b) return !0;
b = b.concat();
for (var e = !0, f = 0; f < b.length; ++f) {
var g = b[f];
if (g && !g.nd && g.capture == c) {
var h = g.listener,
k = g.Jd || g.src;
g.Fd && oi(a.j, g);
e = !1 !== h.call(k, d) && e
}
}
return e && !d.defaultPrevented
};
function Hi() {
}
Hi.prototype.g = null;
Hi.prototype.getOptions = function () {
var a;
(a = this.g) || (a = {
}, Ii(this) && (a[0] = !0, a[1] = !0), a = this.g = a);
return a
};
var Ji;
function Ki() {
}
ta(Ki, Hi);
function Li(a) {
return (a = Ii(a)) ? new ActiveXObject(a) : new XMLHttpRequest
}
function Ii(a) {
if (!a.i && 'undefined' == typeof XMLHttpRequest && 'undefined' != typeof ActiveXObject) {
const b = [
'MSXML2.XMLHTTP.6.0',
'MSXML2.XMLHTTP.3.0',
'MSXML2.XMLHTTP',
'Microsoft.XMLHTTP'
];
for (let c = 0; c < b.length; c++) {
const d = b[c];
try {
return new ActiveXObject(d),
a.i = d
} catch (e) {
}
}
throw Error('H');
}
return a.i
}
Ji = new Ki;
function Mi(a, b) {
a.o(b);
100 > a.i && (a.i++, b.next = a.g, a.g = b)
}
class Ni {
constructor(a, b) {
this.j = a;
this.o = b;
this.i = 0;
this.g = null
}
get() {
let a;
0 < this.i ? (this.i--, a = this.g, this.g = a.next, a.next = null) : a = this.j();
return a
}
};
try {
(new self.OffscreenCanvas(0, 0)).getContext('2d')
} catch (a) {
};
function Oi(a, b, c) {
return Math.min(Math.max(a, b), c)
}
function Pi(a, b, c) {
return a + c * (b - a)
};
function P(a, b) {
this.x = void 0 !== a ? a : 0;
this.y = void 0 !== b ? b : 0
}
q = P.prototype;
q.clone = function () {
return new P(this.x, this.y)
};
q.ceil = function () {
this.x = Math.ceil(this.x);
this.y = Math.ceil(this.y);
return this
};
q.floor = function () {
this.x = Math.floor(this.x);
this.y = Math.floor(this.y);
return this
};
q.round = function () {
this.x = Math.round(this.x);
this.y = Math.round(this.y);
return this
};
q.scale = function (a, b) {
this.x *= a;
this.y *= 'number' === typeof b ? b : a;
return this
};
function Qi(a, b) {
this.width = a;
this.height = b
}
q = Qi.prototype;
q.clone = function () {
return new Qi(this.width, this.height)
};
q.aspectRatio = function () {
return this.width / this.height
};
q.isEmpty = function () {
return !(this.width * this.height)
};
q.ceil = function () {
this.width = Math.ceil(this.width);
this.height = Math.ceil(this.height);
return this
};
q.floor = function () {
this.width = Math.floor(this.width);
this.height = Math.floor(this.height);
return this
};
q.round = function () {
this.width = Math.round(this.width);
this.height = Math.round(this.height);
return this
};
q.scale = function (a, b) {
this.width *= a;
this.height *= 'number' === typeof b ? b : a;
return this
};
function Ri(a, b) {
ee(b, function (c, d) {
c && 'object' == typeof c && c.Nc && (c = c.Mc());
'style' == d ? a.style.cssText = c : 'class' == d ? a.className = c : 'for' == d ? a.htmlFor = c : Si.hasOwnProperty(d) ? a.setAttribute(Si[d], c) : 0 == d.lastIndexOf('aria-', 0) || 0 == d.lastIndexOf('data-', 0) ? a.setAttribute(d, c) : a[d] = c
})
}
var Si = {
cellpadding: 'cellPadding',
cellspacing: 'cellSpacing',
colspan: 'colSpan',
frameborder: 'frameBorder',
height: 'height',
maxlength: 'maxLength',
nonce: 'nonce',
role: 'role',
rowspan: 'rowSpan',
type: 'type',
usemap: 'useMap',
valign: 'vAlign',
width: 'width'
};
function Ti(a, b, c) {
function d(h) {
h && b.appendChild('string' === typeof h ? a.createTextNode(h) : h)
}
for (var e = 1; e < c.length; e++) {
var f = c[e];
if (!la(f) || ma(f) && 0 < f.nodeType) d(f);
else {
a: {
if (f && 'number' == typeof f.length) {
if (ma(f)) {
var g = 'function' == typeof f.item || 'string' == typeof f.item;
break a
}
if ('function' === typeof f) {
g = 'function' == typeof f.item;
break a
}
}
g = !1
}
Qa(g ? Va(f) : f, d)
}
}
}
function Ui(a, b) {
b = String(b);
'application/xhtml+xml' === a.contentType && (b = b.toLowerCase());
return a.createElement(b)
}
function Vi(a) {
this.g = a || t.document || document
}
q = Vi.prototype;
q.getElementsByTagName = function (a, b) {
return (b || this.g).getElementsByTagName(String(a))
};
q.createElement = function (a) {
return Ui(this.g, a)
};
q.createTextNode = function (a) {
return this.g.createTextNode(String(a))
};
q.append = function (a, b) {
Ti(9 == a.nodeType ? a : a.ownerDocument || a.document, a, arguments)
};
q.removeChildren = function (a) {
for (var b; b = a.firstChild; ) a.removeChild(b)
};
q.La = function () {
if (!a) return null;
if (a.firstChild) return a.firstChild;
for (; a && !a.nextSibling; ) var a = a.parentNode;
return a ? a.nextSibling : null
};
q.contains = function (a, b) {
if (!a || !b) return !1;
if (a.contains && 1 == b.nodeType) return a == b || a.contains(b);
if ('undefined' != typeof a.compareDocumentPosition) return a == b || !!(a.compareDocumentPosition(b) & 16);
for (; b && a != b; ) b = b.parentNode;
return b == a
};
var Wi;
function Xi() {
var a = t.MessageChannel;
'undefined' === typeof a && 'undefined' !== typeof window && window.postMessage && window.addEventListener && !Oa('Presto') && (a = function () {
var e = Ui(document, 'IFRAME');
e.style.display = 'none';
document.documentElement.appendChild(e);
var f = e.contentWindow;
e = f.document;
e.open();
e.close();
var g = 'callImmediate' + Math.random(),
h = 'file:' == f.location.protocol ? '*' : f.location.protocol + '//' + f.location.host;
e = qa(function (k) {
if (('*' == h || k.origin == h) && k.data == g) this.port1.onmessage()
}, this);
f.addEventListener('message', e, !1);
this.port1 = {
};
this.port2 = {
postMessage: function () {
f.postMessage(g, h)
}
}
});
if ('undefined' !== typeof a && !Oa('Trident') && !Oa('MSIE')) {
var b = new a,
c = {
},
d = c;
b.port1.onmessage = function () {
if (void 0 !== c.next) {
c = c.next;
var e = c.cb;
c.cb = null;
e()
}
};
return function (e) {
d.next = {
cb: e
};
d = d.next;
b.port2.postMessage(0)
}
}
return function (e) {
t.setTimeout(e, 0)
}
};
function Yi() {
var a = Zi;
let b = null;
a.g && (b = a.g, a.g = a.g.next, a.g || (a.i = null), b.next = null);
return b
}
class $i {
constructor() {
this.i = this.g = null
}
add(a, b) {
const c = aj.get();
c.set(a, b);
this.i ? this.i.next = c : this.g = c;
this.i = c
}
}
var aj = new Ni(() =>new bj, a=>a.reset());
class bj {
constructor() {
this.next = this.g = this.i = null
}
set(a, b) {
this.i = a;
this.g = b;
this.next = null
}
reset() {
this.next = this.g = this.i = null
}
};
let cj,
dj = !1,
Zi = new $i,
fj = (a, b) =>{
cj || ej();
dj || (cj(), dj = !0);
Zi.add(a, b)
},
ej = () =>{
if (t.Promise && t.Promise.resolve) {
const a = t.Promise.resolve(void 0);
cj = () =>{
a.then(gj)
}
} else cj = () =>{
var a = gj;
'function' !== typeof t.setImmediate || t.Window && t.Window.prototype && !Oa('Edge') && t.Window.prototype.setImmediate == t.setImmediate ? (Wi || (Wi = Xi()), Wi(a)) : t.setImmediate(a)
}
};
var gj = () =>{
let a;
for (; a = Yi(); ) {
try {
a.i.call(a.g)
} catch (b) {
Fa(b)
}
Mi(aj, a)
}
dj = !1
};
function hj(a) {
if (!a) return !1;
try {
return !!a.$goog_Thenable
} catch (b) {
return !1
}
};
function ij(a) {
this.g = 0;
this.H = void 0;
this.o = this.i = this.j = null;
this.u = this.v = !1;
if (a != de) try {
var b = this;
a.call(void 0, function (c) {
jj(b, 2, c)
}, function (c) {
jj(b, 3, c)
})
} catch (c) {
jj(this, 3, c)
}
}
function kj() {
this.next = this.context = this.i = this.j = this.g = null;
this.o = !1
}
kj.prototype.reset = function () {
this.context = this.i = this.j = this.g = null;
this.o = !1
};
var lj = new Ni(function () {
return new kj
}, function (a) {
a.reset()
});
function mj(a, b, c) {
var d = lj.get();
d.j = a;
d.i = b;
d.context = c;
return d
}
ij.prototype.then = function (a, b, c) {
return nj(this, 'function' === typeof a ? a : null, 'function' === typeof b ? b : null, c)
};
ij.prototype.$goog_Thenable = !0;
ij.prototype.cancel = function (a) {
if (0 == this.g) {
var b = new oj(a);
fj(function () {
pj(this, b)
}, this)
}
};
function pj(a, b) {
if (0 == a.g) if (a.j) {
var c = a.j;
if (c.i) {
for (var d = 0, e = null, f = null, g = c.i; g && (g.o || (d++, g.g == a && (e = g), !(e && 1 < d))); g = g.next) e || (f = g);
e && (0 == c.g && 1 == d ? pj(c, b) : (f ? (d = f, d.next == c.o && (c.o = d), d.next = d.next.next) : qj(c), rj(c, e, 3, b)))
}
a.j = null
} else jj(a, 3, b)
}
function sj(a, b) {
a.i || 2 != a.g && 3 != a.g || tj(a);
a.o ? a.o.next = b : a.i = b;
a.o = b
}
function nj(a, b, c, d) {
var e = mj(null, null, null);
e.g = new ij(function (f, g) {
e.j = b ? function (h) {
try {
var k = b.call(d, h);
f(k)
} catch (l) {
g(l)
}
}
: f;
e.i = c ? function (h) {
try {
var k = c.call(d, h);
void 0 === k && h instanceof oj ? g(h) : f(k)
} catch (l) {
g(l)
}
}
: g
});
e.g.j = a;
sj(a, e);
return e.g
}
ij.prototype.V = function (a) {
this.g = 0;
jj(this, 2, a)
};
ij.prototype.va = function (a) {
this.g = 0;
jj(this, 3, a)
};
function jj(a, b, c) {
if (0 == a.g) {
a === c && (b = 3, c = new TypeError('I'));
a.g = 1;
a: {
var d = c,
e = a.V,
f = a.va;
if (d instanceof ij) {
sj(d, mj(e || de, f || null, a));
var g = !0
} else if (hj(d)) d.then(e, f, a),
g = !0;
else {
if (ma(d)) try {
var h = d.then;
if ('function' === typeof h) {
uj(d, h, e, f, a);
g = !0;
break a
}
} catch (k) {
f.call(a, k);
g = !0;
break a
}
g = !1
}
}
g || (a.H = c, a.g = b, a.j = null, tj(a), 3 != b || c instanceof oj || vj(a, c))
}
}
function uj(a, b, c, d, e) {
function f(k) {
h || (h = !0, d.call(e, k))
}
function g(k) {
h || (h = !0, c.call(e, k))
}
var h = !1;
try {
b.call(a, g, f)
} catch (k) {
f(k)
}
}
function tj(a) {
a.v || (a.v = !0, fj(a.O, a))
}
function qj(a) {
var b = null;
a.i && (b = a.i, a.i = b.next, b.next = null);
a.i || (a.o = null);
return b
}
ij.prototype.O = function () {
for (var a; a = qj(this); ) rj(this, a, this.g, this.H);
this.v = !1
};
function rj(a, b, c, d) {
if (3 == c && b.i && !b.o) for (; a && a.u; a = a.j) a.u = !1;
if (b.g) b.g.j = null,
wj(b, c, d);
else try {
b.o ? b.j.call(b.context) : wj(b, c, d)
} catch (e) {
xj.call(null, e)
}
Mi(lj, b)
}
function wj(a, b, c) {
2 == b ? a.j.call(a.context, c) : a.i && a.i.call(a.context, c)
}
function vj(a, b) {
a.u = !0;
fj(function () {
a.u && xj.call(null, b)
})
}
var xj = Fa;
function oj(a) {
va.call(this, a)
}
ta(oj, va);
oj.prototype.name = 'cancel';
function yj(a, b, c) {
if ('function' === typeof a) c && (a = qa(a, c));
else if (a && 'function' == typeof a.handleEvent) a = qa(a.handleEvent, a);
else throw Error('J');
return 2147483647 < Number(b) ? - 1 : t.setTimeout(a, b || 0)
};
function zj(a) {
Ei.call(this);
this.headers = new Map;
this.O = a || null;
this.i = !1;
this.H = this.g = null;
this.Ba = '';
this.o = this.ya = this.u = this.V = !1;
this.Oa = 0;
this.v = null;
this.Fa = '';
this.Na = this.Qa = !1
}
ta(zj, Ei);
var Aj = /^https?$/i,
Bj = [
'POST',
'PUT'
];
function Cj(a, b) {
if (a.g) throw Error('K`' + a.Ba + '`' + b);
a.Ba = b;
a.V = !1;
a.i = !0;
a.g = a.O ? Li(a.O) : Li(Ji);
a.H = a.O ? a.O.getOptions() : Ji.getOptions();
a.g.onreadystatechange = qa(a.mf, a);
try {
a.ya = !0,
a.g.open('GET', String(b), !0),
a.ya = !1
} catch (e) {
Dj(a);
return
}
b = new Map(a.headers);
const c = Array.from(b.keys()).find(e=>'content-type' == e.toLowerCase()),
d = t.FormData && !1;
!(0 <= Pa(Bj, 'GET')) || c || d || b.set('Content-Type', 'application/x-www-form-urlencoded;charset=utf-8');
for (const [e,
f]of b) a.g.setRequestHeader(e, f);
a.Fa && (a.g.responseType = a.Fa);
'withCredentials' in a.g && a.g.withCredentials !== a.Qa && (a.g.withCredentials = a.Qa);
try {
Ej(a),
0 < a.Oa && (a.Na = Fj(a.g), a.Na ? (a.g.timeout = a.Oa, a.g.ontimeout = qa(a.xd, a)) : a.v = yj(a.xd, a.Oa, a)),
a.u = !0,
a.g.send(''),
a.u = !1
} catch (e) {
Dj(a)
}
}
function Fj(a) {
return Xa && 'number' === typeof a.timeout && void 0 !== a.ontimeout
}
q = zj.prototype;
q.xd = function () {
'undefined' != typeof ha && this.g && (this.dispatchEvent('timeout'), this.abort(8))
};
function Dj(a) {
a.i = !1;
a.g && (a.o = !0, a.g.abort(), a.o = !1);
Gj(a);
Hj(a)
}
function Gj(a) {
a.V || (a.V = !0, a.dispatchEvent('complete'), a.dispatchEvent('error'))
}
q.abort = function () {
this.g && this.i && (this.i = !1, this.o = !0, this.g.abort(), this.o = !1, this.dispatchEvent('complete'), this.dispatchEvent('abort'), Hj(this))
};
q.ub = function () {
this.g && (this.i && (this.i = !1, this.o = !0, this.g.abort(), this.o = !1), Hj(this, !0));
zj.Tb.ub.call(this)
};
q.mf = function () {
this.wa || (this.ya || this.u || this.o ? Ij(this) : this.Zf())
};
q.Zf = function () {
Ij(this)
};
function Ij(a) {
if (a.i && 'undefined' != typeof ha && (!a.H[1] || 4 != (a.g ? a.g.readyState : 0) || 2 != Jj(a))) if (a.u && 4 == (a.g ? a.g.readyState : 0)) yj(a.mf, 0, a);
else if (a.dispatchEvent('readystatechange'), 4 == (a.g ? a.g.readyState : 0)) {
a.i = !1;
try {
const f = Jj(a);
a: switch (f) {
case 200:
case 201:
case 202:
case 204:
case 206:
case 304:
case 1223:
var b = !0;
break a;
default:
b = !1
}
var c;
if (!(c = b)) {
var d;
if (d = 0 === f) {
var e = String(a.Ba).match(Qe) [1] || null;
!e && t.self && t.self.location && (e = t.self.location.protocol.slice(0, - 1));
d = !Aj.test(e ? e.toLowerCase() :
'')
}
c = d
}
c ? (a.dispatchEvent('complete'), a.dispatchEvent('success')) : Gj(a)
} finally {
Hj(a)
}
}
}
function Hj(a, b) {
if (a.g) {
Ej(a);
const c = a.g,
d = a.H[0] ? () =>{
}
: null;
a.g = null;
a.H = null;
b || a.dispatchEvent('ready');
try {
c.onreadystatechange = d
} catch (e) {
}
}
}
function Ej(a) {
a.g && a.Na && (a.g.ontimeout = null);
a.v && (t.clearTimeout(a.v), a.v = null)
}
q.isActive = function () {
return !!this.g
};
function Jj(a) {
try {
return 2 < (a.g ? a.g.readyState : 0) ? a.g.status : - 1
} catch (b) {
return - 1
}
};
function Kj(a) {
if (a.g && 'running' == a.g.state && !a.H) {
a.H = !0;
for (let b = 0; b < a.O.length; b++) a.O[b]()
}
}
function Lj(a) {
a.g && (null == a.i ? Mj(a) : void 0 === a.i.playbackState ? Mj(a) : a.i.playbackState !== a.i.PLAYING_STATE && a.i.playbackState !== a.i.FINISHED_STATE && Mj(a))
}
function Nj(a, b) {
if (Oj && !a.g) {
a.g = new (window.AudioContext || window.webkitAudioContext);
a.v = a.g.createGain();
a.v.connect(a.g.destination);
for (let c in a.u) a.u[c].j = a.g;
for (let c in a.j) Pj(a.j[c], a.g, a.v);
a.g.onstatechange = () =>{
Kj(a)
};
Kj(a);
Lj(a);
ti(b, 'click pointerup mousedown mouseup touchstart touchend'.split(' '), () =>{
a.g && (a.g.resume(), Lj(a))
}, !0)
}
}
function Mj(a) {
if (a.g) {
a.i = a.g.createBufferSource();
var b = a.g.createBuffer(1, 1, 22050);
a.i.buffer = b;
a.i.connect(a.g.destination);
a.i.start(0);
for (const c of a.V) c()
}
}
function Qj() {
var a = Rj;
!a.o && a.g && a.g.suspend();
a.o = !0
}
class Sj {
constructor() {
var a = Q;
this.u = R;
this.j = a;
this.g = null;
this.V = [
];
this.v = null;
this.H = this.o = !1;
this.O = [
];
this.i = null
}
getContext() {
return this.g
}
destroy() {
this.g && (this.g.close(), this.g = null)
}
reset() {
for (let a in this.u) this.u[a].i = [
];
for (let a in this.j) this.j[a].stop()
}
isMuted() {
return !1
}
}
var Oj = !(!window.AudioContext && !window.webkitAudioContext) && !!window.GainNode;
function Pj(a, b, c) {
a.g = b;
a.u = c
}
function Tj(a) {
if (a.g) for (const c in a.j) {
var b = a.j[c];
!b.Qf && null !== a.g && 1000 * a.g.currentTime > b.qf + a.v && delete a.j[c]
}
}
function Uj(a) {
!a.i && a.g && a.g.createGain && (a.i = a.g.createGain())
}
function Vj(a, b) {
Uj(a);
a.i && a.g && a.i.gain.setValueAtTime(b, a.g.currentTime)
}
var Wj = class {
constructor(a, b, c, d) {
this.H = a;
this.O = b;
this.v = c;
this.V = d;
this.j = {
};
this.o = this.u = this.g = this.i = null;
this.va = 0
}
clone() {
const a = new Wj(this.H, this.O, this.v, this.V);
Pj(a, this.g, this.u);
return a
}
getContext() {
return this.g
}
play(a = 0, b = !1, c = 0, d, e = 0, f) {
if (!this.g || !this.u) return - 1;
Tj(this);
f = void 0 === f ? this.g.currentTime + a / 1000 : f;
d || (d = this.g.createBufferSource(), d.playbackRate.setValueAtTime(1, this.g.currentTime));
Uj(this);
this.o && d.connect(this.o);
this.i ? (this.o ? this.o.connect(this.i) : d.connect(this.i), this.i.connect(this.u)) : this.o ? this.o.connect(this.u) : d.connect(this.u);
this.o = null;
d.loop = b;
try {
d.buffer = this.H.buffer
} catch (h) {
return - 1
}
a = this.O / 1000;
const g = this.v / 1000 / d.playbackRate.value;
b ? (d.loopStart = a + (e ? e / 1000 : c / 1000), d.loopEnd = a + g, d.start(f, a + c / 1000)) : d.start(f, a + c / 1000, g);
e = this.va++;
this.j[e] = {
node: d,
qf: 1000 * f - c,
Qf: b
};
return e
}
stop(a) {
Tj(this);
if (void 0 !== a && this.g) {
if (this.j[a]) {
try {
this.j[a].node.stop(0)
} catch (c) {
}
var b = (1000 * this.g.currentTime - this.j[a].qf) % this.v;
delete this.j[a];
return [b]
}
return []
}
a = [
];
for (b in this.j) a = a.concat(this.stop(b));
return a
}
};
const Xj = document.createElement('audio');
var Yj = 'function' === typeof Xj.canPlayType && '' != Xj.canPlayType('audio/mpeg') ? '.mp3' : '.ogg',
Zj = class extends Gg {
constructor(a) {
super ('/logos/2021/halloween21/r1030_5e329/' + a + Yj);
this.j = this.buffer = null;
this.u = 0
}
preload(a, b) {
const c = new Promise(e=>{
Fg(this, e)
});
a && Fg(this, a);
if (0 != this.u) return Promise.resolve();
if (!this.j) return Promise.reject(Error('M'));
const d = new XMLHttpRequest;
d.open('GET', this.o, !0);
d.responseType = 'arraybuffer';
d.onload = () =>{
const e = f=>{
f && (this.buffer = f, this.u = 3, Eg(this))
};
this.j && this.j.decodeAudioData(d.response, e);
this.u = 2
};
b && (d.onprogress = e=>{
e.lengthComputable && b && b(e.loaded / e.total)
});
d.send();
this.u = 1;
return c
}
};
class ak extends Sj {
}
var R = {
};
R.Ub = new Zj('sfx');
R.Dd = new Zj('tutorial');
R.Cd = new Zj('lobby');
R.he = new Zj('outside');
R.Ad = new Zj('hurry_up');
R.Uc = new Zj('postgame');
var Q = {
};
Q.vf = new Wj(R.Ub, 0, 1541.156005859375, 0.1589999943971634);
Q.wf = new Wj(R.Ub, 2541.156005859375, 1810.4310302734375, 0.11299999803304672);
Q.xf = new Wj(R.Ub, 5351.5869140625, 559.7730102539062, 0.2720000147819519);
Q.Ad = new Wj(R.Ad, 0, 26250, 0);
Q.zf = new Wj(R.Ub, 6911.36083984375, 11390.8388671875, 51.74599838256836);
Q.Cd = new Wj(R.Cd, 0, 17142.853515625, 0);
Q.Af = new Wj(R.Uc, 0, 16666.66796875, 0);
Q.Bf = new Wj(R.Uc, 17666.66796875, 5454.5419921875, 0);
Q.he = new Wj(R.he, 0, 38540.14453125, 0);
Q.le = new Wj(R.Ub, 19302.19921875, 1316.009033203125, 0.9300000071525574);
Q.Cf = new Wj(R.Ub, 21618.208984375, 1156.43994140625, 25.19300079345703);
Q.Me = new Wj(R.Ub, 23774.6484375, 3412.2900390625, 0.6579999923706055);
Q.Df = new Wj(R.Ub, 28186.939453125, 1699.2969970703125, 2.8570001125335693);
Q.Ef = new Wj(R.Ub, 30886.236328125, 1830.4539794921875, 0.9520000219345093);
Q.Ff = new Wj(R.Ub, 33716.6875, 1841.905029296875, 0.8389999866485596);
Q.Gf = new Wj(R.Ub, 36558.59375, 4530.68017578125, 1.7910000085830688);
Q.Dd = new Wj(R.Dd, 0, 40615.375, 0);
Q.Hf = new Wj(R.Uc, 24121.20703125, 16000, 0);
Q.If = new Wj(R.Uc, 41121.20703125, 5818.18701171875, 0);
ja(ak);
var bk = 'en af am ar az be bg bn bs ca cs da de el en-GB-uk es es-419 et eu fa fi fr fr-ca gl gu hi hr hu hy id is it iw ja ka kk km kn ko ky lo lt lv mk ml mn mr ms my ne nl no pa pl pt-BR pt-PT ro ru si-lk sk sl sq sr sv sw ta te th tr uk ur uz vi zh-CN zh-HK zh-TW zu crs'.split(' ');
var ck = () =>{
if (xf()) throw Error('N');
return yf() || !!document.getElementById('fkbx') || vf() || uf()
},
dk = () =>{
if (xf()) throw Error('N');
return wf() || uf() || I() && !qf()
},
ek = () =>xf() ? '1' === pf.g.get('ccta') : wf() && !(document.getElementById('fkbx') || vf()) || uf() && I() && !yf(),
fk = () =>{
const a = !I() && yf() && 600 >= window.innerHeight;
return !zf && (yf() || a) && !uf()
};
const gk = [
5,
6,
7,
8,
9,
11,
12,
16
];
let hk = 0,
ik = !1,
jk = {
},
kk = [
];
var S = a=>{
var b = Date.now();
0 == a && (hk = b);
jk.e = a;
jk.t = 0 == hk ? - 1 : Math.floor(b - hk);
jk.l = 'sdoodles' === document.documentElement.id ? 0 : 1;
b = [
];
for (var c in jk) jk.hasOwnProperty(c) && b.push(c + ':' + jk[c]);
c = b.join(',');
b = 10 == a;
var d = 0 <= gk.indexOf(a);
(document.getElementById('fkbx') || vf()) && (c += '&ntp=1');
b ? (b = sg()) && (c += `&ved=${ b }`) : d && (pg || ((b = document.getElementById('hplogoshareved')) ? pg = b.getAttribute('data-ved') : xf() && nf(pf.g, 'sved') && (pg = pf.g.get('sved'))), (b = pg) && (c += `&ved=${ b }`));
- 1 == c.search('&ei=') && (c +=
'&ei=', (b = rg()) && (c += b));
for (window.google && window.google.log ? window.google.log('doodle', c) : Cf(c); 0 < kk.length; ) delete jk[kk.pop()];
ik || 0 != a || ek() || (ik = !0, S(10))
};
var nk = () =>{
var a = jg() || !1;
jk.d = hg;
!ik && ek() && (ik = !0, S(10));
a && lk('d1', 1);
mk(1)
},
mk = a=>{
jk.c = a;
S(1);
switch (a) {
case 12:
S(0);
break;
case 16:
S(2)
}
};
const ok = (new Map).set(PIXI.RENDERER_TYPE.UNKNOWN, 'UNKNOWN').set(PIXI.RENDERER_TYPE.WEBGL, 'WEBGL').set(PIXI.RENDERER_TYPE.CANVAS, 'CANVAS'),
pk = (new Map).set(0, 'UNDEFINED_CLIENT_TYPE').set(1, 'PUBLIC').set(2, 'PRIVATE_CLIENT').set(3, 'PRIVATE_HOST'),
lk = (a, b) =>{
jk[a] = b;
switch (a) {
case 'd2':
ok.get(b);
break;
case 'd3':
pk.get(b)
}
};
var qk = a=>{
void 0 === a ? delete jk.d4 : lk('d4', a)
};
var rk = a=>a.split('').reduce((b, c) =>(b << 5) - b + c.charCodeAt(0) | 0, 0);
var tk = a=>{
var b = [
Cg
];
let c,
d;
new Promise((e, f) =>{
c = e;
d = f
});
if (window.WebFontConfig && b) for (const e of b) sk(e) && a && a(e, '');
else sa('WebFontConfig.active', c),
sa('WebFontConfig.inactive', d),
sa('WebFontConfig.timeout', 60000),
sa('WebFontConfig.google.families', b),
a && sa('WebFontConfig.fontactive', a),
a = Ui(document, 'SCRIPT'),
Ff(a, te(me(new je(ke, '//ajax.googleapis.com/ajax/libs/webfont/1/webfont.js')))),
a.type = 'text/javascript',
a.async = !0,
(document.getElementById('xjsc') || document.body).appendChild(a)
},
sk = a=>{
a = a.toLowerCase().replace(/ /g, '');
const b = document.documentElement.classList;
for (const c of b.values()) if (c.search(`wf-${ a }-w+-active`)) return !0;
return !1
};
var uk = {
ad: [
'ca'
],
ae: [
'ar',
'en',
'fa',
'hi',
'ur'
],
af: [
'ps',
'fa'
],
ag: [
'en'
],
ai: [
'en'
],
al: [
'sq',
'en'
],
am: [
'hy',
'ru'
],
ao: [
'pt-PT'
],
ar: [
'es-419',
'es'
],
as: [
'en'
],
at: [
'de'
],
au: [
'en'
],
az: [
'az',
'ru'
],
ba: [
'bs',
'hr',
'sr'
],
bd: [
'bn',
'en'
],
be: [
'nl',
'de',
'en',
'fr'
],
bf: [
'fr'
],
bg: [
'bg'
],
bh: [
'ar',
'en'
],
bi: [
'fr'
],
bj: [
'fr'
],
bn: [
'ms',
'en',
'zh-CN'
],
bo: [
'es-419',
'es'
],
br: [
'pt-BR',
'en'
],
bs: [
'en'
],
bt: [
'en'
],
bw: [
'tn',
'en'
],
by: [
'be',
'ru'
],
bz: [
'en',
'es',
'es-419'
],
ca: [
'en',
'fr',
'fr-CA'
],
cd: [
'fr',
'sw'
],
cf: [
'fr'
],
cg: [
'fr'
],
ch: [
'de',
'en',
'fr',
'it'
],
ci: [
'fr'
],
ck: [
'en'
],
cl: [
'es-419',
'es'
],
cm: [
'fr',
'en'
],
cn: [
'zh-CN'
],
co: [
'es-419',
'es'
],
cr: [
'es-419',
'en',
'es'
],
cu: [
'es-419',
'es'
],
cv: [
'pt-PT'
],
cy: [
'en',
'el',
'tr'
],
cz: [
'cs'
],
de: [
'de',
'en',
'fr'
],
dj: [
'fr',
'ar',
'so'
],
dk: [
'da'
],
dm: [
'en'
],
'do': [
'es-419',
'es'
],
dz: [
'fr',
'ar'
],
ec: [
'es-419',
'es'
],
ee: [
'et',
'ru'
],
eg: [
'ar',
'en'
],
es: [
'es',
'ca',
'en',
'eu',
'gl'
],
et: [
'am',
'en',
'so'
],
fi: [
'fi',
'sv'
],
fj: [
'en'
],
fr: [
'fr'
],
ga: [
'fr'
],
ge: [
'ka',
'en'
],
gg: [
'en',
'fr'
],
gh: [
'en'
],
gi: [
'en',
'es',
'it',
'pt-PT'
],
gl: [
'da',
'en'
],
gm: [
'en',
'wo'
],
gr: [
'el'
],
gt: [
'es-419',
'es'
],
gy: [
'en'
],
hk: [
'zh-TW',
'en',
'zh-CN',
'zh-HK'
],
hn: [
'es-419',
'es'
],
hr: [
'hr'
],
ht: [
'fr',
'en',
'ht'
],
hu: [
'hu'
],
id: [
'id',
'en',
'nl'
],
ie: [
'en-GB',
'ga'
],
il: [
'iw',
'ar',
'en'
],
im: [
'en'
],
'in': 'en bn gu hi kn ml mr ne or pa ta te'.split(' '),
iq: [
'ar',
'en'
],
is: [
'is',
'en'
],
it: [
'it',
'en'
],
je: [
'en',
'fr'
],
jm: [
'en'
],
jo: [
'ar',
'en'
],
jp: [
'ja'
],
ke: [
'sw',
'en'
],
kg: [
'ky',
'ru'
],
kh: [
'km',
'en'
],
ki: [
'en'
],
kr: [
'ko'
],
kw: [
'ar',
'en'
],
kz: [
'kk',
'ru'
],
la: [
'lo',
'en'
],
lb: [
'ar',
'en',
'fr',
'hy'
],
lk: [
'en',
'si',
'ta'
],
ls: [
'st',
'en',
'zu'
],
lt: [
'lt'
],
lu: [
'de',
'fr'
],
lv: [
'lv',
'lt',
'ru'
],
ly: [
'ar',
'en',
'it'
],
ma: [
'fr',
'ar'
],
md: [
'ro',
'ro-MD',
'ru'
],
me: [
'sr-ME',
'bs',
'sr'
],
mg: [
'mg',
'fr'
],
mk: [
'mk'
],
ml: [
'fr'
],
mm: [
'my',
'en'
],
mn: [
'mn'
],
mt: [
'mt',
'en'
],
mu: [
'en',
'fr'
],
mv: [
'en'
],
mw: [
'ny',
'en'
],
mx: [
'es-419',
'es'
],
my: [
'en',
'ms'
],
mz: [
'pt-PT',
'ny',
'sn',
'sw'
],
na: [
'en',
'af',
'de'
],
ne: [
'fr'
],
ng: [
'en'
],
ni: [
'es-419',
'en',
'es'
],
nl: [
'nl',
'en'
],
no: [
'no',
'nn'
],
np: [
'ne',
'en'
],
nr: [
'en'
],
nu: [
'en'
],
nz: [
'en-GB'
],
om: [
'ar',
'en'
],
pa: [
'es-419',
'en',
'es'
],
pe: [
'es-419',
'es'
],
pg: [
'en'
],
ph: [
'en'
],
pk: [
'en',
'pa',
'ur'
],
pl: [
'pl'
],
pn: [
'en'
],
pr: [
'es-419',
'en',
'es'
],
ps: [
'ar',
'en'
],
pt: [
'pt-PT'
],
py: [
'es-419',
'es'
],
qa: [
'ar',
'en'
],
ro: [
'ro',
'de',
'hu'
],
rs: [
'sr',
'sr-Latn'
],
ru: [
'ru'
],
rw: [
'en',
'fr',
'sw'
],
sa: [
'ar',
'en'
],
sb: [
'en'
],
sc: [
'crs',
'en',
'fr'
],
se: [
'sv'
],
sg: [
'en',
'ms',
'ta',
'zh-CN'
],
si: [
'sl'
],
sk: [
'sk',
'hu'
],
sl: [
'en'
],
sm: [
'it'
],
sn: [
'fr',
'wo'
],
so: [
'so',
'ar',
'en'
],
sr: [
'nl',
'en'
],
st: [
'pt-PT'
],
sv: [
'es-419',
'es'
],
td: [
'fr',
'ar'
],
tg: [
'fr'
],
th: [
'th',
'en'
],
tj: [
'tg',
'ru'
],
tl: [
'pt-PT',
'en',
'id'
],
tm: [
'tk',
'ru',
'uz'
],
tn: [
'ar',
'fr'
],
to: [
'en'
],
tr: [
'tr'
],
tt: 'en es es-419 fr hi zh-TW'.split(' '),
tw: [
'zh-TW',
'en'
],
tz: [
'sw',
'en'
],
ua: [
'uk',
'ru'
],
ug: [
'en'
],
uk: [
'en-GB'
],
us: [
'en',
'es',
'es-419',
'zh-CN'
],
uy: [
'es-419',
'es'
],
uz: [
'uz',
'ru'
],
vc: [
'en'
],
ve: [
'es-419',
'es'
],
vi: [
'en'
],
vn: [
'vi',
'en',
'fr',
'zh-TW'
],
vu: [
'en',
'fr'
],
ws: [
'en'
],
za: [
'en',
'af',
'st',
'tn',
'zu'
],
zm: [
'en',
'ny',
'sn'
],
zw: [
'en',
'ny',
'sn',
'tn',
'zu'
]
};
var vk = a=>{
var b = 'Cc';
if (a.Cc && a.hasOwnProperty(b)) return a.Cc;
b = new a;
return a.Cc = b
};
function wk(a, b, c, d) {
const e = `${ b }-${ c }`;
if (d.includes(e)) return a.g = b,
e;
if (b && d.includes(b)) return a.g = b;
if (c && uk[c]) for (const f of uk[c]) if (d.includes(f)) return a.g = f,
a.g;
return d.includes('en') ? (a.g = 'en', a.g) : a.g = null
}
function U(a) {
var b = xk;
if (null == b.i) throw Error('O');
a = void 0 === b.i[a] ? '' : b.i[a];
let c = b = 0,
d = !1;
const e = a.split(Kf);
for (let f = 0; f < e.length; f++) {
const g = e[f];
If.test(g) ? (b++, c++) : Jf.test(g) ? d = !0 : Hf.test(g) ? c++ : Lf.test(g) && (d = !0)
}
b = 0 == c ? d ? 1 : 0 : 0.4 < b / c ? - 1 : 1;
return 1 == b ? '‪' + a + '‬' : - 1 == b ? '‫' + a + '‬' : a
}
class yk {
constructor() {
this.g = this.i = null
}
load(a, b, c, d) {
a = wk(this, a, b, c);
if (null == a) return Promise.resolve();
const e = `${ d }messages.${ a }.nocache.json`,
f = new zj;
f.Fa = 'text';
return new Promise((g, h) =>{
vi(f, 'success', () =>{
try {
var k = f.g ? f.g.responseText : ''
} catch (l) {
k = ''
}
this.i = JSON.parse(k.substring(5));
g()
});
vi(f, 'error', h);
Cj(f, e)
})
}
};
function zk(a, b, c, d) {
this.left = a;
this.top = b;
this.width = c;
this.height = d
}
q = zk.prototype;
q.clone = function () {
return new zk(this.left, this.top, this.width, this.height)
};
q.contains = function (a) {
return a instanceof P ? a.x >= this.left && a.x <= this.left + this.width && a.y >= this.top && a.y <= this.top + this.height : this.left <= a.left && this.left + this.width >= a.left + a.width && this.top <= a.top && this.top + this.height >= a.top + a.height
};
q.getSize = function () {
return new Qi(this.width, this.height)
};
q.ceil = function () {
this.left = Math.ceil(this.left);
this.top = Math.ceil(this.top);
this.width = Math.ceil(this.width);
this.height = Math.ceil(this.height);
return this
};
q.floor = function () {
this.left = Math.floor(this.left);
this.top = Math.floor(this.top);
this.width = Math.floor(this.width);
this.height = Math.floor(this.height);
return this
};
q.round = function () {
this.left = Math.round(this.left);
this.top = Math.round(this.top);
this.width = Math.round(this.width);
this.height = Math.round(this.height);
return this
};
q.scale = function (a, b) {
b = 'number' === typeof b ? b : a;
this.left *= a;
this.width *= a;
this.top *= b;
this.height *= b;
return this
};
function Ak() {
}; /*
Copyright 2005, 2007 Bob Ippolito. All Rights Reserved.
Copyright The Closure Library Authors.
SPDX-License-Identifier: MIT
*/
function Bk(a, b) {
this.u = [
];
this.ya = a;
this.wa = b || null;
this.o = this.j = !1;
this.i = void 0;
this.V = this.Ba = this.H = !1;
this.v = 0;
this.g = null;
this.O = 0
}
ta(Bk, Ak);
Bk.prototype.cancel = function (a) {
if (this.j) this.i instanceof Bk && this.i.cancel();
else {
if (this.g) {
const b = this.g;
delete this.g;
a ? b.cancel(a) : (a = b, a.O--, 0 >= a.O && a.cancel())
}
this.ya ? this.ya.call(this.wa, this) : this.V = !0;
this.j || (a = new Ck(this), Dk(this), Ek(this, !1, a))
}
};
Bk.prototype.va = function (a, b) {
this.H = !1;
Ek(this, a, b)
};
function Ek(a, b, c) {
a.j = !0;
a.i = c;
a.o = !b;
Fk(a)
}
function Dk(a) {
if (a.j) {
if (!a.V) throw new Gk(a);
a.V = !1
}
}
function Hk(a, b, c, d) {
a.u.push([b,
c,
d]);
a.j && Fk(a)
}
Bk.prototype.then = function (a, b, c) {
let d,
e;
const f = new ij(function (g, h) {
e = g;
d = h
});
Hk(this, e, function (g) {
g instanceof Ck ? f.cancel() : d(g);
return Ik
}, this);
return f.then(a, b, c)
};
Bk.prototype.$goog_Thenable = !0;
function Jk(a) {
return Sa(a.u, function (b) {
return 'function' === typeof b[1]
})
}
var Ik = {
};
function Fk(a) {
if (a.v && a.j && Jk(a)) {
var b = a.v,
c = Kk[b];
c && (t.clearTimeout(c.g), delete Kk[b]);
a.v = 0
}
a.g && (a.g.O--, delete a.g);
b = a.i;
for (var d = c = !1; a.u.length && !a.H; ) {
var e = a.u.shift(),
f = e[0];
const h = e[1];
e = e[2];
if (f = a.o ? h : f) try {
var g = f.call(e || a.wa, b);
g === Ik && (g = void 0);
void 0 !== g && (a.o = a.o && (g == b || g instanceof Error), a.i = b = g);
if (hj(b) || 'function' === typeof t.Promise && b instanceof t.Promise) d = !0,
a.H = !0
} catch (k) {
b = k,
a.o = !0,
Jk(a) || (c = !0)
}
}
a.i = b;
d && (g = qa(a.va, a, !0), d = qa(a.va, a, !1), b instanceof Bk ? (Hk(b, g, d), b.Ba = !0) : b.then(g, d));
c && (b = new Lk(b), Kk[b.g] = b, a.v = b.g)
}
function Gk() {
va.call(this)
}
ta(Gk, va);
Gk.prototype.message = 'Deferred has already fired';
Gk.prototype.name = 'AlreadyCalledError';
function Ck() {
va.call(this)
}
ta(Ck, va);
Ck.prototype.message = 'Deferred was canceled';
Ck.prototype.name = 'CanceledError';
function Lk(a) {
this.g = t.setTimeout(qa(this.j, this), 0);
this.i = a
}
Lk.prototype.j = function () {
delete Kk[this.g];
throw this.i;
};
var Kk = {
};
function Mk() {
var a = Nk;
const b = {
},
c = b.document || document,
d = pe(a).toString(),
e = (new Vi(c)).createElement('SCRIPT');
var f = {
tf: e,
xd: void 0
};
const g = new Bk(Ok, f);
let h = null;
const k = null != b.timeout ? b.timeout : 5000;
0 < k && (h = window.setTimeout(function () {
Pk(e, !0);
var l = new Qk(1, 'Timeout reached for loading script ' + d);
Dk(g);
Ek(g, !1, l)
}, k), f.xd = h);
e.onload = e.onreadystatechange = function () {
e.readyState && 'loaded' != e.readyState && 'complete' != e.readyState || (Pk(e, b.Qg || !1, h), Dk(g), Ek(g, !0, null))
};
e.onerror = function () {
Pk(e, !0, h);
var l = new Qk(0, 'Error while loading script ' + d);
Dk(g);
Ek(g, !1, l)
};
f = b.attributes || {
};
ge(f, {
type: 'text/javascript',
charset: 'UTF-8'
});
Ri(e, f);
Ne(e, a);
Rk(c).appendChild(e);
return g
}
function Rk(a) {
const b = (a || document).getElementsByTagName('HEAD');
return b && 0 !== b.length ? b[0] : a.documentElement
}
function Ok() {
if (this && this.tf) {
const a = this.tf;
a && 'SCRIPT' == a.tagName && Pk(a, !0, this.xd)
}
}
function Pk(a, b, c) {
null != c && t.clearTimeout(c);
a.onload = () =>{
};
a.onerror = () =>{
};
a.onreadystatechange = () =>{
};
b && window.setTimeout(function () {
a && a.parentNode && a.parentNode.removeChild(a)
}, 0)
}
function Qk(a, b) {
let c = 'Jsloader error (code #' + a + ')';
b && (c += ': ' + b);
va.call(this, c);
this.code = a
}
ta(Qk, va);
const xk = vk(yk),
Lg = Qg.Wa();
var Sk = a=>`${ '/logos/2021/halloween21/r1030_5e329/' }${ a }`.toLowerCase();
let Tk = null;
const Nk = function (a, ...b) {
if (0 === b.length) return te(a[0]);
const c = [
a[0]
];
for (let d = 0; d < b.length; d++) c.push(encodeURIComponent(b[d])),
c.push(a[d + 1]);
return te(c.join(''))
}`https://www.gstatic.com/external_hosted/pixi_v5/pixi-legacy.min.js`,
Uk = () =>new Promise(a=>{
var b = Mk();
Hk(b, a, null)
});
var Vk = () =>{
const a = [
];
a.push(Uk());
a.push(new Promise(b=>{
Kg([7], b)
}));
a.push(new Promise(b=>{
tk(() =>{
b()
})
}));
a.push(vk(yk).load(kg, lg, bk, '/logos/2021/halloween21/r1030_5e329/'));
return Promise.all(a)
},
Xk = () =>{
const a = [
];
a.push(new Promise(c=>{
Lg.preload(3, c)
}));
const b = [
R.Ub,
R.Dd
];
for (const c of b) a.push(new Promise(d=>{
c.preload(d)
}));
a.push(Wk('tutorial-map.json').then(c=>{
Tk = c
}));
return Promise.all(a)
},
Yk = () =>{
const a = [
];
a.push(new Promise(b=>{
Kg([0,
1,
2,
4,
5,
J ? 8 : 6], b)
}));
a.push(new Promise(b=>
{
R.Cd.preload(b)
}));
return Promise.all(a)
};
function Wk(a, b) {
return r(function * () {
const c = Sk(a);
try {
return yield Zk(c, b)
} catch (d) {
return S(114),
Promise.reject(d)
}
})
}
const Zk = (a, b) =>new Promise((c, d) =>{
const e = new XMLHttpRequest;
e.addEventListener('load', () =>{
try {
if (200 !== e.status) d(`${ e.status }: ${ a }`);
else {
var f = JSON.parse(e.responseText);
if (void 0 !== b) {
const g = rk(JSON.stringify(f));
g !== b && (S(115), d(`Hash mismatch: expected: ${ b } actual: ${ g }`))
}
c(f)
}
} catch (g) {
d(g)
}
});
e.addEventListener('error', f=>{
d(f)
});
e.addEventListener('abort', f=>{
d(f)
});
e.open('GET', a, !0);
e.send()
});
var $k = (a, b) =>{
a.play(0, !1);
a.play(a.v, !0, b, void 0)
},
al = (a, b, c) =>{
const d = a[3];
a = a[4];
void 0 === b && (b = d);
void 0 === c && (c = a);
return Math.min(b / d, c / a)
};
const bl = new zk(0, 0, 0, 0);
var cl = a=>{
const b = Math.min(a.width, a.height - Bg);
bl.left = (a.width - b) / 2;
bl.top = Bg;
bl.width = b;
bl.height = b
},
dl = (a, b) =>{
if (a) {
const c = b ? 'ddl-visible_' : 'hidden';
a.classList.remove(b ? 'hidden' : 'ddl-visible_');
a.classList.add(c)
}
};
var fl = (a, b) =>{
if (!el) return b;
let c;
try {
c = window.localStorage.getItem(a)
} catch (d) {
return b
}
return null == c ? b : JSON.parse(c)
},
gl = (a, b) =>{
if (el) try {
window.localStorage.setItem(a, JSON.stringify(b))
} catch (c) {
}
},
el = !!self.localStorage;
var hl = (new Map).set('MOST_SPIRITS_COLLECTED', [
[2,
175,
982,
168,
142],
[
1,
406,
181,
168,
142
],
[
1,
1218,
377,
168,
142
]
]).set('STOLE_MOST', [
[2,
420,
887,
209,
184],
[
1,
1680,
0,
209,
184
],
[
1,
581,
144,
209,
184
]
]).set('MOST_MEGA_FLAMES', [
[2,
1885,
1030,
160,
165],
[
1,
400,
940,
160,
165
],
[
1,
203,
955,
160,
165
]
]).set('COLLECT_1000_SPIRITS', [
[2,
420,
706,
245,
178],
[
1,
333,
0,
245,
178
],
null
]).set('COLLECT_5000_SPIRITS', [
[2,
890,
963,
194,
162],
[
1,
203,
790,
194,
162
],
[
1,
1421,
796,
194,
162
]
]).set('STEAL_250', [
[2,
1087,
963,
190,
118],
[
1,
1618,
796,
190,
118
],
[
1,
1811,
796,
190,
118
]
]).set('STEAL_1000', [
[2,
668,
706,
225,
141],
[
1,
581,
0,
225,
141
],
[
1,
809,
0,
225,
141
]
]).set('COLLECT_10_MEGA_FLAMES', [
[2,
1280,
963,
174,
137],
[
1,
1873,
187,
174,
137
],
null
]).set('COLLECT_30_MEGA_FLAMES', [
[2,
1721,
1030,
161,
115],
[
1,
1015,
935,
161,
115
],
null
]).set('WIN_5_GAMES', [
[2,
420,
543,
330,
160],
[
1,
0,
0,
330,
160
],
null
]).set('WIN_35_GAMES', [
[2,
632,
991,
162,
179],
[
1,
1618,
917,
162,
179
],
[
1,
1783,
917,
162,
179
]
]).set('PLAY_10_GAMES', [
[2,
1457,
1052,
134,
115],
[
1,
1892,
0,
134,
115
],
null
]).set('PLAY_50_GAMES', [
[2,
1926,
0,
121,
145],
[
1,
563,
956,
121,
145
],
null
]).set('COLLECT_150_SPIRITS_SINGLE_GAME', [
[2,
1506,
878,
212,
171],
[
1,
1037,
0,
212,
171
],
[
1,
1252,
0,
212,
171
]
]).set('COLLECT_200_SPIRITS_SINGLE_GAME', [
[2,
1721,
878,
210,
149],
[
1,
1467,
0,
210,
149
],
null
]).set('MOST_SPIRITS_COLLECTED_5_GAMES', [
[2,
753,
543,
200,
149],
[
1,
1015,
783,
200,
149
],
null
]);
const il = [
{
Bb: 'COLLECT_1000_SPIRITS',
counter: 'SPIRITS_COLLECTED',
threshold: 1000
},
{
Bb: 'COLLECT_5000_SPIRITS',
counter: 'SPIRITS_COLLECTED',
threshold: 5000
},
{
Bb: 'STEAL_250',
counter: 'STEALS',
threshold: 250
},
{
Bb: 'STEAL_1000',
counter: 'STEALS',
threshold: 1000
},
{
Bb: 'COLLECT_10_MEGA_FLAMES',
counter: 'MEGA_FLAMES',
threshold: 10
},
{
Bb: 'COLLECT_30_MEGA_FLAMES',
counter: 'MEGA_FLAMES',
threshold: 30
},
{
Bb: 'WIN_5_GAMES',
counter: 'WINS',
threshold: 5
},
{
Bb: 'WIN_35_GAMES',
counter: 'WINS',
threshold: 35
},
{
Bb: 'PLAY_10_GAMES',
counter: 'PLAYS',
threshold: 10
},
{
Bb: 'PLAY_50_GAMES',
counter: 'PLAYS',
threshold: 50
},
{
Bb: 'COLLECT_150_SPIRITS_SINGLE_GAME',
counter: 'SPIRITS_COLLECTED_SINGLE_GAME',
threshold: 150
},
{
Bb: 'COLLECT_200_SPIRITS_SINGLE_GAME',
counter: 'SPIRITS_COLLECTED_SINGLE_GAME',
threshold: 200
},
{
Bb: 'MOST_SPIRITS_COLLECTED_5_GAMES',
counter: 'MOST_SPIRITS_COLLECTED',
threshold: 5
}
];
function jl(a) {
return fl('H21_COUNTER_' + a, 0)
}
function kl() {
for (const a of il) jl(a.counter) > a.threshold && !fl('H21_' + a.Bb, !1) && gl('H21_' + a.Bb, !0)
}
function ll() {
return [...Object.values(zg)].filter(a=>fl('H21_' + a, !1) && !fl('H21_ACK_' + a, !1))
}
function ml() {
if (0 < ll().length) return ll() [0];
let a = il.filter(b=>0 < jl(b.counter) && !fl('H21_' + b.Bb, !1));
0 === a.length && (a = il.filter(b=>!fl('H21_' + b.Bb, !1)));
return 0 < a.length ? a[Math.floor(a.length * Math.random())].Bb : [
...Object.values(zg)
][Math.floor([...Object.values(zg)].length * Math.random())]
}
function nl(a, b = 1) {
b = jl(a) + b;
gl('H21_COUNTER_' + a, b)
}
function ol(a) {
a > jl('SPIRITS_COLLECTED_SINGLE_GAME') && gl('H21_COUNTER_SPIRITS_COLLECTED_SINGLE_GAME', a)
}
function pl(a) {
const b = il.filter(c=>c.Bb === a) [0];
return b ? `${ Math.min(jl(b.counter), b.threshold) }/${ b.threshold }` : ''
};
var ql = new Map([[16,
1],
[
1,
2
],
[
2,
2
]]);
function rl() {
sl || (sl = new tl);
return sl
}
function ul(a, b, c) {
a.left += b / a.g;
a.top += c / a.g
}
function vl(a, b, c, d = N.width / 2, e = N.height) {
e /= a.g;
a.left = b - d / a.g;
a.top = c - e
}
function wl(a, b) {
const c = N.width / 2,
d = N.height / 2,
e = a.left + c / a.g,
f = a.top + d / a.g;
a.g *= b;
a.left = e - c / a.g;
a.top = f - d / a.g
}
function xl(a, b) {
a.g = b
}
function yl(a, b) {
a = (b - a.left) * a.g;
return a - 0 * (N.width / 2 - a)
}
function zl(a, b) {
return (b - a.top) * a.g
}
var tl = class {
constructor() {
this.top = this.left = 0;
this.i = this.j = !1;
this.g = 25;
this.o = new Map([[73,
() =>{
wl(this, 1.5)
}
],
[
79,
() =>{
wl(this, 1 / 1.5)
}
],
[
65,
() =>{
ul(this, - 100, 0)
}
],
[
68,
() =>{
ul(this, 100, 0)
}
],
[
87,
() =>{
ul(this, 0, - 100)
}
],
[
83,
() =>{
ul(this, 0, 100)
}
],
[
81,
() =>{
}
]])
}
},
sl;
const Al = Qg.Wa(),
Bl = rl();
var Dl = (a, b, c, d, e = 0, f = !1, g = 1, h = 1, k, l = Al) =>{
b = yl(Bl, b);
c = zl(Bl, c);
Cl(a, b, c, Bl.g * d, e, f, g, h, k, l)
},
Cl = (a, b, c, d, e = 0, f = !1, g = 1, h = 1, k, l = Al) =>{
yg.save();
void 0 !== k && (yg.globalAlpha = k);
yg.translate(b, c);
yg.scale(g, h);
f && yg.rotate(e);
b = a[3] / (a[5] || 1);
c = a[4] / (a[5] || 1);
void 0 !== d && (d /= c, yg.scale(d, d));
!f && 0 > Math.cos(e) && yg.scale( - 1, 1);
Ng(l, a, yg, - (b / 2), - (c / 2));
yg.restore()
},
V = (a, b, c, d, e, f) =>{
if (!a) return 0;
e = al(a, e, f);
Ng(Al, a, b, c, d, e, !0);
return e
},
El = (a, b, c, d) =>{
a = yl(Bl, a);
b = zl(Bl, b);
c *= Bl.g;
d && (yg.fillStyle = d);
yg.beginPath();
yg.arc(a, b, c, 0, 2 * Math.PI);
d ? yg.fill() : yg.stroke()
},
Fl = (a, b, c, d, e, f, g) =>{
b = yl(Bl, b);
c = zl(Bl, c);
yg.save();
yg.translate(b, c);
void 0 !== f && yg.rotate(f);
void 0 !== g && yg.scale(g, g);
void 0 !== e && (yg.strokeStyle = e, yg.strokeText(a, 0, 0));
void 0 !== d && (yg.fillStyle = d, yg.fillText(a, 0, 0));
yg.restore()
},
Gl = a=>{
a.save();
a.setTransform(1, 0, 0, 1, 0, 0);
a.fillStyle = 'rgba(0,0,0,0.6)';
a.fillRect(0, 0, a.canvas.width, a.canvas.height);
a.restore()
};
var Hl = class {
j() {
return !0
}
};
var Il = class extends Hl {
constructor(a, b, c) {
super ();
this.g = a;
this.i = b;
this.o = Math.abs(c)
}
moveTo(a, b) {
this.g = a;
this.i = b
}
contains(a, b) {
return Math.sqrt((this.g - a) * (this.g - a) + (this.i - b) * (this.i - b)) <= this.o
}
};
function Jl(a, b, c, d, e, f, g, h = '') {
const k = a.font;
a.font = h + ' ' + d + 'px ' + c;
let l = Kl(a, b, f);
for (; l.length > g && d > e; ) d = Math.max(e, 1 < d ? d - 1 : d - 0.1),
a.font = h + ' ' + d + 'px ' + c,
l = Kl(a, b, f);
for (b = 0; b < l.length; b++) for (; a.measureText(l[b]).width > f && d > e; ) d = Math.max(e, 1 < d ? d - 1 : d - 0.1),
a.font = h + ' ' + d + 'px ' + c;
a.font = k;
return {
lines: l,
fontFamily: c,
fontSize: d,
fontStyle: h
}
}
function Kl(a, b, c) {
b = b.match(/[^\s-]+-?/g);
if (!b || 1 > b.length) return [''];
let d = b[0];
const e = [
];
for (let f = 1; f < b.length; f++) {
const g = d + ('-' == d[d.length - 1] ? '' : ' ') + b[f];
a.measureText(g).width > c ? (e.push(d), d = b[f]) : d = g
}
e.push(d);
return e
}
function Ll(a, b, c, d, e, f) {
const g = a.font;
a.font = b.fontStyle + ' ' + b.fontSize + 'px ' + b.fontFamily;
for (let h = 0; h < b.lines.length; h++) a.fillText(b.lines[h], c, d + h * e),
f && a.strokeText(b.lines[h], c, d + h * e);
a.font = g
};
Qg.Wa();
const Ml = [
30,
30
],
Nl = new Il(Ml[0], Ml[1], 80),
Ol = [
874,
93
],
Pl = J ? [
280,
L / 2
] : [
720,
300
],
Ql = [
417,
436
],
Rl = [
L / 2,
27
],
Sl = J ? [
100,
560
] : [
100,
120
],
Tl = J ? [
470,
440
] : [
880,
470
],
Ul = new Il(Tl[0], Tl[1], 110);
function Vl(a) {
a = Object.values(zg).indexOf(a);
return [Sl[0] + a % 4 * 110,
Sl[1] + 110 * Math.floor(a / 4)]
}
function Wl(a) {
for (const c of Object.values(zg)) {
var b = Vl(c);
b = new Il(b[0], b[1], 40);
Xl(a.g, b, d=>{
'mouseup' === d && (a.j = c, fl('H21_' + c, !1) ? (fl('H21_ACK_' + c, !1) || gl('H21_ACK_' + c, !0), gl('H21_HAT', c)) : gl('H21_HAT', null))
});
Yl(a.g, b);
a.i.push(b)
}
Xl(a.g, Nl, c=>{
'mouseup' === c && a.v()
});
Yl(a.g, Nl);
a.i.push(Nl);
Xl(a.g, Ul, c=>{
'mouseup' === c && (a.j = void 0, gl('H21_HAT', null))
});
Yl(a.g, Ul);
a.i.push(Ul)
}
var Zl = class extends ci {
constructor(a, b = () =>{
}) {
super ();
this.g = a;
this.v = b;
this.i = [
];
this.u = new Map;
this.o = 0;
this.O = U('achievements_header');
this.H = J ? Wg : Vg;
this.j = fl('H21_HAT', null);
for (const c of Object.values(zg)) this.u.set(c, [
U(c + '_NAME'),
U(c + '_DESC')
])
}
ub() {
super.ub()
}
update(a) {
this.o += a
}
render(a) {
a.save();
a.textAlign = 'center';
V(this.H, a, L / 2, vg / 2);
V(bh, a, Ol[0], Ol[1]);
var b = Jl(a, this.O, O, 40, 20, 450, 1);
a.fillStyle = '#fff';
a.shadowColor = '#0078ff';
a.shadowBlur = 10;
Ll(a, b, Rl[0], Rl[1], b.fontSize);
a.shadowColor = 'transparent';
this.j || V(Xg, a, Pl[0], Pl[1], Ql[0], Ql[0]);
for (const d of Object.values(zg)) {
var c = fl('H21_' + d, !1);
b = Vl(d);
const e = c ? Zg : Yg,
f = c ? Ug : Sg,
g = c ? hl.get(d) [1] : hl.get(d) [0];
this.j === d && (V(Tg, a, b[0], b[1], 175, 175), V(e, a, Pl[0], Pl[1], Ql[0], Ql[0]), c && (a.shadowColor = '#88ddff'), V(g, a, Pl[0] - 10, Pl[1] - 130 + 6 * Math.sin(this.o / 400), g[3], g[4]), a.shadowColor = 'transparent', c ? (a.fillStyle = '#fff', a.shadowColor = '#0078ff') : a.fillStyle = '#000', c = Jl(a, this.u.get(d) [0], O, 32, 20, 300, 1), Ll(a, c, Pl[0], 340, 1.25 * c.fontSize), a.shadowColor = 'transparent', a.fillStyle = '#000', c = pl(d) || '', c = Jl(a, this.u.get(d) [1] + ' ' + c, O, 28, 16, 300, 2), Ll(a, c, Pl[0], 375, 1.25 * c.fontSize));
V(f, a, b[0], b[1], 100, 100);
V(g, a, b[0], b[1], 60, 60);
!fl('H21_ACK_' + d, !1) && fl('H21_' + d, !1) && (a.beginPath(), a.fillStyle = '#f33', a.arc(b[0] + 30, b[1] - 30, 14, 0, 2 * Math.PI), a.closePath(), a.fill(), a.font = `20px bold ${ O }`, a.fillStyle = '#fff', a.fillText('!', b[0] + 30, b[1] - 30))
}
V(Rg, a, Ml[0], Ml[1], 70, 70);
V(this.j ? $g : ah, a, Tl[0], Tl[1], 100, 100);
a.restore()
}
};
var $l = class {
constructor() {
this.o = this.u = !1
}
update(a) {
this.u || (this.onStart(), this.u = !0);
this.g() ? this.o || (this.j(), this.o = !0) : this.Ta(a)
}
g() {
return !0
}
onStart() {
}
Ta() {
}
j() {
}
reset() {
this.o = this.u = !1
}
},
am = class extends $l {
constructor(a) {
super ();
this.i = a
}
j() {
super.j();
this.i()
}
},
W = class extends $l {
constructor(a, b) {
super ();
this.i = a;
this.v = b
}
onStart() {
this.i.start()
}
Ta(a) {
this.i.update(a);
this.v(bm(this.i))
}
g() {
return !this.i.u && cm(this.i)
}
reset() {
super.reset();
this.i.reset()
}
},
dm = class extends $l {
constructor(a) {
super ();
this.v = a;
this.i = 0
}
Ta(a) {
this.i += a
}
g() {
return this.i >= this.v
}
reset() {
super.reset();
this.i = 0
}
},
em = class extends $l {
constructor(a, b = !1) {
super ();
this.actions = a;
this.v = b;
this.i = a.slice()
}
g() {
return !this.actions.length
}
Ta(a) {
if (0 < this.actions.length && 0 < a) {
const b = this.actions[0];
b.update(a);
b.g() && this.actions.length && this.actions[0] === b && this.actions.shift()
}
this.g() && this.v && this.reset()
}
reset() {
super.reset();
this.actions = this.i.slice();
for (const a of this.actions) a.reset()
}
},
fm = class extends $l {
constructor(a) {
super ();
this.actions = a
}
g() {
for (const a of this.actions) if (!a.g()) return !1;
return !0
}
Ta(a) {
if (!this.g()) for (const b of this.actions) b.update(a)
}
reset() {
super.reset();
for (const a of this.actions) a.reset()
}
};
function gm(a, b, c, d, e, f, g, h) {
this.g = a;
this.u = b;
this.j = c;
this.v = d;
this.o = e;
this.H = f;
this.i = g;
this.O = h
}
gm.prototype.clone = function () {
return new gm(this.g, this.u, this.j, this.v, this.o, this.H, this.i, this.O)
};
function hm(a, b) {
if (0 == b) return a.g;
if (1 == b) return a.i;
var c = Pi(a.g, a.j, b),
d = Pi(a.j, a.o, b);
a = Pi(a.o, a.i, b);
c = Pi(c, d, b);
d = Pi(d, a, b);
return Pi(c, d, b)
}
function im(a, b) {
if (0 == b) return a.u;
if (1 == b) return a.O;
var c = Pi(a.u, a.v, b),
d = Pi(a.v, a.H, b);
a = Pi(a.H, a.O, b);
c = Pi(c, d, b);
d = Pi(d, a, b);
return Pi(c, d, b)
}
gm.prototype.Cb = function () {
return new P(hm(this), im(this))
};
function jm(a, b) {
var c = (b - a.g) / (a.i - a.g);
if (0 >= c) return 0;
if (1 <= c) return 1;
for (var d = 0, e = 1, f = 0, g = 0; 8 > g; g++) {
f = hm(a, c);
var h = (hm(a, c + 0.000001) - f) / 0.000001;
if (0.000001 > Math.abs(f - b)) return c;
if (0.000001 > Math.abs(h)) break;
else f < b ? d = c : e = c,
c -= (f - b) / h
}
for (g = 0; 0.000001 < Math.abs(f - b) && 8 > g; g++) f < b ? (d = c, c = (c + e) / 2) : (e = c, c = (c + d) / 2),
f = hm(a, c);
return c
};
const km = (a, b, c, d) =>{
const e = new gm(0, 0, a, b, c, d, 1, 1);
return f=>im(e, jm(e, f))
};
var lm = km(0.25, 0.1, 0.25, 1),
mm = (a, b, c, d = lm) =>b + d(a) * (c - b),
nm = a=>a,
om = km(0.4, 0, 1, 1),
pm = km(0.6, - 0.28, 0.735, 0.045),
qm = km(0, 0, 0.6, 1),
rm = km(0.175, 0.885, 0.32, 1.275),
sm = km(0.6, 0, 0.4, 1);
function tm() {
return performance.now()
}
function bm(a) {
let b = Math.min(Math.max(um(a) / a.duration, 0), 1);
a.i && (b = 1 - b);
for (let c in a.v) a.O.hasOwnProperty(c) && (a.V[c] = mm(b, a.v[c], a.O[c], a.va));
return a.V
}
function cm(a) {
return um(a) >= a.duration
}
function um(a) {
return null === a.g ? 0 : a.o() - a.g
}
function vm(a) {
if (null !== a.g && !a.i) {
var b = Math.min(a.duration, um(a));
a.g = a.o() - (a.duration - b);
a.i = !0
}
}
class wm {
constructor(a, b, c, d = lm, e = tm) {
this.v = a;
this.O = b;
this.V = {
};
this.duration = c;
this.va = d;
this.o = e;
this.g = null;
this.i = !1
}
start() {
this.g = this.o();
this.i = !1
}
reset() {
this.g = null
}
};
class X extends wm {
constructor(a, b, c, d = lm, e = !1, f = !1) {
super (a, b, c, d, () =>this.j);
this.j = 0;
this.H = f;
this.u = e
}
update(a) {
null !== this.g && (this.j += a, cm(this) && (this.H && !this.i ? vm(this) : this.u && this.i && (this.i = !1), this.H || this.u)) && (this.g = 0, this.j %= this.duration)
}
reset() {
super.reset();
this.j = 0
}
};
var zm = (a, b) =>void 0 !== b && xm.has(b) ? xm.get(b).get(a) : ym.get(a),
Cm = (a, b) =>{
a = Am[a - 1];
return new em([new X({
y: a.a.y
}, {
y: a.b.y
}, a.b.f * Bm, sm),
new X({
y: a.b.y
}, {
y: a.c.y
}, (a.c.f - a.b.f) * Bm, sm)].map(c=>new W(c, b)), !0)
};
const Bm = 1000 / 24,
ym = new Map([[1,
[
ch
]],
[
2,
[
[4,
312,
3708,
75,
75]
]
],
[
3,
[
[4,
1014,
3741,
63,
75]
]
],
[
4,
[
[4,
390,
3714,
75,
63]
]
],
[
5,
[
[5,
390,
3499,
75,
75]
]
],
[
6,
[
[5,
468,
3499,
75,
75]
]
],
[
7,
[
[5,
546,
3499,
75,
75]
]
],
[
8,
[
[5,
624,
3499,
75,
75]
]
],
[
9,
[
[4,
0,
0,
150,
180]
]
],
[
10,
[
[4,
1377,
2415,
150,
150]
]
],
[
11,
[
[5,
0,
0,
150,
180]
]
],
[
12,
[
[5,
306,
1989,
150,
150]
]
],
[
0,
[
ch
]
]]),
xm = new Map([['sleep',
new Map([[1,
[
[3,
1611,
1409,
75,
75],
[
3,
1611,
1409,
75,
75
],
[
3,
1689,
1409,
75,
75
],
[
3,
1689,
1409,
75,
75
],
[
3,
1767,
1409,
75,
75
],
[
3,
1767,
1409,
75,
75
],
[
3,
1845,
1409,
75,
75
],
[
3,
1845,
1409,
75,
75
],
[
3,
1845,
1409,
75,
75
],
[
3,
1845,
1409,
75,
75
],
[
3,
1845,
1409,
75,
75
],
[
3,
1845,
1409,
75,
75
],
[
3,
1845,
1409,
75,
75
],
[
3,
1845,
1409,
75,
75
],
[
3,
1845,
1409,
75,
75
],
[
3,
1845,
1409,
75,
75
],
[
3,
1845,
1409,
75,
75
],
[
3,
1845,
1409,
75,
75
],
[
3,
1845,
1409,
75,
75
],
[
3,
1845,
1409,
75,
75
],
[
3,
1845,
1409,
75,
75
],
[
3,
0,
1411,
75,
75
],
[
3,
0,
1411,
75,
75
],
[
3,
78,
1411,
75,
75
],
[
3,
78,
1411,
75,
75
],
[
3,
156,
1411,
75,
75
],
[
3,
156,
1411,
75,
75
],
[
3,
78,
1411,
75,
75
],
[
3,
78,
1411,
75,
75
],
[
3,
156,
1411,
75,
75
],
[
3,
156,
1411,
75,
75
],
[
3,
78,
1411,
75,
75
],
[
3,
78,
1411,
75,
75
],
[
3,
156,
1411,
75,
75
],
[
3,
156,
1411,
75,
75
],
[
3,
78,
1411,
75,
75
]
]],
[
5,
[
[3,
1929,
1499,
75,
75],
[
3,
1929,
1499,
75,
75
],
[
3,
1929,
1499,
75,
75
],
[
3,
1929,
1499,
75,
75
],
[
3,
1929,
1499,
75,
75
],
[
3,
1929,
1499,
75,
75
],
[
3,
1929,
1499,
75,
75
],
[
3,
1929,
1499,
75,
75
],
[
3,
1929,
1499,
75,
75
],
[
3,
1929,
1499,
75,
75
],
[
3,
1929,
1499,
75,
75
],
[
3,
1929,
1499,
75,
75
],
[
3,
1929,
1499,
75,
75
],
[
3,
1929,
1499,
75,
75
],
[
3,
1929,
1499,
75,
75
],
[
3,
1929,
1499,
75,
75
],
[
3,
1077,
1504,
75,
75
],
[
3,
1077,
1504,
75,
75
],
[
3,
1155,
1504,
75,
75
],
[
3,
1155,
1504,
75,
75
],
[
3,
1155,
1504,
75,
75
],
[
3,
1155,
1504,
75,
75
],
[
3,
1155,
1504,
75,
75
],
[
3,
1155,
1504,
75,
75
],
[
3,
1155,
1504,
75,
75
],
[
3,
1155,
1504,
75,
75
],
[
3,
1155,
1504,
75,
75
],
[
3,
1155,
1504,
75,
75
],
[
3,
1155,
1504,
75,
75
],
[
3,
1155,
1504,
75,
75
],
[
3,
1155,
1504,
75,
75
],
[
3,
1155,
1504,
75,
75
],
[
3,
1155,
1504,
75,
75
],
[
3,
1155,
1504,
75,
75
],
[
3,
1233,
1507,
75,
75
],
[
3,
1233,
1507,
75,
75
]
]
],
[
0,
Rh
]])],
[
'idle',
new Map([[1,
Rh],
[
2,
[
[4,
153,
0,
150,
180],
[
4,
153,
0,
150,
180
],
[
4,
306,
0,
150,
180
],
[
4,
306,
0,
150,
180
],
[
4,
306,
0,
150,
180
],
[
4,
306,
0,
150,
180
],
[
4,
459,
0,
150,
180
],
[
4,
612,
0,
150,
180
],
[
4,
765,
0,
150,
180
],
[
4,
918,
0,
150,
180
],
[
4,
1071,
0,
150,
180
],
[
4,
1224,
0,
150,
180
],
[
4,
1224,
0,
150,
180
],
[
4,
1377,
0,
150,
180
],
[
4,
1530,
0,
150,
180
],
[
4,
1683,
0,
150,
180
],
[
4,
1683,
0,
150,
180
],
[
4,
1836,
0,
150,
180
],
[
4,
0,
183,
150,
180
],
[
4,
1377,
0,
150,
180
],
[
4,
1530,
0,
150,
180
],
[
4,
153,
183,
150,
180
],
[
4,
153,
183,
150,
180
],
[
4,
306,
183,
150,
180
],
[
4,
459,
183,
150,
180
],
[
4,
612,
183,
150,
180
],
[
4,
765,
183,
150,
180
],
[
4,
918,
183,
150,
180
],
[
4,
918,
183,
150,
180
],
[
4,
1071,
183,
150,
180
],
[
4,
1224,
183,
150,
180
],
[
4,
1377,
183,
150,
180
],
[
4,
1530,
183,
150,
180
],
[
4,
1683,
183,
150,
180
],
[
4,
1683,
183,
150,
180
],
[
4,
1836,
0,
150,
180
],
[
4,
1836,
183,
150,
180
],
[
4,
0,
366,
150,
180
],
[
4,
0,
366,
150,
180
],
[
4,
153,
366,
150,
180
],
[
4,
306,
366,
150,
180
],
[
4,
306,
366,
150,
180
],
[
4,
459,
366,
150,
180
],
[
4,
612,
366,
150,
180
],
[
4,
612,
366,
150,
180
],
[
4,
765,
366,
150,
180
],
[
4,
153,
0,
150,
180
],
[
4,
153,
0,
150,
180
],
[
4,
153,
0,
150,
180
],
[
4,
306,
0,
150,
180
],
[
4,
918,
366,
150,
180
],
[
4,
1071,
366,
150,
180
],
[
4,
1224,
366,
150,
180
],
[
4,
1377,
366,
150,
180
],
[
4,
1530,
366,
150,
180
],
[
4,
1683,
366,
150,
180
],
[
4,
1836,
366,
150,
180
],
[
4,
0,
549,
150,
180
],
[
4,
459,
0,
150,
180
],
[
4,
153,
549,
150,
180
],
[
4,
153,
549,
150,
180
],
[
4,
153,
549,
150,
180
],
[
4,
153,
549,
150,
180
],
[
4,
153,
549,
150,
180
],
[
4,
153,
549,
150,
180
],
[
4,
153,
549,
150,
180
],
[
4,
153,
549,
150,
180
],
[
4,
153,
549,
150,
180
]
]
],
[
3,
[
[4,
306,
549,
150,
180],
[
4,
306,
549,
150,
180
],
[
4,
306,
549,
150,
180
],
[
4,
306,
549,
150,
180
],
[
4,
306,
549,
150,
180
],
[
4,
306,
549,
150,
180
],
[
4,
459,
549,
150,
180
],
[
4,
459,
549,
150,
180
],
[
4,
459,
549,
150,
180
],
[
4,
459,
549,
150,
180
],
[
4,
459,
549,
150,
180
],
[
4,
459,
549,
150,
180
],
[
4,
612,
549,
150,
180
],
[
4,
612,
549,
150,
180
],
[
4,
612,
549,
150,
180
],
[
4,
612,
549,
150,
180
],
[
4,
765,
549,
150,
180
],
[
4,
765,
549,
150,
180
],
[
4,
765,
549,
150,
180
],
[
4,
765,
549,
150,
180
],
[
4,
918,
549,
150,
180
],
[
4,
918,
549,
150,
180
],
[
4,
918,
549,
150,
180
],
[
4,
918,
549,
150,
180
],
[
4,
306,
549,
150,
180
],
[
4,
306,
549,
150,
180
],
[
4,
306,
549,
150,
180
],
[
4,
306,
549,
150,
180
],
[
4,
306,
549,
150,
180
],
[
4,
306,
549,
150,
180
],
[
4,
459,
549,
150,
180
],
[
4,
459,
549,
150,
180
],
[
4,
459,
549,
150,
180
],
[
4,
1071,
549,
150,
180
],
[
4,
1071,
549,
150,
180
],
[
4,
1224,
549,
150,
180
],
[
4,
1377,
549,
150,
180
],
[
4,
1377,
549,
150,
180
],
[
4,
1377,
549,
150,
180
],
[
4,
1377,
549,
150,
180
],
[
4,
1530,
549,
150,
180
],
[
4,
1530,
549,
150,
180
],
[
4,
1530,
549,
150,
180
],
[
4,
1530,
549,
150,
180
],
[
4,
1683,
549,
150,
180
],
[
4,
1683,
549,
150,
180
],
[
4,
1683,
549,
150,
180
],
[
4,
1683,
549,
150,
180
],
[
4,
1836,
549,
150,
180
],
[
4,
1836,
549,
150,
180
],
[
4,
1836,
549,
150,
180
],
[
4,
1836,
549,
150,
180
],
[
4,
0,
732,
150,
180
],
[
4,
153,
732,
150,
180
],
[
4,
306,
732,
150,
180
],
[
4,
306,
732,
150,
180
],
[
4,
306,
732,
150,
180
],
[
4,
306,
732,
150,
180
],
[
4,
306,
732,
150,
180
],
[
4,
306,
732,
150,
180
],
[
4,
459,
732,
150,
180
],
[
4,
459,
732,
150,
180
],
[
4,
459,
732,
150,
180
],
[
4,
459,
732,
150,
180
],
[
4,
612,
732,
150,
180
],
[
4,
612,
732,
150,
180
],
[
4,
612,
732,
150,
180
],
[
4,
612,
732,
150,
180
],
[
4,
765,
732,
150,
180
],
[
4,
918,
732,
150,
180
],
[
4,
918,
732,
150,
180
],
[
4,
1071,
732,
150,
180
]
]
],
[
4,
[
[4,
1530,
2415,
150,
150],
[
4,
1530,
2415,
150,
150
],
[
4,
1683,
2415,
150,
150
],
[
4,
1683,
2415,
150,
150
],
[
4,
1836,
2415,
150,
150
],
[
4,
1836,
2415,
150,
150
],
[
4,
0,
2445,
150,
150
],
[
4,
153,
2445,
150,
150
],
[
4,
306,
2445,
150,
150
],
[
4,
459,
2445,
150,
150
],
[
4,
612,
2445,
150,
150
],
[
4,
765,
2445,
150,
150
],
[
4,
765,
2445,
150,
150
],
[
4,
918,
2445,
150,
150
],
[
4,
1071,
2445,
150,
150
],
[
4,
1224,
2568,
150,
150
],
[
4,
1224,
2568,
150,
150
],
[
4,
1377,
2568,
150,
150
]
]
],
[
5,
[
[3,
459,
980,
150,
150],
[
3,
459,
980,
150,
150
],
[
3,
459,
980,
150,
150
],
[
3,
612,
980,
150,
150
],
[
3,
612,
980,
150,
150
],
[
3,
1027,
982,
150,
150
],
[
3,
1027,
982,
150,
150
],
[
3,
1180,
982,
150,
150
],
[
3,
1180,
982,
150,
150
],
[
3,
0,
1027,
150,
150
],
[
3,
0,
1027,
150,
150
],
[
3,
0,
1027,
150,
150
],
[
3,
1180,
982,
150,
150
],
[
3,
1180,
982,
150,
150
],
[
3,
153,
1027,
150,
150
],
[
3,
153,
1027,
150,
150
],
[
3,
1608,
1102,
150,
150
],
[
3,
1608,
1102,
150,
150
],
[
3,
459,
980,
150,
150
],
[
3,
459,
980,
150,
150
],
[
3,
459,
980,
150,
150
],
[
3,
612,
980,
150,
150
],
[
3,
612,
980,
150,
150
],
[
3,
1027,
982,
150,
150
],
[
3,
1027,
982,
150,
150
],
[
3,
1180,
982,
150,
150
],
[
3,
1180,
982,
150,
150
],
[
3,
0,
1027,
150,
150
],
[
3,
0,
1027,
150,
150
],
[
3,
1761,
1103,
150,
150
],
[
3,
1333,
1120,
150,
150
],
[
3,
1333,
1120,
150,
150
],
[
3,
765,
1127,
150,
150
],
[
3,
306,
1133,
150,
150
],
[
3,
459,
1133,
150,
150
],
[
3,
612,
1133,
150,
150
],
[
3,
918,
1135,
150,
150
],
[
3,
918,
1135,
150,
150
],
[
3,
918,
1135,
150,
150
],
[
3,
1071,
1135,
150,
150
],
[
3,
1071,
1135,
150,
150
],
[
3,
0,
1180,
150,
150
],
[
3,
0,
1180,
150,
150
],
[
3,
153,
1180,
150,
150
],
[
3,
153,
1180,
150,
150
],
[
3,
1486,
1255,
150,
150
],
[
3,
1486,
1255,
150,
150
],
[
3,
1486,
1255,
150,
150
],
[
3,
153,
1180,
150,
150
],
[
3,
153,
1180,
150,
150
],
[
3,
1639,
1256,
150,
150
],
[
3,
1639,
1256,
150,
150
],
[
3,
1792,
1256,
150,
150
],
[
3,
1792,
1256,
150,
150
],
[
3,
918,
1135,
150,
150
],
[
3,
918,
1135,
150,
150
],
[
3,
918,
1135,
150,
150
],
[
3,
1071,
1135,
150,
150
],
[
3,
1071,
1135,
150,
150
],
[
3,
0,
1180,
150,
150
],
[
3,
0,
1180,
150,
150
],
[
3,
153,
1180,
150,
150
],
[
3,
1224,
1273,
150,
150
],
[
3,
765,
1280,
150,
150
],
[
3,
765,
1280,
150,
150
],
[
3,
306,
1286,
150,
150
],
[
3,
459,
1286,
150,
150
],
[
3,
612,
1286,
150,
150
],
[
3,
918,
1288,
150,
150
],
[
3,
918,
1288,
150,
150
],
[
3,
1608,
1102,
150,
150
],
[
3,
1608,
1102,
150,
150
]
]
],
[
6,
[
[5,
459,
1989,
150,
150],
[
5,
459,
1989,
150,
150
],
[
5,
459,
1989,
150,
150
],
[
5,
612,
1989,
150,
150
],
[
5,
612,
1989,
150,
150
],
[
5,
765,
1989,
150,
150
],
[
5,
765,
1989,
150,
150
],
[
5,
918,
1989,
150,
150
],
[
5,
918,
1989,
150,
150
],
[
5,
1071,
1989,
150,
150
],
[
5,
1071,
1989,
150,
150
],
[
5,
1071,
1989,
150,
150
],
[
5,
918,
1989,
150,
150
],
[
5,
918,
1989,
150,
150
],
[
5,
1224,
1989,
150,
150
],
[
5,
1224,
1989,
150,
150
],
[
5,
1377,
1989,
150,
150
],
[
5,
1377,
1989,
150,
150
],
[
5,
1530,
1989,
150,
150
],
[
5,
1530,
1989,
150,
150
],
[
5,
1683,
1989,
150,
150
],
[
5,
1683,
1989,
150,
150
],
[
5,
1836,
1989,
150,
150
],
[
5,
0,
2019,
150,
150
],
[
5,
153,
2142,
150,
150
],
[
5,
153,
2142,
150,
150
],
[
5,
153,
2142,
150,
150
],
[
5,
306,
2142,
150,
150
],
[
5,
306,
2142,
150,
150
],
[
5,
459,
2142,
150,
150
],
[
5,
459,
2142,
150,
150
],
[
5,
612,
2142,
150,
150
],
[
5,
612,
2142,
150,
150
],
[
5,
612,
2142,
150,
150
],
[
5,
306,
2142,
150,
150
],
[
5,
306,
2142,
150,
150
],
[
5,
765,
2142,
150,
150
],
[
5,
765,
2142,
150,
150
],
[
5,
153,
2142,
150,
150
],
[
5,
153,
2142,
150,
150
],
[
5,
153,
2142,
150,
150
],
[
5,
306,
2142,
150,
150
],
[
5,
918,
2142,
150,
150
],
[
5,
1071,
2142,
150,
150
],
[
5,
1224,
2142,
150,
150
],
[
5,
1377,
2142,
150,
150
],
[
5,
1530,
2142,
150,
150
],
[
5,
1530,
2142,
150,
150
],
[
5,
1683,
2142,
150,
150
],
[
5,
1683,
2142,
150,
150
],
[
5,
1836,
2142,
150,
150
],
[
5,
0,
2172,
150,
150
],
[
5,
153,
2295,
150,
150
],
[
5,
306,
2295,
150,
150
],
[
5,
306,
2295,
150,
150
],
[
5,
459,
2295,
150,
150
],
[
5,
459,
2295,
150,
150
],
[
5,
612,
2295,
150,
150
],
[
5,
612,
2295,
150,
150
],
[
5,
612,
2295,
150,
150
],
[
5,
765,
2295,
150,
150
],
[
5,
765,
2295,
150,
150
],
[
5,
918,
2295,
150,
150
],
[
5,
918,
2295,
150,
150
],
[
5,
1071,
2295,
150,
150
],
[
5,
1071,
2295,
150,
150
],
[
5,
1071,
2295,
150,
150
],
[
5,
765,
2295,
150,
150
],
[
5,
765,
2295,
150,
150
],
[
5,
459,
2295,
150,
150
],
[
5,
459,
2295,
150,
150
],
[
5,
612,
2295,
150,
150
],
[
5,
612,
2295,
150,
150
],
[
5,
612,
2295,
150,
150
],
[
5,
1224,
2295,
150,
150
],
[
5,
1224,
2295,
150,
150
],
[
5,
1377,
2295,
150,
150
],
[
5,
1530,
2295,
150,
150
],
[
5,
1683,
2295,
150,
150
],
[
5,
1836,
2295,
150,
150
],
[
5,
1836,
2295,
150,
150
],
[
5,
0,
2325,
150,
150
],
[
5,
0,
2325,
150,
150
],
[
5,
459,
1989,
150,
150
]
]
],
[
7,
[
[5,
153,
2448,
150,
150],
[
5,
153,
2448,
150,
150
],
[
5,
153,
2448,
150,
150
],
[
5,
306,
2448,
150,
150
],
[
5,
306,
2448,
150,
150
],
[
5,
459,
2448,
150,
150
],
[
5,
459,
2448,
150,
150
],
[
5,
612,
2448,
150,
150
],
[
5,
612,
2448,
150,
150
],
[
5,
612,
2448,
150,
150
],
[
5,
459,
2448,
150,
150
],
[
5,
459,
2448,
150,
150
],
[
5,
306,
2448,
150,
150
],
[
5,
306,
2448,
150,
150
],
[
5,
153,
2448,
150,
150
],
[
5,
153,
2448,
150,
150
],
[
5,
765,
2448,
150,
150
],
[
5,
918,
2448,
150,
150
],
[
5,
918,
2448,
150,
150
],
[
5,
1071,
2448,
150,
150
],
[
5,
459,
2448,
150,
150
],
[
5,
612,
2448,
150,
150
],
[
5,
612,
2448,
150,
150
],
[
5,
612,
2448,
150,
150
],
[
5,
459,
2448,
150,
150
],
[
5,
459,
2448,
150,
150
],
[
5,
306,
2448,
150,
150
],
[
5,
306,
2448,
150,
150
],
[
5,
153,
2448,
150,
150
],
[
5,
153,
2448,
150,
150
],
[
5,
153,
2448,
150,
150
],
[
5,
306,
2448,
150,
150
],
[
5,
1224,
2448,
150,
150
],
[
5,
1377,
2448,
150,
150
],
[
5,
1530,
2448,
150,
150
],
[
5,
1683,
2448,
150,
150
],
[
5,
1683,
2448,
150,
150
],
[
5,
1683,
2448,
150,
150
],
[
5,
1530,
2448,
150,
150
],
[
5,
1530,
2448,
150,
150
],
[
5,
1836,
2448,
150,
150
],
[
5,
1836,
2448,
150,
150
],
[
5,
0,
2478,
150,
150
],
[
5,
153,
2601,
150,
150
],
[
5,
306,
2601,
150,
150
],
[
5,
459,
2601,
150,
150
],
[
5,
612,
2601,
150,
150
],
[
5,
765,
2601,
150,
150
],
[
5,
765,
2601,
150,
150
],
[
5,
918,
2601,
150,
150
],
[
5,
918,
2601,
150,
150
],
[
5,
918,
2601,
150,
150
],
[
5,
765,
2601,
150,
150
],
[
5,
765,
2601,
150,
150
],
[
5,
612,
2601,
150,
150
],
[
5,
612,
2601,
150,
150
],
[
5,
1071,
2601,
150,
150
],
[
5,
1071,
2601,
150,
150
],
[
5,
1071,
2601,
150,
150
],
[
5,
1224,
2601,
150,
150
],
[
5,
1377,
2601,
150,
150
],
[
5,
1530,
2601,
150,
150
],
[
5,
459,
2448,
150,
150
],
[
5,
612,
2448,
150,
150
],
[
5,
612,
2448,
150,
150
],
[
5,
612,
2448,
150,
150
],
[
5,
459,
2448,
150,
150
],
[
5,
459,
2448,
150,
150
],
[
5,
306,
2448,
150,
150
],
[
5,
306,
2448,
150,
150
],
[
5,
153,
2448,
150,
150
],
[
5,
153,
2448,
150,
150
]
]
],
[
8,
[
[5,
1683,
2601,
150,
150],
[
5,
1683,
2601,
150,
150
],
[
5,
1683,
2601,
150,
150
],
[
5,
1836,
2601,
150,
150
],
[
5,
1836,
2601,
150,
150
],
[
5,
0,
2631,
150,
150
],
[
5,
0,
2631,
150,
150
],
[
5,
153,
2754,
150,
150
],
[
5,
153,
2754,
150,
150
],
[
5,
153,
2754,
150,
150
],
[
5,
306,
2754,
150,
150
],
[
5,
459,
2754,
150,
150
],
[
5,
612,
2754,
150,
150
],
[
5,
612,
2754,
150,
150
],
[
5,
1683,
2601,
150,
150
],
[
5,
1683,
2601,
150,
150
],
[
5,
1683,
2601,
150,
150
],
[
5,
1836,
2601,
150,
150
],
[
5,
1836,
2601,
150,
150
],
[
5,
0,
2631,
150,
150
],
[
5,
765,
2754,
150,
150
],
[
5,
765,
2754,
150,
150
],
[
5,
918,
2754,
150,
150
],
[
5,
1071,
2754,
150,
150
],
[
5,
1071,
2754,
150,
150
],
[
5,
1224,
2754,
150,
150
],
[
5,
1224,
2754,
150,
150
],
[
5,
1224,
2754,
150,
150
],
[
5,
1377,
2754,
150,
150
],
[
5,
1377,
2754,
150,
150
],
[
5,
1530,
2754,
150,
150
],
[
5,
1530,
2754,
150,
150
],
[
5,
1530,
2754,
150,
150
],
[
5,
1683,
2754,
150,
150
],
[
5,
1683,
2754,
150,
150
],
[
5,
1836,
2754,
150,
150
],
[
5,
1836,
2754,
150,
150
],
[
5,
0,
2784,
150,
150
],
[
5,
0,
2784,
150,
150
],
[
5,
0,
2784,
150,
150
],
[
5,
153,
2907,
150,
150
],
[
5,
153,
2907,
150,
150
],
[
5,
306,
2907,
150,
150
],
[
5,
306,
2907,
150,
150
],
[
5,
459,
2907,
150,
150
],
[
5,
459,
2907,
150,
150
],
[
5,
459,
2907,
150,
150
],
[
5,
612,
2907,
150,
150
],
[
5,
612,
2907,
150,
150
],
[
5,
765,
2907,
150,
150
],
[
5,
765,
2907,
150,
150
],
[
5,
765,
2907,
150,
150
],
[
5,
459,
2907,
150,
150
],
[
5,
459,
2907,
150,
150
],
[
5,
459,
2907,
150,
150
],
[
5,
612,
2907,
150,
150
],
[
5,
612,
2907,
150,
150
],
[
5,
765,
2907,
150,
150
],
[
5,
765,
2907,
150,
150
],
[
5,
765,
2907,
150,
150
],
[
5,
459,
2907,
150,
150
],
[
5,
459,
2907,
150,
150
],
[
5,
459,
2907,
150,
150
],
[
5,
612,
2907,
150,
150
],
[
5,
612,
2907,
150,
150
],
[
5,
765,
2907,
150,
150
],
[
5,
918,
2907,
150,
150
],
[
5,
1071,
2907,
150,
150
],
[
5,
1071,
2907,
150,
150
],
[
5,
1071,
2907,
150,
150
],
[
5,
1224,
2907,
150,
150
],
[
5,
1224,
2907,
150,
150
]
]
],
[
9,
[
[4,
1530,
2568,
150,
150],
[
4,
1683,
2568,
150,
150
],
[
4,
1683,
2568,
150,
150
],
[
4,
1836,
2568,
150,
150
],
[
4,
0,
2598,
150,
150
],
[
4,
153,
2598,
150,
150
],
[
4,
306,
2598,
150,
150
],
[
4,
459,
2598,
150,
150
],
[
4,
1224,
2415,
150,
150
],
[
4,
612,
2598,
150,
150
],
[
4,
765,
2598,
150,
150
],
[
4,
918,
2598,
150,
150
],
[
4,
1071,
2598,
150,
150
],
[
4,
1224,
2721,
150,
150
],
[
4,
1377,
2721,
150,
150
],
[
4,
1530,
2721,
150,
150
],
[
4,
1683,
2721,
150,
150
],
[
4,
1836,
2721,
150,
150
],
[
4,
0,
2751,
150,
150
],
[
4,
153,
2751,
150,
150
],
[
4,
306,
2751,
150,
150
],
[
4,
459,
2751,
150,
150
],
[
4,
612,
2751,
150,
150
],
[
4,
765,
2751,
150,
150
],
[
4,
918,
2751,
150,
150
],
[
4,
1071,
2751,
150,
150
],
[
4,
1071,
2751,
150,
150
],
[
4,
1224,
2874,
150,
150
],
[
4,
1377,
2874,
150,
150
],
[
4,
1530,
2874,
150,
150
],
[
4,
1683,
2874,
150,
150
],
[
4,
1836,
2874,
150,
150
],
[
4,
0,
2904,
150,
150
],
[
4,
153,
2904,
150,
150
],
[
4,
306,
2904,
150,
150
],
[
4,
459,
2904,
150,
150
],
[
4,
612,
2904,
150,
150
],
[
4,
765,
2904,
150,
150
],
[
4,
765,
2904,
150,
150
],
[
4,
765,
2904,
150,
150
],
[
4,
918,
2904,
150,
150
],
[
4,
1071,
2904,
150,
150
],
[
4,
1224,
3027,
150,
150
],
[
4,
1377,
3027,
150,
150
],
[
4,
1530,
3027,
150,
150
],
[
4,
1683,
3027,
150,
150
],
[
4,
1836,
3027,
150,
150
],
[
4,
0,
3057,
150,
150
],
[
4,
1530,
2568,
150,
150
],
[
4,
1683,
2568,
150,
150
],
[
4,
1683,
2568,
150,
150
],
[
4,
1836,
2568,
150,
150
],
[
4,
153,
2598,
150,
150
],
[
4,
306,
2598,
150,
150
],
[
4,
153,
3057,
150,
150
],
[
4,
306,
3057,
150,
150
],
[
4,
918,
2598,
150,
150
],
[
4,
459,
3057,
150,
150
],
[
4,
612,
3057,
150,
150
],
[
4,
765,
3057,
150,
150
],
[
4,
918,
3057,
150,
150
],
[
4,
1071,
3057,
150,
150
],
[
4,
1224,
3180,
150,
150
],
[
4,
1224,
3180,
150,
150
],
[
4,
1377,
3180,
150,
150
],
[
4,
1530,
3180,
150,
150
],
[
4,
1683,
3180,
150,
150
],
[
4,
1836,
3180,
150,
150
],
[
4,
0,
3210,
150,
150
],
[
4,
153,
3210,
150,
150
],
[
4,
306,
3210,
150,
150
],
[
4,
0,
3057,
150,
150
]
]
],
[
10,
[
[4,
1836,
885,
150,
150],
[
4,
0,
915,
150,
150
],
[
4,
0,
915,
150,
150
],
[
4,
153,
915,
150,
150
],
[
4,
306,
915,
150,
150
],
[
4,
459,
915,
150,
150
],
[
4,
612,
915,
150,
150
],
[
4,
765,
915,
150,
150
],
[
4,
918,
915,
150,
150
],
[
4,
1071,
915,
150,
150
],
[
4,
1224,
1038,
150,
150
],
[
4,
1377,
1038,
150,
150
],
[
4,
1530,
1038,
150,
150
],
[
4,
1683,
1038,
150,
150
],
[
4,
1836,
1038,
150,
150
],
[
4,
0,
1068,
150,
150
],
[
4,
153,
1068,
150,
150
],
[
4,
306,
1068,
150,
150
],
[
4,
459,
1068,
150,
150
],
[
4,
612,
1068,
150,
150
],
[
4,
765,
1068,
150,
150
],
[
4,
918,
1068,
150,
150
],
[
4,
1071,
1068,
150,
150
],
[
4,
1224,
1191,
150,
150
],
[
4,
1377,
1191,
150,
150
],
[
4,
1530,
1191,
150,
150
],
[
4,
1683,
1191,
150,
150
],
[
4,
1836,
1191,
150,
150
],
[
4,
0,
1221,
150,
150
],
[
4,
153,
1221,
150,
150
],
[
4,
306,
1221,
150,
150
],
[
4,
459,
1221,
150,
150
],
[
4,
612,
1221,
150,
150
],
[
4,
765,
1221,
150,
150
],
[
4,
918,
1221,
150,
150
],
[
4,
1071,
1221,
150,
150
],
[
4,
1224,
1344,
150,
150
],
[
4,
1377,
1344,
150,
150
],
[
4,
1530,
1344,
150,
150
],
[
4,
1530,
1344,
150,
150
],
[
4,
1683,
1344,
150,
150
],
[
4,
1836,
1344,
150,
150
],
[
4,
0,
1374,
150,
150
],
[
4,
153,
1374,
150,
150
],
[
4,
306,
1374,
150,
150
],
[
4,
459,
1374,
150,
150
],
[
4,
612,
1374,
150,
150
],
[
4,
765,
1374,
150,
150
],
[
4,
918,
1374,
150,
150
],
[
4,
1071,
1374,
150,
150
],
[
4,
1071,
1374,
150,
150
],
[
4,
1224,
1497,
150,
150
],
[
4,
1377,
1497,
150,
150
],
[
4,
1530,
1497,
150,
150
],
[
4,
1683,
1497,
150,
150
],
[
4,
1836,
1497,
150,
150
],
[
4,
0,
1527,
150,
150
],
[
4,
153,
1527,
150,
150
],
[
4,
306,
1527,
150,
150
],
[
4,
459,
1527,
150,
150
],
[
4,
612,
1527,
150,
150
],
[
4,
765,
1527,
150,
150
],
[
4,
765,
1527,
150,
150
],
[
4,
765,
1527,
150,
150
],
[
4,
918,
1527,
150,
150
],
[
4,
1071,
1527,
150,
150
],
[
4,
1224,
1650,
150,
150
],
[
4,
1377,
1650,
150,
150
],
[
4,
1530,
1650,
150,
150
],
[
4,
1683,
1650,
150,
150
],
[
4,
1836,
1650,
150,
150
],
[
4,
0,
1680,
150,
150
],
[
4,
1836,
885,
150,
150
],
[
4,
0,
915,
150,
150
],
[
4,
153,
915,
150,
150
],
[
4,
153,
1680,
150,
150
],
[
4,
459,
915,
150,
150
],
[
4,
306,
1680,
150,
150
],
[
4,
459,
1680,
150,
150
],
[
4,
1836,
1497,
150,
150
],
[
4,
612,
1680,
150,
150
],
[
4,
765,
1680,
150,
150
],
[
4,
918,
1680,
150,
150
],
[
4,
1071,
1680,
150,
150
],
[
4,
1224,
1803,
150,
150
],
[
4,
1377,
1803,
150,
150
],
[
4,
1530,
1803,
150,
150
],
[
4,
1683,
1803,
150,
150
],
[
4,
1836,
1803,
150,
150
],
[
4,
0,
1833,
150,
150
],
[
4,
153,
1833,
150,
150
],
[
4,
306,
1833,
150,
150
],
[
4,
1530,
1650,
150,
150
],
[
4,
459,
1833,
150,
150
],
[
4,
612,
1833,
150,
150
],
[
4,
0,
1680,
150,
150
]
]
],
[
11,
[
[5,
1836,
0,
150,
150],
[
5,
1836,
0,
150,
150
],
[
5,
1836,
0,
150,
150
],
[
5,
153,
153,
150,
150
],
[
5,
306,
153,
150,
150
],
[
5,
306,
153,
150,
150
],
[
5,
459,
153,
150,
150
],
[
5,
459,
153,
150,
150
],
[
5,
612,
153,
150,
150
],
[
5,
765,
153,
150,
150
],
[
5,
918,
153,
150,
150
],
[
5,
1071,
153,
150,
150
],
[
5,
1224,
153,
150,
150
],
[
5,
1377,
153,
150,
150
],
[
5,
1530,
153,
150,
150
],
[
5,
1683,
153,
150,
150
],
[
5,
1836,
153,
150,
150
],
[
5,
0,
183,
150,
150
],
[
5,
153,
306,
150,
150
],
[
5,
306,
306,
150,
150
],
[
5,
459,
306,
150,
150
],
[
5,
612,
306,
150,
150
],
[
5,
765,
306,
150,
150
],
[
5,
765,
306,
150,
150
],
[
5,
1836,
0,
150,
150
],
[
5,
1836,
0,
150,
150
],
[
5,
1836,
0,
150,
150
],
[
5,
153,
153,
150,
150
],
[
5,
306,
153,
150,
150
],
[
5,
918,
306,
150,
150
],
[
5,
459,
153,
150,
150
],
[
5,
1071,
306,
150,
150
],
[
5,
1224,
306,
150,
150
],
[
5,
1377,
306,
150,
150
],
[
5,
1530,
306,
150,
150
],
[
5,
1683,
306,
150,
150
],
[
5,
1836,
306,
150,
150
],
[
5,
1836,
306,
150,
150
],
[
5,
0,
336,
150,
150
],
[
5,
153,
459,
150,
150
],
[
5,
306,
459,
150,
150
],
[
5,
459,
459,
150,
150
],
[
5,
612,
459,
150,
150
],
[
5,
765,
459,
150,
150
],
[
5,
918,
459,
150,
150
],
[
5,
1071,
459,
150,
150
],
[
5,
1224,
459,
150,
150
],
[
5,
1224,
459,
150,
150
],
[
5,
1377,
459,
150,
150
],
[
5,
1377,
459,
150,
150
],
[
5,
1377,
459,
150,
150
],
[
5,
1530,
459,
150,
150
],
[
5,
1683,
459,
150,
150
],
[
5,
1836,
459,
150,
150
],
[
5,
0,
489,
150,
150
],
[
5,
153,
612,
150,
150
],
[
5,
306,
612,
150,
150
],
[
5,
459,
612,
150,
150
],
[
5,
612,
612,
150,
150
],
[
5,
765,
612,
150,
150
],
[
5,
918,
612,
150,
150
],
[
5,
918,
612,
150,
150
],
[
5,
918,
612,
150,
150
],
[
5,
1071,
612,
150,
150
],
[
5,
459,
459,
150,
150
],
[
5,
1224,
612,
150,
150
],
[
5,
1377,
612,
150,
150
],
[
5,
765,
459,
150,
150
],
[
5,
1530,
612,
150,
150
],
[
5,
1683,
612,
150,
150
],
[
5,
1836,
612,
150,
150
],
[
5,
0,
642,
150,
150
]
]
],
[
12,
[
[5,
459,
1071,
150,
150],
[
5,
612,
1071,
150,
150
],
[
5,
612,
1071,
150,
150
],
[
5,
765,
1071,
150,
150
],
[
5,
918,
1071,
150,
150
],
[
5,
1071,
1071,
150,
150
],
[
5,
1224,
1071,
150,
150
],
[
5,
1377,
1071,
150,
150
],
[
5,
1530,
1071,
150,
150
],
[
5,
1683,
1071,
150,
150
],
[
5,
1836,
1071,
150,
150
],
[
5,
0,
1101,
150,
150
],
[
5,
153,
1224,
150,
150
],
[
5,
306,
1224,
150,
150
],
[
5,
459,
1224,
150,
150
],
[
5,
612,
1224,
150,
150
],
[
5,
765,
1224,
150,
150
],
[
5,
918,
1224,
150,
150
],
[
5,
1071,
1224,
150,
150
],
[
5,
1224,
1224,
150,
150
],
[
5,
1377,
1224,
150,
150
],
[
5,
1530,
1224,
150,
150
],
[
5,
1683,
1224,
150,
150
],
[
5,
1836,
1224,
150,
150
],
[
5,
459,
1071,
150,
150
],
[
5,
612,
1071,
150,
150
],
[
5,
612,
1071,
150,
150
],
[
5,
0,
1254,
150,
150
],
[
5,
153,
1377,
150,
150
],
[
5,
306,
1377,
150,
150
],
[
5,
459,
1377,
150,
150
],
[
5,
612,
1377,
150,
150
],
[
5,
765,
1377,
150,
150
],
[
5,
918,
1377,
150,
150
],
[
5,
1071,
1377,
150,
150
],
[
5,
1224,
1377,
150,
150
],
[
5,
1377,
1377,
150,
150
],
[
5,
1530,
1377,
150,
150
],
[
5,
1530,
1377,
150,
150
],
[
5,
1683,
1377,
150,
150
],
[
5,
1836,
1377,
150,
150
],
[
5,
0,
1407,
150,
150
],
[
5,
153,
1530,
150,
150
],
[
5,
306,
1530,
150,
150
],
[
5,
459,
1530,
150,
150
],
[
5,
612,
1530,
150,
150
],
[
5,
765,
1530,
150,
150
],
[
5,
918,
1530,
150,
150
],
[
5,
1071,
1530,
150,
150
],
[
5,
1224,
1530,
150,
150
],
[
5,
1377,
1530,
150,
150
],
[
5,
1530,
1530,
150,
150
],
[
5,
1683,
1530,
150,
150
],
[
5,
1836,
1530,
150,
150
],
[
5,
0,
1560,
150,
150
],
[
5,
153,
1683,
150,
150
],
[
5,
306,
1683,
150,
150
],
[
5,
459,
1683,
150,
150
],
[
5,
612,
1683,
150,
150
],
[
5,
765,
1683,
150,
150
],
[
5,
918,
1683,
150,
150
],
[
5,
1071,
1683,
150,
150
],
[
5,
1071,
1683,
150,
150
],
[
5,
1224,
1683,
150,
150
],
[
5,
1377,
1683,
150,
150
],
[
5,
1530,
1683,
150,
150
],
[
5,
1683,
1683,
150,
150
],
[
5,
1836,
1683,
150,
150
],
[
5,
0,
1713,
150,
150
],
[
5,
153,
1836,
150,
150
],
[
5,
306,
1836,
150,
150
],
[
5,
459,
1836,
150,
150
]
]
],
[
0,
Rh
]])
],
[
'move',
new Map([[1,
[
[3,
1224,
1135,
75,
75],
[
3,
1224,
1135,
75,
75
],
[
3,
1224,
1135,
75,
75
],
[
3,
1945,
1187,
75,
75
],
[
3,
1945,
1187,
75,
75
],
[
3,
1945,
1187,
75,
75
],
[
3,
1945,
1265,
75,
75
],
[
3,
1945,
1265,
75,
75
],
[
3,
1945,
1265,
75,
75
],
[
3,
1377,
1273,
75,
75
],
[
3,
1377,
1273,
75,
75
],
[
3,
1377,
1273,
75,
75
]
]],
[
2,
[
[4,
78,
3444,
75,
90],
[
4,
78,
3444,
75,
90
],
[
4,
156,
3444,
75,
90
],
[
4,
234,
3444,
75,
90
],
[
4,
312,
3444,
75,
90
],
[
4,
1029,
3477,
75,
90
],
[
4,
1107,
3477,
75,
90
],
[
4,
1185,
3477,
75,
90
],
[
4,
1263,
3477,
75,
90
],
[
4,
1263,
3477,
75,
90
],
[
4,
1263,
3477,
75,
90
],
[
4,
1263,
3477,
75,
90
],
[
4,
1341,
3477,
75,
90
],
[
4,
1341,
3477,
75,
90
],
[
4,
1419,
3495,
75,
90
],
[
4,
1419,
3495,
75,
90
],
[
4,
1419,
3495,
75,
90
]
]
],
[
3,
[
[4,
1248,
3570,
75,
90],
[
4,
1248,
3570,
75,
90
],
[
4,
1326,
3570,
75,
90
],
[
4,
1326,
3570,
75,
90
],
[
4,
1326,
3570,
75,
90
],
[
4,
1326,
3570,
75,
90
],
[
4,
1404,
3588,
75,
90
],
[
4,
1404,
3588,
75,
90
],
[
4,
1404,
3588,
75,
90
],
[
4,
1482,
3588,
75,
90
],
[
4,
1482,
3588,
75,
90
],
[
4,
1482,
3588,
75,
90
]
]
],
[
4,
[
[4,
1248,
3663,
75,
75],
[
4,
1248,
3663,
75,
75
],
[
4,
1326,
3663,
75,
75
],
[
4,
1326,
3663,
75,
75
],
[
4,
1326,
3663,
75,
75
],
[
4,
1404,
3681,
75,
75
],
[
4,
1404,
3681,
75,
75
],
[
4,
1404,
3681,
75,
75
],
[
4,
1404,
3681,
75,
75
],
[
4,
1482,
3681,
75,
75
],
[
4,
1482,
3681,
75,
75
],
[
4,
1482,
3681,
75,
75
]
]
],
[
5,
[
[3,
999,
1444,
75,
75],
[
3,
999,
1444,
75,
75
],
[
3,
999,
1444,
75,
75
],
[
3,
1383,
1486,
75,
75
],
[
3,
1383,
1486,
75,
75
],
[
3,
1383,
1486,
75,
75
],
[
3,
1461,
1486,
75,
75
],
[
3,
1461,
1486,
75,
75
],
[
3,
1461,
1486,
75,
75
],
[
3,
1539,
1487,
75,
75
],
[
3,
1539,
1487,
75,
75
],
[
3,
1539,
1487,
75,
75
]
]
],
[
6,
[
[5,
936,
3265,
75,
75],
[
5,
936,
3265,
75,
75
],
[
5,
936,
3265,
75,
75
],
[
5,
1014,
3265,
75,
75
],
[
5,
1014,
3265,
75,
75
],
[
5,
1014,
3265,
75,
75
],
[
5,
1092,
3265,
75,
75
],
[
5,
1092,
3265,
75,
75
],
[
5,
1092,
3265,
75,
75
],
[
5,
1170,
3265,
75,
75
],
[
5,
1170,
3265,
75,
75
],
[
5,
1248,
3265,
75,
75
],
[
5,
1248,
3265,
75,
75
]
]
],
[
7,
[
[5,
156,
3421,
75,
75],
[
5,
156,
3421,
75,
75
],
[
5,
156,
3421,
75,
75
],
[
5,
234,
3421,
75,
75
],
[
5,
234,
3421,
75,
75
],
[
5,
234,
3421,
75,
75
],
[
5,
234,
3421,
75,
75
],
[
5,
312,
3421,
75,
75
],
[
5,
312,
3421,
75,
75
],
[
5,
390,
3421,
75,
75
],
[
5,
390,
3421,
75,
75
],
[
5,
390,
3421,
75,
75
],
[
5,
468,
3421,
75,
75
],
[
5,
468,
3421,
75,
75
],
[
5,
468,
3421,
75,
75
]
]
],
[
8,
[
[5,
1482,
3465,
75,
75],
[
5,
1482,
3465,
75,
75
],
[
5,
1560,
3469,
75,
75
],
[
5,
1560,
3469,
75,
75
],
[
5,
1638,
3469,
75,
75
],
[
5,
1638,
3469,
75,
75
],
[
5,
1638,
3469,
75,
75
],
[
5,
1638,
3469,
75,
75
],
[
5,
1716,
3469,
75,
75
],
[
5,
1794,
3469,
75,
75
],
[
5,
1794,
3469,
75,
75
],
[
5,
1794,
3469,
75,
75
]
]
],
[
9,
[
[4,
612,
2139,
150,
150],
[
4,
612,
2139,
150,
150
],
[
4,
612,
2139,
150,
150
],
[
4,
765,
2139,
150,
150
],
[
4,
765,
2139,
150,
150
],
[
4,
765,
2139,
150,
150
],
[
4,
918,
2139,
150,
150
],
[
4,
918,
2139,
150,
150
],
[
4,
918,
2139,
150,
150
],
[
4,
1071,
2139,
150,
150
],
[
4,
1071,
2139,
150,
150
],
[
4,
1071,
2139,
150,
150
]
]
],
[
10,
[
[4,
765,
1833,
150,
150],
[
4,
765,
1833,
150,
150
],
[
4,
765,
1833,
150,
150
],
[
4,
918,
1833,
150,
150
],
[
4,
918,
1833,
150,
150
],
[
4,
918,
1833,
150,
150
],
[
4,
1071,
1833,
150,
150
],
[
4,
1071,
1833,
150,
150
],
[
4,
1071,
1833,
150,
150
],
[
4,
1224,
1956,
150,
150
],
[
4,
1224,
1956,
150,
150
],
[
4,
1224,
1956,
150,
150
]
]
],
[
11,
[
[5,
153,
765,
150,
150],
[
5,
153,
765,
150,
150
],
[
5,
153,
765,
150,
150
],
[
5,
306,
765,
150,
150
],
[
5,
306,
765,
150,
150
],
[
5,
306,
765,
150,
150
],
[
5,
459,
765,
150,
150
],
[
5,
459,
765,
150,
150
],
[
5,
459,
765,
150,
150
],
[
5,
612,
765,
150,
150
],
[
5,
612,
765,
150,
150
],
[
5,
612,
765,
150,
150
]
]
],
[
12,
[
[5,
612,
1836,
150,
150],
[
5,
612,
1836,
150,
150
],
[
5,
612,
1836,
150,
150
],
[
5,
765,
1836,
150,
150
],
[
5,
765,
1836,
150,
150
],
[
5,
765,
1836,
150,
150
],
[
5,
918,
1836,
150,
150
],
[
5,
918,
1836,
150,
150
],
[
5,
918,
1836,
150,
150
],
[
5,
1071,
1836,
150,
150
],
[
5,
1071,
1836,
150,
150
],
[
5,
1071,
1836,
150,
150
]
]
],
[
0,
Rh
]])
],
[
'happy',
new Map([[1,
[
[3,
1924,
220,
75,
75],
[
3,
1924,
220,
75,
75
],
[
3,
1924,
298,
75,
75
],
[
3,
1924,
298,
75,
75
],
[
3,
1924,
376,
75,
75
],
[
3,
1924,
376,
75,
75
],
[
3,
1924,
454,
75,
75
],
[
3,
1924,
454,
75,
75
],
[
3,
1924,
532,
75,
75
],
[
3,
1924,
532,
75,
75
],
[
3,
1924,
610,
75,
75
],
[
3,
1969,
797,
75,
75
],
[
3,
1969,
797,
75,
75
],
[
3,
1027,
821,
75,
75
],
[
3,
1027,
821,
75,
75
],
[
3,
306,
874,
75,
75
],
[
3,
306,
874,
75,
75
],
[
3,
1969,
875,
75,
75
],
[
3,
1969,
875,
75,
75
],
[
3,
1969,
875,
75,
75
],
[
3,
1027,
899,
75,
75
],
[
3,
1027,
899,
75,
75
],
[
3,
1027,
899,
75,
75
],
[
3,
1027,
899,
75,
75
],
[
3,
1914,
953,
75,
75
],
[
3,
1914,
953,
75,
75
],
[
3,
1914,
953,
75,
75
],
[
3,
1914,
953,
75,
75
],
[
3,
765,
980,
75,
75
],
[
3,
765,
980,
75,
75
],
[
3,
1333,
982,
75,
75
],
[
3,
1914,
1031,
75,
75
],
[
3,
1914,
1031,
75,
75
],
[
3,
1914,
1109,
75,
75
],
[
3,
1914,
1109,
75,
75
],
[
3,
1486,
1120,
75,
75
],
[
3,
1486,
1120,
75,
75
]
]],
[
2,
[
[4,
1734,
3414,
75,
90],
[
4,
1734,
3414,
75,
90
],
[
4,
1812,
3414,
75,
90
],
[
4,
1812,
3414,
75,
90
],
[
4,
1812,
3414,
75,
90
],
[
4,
1890,
3414,
75,
90
],
[
4,
1890,
3414,
75,
90
],
[
4,
1890,
3414,
75,
90
],
[
4,
1890,
3414,
75,
90
],
[
4,
1890,
3414,
75,
90
],
[
4,
1890,
3414,
75,
90
],
[
4,
1890,
3414,
75,
90
],
[
4,
1968,
3414,
75,
90
],
[
4,
1968,
3414,
75,
90
],
[
4,
405,
3435,
75,
90
],
[
4,
483,
3435,
75,
90
],
[
4,
483,
3435,
75,
90
],
[
4,
561,
3435,
75,
90
],
[
4,
561,
3435,
75,
90
],
[
4,
561,
3435,
75,
90
],
[
4,
561,
3435,
75,
90
],
[
4,
561,
3435,
75,
90
],
[
4,
561,
3435,
75,
90
],
[
4,
561,
3435,
75,
90
],
[
4,
561,
3435,
75,
90
],
[
4,
561,
3435,
75,
90
],
[
4,
639,
3435,
75,
90
],
[
4,
639,
3435,
75,
90
],
[
4,
717,
3435,
75,
90
],
[
4,
717,
3435,
75,
90
],
[
4,
717,
3435,
75,
90
],
[
4,
795,
3435,
75,
90
],
[
4,
561,
3435,
75,
90
],
[
4,
561,
3435,
75,
90
],
[
4,
561,
3435,
75,
90
],
[
4,
561,
3435,
75,
90
],
[
4,
561,
3435,
75,
90
],
[
4,
873,
3435,
75,
90
],
[
4,
873,
3435,
75,
90
],
[
4,
951,
3435,
75,
90
],
[
4,
951,
3435,
75,
90
],
[
4,
0,
3444,
75,
90
],
[
4,
0,
3444,
75,
90
]
]
],
[
3,
[
[4,
780,
3528,
75,
90],
[
4,
780,
3528,
75,
90
],
[
4,
858,
3528,
75,
90
],
[
4,
858,
3528,
75,
90
],
[
4,
936,
3528,
75,
90
],
[
4,
936,
3528,
75,
90
],
[
4,
0,
3537,
75,
90
],
[
4,
0,
3537,
75,
90
],
[
4,
78,
3537,
75,
90
],
[
4,
78,
3537,
75,
90
],
[
4,
156,
3537,
75,
90
],
[
4,
156,
3537,
75,
90
],
[
4,
234,
3537,
75,
90
],
[
4,
234,
3537,
75,
90
],
[
4,
234,
3537,
75,
90
],
[
4,
234,
3537,
75,
90
],
[
4,
312,
3537,
75,
90
],
[
4,
312,
3537,
75,
90
],
[
4,
312,
3537,
75,
90
],
[
4,
312,
3537,
75,
90
],
[
4,
312,
3537,
75,
90
],
[
4,
312,
3537,
75,
90
],
[
4,
312,
3537,
75,
90
],
[
4,
312,
3537,
75,
90
],
[
4,
312,
3537,
75,
90
],
[
4,
1014,
3570,
75,
90
],
[
4,
1092,
3570,
75,
90
],
[
4,
1092,
3570,
75,
90
],
[
4,
1170,
3570,
75,
90
],
[
4,
1170,
3570,
75,
90
]
]
],
[
4,
[
[4,
546,
3621,
75,
75],
[
4,
546,
3621,
75,
75
],
[
4,
624,
3621,
75,
75
],
[
4,
624,
3621,
75,
75
],
[
4,
702,
3621,
75,
75
],
[
4,
702,
3621,
75,
75
],
[
4,
780,
3621,
75,
75
],
[
4,
780,
3621,
75,
75
],
[
4,
858,
3621,
75,
75
],
[
4,
936,
3621,
75,
75
],
[
4,
0,
3630,
75,
75
],
[
4,
0,
3630,
75,
75
],
[
4,
78,
3630,
75,
75
],
[
4,
78,
3630,
75,
75
],
[
4,
78,
3630,
75,
75
],
[
4,
78,
3630,
75,
75
],
[
4,
156,
3630,
75,
75
],
[
4,
156,
3630,
75,
75
],
[
4,
156,
3630,
75,
75
],
[
4,
156,
3630,
75,
75
],
[
4,
156,
3630,
75,
75
],
[
4,
156,
3630,
75,
75
],
[
4,
156,
3630,
75,
75
],
[
4,
234,
3630,
75,
75
],
[
4,
234,
3630,
75,
75
],
[
4,
234,
3630,
75,
75
],
[
4,
234,
3630,
75,
75
],
[
4,
312,
3630,
75,
75
],
[
4,
312,
3630,
75,
75
],
[
4,
1014,
3663,
75,
75
],
[
4,
1092,
3663,
75,
75
],
[
4,
1170,
3663,
75,
75
],
[
4,
1170,
3663,
75,
75
]
]
],
[
5,
[
[3,
1923,
1421,
75,
75],
[
3,
1923,
1421,
75,
75
],
[
3,
1149,
1426,
75,
75
],
[
3,
1149,
1426,
75,
75
],
[
3,
1227,
1426,
75,
75
],
[
3,
1227,
1426,
75,
75
],
[
3,
1305,
1429,
75,
75
],
[
3,
765,
1433,
75,
75
],
[
3,
765,
1433,
75,
75
],
[
3,
765,
1433,
75,
75
],
[
3,
765,
1433,
75,
75
],
[
3,
765,
1433,
75,
75
],
[
3,
765,
1433,
75,
75
],
[
3,
234,
1439,
75,
75
],
[
3,
234,
1439,
75,
75
],
[
3,
312,
1439,
75,
75
],
[
3,
312,
1439,
75,
75
],
[
3,
390,
1439,
75,
75
],
[
3,
390,
1439,
75,
75
],
[
3,
468,
1439,
75,
75
],
[
3,
468,
1439,
75,
75
],
[
3,
468,
1439,
75,
75
],
[
3,
468,
1439,
75,
75
],
[
3,
468,
1439,
75,
75
],
[
3,
468,
1439,
75,
75
],
[
3,
468,
1439,
75,
75
],
[
3,
468,
1439,
75,
75
],
[
3,
468,
1439,
75,
75
],
[
3,
468,
1439,
75,
75
],
[
3,
468,
1439,
75,
75
],
[
3,
468,
1439,
75,
75
],
[
3,
546,
1439,
75,
75
],
[
3,
546,
1439,
75,
75
],
[
3,
624,
1439,
75,
75
],
[
3,
624,
1439,
75,
75
],
[
3,
843,
1441,
75,
75
],
[
3,
843,
1441,
75,
75
],
[
3,
921,
1441,
75,
75
],
[
3,
921,
1441,
75,
75
]
]
],
[
6,
[
[5,
0,
3263,
75,
75],
[
5,
0,
3263,
75,
75
],
[
5,
78,
3265,
75,
75
],
[
5,
78,
3265,
75,
75
],
[
5,
156,
3265,
75,
75
],
[
5,
156,
3265,
75,
75
],
[
5,
234,
3265,
75,
75
],
[
5,
234,
3265,
75,
75
],
[
5,
312,
3265,
75,
75
],
[
5,
312,
3265,
75,
75
],
[
5,
390,
3265,
75,
75
],
[
5,
390,
3265,
75,
75
],
[
5,
468,
3265,
75,
75
],
[
5,
468,
3265,
75,
75
],
[
5,
468,
3265,
75,
75
],
[
5,
546,
3265,
75,
75
],
[
5,
546,
3265,
75,
75
],
[
5,
546,
3265,
75,
75
],
[
5,
546,
3265,
75,
75
],
[
5,
546,
3265,
75,
75
],
[
5,
546,
3265,
75,
75
],
[
5,
546,
3265,
75,
75
],
[
5,
546,
3265,
75,
75
],
[
5,
546,
3265,
75,
75
],
[
5,
546,
3265,
75,
75
],
[
5,
624,
3265,
75,
75
],
[
5,
624,
3265,
75,
75
],
[
5,
702,
3265,
75,
75
],
[
5,
702,
3265,
75,
75
],
[
5,
780,
3265,
75,
75
],
[
5,
780,
3265,
75,
75
],
[
5,
858,
3265,
75,
75
]
]
],
[
7,
[
[5,
78,
3343,
75,
75],
[
5,
78,
3343,
75,
75
],
[
5,
156,
3343,
75,
75
],
[
5,
156,
3343,
75,
75
],
[
5,
234,
3343,
75,
75
],
[
5,
312,
3343,
75,
75
],
[
5,
390,
3343,
75,
75
],
[
5,
468,
3343,
75,
75
],
[
5,
546,
3343,
75,
75
],
[
5,
624,
3343,
75,
75
],
[
5,
702,
3343,
75,
75
],
[
5,
780,
3343,
75,
75
],
[
5,
858,
3343,
75,
75
],
[
5,
936,
3343,
75,
75
],
[
5,
1014,
3343,
75,
75
],
[
5,
1092,
3343,
75,
75
],
[
5,
1170,
3343,
75,
75
],
[
5,
1248,
3343,
75,
75
],
[
5,
1872,
3350,
75,
75
],
[
5,
1950,
3350,
75,
75
],
[
5,
1950,
3350,
75,
75
],
[
5,
1326,
3352,
75,
75
],
[
5,
1404,
3352,
75,
75
],
[
5,
1482,
3387,
75,
75
],
[
5,
1560,
3391,
75,
75
],
[
5,
1560,
3391,
75,
75
],
[
5,
1638,
3391,
75,
75
],
[
5,
1638,
3391,
75,
75
],
[
5,
1638,
3391,
75,
75
],
[
5,
1716,
3391,
75,
75
],
[
5,
1716,
3391,
75,
75
],
[
5,
1716,
3391,
75,
75
],
[
5,
1716,
3391,
75,
75
],
[
5,
1794,
3391,
75,
75
],
[
5,
1794,
3391,
75,
75
],
[
5,
0,
3419,
75,
75
],
[
5,
0,
3419,
75,
75
],
[
5,
0,
3419,
75,
75
],
[
5,
78,
3421,
75,
75
],
[
5,
78,
3421,
75,
75
]
]
],
[
8,
[
[5,
936,
3421,
75,
75],
[
5,
936,
3421,
75,
75
],
[
5,
1014,
3421,
75,
75
],
[
5,
1014,
3421,
75,
75
],
[
5,
1092,
3421,
75,
75
],
[
5,
1092,
3421,
75,
75
],
[
5,
1170,
3421,
75,
75
],
[
5,
1170,
3421,
75,
75
],
[
5,
1248,
3421,
75,
75
],
[
5,
1248,
3421,
75,
75
],
[
5,
1248,
3421,
75,
75
],
[
5,
1092,
3421,
75,
75
],
[
5,
1092,
3421,
75,
75
],
[
5,
1170,
3421,
75,
75
],
[
5,
1170,
3421,
75,
75
],
[
5,
1248,
3421,
75,
75
],
[
5,
1248,
3421,
75,
75
],
[
5,
1248,
3421,
75,
75
],
[
5,
1092,
3421,
75,
75
],
[
5,
1092,
3421,
75,
75
],
[
5,
1170,
3421,
75,
75
],
[
5,
1170,
3421,
75,
75
],
[
5,
1248,
3421,
75,
75
],
[
5,
1248,
3421,
75,
75
],
[
5,
1248,
3421,
75,
75
],
[
5,
1092,
3421,
75,
75
],
[
5,
1092,
3421,
75,
75
],
[
5,
1872,
3428,
75,
75
],
[
5,
1872,
3428,
75,
75
],
[
5,
1950,
3428,
75,
75
],
[
5,
1950,
3428,
75,
75
],
[
5,
1326,
3430,
75,
75
],
[
5,
1326,
3430,
75,
75
],
[
5,
1404,
3430,
75,
75
],
[
5,
1404,
3430,
75,
75
]
]
],
[
9,
[
[4,
918,
1986,
150,
150],
[
4,
918,
1986,
150,
150
],
[
4,
1071,
1986,
150,
150
],
[
4,
1071,
1986,
150,
150
],
[
4,
1224,
2109,
150,
150
],
[
4,
1224,
2109,
150,
150
],
[
4,
1377,
2109,
150,
150
],
[
4,
1377,
2109,
150,
150
],
[
4,
1377,
2109,
150,
150
],
[
4,
1377,
2109,
150,
150
],
[
4,
1530,
2109,
150,
150
],
[
4,
1530,
2109,
150,
150
],
[
4,
1683,
2109,
150,
150
],
[
4,
1683,
2109,
150,
150
],
[
4,
1836,
2109,
150,
150
],
[
4,
1836,
2109,
150,
150
],
[
4,
0,
2139,
150,
150
],
[
4,
0,
2139,
150,
150
],
[
4,
153,
2139,
150,
150
],
[
4,
153,
2139,
150,
150
],
[
4,
153,
2139,
150,
150
],
[
4,
153,
2139,
150,
150
],
[
4,
153,
2139,
150,
150
],
[
4,
153,
2139,
150,
150
],
[
4,
153,
2139,
150,
150
],
[
4,
153,
2139,
150,
150
],
[
4,
153,
2139,
150,
150
],
[
4,
153,
2139,
150,
150
],
[
4,
153,
2139,
150,
150
],
[
4,
153,
2139,
150,
150
],
[
4,
153,
2139,
150,
150
],
[
4,
306,
2139,
150,
150
],
[
4,
306,
2139,
150,
150
],
[
4,
459,
2139,
150,
150
],
[
4,
459,
2139,
150,
150
],
[
4,
918,
1986,
150,
150
],
[
4,
918,
1986,
150,
150
]
]
],
[
10,
[
[4,
1224,
732,
150,
150],
[
4,
1224,
732,
150,
150
],
[
4,
1377,
732,
150,
150
],
[
4,
1377,
732,
150,
150
],
[
4,
1530,
732,
150,
150
],
[
4,
1530,
732,
150,
150
],
[
4,
1683,
732,
150,
150
],
[
4,
1683,
732,
150,
150
],
[
4,
1836,
732,
150,
150
],
[
4,
1836,
732,
150,
150
],
[
4,
1224,
885,
150,
150
],
[
4,
1224,
885,
150,
150
],
[
4,
1224,
885,
150,
150
],
[
4,
1224,
885,
150,
150
],
[
4,
1224,
885,
150,
150
],
[
4,
1224,
885,
150,
150
],
[
4,
1224,
885,
150,
150
],
[
4,
1224,
885,
150,
150
],
[
4,
1224,
885,
150,
150
],
[
4,
1224,
885,
150,
150
],
[
4,
1224,
885,
150,
150
],
[
4,
1224,
885,
150,
150
],
[
4,
1224,
885,
150,
150
],
[
4,
1224,
885,
150,
150
],
[
4,
1224,
885,
150,
150
],
[
4,
1224,
885,
150,
150
],
[
4,
1224,
885,
150,
150
],
[
4,
1224,
885,
150,
150
],
[
4,
1224,
885,
150,
150
],
[
4,
1377,
885,
150,
150
],
[
4,
1377,
885,
150,
150
],
[
4,
1530,
885,
150,
150
],
[
4,
1530,
885,
150,
150
],
[
4,
1683,
885,
150,
150
],
[
4,
1683,
885,
150,
150
],
[
4,
1224,
732,
150,
150
],
[
4,
1224,
732,
150,
150
]
]
],
[
11,
[
[5,
153,
0,
150,
150],
[
5,
153,
0,
150,
150
],
[
5,
306,
0,
150,
150
],
[
5,
459,
0,
150,
150
],
[
5,
612,
0,
150,
150
],
[
5,
612,
0,
150,
150
],
[
5,
765,
0,
150,
150
],
[
5,
918,
0,
150,
150
],
[
5,
1071,
0,
150,
150
],
[
5,
1071,
0,
150,
150
],
[
5,
1071,
0,
150,
150
],
[
5,
1071,
0,
150,
150
],
[
5,
1071,
0,
150,
150
],
[
5,
1071,
0,
150,
150
],
[
5,
1071,
0,
150,
150
],
[
5,
1071,
0,
150,
150
],
[
5,
1071,
0,
150,
150
],
[
5,
1071,
0,
150,
150
],
[
5,
1071,
0,
150,
150
],
[
5,
1071,
0,
150,
150
],
[
5,
1071,
0,
150,
150
],
[
5,
1071,
0,
150,
150
],
[
5,
1071,
0,
150,
150
],
[
5,
1071,
0,
150,
150
],
[
5,
1071,
0,
150,
150
],
[
5,
1071,
0,
150,
150
],
[
5,
1071,
0,
150,
150
],
[
5,
1071,
0,
150,
150
],
[
5,
1071,
0,
150,
150
],
[
5,
1071,
0,
150,
150
],
[
5,
1224,
0,
150,
150
],
[
5,
1224,
0,
150,
150
],
[
5,
1377,
0,
150,
150
],
[
5,
1377,
0,
150,
150
],
[
5,
1530,
0,
150,
150
],
[
5,
1683,
0,
150,
150
],
[
5,
1683,
0,
150,
150
]
]
],
[
12,
[
[5,
153,
918,
150,
150],
[
5,
153,
918,
150,
150
],
[
5,
306,
918,
150,
150
],
[
5,
306,
918,
150,
150
],
[
5,
306,
918,
150,
150
],
[
5,
459,
918,
150,
150
],
[
5,
459,
918,
150,
150
],
[
5,
459,
918,
150,
150
],
[
5,
612,
918,
150,
150
],
[
5,
765,
918,
150,
150
],
[
5,
918,
918,
150,
150
],
[
5,
918,
918,
150,
150
],
[
5,
1071,
918,
150,
150
],
[
5,
1224,
918,
150,
150
],
[
5,
1224,
918,
150,
150
],
[
5,
1224,
918,
150,
150
],
[
5,
1224,
918,
150,
150
],
[
5,
1377,
918,
150,
150
],
[
5,
1377,
918,
150,
150
],
[
5,
1377,
918,
150,
150
],
[
5,
1377,
918,
150,
150
],
[
5,
1377,
918,
150,
150
],
[
5,
1377,
918,
150,
150
],
[
5,
1377,
918,
150,
150
],
[
5,
1377,
918,
150,
150
],
[
5,
1530,
918,
150,
150
],
[
5,
1530,
918,
150,
150
],
[
5,
1683,
918,
150,
150
],
[
5,
1836,
918,
150,
150
],
[
5,
1836,
918,
150,
150
],
[
5,
0,
948,
150,
150
],
[
5,
0,
948,
150,
150
],
[
5,
153,
1071,
150,
150
],
[
5,
306,
1071,
150,
150
],
[
5,
306,
1071,
150,
150
],
[
5,
153,
918,
150,
150
],
[
5,
153,
918,
150,
150
]
]
],
[
0,
Rh
]])
],
[
'sad',
new Map([[1,
[
[3,
1071,
1288,
75,
75],
[
3,
1071,
1288,
75,
75
],
[
3,
1071,
1288,
75,
75
],
[
3,
1071,
1288,
75,
75
],
[
3,
0,
1333,
75,
75
],
[
3,
0,
1333,
75,
75
],
[
3,
78,
1333,
75,
75
],
[
3,
156,
1333,
75,
75
],
[
3,
156,
1333,
75,
75
],
[
3,
1945,
1343,
75,
75
],
[
3,
1945,
1343,
75,
75
],
[
3,
1945,
1343,
75,
75
],
[
3,
1945,
1343,
75,
75
],
[
3,
1945,
1343,
75,
75
],
[
3,
1945,
1343,
75,
75
],
[
3,
1945,
1343,
75,
75
],
[
3,
1945,
1343,
75,
75
],
[
3,
1945,
1343,
75,
75
],
[
3,
1945,
1343,
75,
75
],
[
3,
1945,
1343,
75,
75
],
[
3,
1945,
1343,
75,
75
],
[
3,
1945,
1343,
75,
75
],
[
3,
1945,
1343,
75,
75
],
[
3,
1945,
1343,
75,
75
],
[
3,
1945,
1343,
75,
75
],
[
3,
1945,
1343,
75,
75
],
[
3,
1377,
1351,
75,
75
],
[
3,
1377,
1351,
75,
75
],
[
3,
1071,
1366,
75,
75
],
[
3,
1071,
1366,
75,
75
],
[
3,
1455,
1408,
75,
75
],
[
3,
1533,
1408,
75,
75
],
[
3,
1533,
1408,
75,
75
],
[
3,
1533,
1408,
75,
75
],
[
3,
1071,
1288,
75,
75
]
]],
[
2,
[
[4,
1497,
3495,
75,
90],
[
4,
1497,
3495,
75,
90
],
[
4,
1575,
3495,
75,
90
],
[
4,
1575,
3495,
75,
90
],
[
4,
1653,
3495,
75,
90
],
[
4,
1731,
3507,
75,
90
],
[
4,
1809,
3507,
75,
90
],
[
4,
1887,
3507,
75,
90
],
[
4,
1965,
3507,
75,
90
],
[
4,
390,
3528,
75,
90
],
[
4,
390,
3528,
75,
90
],
[
4,
1965,
3507,
75,
90
],
[
4,
1965,
3507,
75,
90
],
[
4,
468,
3528,
75,
90
],
[
4,
468,
3528,
75,
90
],
[
4,
1965,
3507,
75,
90
],
[
4,
1965,
3507,
75,
90
],
[
4,
468,
3528,
75,
90
],
[
4,
468,
3528,
75,
90
],
[
4,
1965,
3507,
75,
90
],
[
4,
1965,
3507,
75,
90
],
[
4,
468,
3528,
75,
90
],
[
4,
468,
3528,
75,
90
],
[
4,
1965,
3507,
75,
90
],
[
4,
1965,
3507,
75,
90
],
[
4,
468,
3528,
75,
90
],
[
4,
468,
3528,
75,
90
],
[
4,
1965,
3507,
75,
90
],
[
4,
1965,
3507,
75,
90
],
[
4,
468,
3528,
75,
90
],
[
4,
468,
3528,
75,
90
],
[
4,
1965,
3507,
75,
90
],
[
4,
1965,
3507,
75,
90
],
[
4,
468,
3528,
75,
90
],
[
4,
468,
3528,
75,
90
],
[
4,
1965,
3507,
75,
90
],
[
4,
546,
3528,
75,
90
],
[
4,
624,
3528,
75,
90
],
[
4,
624,
3528,
75,
90
],
[
4,
1497,
3495,
75,
90
],
[
4,
1497,
3495,
75,
90
],
[
4,
702,
3528,
75,
90
],
[
4,
702,
3528,
75,
90
]
]
],
[
3,
[
[4,
1560,
3588,
75,
90],
[
4,
1560,
3588,
75,
90
],
[
4,
1638,
3588,
75,
90
],
[
4,
1638,
3588,
75,
90
],
[
4,
1716,
3600,
75,
90
],
[
4,
1716,
3600,
75,
90
],
[
4,
1794,
3600,
75,
90
],
[
4,
1872,
3600,
75,
90
],
[
4,
1872,
3600,
75,
90
],
[
4,
1950,
3600,
75,
90
],
[
4,
1950,
3600,
75,
90
],
[
4,
1950,
3600,
75,
90
],
[
4,
1950,
3600,
75,
90
],
[
4,
1950,
3600,
75,
90
],
[
4,
1950,
3600,
75,
90
],
[
4,
1950,
3600,
75,
90
],
[
4,
1950,
3600,
75,
90
],
[
4,
1950,
3600,
75,
90
],
[
4,
1950,
3600,
75,
90
],
[
4,
1950,
3600,
75,
90
],
[
4,
1950,
3600,
75,
90
],
[
4,
1950,
3600,
75,
90
],
[
4,
1950,
3600,
75,
90
],
[
4,
1950,
3600,
75,
90
],
[
4,
390,
3621,
75,
90
],
[
4,
390,
3621,
75,
90
],
[
4,
468,
3621,
75,
90
],
[
4,
468,
3621,
75,
90
]
]
],
[
4,
[
[4,
1560,
3681,
75,
75],
[
4,
1638,
3681,
75,
75
],
[
4,
1638,
3681,
75,
75
],
[
4,
1716,
3693,
75,
75
],
[
4,
1716,
3693,
75,
75
],
[
4,
1794,
3693,
75,
75
],
[
4,
1794,
3693,
75,
75
],
[
4,
1872,
3693,
75,
75
],
[
4,
1872,
3693,
75,
75
],
[
4,
1872,
3693,
75,
75
],
[
4,
1950,
3693,
75,
75
],
[
4,
1950,
3693,
75,
75
],
[
4,
546,
3699,
75,
75
],
[
4,
546,
3699,
75,
75
],
[
4,
624,
3699,
75,
75
],
[
4,
624,
3699,
75,
75
],
[
4,
702,
3699,
75,
75
],
[
4,
702,
3699,
75,
75
],
[
4,
702,
3699,
75,
75
],
[
4,
702,
3699,
75,
75
],
[
4,
702,
3699,
75,
75
],
[
4,
702,
3699,
75,
75
],
[
4,
702,
3699,
75,
75
],
[
4,
780,
3699,
75,
75
],
[
4,
780,
3699,
75,
75
],
[
4,
858,
3699,
75,
75
],
[
4,
858,
3699,
75,
75
],
[
4,
936,
3699,
75,
75
],
[
4,
936,
3699,
75,
75
],
[
4,
0,
3708,
75,
75
],
[
4,
0,
3708,
75,
75
],
[
4,
78,
3708,
75,
75
],
[
4,
78,
3708,
75,
75
],
[
4,
156,
3708,
75,
75
]
]
],
[
5,
[
[3,
1617,
1487,
75,
75],
[
3,
1617,
1487,
75,
75
],
[
3,
1695,
1487,
75,
75
],
[
3,
1773,
1487,
75,
75
],
[
3,
0,
1489,
75,
75
],
[
3,
78,
1489,
75,
75
],
[
3,
1773,
1487,
75,
75
],
[
3,
0,
1489,
75,
75
],
[
3,
78,
1489,
75,
75
],
[
3,
1773,
1487,
75,
75
],
[
3,
0,
1489,
75,
75
],
[
3,
78,
1489,
75,
75
],
[
3,
1773,
1487,
75,
75
],
[
3,
0,
1489,
75,
75
],
[
3,
78,
1489,
75,
75
],
[
3,
1773,
1487,
75,
75
],
[
3,
0,
1489,
75,
75
],
[
3,
78,
1489,
75,
75
],
[
3,
1773,
1487,
75,
75
],
[
3,
0,
1489,
75,
75
],
[
3,
156,
1489,
75,
75
],
[
3,
156,
1489,
75,
75
],
[
3,
1851,
1499,
75,
75
],
[
3,
1851,
1499,
75,
75
]
]
],
[
6,
[
[5,
1931,
3272,
75,
75],
[
5,
1931,
3272,
75,
75
],
[
5,
1326,
3274,
75,
75
],
[
5,
1326,
3274,
75,
75
],
[
5,
1404,
3274,
75,
75
],
[
5,
1404,
3274,
75,
75
],
[
5,
1482,
3309,
75,
75
],
[
5,
1482,
3309,
75,
75
],
[
5,
1560,
3313,
75,
75
],
[
5,
1560,
3313,
75,
75
],
[
5,
1482,
3309,
75,
75
],
[
5,
1482,
3309,
75,
75
],
[
5,
1560,
3313,
75,
75
],
[
5,
1560,
3313,
75,
75
],
[
5,
1482,
3309,
75,
75
],
[
5,
1482,
3309,
75,
75
],
[
5,
1560,
3313,
75,
75
],
[
5,
1638,
3313,
75,
75
],
[
5,
1716,
3313,
75,
75
],
[
5,
1794,
3313,
75,
75
],
[
5,
1794,
3313,
75,
75
],
[
5,
0,
3341,
75,
75
],
[
5,
0,
3341,
75,
75
]
]
],
[
7,
[
[5,
78,
3343,
75,
75],
[
5,
78,
3343,
75,
75
],
[
5,
546,
3421,
75,
75
],
[
5,
546,
3421,
75,
75
],
[
5,
624,
3421,
75,
75
],
[
5,
702,
3421,
75,
75
],
[
5,
702,
3421,
75,
75
],
[
5,
780,
3421,
75,
75
],
[
5,
780,
3421,
75,
75
],
[
5,
858,
3421,
75,
75
],
[
5,
858,
3421,
75,
75
],
[
5,
858,
3421,
75,
75
],
[
5,
858,
3421,
75,
75
],
[
5,
858,
3421,
75,
75
],
[
5,
858,
3421,
75,
75
],
[
5,
858,
3421,
75,
75
],
[
5,
858,
3421,
75,
75
],
[
5,
858,
3421,
75,
75
],
[
5,
858,
3421,
75,
75
],
[
5,
858,
3421,
75,
75
],
[
5,
858,
3421,
75,
75
],
[
5,
858,
3421,
75,
75
],
[
5,
858,
3421,
75,
75
],
[
5,
858,
3421,
75,
75
],
[
5,
858,
3421,
75,
75
],
[
5,
858,
3421,
75,
75
],
[
5,
858,
3421,
75,
75
],
[
5,
858,
3421,
75,
75
],
[
5,
858,
3421,
75,
75
],
[
5,
858,
3421,
75,
75
],
[
5,
858,
3421,
75,
75
],
[
5,
858,
3421,
75,
75
],
[
5,
858,
3421,
75,
75
],
[
5,
858,
3421,
75,
75
],
[
5,
858,
3421,
75,
75
],
[
5,
0,
3419,
75,
75
],
[
5,
0,
3419,
75,
75
],
[
5,
0,
3419,
75,
75
],
[
5,
78,
3421,
75,
75
],
[
5,
78,
3421,
75,
75
]
]
],
[
8,
[
[5,
0,
3497,
75,
75],
[
5,
0,
3497,
75,
75
],
[
5,
1014,
3421,
75,
75
],
[
5,
1014,
3421,
75,
75
],
[
5,
78,
3499,
75,
75
],
[
5,
78,
3499,
75,
75
],
[
5,
156,
3499,
75,
75
],
[
5,
156,
3499,
75,
75
],
[
5,
234,
3499,
75,
75
],
[
5,
234,
3499,
75,
75
],
[
5,
234,
3499,
75,
75
],
[
5,
78,
3499,
75,
75
],
[
5,
78,
3499,
75,
75
],
[
5,
156,
3499,
75,
75
],
[
5,
156,
3499,
75,
75
],
[
5,
234,
3499,
75,
75
],
[
5,
234,
3499,
75,
75
],
[
5,
234,
3499,
75,
75
],
[
5,
78,
3499,
75,
75
],
[
5,
78,
3499,
75,
75
],
[
5,
156,
3499,
75,
75
],
[
5,
156,
3499,
75,
75
],
[
5,
234,
3499,
75,
75
],
[
5,
234,
3499,
75,
75
],
[
5,
234,
3499,
75,
75
],
[
5,
78,
3499,
75,
75
],
[
5,
78,
3499,
75,
75
],
[
5,
312,
3499,
75,
75
],
[
5,
312,
3499,
75,
75
],
[
5,
1950,
3428,
75,
75
],
[
5,
1950,
3428,
75,
75
],
[
5,
1326,
3430,
75,
75
],
[
5,
1326,
3430,
75,
75
],
[
5,
1404,
3430,
75,
75
],
[
5,
1404,
3430,
75,
75
]
]
],
[
9,
[
[4,
1224,
2262,
150,
150],
[
4,
1224,
2262,
150,
150
],
[
4,
1377,
2262,
150,
150
],
[
4,
1377,
2262,
150,
150
],
[
4,
1530,
2262,
150,
150
],
[
4,
1530,
2262,
150,
150
],
[
4,
1683,
2262,
150,
150
],
[
4,
1836,
2262,
150,
150
],
[
4,
0,
2292,
150,
150
],
[
4,
0,
2292,
150,
150
],
[
4,
0,
2292,
150,
150
],
[
4,
0,
2292,
150,
150
],
[
4,
0,
2292,
150,
150
],
[
4,
0,
2292,
150,
150
],
[
4,
0,
2292,
150,
150
],
[
4,
0,
2292,
150,
150
],
[
4,
153,
2292,
150,
150
],
[
4,
153,
2292,
150,
150
],
[
4,
153,
2292,
150,
150
],
[
4,
306,
2292,
150,
150
],
[
4,
459,
2292,
150,
150
],
[
4,
459,
2292,
150,
150
],
[
4,
612,
2292,
150,
150
],
[
4,
765,
2292,
150,
150
],
[
4,
765,
2292,
150,
150
],
[
4,
765,
2292,
150,
150
],
[
4,
765,
2292,
150,
150
],
[
4,
765,
2292,
150,
150
],
[
4,
765,
2292,
150,
150
],
[
4,
765,
2292,
150,
150
],
[
4,
765,
2292,
150,
150
],
[
4,
765,
2292,
150,
150
],
[
4,
765,
2292,
150,
150
],
[
4,
918,
2292,
150,
150
],
[
4,
1071,
2292,
150,
150
]
]
],
[
10,
[
[4,
1377,
1956,
150,
150],
[
4,
1377,
1956,
150,
150
],
[
4,
1530,
1956,
150,
150
],
[
4,
1530,
1956,
150,
150
],
[
4,
1530,
1956,
150,
150
],
[
4,
1530,
1956,
150,
150
],
[
4,
1683,
1956,
150,
150
],
[
4,
1683,
1956,
150,
150
],
[
4,
1683,
1956,
150,
150
],
[
4,
1683,
1956,
150,
150
],
[
4,
1836,
1956,
150,
150
],
[
4,
0,
1986,
150,
150
],
[
4,
0,
1986,
150,
150
],
[
4,
153,
1986,
150,
150
],
[
4,
153,
1986,
150,
150
],
[
4,
153,
1986,
150,
150
],
[
4,
153,
1986,
150,
150
],
[
4,
153,
1986,
150,
150
],
[
4,
153,
1986,
150,
150
],
[
4,
153,
1986,
150,
150
],
[
4,
153,
1986,
150,
150
],
[
4,
153,
1986,
150,
150
],
[
4,
153,
1986,
150,
150
],
[
4,
153,
1986,
150,
150
],
[
4,
153,
1986,
150,
150
],
[
4,
153,
1986,
150,
150
],
[
4,
153,
1986,
150,
150
],
[
4,
306,
1986,
150,
150
],
[
4,
306,
1986,
150,
150
],
[
4,
459,
1986,
150,
150
],
[
4,
459,
1986,
150,
150
],
[
4,
612,
1986,
150,
150
],
[
4,
612,
1986,
150,
150
],
[
4,
765,
1986,
150,
150
],
[
4,
765,
1986,
150,
150
]
]
],
[
11,
[
[5,
765,
765,
150,
150],
[
5,
765,
765,
150,
150
],
[
5,
918,
765,
150,
150
],
[
5,
1071,
765,
150,
150
],
[
5,
1071,
765,
150,
150
],
[
5,
1224,
765,
150,
150
],
[
5,
1377,
765,
150,
150
],
[
5,
1377,
765,
150,
150
],
[
5,
1530,
765,
150,
150
],
[
5,
1530,
765,
150,
150
],
[
5,
1683,
765,
150,
150
],
[
5,
1530,
765,
150,
150
],
[
5,
1530,
765,
150,
150
],
[
5,
1683,
765,
150,
150
],
[
5,
1530,
765,
150,
150
],
[
5,
1530,
765,
150,
150
],
[
5,
1683,
765,
150,
150
],
[
5,
1530,
765,
150,
150
],
[
5,
1530,
765,
150,
150
],
[
5,
1683,
765,
150,
150
],
[
5,
1530,
765,
150,
150
],
[
5,
1530,
765,
150,
150
],
[
5,
1683,
765,
150,
150
],
[
5,
1530,
765,
150,
150
],
[
5,
1530,
765,
150,
150
],
[
5,
1683,
765,
150,
150
],
[
5,
1530,
765,
150,
150
],
[
5,
1530,
765,
150,
150
],
[
5,
1683,
765,
150,
150
],
[
5,
1530,
765,
150,
150
],
[
5,
1530,
765,
150,
150
],
[
5,
1683,
765,
150,
150
],
[
5,
1836,
765,
150,
150
],
[
5,
1836,
765,
150,
150
],
[
5,
0,
795,
150,
150
],
[
5,
0,
795,
150,
150
],
[
5,
765,
765,
150,
150
]
]
],
[
12,
[
[5,
1224,
1836,
150,
150],
[
5,
1224,
1836,
150,
150
],
[
5,
1377,
1836,
150,
150
],
[
5,
1377,
1836,
150,
150
],
[
5,
1530,
1836,
150,
150
],
[
5,
1530,
1836,
150,
150
],
[
5,
1683,
1836,
150,
150
],
[
5,
1683,
1836,
150,
150
],
[
5,
1836,
1836,
150,
150
],
[
5,
1836,
1836,
150,
150
],
[
5,
1836,
1836,
150,
150
],
[
5,
1836,
1836,
150,
150
],
[
5,
1836,
1836,
150,
150
],
[
5,
1836,
1836,
150,
150
],
[
5,
1836,
1836,
150,
150
],
[
5,
1836,
1836,
150,
150
],
[
5,
1836,
1836,
150,
150
],
[
5,
1836,
1836,
150,
150
],
[
5,
1836,
1836,
150,
150
],
[
5,
1836,
1836,
150,
150
],
[
5,
1836,
1836,
150,
150
],
[
5,
1836,
1836,
150,
150
],
[
5,
1836,
1836,
150,
150
],
[
5,
1836,
1836,
150,
150
],
[
5,
1836,
1836,
150,
150
],
[
5,
1836,
1836,
150,
150
],
[
5,
1836,
1836,
150,
150
],
[
5,
1836,
1836,
150,
150
],
[
5,
1836,
1836,
150,
150
],
[
5,
1836,
1836,
150,
150
],
[
5,
1836,
1836,
150,
150
],
[
5,
0,
1866,
150,
150
],
[
5,
0,
1866,
150,
150
],
[
5,
153,
1989,
150,
150
],
[
5,
153,
1989,
150,
150
],
[
5,
1224,
1836,
150,
150
],
[
5,
1224,
1836,
150,
150
]
]
],
[
0,
Rh
]])
],
[
'lobby',
new Map([[1,
[
[4,
1989,
0,
56,
68]
]],
[
2,
[
[4,
1491,
3333,
78,
78],
[
4,
1572,
3333,
78,
78
],
[
4,
1653,
3333,
78,
78
],
[
4,
1734,
3333,
78,
78
],
[
4,
1815,
3333,
78,
78
],
[
4,
1896,
3333,
78,
78
],
[
4,
459,
3354,
78,
78
],
[
4,
540,
3354,
78,
78
],
[
4,
621,
3354,
78,
78
],
[
4,
621,
3354,
78,
78
],
[
4,
621,
3354,
78,
78
],
[
4,
621,
3354,
78,
78
],
[
4,
621,
3354,
78,
78
],
[
4,
621,
3354,
78,
78
],
[
4,
621,
3354,
78,
78
],
[
4,
621,
3354,
78,
78
],
[
4,
621,
3354,
78,
78
],
[
4,
621,
3354,
78,
78
],
[
4,
621,
3354,
78,
78
],
[
4,
621,
3354,
78,
78
],
[
4,
621,
3354,
78,
78
],
[
4,
621,
3354,
78,
78
],
[
4,
621,
3354,
78,
78
],
[
4,
621,
3354,
78,
78
],
[
4,
621,
3354,
78,
78
],
[
4,
702,
3354,
78,
78
],
[
4,
702,
3354,
78,
78
],
[
4,
783,
3354,
78,
78
],
[
4,
783,
3354,
78,
78
],
[
4,
783,
3354,
78,
78
],
[
4,
783,
3354,
78,
78
],
[
4,
783,
3354,
78,
78
],
[
4,
783,
3354,
78,
78
],
[
4,
783,
3354,
78,
78
],
[
4,
783,
3354,
78,
78
],
[
4,
783,
3354,
78,
78
],
[
4,
783,
3354,
78,
78
],
[
4,
783,
3354,
78,
78
],
[
4,
783,
3354,
78,
78
],
[
4,
783,
3354,
78,
78
],
[
4,
783,
3354,
78,
78
],
[
4,
783,
3354,
78,
78
],
[
4,
783,
3354,
78,
78
],
[
4,
783,
3354,
78,
78
],
[
4,
783,
3354,
78,
78
],
[
4,
783,
3354,
78,
78
],
[
4,
783,
3354,
78,
78
],
[
4,
783,
3354,
78,
78
],
[
4,
864,
3354,
78,
78
],
[
4,
945,
3354,
78,
78
],
[
4,
0,
3363,
78,
78
],
[
4,
81,
3363,
78,
78
],
[
4,
162,
3363,
78,
78
],
[
4,
243,
3363,
78,
78
],
[
4,
324,
3363,
78,
78
],
[
4,
1491,
3414,
78,
78
],
[
4,
1572,
3414,
78,
78
],
[
4,
1653,
3414,
78,
78
],
[
4,
1491,
3333,
78,
78
],
[
4,
1491,
3333,
78,
78
]
]
],
[
3,
[
[4,
459,
3210,
126,
141],
[
4,
459,
3210,
126,
141
],
[
4,
459,
3210,
126,
141
],
[
4,
588,
3210,
126,
141
],
[
4,
588,
3210,
126,
141
],
[
4,
588,
3210,
126,
141
],
[
4,
588,
3210,
126,
141
],
[
4,
717,
3210,
126,
141
],
[
4,
717,
3210,
126,
141
],
[
4,
846,
3210,
126,
141
],
[
4,
846,
3210,
126,
141
],
[
4,
975,
3210,
126,
141
],
[
4,
975,
3210,
126,
141
],
[
4,
1104,
3333,
126,
141
],
[
4,
1104,
3333,
126,
141
],
[
4,
1233,
3333,
126,
141
],
[
4,
1233,
3333,
126,
141
],
[
4,
1362,
3333,
126,
141
]
]
],
[
4,
[
[4,
1080,
3741,
62,
91],
[
4,
1080,
3741,
62,
91
],
[
4,
1080,
3741,
62,
91
],
[
4,
1080,
3741,
62,
91
],
[
4,
1080,
3741,
62,
91
],
[
4,
1080,
3741,
62,
91
],
[
4,
1080,
3741,
62,
91
],
[
4,
1080,
3741,
62,
91
],
[
4,
1080,
3741,
62,
91
],
[
4,
1080,
3741,
62,
91
],
[
4,
1145,
3741,
62,
91
],
[
4,
1145,
3741,
62,
91
],
[
4,
1145,
3741,
62,
91
],
[
4,
1145,
3741,
62,
91
],
[
4,
1145,
3741,
62,
91
],
[
4,
1145,
3741,
62,
91
],
[
4,
1145,
3741,
62,
91
],
[
4,
1145,
3741,
62,
91
],
[
4,
1145,
3741,
62,
91
],
[
4,
1145,
3741,
62,
91
],
[
4,
1145,
3741,
62,
91
]
]
],
[
5,
[
[5,
1969,
2907,
78,
92],
[
5,
1969,
2907,
78,
92
],
[
5,
1969,
2907,
78,
92
],
[
5,
1969,
3002,
78,
92
],
[
5,
1969,
3002,
78,
92
],
[
5,
1969,
3002,
78,
92
],
[
5,
1961,
3097,
78,
92
],
[
5,
1961,
3097,
78,
92
],
[
5,
1961,
3097,
78,
92
]
]
],
[
6,
[
[5,
1536,
3149,
76,
77],
[
5,
1615,
3153,
76,
77
],
[
5,
1694,
3153,
76,
77
],
[
5,
1773,
3153,
76,
77
],
[
5,
1852,
3153,
76,
77
],
[
5,
0,
3183,
76,
77
],
[
5,
79,
3185,
76,
77
],
[
5,
158,
3185,
76,
77
],
[
5,
237,
3185,
76,
77
],
[
5,
237,
3185,
76,
77
],
[
5,
237,
3185,
76,
77
],
[
5,
316,
3185,
76,
77
],
[
5,
316,
3185,
76,
77
],
[
5,
316,
3185,
76,
77
],
[
5,
316,
3185,
76,
77
],
[
5,
395,
3185,
76,
77
],
[
5,
395,
3185,
76,
77
],
[
5,
395,
3185,
76,
77
],
[
5,
395,
3185,
76,
77
],
[
5,
474,
3185,
76,
77
],
[
5,
474,
3185,
76,
77
],
[
5,
474,
3185,
76,
77
],
[
5,
474,
3185,
76,
77
],
[
5,
553,
3185,
76,
77
],
[
5,
553,
3185,
76,
77
],
[
5,
553,
3185,
76,
77
],
[
5,
553,
3185,
76,
77
],
[
5,
632,
3185,
76,
77
],
[
5,
632,
3185,
76,
77
],
[
5,
632,
3185,
76,
77
],
[
5,
711,
3185,
76,
77
],
[
5,
711,
3185,
76,
77
],
[
5,
711,
3185,
76,
77
],
[
5,
711,
3185,
76,
77
],
[
5,
237,
3185,
76,
77
],
[
5,
237,
3185,
76,
77
],
[
5,
237,
3185,
76,
77
],
[
5,
237,
3185,
76,
77
],
[
5,
316,
3185,
76,
77
],
[
5,
316,
3185,
76,
77
],
[
5,
316,
3185,
76,
77
],
[
5,
790,
3185,
76,
77
],
[
5,
869,
3185,
76,
77
],
[
5,
948,
3185,
76,
77
],
[
5,
1027,
3185,
76,
77
],
[
5,
1106,
3185,
76,
77
],
[
5,
1185,
3185,
76,
77
],
[
5,
1264,
3185,
76,
77
],
[
5,
1931,
3192,
76,
77
],
[
5,
1536,
3229,
76,
77
],
[
5,
1615,
3233,
76,
77
],
[
5,
1694,
3233,
76,
77
],
[
5,
1773,
3233,
76,
77
],
[
5,
1852,
3233,
76,
77
]
]
],
[
7,
[
[5,
1673,
3028,
93,
122],
[
5,
1673,
3028,
93,
122
],
[
5,
1769,
3028,
93,
122
],
[
5,
1769,
3028,
93,
122
],
[
5,
1769,
3028,
93,
122
],
[
5,
1769,
3028,
93,
122
],
[
5,
1865,
3028,
93,
122
],
[
5,
0,
3058,
93,
122
],
[
5,
0,
3058,
93,
122
],
[
5,
0,
3058,
93,
122
],
[
5,
96,
3060,
93,
122
],
[
5,
96,
3060,
93,
122
],
[
5,
96,
3060,
93,
122
],
[
5,
96,
3060,
93,
122
],
[
5,
192,
3060,
93,
122
],
[
5,
192,
3060,
93,
122
],
[
5,
192,
3060,
93,
122
],
[
5,
288,
3060,
93,
122
],
[
5,
288,
3060,
93,
122
],
[
5,
288,
3060,
93,
122
],
[
5,
288,
3060,
93,
122
],
[
5,
288,
3060,
93,
122
],
[
5,
288,
3060,
93,
122
],
[
5,
288,
3060,
93,
122
],
[
5,
288,
3060,
93,
122
],
[
5,
288,
3060,
93,
122
],
[
5,
288,
3060,
93,
122
],
[
5,
288,
3060,
93,
122
],
[
5,
288,
3060,
93,
122
],
[
5,
384,
3060,
93,
122
],
[
5,
384,
3060,
93,
122
],
[
5,
480,
3060,
93,
122
],
[
5,
288,
3060,
93,
122
],
[
5,
288,
3060,
93,
122
],
[
5,
288,
3060,
93,
122
],
[
5,
288,
3060,
93,
122
],
[
5,
288,
3060,
93,
122
],
[
5,
288,
3060,
93,
122
],
[
5,
288,
3060,
93,
122
],
[
5,
288,
3060,
93,
122
],
[
5,
288,
3060,
93,
122
],
[
5,
288,
3060,
93,
122
],
[
5,
288,
3060,
93,
122
],
[
5,
288,
3060,
93,
122
],
[
5,
576,
3060,
93,
122
],
[
5,
576,
3060,
93,
122
],
[
5,
576,
3060,
93,
122
],
[
5,
672,
3060,
93,
122
],
[
5,
672,
3060,
93,
122
],
[
5,
672,
3060,
93,
122
],
[
5,
768,
3060,
93,
122
],
[
5,
768,
3060,
93,
122
],
[
5,
768,
3060,
93,
122
],
[
5,
768,
3060,
93,
122
],
[
5,
768,
3060,
93,
122
],
[
5,
864,
3060,
93,
122
],
[
5,
864,
3060,
93,
122
],
[
5,
864,
3060,
93,
122
],
[
5,
864,
3060,
93,
122
],
[
5,
960,
3060,
93,
122
],
[
5,
960,
3060,
93,
122
],
[
5,
1056,
3060,
93,
122
],
[
5,
1056,
3060,
93,
122
],
[
5,
1152,
3060,
93,
122
],
[
5,
1152,
3060,
93,
122
],
[
5,
1248,
3060,
93,
122
],
[
5,
1248,
3060,
93,
122
],
[
5,
1344,
3149,
93,
122
],
[
5,
1344,
3149,
93,
122
],
[
5,
1440,
3149,
93,
122
]
]
],
[
8,
[
[5,
1377,
2907,
145,
118],
[
5,
1377,
2907,
145,
118
],
[
5,
1377,
2907,
145,
118
],
[
5,
1525,
2907,
145,
118
],
[
5,
1525,
2907,
145,
118
],
[
5,
1525,
2907,
145,
118
],
[
5,
1673,
2907,
145,
118
],
[
5,
1673,
2907,
145,
118
],
[
5,
1821,
2907,
145,
118
],
[
5,
1821,
2907,
145,
118
],
[
5,
1821,
2907,
145,
118
],
[
5,
0,
2937,
145,
118
],
[
5,
0,
2937,
145,
118
],
[
5,
0,
2937,
145,
118
],
[
5,
1377,
3028,
145,
118
],
[
5,
1377,
3028,
145,
118
],
[
5,
1525,
3028,
145,
118
],
[
5,
1525,
3028,
145,
118
],
[
5,
1525,
3028,
145,
118
]
]
],
[
9,
[
[4,
1224,
2415,
150,
150]
]
],
[
10,
[
[4,
1836,
885,
150,
150]
]
],
[
11,
[
[5,
1836,
0,
150,
150]
]
],
[
12,
[
[5,
459,
1071,
150,
150]
]
],
[
0,
Rh
]])
],
[
'ready',
new Map([[1,
[
[4,
1104,
3210,
108,
116]
]],
[
2,
[
[4,
1026,
3354,
72,
75]
]
],
[
3,
[
[4,
1977,
3333,
66,
75]
]
],
[
4,
[
[4,
468,
3714,
72,
75]
]
],
[
5,
[
[5,
702,
3499,
70,
75]
]
],
[
6,
[
[5,
775,
3499,
66,
75]
]
],
[
7,
[
[5,
909,
3499,
61,
75]
]
],
[
8,
[
[5,
844,
3499,
62,
75]
]
],
[
9,
[
[4,
765,
2139,
150,
150]
]
],
[
10,
[
[4,
1836,
885,
150,
150]
]
],
[
11,
[
[5,
1836,
0,
150,
150]
]
],
[
12,
[
[5,
459,
1071,
150,
150]
]
],
[
0,
Rh
]])
]]),
Am = [
{
a: {
f: 1,
y: 0
},
b: {
f: 16,
y: 7.7
},
c: {
f: 24,
y: 0
}
},
{
a: {
f: 1,
y: 0
},
b: {
f: 16,
y: 7.7
},
c: {
f: 24,
y: 0
}
},
{
a: {
f: 1,
y: 0
},
b: {
f: 35,
y: - 16
},
c: {
f: 72,
y: 0
}
},
{
a: {
f: 1,
y: 0
},
b: {
f: 16,
y: 5
},
c: {
f: 24,
y: 0
}
},
{
a: {
f: 1,
y: 0
},
b: {
f: 10,
y: - 8
},
c: {
f: 18,
y: 0
}
},
{
a: {
f: 1,
y: 0
},
b: {
f: 13,
y: 5
},
c: {
f: 24,
y: 0
}
},
{
a: {
f: 1,
y: 0
},
b: {
f: 21,
y: - 5
},
c: {
f: 42,
y: 0
}
},
{
a: {
f: 1,
y: 0
},
b: {
f: 21,
y: 8
},
c: {
f: 42,
y: 0
}
},
{
a: {
f: 1,
y: 0
},
b: {
f: 13,
y: 5
},
c: {
f: 24,
y: 0
}
},
{
a: {
f: 1,
y: 0
},
b: {
f: 35,
y: - 16
},
c: {
f: 72,
y: 0
}
},
{
a: {
f: 1,
y: 0
},
b: {
f: 13,
y: 5
},
c: {
f: 24,
y: 0
}
},
{
a: {
f: 1,
y: 0
},
b: {
f: 13,
y: 5
},
c: {
f: 24,
y: 0
}
}
];
var Dm = class extends H {
constructor(a) {
super (a)
}
};
var Em = class extends H {
constructor(a) {
super (a)
}
};
var Fm = class extends H {
constructor(a) {
super (a)
}
};
function Gm(a, b) {
B(a, 1, b)
}
var Hm = class extends H {
constructor(a) {
super (a)
}
getId() {
return sc(this, 1)
}
};
var Jm = class extends H {
constructor(a) {
super (a, - 1, Im)
}
},
Im = [
1
];
var Km = class extends H {
constructor(a) {
super (a)
}
Sc(a) {
B(this, 3, a)
}
};
var Lm = class extends H {
constructor(a) {
super (a)
}
};
var Mm = class extends H {
constructor(a) {
super (a)
}
getType() {
return E(this, 1, 0)
}
};
var Nm = class extends H {
constructor(a) {
super (a)
}
getType() {
return E(this, 1, 0)
}
};
var Om = class extends H {
constructor(a) {
super (a)
}
};
var Pm = class extends H {
constructor(a) {
super (a)
}
getType() {
return E(this, 1, 0)
}
};
var Rm = class extends H {
constructor(a) {
super (a, - 1, Qm)
}
},
Qm = [
7,
9,
13,
14,
15
];
var Sm = class extends H {
constructor(a) {
super (a)
}
getId() {
return sc(this, 1)
}
getPlayerState() {
return F(this, Rm, 3)
}
},
Tm = [
Sm,
1,
Rd,
2,
ae,
3,
Yd,
[
Rm,
1,
Od,
2,
Od,
3,
Rd,
4,
ae,
6,
Rd,
7,
Zd,
[
Om,
1,
Od,
2,
Od
],
8,
Td,
9,
Sd,
10,
Td,
12,
Td,
13,
Zd,
[
Nm,
1,
ae,
2,
ae
],
14,
Zd,
[
Pm,
1,
ae,
2,
Rd
],
15,
Zd,
[
Mm,
1,
ae
],
16,
Td,
17,
Od,
18,
Td,
19,
Rd,
20,
Rd,
21,
Vd
],
4,
Yd,
[
Km,
1,
ae,
2,
Td,
3,
Rd
],
5,
Yd,
[
Jm,
1,
Sd
],
6,
Yd,
[
Lm,
1,
ae
],
7,
Yd,
[
class extends H {
constructor(a) {
super (a)
}
},
1,
ae
]
];
var Um = class extends H {
constructor(a) {
super (a)
}
};
var Vm = class extends H {
constructor(a) {
super (a)
}
getId() {
return sc(this, 1)
}
};
var Wm = class extends H {
constructor(a) {
super (a)
}
};
var Xm = class extends H {
constructor(a) {
super (a)
}
};
var Ym = class extends H {
constructor(a) {
super (a)
}
getId() {
return sc(this, 1)
}
};
var Zm = class extends H {
constructor(a) {
super (a)
}
};
var $m = class extends H {
constructor(a) {
super (a)
}
},
an = [
2,
3,
4
],
bn = [
$m,
1,
Vd,
2,
Xd,
an,
3,
Pd,
an,
4,
Ud,
an
];
var dn = class extends H {
constructor(a) {
super (a, - 1, cn)
}
},
cn = [
2
];
var en = class extends H {
constructor(a) {
super (a)
}
};
var gn = class extends H {
constructor(a) {
super (a, - 1, fn)
}
},
fn = [
10
];
var hn = class extends H {
constructor(a) {
super (a)
}
getId() {
return sc(this, 1)
}
};
var kn = class extends H {
constructor(a) {
super (a, - 1, jn)
}
},
jn = [
1
];
var ln = class extends H {
constructor(a) {
super (a)
}
};
var mn = class extends H {
constructor(a) {
super (a)
}
getId() {
return sc(this, 1)
}
};
var nn = class extends H {
constructor(a) {
super (a)
}
getType() {
return E(this, 1, 0)
}
},
on = [
nn,
1,
ae,
2,
Rd,
3,
Td,
4,
Yd,
[
Xm,
1,
Vd,
2,
Yd,
[
Wm,
1,
Qd,
2,
Qd
],
3,
Vd
],
5,
Yd,
[
Vm,
1,
Rd,
2,
Vd,
3,
Qd,
4,
Vd
],
7,
Yd,
[
dn,
2,
Zd,
bn,
3,
Vd,
4,
Rd
],
8,
Yd,
[
Um,
1,
Rd
],
9,
Yd,
[
ln,
1,
Yd,
[
Hm,
1,
Rd,
2,
ae,
3,
Od,
4,
Od,
6,
Yd,
[
Fm,
2,
ae,
3,
ae,
4,
Td
],
7,
Yd,
[
Em
],
8,
Yd,
[
Dm,
1,
ae,
2,
Rd,
3,
Rd
],
9,
Yd,
[
class extends H {
constructor(a) {
super (a)
}
}
],
10,
Yd,
[
class extends H {
constructor(a) {
super (a)
}
}
]
],
2,
Yd,
Tm
],
10,
Yd,
[
mn,
1,
Rd
],
11,
Yd,
[
gn,
3,
Rd,
4,
Rd,
5,
Rd,
6,
Td,
7,
Td,
8,
ae,
10,
Zd,
[
en,
1,
Rd,
2,
ae
]
],
12,
Yd,
[
Ym,
1,
Rd,
2,
Od,
3,
Od,
4,
Td
],
13,
Yd,
Tm,
14,
Yd,
[
hn,
1,
Rd,
2,
Od,
3,
Od,
4,
Od,
5,
Od,
6,
Td
],
15,
Yd,
[
kn,
1,
Zd,
bn
],
16,
Yd,
[
class extends H {
constructor(a) {
super (a)
}
},
1,
ae
],
17,
Yd,
[
Zm,
1,
Qd
]
]; /*
copyright (c) 2006-2007 Erin Catto http://www.gphysics.com
This software is provided 'as-is', without any express or implied
warranty. In no event will the authors be held liable for any damages
arising from the use of this software.
Permission is granted to anyone to use this software for any purpose,
including commercial applications, and to alter it and redistribute it
freely, subject to the following restrictions:
1. The origin of this software must not be misrepresented; you must not
claim that you wrote the original software. If you use this software
in a product, an acknowledgment in the product documentation would be
appreciated but is not required.
2. Altered source versions must be plainly marked as such, and must not be
misrepresented as being the original software.
3. This notice may not be removed or altered from any source distribution.
*/
function pn(a, b) {
this.x = a;
this.y = b
}
var qn = [
];
function Y(a, b) {
if (0 < qn.length) {
var c = qn.pop();
c.set(a, b);
return c
}
return new pn(a, b)
}
function Z(a) {
null != a && qn.push(a)
}
function rn(a) {
a.x = 0;
a.y = 0
}
q = pn.prototype;
q.set = function (a, b) {
this.x = a;
this.y = b
};
q.Ca = function (a) {
this.x = a.x;
this.y = a.y
};
function sn(a) {
return Y( - a.x, - a.y)
}
function tn(a) {
a.x = - a.x;
a.y = - a.y
}
function un(a) {
return Y(a.x, a.y)
}
q.add = function (a) {
this.x += a.x;
this.y += a.y
};
function vn(a, b) {
a.x *= b;
a.y *= b
}
q.abs = function () {
this.x = Math.abs(this.x);
this.y = Math.abs(this.y)
};
q.length = function () {
return Math.sqrt(wn(this))
};
function wn(a) {
return a.x * a.x + a.y * a.y
}
function xn(a) {
var b = a.length();
b < Number.MIN_VALUE || (b = 1 / b, a.x *= b, a.y *= b)
}
q.hd = function () {
return isFinite(this.x) && isFinite(this.y)
};
function yn(a) {
const b = {
x: 0,
y: 0
};
if (a.kf && a.Oa) {
var c = a.Oa,
d = ((new Date).getTime() - c.t) / 1000;
if (d < + zn(a, 'sync_dt_threshold')) {
var e = a.body.ta.position;
const f = c.x + c.Wd * d,
g = c.y + c.Xd * d,
h = + zn(a, 'sync_slip_time'),
k = Math.sqrt((f - e.x) * (f - e.x) + (g - e.y) * (g - e.y));
d = Math.sqrt(c.Wd * c.Wd + c.Xd * c.Xd) * (h + d) + + zn(a, 'sync_epsilon');
!a.te && k > d ? (c = a.body, e = Y(f + (e.x - f) * d / k, g + (e.y - g) * d / k), An(c, e, c.ha.a)) : (c = + zn(a, 'sync_coefficient'), b.x = (f - e.x) * k / d * c, b.y = (g - e.y) * k / d * c)
}
a.te = !0
}
return b
}
function zn(a, b) {
return a.settings.get(b)
}
var En = class {
constructor(a, b, c) {
this.ya = a;
this.settings = b;
this.body = null;
this.angle = 1;
this.Oa = this.kf = null;
this.te = this.re = !1;
this.alpha = 1;
this.id = c.getId();
this.type = E(c, 2, 0);
this.g = Y(rc(c, 3), rc(c, 4))
}
getId() {
return this.id
}
getType() {
return this.type
}
Xc() {
return !1
}
H() {
const a = this.body.ta.position;
this.g.x = a.x;
this.g.y = a.y
}
nc(a) {
if (qc(a, 6)) {
var b = this.body,
c = Y(rc(a, 2), rc(a, 3));
An(b, c, b.ha.a);
Bn(this.body, Y(rc(a, 4), rc(a, 5)))
} else this.kf = a,
this.Oa = {
x: rc(a, 2),
y: rc(a, 3),
Wd: rc(a, 4),
Xd: rc(a, 5),
t: (new Date).getTime()
},
this.te = !1
}
oc() {
const a = yn(this),
b = this.body.ka;
b.x += a.x;
b.y += a.y;
Bn(this.body, b);
b.x && (this.angle = Math.PI + Math.atan2( - b.x, b.y))
}
Da() {
return ql.get(this.type) || 0
}
isVisible() {
return !0
}
render() {
}
qe(a) {
var b = this.body.ta.position;
const c = this.body.ka,
d = new hn;
B(d, 1, this.id);
B(d, 2, b.x);
B(d, 3, b.y);
B(d, 4, c.x);
B(d, 5, c.y);
B(d, 6, !1);
b = new nn;
B(b, 1, 11);
B(b, 2, this.id);
a ? (B(d, 6, !0), B(b, 3, !0), lc(b, 14, d), Cn(this.ya.Bd, b)) : (lc(b, 14, d), this.ya.we(b))
}
va() {
this.re = !0
}
Qe() {
return this.re
}
dispose(a) {
var b = this.body;
b && Dn(a.o, b)
}
};
function Fn() {
this.i = 0;
this.g = Y(0, 0);
this.I = 0
}
var Gn = [
];
Fn.prototype.Ca = function (a, b, c) {
this.i = a;
this.g.Ca(b);
this.I = c
};
Fn.prototype.set = function (a, b, c, d) {
this.i = a;
this.g.set(b, c);
this.I = d
};
function Hn() {
this.ab = Y(0, 0);
this.Db = Y(0, 0);
this.w = Y(0, 0);
this.Za = this.Ya = this.a = 0
}
Hn.prototype.set = function (a) {
this.ab.Ca(a.ab);
this.Db.Ca(a.Db);
this.w.Ca(a.w);
this.a = a.a;
this.Ya = a.Ya;
this.Za = a.Za
};
function In() {
this.T = Y(0, 0);
this.U = Y(0, 0);
this.T.set(1, 0);
this.U.set(0, 1)
}
var Jn = [
];
function Kn() {
if (0 < Jn.length) {
var a = Jn.pop();
a.T.set(0, 0);
a.U.set(0, 0);
return a
}
return new In
}
In.prototype.set = function (a) {
var b = Math.cos(a);
a = Math.sin(a);
this.T.set(b, a);
this.U.set( - a, b)
};
In.prototype.abs = function () {
this.T.abs();
this.U.abs()
};
function Ln(a, b) {
return a.x * b.x + a.y * b.y
}
function Mn(a, b) {
return a.x * b.y - a.y * b.x
}
function Nn(a) {
return Y(a.y, - 1 * a.x)
}
function On(a, b) {
return Y(a.T.x * b.x + a.U.x * b.y, a.T.y * b.x + a.U.y * b.y)
}
function Pn(a, b) {
return Y(Ln(b, a.T), Ln(b, a.U))
}
function Qn(a, b) {
b = On(a.R, b);
b.x += a.position.x;
b.y += a.position.y;
return b
}
function Rn(a, b) {
return Y(a.x - b.x, a.y - b.y)
}
function Sn(a, b, c) {
return a < b ? b : a > c ? c : a
};
function Tn(a) {
if (!a) throw Error('P');
}
var Un = 0.5 * Math.PI,
Vn = Un * Un,
Wn = 2 / 180 * Math.PI,
Xn = Number.MIN_VALUE * Number.MIN_VALUE;
function Yn() {
this.i = new Hn;
this.j = new Hn;
this.u = new Hn;
this.o = [
this.i,
this.j,
this.u
];
this.g = 0
}
var Zn = [
];
function $n(a) {
if (1 == a.g) return 0;
if (2 == a.g) {
var b = Rn(a.i.w, a.j.w);
a = b.length();
Z(b);
return a
}
if (3 == a.g) {
b = Rn(a.j.w, a.i.w);
var c = Rn(a.u.w, a.i.w);
a = Mn(b, c);
Z(b);
Z(c);
return a
}
Tn(!1);
return 0
};
function ao(a, b, c) {
if (0 < Zn.length) {
var d = Zn.pop();
for (var e = 0; e < d.o.length; e++) {
var f = d.o[e];
null != f.ab && f.ab.set(0, 0);
null != f.Db && f.Db.set(0, 0);
null != f.w && f.w.set(0, 0);
f.Ya = 0;
f.Za = 0;
f.a = 0
}
} else d = new Yn;
e = d;
f = c.g;
var g = c.j,
h = c.i,
k = c.o;
Tn(0 <= b.count && 3 >= b.count);
e.g = b.count;
for (var l = e.o, m = 0; m < e.g; m++) {
var n = l[m];
n.Ya = b.Ya[m];
n.Za = b.Za[m];
var w = bo(f, n.Ya);
var v = bo(h, n.Za);
Z(n.ab);
Z(n.Db);
Z(n.w);
n.ab = Qn(g, w);
n.Db = Qn(k, v);
n.w = Rn(n.Db, n.ab);
n.a = 0
}
1 < e.g && (w = b.g, v = $n(e), v < 0.5 * w || 2 * w < v || v < Number.MIN_VALUE) && (e.g = 0);
0 == e.g && (n = l[0], n.Ya = 0, n.Za = 0, w = bo(f, 0), v = bo(h, 0), Z(n.ab), Z(n.Db), Z(n.w), n.ab = Qn(g, w), n.Db = Qn(k, v), n.w = Rn(n.Db, n.ab), e.g = 1);
(1 > d.g || 3 < d.g) && Tn(!1);
for (e = 0; 20 > e; ) {
f = [
];
for (g = 0; g < d.g; g++) f[g] = {
},
f[g].Ya = d.o[g].Ya,
f[g].Za = d.o[g].Za;
if (2 == d.g) g = d,
k = g.i.w,
l = g.j.w,
h = Rn(l, k),
k = - (k.x * h.x + k.y * h.y),
0 >= k ? (Z(h), g.i.a = 1, g.g = 1) : (l = l.x * h.x + l.y * h.y, Z(h), 0 >= l ? (g.j.a = 1, g.g = 1, g.i.set(g.j)) : (h = 1 / (l + k), g.i.a = l * h, g.j.a = k * h, g.g = 2));
else if (3 == d.g) {
g = d;
w = g.i.w;
v = g.j.w;
n = g.u.w;
var A = Rn(v, w);
h = Ln(v, A);
k = - Ln(w, A);
var p = Rn(n, w),
u = Ln(w, p);
l = Ln(n, p);
m = Mn(A, p);
Z(A);
Z(p);
A = - u;
u = Rn(n, v);
var C = Ln(v, u);
p = Ln(n, u);
Z(u);
u = - C;
C = m * Mn(v, n);
n = m * Mn(n, w);
w = m * Mn(w, v);
0 >= k && 0 >= A ? (g.i.a = 1, g.g = 1) : 0 < h && 0 < k && 0 >= w ? (l = 1 / (h + k), g.i.a = h * l, g.j.a = k * l, g.g = 2) : 0 < l && 0 < A && 0 >= n ? (h = 1 / (l + A), g.i.a = l * h, g.u.a = A * h, g.g = 2, g.j.set(g.u)) : 0 >= h && 0 >= u ? (g.j.a = 1, g.g = 1, g.i.set(g.j)) : 0 >= l && 0 >= p ? (g.u.a = 1, g.g = 1, g.i.set(g.u)) : 0 < p && 0 < u && 0 >= C ? (h = 1 / (p + u), g.j.a = p * h, g.u.a = u * h, g.g = 2, g.i.set(g.u)) : (h = 1 / (C + n + w), g.i.a = C * h, g.j.a = n * h, g.u.a = w * h, g.g = 3)
}
if (3 == d.g) break;
h = d;
1 == h.g ?
g = sn(h.i.w) : 2 == h.g ? (g = Rn(h.j.w, h.i.w), h = sn(h.i.w), k = Mn(g, h), Z(h), h = 0 < k ? Y( - 1 * g.y, g.x) : Nn(g), Z(g), g = h) : (Tn(!1), g = Y(0, 0));
if (wn(g) < Xn) {
Z(g);
break
}
Z(d.o[d.g].ab);
Z(d.o[d.g].Db);
Z(d.o[d.g].w);
h = sn(g);
k = Pn(c.j.R, h);
Z(h);
d.o[d.g].Ya = co(c.g, k);
Z(k);
d.o[d.g].ab = Qn(c.j, bo(c.g, d.o[d.g].Ya));
h = Pn(c.o.R, g);
Z(g);
d.o[d.g].Za = co(c.i, h);
Z(h);
d.o[d.g].Db = Qn(c.o, bo(c.i, d.o[d.g].Za));
d.o[d.g].w = Rn(d.o[d.g].Db, d.o[d.g].ab);
e++;
h = !1;
for (g = 0; g < f.length; g++) if (d.o[d.g].Ya == f[g].Ya && d.o[d.g].Za == f[g].Za) {
h = !0;
break
}
if (h) break;
d.g++
}
e = d;
f = a.g;
g = a.i;
1 == e.g ? (f.Ca(e.i.ab), g.Ca(e.i.Db)) : 2 == e.g ? (f.x = e.i.a * e.i.ab.x + e.j.a * e.j.ab.x, f.y = e.i.a * e.i.ab.y + e.j.a * e.j.ab.y, g.x = e.i.a * e.i.Db.x + e.j.a * e.j.Db.x, g.y = e.i.a * e.i.Db.y + e.j.a * e.j.Db.y) : 3 == e.g ? (g.x = f.x = e.i.a * e.i.ab.x + e.j.a * e.j.ab.x + e.u.a * e.u.ab.x, g.y = f.y = e.i.a * e.i.ab.y + e.j.a * e.j.ab.y + e.u.a * e.u.ab.y) : Tn(!1);
e = Rn(a.g, a.i);
a.j = e.length();
Z(e);
e = d;
b.g = $n(e);
b.count = e.g;
f = e.o;
for (g = 0; g < e.g; g++) b.Ya[g] = f[g].Ya,
b.Za[g] = f[g].Za;
null != d && Zn.push(d);
c.u && (b = c.g.i, c = c.i.i, a.j > b + c && a.j > Number.MIN_VALUE ? (a.j -= b + c, d = Rn(a.i, a.g), xn(d), a.g.x += b * d.x, a.g.y += b * d.y, a.i.x -= c * d.x, a.i.y -= c * d.y, Z(d)) : (c = Y(0, 0), c.x = 0.5 * (a.g.x + a.i.x), c.y = 0.5 * (a.g.y + a.i.y), a.g.x = a.i.x = c.x, a.g.y = a.i.y = c.y, a.j = 0, Z(c)))
};
function eo() {
this.u = !1;
this.o = this.j = this.i = this.g = null
};
function fo() {
this.g = Y(0, 0);
this.i = Y(0, 0);
this.j = 0
};
function go() {
this.i = this.j = 0;
this.g = [
]
}
go.prototype.set = function (a) {
a.He(this)
};
function co(a, b) {
for (var c = 0, d = a.g[0].x * b.x + a.g[0].y * b.y, e = 1; e < a.j; e++) {
var f = a.g[e].x * b.x + a.g[e].y * b.y;
f > d && (c = e, d = f)
}
return c
}
function ho(a, b) {
return a.g[co(a, b)]
}
function bo(a, b) {
void 0 === b && (b = 0);
Tn(0 <= b && b < a.j);
return a.g[b]
};
function io() {
this.Ya = [
0,
0,
0
];
this.Za = [
0,
0,
0
]
};
function jo() {
this.j = 0.005
}
q = jo.prototype;
q.getTypeName = function () {
return ia()
};
q.fe = function () {
return ia()
};
q.set = function (a) {
this.j = a.j
};
q.Lc = function () {
ia()
};
q.ye = function () {
ia()
};
q.He = function () {
ia()
};
function ko() {
this.position = Y(0, 0);
this.R = Kn()
}
ko.prototype.set = function (a) {
this.position.Ca(a.position);
var b = this.R;
a = a.R;
b.T.Ca(a.T);
b.U.Ca(a.U)
};
function lo() {
this.j = 0.005;
this.u = Y(0, 0);
this.g = [
];
this.o = 0;
this.i = [
]
}
ta(lo, jo);
q = lo.prototype;
q.getTypeName = function () {
return 'PolygonShape'
};
q.fe = function () {
var a = new lo;
a.set(this);
return a
};
q.set = function (a) {
lo.Tb.set.call(this, a);
if (a instanceof lo) {
this.u.Ca(a.u);
this.o = a.o;
mo(this, this.o);
for (var b = 0; b < this.o; b++) this.g[b].Ca(a.g[b]),
this.i[b].Ca(a.i[b])
}
};
function no(a, b) {
var c = new lo;
c.o = 4;
mo(c, 4);
c.g[0].set( - a, - b);
c.g[1].set(a, - b);
c.g[2].set(a, b);
c.g[3].set( - a, b);
c.i[0].set(0, - 1);
c.i[1].set(1, 0);
c.i[2].set(0, 1);
c.i[3].set( - 1, 0);
rn(c.u);
return c
}
function oo(a, b) {
var c = new lo;
c.o = 2;
mo(c, 2);
c.g[0].Ca(a);
c.g[1].Ca(b);
c.u.x = 0.5 * (a.x + b.x);
c.u.y = 0.5 * (a.y + b.y);
a = Rn(b, a);
b = Nn(a);
Z(a);
c.i[0] = b;
xn(c.i[0]);
c.i[1].x = - c.i[0].x;
c.i[1].y = - c.i[0].y;
return c
}
q.Lc = function (a, b) {
for (var c = b.R, d = this.g[0], e = b.position.x + (c.T.x * d.x + c.U.x * d.y), f = b.position.y + (c.T.y * d.x + c.U.y * d.y), g = e, h = f, k = 1; k < this.o; ++k) {
d = this.g[k];
var l = b.position.x + (c.T.x * d.x + c.U.x * d.y);
d = b.position.y + (c.T.y * d.x + c.U.y * d.y);
e = e < l ? e : l;
f = f < d ? f : d;
g = g > l ? g : l;
h = h > d ? h : d
}
a.g.x = e - this.j;
a.g.y = f - this.j;
a.i.x = g + this.j;
a.i.y = h + this.j
};
q.ye = function (a, b) {
if (2 == this.o) a.g.x = 0.5 * (this.g[0].x + this.g[1].x),
a.g.y = 0.5 * (this.g[0].y + this.g[1].y),
a.i = 0,
a.I = 0;
else {
for (var c = 0, d = 0, e = 0, f = 0, g = 1 / 3, h = 0; h < this.o; ++h) {
var k = this.g[h],
l = h + 1 < this.o ? this.g[h + 1] : this.g[0],
m = k.x,
n = k.y,
w = l.x,
v = l.y,
A = m * v - n * w,
p = 0.5 * A;
e += p;
c += p * g * (k.x + l.x);
d += p * g * (k.y + l.y);
k = m;
f += A * (g * (0.25 * (k * k + w * k + w * w) + (0 * k + 0 * w)) + g * (0.25 * (n * n + v * n + v * v) + (0 * n + 0 * v)))
}
a.set(b * e, 1 / e * c, 1 / e * d, b * f)
}
};
q.He = function (a) {
var b = this.j,
c = this.g;
a.j = this.o;
a.i = b;
a.g = c
};
function mo(a, b) {
for (var c = 0; c < a.g.length; c++) Z(a.g[c]),
Z(a.i[c]);
a.g = [
];
a.i = [
];
for (c = 0; c < b; c++) a.g[c] = Y(0, 0),
a.i[c] = Y(0, 0)
}
Kn();
function po() {
this.position = Y(0, 0);
this.V = Y(0, 0);
this.j = this.O = this.o = this.angle = 0;
this.u = this.i = !0;
this.v = this.H = !1;
this.type = 0;
this.active = !0;
this.g = 1
};
function qo() {
this.g = 1;
this.i = 65535;
this.j = 0
};
function ro() {
this.filter = new qo;
this.filter.g = 1;
this.filter.i = 65535;
this.filter.j = 0;
this.g = null;
this.H = 0.2;
this.i = this.va = 0;
this.j = !1
};
var uo = class extends En {
constructor(a, b, c, d) {
super (a, b, c);
this.i = d;
a = F(c, Dm, 8);
this.Ua = E(a, 1, 0);
this.width = sc(a, 2);
this.height = sc(a, 3);
a = new po;
a.type = 0;
a.position.set(this.g.x, this.g.y);
this.body = so(d.o, a);
this.body.Te = this;
d = new ro;
d.j = !0;
d.g = no(this.width, this.height);
d.filter.g = 4;
d.filter.i = 3;
to(this.body, d);
d.j = !1;
d.filter.i = 1 === this.Ua ? 2 : 1;
to(this.body, d)
}
};
var vo = class extends uo {
constructor(a, b, c, d) {
super (a, b, c, d);
this.state = null;
this.j = {
radius: Math.sqrt(this.width * this.width + this.height * this.height) + 5,
Ge: 0,
Ua: this.Ua,
Od: null,
Kd: !0,
visible: !0
}
}
render() {
}
update() {
if (this.state) {
var a = this,
b = Xb(this.state, 1, 0, !1);
for (let c = 0; c < b.length; c++) {
const d = this.i.v.get(b[c]);
d && (d.O(a, c + 1), a = d)
}
}
}
H() {
if (this.state) for (const a of Xb(this.state, 1, 0, !1)) {
const b = this.i.v.get(a);
b && b.H()
}
}
Be() {
return this.j
}
};
const wo = rl(),
xo = Qg.Wa(),
yo = [
- 0.5,
- 1
],
zo = [
0,
0
];
function Ao(a, b, c, d, e) {
const f = b[3],
g = b[4],
h = document.createElement('canvas');
h.width = f;
h.height = g;
const k = h.getContext('2d');
Mg(xo, k, b);
b = PIXI.TilingSprite.from(h, Math.ceil(L / (f * e * 0.5)) * f, Math.ceil(vg / (g * e * 0.5)) * g);
b.blendMode = c;
b.alpha = d;
e /= 25;
b.scale.set(e);
a.wd.push(f * e);
a.vd.push(g * e);
a.g.addChild(b)
}
function Bo(a, b) {
const c = a.g.children[b];
c.tilePosition.set(25 * yo[b] * a.i / 1000, 25 * zo[b] * a.i / 1000);
const d = a.wd[b];
a = a.vd[b];
c.position.set(Math.floor(wo.left / d) * d, Math.floor(wo.top / a) * a)
}
var Co = class extends ci {
constructor() {
super ();
this.wd = [
];
this.vd = [
];
this.i = 0;
this.j = PIXI.autoDetectRenderer({
antialias: !0,
clearBeforeRender: !1,
preserveDrawingBuffer: !0,
view: N,
powerPreference: 'high-performance',
forceCanvas: !0,
width: N.width,
height: N.height
});
this.j.plugins.interaction.destroy();
this.g = new PIXI.Container;
Ao(this, oh, PIXI.BLEND_MODES.SCREEN, 0.5, 1);
Ao(this, ph, PIXI.BLEND_MODES.MULTIPLY, 0.15, 1.5)
}
ub() {
super.ub();
this.g.destroy(!0);
this.j.destroy(!1)
}
update(a) {
this.i += a
}
render() {
Bo(this, 0);
Bo(this, 1);
this.g.scale.set(wo.g);
this.g.position.set(yl(wo, 0), zl(wo, 0));
this.j.render(this.g)
}
};
var Eo = class {
constructor(a) {
this.Bd = a
}
Ed(a) {
Cn(this.Bd, a)
}
we(a) {
Cn(this.Bd, a)
}
g() {
var a = this.Bd;
0 < kc(a.i, nn, 1).length && (a.sendMessage(a.i), a.i = new Do)
}
},
Fo = class extends Eo {
constructor() {
super ()
}
Ed() {
}
we() {
}
g() {
}
};
var Ho = (a, b, c) =>{
if (!Go) return b;
let d;
try {
d = window.sessionStorage.getItem(a)
} catch (e) {
return b
}
if (null == d) return b;
a = JSON.parse(d);
return c && !c(a) ? b : a
},
Io = (a, b, c) =>{
if (Go && (!c || c(b))) try {
window.sessionStorage.setItem(a, JSON.stringify(b))
} catch (d) {
}
},
Jo;
try {
Jo = !!self.sessionStorage
} catch (a) {
Jo = !1
}
var Go = Jo;
var Lo = () =>{
const a = Ho('halloween21.client.match_config', null, Ko);
if (!a) return null;
const b = a.timestamp;
return !b || 150000 < Date.now() - b ? (Io('halloween21.client.match_config', null), null) : a
};
function Ko(a) {
return a ? void 0 !== a.url && void 0 !== a.match && void 0 !== a.player && void 0 !== a.nonce && void 0 !== a.timestamp : !1
};
function Mo(a, b) {
nc(a, 1, nn, b);
return a
}
var Do = class extends H {
constructor(a) {
super (a, - 1, No)
}
},
No = [
1
],
Oo = [
Do,
1,
Zd,
on
];
function Cn(a, b) {
if (qc(b, 3)) Mo(a.i, b);
else {
var c = '' + b.getType();
sc(b, 2) && (c += '_' + sc(b, 2));
var d = a.o.get(c);
b == d || b && d && b instanceof d.constructor && Ob(b.Ga, d.Ga) || (a.o.set(c, b), Mo(a.i, b))
}
}
var Po = class {
constructor() {
this.o = new Map;
this.i = new Do
}
};
var Qo = {
Rd: a=>Id(a, Oo),
df: a=>Hd(a, Oo)
};
function Ro(a, b) {
const c = new Xm;
B(c, 1, a.Oc);
if (a.Rc) {
const d = new Wm;
lc(c, 2, d);
B(d, 1, a.Rc.player);
B(d, 2, a.Rc.nonce)
}
b && B(c, 3, b);
a = new nn;
B(a, 1, 1);
lc(a, 4, c);
return a
};
function So(a) {
return r(function * () {
for (; a.i < a.j; ) {
a.i++;
if (yield a.v()) return a.u(a.i),
!0;
yield new Promise(b=>void setTimeout(b, a.g));
a.g *= 2
}
a.o();
return !1
})
}
var To = class {
constructor(a, b, c, d = () =>{
}, e = () =>{
}) {
this.v = a;
this.g = b;
this.j = c;
this.u = d;
this.o = e;
this.i = 0
}
};
function Uo(a) {
var b = {
od: Qo,
Vd: !0
},
c = Vo;
return r(function * () {
const d = new c(b);
if (!(yield So(new To(() =>r(function * () {
try {
return yield d.connect(a),
!0
} catch (e) {
return !1
}
}), 500, 3, e=>void console.log('Connecting to', a, '- attempt', e), () =>void console.log('Could not connect to', a))))) throw Error('Q');
return d
})
};
function Wo() {
let a,
b;
const c = new Promise((d, e) =>{
a = d;
b = e
});
return new Xo(c, a, b)
}
function Yo(a, b) {
a.g || (a.g = !0, a.i && (clearTimeout(a.i), a.i = void 0), a.o(b))
}
function Zo(a, b) {
a.g || (a.g = !0, a.i && (clearTimeout(a.i), a.i = void 0), a.j(b))
}
var Xo = class {
constructor(a, b, c) {
this.promise = a;
this.o = b;
this.j = c;
this.g = !1
}
},
$o = class {
constructor() {
this.g = Wo()
}
set(a) {
this.value = a;
Yo(this.g, a)
}
get() {
return void 0 !== this.value ? Promise.resolve(this.value) : this.g.promise
}
};
function ap(a) {
return 'string' === typeof a
};
function bp(a, b) {
console.warn('WARN: %s%s', a.g, b)
}
var cp = class {
constructor() {
this.g = ''
}
error(a) {
console.error('ERROR: %s%s', this.g, a)
}
log(a, b = 2) {
2 >= b && console.log('INFO: %s%s', this.g, a)
}
};
let dp = 0;
function ep(a, b, ...c) {
a = [
...a.g[b].entries()
].sort((d, e) =>d[0].localeCompare(e[0]));
for (const [,
d]of a) d(...c)
}
var fp = class {
constructor() {
this.g = {
[
0
]: new Map,
[
2
]: new Map,
[
1
]: new Map,
[
3
]: new Map
}
}
addListener(a, b) {
const c = `${ a }${ dp++ }`;
this.g[a].set(c, b);
return c
}
removeListener(a, b) {
b ? this.g[a].delete(b) : this.g[a].clear()
}
reset() {
this.g = {
[
0
]: new Map,
[
2
]: new Map,
[
1
]: new Map,
[
3
]: new Map
}
}
};
var gp = class extends H {
constructor(a) {
super (a)
}
},
hp = [
gp,
1,
ae,
2,
Yd,
ce,
3,
Vd,
4,
Vd
];
function ip(a, b, c) {
if (c) {
var d = new be;
c = a.od.Rd(c);
var e = '';
'/' !== e.substr( - 1) && (e += '/');
d = cc(d, 1, e + 'm');
c = Ac(c);
dc(d, 2, c.jc ? new Uint8Array(c.buffer) : c.buffer)
}
c = ac(ac(ac(B(jp, 1, b.Ld), 3), 2), 4);
b.clientId && B(c, 3, b.clientId);
b.Gd && B(c, 4, b.Gd);
d && lc(c, 2, d);
b = Id(c, hp);
a.ob.Yb.send(b)
}
function kp(a) {
if (a.o) {
var b = (new Date).getTime() - a.O.getTime();
10000 < b ? (a.g.log(`No Ping Received in ${ b }ms; closing connection.`), a.close()) : ip(a, {
Ld: 0
})
} else bp(a.g, 'Failed to send ping - Socket not alive.')
}
function lp(a, b) {
a.o ? void 0 !== a.u.value ? ip(a, {
Ld: 3
}, b) : a.g.error('Connection to server not yet established (no websocket key).') : a.g.error('Failed to send message - Socket not alive.')
}
function mp(a, b, c) {
a.i.addListener(b, c)
}
function np(a) {
a.o = !0;
a.O = new Date;
kp(a);
const b = setInterval(() =>{
kp(a)
}, a.nf);
a.V.push(b)
}
var pp = class {
constructor(a, b = 5000) {
this.od = a;
this.nf = b;
this.u = new $o;
this.V = [
];
this.O = new Date;
this.o = !1;
this.g = new cp;
this.i = new fp
}
va() {
}
open(a) {
op(this, 'opened', this.ya.bind(this));
op(this, 'message', this.wa.bind(this));
op(this, 'closed', this.v.bind(this));
op(this, 'error', this.onError.bind(this));
this.ob.open(a)
}
close() {
this.H()
}
v() {
Gi(this.ob);
this.o = !1;
for (const a of this.V) clearInterval(a);
ep(this.i, 2);
this.i.reset()
}
onError(a) {
ep(this.i, 3, a)
}
ya() {
np(this);
this.va();
this.u.get().then(a=>{
this.onReady(a)
})
}
onReady(a) {
this.g.g = `(${ a.clientId }) `;
ep(this.i, 0, a)
}
wa(a) {
if (a) {
try {
var b = Hd(new Uint8Array(a.message), hp)
} catch (c) {
bp(this.g, 'Found unparsable message');
return
}
switch (E(b, 1, 0)) {
case 0:
this.o ? ip(this, {
Ld: 1
}) : this.g.log('Cancelling scheduled pong - Socket closed.');
break;
case 1:
this.O = new Date;
break;
case 2:
this.u.set({
clientId: pc(b, 3),
Gd: pc(b, 4)
});
break;
case 3:
b = F(b, be, 2);
a = this.od.df;
if ('m' == b.getTypeName()) {
if (Array.isArray(Wb(b, 2))) throw Error('z');
b = $b(b, 2);
b = null == b ? nb() : b;
b = (b = pb(b)) ? new Uint8Array(b) : jb();
a = a(b)
} else a = null;
a && ep(this.i, 1, a)
}
} else bp(this.g, 'Received empty message.')
}
},
jp = new gp;
var qp = class extends pp {
constructor(a) {
super (a.od, a.nf);
let b;
this.Vd = null != (b = a.Vd) ? b : !1
}
connect(a) {
const b = this;
return r(function * () {
b.address = a;
b.j = Wo();
b.g.log('Websocket Client: connecting to ' + a);
b.open(a);
yield b.j.promise;
b.g.log('Websocket Client: connected to ' + a)
})
}
va() {
const a = this.Vd ? Ho('WS_SERVER_CLIENT_KEY', void 0, ap) : void 0;
ip(this, {
Ld: 2,
Gd: a
})
}
onReady(a) {
this.Vd && Io('WS_SERVER_CLIENT_KEY', a.Gd, ap);
super.onReady(a);
if (!this.j) throw Error('R`' + this.address);
Yo(this.j)
}
onError(a) {
super.onError(a);
this.g.error(`Error connecting to ${ this.address }: ${ a.message }`);
if (!this.j) throw Error('S`' + this.address);
Zo(this.j)
}
v(a) {
this.g.log('WebSocket client closed: ' + a);
super.v();
this.j = void 0
}
H() {
this.v(1005)
}
};
function rp(a) {
Ei.call(this);
a || (a = {
});
this.o = 0 != a.Se;
this.g = a.Tg || sp;
this.u = a.binaryType || 'blob';
this.i = this.g(this.ld)
}
ta(rp, Ei);
q = rp.prototype;
q.Yb = null;
q.zd = null;
q.kd = void 0;
q.xe = !1;
q.ld = 0;
q.Gc = null;
function sp(a) {
return Math.min(1000 * Math.pow(2, a), 60000)
}
q.open = function (a, b) {
null != this.Gc && t.clearTimeout(this.Gc);
this.Gc = null;
this.zd = a;
this.Yb = (this.kd = b) ? new WebSocket(this.zd, this.kd) : new WebSocket(this.zd);
this.Yb.binaryType = this.u;
this.Yb.onopen = qa(this.Yf, this);
this.Yb.onclose = qa(this.Vf, this);
this.Yb.onmessage = qa(this.Xf, this);
this.Yb.onerror = qa(this.Wf, this)
};
q.close = function () {
null != this.Gc && t.clearTimeout(this.Gc);
this.Gc = null;
this.Yb && (this.xe = !0, this.Yb.close(), this.Yb = null)
};
q.Yf = function () {
this.dispatchEvent('d');
this.ld = 0;
this.i = this.g(this.ld)
};
q.Vf = function (a) {
this.dispatchEvent(new tp(a.code, a.reason, a.wasClean));
this.Yb = null;
this.xe ? (this.zd = null, this.kd = void 0) : this.o && (this.Gc = yj(qa(this.open, this, this.zd, this.kd), this.i, this), this.ld++, this.i = this.g(this.ld));
this.xe = !1
};
q.Xf = function (a) {
this.dispatchEvent(new up(a.data))
};
q.Wf = function (a) {
this.dispatchEvent(new vp(a.data))
};
q.ub = function () {
rp.Tb.ub.call(this);
this.close()
};
function tp(a, b, c) {
ei.call(this, 'a');
this.code = a;
this.reason = b;
this.wasClean = c
}
ta(tp, ei);
function up(a) {
ei.call(this, 'c');
this.message = a
}
ta(up, ei);
function vp(a) {
ei.call(this, 'b');
this.data = a
}
ta(vp, ei);
const wp = {
opened: 'd',
closed: 'a',
message: 'c',
error: 'b'
},
xp = {
opened: a=>a,
error: a=>a,
message: a=>b=>{
a(b)
},
closed: a=>() =>{
a()
}
};
function op(a, b, c) {
vi(a.ob, wp[b], xp[b](c))
}
var Vo = class extends qp {
constructor(a) {
super (a);
let b;
this.ob = new rp({
Se: null != (b = a.Se) ? b : !1,
binaryType: 'arraybuffer'
})
}
H() {
this.ob.close();
super.H()
}
};
function yp(a) {
return r(function * () {
return Uo(a)
})
};
function zp(a, b) {
return r(function * () {
const c = yield yp(b.Zc),
d = new Ap(c, a, b);
var e = Ro(b, fl('H21_HAT', null));
e = Mo(new Do, e);
lp(c, e);
return d
})
}
function Bp(a, b, c) {
return r(function * () {
return new Ap(c, a, b)
})
}
function Cp(a) {
return r(function * () {
return a.j.promise
})
}
var Ap = class extends Po {
constructor(a, b, c) {
super ();
this.ob = a;
this.g = b;
this.connectionInfo = c;
this.u = !1;
this.j = Wo();
mp(this.ob, 1, this.H.bind(this));
mp(this.ob, 2, this.v.bind(this));
mp(this.ob, 3, this.onError.bind(this))
}
H(a) {
for (const c of kc(a, nn, 1)) switch (c.getType()) {
case 2:
console.log('handshake!');
a = F(c, Vm, 5);
var b = a.getId();
Dp(this.g.match.g, b);
Io('halloween21.client.match_config', {
url: this.connectionInfo.Zc,
player: b,
match: pc(a, 2),
nonce: oc(Wb(a, 3), 0),
timestamp: Date.now()
}, Ko);
mk(12);
void 0 !== this.connectionInfo.Rc && S(112);
Yo(this.j);
break;
case 5:
a = F(c, Um, 8);
b = this.g.match;
b.wb = sc(a, 1);
b.Ab || (mk(14), b.Ab = !0);
break;
case 4:
Ep(this.g, F(c, dn, 7));
break;
case 8:
qc(F(c, gn, 11), 7) && (this.u = !0);
a = F(c, gn, 11);
this.g.match.update(a);
break;
case 6:
a = F(c, ln, 9);
Fp(this.g.match, a);
break;
case 7:
a = F(c, mn, 10);
(a = Gp(this.g.match.g, a.getId())) && a.va();
break;
case 10:
a = F(c, Sm, 13);
Hp(this.g.match.g, a);
break;
case 9:
a = F(c, Ym, 12);
Gp(this.g.match.g, a.getId()).input = a;
break;
case 11:
a = F(c, hn, 14);
(b = Gp(this.g.match.g, a.getId())) ? b.nc(a) : a.getId();
break;
case 12:
a = F(c, kn, 15);
Ip(this.g.match, kc(a, $m, 1));
break;
case 15:
S(111),
Io('halloween21.client.match_config', null)
}
}
v() {
this.u || (void 0 !== this.connectionInfo.Rc && !this.j.g || this.g.H(), this.j.g ? console.error('Lost connection to GameServer.') : Zo(this.j, 'Failed to connect to GameServer.'))
}
onError() {
void 0 === this.connectionInfo.Rc && S(110)
}
sendMessage(a) {
lp(this.ob, a)
}
};
function dg(a, b) {
return B(a, 1, b)
}
function cg(a, b) {
return B(a, 2, b)
}
function bg(a, b) {
return B(a, 3, b)
}
var eg = class extends H {
constructor(a) {
super (a)
}
},
gg = [
eg,
1,
Vd,
2,
Vd,
3,
Vd
];
var Jp = class extends H {
constructor(a) {
super (a)
}
};
const Kp = /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,
Lp = /^mtch-\w+-\d+-HALLOWEEN_PRIVATE$/;
var Mp = class {
constructor(a, b, c) {
this.ob = a;
this.connectionInfo = b;
b = Ro(b, c);
b = Mo(new Do, b);
lp(a, b)
}
join(a, b) {
return new Promise((c, d) =>{
mp(this.ob, 1, e=>{
for (const f of kc(e, nn, 1)) switch (f.getType()) {
case 16:
let g,
h;
a(null != (h = null == (g = F(f, Zm, 17)) ? void 0 : oc(Wb(g, 1), 0)) ? h : 1);
break;
case 17:
this.ob.i.removeListener(1, void 0);
this.ob.i.removeListener(2, void 0);
c({
ob: this.ob,
connectionInfo: this.connectionInfo
});
break;
case 18:
b();
break;
default:
console.log('Unexpected message', f.getType())
}
});
mp(this.ob, 2, () =>{
d()
})
})
}
start() {
var a = new Do;
var b = new nn;
b = B(b, 1, 17);
a = Mo(a, b);
lp(this.ob, a)
}
};
const Np = new je(ke, '.cloud.doodles.goog'),
Op = new je(ke, 'gs.'),
Pp = new je(ke, 'wss');
function Qp(a) {
a = hf(a);
return a.o === me(Pp) && a.j.startsWith(me(Op)) && a.j.endsWith(me(Np)) && !a.v && '' === a.g.toString() && null == a.H ? !0 : !1
};
var fg = {
DEFAULT: {
name: 'DEFAULT',
Pc: 2
},
Fg: {
name: 'PETANQUE_SINGLES',
Pc: 2
},
Cg: {
name: 'PETANQUE_DOUBLES',
Pc: 4
},
Eg: {
name: 'PETANQUE_PRIVATE_SINGLES',
Pc: 1
},
Dg: {
name: 'PETANQUE_PRIVATE_DOUBLES',
Pc: 1
},
Zd: {
name: 'HALLOWEEN',
Pc: 8
},
yf: {
name: 'HALLOWEEN_PRIVATE',
Pc: 1
}
};
function Rp() {
Sp || (Sp = new Tp);
return Sp
}
function Up(a) {
B(a.g, 3, a.i);
Io('halloween21.client.replay', a.g.Rd());
lk('d3', E(a.g, 1, 1))
}
function Vp(a) {
if (!a) return !1;
switch (E(a, 1, 1)) {
case 1:
return !0;
case 2:
case 3:
var b = F(a, eg, 2);
if (!b) return !1;
a = pc(b, 2);
b = pc(b, 1) || '';
return (Kp.test(b) || 'local-match-id' === b || Lp.test(b)) && a && Qp(a) ? !0 : !1;
default:
return !1
}
}
function Wp(a) {
if (!a.i) return null;
const b = a.i.indexOf('_');
if (0 > b) return null;
a = a.i.substr(b + 1);
if (!a) return null;
let c;
try {
var d = db(a);
c = Hd(d, gg)
} catch (e) {
return null
}
d = new Jp;
B(d, 1, 2);
lc(d, 2, c);
return Vp(d) ? d : null
}
var Tp = class {
constructor() {
this.i = hf(window.location.href).g.get('doodle');
var a;
b: if (a = Ho('halloween21.client.replay', null)) {
try {
if (null == a || '' == a) var b = new Jp;
else {
var c = JSON.parse(a);
if (!Array.isArray(c)) throw Error(void 0);
var d = yb(c);
xc = d;
const e = new Jp(d);
xc = null;
b = e
}
} catch (e) {
a = null;
break b
}
a = Vp(b) ? b : null
} else a = null;
a = Vp(a) && Wb(a, 3) === this.i ? a : null;
a || (a = Wp(this), a || (a = new Jp, B(a, 1, 1)));
this.g = a;
Up(this)
}
set(a, b) {
B(this.g, 1, a);
lc(this.g, 2, b);
Up(this)
}
},
Sp;
function Xp(a) {
return a.g[Math.min(a.g.length - 1, a.u)]
}
function Yp(a, b) {
a.g = b;
a.u = 0;
a.i = 0
}
var Zp = class {
constructor(a) {
this.g = a;
this.u = 0;
this.o = !0;
this.i = 0;
this.j = this.loop = !0;
this.Wb = 0;
this.point = new P(0, 0);
this.opacity = 1
}
Ia(a, b) {
this.point.x = a;
this.point.y = b
}
Cb() {
return this.point
}
update(a) {
this.o && 1 !== this.g.length + this.Wb && (this.loop || this.u !== this.g.length + this.Wb + this.Wb - 1) && (this.i += a, this.u = Math.floor(this.i % (1000 / 24 * (this.g.length + this.Wb)) / 1000 * 24) % (this.g.length + this.Wb))
}
render(a = 0, b = 0, c, d = 0, e = !1, f = 1, g, h) {
h = void 0 !== h ? h : this.opacity;
const k = Xp(this);
g = void 0 !== g ? g : f;
this.j && void 0 !==
c ? Dl(k, a + this.point.x, b + this.point.y, c, d, e, f, g, h) : Cl(k, a + this.point.x, b + this.point.y, c, d, e, f, g, h)
}
play() {
this.o || (this.i = 0, this.o = !0)
}
stop() {
this.o = !1
}
setLoop(a) {
this.loop = a
}
};
var $p = class {
constructor() {
this.Ka = new Zp(Vh);
this.status = 1
}
render(a, b, c, d) {
Dl(Xp(this.Ka), a, b, 2, c, !1, 1, 1, d, Qg.Wa())
}
update(a) {
this.Ka.update(a)
}
};
var aq = class {
constructor() {
const a = Array(256);
for (var b = 0; b < a.length; ++b) a[b] = b;
for (b = a.length - 1; 0 < b; --b) {
const c = Math.floor(Math.random() * a.length),
d = a[b];
a[b] = a[c];
a[c] = d
}
this.g = a.concat(a)
}
},
bq;
const cq = (a, b, c, d) =>{
a &= 15;
const e = 8 > a ? b : c;
b = 4 > a ? c : 12 === a || 14 === a ? b : d;
return (0 === (a & 1) ? e : - e) + (0 === (a & 2) ? b : - b)
};
function dq(a, b) {
E(a.state, 1, 0) !== b && B(a.state, 1, b)
}
var eq = class extends En {
constructor(a, b, c, d, e = !0) {
super (a, b, c);
this.Xa = d;
this.i = null;
this.state = new Km;
dq(this, 1);
B(this.state, 2, !0);
this.Sc(null);
e && (a = new po, a.type = 2, a.position.set(this.g.x, this.g.y), this.body = so(d.o, a), this.body.Ye = this, d = new ro, d.j = !0, d.i = 0.0001, d.H = 0.1, d.g = no(1, 1), d.filter.g = 16, d.filter.i = 64, to(this.body, d))
}
V(a) {
(a = (this.state = a) && sc(a, 3)) ? this.i = this.Xa.i.get(a) || null : this.i = null
}
isVisible() {
return 4 !== E(this.state, 1, 0)
}
Sc(a) {
(this.i = a) ? this.state.Sc(a.getId()) : ac(this.state, 3)
}
O(a) {
const b = this.body.ta.position,
c = un(a.body.ta.position);
c.x -= b.x;
c.y -= b.y;
vn(c, this.j());
Bn(this.body, c);
this.angle = a.angle
}
j() {
return + zn(this, 'collectible_trail_speed')
}
update() {
}
};
var gq = class extends eq {
constructor(a, b, c, d, e = !1) {
super (a, b, c, d, e);
this.Qa = e;
this.Na = new $p;
this.opacity = 0;
this.Sd = 1;
this.o = this.u = null;
this.v = {
x: 0,
y: 0
};
this.wa = new Zp(Sh);
this.Fa = new Zp(ai);
this.u = new em([new W(new X({
opacity: 0
}, {
opacity: 1
}, 242, om), f=>{
this.opacity = f.opacity
}),
new am(() =>{
this.u = null
})]);
this.Ba = {
radius: 7,
Ge: 0,
Ua: 1,
Od: 1000 * Math.random(),
Kd: !1,
visible: !0
}
}
va() {
this.o = new fm([new W(new X({
opacity: 1
}, {
opacity: 0
}, 750, qm), a=>{
this.opacity = a.opacity
}),
new W(new X({
Sd: 1
}, {
Sd: 5
}, 2000, qm), a=>{
this.Sd = a.speedMultiplier
})])
}
Qe() {
return !!this.o && this.o.g()
}
update(a) {
this.o ? this.o.update(a) : this.u && this.u.update(a);
var b = this.Na,
c = E(this.state, 1, 0);
if (b.status !== c) {
b.status = c;
switch (c) {
case 2:
Yp(b.Ka, Th);
break;
case 3:
Yp(b.Ka, Uh);
break;
default:
Yp(b.Ka, Vh)
}
b.Ka.play()
}
this.Na.update(a);
this.wa.opacity = this.opacity;
this.Fa.opacity = this.opacity;
this.wa.update(a);
this.Fa.update(a)
}
render() {
this.isVisible() && (this.Na.render(this.g.x, this.g.y, this.angle, this.opacity), this.i && fq(this.i) && (this.wa.render(this.g.x, this.g.y, 2), this.Fa.render(this.g.x, this.g.y, 2)))
}
V(a) {
const b = this.i;
super.V(a);
(a = this.i) && a.i && (!b || !b.i) && a.i && a.Ba - a.ef >= wg && (Q.le.play(), a.ef = a.Ba)
}
Sc(a) {
super.Sc(a);
a && a.i && Q.le.play()
}
O(a, b) {
this.Qa ? super.O(a, b) : (b = a.g, this.v.x = this.j() * (b.x - this.g.x), this.v.y = this.j() * (b.y - this.g.y), this.angle = a.angle)
}
H() {
this.Qa ? super.H() : (this.g.x += 16 * this.v.x / 1000, this.g.y += 16 * this.v.y / 1000)
}
nc(a) {
this.Qa ? super.nc(a) : qc(a, 6) && (this.g.x = rc(a, 2), this.g.y = rc(a, 3))
}
j() {
return this.Sd * super.j()
}
Be() {
this.Ba.Ua = 2 === E(this.state, 1, 0) ? 1 : 2;
this.Ba.visible = 2 === E(this.state, 1, 0) || 3 === E(this.state, 1, 0);
return this.Ba
}
};
var hq = class {
render(a, b) {
a.save();
0 > b ? (b = U('countdown_get_ready'), a.textAlign = 'center', a.font = `${ J ? 45 : 60 }px ${ O }`, a.fillStyle = '#700', a.fillText(b, 0, 0), a.strokeStyle = '#F93', a.strokeText(b, 0, 0)) : (V(jh, a, 0, 0), a.textAlign = 'center', a.textBaseline = 'middle', Qg.Wa(), a.font = `${ 0.75 * jh[3] }px ${ O }`, a.fillStyle = '#000', a.fillText(`${ b }`, 0, 0));
a.restore()
}
};
var iq = class {
};
class jq extends iq {
constructor(a, b, c) {
super ();
this.text = a;
this.V = b;
this.va = c;
this.offsetX = 1
}
j() {
return - 1
}
cancel() {
}
Ta(a) {
this.offsetX = a.offsetX
}
render(a) {
Qg.Wa();
var b = kh[3];
var c = this.V - b / 2;
c += this.offsetX * c;
const d = this.va;
a.save();
V(kh, a, c + b / 2, d);
var e = this.v();
if (e) {
Qg.Wa();
var f = e[3];
Qg.Wa();
V(e, a, c, d, f / 2, e[4] / 2);
a.textAlign = 'center';
a.textBaseline = 'middle';
a.fillStyle = '#000';
e = Jl(a, this.text, O, 24, 16, b - f / 4, 2);
f = 1.25 * e.fontSize;
Ll(a, e, c + b / 2 + 20, d - e.lines.length * f / 2 + f / 2, f)
}
a.restore()
}
}
var lq = class extends jq {
constructor(a, b, c, d) {
super (a, c, d);
this.action = kq(this, b)
}
u() {
return this.action.g()
}
update(a) {
this.action.update(a)
}
},
oq = class extends jq {
constructor(a) {
super (a, 0, 0);
this.o = !1;
this.O = mq(this);
this.H = nq(this)
}
u() {
return this.H.g()
}
update(a) {
this.O.g() ? this.o && !this.H.g() && this.H.update(a) : this.O.update(a)
}
};
var pq = class {
constructor(a, b, c, d, e) {
this.x = a;
this.y = b;
this.width = c;
this.height = d;
this.j = e;
this.body = null;
this.i = new po;
this.i.type = 0;
this.i.position.set(a, b);
this.g = new ro;
this.g.H = 0.1;
this.g.i = 1000;
this.g.g = no(c, d);
this.g.filter.g = 256;
this.g.filter.i = 1
}
open() {
this.body && (Dn(this.j, this.body), this.body = null)
}
close() {
this.body || (this.body = so(this.j, this.i), this.body.Xa = this, to(this.body, this.g))
}
render(a) {
if (this.body) {
a.save();
a.fillStyle = '#000';
var b = this.x - this.width,
c = this.y - this.height,
d = 2 * this.width,
e = 2 * this.height;
b = yl(Bl, b);
c = zl(Bl, c);
d *= Bl.g;
e *= Bl.g;
yg.fillRect(b, c, d, e);
a.restore()
}
}
};
function qq(a) {
const b = N.getContext('2d');
b.textAlign = a.j;
b.textBaseline = 'middle';
return Jl(b, a.text, a.fontFamily, a.fontSize, Math.round(a.fontSize / 4), a.v, a.H, a.fontStyle)
}
function rq(a, b, c = 3) {
a.u = c;
a.o = b
}
var sq = class {
constructor(a, b, c, d = 1) {
this.fontSize = b;
this.v = c;
this.H = d;
this.fontFamily = O;
this.point = new P(0, 0);
this.fontStyle = '';
this.g = '#fff';
this.o = null;
this.j = 'center';
this.u = 3;
this.text = U(a);
this.i = qq(this)
}
Ia(a, b) {
this.point.x = a;
this.point.y = b
}
render(a) {
a.save();
null != this.o && (a.strokeStyle = this.o, a.lineWidth = this.u);
a.fillStyle = this.g;
a.textAlign = this.j;
a.textBaseline = 'middle';
Ll(a, this.i, this.point.x, this.point.y - this.i.fontSize * (this.i.lines.length - 1) / 2, 0.85 * this.fontSize, !!this.o);
a.restore()
}
};
function tq(a, b, c, d) {
return new uq([a,
b,
a + c,
b,
a + c,
b + d,
a,
b + d])
}
function vq(a, b, c) {
b -= a.g[0];
c -= a.g[1];
if (0 != b || 0 != c) for (let d = 0; d < a.g.length - 1; d += 2) a.g[d] += b,
a.g[d + 1] += c
}
var uq = class extends Hl {
constructor(a) {
super ();
this.g = a
}
contains(a, b) {
const c = this.g;
if (6 > c.length) return !1;
let d = !1;
for (let e = 0, f = c.length - 2; e < c.length; f = e, e += 2) {
const g = c[e],
h = c[e + 1],
k = c[f],
l = c[f + 1];
a < g != a < k && b > h + (a - g) * (l - h) / (k - g) && (d = !d)
}
return d
}
};
var zq = (a, b) =>r(function * () {
const c = 'string' === typeof a ? a : a.value;
var d;
if (!(d = yield wq(c))) if (Gf) {
'string' === typeof a ? (xq || (xq = document.createElement('input'), xq.readOnly = !0, Qf(xq, 'position', 'absolute', 'opacity', 0, 'left', 0, 'top', 0, 'pointerEvents', 'none'), document.body.appendChild(xq)), xq.value = a, d = xq) : d = a;
d !== document.activeElement && d.focus();
const f = d.contentEditable,
g = d.readOnly;
d.contentEditable = 'true';
d.readOnly = !1;
const h = document.createRange();
h.selectNodeContents(d);
const k = window.getSelection();
k.removeAllRanges();
k.addRange(h);
try {
d.select(),
d.setSelectionRange(0, d.value.length)
} catch (l) {
}
d.contentEditable = f;
d.readOnly = g;
try {
var e = Gf('copy')
} catch (l) {
e = !1
}
window.getSelection().removeAllRanges();
d.blur();
b && b !== document.activeElement && b.focus();
xq && xq.remove();
d = e
} else d = !1;
return d || (yield yq()) && (yield wq(c)) ? Promise.resolve() : Promise.reject()
});
const wq = a=>r(function * () {
return navigator.clipboard && navigator.clipboard.writeText ? navigator.clipboard.writeText(a).then(() =>!0, () =>!1) : !1
}),
Aq = a=>r(function * () {
switch (a.state) {
case 'granted':
return !0;
case 'denied':
return !1
}
return new Promise(b=>{
a.onchange = () =>b(Aq(a))
})
}),
yq = () =>r(function * () {
return navigator.permissions && navigator.permissions.query ? Aq(yield navigator.permissions.query({
name: 'clipboard-write'
})) : !1
});
let xq = null;
function Bq(a) {
ci.call(this);
this.i = a;
this.g = {
}
}
ta(Bq, ci);
var Cq = [
];
function Dq(a, b, c, d, e) {
Array.isArray(c) || (c && (Cq[0] = c.toString()), c = Cq);
for (var f = 0; f < c.length; f++) {
var g = si(b, c[f], d || a.handleEvent, e || !1, a.i || a);
if (!g) break;
a.g[g.key] = g
}
}
function Eq(a) {
ee(a.g, function (b, c) {
this.g.hasOwnProperty(c) && Ci(b)
}, a);
a.g = {
}
}
Bq.prototype.ub = function () {
Bq.Tb.ub.call(this);
Eq(this)
};
Bq.prototype.handleEvent = function () {
throw Error('T');
};
Object.freeze([]);
Object.create(null);
var Fq = () =>null != window.agsa_ext && null != window.agsa_ext.share;
const Gq = (a, b) =>{
const c = new Ze;
for (let d in b) c.add(d, b[d]);
a = new Se(a);
Ve(a, c);
return a.toString()
};
var Hq = (a, b) =>r(function * () {
if (jg()) return Promise.reject();
S(16);
return zq(a, b)
});
Qg.Wa();
const Iq = J ? 285 : 520,
Jq = J ? 93 : 47,
Kq = J ? 270 : 291,
Lq = J ? - 20 : 7,
Mq = J ? - 112 : - 140,
Nq = J ? 120 : 106,
Oq = J ? 70 : 105,
Pq = J ? 275 : 735,
Qq = J ? 645 : 200,
Rq = J ? 390 : 850,
Sq = J ? 550 : 100,
Tq = J ? 270 : 737,
Uq = J ? 906 : 475,
Vq = (new Map).set(1, '#005c20').set(2, '#f6d4fb'),
Wq = (new Map).set(1, '#8bffb5').set(2, '#dc6dfb'),
Xq = L / 2,
Yq = J ? 225 : 15,
Zq = (new Map).set(0, J ? new Il(110, 790, 66) : new Il(590, 346, 66)).set(2, J ? new Il(270, 790, 80) : new Il(738, 338, 80)).set(3, J ? new Il(440, 790, 66) : new Il(875, 346, 66)).set(1, J ? tq(140, 880, 270, 80) : tq(600, 440, 270, 80)).set(4, J ? tq(100, 530, 340, 170) : tq(560, 80, 340, 170)).set(5, tq(Xq + 91, Yq + 96, 122, 122)).set(6, tq(Xq + 235, Yq + 96, 122, 122)).set(7, tq(Xq + 91, Yq + 241, 122, 122)).set(8, tq(Xq + 235, Yq + 241, 122, 122)).set(9, tq(Xq + 331, Yq - 100, 102, 102));
function $q(a) {
[
...a.match.g.i.values()
].sort((b, c) =>ar(c) - ar(b)) [0] === a.match.g.g && (nl('MOST_SPIRITS_COLLECTED'), gl('H21_MOST_SPIRITS_COLLECTED', !0));
nl('PLAYS');
a.i === a.match.g.g.Ua && nl('WINS');
ol(ar(a.match.g.g));
a = br(a.match, a.match.g.g.getId());
5 === a ? gl('H21_STOLE_MOST', !0) : 10 === a && gl('H21_MOST_MEGA_FLAMES', !0);
kl()
}
function cr(a) {
const b = [
...a.match.g.i.values()
];
b.sort((c, d) =>ar(d) - ar(c));
for (const c of b) {
const d = c.Ua,
e = ar(c);
c.i && (jk.s = e);
a.Ba.set(d, (a.Ba.get(d) || 0) + e)
}
return b
}
function dr(a) {
if (1 === a.i) {
var b = 'alpha_team_wins';
a = '#019d4b'
} else 2 === a.i ? (b = 'bravo_team_wins', a = '#9a00d6') : (b = 'draw', a = '#2c2b8f');
b = new sq(b, 64, 360);
b.Ia(Iq, 264);
b.g = a;
return b
}
function er(a) {
fr(a, 0, () =>{
if (Fq()) {
var b = gr(),
c = hr();
!jg() && Fq() && (S(15), window.agsa_ext.share(c + ' ' + b, null))
} else ir(a),
a.ya = !0,
jr(a)
});
fr(a, 2, () =>{
ir(a);
kr(a, 4);
S(4)
});
Dg || fr(a, 1, () =>{
ir(a);
kr(a, 3);
S(113)
});
fr(a, 3, () =>{
S(3);
let b = google.doodle ? google.doodle.url : '';
b && Wf(b, !0)
});
fr(a, 4, () =>{
ir(a);
a.o = !0;
a.H.includes(a.Oa) && gl('H21_ACK_' + a.Oa, !0);
Wl(a.j)
})
}
function fr(a, b, c) {
if (b = Zq.get(b)) Xl(a.O, b, d=>{
'mouseup' === d && c()
}),
Yl(a.O, b)
}
function ir(a) {
for (const b of Zq.values()) lr(a.O, b)
}
function gr() {
const a = Yf('shortlink', `https://www.google.com/?doodle=${ hg }`);
return 0 === a.indexOf('//') ? `https:${ a }` : a
}
function hr() {
return Yf('share', 'TODO(b/116542685): Default share message')
}
function jr(a) {
const b = gr(),
c = hr(),
d = Sk('share.png');
fr(a, 5, () =>{
S(16);
Hq(b, N).then(() =>{
dl(a.g, !0);
setTimeout(() =>{
dl(a.g, !1)
}, 2000)
})
});
fr(a, 6, () =>{
var e = b;
jg() || (e = 0 == e.indexOf('//') ? 'https:' + e : e, e = 'text=' + encodeURIComponent(c + '\n' + e), Pe('http://twitter.com/intent/tweet?' + e), S(6))
});
fr(a, 7, () =>{
var e = b;
jg() || (e = 0 == e.indexOf('//') ? 'https:' + e : e, e = Gq('https://www.tumblr.com/widgets/share/tool', {
canonicalUrl: e,
posttype: 'photo',
title: c,
content: d
}), Pe(e), S(12))
});
fr(a, 8, () =>{
var e = b;
jg() || (e = 0 == e.indexOf('//') ?
'https:' + e : e, e = Gq('https://www.facebook.com/dialog/share', {
app_id: '738026486351791',
href: e,
hashtag: '#GoogleDoodle'
}), Pe(e), S(5))
});
fr(a, 9, () =>{
ir(a);
a.ya = !1;
a.o ? Wl(a.j) : er(a)
})
}
function kr(a, b) {
a.state = b;
a.v = 0;
switch (a.state) {
case 1:
er(a),
mk(17),
$k(a.Da, a.Xa)
}
}
function mr(a, b, c, d) {
b.save();
b.translate(c, 0);
c = Vq.get(d);
b.fillStyle = c;
b.font = `56px ${ O }`;
b.fillText(`${ a.Ba.get(d) || 0 }`, 0, Lq);
b.font = `48px ${ O }`;
let e = Oq;
for (const f of a.wb) if (f.Ua === d) {
if (f.i) {
a = Wq.get(d);
b.fillStyle = a;
a = e - 47.5;
const g = a + 48,
h = e + 47.5,
k = h - 48;
b.beginPath();
b.moveTo( - 49.5, a);
b.lineTo(49.5, a);
b.arc(49.5, g, 48, - Math.PI / 2, 0);
b.lineTo(97.5, k);
b.arc(49.5, k, 48, 0, Math.PI / 2);
b.lineTo( - 49.5, h);
b.arc( - 49.5, k, 48, Math.PI / 2, Math.PI);
b.lineTo( - 97.5, g);
b.arc( - 49.5, g, 48, Math.PI, 3 * Math.PI / 2);
b.fill();
b.fillStyle = c
}
a = zm(f.Na) [0];
V(a, b, - 45, e, 90, 90);
f.Wc && V(gh, b, - 72, e + 26);
b.fillText(`${ ar(f) }`, 45, e);
e += 95
}
b.restore()
}
var nr = class extends ci {
constructor(a, b) {
super ();
this.match = a;
this.O = b;
this.v = this.state = 0;
this.Ba = new Map;
this.ya = this.o = !1;
this.g = this.oa = this.u = null;
this.i = a.Oa;
$q(this);
this.Fa = (a = this.i === a.g.g.Ua) ? Q.If : Q.Bf;
this.Da = a ? Q.Hf : Q.Af;
this.Xa = a ? 4363 : 6000;
this.wb = cr(this);
this.yb = 1 === this.i ? I() ? eh : dh : 2 === this.i ? I() ? ih : hh : I() ? Qh : Ph;
this.Ab = dr(this);
this.V = new sq('host_private_match', 30, 200, 1);
this.V.g = '#fff';
this.V.Ia(Tq, Uq);
this.Eb = U('achievements_header');
this.Qa = I() ? nh : mh;
this.Na = document.getElementById('ddlDomRoot');
this.H = ll();
this.Oa = ml();
this.g = document.createElement('div');
this.g.classList.add('ddl-shareLinkCopied_');
this.g.style.font = `28px ${ O }`;
this.g.textContent = U('share_link_copied');
this.oa = document.createElement('div');
this.oa.classList.add('ddl-shareLinkContainer_');
Qf(this.oa, 'width', '100%');
this.oa.appendChild(this.g);
this.Na.appendChild(this.oa);
mk(16);
this.Fa.play();
this.j = new Zl(b, () =>{
this.o = !1;
var c = this.j;
for (const d of c.i) lr(c.g, d);
c.i = [
];
er(this);
this.H = ll()
})
}
ub() {
super.ub();
this.Fa.stop();
this.Da.stop();
this.oa && (this.oa.remove(), this.oa = null)
}
render(a) {
a.save();
a.fillStyle = '#000';
a.fillRect(0, 0, a.canvas.width, a.canvas.height);
switch (this.state) {
case 0:
V(this.yb, a, L / 2, vg / 2);
this.Ab.render(a);
break;
default:
V(this.Qa, a, L / 2, vg / 2);
a.textAlign = 'center';
a.textBaseline = 'middle';
a.save();
a.translate(Kq, Jq);
mr(this, a, Mq, 2);
mr(this, a, Nq, 1);
a.restore();
Dg || this.V.render(a);
a.fillStyle = '#fff';
a.shadowColor = '#fff';
a.shadowOffsetX = 0;
a.shadowOffsetY = 0;
a.shadowBlur = 15;
var b = Jl(a, this.Eb, O, 50, 30, 200, 2);
Ll(a, b, Pq, Qq, 42);
a.shadowColor = 'transparent';
0 < this.H.length && (a.beginPath(), a.fillStyle = '#f33', a.arc(Rq, Sq, 29, 0, 2 * Math.PI), a.closePath(), a.fill(), a.font = `36px bold ${ O }`, a.fillStyle = '#fff', a.fillText(this.H.length.toString(10), Rq, Sq));
this.o && this.j.render(a);
if (this.ya) {
Gl(a);
b = L / 2;
var c = Yq + Dh[4] / 2;
V(Dh, a, b, c);
V(Ch, a, b, c);
vq(Zq.get(5), b - Ch[3] / 2, c - Ch[4] / 2);
vq(Zq.get(6), b + 10, c - Ch[4] / 2);
vq(Zq.get(7), b - Ch[3] / 2, c + 10);
vq(Zq.get(8), b + 10, c + 10);
b = b + Dh[3] / 2 - Eh[3] / 2;
c = Yq + Eh[4] / 2;
V(Eh, a, b, c);
vq(Zq.get(9), b - Eh[3] / 2, c - Eh[4] / 2);
a.fillStyle = '#5977ab';
a.textAlign = 'center';
a.textBaseline = 'middle';
this.u || (this.u = Jl(a, U('share'), O, 48, 20, 320, 1));
Ll(a, this.u, L / 2, Yq + 416, this.u.fontSize)
}
}
a.restore()
}
};
Qg.Wa();
(new Map).set(1, '#005c20').set(2, '#f6d4fb');
(new Map).set(1, '#8bffb5').set(2, '#dc6dfb');
const or = L / 2,
pr = J ? 225 : 15;
(new Map).set(0, J ? new Il(425, 682, 50) : new Il(892, 165, 50)).set(1, J ? new Il(101, 811, 55) : new Il(615, 346, 55)).set(2, J ? new Il(247, 849, 68) : new Il(738, 438, 68)).set(3, J ? new Il(432, 811, 55) : new Il(852, 346, 55)).set(4, tq(or + 91, pr + 96, 122, 122)).set(5, tq(or + 235, pr + 96, 122, 122)).set(6, tq(or + 91, pr + 241, 122, 122)).set(7, tq(or + 235, pr + 241, 122, 122)).set(8, tq(or + 331, pr - 100, 102, 102));
(new Map).set(1, 'most_spirits_collected').set(2, 'least_spirits_collected').set(3, 'most_spirits_held_at_once').set(4, 'most_spirits_held_at_end').set(5, 'stole_most').set(6, 'most_stolen_from').set(7, 'most_team_bonus').set(10, 'most_mega_flames').set(11, 'fastest_to_max_powerups').set(12, 'fewest_powerups');
(new Map).set(1, 'most_spirits_collected_subtitle').set(2, 'least_spirits_collected_subtitle').set(3, 'most_spirits_held_at_once_subtitle').set(4, 'most_spirits_held_at_end_subtitle').set(5, 'stole_most_subtitle').set(6, 'most_stolen_from_subtitle').set(7, 'most_team_bonus_subtitle').set(10, 'most_mega_flames_subtitle').set(11, 'fastest_to_max_powerups_subtitle').set(12, 'fewest_powerups_subtitle');
function qr(a, b) {
a.Da = b
}
function Gp(a, b) {
return a.H.get(b)
}
function rr(a, b) {
for (const f of a.H.values()) if (f.update(b), f.Qe()) {
var c = a,
d = f.getId(),
e = f.getType();
const g = c.H.get(d);
if (g) {
g.Xc() && c.V.delete(d);
switch (e) {
case 1:
case 2:
c.i.delete(d);
break;
case 16:
c.v.delete(d);
break;
case 4:
c.u.delete(d)
}
c.H.delete(d);
g.dispose(c);
c.Da && c.Da(d)
}
f.re = !1
}
}
function sr(a) {
for (const b of a.V.values()) b.oc()
}
function tr(a, b) {
a.H.set(b.getId(), b);
b.Xc() && a.V.set(b.getId(), b);
switch (b.getType()) {
case 1:
case 2:
a.i.set(b.getId(), b);
break;
case 16:
a.v.set(b.getId(), b);
break;
case 4:
a.u.set(b.getId(), b)
}
}
var vr = class {
constructor(a) {
this.o = a;
this.H = new Map;
this.V = new Map;
this.i = new Map;
this.v = new Map;
this.u = new Map;
this.Ba = 1;
this.j = this.O = 0;
this.Da = null
}
wa(a) {
this.O += a;
for (this.j += a; 100 <= this.O && 16 <= this.j; ) this.update(100),
ur(this.o),
this.va(),
this.O -= 100,
this.j -= 16;
for (; 16 <= this.j; ) ur(this.o),
this.va(),
this.j -= 16
}
update(a) {
rr(this, a);
sr(this)
}
va() {
for (const a of this.H.values()) a.H()
}
wake() {
this.j = 0
}
};
function Dp(a, b) {
if (b = a.i.get(b)) a.g = b,
a = a.g,
a.i = !0,
a.Jc.Kd = !0
}
function Hp(a, b) {
switch (E(b, 2, 0)) {
case 1:
case 2:
var c = b.getId();
a = a.i.get(c);
if (c = b.getPlayerState()) {
b = a.state ? E(a.state, 4, 0) : 0;
var d = !(!a.state || !qc(a.state, 12));
a.state = c;
a.state && null != Wb(a.state, 16, !1) && (a.Wc = qc(a.state, 16));
if (!a.V && null != Wb(a.state, 21)) {
var e = pc(a.state, 21);
e && hl.has(e) && (a.V = new wr(a, hl.get(e) [1], hl.get(e) [2]))
}
a.i && !d && a.state && qc(a.state, 12) && Q.Df.play();
a.j = [
];
for (var f of Xb(c, 9, 0, !1)) (d = a.wb.v.get(f)) && a.j.push(d);
for (var g of kc(c, Pm, 14)) switch (g.getType()) {
case 1:
xr(a, sc(g, 2));
break;
case 3:
f = a;
yr(f, new zr(sc(g, 2), f.Pe, f.ig));
f.Eb = f.Pe;
f.i && Q.vf.play();
break;
case 2:
f = a;
d = sc(g, 2);
yr(f, new Ar(d));
f.i && (Q.wf.play(), nl('SPIRITS_COLLECTED', d));
break;
case 4:
f = a,
yr(f, new Br(sc(g, 2))),
f.i && (Q.le.play(), nl('MEGA_FLAMES'))
}
for (var h of kc(c, Nm, 13)) {
g = null;
switch (h.getType()) {
case 1:
g = a;
f = h;
e = bl;
d = e.width / 2 + e.left + zn(g, 'notice_offset_x');
e = 0.75 * e.height + e.top + zn(g, 'notice_offset_y');
g = new Cr(f.getType(), Dr(E(f, 2, 0)), zn(g, 'notice_duration_ms'), d, e);
break;
case 2:
g = new Er(Fr(E(h, 2, 0)), zn(a, 'notice_duration_ms'))
}
g && yr(a, g)
}
h = kc(c, Mm, 15);
h.length && Gr(a, h[h.length - 1].getType());
(a.state ? E(a.state, 4, 0) : 0) > b && (Hr(a), Ir(a))
}
break;
case 16:
h = b.getId();
(h = a.v.get(h)) ? h.V(F(b, Km, 4)) : (b.getId(), F(b, Km, 4));
break;
case 4:
h = b.getId();
h = a.u.get(h);
a = F(b, Jm, 5);
h.state = a;
break;
case 32:
h = Gp(a, b.getId()),
a = F(b, Lm, 6),
h.state = a
}
}
var Lr = class extends vr {
constructor(a, b) {
super (a);
this.ya = b;
this.g = null
}
update() {
sr(this);
if (this.g && Jr(this.g)) {
var a = new Ym,
b = this.g.getId();
B(a, 1, b);
B(a, 2, 0);
B(a, 3, 0);
B(a, 4, !1);
b = this.ya.j;
wn(b) && (xn(b), vn(b, (rc(this.g.state, 2) || 0) * this.ya.u), B(a, 2, b.x), B(a, 3, b.y), B(a, 4, !0));
this.g.input = a;
this.g.qe()
}
}
wa(a) {
super.wa(a);
this.update(a);
rr(this, a);
for (var b of this.i.values()) if (b !== this.g) for (var c of b.j) c.H();
for (var d of this.u.values()) d.H();
a = this.ya;
if (a.g) {
c = a.gamepad;
if (navigator.getGamepads) {
d = navigator.getGamepads();
b = !1;
for (var e of d) if (e && e.connected) {
if (e.axes) {
d = e.axes[0];
let f = e.axes[1];
0.1 > Math.abs(d) && (d = 0);
0.1 > Math.abs(f) && (f = 0);
b = 0 !== d || 0 !== f;
e = c.g;
e.u || (c = 72.5 * d, d = 72.5 * f, e.g = {
x: 0,
y: 0
}, e.i = {
x: c,
y: d
}, e.j = Y(c, d), e.o = Kr(Math.min(1, wn(e.j) / 5256.25)))
}
break
}
} else b = !1;
if (b || a.O) a.o = b,
a.j = a.gamepad.g.j,
a.u = a.gamepad.g.o;
a.O = b
}
for (const f of a.v) f();
a.v = [
]
}
va() {
for (const a of this.V.values()) a.H();
for (const a of this.g.j) a.H()
}
wake() {
super.wake();
this.g.wake()
}
};
Qg.Wa();
function Mr(a) {
var b = Nr(a);
b = al(a.g, b.width, b.height);
return new Qi(a.g[3] * b, a.g[4] * b)
}
function Or(a) {
const b = Mr(a);
a.j = tq(N.width / 2 - b.width / 2, N.height / 2 - b.height / 2, b.width, b.height);
Xl(a.u, a.j, d=>{
'mouseup' === d && (lr(a.u, a.j), a.v())
});
Yl(a.u, a.j);
const c = document.createElement('canvas').getContext('2d');
a.title = Jl(c, U('error_eek'), O, 56, 20, 0.8 * b.width, 1);
a.o = Jl(c, U('error_something_went_wrong'), O, 48, 20, 0.8 * b.width, 1);
a.i = Jl(c, U('error_try_again'), O, 48, 20, b.width / 2, 1)
}
function Nr(a) {
return new Qi(Math.min(a.g[3], 0.8 * L), Math.min(a.g[4], 0.8 * vg))
}
var Pr = class {
constructor(a, b) {
this.u = a;
this.v = b;
this.g = Dh;
this.i = this.o = this.title = this.j = null
}
render(a) {
if (this.title && this.o && this.i) {
a.save();
Gl(a);
a.translate(N.width / 2, N.height / 2);
var b = Nr(this);
b = V(this.g, a, 0, 0, b.width, b.height);
a.scale(b, b);
var c = this.g[4];
V(Bh, a, 0, 0);
a.fillStyle = '#5977ab';
a.textAlign = 'center';
a.textBaseline = 'middle';
Ll(a, this.title, 0, - c / 2 + 50, this.title.fontSize);
Ll(a, this.o, 0, - c / 2 + 110, this.o.fontSize);
Ll(a, this.i, 0, 150, this.i.fontSize);
c = Lh[3];
var d = Lh[4],
e = this.i;
a.font = e.fontStyle + ' ' + e.fontSize + 'px ' + e.fontFamily;
let f = 0;
for (let g = 0; g < e.lines.length; g++) {
const h = a.measureText(e.lines[g]).width;
f = Math.max(f, h)
}
V(Lh, a, f / 2 + 10 + b * c / 2, 150, b * c, b * d);
a.restore()
}
}
};
var Qr = class {
constructor() {
this.g = new sq('times_up', 64, 0.75 * L, 3);
this.g.Ia(0, 10);
this.g.g = '#700';
rq(this.g, '#F93');
this.g.j = 'center'
}
render(a, b) {
a.save();
if (0 >= b) {
Qg.Wa();
b = jh[4];
Qg.Wa();
var c = Kh[3];
Qg.Wa();
var d = Kh[4];
V(jh, a, 0, b / 2);
V(Kh, a, 0, b / 2, c / 2, d / 2);
a.translate(0, 0);
this.g.render(a)
} else a.translate(0, 0),
a.textAlign = 'center',
a.font = `60px ${ O }`,
a.fillStyle = '#700',
a.fillText('' + b, 0, 0),
a.strokeStyle = '#F93',
a.strokeText('' + b, 0, 0);
a.restore()
}
};
var Sr = class {
constructor() {
this.g = new Rr;
this.i = !1;
this.alpha = 1
}
reset() {
this.g.reset();
this.i = !1
}
render(a) {
a.save();
a.globalAlpha = this.alpha;
this.g.render(a);
a.restore()
}
};
const Kr = km(0.39, 0.575, 0.565, 1);
class Rr {
constructor() {
this.g = {
x: 0,
y: 0
};
this.i = {
x: 0,
y: 0
};
this.j = Y(0, 0);
this.o = 0;
this.u = !1
}
reset() {
this.g = {
x: 0,
y: 0
};
this.i = {
x: 0,
y: 0
};
this.j = Y(0, 0);
this.o = 0;
this.u = !1
}
render(a) {
var b = N.width / 2;
var c = N.height - (N.height - (bl.height + bl.top)) / 2;
var d = this.i.x - this.g.x,
e = this.i.y - this.g.y;
a.save();
Cl(th, b - 2, c + 8);
Cl(uh, b + Oi( - 72.5, d, 72.5), c + Oi( - 72.5, e, 72.5));
a.restore()
}
}
function Tr(a) {
const b = N.getBoundingClientRect();
return window.innerHeight > window.innerWidth ? {
x: a.clientX - b.left,
y: a.clientY - b.top
}
: {
x: a.clientY - b.top,
y: b.left - a.clientX
}
};
function Ur(a, b, c) {
return c ? Promise.resolve(b) : a.jd(fg.yf).then(d=>bg(dg(cg(new eg, d.Zc), d.Oc), fg.Zd.name))
};
var Vr = class extends Hl {
contains() {
return !1
}
};
function Xl(a, b, c) {
a.i.push(new Wr(b, c))
}
function Yl(a, b) {
let c = null;
for (let d = 0; d < a.i.length; d++) a.i[d].i === b && (c = a.i[d]);
c && (Ua(a.i, c), a.i.unshift(c))
}
function lr(a, b) {
for (let c = a.i.length - 1; 0 <= c; c--) a.i[c].i === b && a.i.splice(c, 1);
a.g && b === a.g.i && (a.g = null, Xr(a));
a.j && b === a.j.i && (a.j = null);
Yr(a, 'areamove', a.u, a.v)
}
function Zr(a) {
var b = a.Jb.getBoundingClientRect();
const c = a.o.Md ? b.height : b.width;
b = a.o.Md ? b.width : b.height;
const [d,
e] = a.getSize();
a.wa = d / c;
a.V = e / b
}
function Xr(a) {
var b = a.g && a.g.i.j() ? 'pointer' : 'default';
for (const c of a.ya) Qf(c, 'cursor', b)
}
function $r(a, b, c) {
c = (b = (b = b.g) || window.event) ? (c = c || b.targetTouches && b.targetTouches[0] || b.changedTouches && b.changedTouches[0]) && void 0 !== c.pageX ? [
c.pageX,
c.pageY
] : void 0 !== b.clientX ? [
b.clientX + ('rtl' == document.dir ? - 1 : 1) * (document.body.scrollLeft || document.documentElement.scrollLeft || 0),
b.clientY + (document.body.scrollTop || document.documentElement.scrollTop || 0)
] : void 0 !== b.pageX ? [
b.pageX,
b.pageY
] : [
0,
0
] : [
0,
0
];
b = a.Jb.getBoundingClientRect();
if (a.o.Md) {
const d = b.right - c[0];
c[0] = c[1] - b.top;
c[1] = d
} else c[0] -=
b.left,
c[1] -= b.top;
c[0] *= a.wa;
c[1] *= a.V;
return c
}
function Yr(a, b, c, d) {
if (!a.H && 'mousedown' === b) {
a.H = !0;
for (var e = 0; e < a.O.length; e++) a.O[e]()
}
if ('mousedown' === b) {
if (!a.j) for (b = 0; b < a.i.length; b++) if (e = a.i[b], e.i.contains(c, d)) {
a.j = e;
a.g = e;
e.g('mousedown', c, d);
break
}
} else if ('mouseup' === b) a.j ? (a.j.g('mouseup', c, d), a.j = null) : a.g && a.g.g('mouseup', c, d);
else if ('mousemove' === b || 'areamove' === b) {
e = null;
for (let f = 0; f < a.i.length; f++) {
const g = a.i[f];
if (g.i.contains(c, d)) {
e = g;
break
}
}
a.g !== e && (a.g && a.g.g('mouseout', c, d), e && e.g('mouseover', c, d), a.g = e);
if ('mousemove' ===
b) for (a.j && a.j.g('mousemove', c, d), b = 0; b < a.i.length; b++) e = a.i[b],
e !== a.j && e.i.contains(c, d) && e.g('mousemove', c, d)
} else 'mouseout' === b ? (a.g && a.g.g('mouseout', c, d), a.j = null, a.g = null) : 'contextmenu' === b && a.g && a.g.g('contextmenu', c, d);
Xr(a)
}
var as = class {
constructor(a) {
this.o = a;
this.i = [
];
this.g = this.j = null;
this.v = this.u = 0;
this.va = this.H = !1;
this.O = [
];
this.V = this.wa = 1;
this.Jb = this.o.Jb;
this.ya = [
this.Jb
];
si(window, 'resize', () =>{
Zr(this)
});
a = () =>{
ti(window, 'resize', () =>{
Zr(this)
})
};
window.hasOwnProperty('screen') && window.screen.hasOwnProperty('orientation') && !rf() ? si(screen.orientation, 'change', a) : si(window, 'orientationchange', a);
Zr(this)
}
handleEvent(a) {
Zr(this);
var b = $r(this, a),
c = b[1];
this.u = b[0];
this.v = c;
a = a.type;
this.va && 0 === a.indexOf('mouse') || (b = {
touchstart: 'mousedown',
touchend: 'mouseup',
touchmove: 'mousemove'
}, a in b && (this.va = !0, a = b[a]), Yr(this, a, this.u, this.v))
}
getSize() {
return this.Jb instanceof HTMLCanvasElement ? [
this.Jb.width,
this.Jb.height
] : [
Number(this.Jb.dataset.width),
Number(this.Jb.dataset.height)
]
}
},
bs = (() =>{
const a = new Vr;
a.contains = () =>!0;
a.j = () =>!1;
return a
}) ();
class Wr {
constructor(a, b) {
this.i = a;
this.g = b
}
};
function cs(a) {
var b = window.agsa_ext;
if (!a.V && !a.o && b && b.getPageVisibility) return 'hidden' === b.getPageVisibility();
b = document[a.o];
return document[a.V] || 'hidden' === b
}
function ds(a) {
a.H ? es(a) : sf() && !rf() && fs(a, () =>{
es(a)
})
}
function gs(a) {
Dq(a.va, document, 'mousedown mouseout touchstart mouseup mousemove touchend touchmove contextmenu keypress keydown keyup'.split(' '), () =>{
hs(a)
}, !0)
}
function is(a) {
a.timeout && clearTimeout(a.timeout);
a.timeout = setTimeout(() =>{
a.timeout = void 0;
a.j = Rf() - a.v >= a.O;
a.j || is(a);
js(a)
}, Math.max(100, a.O - (Rf() - a.v)))
}
function hs(a) {
a.v = Rf();
a.j = !1;
js(a)
}
function es(a) {
a.u = () =>{
a.i = cs(a);
a.i ? js(a) : hs(a)
};
const b = window.agsa_ext;
a.H ? document.addEventListener(a.H, a.u, !1) : b && b.registerPageVisibilityListener && (Zf(() =>{
a.u && a.u()
}), b.registerPageVisibilityListener('google.doodle.pvc();'))
}
function fs(a, b) {
window.agsa_ext ? b() : setTimeout(() =>{
ds(a)
}, 100)
}
function js(a) {
const b = a.i || a.j;
a.g && !b ? (a.g = !1, a.ya(), is(a)) : !a.g && b && (a.g = !0, a.wa())
}
var ks = class {
constructor(a, b, c) {
this.O = a;
this.wa = b;
this.ya = c;
this.j = !1;
this.u = () =>{
};
this.v = Rf();
this.V = Vf(document, 'hidden');
this.H = (this.o = Vf(document, 'visibilityState')) ? this.o.replace(/state$/i, 'change').toLowerCase() : null;
this.g = this.i = cs(this);
this.va = new Bq;
ds(this);
gs(this);
is(this)
}
hc() {
return !this.g
}
};
class ls {
constructor(a, b) {
this.j = a;
this.u = b;
this.i = {
};
this.g = document.getElementsByTagName('input')
}
handleEvent(a) {
var b;
if (b = a && a.j && this.u(a) && !a.ctrlKey && !a.metaKey && !a.altKey) {
a: {
for (b = 0; b < this.g.length; b++) if ('q' == this.g[b].name) {
b = this.g[b];
break a
}
b = null
}
b = !(b && b == document.activeElement)
}
if (b && (!document.activeElement || !document.activeElement.tagName || 'textarea' != document.activeElement.tagName.toLowerCase())) {
this.o && hs(this.o);
b = a.g;
var c = b.keyCode;
c && ('keydown' == a.type ? this.i[c] || (this.j(a), this.i[c] = !0) : 'keyup' == a.type && (this.j(a), this.i[c] = !1), b.preventDefault && b.preventDefault(), b.stopPropagation && b.stopPropagation())
}
}
};
function ms(a, b) {
Xl(a.V, bs, (d, e, f) =>{
switch (d) {
case 'mousedown':
window !== window.parent && window.focus();
a.g && (a.o = !0, ns(a, e, f));
break;
case 'mousemove':
ns(a, e, f);
break;
case 'mouseup':
os(a)
}
});
const c = new ls(d=>{
if ('keydown' === d.type) {
if (a.g) {
a.i.set(d.keyCode, !0);
ps(a);
var e = rl();
d = d.keyCode;
192 === d ? (e.i && (e.j = !e.j), e.i = !0) : e.i = !1;
e.j && (e = e.o.get(d)) && e()
}
} else 'keyup' === d.type && qs(a, d)
}, d=>!!d.keyCode && !!Ag.get(d.keyCode));
c.o = b;
si(document, [
'keydown',
'keyup',
'keypress'
], d=>{
c.handleEvent(d)
}, !0)
}
function rs(a) {
a.reset();
a.g = !0;
document.activeElement && document.activeElement.blur()
}
function ss(a) {
a.g = !1;
a.reset()
}
function ns(a, b, c) {
a.g && a.o && (a.j = Y(b - N.width / 2, c - N.height / 2), a.u = wn(a.j) ? 1 : 0)
}
function os(a) {
a.g && a.v.push(() =>{
a.j = Y(0, 0);
a.o = !1;
a.u = 0
})
}
function qs(a, b) {
a.g && a.v.push(() =>{
a.i.set(b.keyCode, !1);
ps(a)
})
}
function ps(a) {
const b = Y(0, 0);
(a.i.get(37) || a.i.get(65)) && b.x--;
(a.i.get(39) || a.i.get(68)) && b.x++;
(a.i.get(38) || a.i.get(87)) && b.y--;
(a.i.get(40) || a.i.get(83)) && b.y++;
a.H = 0 !== b.x || 0 !== b.y;
a.j = b;
a.u = a.H ? 1 : 0
}
function ts(a, b) {
const c = b.g.changedTouches[0];
if (!c) return null;
a = $r(a.V, b, c);
return {
x: a[0],
y: a[1]
}
}
var us = class {
constructor(a, b, c) {
this.V = a;
this.gamepad = b;
this.i = new Map;
this.v = [
];
this.j = Y(0, 0);
this.u = 1;
this.g = this.O = this.o = this.H = !1;
I() ? (si(N, 'touchstart', this.ya, void 0, this), si(N, 'touchmove', this.wa, void 0, this), si(N, 'touchend', this.va, void 0, this)) : ms(this, c)
}
reset() {
this.i.clear();
this.v = [
];
this.j = Y(0, 0);
this.u = 1;
this.O = this.o = this.H = !1
}
ya(a) {
if (this.g && ts(this, a)) {
var b = this.gamepad;
b.i = !0;
b = b.g;
b.g = Tr(a);
b.i = b.g;
this.o = b.u = !0
}
}
wa(a) {
if (this.g && ts(this, a) && this.o) {
var b = this.gamepad;
b.i && (b = b.g, b.i = Tr(a), b.j = Y(b.i.x - b.g.x, b.i.y - b.g.y), b.o = Kr(Math.min(1, wn(b.j) / 5256.25)));
this.j = this.gamepad.g.j;
this.u = this.gamepad.g.o
}
}
va(a) {
this.g && ts(this, a) && this.v.push(() =>{
var b = this.gamepad,
c = b.g;
c.g = {
x: 0,
y: 0
};
c.i = {
x: 0,
y: 0
};
c.o = 0;
c.u = !1;
b.i = !1;
this.j = Y(0, 0);
this.u = 0;
this.o = !1
})
}
};
function vs(a) {
return 50 < a.g && 2000 > a.g ? new Promise(b=>{
setTimeout(b, 2000 - a.g)
}) : Promise.resolve()
}
var ws = class {
constructor() {
this.g = 0;
const a = new Zp(Yh);
a.Ia( - 100, 0);
a.opacity = 0;
const b = new Zp(Yh);
b.Ia(0, 0);
b.opacity = 0;
const c = new Zp(Yh);
c.Ia(100, 0);
c.opacity = 0;
this.i = [
a,
b,
c
];
this.j = new em([new W(new X({
opacity: 0,
y: 0
}, {
opacity: 1,
y: - 15
}, 500), d=>{
a.opacity = d.opacity;
a.Ia(a.Cb().x, d.y)
}),
new W(new X({
opacity: 0,
y: 0
}, {
opacity: 1,
y: - 15
}, 500), d=>{
a.opacity = 1 - d.opacity;
a.Ia(a.Cb().x, - 15 - d.y);
b.opacity = d.opacity;
b.Ia(b.Cb().x, d.y)
}),
new W(new X({
opacity: 0,
y: 0
}, {
opacity: 1,
y: - 15
}, 500), d=>{
b.opacity = 1 - d.opacity;
b.Ia(b.Cb().x, - 15 - d.y);
c.opacity = d.opacity;
c.Ia(c.Cb().x, d.y)
}),
new W(new X({
opacity: 1,
y: - 15
}, {
opacity: 0,
y: 0
}, 500), d=>{
c.opacity = d.opacity;
c.Ia(c.Cb().x, d.y)
})], !0)
}
render(a) {
a.setTransform(1, 0, 0, 1, 0, 0);
a.fillStyle = '#000';
a.fillRect(0, 0, a.canvas.width, a.canvas.height);
for (const b of this.i) b.render(a.canvas.width / 2, a.canvas.height / 2)
}
};
function xs(a, b) {
if (a = a.g[b]) a.yd && (clearTimeout(a.yd), a.yd = 0),
a.mc && (a.mc.parentNode && a.mc.parentNode.removeChild(a.mc), a.mc = null),
a.Ie = null,
a.Yc = null
}
function ys(a, b, c, d) {
let e = a.g[b];
if (e) {
if (e.qd) {
c && c(e.qd);
return
}
if (e.yd) return
} else e = {
Yc: d,
Pf: b,
mc: null,
Ie: c,
yd: 0,
qd: null
};
e.mc || (e.mc = document.createElement('script'));
c = 'c' + ++a.i;
zs[c] = function (f) {
var g = vk(As),
h = e;
h.qd = f.id;
h.qd ? h.Ie && h.Ie(h.qd) : h.Yc && h.Yc();
xs(g, h.Pf)
};
c = ve({
callback: 'google.doodle.lsc.' + c,
url: b
});
Ff(e.mc, c);
e.yd = setTimeout(() =>{
e.Yc && e.Yc();
xs(vk(As), b)
}, 2000);
a.j.appendChild(e.mc);
a.g[b] = e
}
class As {
constructor() {
this.g = {
};
this.i = 0;
this.j = document.body
}
reset() {
for (const a in this.g) xs(this, a);
this.g = {
}
}
}
const zs = {
};
sa('google.doodle.lsc', zs);
const ag = Rp();
Qg.Wa();
const Bs = I() ? 130 : 86;
function Cs(a) {
Qf(a.g, 'textAlign', 'center', 'border', 'none', 'padding', '0', 'background', 'none', 'font', `${ a.fontSize }px sans-serif`, 'pointerEvents', 'auto');
const b = Ds();
b.onclick = () =>{
Hq(a.g.textContent, b).then(() =>{
dl(a.j, !0);
setTimeout(() =>{
dl(a.j, !1)
}, 2000)
})
};
a.oa = document.createElement('div');
a.oa.classList.add('ddl-shareLinkContainer_');
a.oa.style.position = 'absolute';
a.va.appendChild(a.oa);
a.oa.appendChild(b);
a.oa.appendChild(a.g);
a.oa.appendChild(a.j);
a.H && (a.o = !0, a.H.then(c=>{
ag.set(a.V ? 3 : 2, c);
const d = $f();
ys(vk(As), d, e=>{
a.o = !1;
a.g.textContent = 0 == e.indexOf('//') ? 'https:' + e : e;
Es(a)
}, () =>{
a.o = !1;
a.g.textContent = 0 == d.indexOf('//') ? 'https:' + d : d;
Es(a)
})
}))
}
function Es(a) {
var b = al(a.i, 0.9 * L, a.i[4]),
c = b * (a.i[3] - 48);
const d = Math.floor(c / N.width * N.offsetWidth);
b *= a.i[4] - 48;
const e = Math.floor(b / N.height * N.offsetHeight),
[
f,
g
] = [
Math.floor((a.wa[3] - c) / 2 / N.width * N.offsetWidth + N.offsetLeft),
Math.floor((Bs - b / 2) / N.height * N.offsetHeight + N.offsetTop)
];
!a.oa || a.oa.offsetLeft === f && a.oa.offsetTop === g && a.oa.offsetWidth === d && a.oa.offsetHeight === e || (a.fontSize = 48, Qf(a.oa, 'left', `${ f }px`, 'top', `${ g }px`, 'width', `${ d }px`, 'height', `${ e }px`), Qf(a.g, 'fontSize', `${ a.fontSize }px`));
c = N.getContext('2d');
c = Jl(c, a.g.textContent, 'sans-serif', 48, 12, a.g.clientWidth, 1);
Qf(a.g, 'fontSize', `${ c.fontSize }px`)
}
var Fs = class {
constructor(a, b, c, d) {
this.O = a;
this.H = b;
this.V = c;
this.wa = d;
this.fontSize = 48;
this.oa = null;
this.i = Mh;
this.o = !1;
this.u = 0;
this.g = document.createElement('div');
this.g.classList.add('ddl-shareLink_');
this.va = document.getElementById('ddlDomRoot');
this.j = document.createElement('div');
this.j.classList.add('ddl-shareLinkCopied_');
this.j.style.font = `28px ${ O }`;
this.j.textContent = U('share_link_copied');
this.v = new sq('share_invite_link', 24, 0.9 * L);
this.v.g = '#ff8c00'
}
update(a) {
this.u = (this.u + a / 150) % (2 * Math.PI)
}
dispose() {
lr(this.O, null);
vk(As).reset();
this.oa && (this.oa.remove(), this.oa = null)
}
render(a) {
var b = a.canvas.width;
const c = b / 2;
b = V(this.i, a, c, Bs, 0.9 * b, this.i[4]);
this.v.Ia(c, Bs + b * this.i[4] / 2 + 24);
this.v.render(a);
Es(this);
this.o && (a.save(), a.strokeStyle = '#333', a.lineWidth = 4, a.beginPath(), a.arc(c, Bs, b * this.i[4] / 4, this.u, this.u + Math.PI / 3), a.stroke(), a.restore())
}
};
const Ds = () =>{
const a = document.createElementNS('http://www.w3.org/2000/svg', 'svg');
a.classList.add('ddl-shareButton_');
a.setAttribute('viewBox', '0 0 24 24');
a.setAttribute('width', '24');
a.setAttribute('height', '24');
const b = document.createElementNS('http://www.w3.org/2000/svg', 'circle');
b.setAttribute('cx', '12');
b.setAttribute('cy', '12');
b.setAttribute('r', '12');
b.setAttribute('fill', 'white');
const c = document.createElementNS('http://www.w3.org/2000/svg', 'path');
c.setAttribute('transform', 'translate(4, 4) scale(0.66)');
c.setAttribute('d', 'M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z');
a.appendChild(b);
a.appendChild(c);
return a
};
const Gs = [
{
height: 86
},
{
height: 78,
Wb: 12
},
{
height: 151,
Wb: 12
},
{
height: 102
},
{
height: 106
},
{
height: 90,
Wb: 18
},
{
height: 150,
Wb: 6
},
{
height: 130
}
],
Hs = 1000 / 24,
Is = [
a=>new fm([new W(new X({
y: a.Cb().y
}, {
y: a.Cb().y - 8
}, 12 * Hs, nm, !0, !0), b=>{
a.Ia(a.Cb().x, b.y)
}),
new em([new W(new X({
opacity: 0
}, {
opacity: 1
}, 24 * Hs, nm), b=>{
a.opacity = b.opacity
}),
new dm(16 * Hs),
new W(new X({
opacity: 1
}, {
opacity: 0
}, 11 * Hs, nm), b=>{
a.opacity = b.opacity
}),
new dm(11 * Hs)], !0)]),
null,
a=>new em([new W(new X({
opacity: 0
}, {
opacity: 1
}, 16 * Hs, nm), b=>{
a.opacity = b.opacity
}),
new dm(1250),
new W(new X({
opacity: 1
}, {
opacity: 0
}, 13 * Hs, nm), b=>{
a.opacity = b.opacity
}),
new dm(13 * Hs)], !0),
a=>{
a.opacity = 0;
return new em([new dm(10 * Hs),
new W(new X({
opacity: 0
}, {
opacity: 1
}, 16 * Hs, nm), b=>{
a.opacity = b.opacity
}),
new dm(26 * Hs),
new W(new X({
opacity: 1
}, {
opacity: 0
}, 20 * Hs, nm), b=>{
a.opacity = b.opacity
})], !0)
},
a=>new fm([new em([new W(new X({
x: a.Cb().x
}, {
x: a.Cb().x + 132
}, 50 * Hs, nm), b=>{
a.Ia(b.x, a.Cb().y)
}),
new dm(22 * Hs)], !0),
new W(new X({
y: a.Cb().y
}, {
y: a.Cb().y - 15
}, 9 * Hs, nm, !0, !0), b=>{
a.Ia(a.Cb().x, b.y)
}),
new em([new W(new X({
opacity: 0
}, {
opacity: 1
}, 8 * Hs, nm), b=>{
a.opacity = b.opacity
}),
new dm(35 * Hs),
new W(new X({
opacity: 1
}, {
opacity: 0
}, 7 * Hs, nm), b=>{
a.opacity = b.opacity
}),
new dm(22 * Hs)], !0)]),
null,
null,
a=>new em([new W(new X({
opacity: 0
}, {
opacity: 1
}, 16 * Hs), b=>{
a.opacity = b.opacity
}),
new dm(32 * Hs),
new W(new X({
opacity: 1
}, {
opacity: 0
}, 13 * Hs), b=>{
a.opacity = b.opacity
}),
new dm(11 * Hs)], !0)
],
Js = (I() ? [
{
position: new P(244, 193)
},
{
position: new P(405, 716)
},
{
position: new P(207, 648)
},
{
position: new P(401, 415)
},
{
position: new P(200, 480)
},
{
position: new P(151, 404)
},
{
position: new P(107, 209)
},
{
position: new P(100, 864)
}
] : [
{
position: new P(484, 168)
},
{
position: new P(362, 193),
scale: new P(1, - 1)
},
{
position: new P(456, 344)
},
{
position: new P(769, 419),
rotation: 5 * Math.PI / 180
},
{
position: new P(635, 296)
},
{
position: new P(162, 308),
rotation: - 10 * Math.PI / 180
},
{
position: new P(97, 433),
rotation: 60 * Math.PI / 180,
scale: new P( - 1, 1)
},
{
position: new P(875, 390)
}
]).map((a, b) =>Object.assign(a, Gs[b])),
Ks = [
{
height: 116
},
{
height: 126
},
{
height: 136
},
{
height: 109
},
{
height: 113
},
{
height: 115
},
{
height: 129
},
{
height: 127
}
],
Ls = (I() ? [
{
position: new P(216, 496)
},
{
position: new P(128, 372)
},
{
position: new P(140, 514)
},
{
position: new P(116, 638)
},
{
position: new P(368, 364)
},
{
position: new P(430, 532)
},
{
position: new P(326, 494)
},
{
position: new P(398, 675)
}
] : [
{
position: new P(414, 276)
},
{
position: new P(274, 174),
rotation: - 12 * Math.PI / 180
},
{
position: new P(314, 316),
rotation: - 7 * Math.PI / 180
},
{
position: new P(216, 392)
},
{
position: new P(586, 282)
},
{
position: new P(682, 332),
rotation: 15 * Math.PI / 180
},
{
position: new P(688, 206)
},
{
position: new P(798, 402),
rotation: - 14 * Math.PI / 180
}
]).map((a, b) =>Object.assign(a, Ks[b]));
var Ms = class {
constructor(a) {
this.v = a;
this.o = Js;
this.j = this.g = null;
this.u = [
1,
2,
3,
4,
5,
6,
7,
8
].map((b, c) =>{
b = zm(b, 'lobby');
b = new Zp(b);
b.j = !1;
b.Wb = Js[c].Wb || 0;
c = Js[c].position;
b.Ia(c.x, c.y);
return b
});
this.H = [
1,
2,
3,
4,
5,
6,
7,
8
].map((b, c) =>{
b = zm(b, 'ready');
b = new Zp(b);
b.j = !1;
c = Ls[c].position;
b.Ia(c.x, c.y);
return b
});
this.actions = Is.map((b, c) =>b ? b(this.u[c]) : null);
this.i = this.u;
a || (this.g = new Zp(Xh), a = Js[0].position, this.g.Ia(a.x + 23, a.y), this.j = new X({
y: a.y
}, {
y: a.y - 8
}, 12 * Hs, nm, !0, !0), this.j.start());
this.state = 0
}
update(a) {
if (0 === this.state) {
for (const b of this.u) b.update(a);
if (!this.v) {
this.j.update(a);
this.g.update(a);
this.g.Ia(this.g.Cb().x, bm(this.j).y);
for (const b of this.actions) b && b.update(a)
}
}
}
render() {
for (let a = 0; a < this.i.length; a++) {
const b = this.o[a];
this.i[a].render(void 0, void 0, b.height, b.rotation || 0, !0, void 0 !== b.scale ? b.scale.x : 1, void 0 !== b.scale ? b.scale.y : void 0)
}
this.v || 0 !== this.state || this.g.render()
}
};
function Ns(a) {
a: {
var b = a.match(Os);
if (b) {
var c = Number(b[1]);
const d = Number(b[2]);
b = Number(b[3]);
if (0 <= c && 255 >= c && 0 <= d && 255 >= d && 0 <= b && 255 >= b) {
c = [
c,
d,
b
];
break a
}
}
c = [
]
}
if (!c.length) throw Error('U`' + a);
return c
}
function Ps(a) {
var b = a[0],
c = a[1];
a = a[2];
b = Number(b);
c = Number(c);
a = Number(a);
if (b != (b & 255) || c != (c & 255) || a != (a & 255)) throw Error('V`' + b + '`' + c + '`' + a);
c = b << 16 | c << 8 | a;
return 16 > b ? '#' + (16777216 | c).toString(16).slice(1) : '#' + c.toString(16)
}
var Os = /^(?:rgb)?\((0|[1-9]\d{0,2}),\s?(0|[1-9]\d{0,2}),\s?(0|[1-9]\d{0,2})\)$/i;
function Qs(a) {
var b = [
255,
255,
255
];
var c = Oi(0.5, 0, 1);
return [Math.round(a[0] + c * (b[0] - a[0])),
Math.round(a[1] + c * (b[1] - a[1])),
Math.round(a[2] + c * (b[2] - a[2]))]
};
var Rs = class {
constructor() {
var a = I() ? 80 : 60;
this.j = new sq('connected', 80, L - 20);
this.j.g = '#773903';
rq(this.j, '#ff8d03', 6);
this.j.Ia(L / 2, a);
this.o = new sq('connected', 80, L - 20);
this.o.g = '#773903';
this.o.Ia(L / 2, a);
a += 90;
this.g = new sq('team_alpha', 64, L / 2 - 30);
this.g.j = 'right';
this.g.Ia(L / 2 - 50, a);
this.g.g = 'rgb(50,255,100)';
rq(this.g, Ps(Qs(Ns('rgb(50,255,100)'))));
this.i = new sq('team_bravo', 64, L / 2 - 30);
this.i.j = 'left';
this.i.Ia(L / 2 + 50, a);
this.i.g = 'rgb(100,0,255)';
rq(this.i, Ps(Qs(Ns('rgb(100,0,255)'))));
this.u = new sq('versus', 48, 60);
this.u.Ia(L / 2, a)
}
render(a) {
this.j.render(a);
this.o.render(a);
this.g.render(a);
this.i.render(a);
this.u.render(a)
}
};
var Ss = class {
constructor(a, b) {
this.j = b;
b = Ps(Qs(Ns(this.j)));
this.o = new sq('you_are', 64, L - 20);
this.i = new sq(1 === a ? 'team_alpha' : 'team_bravo', I() ? 120 : 100, L - 20);
this.i.g = this.j;
rq(this.i, b);
this.i.Ia(0, I() ? 90 : 80);
if (this.g = 'en' == kg || 'en-GB' == kg ? null : new sq(1 === a ? 'alpha_team' : 'bravo_team', I() ? 120 : 72, L - 20)) this.g.g = this.j,
rq(this.g, b),
this.g.Ia(0, I() ? 90 : 80)
}
render(a) {
const b = a.canvas.width / 2;
a.save();
a.translate(b, I() ? 120 : 60);
this.g ? this.g.render(a) : (this.o.render(a), this.i.render(a));
a.restore()
}
};
const Ts = Qg.Wa(),
Us = J ? - 11 : 15,
Vs = J ? 795 : 427,
Ws = J ? 120 : 83,
Xs = J ? 150 : 267,
Ys = J ? 2 : 1.5,
Zs = J ? 829 : 429;
function $s(a, b) {
a.Ee = b;
if (a.wb) {
var c = a.Na;
c.i = [
];
c.o = [
];
for (let d = 0; d < b; d++) {
const e = Math.floor(d % 2 ? d / 2 + 4 : d / 2);
c.i.push(c.H[e]);
c.o.push(Ls[e])
}
c = a.Qa;
c.text = a.oc.replace('[NUM]', `${ b }`);
c.i = qq(c)
}
}
function at(a, b) {
a.state = b;
a.v = 0;
var c = a.wa;
c.i = qq(c);
c = a.Oa;
c.i = qq(c);
0 !== b && a.i && (c = a.i, c.oa && (c.oa.remove(), c.oa = null));
switch (b) {
case 0:
$k(a.Fa, 3428);
a.g = J ? xh : wh;
a.wb && Cs(a.i);
break;
case 7:
a.u = new X({
opacity: 0
}, {
opacity: 1
}, 250, om);
a.u.start();
Q.Gf.play();
a.Fa.stop();
break;
case 1:
a.g = J ? zh : yh;
a = a.Na;
a.i = a.H;
a.o = Ls;
a.state = 1;
break;
case 2:
a.j = new X({
scale: 1
}, {
scale: a.g[3] / Xs
}, 250, km(0.95, 0.05, 0.795, 0.035));
a.ya = new X({
x: a.g[3] / 2,
y: a.g[4] / 2
}, {
x: N.width / 2 + Us,
y: Vs + 70
}, 250, nm);
a.j.start();
a.ya.start();
break;
case 4:
a.O.play();
a.g = J ? zh : yh;
a.va = new X({
scale: 0.2
}, {
scale: 1
}, 250, km(0.95, 0.05, 0.795, 0.035));
a.va.start();
break;
case 5:
a.O.stop();
a.dispose();
break;
case 6:
a.dispose()
}
}
function bt(a, b, c) {
0 === a.state && (a.H = new Zp(zm(b, 'idle')), a.H.j = !1, a.yb = Cm(b, d=>{
a.H.Ia(0, d.y)
}), b = 1 === c ? 'rgb(50,255,100)' : 'rgb(100,0,255)', a.Ob = new Rs, a.Qb = new Ss(c, b), at(a, 7))
}
function ct(a) {
at(a, 6);
a.Ba || (a.Ba = new Pr(a.V, () =>{
document.location.reload()
}));
Or(a.Ba);
Q.xf.play();
a.Fa.stop()
}
function dt(a, b) {
const c = b.canvas.width / 2;
a.i.render(b);
const d = a.Xa[3],
e = a.Xa[4],
f = c - d / 2,
g = Zs - e / 2,
h = g + e + 24;
if (!a.nc || a.Nb) a.Da ? (V(a.Xa, b, c, Zs), a.wa.render(b), a.o || (a.o = tq(f, g, d, e), Xl(a.V, a.o, k=>{
if ('mousedown' === k) {
lr(a.V, a.o);
k = a.wa;
var l = U('game_starting');
k.text = l;
k.i = qq(k);
a.Zb()
}
}), Yl(a.V, a.o))) : a.Eb.render(b);
a.Qa.Ia(c, h);
a.Qa.render(b)
}
var et = class {
constructor(a, b, c, d, e, f = !1) {
this.V = a;
this.wb = b;
this.Da = c;
this.Zb = e;
this.nc = f;
this.state = null;
this.v = 0;
this.g = J ? xh : wh;
this.Ab = J ? null : vh;
this.Xa = fh;
this.Qb = this.Ob = this.H = this.yb = this.va = this.u = this.ya = this.j = this.o = null;
this.Mb = kh;
this.Fa = Q.Cd;
this.Ba = null;
this.Nb = !1;
this.i = b ? new Fs(a, d, c, this.g) : null;
this.wa = new sq('start_game', 48, 0.7 * this.Xa[3]);
this.wa.g = '#f0f';
this.wa.Ia(L / 2, Zs);
this.oc = U('num_players_ready');
this.Qa = new sq('num_players_ready', 24, 0.8 * L);
this.Qa.g = '#fff';
this.Eb = new sq('waiting_for_host', 48, 0.8 * L);
this.Eb.g = '#fff';
this.Eb.Ia(L / 2, Zs);
Qg.Wa();
this.Oa = new sq('waiting_for_players', 64, 1.6 * this.Mb[3] - 46);
this.Oa.Ia(L / 2, 70);
this.Oa.g = '#000';
this.Na = new Ms(b);
this.O = new Zp(Wh);
this.O.j = !1;
this.O.setLoop(!1);
this.Ee = b ? 1 : 8;
$s(this, this.Ee);
at(this, 0);
this.wb ? this.Da ? mk(6) : mk(5) : mk(4)
}
dispose() {
this.Fa.stop();
this.i && this.i.dispose();
this.o && lr(this.V, this.o)
}
render(a) {
var b = a.canvas.width,
c = a.canvas.height;
const d = b / 2;
a.fillStyle = '#000';
a.fillRect(0, 0, b, c);
a.save();
c = 1;
this.j && null !== this.j.g && (c = bm(this.j), b = bm(this.ya), c = c.scale, a.translate(b.x, b.y), a.scale(c, c), a.translate( - b.x, - b.y));
V(this.g, a, this.g[3] / 2, this.g[4] / 2);
this.Ab && Ng(Ts, this.Ab, a, this.g[3] / 2 + 18, this.g[4] - 0.291 * this.Ab[4] / 2 - 40, 0.291, !0);
this.O.render(d + Us, Vs, Ws);
if (4 === this.state || 5 === this.state) a.save(),
a.translate(d + Us, Vs + 20),
c = bm(this.va).scale * Ys / c,
this.H.render(0, 0, 150, 0, !1, c),
a.restore();
this.Na.render();
1 !== this.state && 2 !== this.state || this.Ob.render(a);
a.restore();
0 === this.state ? this.i ? dt(this, a) : (Cl(this.Mb, d, 70, void 0, 0, !1, 1.6, 1, 1), this.Oa.render(a)) : 4 === this.state || 5 === this.state ? this.Qb.render(a) : 6 === this.state ? this.Ba.render(a) : 7 === this.state && (a.save(), a.setTransform(1, 0, 0, 1, 0, 0), a.fillStyle = '#fff', a.globalAlpha = bm(this.u).opacity, a.fillRect(0, 0, a.canvas.width, a.canvas.height), a.restore())
}
};
function ft(a, b) {
a.g.push(b)
}
var gt = class {
constructor() {
this.g = [
]
}
};
var ht = class {
constructor(a, b, c, d) {
this.g = c;
c = new po;
c.type = 0;
c.position.set(a, b);
this.body = so(d, c);
this.body.uf = this;
a = new ro;
a.j = !0;
a.g = no(1, 1);
a.filter.g = 128;
a.filter.i = 3;
to(this.body, a)
}
getId() {
return this.g
}
};
var it = class {
constructor(a, b, c, d, e, f, g) {
this.i = b;
this.width = e;
this.height = f;
const h = new po;
h.type = 0;
h.position.set(c, d);
this.body = so(g, h);
this.body.Ab = this;
c = new ro;
c.H = 0.1;
c.i = 1000;
c.filter.g = b ? 1024 : 8;
c.filter.i = 35;
b = null;
switch (a) {
case 1:
b = no(e, f);
break;
case 2:
case 4:
b = oo(Y( - e, f), Y(e, - f));
break;
case 3:
case 5:
b = oo(Y( - e, - f), Y(e, f))
}
this.g = c.g = b;
to(this.body, c)
}
};
var jt = class extends it {
render(a) {
if (this.g && !(2 > this.g.o)) {
a.save();
a.globalAlpha = 0.3;
a.fillStyle = '#000';
a.strokeStyle = this.i ? '#40e0d0' : '#0f0';
var b = this.body.ta.position,
c = rl(),
d = this.g.g;
a.beginPath();
a.moveTo(yl(c, b.x + d[0].x), zl(c, b.y + d[0].y));
for (let e = 1; e < d.length; ++e) a.lineTo(yl(c, b.x + d[e].x), zl(c, b.y + d[e].y));
a.closePath();
a.fill();
a.stroke();
a.restore()
}
}
};
function kt(a, b, c, d) {
const e = a.g.Ud.tiles;
let f;
for (const h of a.g.layers) {
var g = + h.tiles[d * a.g.width + c] & 536870911;
0 !== g && (g = e[g].properties, b in g && (f = g[b]))
}
return f
}
function lt(a, b, c, d, e) {
const f = a.g.Ud.tiles;
for (const h of a.g.layers) {
var g = + h.tiles[e * a.g.width + d] & 536870911;
if (0 !== g && (g = f[g].properties, b in g && g[b] === c)) return !0
}
return !1
}
function mt(a, b, c) {
const d = a.g.Ud.tiles;
let e;
for (const g of a.g.layers) {
var f = + g.tiles[c * a.g.width + b] & 536870911;
0 !== f && (f = d[f].objectgroup) && (e = f)
}
return e
}
function nt(a, b, c) {
a = mt(a, b, c);
if (!a) return null;
c = a.objects;
if (!c || !c.length) return null;
b = [
];
for (const g of c) {
var d = a.x + g.x,
e = a.y + g.y;
c = [
];
var f = !1;
if (g.polygon) {
for (const h of g.polygon) c.push({
x: d + h.x,
y: e + h.y
});
f = !0
} else if (g.polyline) for (const h of g.polyline) c.push({
x: d + h.x,
y: e + h.y
});
else if (g.ellipse) console.error('Unsupported elliptical shadow object');
else {
f = d;
const h = e;
d += g.width;
e += g.height;
c.push({
x: f,
y: h
});
c.push({
x: d,
y: h
});
c.push({
x: d,
y: e
});
c.push({
x: f,
y: e
});
f = !0
}
for (e = 1; e < c.length; ++e) b.push([c[e -
1],
c[e]]);
f && b.push([c[c.length - 1],
c[0]])
}
return b
}
function ot(a, b, c) {
a = kt(a, 'wall', b, c);
switch (a) {
case 1:
case 2:
case 3:
case 4:
case 5:
return a;
default:
return 0
}
}
var pt = class {
constructor() {
this.g = null
}
getSize() {
return {
x: this.g.width,
y: this.g.height
}
}
};
var qt = class {
constructor(a, b) {
this.x = a;
this.y = b;
this.g = this.j = this.i = !1;
this.parent = null
}
},
rt = class {
constructor(a, b) {
this.width = a;
this.height = b;
this.g = Array(b);
for (let c = 0; c < b; c++) {
this.g[c] = Array(a);
for (let d = 0; d < a; d++) this.g[c][d] = new qt(d, c)
}
}
reset() {
for (let a = 0; a < this.height; a++) for (let b = 0; b < this.width; b++) this.g[a][b].j = !1,
this.g[a][b].g = !1,
this.g[a][b].parent = null
}
};
function st(a, b) {
const c = [
],
d = (g, h, k, l, m, n) =>{
k = tt(a, k, l);
m = 2 * m / 2;
n = 2 * n / 2;
c.push(new jt(g, h, k.x + m, k.y + n, m, n, b))
};
var e = ut(a, (g, h) =>1 === ot(a.map, g, h));
for (var f of e) d(1, !1, f.x, f.y, f.width, f.height);
e = a.map.getSize();
for (f = 0; f < e.y; f++) for (let g = 0; g < e.x; g++) {
const h = ot(a.map, g, f);
switch (h) {
case 2:
case 3:
case 4:
case 5:
d(h, !1, g, f, 1, 1)
}
}
e = a.map.getSize();
d(1, !0, - 1, - 1, e.x + 2, 1);
d(1, !0, - 1, e.y, e.x + 2, 1);
d(1, !0, - 1, 0, 1, e.y);
d(1, !0, e.x, 0, 1, e.y)
}
function vt(a, b) {
const c = a.map.getSize(),
d = new rt(c.x, c.y);
for (let e = 0; e < c.y; e++) for (let f = 0; f < c.x; f++) if (0 !== ot(a.map, f, e) || lt(a.map, 1 === b ? 'Alpha Base' : 'Bravo Base', !0, f, e)) for (let g = - 1; 1 >= g; g++) for (let h = - 1; 1 >= h; h++) f + g < c.x && 0 <= f + g && e + h < c.y && 0 <= e + h && (d.g[e + h][f + g].i = !0)
}
function tt(a, b, c) {
a = a.map.getSize();
return {
x: 2 * (b - 0.5) - a.x + 1,
y: 2 * (c - 0.5) - a.y + 1
}
}
function ut(a, b) {
var c = a.map.getSize();
a = [
];
for (var d = 0; d < c.y; d++) {
var e = - 1;
for (let f = 0; f < c.x; f++) if (b(f, d) && 0 > e && (e = f), (!b(f, d) || f === c.x - 1) && 0 <= e) {
let g = f - e;
f === c.x - 1 && ++g;
a.push({
x: e,
y: d,
width: g,
height: 1
});
e = - 1
}
}
for (b = 0; b < a.length; ++b) for (c = a[b], d = b + 1; d < a.length; ++d) e = a[d],
c.x === e.x && c.width === e.width && c.y + c.height === e.y && (c.height += e.height, a.splice(d, 1), d--);
return a
}
function wt(a) {
const b = [
];
var c = ut(a, (d, e) =>lt(a.map, 'Alpha Base', !0, d, e));
for (const d of c) {
c = tt(a, d.x, d.y);
const e = new Dm;
B(e, 1, 1);
B(e, 2, d.width);
B(e, 3, d.height);
const f = new Hm;
Gm(f, a.j.Ba++);
B(f, 2, 4);
B(f, 3, c.x + d.width);
B(f, 4, c.y + d.height);
lc(f, 8, e);
b.push(xt(a, f))
}
}
function yt(a) {
const b = [
],
c = a.map.getSize();
for (let h = 0; h < c.y; h++) for (let k = 0; k < c.x; k++) if (lt(a.map, 'Candle', !0, k, h)) {
var d = tt(a, k, h),
e = new Hm;
Gm(e, a.j.Ba++);
B(e, 2, 16);
B(e, 3, d.x + 1);
B(e, 4, d.y + 1);
d = e;
var f = new Em;
lc(d, 7, f);
d = b;
f = d.push;
var g = a;
e = new gq(g.va, g.settings, e, g.j, g.Da);
tr(g.j, e);
f.call(d, e)
}
}
var zt = class {
constructor(a, b, c, d, e) {
this.va = a;
this.j = b;
this.settings = c;
a = this.map = new pt;
b = {
Td: [
],
tiles: {
}
};
for (var f of d.tilesets || [
]) {
b.Td.push({
image: f.image,
width: f.imagewidth,
height: f.imageheight
});
for (var g = 0; g < f.tilecount; ++g) b.tiles[g + f.firstgid] = {
Ka: [
b.Td.length - 1,
g % f.columns * (f.tilewidth + f.spacing),
Math.floor(g / f.columns) * (f.tileheight + f.spacing),
f.tilewidth,
f.tileheight
],
properties: f.tileproperties && f.tileproperties[g] ? f.tileproperties[g] : {
},
objectgroup: f.tiles && f.tiles[g] && f.tiles[g].objectgroup
}
}
f = [
];
g = 1;
for (const h of d.layers || [
]) 'tilelayer' !== h.type ? 'players' === h.name && (g = 2) : h.compression ? console.warn(`Skipping map layer "${ h.name }": ${ h.compression } compression not supported`) : h.encoding && 'csv' !== h.encoding ? console.warn(`Skipping map layer "${ h.name }": ${ h.encoding } encoding not supported`) : f.push({
group: g,
properties: h.properties || {
},
tiles: h.data
});
a.g = {
width: d.width,
height: d.height,
wd: d.tilewidth,
vd: d.tileheight,
Ud: b,
layers: f,
properties: d.properties || {
}
};
c.get('use_pathfinding') || st(this, e);
vt(this, 2);
vt(this, 1)
}
};
const At = Qg.Wa(),
Bt = new Map;
function xt(a, b) {
b = new vo(a.va, a.settings, b, a.j);
tr(a.j, b);
return b
}
function Ct(a) {
const b = a.map.getSize();
for (let c = 0; c < b.y; ++c) for (let d = 0; d < b.x; ++d) {
lt(a.map, 'character spawn', !0, d, c) && (a.v = tt(a, d, c), a.v.x += 1, a.v.y += 1);
lt(a.map, 'enemy spawn', !0, d, c) && (a.u = tt(a, d, c), a.u.x += 1, a.u.y += 1);
lt(a.map, 'circle_center', !0, d, c) && (a.o = tt(a, d, c), a.o.x += 1, a.o.y += 1);
const e = kt(a.map, 'spider', d, c);
if (void 0 !== e) {
const f = tt(a, d, c);
f.x += 1;
f.y += 1;
a.g.set(e, f)
}
}
}
function Dt(a, b) {
const c = a.map.getSize();
for (let d = 0; d < c.y; ++d) for (let e = 0; e < c.x; ++e) {
const f = kt(a.map, 'trigger', e, d);
if (void 0 !== f) {
const g = tt(a, e, d);
g.x += 1;
g.y += 1;
a.Fa.push(new ht(g.x, g.y, f, b))
}
}
}
function Et(a, b) {
for (let c = 1; 3 > c; ++c) a.H.set(c, Ft(a, b, c))
}
function Gt(a) {
var b = ut(a, (h, k) =>{
var l = a.map,
m;
if (m = 1 === ot(l, h, k)) h = mt(l, h, k),
m = !(h && h.objects && h.objects.length);
return m
});
for (var c of b) {
var d = tt(a, c.x, c.y);
b = d.x;
var e = d.x + 2 * c.width,
f = d.y;
d = d.y + 2 * c.height;
ft(a.i, [
b,
f,
e,
f
]);
ft(a.i, [
e,
f,
e,
d
]);
ft(a.i, [
e,
d,
b,
d
]);
ft(a.i, [
b,
d,
b,
f
])
}
c = a.map.getSize();
for (b = 0; b < c.y; ++b) for (e = 0; e < c.x; ++e) if (f = nt(a.map, e, b)) {
d = tt(a, e, b);
for (const h of f) ft(a.i, [
h[0].x / 25 + d.x,
h[0].y / 25 + d.y,
h[1].x / 25 + d.x,
h[1].y / 25 + d.y
])
} else if (f = ot(a.map, e, b), 2 <= f && 5 >= f) {
var g = tt(a, e, b);
d = g.x;
const h = g.x + 2,
k = g.y;
g = g.y + 2;
switch (f) {
case 2:
case 4:
ft(a.i, [
d,
g,
h,
k
]);
break;
case 3:
case 5:
ft(a.i, [
d,
k,
h,
g
])
}
}
}
function Ht(a) {
const b = a.map.getSize(),
c = () =>{
const e = document.createElement('canvas');
e.width = a.map.g.wd * b.x;
e.height = a.map.g.vd * b.y;
return e
};
let d = a.V = c();
for (const e of a.map.g.layers) if (!e.properties.invisible) {
switch (e.group) {
case 1:
d = a.V;
break;
case 2:
a.O || (a.O = c()),
d = a.O
}
const f = d.getContext('2d');
for (let g = 0; g < b.y; g++) for (let h = 0; h < b.x; h++) It(a, e, h, g, f)
}
}
function Ft(a, b, c) {
const d = [
];
var e = ut(a, (f, g) =>lt(a.map, 'door', c, f, g));
for (const f of e) e = tt(a, f.x, f.y),
d.push(new pq(e.x + f.width, e.y + f.height, f.width, f.height, b));
return d
}
function Jt(a, b) {
if (a = a.H.get(b)) for (const c of a) c.open()
}
function Kt(a, b) {
if (a = a.H.get(b)) for (const c of a) c.close()
}
function It(a, b, c, d, e) {
const f = b.tiles[d * a.map.g.width + c];
if (f) {
b = a.map.g.wd;
const g = a.map.g.vd;
e.save();
e.translate((c + 0.5) * b, (d + 0.5) * g);
f & 1073741824 && e.scale(1, - 1);
f & 2147483648 && e.scale( - 1, 1);
f & 536870912 && e.transform(0, 1, 1, 0, 0, 0);
a = a.Ba.get( + f & 536870911);
Ng(At, a, e, - b / 2, - g / 2);
e.restore()
}
}
function Lt(a) {
if (!a) return !1;
var b = a.height / 25;
var c = yl(Bl, 0);
var d = zl(Bl, 0);
yg.save();
yg.translate(c, d);
c = a.width;
d = a.height;
b = Bl.g * b / d;
yg.scale(b, b);
yg.drawImage(a, - (c / 2), - (d / 2));
yg.restore();
return !0
}
function Mt(a, b) {
Lt(a.O);
for (const c of a.H.values()) for (const d of c) d.render(b)
}
var Nt = class extends zt {
constructor(a, b, c, d, e, f) {
super (a, b, c, d, e);
this.Da = f;
this.V = this.O = null;
this.wa = !1;
this.Fa = [
];
this.g = new Map;
this.H = new Map;
this.o = this.u = this.v = null;
this.i = new gt;
this.ya = [
];
this.Ba = new Map;
f ? (Ct(this), wt(this), yt(this), Dt(this, e), Et(this, e)) : qk( + this.map.g.properties.map);
I() || Gt(this);
const g = [
];
a = this.map.g.Ud;
for (b = 0; b < a.Td.length; ++b) c = a.Td[b],
d = Sk(c.image),
Bt.has(d) || (e = new Ig(d), Bt.set(d, Jg(At, e, [
c.width,
c.height
])), g.push(e)),
this.ya[b] = Bt.get(d);
for (var h of Object.keys(a.tiles)) b = + h & 536870911,
c = a.tiles[b],
this.Ba.set(b, [
this.ya[c.Ka[0]],
c.Ka[1],
c.Ka[2],
c.Ka[3],
c.Ka[4],
1
]);
h = () =>{
Ht(this);
this.wa = !0;
for (const k of g) k.i = [
]
};
g.length ? Hg(g, h) : h()
}
};
var Ot = class {
constructor() {
this.Ka = new Zp(Yh);
this.status = 1
}
render(a, b, c, d) {
Dl(Xp(this.Ka), a, b, 3, c, !1, 1, 1, d, Qg.Wa())
}
update(a) {
this.Ka.update(a)
}
};
var Pt = class extends En {
constructor(a, b, c) {
super (a, b, c);
this.Oe = !1;
this.input = null
}
Xc() {
return !0
}
oc() {
if (this.input) {
this.Oe = !!qc(this.input, 4);
let a = rc(this.input, 2),
b = rc(this.input, 3);
const c = yn(this);
a += c.x;
b += c.y;
Bn(this.body, Y(a, b));
a && (this.angle = Math.atan2(b, a))
} else super.oc()
}
qe(a) {
super.qe(a);
this.input && (a = new nn, B(a, 1, 9), B(a, 2, this.id), lc(a, 12, this.input), this.ya.we(a))
}
};
function Qt(a) {
this.j = a;
this.i = a * a;
this.g = Y(0, 0);
this.o = [
this.g
]
}
ta(Qt, jo);
q = Qt.prototype;
q.getTypeName = function () {
return 'CircleShape'
};
q.fe = function () {
var a = new Qt(this.j);
a.set(this);
return a
};
q.set = function (a) {
Qt.Tb.set.call(this, a);
a instanceof Qt && this.g.Ca(a.g)
};
q.Lc = function (a, b) {
var c = b.R,
d = b.position.x + (c.T.x * this.g.x + c.U.x * this.g.y);
b = b.position.y + (c.T.y * this.g.x + c.U.y * this.g.y);
a.g.set(d - this.j, b - this.j);
a.i.set(d + this.j, b + this.j)
};
q.ye = function (a, b) {
b = b * Math.PI * this.i;
a.Ca(b, this.g, b * (0.5 * this.i + (this.g.x * this.g.x + this.g.y * this.g.y)))
};
q.He = function (a) {
var b = this.j,
c = this.o;
a.j = 1;
a.i = b;
a.g = c
};
var Rt = class extends Pt {
constructor(a, b, c, d) {
super (a, b, c);
a = new po;
a.type = 2;
a.position.set(this.g.x, this.g.y);
a.angle = 0;
a.g = 1;
this.body = so(d.o, a);
this.body.wb = this;
d = new ro;
d.i = 1;
d.H = 1;
d.g = new Qt(Math.sqrt(3));
d.filter.g = 32;
d.filter.i = 1035;
to(this.body, d)
}
update() {
}
};
var St = class extends Rt {
constructor(a, b, c, d) {
super (a, b, c, d);
this.o = new Ot;
this.state = new Lm;
this.j = null;
this.opacity = 0;
this.i = null;
this.i = new em([new W(new X({
opacity: 0
}, {
opacity: 1
}, 242, om), e=>{
this.opacity = e.opacity
}),
new am(() =>{
this.i = null
})])
}
update(a) {
this.j ? this.j.update(a) : this.i && this.i.update(a);
var b = this.o,
c = E(this.state, 1, 0);
if (b.status !== c) {
b.status = c;
switch (c) {
case 3:
Yp(b.Ka, Zh);
break;
case 4:
Yp(b.Ka, $h);
break;
default:
Yp(b.Ka, Yh)
}
b.Ka.play()
}
this.o.update(a)
}
render() {
this.o.render(this.g.x, this.g.y, this.angle, this.opacity)
}
va() {
this.body.setActive(!1);
B(this.state, 1, 4);
this.j = new em([new dm(1000 * ($h.length - 1) / 24),
new am(() =>{
super.va()
})])
}
};
let Tt = !1;
var Ut = class {
constructor(a) {
this.o = a;
this.i = this.v = this.u = 0;
this.H = 1000 / 60;
this.g = Math.ceil(1000 / this.H);
this.j = Array(this.g);
for (a = 0; a < this.g; ++a) this.j[a] = 0
}
};
const Vt = Qg.Wa(),
Wt = new Map([[0,
Y( - 0.5, - 1.8)],
[
1,
Y( - 0.4, - 1.75)
],
[
2,
Y( - 0.4, - 1.5)
],
[
3,
Y( - 0.3, - 1.8)
],
[
4,
Y( - 0.3, - 1.3)
],
[
5,
Y( - 0.3, - 1.65)
],
[
6,
Y( - 0.4, - 1.5)
],
[
7,
Y( - 0.4, - 1.5)
],
[
8,
Y( - 0.5, - 1.8)
],
[
9,
Y( - 0.2, - 1.6)
],
[
10,
Y( - 0.3, - 1.8)
],
[
11,
Y( - 0.3, - 1.6)
],
[
12,
Y( - 0.15, - 1.3)
]]);
function Xt(a) {
const b = Wt.get(a.player.Na),
c = a.player.body.ka;
var d = a.player;
return {
x: - (0.01 * c.x) + b.x * Math.cos(a.player.angle),
y: - (0.005 * c.y) + b.y + ('idle' !== Yt(d) ? 0 : d.yb.Ka.Cb().y)
}
}
function Zt(a, b = 1) {
a.render(a.i, b)
}
function $t(a, b = 1) {
a.render(a.g, b)
}
var wr = class {
constructor(a, b, c) {
this.player = a;
this.i = b;
this.g = c;
this.scale = 1;
this.x = Xt(this).x;
this.y = Xt(this).y
}
update(a) {
this.scale = this.player.scale;
var b = a / 1000;
a = Math.min(1, 10 * b);
b = Math.min(1, 40 * b);
this.x = this.x * (1 - a) + Xt(this).x * a;
this.y = this.y * (1 - b) + Xt(this).y * b
}
render(a, b) {
a && Dl(a, this.player.g.x + this.x, this.player.g.y + this.y, 2, this.player.angle, !1, this.scale, this.scale, b, Vt)
}
};
function kq(a, b) {
return new em([new W(new X({
offsetX: 1
}, {
offsetX: 0
}, 500, rm), c=>a.Ta(c)),
new W(new X({
offsetX: 0
}, {
offsetX: 0
}, b, om), c=>a.Ta(c)),
new W(new X({
offsetX: - 0.1
}, {
offsetX: 1
}, 500, pm), c=>a.Ta(c))])
}
var Cr = class extends lq {
constructor(a, b, c, d, e) {
super (b, c, d, e);
this.type = a
}
v() {
return 1 === this.type ? Gh : null
}
};
class au extends iq {
constructor(a, b) {
super ();
this.text = a;
this.scale = 0;
this.action = this.g(b)
}
cancel() {
}
g(a) {
return new em([new W(new X({
scale: 0
}, {
scale: 1
}, 218, om), b=>this.Ta(b)),
new dm(a),
new W(new X({
scale: 1
}, {
scale: 0
}, 218, qm), b=>this.Ta(b))])
}
u() {
return this.action.g()
}
update(a) {
this.action.update(a)
}
Ta(a) {
this.scale = a.scale
}
}
var Er = class extends au {
j() {
return 4
}
render(a, b = 0, c = 0) {
a.save();
a.fillStyle = '#000';
a.textAlign = 'center';
a.font = `48px ${ O }`;
a.lineWidth = 4;
Fl(this.text, b, c - 2, '#4B1', '#BF5', 0, this.scale);
a.restore()
}
},
bu = class extends au {
constructor(a, b, c, d) {
super (a, b);
this.x = c;
this.y = d
}
j() {
return 5
}
g(a) {
return new em([new W(new X({
scale: 0
}, {
scale: 1
}, 218, om), b=>this.Ta(b)),
new dm(a),
new W(new X({
scale: 1
}, {
scale: 2
}, 128, qm), b=>this.Ta(b))])
}
render(a) {
a.save();
a.translate(this.x, this.y);
a.scale(this.scale, this.scale);
a.textAlign = 'center';
a.font = `60px ${ O }`;
a.fillStyle = '#700';
a.fillText(this.text, 0, 0);
a.strokeStyle = '#F93';
a.strokeText(this.text, 0, 0);
a.restore()
}
};
const cu = rl();
var du = class {
constructor(a) {
this.g = a;
this.state = 'idle';
this.Ka = new Zp(zm(this.g, this.state));
this.Ka.play();
this.i = Cm(this.g, b=>{
this.Ka.Ia(0, b.y / cu.g)
})
}
render(a, b, c, d, e, f = !1) {
this.Ka.render(a, b, 3, c, f, d, d, e)
}
update(a) {
'idle' === this.state && this.i.update(a);
this.Ka.update(a)
}
};
class eu extends iq {
constructor(a, b) {
super ();
this.amount = a;
this.scale = this.opacity = this.offsetY = 0;
this.action = this.H(b)
}
cancel() {
this.action = this.g()
}
u() {
return this.action.g()
}
update(a) {
this.action.update(a)
}
Ta(a) {
this.offsetY = a.offsetY;
this.opacity = a.opacity;
this.scale = a.scale
}
}
var Ar = class extends eu {
constructor(a) {
super (a, 1000)
}
j() {
return 3
}
H(a) {
return new em([new W(new X({
offsetY: 0,
opacity: 0,
scale: 0
}, {
offsetY: - 0.5,
opacity: 1,
scale: 1.25
}, 107, om), b=>this.Ta(b)),
new W(new X({
offsetY: - 0.5,
opacity: 1,
scale: 1.1
}, {
offsetY: - 0.5,
opacity: 1,
scale: 1
}, a, om), b=>this.Ta(b)),
new W(new X({
offsetY: - 0.5,
opacity: 1,
scale: 1
}, {
offsetY: - 0.5,
opacity: 1,
scale: 1
}, 218, om), b=>this.Ta(b)),
this.g()])
}
g() {
return new W(new X({
offsetY: - 0.5,
opacity: 1,
scale: 1
}, {
offsetY: - 0.5,
opacity: 0,
scale: 1
}, 107, om), a=>{
this.Ta(a)
})
}
render(a, b = 0, c = 0) {
const d = this.offsetY - 1.5;
a.save();
a.fillStyle = '#000';
a.textAlign = 'center';
a.font = `48px ${ O }`;
a.lineWidth = 4;
a.globalAlpha = this.opacity;
Fl(`+${ this.amount }!`, b, c + d, '#4B1', '#BF5', 0, this.scale);
a.restore()
}
};
class fu extends eu {
j() {
return 2
}
H(a) {
const b = this.i();
return new em([new W(new X({
offsetY: this.v(),
opacity: 0
}, {
offsetY: b,
opacity: 1
}, 107, om), c=>this.Ta(c)),
new W(new X({
offsetY: b,
opacity: 1
}, {
offsetY: b,
opacity: 1
}, a, om), c=>this.Ta(c)),
this.g()])
}
g() {
const a = this.i();
return new W(new X({
offsetY: a,
opacity: 1
}, {
offsetY: a,
opacity: 0
}, 107, om), b=>{
this.Ta(b)
})
}
render(a, b = 0, c = 0) {
const d = this.offsetY - 1.5;
a.save();
a.fillStyle = '#000';
a.textAlign = 'center';
a.font = `32px ${ O }`;
a.lineWidth = 3;
a.globalAlpha = this.opacity;
this.o(a, b, c + d);
a.restore()
}
}
var gu = class extends fu {
constructor(a) {
super (a, 1000)
}
v() {
return 0
}
i() {
return - 0.5
}
o(a, b, c) {
Fl(`+${ this.amount }`, b, c, '#59E', '#FFF')
}
},
hu = class extends fu {
constructor(a) {
super (a, 1000)
}
v() {
return - 0.5
}
i() {
return 0
}
o(a, b, c) {
Fl(`${ this.amount }`, b, c, '#D67', '#000')
}
},
zr = class extends fu {
constructor(a, b, c) {
super (a, b);
this.color = c
}
j() {
return 1
}
v() {
return 0
}
i() {
return - 0.5
}
o(a, b, c) {
var d = rl();
b = yl(d, b);
c = zl(d, c);
a.font = `32px ${ O }`;
a.textAlign = 'center';
a.textBaseline = 'middle';
a.fillStyle = `rgb(${ this.color })`;
a.strokeStyle = '#fff';
a.lineWidth = 3;
a.strokeText(`+${ this.amount }`, b, c - 40);
a.fillText(`+${ this.amount }`, b, c - 40);
a.lineWidth = 0.5;
a.font = `12px ${ O }`;
d = Jl(a, U('buddy_bonus'), O, 12, 8, 50, 2);
Ll(a, d, b, c - 15, 1.25 * d.fontSize, !0)
}
},
Br = class extends gu {
o(a, b, c) {
Fl(`+${ this.amount }`, b, c, '#0AF', '#FFF')
}
};
function iu(a) {
let b = a;
for (let c = 0; c < a.j.length; c++) {
const d = a.j[c];
d.O(b, c + 1);
b = d
}
}
function fq(a) {
return 0 < a.Fa ? 2000 < a.Fa ? !0 : 0 === Math.round(a.Fa / 200) % 2 : !1
}
function Ir(a) {
a.hb && (a.hb.v.i = (1 === a.Ua ? 2 : 1) | (ju(a, 4) ? 1024 : 1544) | 420)
}
var lu = class extends Pt {
constructor(a, b, c, d) {
super (a, b, c);
this.wb = d;
this.j = [
];
this.Fa = 0;
this.u = !1;
this.v = 0;
this.ff = Y(0, 0);
a = F(c, Fm, 6);
this.Ua = E(a, 2, 0);
this.Na = E(a, 3, 0);
this.Wc = qc(a, 4);
a = new po;
a.type = 2;
a.position.set(this.g.x, this.g.y);
a.angle = 0;
a.g = 1;
this.body = so(d.o, a);
this.body.rf = this;
d = new ro;
d.g = new Qt(Math.sqrt(3));
d.i = 1;
d.H = 1;
d.filter.g = 1 === this.Ua ? 1 : 2;
this.hb = to(this.body, d);
Ir(this);
d.j = !0;
d.filter.g = 64;
to(this.body, d);
this.lg = zn(this, 'return_to_base_duration_ms')
}
oe() {
if (this.u) {
this.u = !1;
this.v = 0;
var a = new ro;
a.g = new Qt(Math.sqrt(3));
a.i = 1;
a.H = 1;
a.filter.g = 1 === this.Ua ? 1 : 2;
this.hb = to(this.body, a)
}
}
Vc(a) {
this.u && (this.hb && (ku(this.body, this.hb), this.hb = void 0), this.v += a / this.lg, this.v = Math.min(this.v, 1), this.input = null, Bn(this.body, Y(0, 0)), 0.5 < this.v && (a = this.body, An(a, this.ff, a.ha.a)))
}
Hc() {
return !0
}
};
function ar(a) {
return a.state ? sc(a.state, 6) || 0 : 0
}
function Jr(a) {
return a.Re && !a.u
}
function ju(a, b) {
return a.state ? E(a.state, 4, 0) >= b : !1
}
function xr(a, b) {
a.O += b;
a.Qb = zn(a, 'score_delta_timer_ms');
a.i && 0 < b && nl('STEALS', b)
}
function Gr(a, b) {
if (a.Xa !== b) {
var c = zm(a.Na, 1 === b ? 'happy' : 'sad').length;
a.Xa = b;
a.Mb = new em([new dm(1000 * c / 24),
new am(() =>{
a.Xa = null;
a.Mb = null
})])
}
}
function yr(a, b) {
if (!a.o || a.o.j() <= b.j()) a.o && a.o.cancel(),
a.o = b
}
function Fr(a) {
switch (a) {
case 1:
return U('powerup_fast');
case 2:
return U('powerup_all_seeing');
case 3:
return U('powerup_magnetic');
case 4:
return U('powerup_dematerialized');
case 5:
return U('powerup_invincible');
default:
return ''
}
}
function Hr(a) {
a.wa = zn(a, 'sonic_boom_timer_ms');
a.i && Q.Cf.play()
}
function Dr(a) {
switch (a) {
case 1:
return U('base_powerup_fast');
case 2:
return U('base_powerup_all_seeing');
case 3:
return U('base_powerup_magnetic');
case 4:
return U('base_powerup_dematerialized');
default:
return ''
}
}
function Yt(a) {
let b = 'idle';
a.Qa ? b = 'sleep' : 1 === a.Xa ? b = 'happy' : 2 === a.Xa ? b = 'sad' : a.Oe && (b = 'move');
return b
}
function mu(a, b, c, d, e) {
a.V && $t(a.V, e);
fq(a) ? (a.Ob || (a.Ob = !0, a.Nb.play()), a.Ic.render(b, c, 4, e, a.u), a.Kc.render(b, c, 4, e, a.u)) : a.Ob && (a.Ob = !1, a.Nb.stop());
a.yb.render(b, c, a.angle, d, e, a.u);
a.V && Zt(a.V, e)
}
function nu(a) {
let b = 0,
c = 0,
d = Number.MAX_VALUE;
const e = a.g;
for (const g of a.wb.u.values()) {
if (g.Ua !== a.Ua) continue;
var f = g.g;
const h = f.x - e.x;
f = f.y - e.y;
const k = h * h + f * f;
k < d && (d = k, b = h, c = f)
}
return [b,
c]
}
function ou(a, b) {
if (a.i && !a.Qa) {
const g = rl(),
[
h,
k
] = nu(a),
l = Math.atan2(k, h) % Math.PI + Math.PI;
var c = N.width / g.g,
d = N.height / g.g,
e = a.Uf ? a.Zb : a.j.length + ar(a) >= ( + zn(a, `powerup_threshold_${ (a.state ? E(a.state, 4, 0) : 0) + 1 }`) || 500);
if (e || c / 2 <= Math.abs(h) || d / 2 <= Math.abs(k)) {
b.save();
c = a.g;
var f = d = 1;
let m = 1;
e ? (m = 3, f = (Date.now() & 511) / 512, b.globalAlpha = 0.9, d = 1.25, f = 1 + f) : b.globalAlpha = 0.25;
e = I() ? 42 : 32;
b.fillStyle = '#fff';
b.strokeStyle = '#000';
for (let n = 1; n <= m; n++) {
const w = c.x - 3 * Math.cos(l) * f * n,
v = c.y - 3 * Math.sin(l) * f * n;
b.save();
b.translate(yl(g, w), zl(g, v));
b.scale(d, d);
b.rotate(l - Math.PI);
b.beginPath();
b.moveTo( - e / 2, - e / 2);
b.lineTo(e / 2, 0);
b.lineTo( - e / 2, e / 2);
b.closePath();
b.fill();
b.stroke();
b.restore()
}
b.restore()
}
}
a.o && a.o.render(b, a.g.x, a.g.y)
}
var pu = class extends lu {
constructor(a, b, c, d, e) {
super (a, b, c, d);
this.Uf = e;
this.state = null;
this.i = !1;
this.Eb = this.Qb = this.O = this.wa = 0;
this.Xa = this.o = null;
this.Qa = !1;
this.Re = !0;
this.Zb = this.Ob = !1;
this.Mb = null;
this.opacity = this.Ba = 0;
this.Ab = null;
this.scale = 1;
this.V = null;
this.Ic = new Zp(Sh);
this.Kc = new Zp(ai);
this.Nb = Q.zf.clone();
this.Pe = zn(this, 'ally_bonus_timer_ms');
this.ig = 1 === this.Ua ? '50,255,100' : '150,60,255';
this.fg = zn(this, 'draw_debug_location');
this.hf = zn(this, 'speed_boost_trail_coefficient');
this.jg = zn(this, 'render_paths');
this.yb = new du(this.Na);
this.ef = this.Ba;
this.Jc = {
radius: this.i ? sc(this.state, 3) || 0 : 10,
Ge: 10,
Ua: this.Ua,
Od: 1000 * Math.random(),
Kd: !1,
visible: !0
};
this.Ic.play();
this.Kc.play();
this.Ab = new em([new W(new X({
opacity: 0
}, {
opacity: 1
}, 242, om), f=>{
this.opacity = f.opacity
}),
new am(() =>{
this.Ab = null
})])
}
Da() {
const a = super.Da();
return this.i ? a + 1 : a
}
Hc() {
return null != this.state
}
update(a) {
this.Ic.update(a);
this.Kc.update(a);
this.Ba += a;
if (fq(this)) if (this.i) Vj(this.Nb, 1);
else {
const d = un(this.wb.g.g);
var b = d,
c = this.g;
b.x -= c.x;
b.y -= c.y;
b = Math.max(0.0001, Math.pow(d.length(), 2));
Vj(this.Nb, Oi(40 / b, 0, 1))
}
this.V && this.V.update(a);
0 < this.wa && (this.wa -= a);
0 < this.Eb && (this.Eb -= a);
0 < this.Qb ? this.Qb -= a : this.i && 0 !== this.O && (yr(this, 0 < this.O ? new gu(this.O) : new hu(this.O)), (0 < this.O ? Q.Ef : Q.Ff).play(), this.O = 0);
iu(this);
this.o && (this.o.update(a), this.o.u() && (this.o = null));
this.Mb && this.Mb.update(a);
b = this.yb;
c = Yt(this);
c !== b.state && (b.state = c, 'idle' === b.state && b.i.reset(), b.Ka.setLoop('happy' !== b.state && 'sad' !==
b.state), b.Ka.Ia(0, 0), Yp(b.Ka, zm(b.g, b.state)), b.Ka.play());
this.yb.update(a);
this.Ab && this.Ab.update(a);
b = rc(this.state, 17);
b > this.Fa && (Hr(this), c = new Er(Fr(5), zn(this, 'notice_duration_ms')), yr(this, c));
this.Fa = b;
b = qc(this.state, 18);
!this.u && b ? Gr(this, 2) : this.u && !b && this.oe();
this.u = b;
this.ff = Y(sc(this.state, 19), sc(this.state, 20));
this.Vc(a)
}
sendMessage(a) {
this.ya.Ed(a)
}
Vc(a) {
this.u && (this.angle = 15 * this.v, this.scale = 0.5 > this.v ? 1 - 2 * this.v : 2 * this.v - 1, super.Vc(a))
}
oe() {
this.scale = 1;
super.oe()
}
render(a) {
const b = this.g.x,
c = this.g.y;
if (this.fg && this.Oa) {
a.save();
a.globalAlpha = 0.5;
var d = this.Oa,
e = d.x,
f = d.y,
g = ((new Date).getTime() - this.Oa.t) / 1000;
El(e + d.Wd * g, f + d.Xd * g, 1.5, 'yellow');
El(e, f, 1.5, 'white');
a.restore()
}
a.save();
a.globalAlpha = this.alpha;
ju(this, 4) && (a.save(), a.globalAlpha *= 0.1);
if (qc(this.state, 12)) for (d = 0; 3 > d; d++) e = this.body.ka,
mu(this, b - e.x * this.hf * (d + 1), c - e.y * this.hf * (d + 1), this.scale, a.globalAlpha * (0.1 + (3 - d) / 6));
mu(this, b, c, this.scale, 1 > this.opacity ? this.opacity : a.globalAlpha);
if (0 < this.wa) for (d = zn(this, 'sonic_boom_timer_ms'), e = 0; 5 > e; e++) mu(this, b, c, 0.1 + 3 * e * (d - this.wa) / d, a.globalAlpha * (0.1 + (5 - e) / 12 - 0.1 * (d - this.wa) / d));
ju(this, 4) && a.restore();
if (kc(this.state, Om, 7) && this.jg) for (d = rl(), a.strokeStyle = '#f00', a.lineWidth = 2, e = b, f = c, g = 0; g < kc(this.state, Om, 7).length; ++g) {
const h = kc(this.state, Om, 7) [g];
0 < g && (a.beginPath(), a.moveTo(yl(d, e), zl(d, f)), a.lineTo(yl(d, rc(h, 1)), zl(d, rc(h, 2))), a.stroke());
El(rc(h, 1), rc(h, 2), 3 * 0.1, '#f00');
e = rc(h, 1);
f = rc(h, 2)
}
qc(this.state, 8) || this.Wc || Dl(lh, b, c, 3, 0);
this.Qa && (a.font = `32px ${ O }`, a.lineWidth = 3, Math.floor(this.Ba / 500) % 2 ? Fl('Z z Z', b - 0.17, c - 1.8, '#4B1', '#BF5') : Fl('z Z z', b - 0.17, c - 1.8, '#4B1', '#BF5'));
a.restore()
}
wake() {
const a = new nn;
B(a, 1, 13);
B(a, 2, this.id);
B(a, 3, !0);
this.ya.Ed(a)
}
Be() {
this.Jc.radius = this.i ? sc(this.state, 3) || 0 : 10;
return this.Jc
}
};
var qu = class {
constructor() {
this.Ka = new Zp([sh]);
this.status = 1;
this.g = new Zp(Sh);
this.i = new Zp(ai)
}
render(a, b, c, d) {
Dl(Xp(this.Ka), a, b, 4, c, !1, 1, 1, d, Qg.Wa());
this.g.render(a, b, 5);
this.i.render(a, b, 5)
}
update(a) {
this.Ka.update(a);
this.g.update(a);
this.i.update(a)
}
};
var ru = class extends Pt {
constructor(a, b, c, d) {
super (a, b, c);
a = new po;
a.type = 0;
a.position.set(this.g.x, this.g.y);
a.angle = 0;
a.g = 1;
this.body = so(d.o, a);
this.body.yb = this;
d = new ro;
d.i = 1;
d.j = !0;
d.H = 1;
d.g = new Qt(Math.sqrt(3));
d.filter.g = 32;
d.filter.i = 1035;
to(this.body, d)
}
};
var su = class extends ru {
constructor(a, b, c, d) {
super (a, b, c, d);
this.j = new qu;
this.opacity = 0;
this.i = null;
this.i = new em([new W(new X({
opacity: 0
}, {
opacity: 1
}, 242, om), e=>{
this.opacity = e.opacity
}),
new am(() =>{
this.i = null
})])
}
update(a) {
this.i && this.i.update(a);
var b = this.j;
1 !== b.status && (b.status = 1, Yp(b.Ka, [
sh
]), b.Ka.play());
this.j.update(a)
}
render() {
this.j.render(this.g.x, this.g.y, this.angle, this.opacity)
}
va() {
super.va()
}
};
function tu(a, b) {
a = new PIXI.Sprite(a);
a.blendMode = PIXI.BLEND_MODES.ADD;
a.scale.set(2 * b / 256);
a.anchor.set(0.5);
return a
}
var uu = class {
constructor(a, b, c = 0) {
this.i = b;
this.scale = 1;
this.oa = new PIXI.Container;
const d = tu(a, b);
this.oa.addChild(d);
0 < c && (a = tu(a, c), this.oa.addChild(a));
this.g = new zk(0, 0, 2 * b, 2 * b)
}
getBounds() {
return this.g
}
};
const vu = rl();
function wu(a, b) {
var c = a.i.get(b);
c && (c = c.oa, a.g.removeChild(c), a.i.delete(b), c.destroy({
children: !0
}))
}
function xu(a, b, c, d = 0) {
let e = a.i.get(b);
e || (e = new uu(a.texture, c, d), a.i.set(b, e), a.g.addChild(e.oa));
return e
}
var zu = class extends ci {
constructor() {
var a = N.width,
b = N.height;
super ();
this.g = new PIXI.Container;
this.i = new Map;
this.v = new Map;
this.o = 0;
this.u = !1;
a = this.j = PIXI.autoDetectRenderer({
antialias: !1,
backgroundColor: 6579350,
powerPreference: 'high-performance',
width: a,
height: b,
forceCanvas: !1
});
a.type !== PIXI.RENDERER_TYPE.WEBGL && S(103);
lk('d2', a.type);
this.j.plugins.interaction.destroy();
a = PIXI.Texture;
b = a.from;
const c = document.createElement('canvas');
c.width = 256;
c.height = 256;
const d = c.getContext('2d'),
e = d.createRadialGradient(128, 128, 128, 128, 128, 0);
e.addColorStop(0, 'rgba(255,255,255,0)');
e.addColorStop(0.5, 'rgba(255,255,255,1)');
e.addColorStop(1, 'rgba(255,255,255,1)');
d.fillStyle = e;
d.fillRect(0, 0, 256, 256);
this.texture = b.call(a, c, {
scaleMode: PIXI.SCALE_MODES.LINEAR
})
}
ub() {
super.ub();
this.v.clear();
this.i.clear();
this.g.destroy(!0);
this.texture.destroy(!0);
this.j.destroy(!0)
}
update(a) {
this.o += a
}
render(a, b, c, d) {
var e = vu.left;
var f = vu.top;
e = {
left: e,
right: e + N.width / vu.g,
top: f,
bottom: f + N.height / vu.g
};
f = 1;
ju(b, 2) && (f = yu(d, 'all_seeing_lighting_multiplier'), this.u || (wu(this, b.getId()), this.u = !0));
b = b.Ua;
for (const u of c) {
c = u.Be();
var g = c.Ua === b;
d = u;
var h = xu(this, d.getId(), c.radius, c.Ge * (g ? f : 1));
if (c.visible) {
var k = h,
l = 1 === c.Ua ? 3342180 : 9846015;
for (const C of k.oa.children || [
]) C.tint = l;
h.oa.alpha = d.alpha * (g ? 1 : 0.2);
k = h;
g = d.g;
var m = e;
k.oa.position.set(g.x, g.y);
k.g.left = g.x;
k.g.top = g.y;
l = g.x - Oi(g.x, m.left, m.right);
g = g.y - Oi(g.y, m.top, m.bottom);
k.oa.visible = l * l + g * g < Math.pow(k.scale * k.i, 2);
if (null != c.Od) {
bq || (bq = new aq);
var n = bq;
k = c.Od + 0.003 * this.o;
g = l = 0;
var w = Math.floor(k) & 255,
v = Math.floor(l) & 255,
A = Math.floor(g) & 255;
k -= Math.floor(k);
l -= Math.floor(l);
g -= Math.floor(g);
m = k * k * k * (k * (6 * k - 15) + 10);
const C = l * l * l * (l * (6 * l - 15) + 10);
n = n.g;
var p = n[w] + v;
const G = n[p] + A;
p = n[p + 1] + A;
v = n[w + 1] + v;
w = n[v] + A;
A = n[v + 1] + A;
v = 25 * h.i;
h.scale = (v + ((Pi(Pi(Pi(cq(n[G], k, l, g), cq(n[w], k - 1, l, g), m), Pi(cq(n[p], k, l - 1, g), cq(n[A], k - 1, l - 1, g), m), C), Pi(Pi(cq(n[G + 1], k, l, g - 1), cq(n[w + 1], k - 1, l, g - 1), m), Pi(cq(n[p + 1], k, l - 1, g - 1), cq(n[A + 1], k - 1, l - 1, g - 1), m), C), g * g * g * (g * (6 * g - 15) + 10)) + 1) / 2 * 20 - 10)) / v;
h.oa.scale.set(h.scale);
h.g.width = 2 * h.i * h.scale;
h.g.height = 2 * h.i * h.scale
}
c.Kd && d.getId()
} else h.oa.visible = !1
}
this.g.scale.set(vu.g);
this.g.position.set(yl(vu, 0), zl(vu, 0));
this.j.render(this.g);
a.save();
a.globalCompositeOperation = 'multiply';
a.drawImage(this.j.view, 0, 0);
a.restore()
}
};
const Au = `30px ${ O }`;
var Bu = class {
constructor() {
var a = 0.6 * N.width;
this.width = a;
this.i = null;
this.o = this.j = 0;
this.g = new X({
alphaCount: 0,
alphaWidth: a / 2,
bravoCount: 0,
bravoWidth: a / 2
}, {
alphaCount: 0,
alphaWidth: a / 2,
bravoCount: 0,
bravoWidth: a / 2
}, 1)
}
update(a) {
this.g.update(a)
}
render(a, b, c) {
if (this.j !== b || this.o !== c) {
this.j = b;
this.o = c;
var d = b + c,
e = this.width * (0 === d ? 0.5 : b / d);
d = this.width * (0 === d ? 0.5 : c / d);
const f = bm(this.g);
this.g = new X({
alphaCount: f.alphaCount,
alphaWidth: f.alphaWidth,
bravoCount: f.bravoCount,
bravoWidth: f.bravoWidth
}, {
alphaCount: b,
alphaWidth: e,
bravoCount: c,
bravoWidth: d
}, 250);
this.g.start()
}
b = bm(this.g);
c = - this.width / 2;
e = b.alphaWidth + c;
a.save();
this.i || (this.i = a.createLinearGradient(0, - 4, 0, 20), this.i.addColorStop(0, 'rgba(76,92,92,0.5)'), this.i.addColorStop(1, 'rgba(136,136,136,0.5)'));
a.fillStyle = this.i;
a.beginPath();
a.moveTo(c, - 4);
a.lineTo(c + this.width, - 4);
a.arc(c + this.width, 6, 10, - Math.PI / 2, Math.PI / 2);
a.lineTo(c, 16);
a.arc(c, 6, 10, Math.PI / 2, 3 * Math.PI / 2);
a.fill();
a.fillStyle = 'rgb(50,255,100)';
a.fillRect(c, 0, b.alphaWidth, 12);
a.beginPath();
a.arc(c, 6, 6, Math.PI / 2, 3 * Math.PI / 2);
a.fill();
a.fillStyle = 'rgb(100,0,255)';
a.fillRect(e, 0, b.bravoWidth, 12);
a.beginPath();
a.arc(c + this.width, 6, 6, - Math.PI / 2, Math.PI / 2);
a.fill();
a.fillStyle = '#fff';
a.fillRect( - 2, - 4, 4, 20);
a.font = Au;
a.textAlign = 'right';
a.textBaseline = 'middle';
a.fillText(`${ Math.floor(b.alphaCount) }`, c - 6 - 12, 6);
a.textAlign = 'left';
a.fillText(`${ Math.floor(b.bravoCount) }`, c + this.width + 18, 6);
a.restore()
}
};
function Cu(a, b, c) {
b.setTransform(1, 0, 0, 1, 0, 0);
c.H || c.v || (b.save(), b.translate(b.canvas.width / 2, b.canvas.height / 4), a.H.render(b, c.wb), b.restore());
!c.v && 6000 > c.o && c.H && (b.save(), b.translate(b.canvas.width / 2, b.canvas.height / 4), a.O.render(b, Math.floor(c.o / 1000)), b.restore());
c.H && (b.save(), b.translate(b.canvas.width / 2, 70), a.v.render(b, c.Na, c.Xa), b.restore());
b.save();
var d = c.o;
c.H && (b.font = `50px ${ O }`, b.globalAlpha = 1, b.fillStyle = '#fff', b.textAlign = 'center', b.textBaseline = 'middle', 0 >= d ? d = '0:00' : (c = Math.floor(d % 60000 / 1000), d = `${ Math.floor(d / 60000) }:${ 10 > c ? '0' : '' }${ c }`), b.fillText(d, b.canvas.width / 2, 36));
I() && a.gamepad && a.gamepad.render(b);
b.restore()
}
var Du = class extends ci {
constructor() {
super ();
this.j = new zu;
this.o = new Co;
this.v = new Bu;
this.H = new hq;
this.O = new Qr;
this.i = this.g = this.gamepad = null;
this.u = 25;
di(this, ra(bi, this.j));
di(this, ra(bi, this.o))
}
update(a) {
this.i && this.i.update(a);
this.o.update(a);
this.j.update(a);
this.v.update(a)
}
render(a, b, c) {
cl(b.canvas);
b.fillStyle = '#000';
b.fillRect(0, 0, b.canvas.width, b.canvas.height);
if (null !== a) {
b.save();
var d = a.Ba,
e = a.g.g;
if (e) {
var f = e.g,
g = Math.max(25 - yu(a, 'zoom_out_per_collectible_held') * e.j.length, 12.5);
this.u !== g && (this.i = new X({
zoom: c.g
}, {
zoom: g
}, yu(a, 'zoom_tween_time_ms')), this.i.start(), this.u = g);
xl(c, this.i ? bm(this.i).zoom : this.u);
vl(c, f.x, f.y, bl.left + bl.width / 2, bl.top + bl.height / 2)
}
f = a.i;
if (e && e.Hc() && Lt(f.V)) {
const m = [
],
n = new Map;
g = c.left;
var h = c.top,
k = N.width / c.g;
c = N.height / c.g;
for (var l of a.g.H.values()) {
const w = l.g;
w.x >= g - 1 && w.x < g + k + 1 && w.y >= h - 1 && w.y < h + c + 1 && ( - 1 === m.indexOf(l.Da()) && (m.push(l.Da()), n.set(l.Da(), [
])), n.get(l.Da()).push(l))
}
m.sort((w, v) =>w - v);
for (const w of m) for (const v of n.get(w)) v.isVisible() && v.render(b);
yu(a, 'render_map_layers_above_players') && Mt(f, b);
1 > a.u && (b.fillStyle = `rgba(0, 0, 0, ${ 1 - a.u })`, b.fillRect(0, 0, b.canvas.width, b.canvas.height), e.render(b), d && d.render(b, !0));
1 > a.u && (b.save(), b.globalAlpha = a.u);
yu(a, 'render_fog') && 0 < a.u && this.o.render();
yu(a, 'render_lighting') && (l = Tt ? [
e,
...a.g.u.values()
] : [
...a.g.i.values(),
...a.g.v.values(),
...a.g.u.values()
], this.j.render(b, e, l, a, !Tt));
d && d.render(b, !1);
1 > a.u && b.restore();
e && e.Hc() && ou(e, b)
}
this.g || (J ? (this.g = b.createLinearGradient(0, 0, 0, b.canvas.height), d = bl.top / b.canvas.height, e = (bl.top + bl.height) / b.canvas.height) : (this.g = b.createLinearGradient(0, 0, b.canvas.width, 0), d = bl.left / b.canvas.width, e = (bl.left + bl.width) / b.canvas.width), this.g.addColorStop(0, 'rgba(0,0,0,1)'), this.g.addColorStop(d, 'rgba(0,0,0,0)'), this.g.addColorStop(e, 'rgba(0,0,0,0)'), this.g.addColorStop(1, 'rgba(0,0,0,1)'));
b.fillStyle = this.g;
b.fillRect(0, 0, b.canvas.width, b.canvas.height);
b.restore();
Cu(this, b, a)
}
}
};
function Eu(a, b) {
if (a.i = b) a.g = Date.now()
}
var Fu = class {
constructor() {
this.y = this.x = 0;
this.i = !1;
this.g = 0
}
render(a, b) {
a.save();
var c = 0;
this.i && (c = 0.25 * Math.sin(0.025 * (Date.now() - this.g)));
const d = this.x;
c = this.y + c;
var e = rl();
const f = yl(e, d);
e = zl(e, c);
a.strokeStyle = '#fff';
a.beginPath();
a.moveTo(f, 0);
a.lineTo(f, e);
a.stroke();
(b = b ? rh : Oh) && Dl(b, d, c, 0.5);
a.restore()
}
};
function Gu(a, b, c) {
for (let d = 0; d < a.settings.length; ++d) {
const e = a.settings[d],
f = e[0],
g = b[f],
h = e[1],
k = typeof h;
void 0 !== g ? Hu(a, f, k, g, e[2], e[3]) : c && Hu(a, f, k, h, e[2], e[3])
}
}
function Hu(a, b, c, d, e, f) {
switch (c) {
case 'number':
d = Number(d);
void 0 !== e && (d = Math.max(d, e));
void 0 !== f && (d = Math.min(d, f));
break;
case 'boolean':
d = !!d
}
a.state.set(b, d)
}
var Iu = class {
constructor() {
var a = {
};
this.state = new Map;
this.settings = [
['match_size',
8,
1,
8],
[
'num_players',
8,
1,
8
],
[
'match_duration',
120
],
[
'match_ends_when_time_expires',
!0
],
[
'match_ends_when_lobby_empties',
!0
],
[
'lobby_ttl_sec',
30
],
[
'player_join_ttl_sec',
5
],
[
'init_ttl_sec',
10
],
[
'match_fps',
24
],
[
'countdown_timer',
5
],
[
'use_pathfinding',
!1
],
[
'render_paths',
!1
],
[
'render_fog',
!0
],
[
'fog_intensity',
170
],
[
'fog_scale_x',
0.125
],
[
'fog_scale_y',
0.25
],
[
'fog_scale_t',
0.00032
],
[
'render_lighting',
!0
],
[
'render_map_layers_above_players',
!0
],
[
'light_map_debug',
!1
],
[
'player_vision_radius',
10
],
[
'player_base_speed',
15
],
[
'powerup_speed_multiplier',
1.5
],
[
'use_collectible_stealing',
!0
],
[
'max_collectibles_held',
- 1
],
[
'collectible_trail_speed',
10
],
[
'collectible_respawn',
!0
],
[
'collectible_respawn_timer_ms',
18000
],
[
'power_pellet_respawn_timer_ms',
30000
],
[
'magnet_attraction_radius',
15
],
[
'magnet_sensor_radius',
10
],
[
'magnet_inversion_rate',
0.15
],
[
'all_seeing_lighting_multiplier',
2.2
],
[
'use_dematerialization',
!0
],
[
'sonic_boom_timer_ms',
700
],
[
'score_delta_timer_ms',
250
],
[
'powerup_threshold_1',
15
],
[
'powerup_threshold_2',
45
],
[
'powerup_threshold_3',
105
],
[
'powerup_threshold_4',
225
],
[
'repel_smaller_collectible_holder',
!0
],
[
'ai_step_size',
7
],
[
'ai_random_arc_range',
Math.PI / 4
],
[
'ai_action_timer_ms',
500
],
[
'ai_seek_timer_ms',
3000
],
[
'steals_for_cooldown',
3
],
[
'steal_delay_timer_ms',
1000
],
[
'steal_cooldown_timer_ms',
0
],
[
'steal_speed_boost_time_ms',
1750
],
[
'steal_speed_boost',
1.5
],
[
'speed_boost_trail_coefficient',
0.01
],
[
'use_ally_candle_bonus',
!0
],
[
'ally_candle_bonus_value',
5
],
[
'ally_candle_bonus_cooldown_ms',
3000
],
[
'ally_bonus_timer_ms',
3000
],
[
'mega_flame_spawn_interval',
30000
],
[
'mega_flames_per_spawn',
2
],
[
'mega_flame_movement_timer',
1000
],
[
'mega_flame_speed',
5
],
[
'mega_flame_collectible_value',
10
],
[
'mega_flame_flee_timer',
2500
],
[
'mega_flame_flee_radius',
10
],
[
'mega_flame_flee_speed',
20
],
[
'invincible_timer_ms',
9000
],
[
'return_to_base_duration_ms',
2000
],
[
'sync_dt_threshold',
0.2
],
[
'sync_slip_time',
0.1
],
[
'sync_epsilon',
1
],
[
'sync_coefficient',
0.1
],
[
'client_broadcast_timeout',
50
],
[
'draw_debug_location',
!1
],
[
'notice_duration_ms',
2000
],
[
'notice_offset_x',
0
],
[
'notice_offset_y',
0
],
[
'time_warning_duration_ms',
2000
],
[
'zoom_out_per_collectible_held',
0.5
],
[
'zoom_tween_time_ms',
1000
],
[
'verify_map_hash',
!1
],
[
'is_2018',
!1
]
];
for (const [b,
c]of Object.entries(a)) this.settings.push([`env_${ b }`,
c]);
Gu(this, {
}, !0)
}
update(a) {
Gu(this, a, !1)
}
get(a) {
return this.state.get(a)
}
set(a, b) {
this.state.set(a, b)
}
};
function Ju() {
}
Ju.prototype.Ue = function () {
};
Ju.prototype.g = function () {
};
function Ku() {
this.g = Y(0, 0);
this.i = Y(0, 0)
}
var Lu = [
];
function Mu() {
if (0 < Lu.length) {
var a = Lu.pop();
a.g.set(0, 0);
a.i.set(0, 0);
return a
}
return new Ku
}
Ku.prototype.hd = function () {
return 0 > this.i.x - this.g.x || 0 > this.i.y - this.g.y ? !1 : this.g.hd() && this.i.hd()
};
Ku.prototype.contains = function (a) {
var b;
return b = (b = (b = (b = this.g.x <= a.g.x) && this.g.y <= a.g.y) && a.i.x <= this.i.x) && a.i.y <= this.i.y
};
Ku.prototype.ud = function (a) {
return 0 < a.g.x - this.i.x || 0 < a.g.y - this.i.y || 0 < this.g.x - a.i.x ? !1 : 0 >= this.g.y - a.i.y
};
function Nu(a, b, c) {
a.g.x = Math.min(b.g.x, c.g.x);
a.g.y = Math.min(b.g.y, c.g.y);
a.i.x = Math.max(b.i.x, c.i.x);
a.i.y = Math.max(b.i.y, c.i.y)
};
function Ou() {
this.Hb = Y(0, 0);
this.Fb = Y(0, 0);
this.c = Y(0, 0);
this.vb = this.a = this.Vb = null
}
Ou.prototype.set = function (a) {
this.Hb.Ca(a.Hb);
this.Fb.Ca(a.Fb);
this.c.Ca(a.c);
this.Vb = a.Vb;
this.a = a.a;
this.vb = a.vb
};
function Pu(a, b, c) {
void 0 === c && (c = 0);
b.position.x = (1 - c) * a.Fb.x + c * a.c.x;
b.position.y = (1 - c) * a.Fb.y + c * a.c.y;
b.R.set((1 - c) * a.Vb + c * a.a);
c = b.R;
b.position.x -= c.T.x * a.Hb.x + c.U.x * a.Hb.y;
b.position.y -= c.T.y * a.Hb.x + c.U.y * a.Hb.y
}
Ou.prototype.advance = function (a) {
void 0 === a && (a = 0);
if (this.vb < a && 1 - this.vb > Number.MIN_VALUE) {
var b = (a - this.vb) / (1 - this.vb);
this.Fb.x = (1 - b) * this.Fb.x + b * this.c.x;
this.Fb.y = (1 - b) * this.Fb.y + b * this.c.y;
this.Vb = (1 - b) * this.Vb + b * this.a;
this.vb = a
}
};
function Qu(a) {
this.rb = a;
this.g = this.next = null
}
var Ru = [
];
Qu.prototype.Ac = function (a) {
this.g = a
};
Qu.prototype.La = function () {
return this.next
};
function Su() {
this.i = [
];
for (var a = 0; a <= Tu; a++) this.i[a] = null;
this.j = [
];
for (a = 0; a <= Tu; a++) this.j[a] = null;
this.g = {
}
}
Su.prototype.Pa = function (a) {
return this.i[a]
};
function Uu(a, b) {
var c = b.i;
if (null == a.g[c]) {
a.g[c] = [
];
for (var d = 0; d <= Tu; d++) a.g[c][d] = null;
Vu(a, b, c, Tu)
}
}
function Wu(a, b, c, d) {
c ? Vu(a, b, b.i, Xu) : Yu(a, b.i, Xu);
d ? Vu(a, b, b.i, Zu) : Yu(a, b.i, Zu)
}
function $u(a, b) {
b = b.i;
if (null != a.g[b]) {
for (var c = 0; c <= Tu; c++) Yu(a, b, c);
delete a.g[b]
}
}
function Yu(a, b, c) {
var d = a.g[b];
if (null != d && (b = d[c], null != b)) {
d[c] = null;
d = b.g;
var e = b.La();
null == d ? a.i[c] = e : d.next = e;
null == e ? a.j[c] = d : e.Ac(d);
Ru.push(b)
}
}
function Vu(a, b, c, d) {
c = a.g[c];
if (null == c[d]) {
if (0 < Ru.length) {
var e = Ru.pop();
e.next = null;
e.g = null;
e.rb = b;
b = e
} else b = new Qu(b);
c[d] = b;
b = a.j[d];
null != b ? (b.next = c[d], c[d].Ac(b)) : a.i[d] = c[d];
a.j[d] = c[d]
}
}
var Xu = 0,
Zu = 1,
Tu = 2;
function av(a) {
this.body = a;
this.g = this.next = null
}
av.prototype.Ac = function (a) {
this.g = a
};
av.prototype.La = function () {
return this.next
};
function bv() {
this.i = [
];
for (var a = 0; a <= cv; a++) this.i[a] = null;
this.j = [
];
for (a = 0; a <= cv; a++) this.j[a] = null;
this.g = {
}
}
bv.prototype.Pa = function (a) {
return this.i[a]
};
function dv(a, b) {
var c = b.getType(),
d = b.wa,
e = b.hc(),
f = b.isActive();
2 == c ? ev(a, b, d, fv) : gv(a, d, fv);
0 != c ? ev(a, b, d, hv) : gv(a, d, hv);
0 != c && f && e ? ev(a, b, d, iv) : gv(a, d, iv);
e ? ev(a, b, d, jv) : gv(a, d, jv);
f ? ev(a, b, d, kv) : gv(a, d, kv)
}
function gv(a, b, c) {
var d = a.g[b];
null != d && (b = d[c], null != b && (d[c] = null, d = b.g, b = b.La(), null == d ? a.i[c] = b : d.next = b, null == b ? a.j[c] = d : b.Ac(d)))
}
function ev(a, b, c, d) {
var e = a.g[c];
if (null == e) {
e = [
];
for (var f = 0; f <= cv; f++) e[f] = null;
a.g[c] = e
}
null == e[d] && (e[d] = new av(b), b = a.j[d], null != b ? b.next = e[d] : a.i[d] = e[d], e[d].Ac(b), a.j[d] = e[d])
}
var fv = 0,
hv = 1,
kv = 2,
iv = 3,
jv = 4,
cv = 5;
function lv() {
}
lv.prototype.Pa = function () {
return null
};
function mv(a) {
this.Ja = Mu();
this.parent = this.ac = this.Ib = null;
this.hb = a
}
var nv = [
];
function ov(a) {
'undefined' == typeof a && (a = null);
if (0 < nv.length) {
var b = nv.pop();
b.hb = a;
a = b.Ja;
a.g.set(0, 0);
a.i.set(0, 0);
return b
}
return new mv(a)
}
mv.prototype.destroy = function () {
this.hb = this.parent = this.ac = this.Ib = null;
nv.push(this)
};
function pv(a, b) {
this.H = 'Fixture' + qv++;
var c = b.filter,
d = new qo;
d.g = c.g;
d.i = c.i;
d.j = c.j;
this.v = d;
this.j = Mu();
this.O = Mu();
this.g = a;
this.Sa = b.g.fe();
this.u = b.i;
this.V = b.H;
this.va = b.va;
this.o = b.j;
this.i = null
}
pv.prototype.destroy = function () {
var a = this.j;
null != a && Lu.push(a)
};
function rv(a, b, c, d) {
if (a.i) {
a.Sa.Lc(a.j, c);
a.Sa.Lc(a.O, d);
Nu(a.j, a.j, a.O);
c = Rn(d.position, c.position);
d = a.i;
var e = b.u;
a = a.j;
Tn(null === d.Ib);
if (d.Ja.contains(a)) e = !1;
else {
sv(e, d);
var f = 0.1 + 2 * Math.abs(c.x),
g = 0.1 + 2 * Math.abs(c.y);
d.Ja.g.x = a.g.x - f;
d.Ja.g.y = a.g.y - g;
d.Ja.i.x = a.i.x + f;
d.Ja.i.y = a.i.y + g;
tv(e, d);
e = !0
}
e && b.i.push(d);
Z(c)
}
}
var qv = 0;
function uv(a) {
this.hb = a;
this.g = this.next = null
}
uv.prototype.Ac = function (a) {
this.g = a
};
uv.prototype.La = function () {
return this.next
};
function vv() {
this.j = this.i = null;
this.g = {
}
}
vv.prototype.Pa = function () {
return this.i
};
function wv(a, b) {
var c = b.H;
if (null == a.g[c]) {
b = new uv(b);
var d = a.j;
null != d ? d.next = b : a.i = b;
b.Ac(d);
a.j = b;
a.g[c] = b
}
}
function xv(a, b) {
b = b.H;
var c = a.g[b];
if (null != c) {
var d = c.g;
c = c.La();
null == d ? a.i = c : d.next = c;
null == c ? a.j = d : c.Ac(d);
delete a.g[b]
}
};
function yv(a, b) {
this.wa = 'Body' + zv++;
this.ta = new ko;
this.ta.position.Ca(a.position);
this.ta.R.set(a.angle);
this.ha = new Ou;
rn(this.ha.Hb);
this.ha.vb = 1;
this.ha.Vb = this.ha.a = a.angle;
this.ha.c.x = this.ta.R.T.x * this.ha.Hb.x + this.ta.R.U.x * this.ha.Hb.y;
this.ha.c.y = this.ta.R.T.y * this.ha.Hb.x + this.ta.R.U.y * this.ha.Hb.y;
this.ha.c.x += this.ta.position.x;
this.ha.c.y += this.ta.position.y;
this.ha.Fb.Ca(this.ha.c);
this.ka = un(a.V);
this.va = Y(0, 0);
this.v = a.v;
this.Da = a.H;
this.ya = a.i;
this.V = a.u;
this.u = a.active;
this.g = b;
this.Sb = null;
this.tb = new Su;
this.Na = new lv;
this.Aa = a.o;
this.Fa = a.O;
this.Ba = a.j;
this.O = this.Oa = 0;
this.o = a.type;
this.Lb = 2 == this.o ? 1 : 0;
this.Ma = 2 == this.o ? 1 : 0;
this.nb = this.j = 0;
this.Qa = a.g;
this.i = new vv;
this.H = [
]
}
function to(a, b) {
Tn(!a.g.i);
b = new pv(a, b);
if (a.u) {
var c = a.g.g.g;
b.Sa.Lc(b.j, a.ta);
b.i = Av(c, b.j, b)
}
wv(a.i, b);
b.g = a;
0 < b.u && Bv(a);
a.g.v = !0;
return b
}
q = yv.prototype;
q.destroy = function () {
Z(this.ka);
Z(this.va)
};
function ku(a, b) {
Tn(!a.g.i);
xv(a.i, b);
for (var c = a.tb.Pa(Tu); c; c = c.La()) b != c.rb.mb && b != c.rb.kb || a.g.g.destroy(c.rb);
if (a.u && null != b.i) {
c = a.g.g.g;
var d = b.i;
Ua(c.i, d);
sv(c.u, d);
d.destroy();
b.i = null
}
b.destroy();
Bv(a)
}
function An(a, b, c) {
Tn(!a.g.i);
a.ta.R.set(c);
a.ta.position.Ca(b);
b = a.ta.R;
var d = a.ha.Hb;
a.ha.c.x = b.T.x * d.x + b.U.x * d.y;
a.ha.c.y = b.T.y * d.x + b.U.y * d.y;
a.ha.c.x += a.ta.position.x;
a.ha.c.y += a.ta.position.y;
a.ha.Fb.Ca(a.ha.c);
a.ha.Vb = a.ha.a = c;
c = a.g.g.g;
for (b = a.i.Pa(); b; b = b.La()) rv(b.hb, c, a.ta, a.ta);
Cv(a.g.g)
}
q.setTransform = function (a) {
An(this, a.position, Math.atan2(a.R.T.y, a.R.T.x))
};
function Bn(a, b) {
0 != a.o && a.ka.Ca(b)
}
q.split = function (a) {
var b = un(this.ka),
c = this.Aa,
d = this.ha.c,
e = this.g,
f = new po;
f.type = this.getType();
f.i = this.ya;
f.angle = this.ha.a;
f.j = this.Ba;
f.o = this.Aa;
f.H = this.Da;
f.v = this.v;
f.active = this.u;
f.u = this.V;
f.O = this.Fa;
f.V.Ca(this.ka);
f.position.Ca(this.ta.position);
e = so(e, f);
for (f = this.i.Pa(); f; f = f.La()) {
var g = f.hb;
a(g) && (xv(this.i, g), wv(e.i, g))
}
Bv(this);
Bv(e);
a = e.ha.c;
g = Rn(this.ha.c, d);
f = Y( - c * g.y, c * g.x);
Z(g);
g = Y(b.x + f.x, b.y + f.y);
Z(f);
Bn(this, g);
Z(g);
a = Rn(a, d);
d = Y( - c * a.y, c * a.x);
Z(a);
a = Y(b.x + d.x, b.y +
d.y);
Z(d);
Bn(e, a);
Z(a);
Z(b);
0 != this.o && (this.Aa = c);
0 != e.o && (e.Aa = c);
Dv(this);
Dv(e);
return e
};
function Bv(a) {
a.Lb = 0;
a.Ma = 0;
a.j = 0;
a.nb = 0;
rn(a.ha.Hb);
if (0 != a.o && 1 != a.o) {
for (var b = Y(0, 0), c = a.i.Pa(); c; c = c.La()) {
var d = c.hb;
if (0 != d.u) {
var e = void 0;
0 < Gn.length ? (e = Gn.pop(), e.i = 0, rn(e.g), e.I = 0) : e = new Fn;
d.Sa.ye(e, d.u);
a.Lb += e.i;
b.x += e.g.x * e.i;
b.y += e.g.y * e.i;
a.j += e.I
}
}
0 < a.Lb ? (a.Ma = 1 / a.Lb, b.x *= a.Ma, b.y *= a.Ma) : (a.Lb = 1, a.Ma = 1);
0 < a.j && !a.Da ? (a.j -= a.Lb * (b.x * b.x + b.y * b.y), a.j *= a.Qa, Tn(0 < a.j), a.nb = 1 / a.j) : (a.j = 0, a.nb = 0);
c = un(a.ha.c);
a.ha.Hb.Ca(b);
a.ha.Fb.Ca(Qn(a.ta, a.ha.Hb));
a.ha.c.Ca(a.ha.Fb);
a.ka.x += a.Aa * - (a.ha.c.y - c.y);
a.ka.y += a.Aa * + (a.ha.c.x - c.x);
Z(b);
Z(c)
}
}
q.getType = function () {
return this.o
};
function Ev(a, b) {
if (a.V != b) for (a.V = b, a.O = 0, b || (rn(a.ka), a.Aa = 0, rn(a.va), a.Oa = 0), b = 0; b < a.H.length; b++) dv(a.H[b], a)
}
q.hc = function () {
return this.V
};
q.setActive = function (a) {
var b;
if (a != this.u) {
if (a) for (this.u = !0, a = this.g.g.g, b = this.i.Pa(); b; b = b.La()) {
var c = b.hb,
d = a;
c.Sa.Lc(c.j, this.ta);
c.i = Av(d, c.j, c)
} else {
this.u = !1;
a = this.g.g.g;
for (b = this.i.Pa(); b; b = b.La()) if (c = b.hb, null != c.i) {
d = a;
var e = c.i;
Ua(d.i, e);
sv(d.u, e);
e.destroy();
c.i = null
}
for (a = this.tb.Pa(Tu); a; a = a.La()) this.g.g.destroy(a.rb)
}
for (a = 0; a < this.H.length; a++) dv(this.H[a], this)
}
};
q.isActive = function () {
return this.u
};
function Dv(a) {
Fv.R.set(a.ha.Vb);
var b = Fv.R,
c = a.ha.Hb;
Fv.position.x = a.ha.Fb.x - (b.T.x * c.x + b.U.x * c.y);
Fv.position.y = a.ha.Fb.y - (b.T.y * c.x + b.U.y * c.y);
b = a.g.g.g;
for (c = a.i.Pa(); c; c = c.La()) rv(c.hb, b, Fv, a.ta)
}
function Gv(a) {
a.ta.R.set(a.ha.a);
var b = a.ta.R,
c = a.ha.Hb;
a.ta.position.x = a.ha.c.x - (b.T.x * c.x + b.U.x * c.y);
a.ta.position.y = a.ha.c.y - (b.T.y * c.x + b.U.y * c.y)
}
function Hv(a, b) {
if (2 != a.o && 2 != b.o) return !1;
for (a = a.Sb; a; a = a.next) if (a.Xb == b && 0 == a.Dc.Rf) return !1;
return !0
}
q.advance = function (a) {
this.ha.advance(a);
this.ha.c.Ca(this.ha.Fb);
this.ha.a = this.ha.Vb;
Gv(this)
};
var zv = 0,
Fv = new ko;
function Iv() {
this.j = this.i = this.o = this.g = 0
}
function Jv(a, b) {
a.g = b;
a.o = a.g & 255;
a.i = (a.g & 65280) >> 8 & 255;
a.j = (a.g & 16711680) >> 16 & 255;
a.u = (a.g & 4278190080) >> 24 & 255
}
Iv.prototype.set = function (a) {
Jv(this, a.g)
};
function Kv() {
this.g = null
}
function tv(a, b) {
if (null === a.g) a.g = b,
a.g.parent = null;
else {
var c = b.Ja;
c = Y((c.g.x + c.i.x) / 2, (c.g.y + c.i.y) / 2);
for (var d = a.g; null !== d.Ib; ) {
var e = d.Ib;
d = d.ac;
d = Math.abs((e.Ja.g.x + e.Ja.i.x) / 2 - c.x) + Math.abs((e.Ja.g.y + e.Ja.i.y) / 2 - c.y) < Math.abs((d.Ja.g.x + d.Ja.i.x) / 2 - c.x) + Math.abs((d.Ja.g.y + d.Ja.i.y) / 2 - c.y) ? e : d
}
Z(c);
c = d;
e = c.parent;
d = ov();
d.parent = e;
Nu(d.Ja, b.Ja, c.Ja);
if (e) for (c.parent.Ib == c ? e.Ib = d : e.ac = d, d.Ib = c, d.ac = b, c.parent = d, b.parent = d; e && !e.Ja.contains(d.Ja); ) Nu(e.Ja, e.Ib.Ja, e.ac.Ja),
d = e,
e = e.parent;
else d.Ib = c,
d.ac = b,
c.parent = d,
b.parent = d,
a.g = d
}
}
function sv(a, b) {
if (b == a.g) a.g = null;
else {
var c = b.parent,
d = c.parent;
b = c.Ib == b ? c.ac : c.Ib;
if (d) for (d.Ib == c ? d.Ib = b : d.ac = b, b.parent = d; d; ) {
a = d.Ja;
Nu(d.Ja, d.Ib.Ja, d.ac.Ja);
if (a.contains(d.Ja)) break;
d = d.parent
} else a.g = b,
b.parent = null;
c.destroy()
}
};
function Lv() {
this.u = new Kv;
this.i = [
];
this.g = this.v = this.o = this.j = null
}
function Av(a, b, c) {
var d = a.u;
c = ov(c);
c.Ja.g.x = b.g.x - 0.1;
c.Ja.g.y = b.g.y - 0.1;
c.Ja.i.x = b.i.x + 0.1;
c.Ja.i.y = b.i.y + 0.1;
tv(d, c);
a.i.push(c);
return c
}
Lv.prototype.ud = function (a, b) {
return a.Ja.ud(b.Ja)
};
function Mv(a, b) {
a.j = null;
a.o = null;
for (a.v = b; 0 < a.i.length; ) {
a.g = a.i.pop();
var c = a.u;
b = a.H;
var d = a.g.Ja,
e = a;
if (null !== c.g) {
var f = [
];
for (f.push(c.g); 0 < f.length; ) if (c = f.pop(), c.Ja.ud(d)) if (null === c.Ib) {
if (!b.call(e, c.hb)) break
} else f.push(c.Ib),
f.push(c.ac)
}
}
a.j = null;
a.o = null;
a.v = null;
a.g = null
}
Lv.prototype.H = function (a) {
a == this.g.hb || this.g.hb == this.j && a == this.o || this.g.hb == this.o && a == this.j || (this.v(this.g.hb, a), this.j = this.g.hb, this.o = a);
return !0
};
function Nv(a, b) {
a = a.v;
b = b.v;
return a.j == b.j && 0 != a.j ? 0 < a.j : 0 != (a.i & b.g) && 0 != (a.g & b.i)
};
function Ov() {
this.g = Y(0, 0);
this.id = new Iv
}
Ov.prototype.set = function (a) {
this.g.Ca(a.g);
this.id.set(a.id)
};
function Pv() {
this.Ha = Y(0, 0);
this.kc = new Iv;
this.yc = this.xc = 0
}
Pv.prototype.reset = function () {
rn(this.Ha);
this.yc = this.xc = 0;
Jv(this.kc, 0)
};
Pv.prototype.set = function (a) {
this.Ha.Ca(a.Ha);
this.xc = a.xc;
this.yc = a.yc;
this.kc.set(a.kc)
};
function Qv() {
this.j = this.g = 0;
this.Ea = [
];
for (var a = 0; 2 > a; a++) this.Ea[a] = new Pv;
this.i = Y(0, 0);
this.Ha = Y(0, 0)
}
Qv.prototype.reset = function () {
for (var a = 0; 2 > a; a++) this.Ea[a].reset();
rn(this.i);
rn(this.Ha);
this.g = this.j = 0
};
Qv.prototype.set = function (a) {
this.g = a.g;
for (var b = 0; 2 > b; b++) this.Ea[b].set(a.Ea[b]);
this.i.Ca(a.i);
this.Ha.Ca(a.Ha);
this.j = a.j
};
function Rv(a, b, c, d) {
var e = 0,
f = b[0].g,
g = b[1].g,
h = c.x * f.x + c.y * f.y - d;
c = c.x * g.x + c.y * g.y - d;
0 >= h && a[e++].set(b[0]);
0 >= c && a[e++].set(b[1]);
0 > h * c && (c = h / (h - c), d = a[e].g, d.x = f.x + c * (g.x - f.x), d.y = f.y + c * (g.y - f.y), a[e].id = 0 < h ? b[0].id : b[1].id, e++);
return e
}
function Sv(a, b, c, d, e) {
for (var f = b.R.T.x * a.i[c].x + b.R.U.x * a.i[c].y, g = b.R.T.y * a.i[c].x + b.R.U.y * a.i[c].y, h = e.R.T.x * f + e.R.T.y * g, k = e.R.U.x * f + e.R.U.y * g, l = 0, m = Number.MAX_VALUE, n = 0; n < d.o; n++) {
var w = d.g[n].x * h + d.g[n].y * k;
w < m && (m = w, l = n)
}
return (e.position.x + (e.R.T.x * d.g[l].x + e.R.U.x * d.g[l].y) - (b.position.x + (b.R.T.x * a.g[c].x + b.R.U.x * a.g[c].y))) * f + (e.position.y + (e.R.T.y * d.g[l].x + e.R.U.y * d.g[l].y) - (b.position.y + (b.R.T.y * a.g[c].x + b.R.U.y * a.g[c].y))) * g
}
function Tv(a, b, c, d) {
var e = d.position.x + (d.R.T.x * c.u.x + d.R.U.x * c.u.y),
f = d.position.y + (d.R.T.y * c.u.x + d.R.U.y * c.u.y);
e -= b.position.x + (b.R.T.x * a.u.x + b.R.U.x * a.u.y);
f -= b.position.y + (b.R.T.y * a.u.x + b.R.U.y * a.u.y);
var g = e * b.R.T.x + f * b.R.T.y;
f = e * b.R.U.x + f * b.R.U.y;
e = 0;
for (var h = - Number.MAX_VALUE, k = 0; k < a.o; ++k) {
var l = a.i[k].x * g + a.i[k].y * f;
l > h && (h = l, e = k)
}
g = Sv(a, b, e, c, d);
k = e - 1;
0 > k && (k = a.o - 1);
f = Sv(a, b, k, c, d);
l = e + 1;
l >= a.o && (l = 0);
h = Sv(a, b, l, c, d);
if (f > g && f > h) for (; ; ) if (e = k - 1, 0 > e && (e = a.o - 1), g = Sv(a, b, e, c, d), g > f) k = e,
f = g;
else break;
else if (h > g) for (k = l, f = h; ; ) if (e = k + 1, e >= a.o && (e = 0), g = Sv(a, b, e, c, d), g > f) k = e,
f = g;
else break;
else k = e,
f = g;
return {
Ve: k,
Qd: f
}
}
var Uv = [
new Ov,
new Ov
],
Vv = [
new Ov,
new Ov
],
Wv = [
new Ov,
new Ov
],
Xv = Y(0, 0),
Yv = Y(0, 0),
Zv = Y(0, 0),
$v = Y(0, 0),
aw = Y(0, 0),
bw = Y(0, 0),
cw = Y(0, 0),
dw = Y(0, 0);
function ew() {
this.Ha = Y(0, 0);
this.g = Y(0, 0);
this.j = this.i = null
}
ew.prototype.evaluate = function (a, b) {
var c = 0;
switch (this.o) {
case 1:
var d = Pn(a.R, this.g),
e = sn(this.g);
c = Pn(b.R, e);
Z(e);
var f = ho(this.i, d);
Z(d);
d = ho(this.j, c);
Z(c);
a = Qn(a, f);
b = Qn(b, d);
c = (b.x - a.x) * this.g.x + (b.y - a.y) * this.g.y;
Z(a);
Z(b);
break;
case 2:
e = On(a.R, this.g);
f = sn(e);
c = Pn(b.R, f);
Z(f);
d = ho(this.j, c);
Z(c);
a = Qn(a, this.Ha);
b = Qn(b, d);
c = (b.x - a.x) * e.x + (b.y - a.y) * e.y;
Z(e);
Z(a);
Z(b);
break;
case 4:
e = On(b.R, this.g);
f = sn(e);
d = Pn(a.R, f);
Z(f);
f = ho(this.i, d);
Z(d);
a = Qn(a, f);
b = Qn(b, this.Ha);
c = (a.x - b.x) * e.x + (a.y - b.y) * e.y;
Z(e);
Z(a);
Z(b);
break;
default:
Tn(!1)
}
return c
};
var fw = 0,
gw = 0,
hw = 0,
iw = new io,
jw = new eo,
kw = new ko,
lw = new ko,
mw = new ew,
nw = new fo;
function ow(a, b) {
this.i = 'Contact' + pw++;
this.g = new Qv;
this.u = new Qv;
this.o = !1;
var c = a.g,
d = b.g;
this.ya = 2 != c.getType() || c.v || 2 != d.getType() || d.v;
this.va = a.o || b.o;
this.V = !1;
this.mb = a;
this.kb = b;
this.Fc = null;
this.v = !0;
this.H = c.tb;
this.O = d.tb;
this.wa = d.g.tb;
qw(this)
}
ow.prototype.reset = function (a, b) {
this.g.reset();
this.u.reset();
this.o = !1;
var c = a.g,
d = b.g;
this.ya = 2 != c.getType() || c.v || 2 != d.getType() || d.v;
this.va = a.o || b.o;
this.V = !1;
this.mb = a;
this.kb = b;
this.v = !0;
this.H = c.tb;
this.O = d.tb;
this.wa = d.g.tb;
qw(this)
};
function qw(a) {
Uu(a.H, a);
Uu(a.O, a);
Uu(a.wa, a);
rw(a)
}
function rw(a) {
var b = !1,
c = !1;
!a.va && a.v && (a.o && (b = !0), a.ya && (c = !0));
Wu(a.H, a, b, c);
Wu(a.O, a, b, c);
Wu(a.wa, a, b, c)
}
function sw(a, b) {
var c = a.mb.g;
return c != b ? c : a.kb.g
}
ow.prototype.update = function (a) {
var b = this.u;
this.u = this.g;
this.g = b;
this.v = !0;
var c = !1;
b = this.o;
var d = this.mb.g,
e = this.kb.g,
f = this.mb.j.ud(this.kb.j);
if (this.va) {
if (f) {
c = this.mb.Sa;
d = d.ta;
f = this.kb.Sa;
var g = e.ta;
e = new eo;
e.g = new go;
e.g.set(c);
e.i = new go;
e.i.set(f);
e.j = d;
e.o = g;
e.u = !0;
d = new io;
d.count = 0;
c = new fo;
ao(c, d, e);
Z(c.g);
Z(c.i);
c = c.j < 10 * Number.MIN_VALUE
}
this.g.g = 0
} else {
this.ya = 2 != d.getType() || d.v || 2 != e.getType() || e.v;
if (f) for (this.evaluate(), c = 0 < this.g.g, f = 0; f < this.g.g; f++) {
g = this.g.Ea[f];
g.xc = 0;
for (var h = g.yc = 0; h < this.u.g; h++) {
var k = this.u.Ea[h];
if (k.kc.g == g.kc.g) {
g.xc = k.xc;
g.yc = k.yc;
break
}
}
} else this.g.g = 0;
c != b && (Ev(d, !0), Ev(e, !0))
}
this.o = c;
c != b && rw(this);
!b && c && a.Ue(this)
};
ow.prototype.evaluate = function () {
};
var tw = new function () {
this.g = new go;
this.i = new go;
this.j = new Ou;
this.o = new Ou
},
pw = 0;
function uw(a, b) {
ow.call(this, a, b)
}
ta(uw, ow);
uw.prototype.reset = function (a, b) {
uw.Tb.reset.call(this, a, b)
};
uw.prototype.evaluate = function () {
var a = this.g,
b = this.mb.Sa,
c = this.mb.g.ta,
d = this.kb.Sa,
e = this.kb.g.ta;
a.g = 0;
var f = e.position.x + (e.R.T.x * d.g.x + e.R.U.x * d.g.y) - (c.position.x + (c.R.T.x * b.g.x + c.R.U.x * b.g.y));
c = e.position.y + (e.R.T.y * d.g.x + e.R.U.y * d.g.y) - (c.position.y + (c.R.T.y * b.g.x + c.R.U.y * b.g.y));
e = b.j + d.j;
f * f + c * c > e * e || (a.j = 1, a.Ha.Ca(b.g), rn(a.i), a.g = 1, a.Ea[0].Ha.Ca(d.g), Jv(a.Ea[0].kc, 0))
};
function vw() {
};
function ww(a, b) {
ow.call(this, a, b)
}
ta(ww, ow);
ww.prototype.reset = function (a, b) {
ww.Tb.reset.call(this, a, b)
};
ww.prototype.evaluate = function () {
};
function xw(a, b) {
Tn(a.Sa instanceof lo);
Tn(b.Sa instanceof Qt);
ow.call(this, a, b)
}
ta(xw, ow);
xw.prototype.reset = function (a, b) {
Tn(a.Sa instanceof lo);
Tn(b.Sa instanceof Qt);
xw.Tb.reset.call(this, a, b)
};
xw.prototype.evaluate = function () {
a: {
var a = this.g,
b = this.mb.Sa,
c = this.mb.g.ta,
d = this.kb.Sa,
e = this.kb.g.ta;
a.g = 0;
var f = e.position.x + (e.R.T.x * d.g.x + e.R.U.x * d.g.y) - c.position.x,
g = e.position.y + (e.R.T.y * d.g.x + e.R.U.y * d.g.y) - c.position.y;
e = f * c.R.T.x + g * c.R.T.y;
c = f * c.R.U.x + g * c.R.U.y;
f = 0;
g = - Number.MAX_VALUE;
for (var h = b.j + d.j, k = 0; k < b.o; ++k) {
var l = b.i[k].x * (e - b.g[k].x) + b.i[k].y * (c - b.g[k].y);
if (l > h) break a;
l > g && (g = l, f = k)
}
l = f + 1;
l >= b.o && (l = 0);
k = b.g[f];
var m = b.g[l];
if (g < Number.MIN_VALUE) a.g = 1,
a.j = 2,
a.i.Ca(b.i[f]),
a.Ha.x = 0.5 * (k.x + m.x),
a.Ha.y = 0.5 * (k.y + m.y);
else if (0 >= (e - k.x) * (m.x - k.x) + (c - k.y) * (m.y - k.y)) {
if ((e - k.x) * (e - k.x) + (c - k.y) * (c - k.y) > h * h) break a;
a.g = 1;
a.j = 2;
a.i.x = e - k.x;
a.i.y = c - k.y;
xn(a.i);
a.Ha.Ca(k)
} else if (0 >= (e - m.x) * (k.x - m.x) + (c - m.y) * (k.y - m.y)) {
if ((e - m.x) * (e - m.x) + (c - m.y) * (c - m.y) > h * h) break a;
a.g = 1;
a.j = 2;
a.i.x = e - m.x;
a.i.y = c - m.y;
xn(a.i);
a.Ha.Ca(m)
} else {
l = 0.5 * (k.x + m.x);
k = 0.5 * (k.y + m.y);
g = (e - l) * b.i[f].x + (c - k) * b.i[f].y;
if (g > h) break a;
a.g = 1;
a.j = 2;
a.i.x = b.i[f].x;
a.i.y = b.i[f].y;
xn(a.i);
a.Ha.set(l, k)
}
a.Ea[0].Ha.Ca(d.g);
Jv(a.Ea[0].kc, 0)
}
};
function yw(a, b) {
Tn(a.Sa instanceof lo);
Tn(!1);
ow.call(this, a, b)
}
ta(yw, ow);
yw.prototype.reset = function (a, b) {
Tn(a.Sa instanceof lo);
Tn(!1);
yw.Tb.reset.call(this, a, b)
};
yw.prototype.evaluate = function () {
};
function zw(a, b) {
ow.call(this, a, b)
}
ta(zw, ow);
zw.prototype.reset = function (a, b) {
zw.Tb.reset.call(this, a, b)
};
zw.prototype.evaluate = function () {
var a = this.g,
b = this.mb.Sa,
c = this.mb.g.ta,
d = this.kb.Sa,
e = this.kb.g.ta;
a.g = 0;
var f = b.j + d.j,
g = Tv(b, c, d, e);
if (!(g.Qd > f)) {
var h = Tv(d, e, b, c);
if (!(h.Qd > f)) {
var k = b,
l = d,
m = c,
n = e,
w = 0,
v = g.Ve;
a.j = 2;
h.Qd > 0.98 * g.Qd + 0.001 && (k = d, l = b, m = e, n = c, v = h.Ve, a.j = 4, w = 1);
b = v;
c = n;
e = m.R.T.x * k.i[b].x + m.R.U.x * k.i[b].y;
g = m.R.T.y * k.i[b].x + m.R.U.y * k.i[b].y;
d = c.R.T.x * e + c.R.T.y * g;
g = c.R.U.x * e + c.R.U.y * g;
e = d;
d = 0;
h = Number.MAX_VALUE;
for (var A = 0; A < l.o; A++) {
var p = e * l.i[A].x + g * l.i[A].y;
p < h && (h = p, d = A)
}
e = d + 1;
e >= l.o && (e = 0);
Uv[0].g.x = c.position.x + (c.R.T.x * l.g[d].x + c.R.U.x * l.g[d].y);
Uv[0].g.y = c.position.y + (c.R.T.y * l.g[d].x + c.R.U.y * l.g[d].y);
g = Uv[0].id;
g.o = b;
g.g = g.g & 4294967040 | g.o & 255;
g = Uv[0].id;
g.i = d;
g.g = g.g & 4294902015 | g.i << 8 & 65280;
d = Uv[0].id;
d.j = 0;
d.g = d.g & 4278255615 | d.j << 16 & 16711680;
Uv[1].g.x = c.position.x + (c.R.T.x * l.g[e].x + c.R.U.x * l.g[e].y);
Uv[1].g.y = c.position.y + (c.R.T.y * l.g[e].x + c.R.U.y * l.g[e].y);
l = Uv[1].id;
l.o = b;
l.g = l.g & 4294967040 | l.o & 255;
b = Uv[1].id;
b.i = e;
b.g = b.g & 4294902015 | b.i << 8 & 65280;
b = Uv[1].id;
b.j = 1;
b.g = b.g & 4278255615 | b.j << 16 & 16711680;
b = k.g[v];
k = v + 1 < k.o ? k.g[v + 1] : k.g[0];
Xv.set(k.x - b.x, k.y - b.y);
xn(Xv);
Yv.x = Xv.y;
Yv.y = - Xv.x;
Zv.set(0.5 * (b.x + k.x), 0.5 * (b.y + k.y));
aw.x = m.R.T.x * Xv.x + m.R.U.x * Xv.y;
aw.y = m.R.T.y * Xv.x + m.R.U.y * Xv.y;
bw.x = - aw.x;
bw.y = - aw.y;
$v.x = aw.y;
$v.y = - aw.x;
cw.x = m.position.x + (m.R.T.x * b.x + m.R.U.x * b.y);
cw.y = m.position.y + (m.R.T.y * b.x + m.R.U.y * b.y);
dw.x = m.position.x + (m.R.T.x * k.x + m.R.U.x * k.y);
dw.y = m.position.y + (m.R.T.y * k.x + m.R.U.y * k.y);
if (!(2 > Rv(Vv, Uv, bw, - aw.x * cw.x - aw.y * cw.y + f) || 2 > Rv(Wv, Vv, aw, aw.x * dw.x +
aw.y * dw.y + f))) {
a.i.Ca(Yv);
a.Ha.Ca(Zv);
m = $v.x * cw.x + $v.y * cw.y;
for (v = k = 0; 2 > v; ++v) $v.x * Wv[v].g.x + $v.y * Wv[v].g.y - m <= f && (b = Wv[v].g.x - n.position.x, l = Wv[v].g.y - n.position.y, a.Ea[k].Ha.x = b * n.R.T.x + l * n.R.T.y, a.Ea[k].Ha.y = b * n.R.U.x + l * n.R.U.y, a.Ea[k].kc.set(Wv[v].id), b = a.Ea[k].kc, b.u = w, b.g = b.g & 16777215 | b.u << 24 & 4278190080, k++);
a.g = k
}
}
}
};
function Aw() {
this.g = {
};
this.i = {
};
Bw(this, uw, 'CircleShape', 'CircleShape');
Bw(this, xw, 'PolygonShape', 'CircleShape');
Bw(this, zw, 'PolygonShape', 'PolygonShape');
Bw(this, ww, 'EdgeShape', 'CircleShape');
Bw(this, yw, 'PolygonShape', 'EdgeShape')
}
function Bw(a, b, c, d) {
a.i[c] = a.i[c] || {
};
a.i[c][d] = a.i[c][d] || [
];
a.g[c] = a.g[c] || {
};
a.g[c][d] = new vw;
a.g[c][d].tc = b;
a.g[c][d].sf = !0;
c != d && (a.g[d] = a.g[d] || {
}, a.g[d][c] = new vw, a.g[d][c].tc = b, a.g[d][c].sf = !1)
}
Aw.prototype.create = function (a, b) {
var c = a.Sa.getTypeName(),
d = b.Sa.getTypeName(),
e = this.g[c][d],
f = e.tc;
return null != f ? e.sf ? 0 < this.i[c][d].length ? (c = this.i[c][d].pop(), c.reset(a, b), c) : new f(a, b) : 0 < this.i[d][c].length ? (c = this.i[d][c].pop(), c.reset(b, a), c) : new f(b, a) : null
};
Aw.prototype.destroy = function (a) {
var b = a.mb.Sa.getTypeName(),
c = a.kb.Sa.getTypeName();
this.i[b][c].push(a)
};
function Cw(a) {
this.o = a;
this.i = new Ju;
this.j = new Aw;
this.g = new Lv
}
function Cv(a) {
Mv(a.g, function (b, c) {
a: {
var d = b.g,
e = c.g;
if (d != e && Hv(e, d) && Nv(b, c)) {
for (d = e.tb.Pa(Tu); d; d = d.La()) if (e = d.rb.mb, e == b) {
if (e = d.rb.kb, e == c) break a
} else if (e == c && (e = d.rb.kb, e == b)) break a;
a.j.create(b, c)
}
}
})
}
Cw.prototype.destroy = function (a) {
var b = a.mb.g,
c = a.kb.g;
0 < a.g.g && (Ev(b, !0), Ev(c, !0));
$u(a.H, a);
$u(a.O, a);
$u(a.wa, a);
this.j.destroy(a)
};
new function () {
this.position = Y(0, 0);
Y(0, 0);
Y(0, 0);
this.id = new Iv
};
function Dw() {
this.u = Y(0, 0);
this.i = Y(0, 0);
this.j = Y(0, 0);
this.o = this.g = 0
}
Dw.prototype.reset = function () {
this.u.set(0, 0);
this.i.set(0, 0);
this.j.set(0, 0);
this.o = this.g = 0
};
function Ew() {
this.O = Y(0, 0);
this.v = Y(0, 0);
this.o = Y(0, 0);
this.V = Kn();
this.K = Kn();
this.j = [
];
for (var a = 0; 2 > a; a++) this.j[a] = new Dw
};
function Fw() {
this.g = Y(0, 0);
this.i = [
];
this.Ea = [
];
for (var a = 0; 2 > a; a++) this.Ea[a] = Y(0, 0)
}
Fw.prototype.j = function (a) {
var b = a.g.ta.R,
c = a.v,
d = a.g.ta.position.x + (b.T.x * c.x + b.U.x * c.y),
e = a.g.ta.position.y + (b.T.y * c.x + b.U.y * c.y);
b = a.i.ta.R;
c = a.j[0].u;
var f = a.i.ta.position.x + (b.T.x * c.x + b.U.x * c.y);
b = a.i.ta.position.y + (b.T.y * c.x + b.U.y * c.y);
c = f - d;
var g = b - e,
h = c * c + g * g;
h > Xn ? (h = Math.sqrt(h), this.g.x = c / h, this.g.y = g / h) : (this.g.x = 1, this.g.y = 0);
this.Ea[0].x = 0.5 * (d + f);
this.Ea[0].y = 0.5 * (e + b);
this.i[0] = c * this.g.x + g * this.g.y - a.radius
};
Fw.prototype.o = function (a) {
this.g.x = a.g.ta.R.T.x * a.O.x + a.g.ta.R.U.x * a.O.y;
this.g.y = a.g.ta.R.T.y * a.O.x + a.g.ta.R.U.y * a.O.y;
for (var b = a.g.ta.position.x + (a.g.ta.R.T.x * a.v.x + a.g.ta.R.U.x * a.v.y), c = a.g.ta.position.y + (a.g.ta.R.T.y * a.v.x + a.g.ta.R.U.y * a.v.y), d = 0; d < a.u; d++) {
var e = a.i.ta.position.x + (a.i.ta.R.T.x * a.j[d].u.x + a.i.ta.R.U.x * a.j[d].u.y),
f = a.i.ta.position.y + (a.i.ta.R.T.y * a.j[d].u.x + a.i.ta.R.U.y * a.j[d].u.y);
this.i[d] = (e - b) * this.g.x + (f - c) * this.g.y - a.radius;
this.Ea[d].x = e;
this.Ea[d].y = f
}
};
Fw.prototype.u = function (a) {
this.g.x = a.i.ta.R.T.x * a.O.x + a.i.ta.R.U.x * a.O.y;
this.g.y = a.i.ta.R.T.y * a.O.x + a.i.ta.R.U.y * a.O.y;
for (var b = a.i.ta.position.x + (a.i.ta.R.T.x * a.v.x + a.i.ta.R.U.x * a.v.y), c = a.i.ta.position.y + (a.i.ta.R.T.y * a.v.x + a.i.ta.R.U.y * a.v.y), d = 0; d < a.u; d++) {
var e = a.g.ta.position.x + (a.g.ta.R.T.x * a.j[d].u.x + a.g.ta.R.U.x * a.j[d].u.y),
f = a.g.ta.position.y + (a.g.ta.R.T.y * a.j[d].u.x + a.g.ta.R.U.y * a.j[d].u.y);
this.i[d] = (e - b) * this.g.x + (f - c) * this.g.y - a.radius;
this.Ea[d].set(e, f)
}
this.g.x *= - 1;
this.g.y *= - 1
};
function Gw() {
this.reset(0, 0, 0, 0, !0)
}
Gw.prototype.reset = function (a, b, c, d, e) {
this.g = a;
var f = 0;
0 < a && (f = 1 / a);
this.i = f;
this.u = b;
this.j = c;
this.o = d;
this.v = e
};
function Hw() {
this.g = [
];
this.i = 0
}
function Iw(a, b, c) {
for (a.i = c; a.g.length < a.i; ) a.g[a.g.length] = new Ew;
for (var d = 0; d < c; d++) {
var e = b[d],
f = e.mb,
g = e.kb,
h = f.Sa.j,
k = g.Sa.j,
l = f.g,
m = g.g;
e = e.g;
var n = Math.sqrt(f.V * g.V);
f = f.va;
g = g.va;
var w = f > g ? f : g;
g = l.ka.x;
f = l.ka.y;
var v = m.ka.x,
A = m.ka.y,
p = l.Aa,
u = m.Aa;
Tn(0 < e.g);
var C = e,
G = l.ta,
y = h,
M = m.ta,
D = k,
K = Jw;
if (0 != C.g) switch (C.j) {
case 1:
var x = G.R;
var z = C.Ha;
var T = G.position.x + x.T.x * z.x + x.U.x * z.y;
G = G.position.y + x.T.y * z.x + x.U.y * z.y;
x = M.R;
z = C.Ea[0].Ha;
C = M.position.x + x.T.x * z.x + x.U.x * z.y;
M = M.position.y + x.T.y * z.x + x.U.y * z.y;
x = C - T;
z = M - G;
var na = x * x + z * z;
na > Xn ? (na = Math.sqrt(na), K.g.x = x / na, K.g.y = z / na) : (K.g.x = 1, K.g.y = 0);
x = G + y * K.g.y;
M -= D * K.g.y;
K.Ea[0].x = 0.5 * (T + y * K.g.x + (C - D * K.g.x));
K.Ea[0].y = 0.5 * (x + M);
break;
case 2:
x = G.R;
z = C.i;
na = x.T.x * z.x + x.U.x * z.y;
var bc = x.T.y * z.x + x.U.y * z.y;
x = G.R;
z = C.Ha;
var Xe = G.position.x + x.T.x * z.x + x.U.x * z.y;
var Ye = G.position.y + x.T.y * z.x + x.U.y * z.y;
K.g.x = na;
K.g.y = bc;
for (T = 0; T < C.g; T++) {
x = M.R;
z = C.Ea[T].Ha;
var Wc = M.position.x + x.T.x * z.x + x.U.x * z.y;
x = M.position.y + x.T.y * z.x + x.U.y * z.y;
K.Ea[T].x = Wc + 0.5 * (y - (Wc - Xe) * na - (x - Ye) * bc - D) * na;
K.Ea[T].y = x + 0.5 * (y - (Wc - Xe) * na - (x - Ye) * bc - D) * bc
}
break;
case 4:
for (x = M.R, z = C.i, na = x.T.x * z.x + x.U.x * z.y, bc = x.T.y * z.x + x.U.y * z.y, x = M.R, z = C.Ha, Xe = M.position.x + x.T.x * z.x + x.U.x * z.y, Ye = M.position.y + x.T.y * z.x + x.U.y * z.y, K.g.x = - na, K.g.y = - bc, T = 0; T < C.g; T++) x = G.R,
z = C.Ea[T].Ha,
Wc = G.position.x + x.T.x * z.x + x.U.x * z.y,
x = G.position.y + x.T.y * z.x + x.U.y * z.y,
K.Ea[T].x = Wc + 0.5 * (D - (Wc - Xe) * na - (x - Ye) * bc - y) * na,
K.Ea[T].y = x + 0.5 * (D - (Wc - Xe) * na - (x - Ye) * bc - y) * bc
}
D = Jw.g.x;
K = Jw.g.y;
y = a.g[d];
y.g = l;
y.i = m;
y.wa = e;
y.o.x = D;
y.o.y = K;
y.u = e.g;
y.H = n;
y.va = w;
y.O.x = e.i.x;
y.O.y = e.i.y;
y.v.x = e.Ha.x;
y.v.y = e.Ha.y;
y.radius = h + k;
y.type = e.j;
for (h = 0; h < y.u; ++h) n = e.Ea[h],
k = y.j[h],
k.g = n.xc,
k.o = n.yc,
k.u.Ca(n.Ha),
n = k.i.x = Jw.Ea[h].x - l.ha.c.x,
w = k.i.y = Jw.Ea[h].y - l.ha.c.y,
M = k.j.x = Jw.Ea[h].x - m.ha.c.x,
T = k.j.y = Jw.Ea[h].y - m.ha.c.y,
x = n * K - w * D,
z = M * K - T * D,
x *= x,
z *= z,
k.V = 1 / (l.Ma + m.Ma + l.nb * x + m.nb * z),
C = l.Lb * l.Ma + m.Lb * m.Ma,
C += l.Lb * l.nb * x + m.Lb * m.nb * z,
k.H = 1 / C,
z = K,
C = - D,
x = n * C - w * z,
z = M * C - T * z,
x *= x,
z *= z,
k.O = 1 / (l.Ma + m.Ma + l.nb * x + m.nb * z),
k.v = 0,
n = y.o.x * (v + - u * T - g - - p * w) + y.o.y * (A + u * M - f - p * n),
- 1 > n && (k.v += - y.va * n);
2 == y.u && (A = y.j[0], v = y.j[1], e = l.Ma, l = l.nb, g = m.Ma, m = m.nb, f = A.i.x * K - A.i.y * D, A = A.j.x * K - A.j.y * D, p = v.i.x * K - v.i.y * D, h = v.j.x * K - v.j.y * D, v = e + g + l * f * f + m * A * A, u = e + g + l * p * p + m * h * h, m = e + g + l * f * p + m * A * h, v * v < 100 * (v * u - m * m) ? (y.K.T.set(v, m), y.K.U.set(m, u), m = y.K, l = y.V, e = m.T.x * m.U.y - m.U.x * m.T.y, 0 !== e && (e = 1 / e), l.T.x = e * m.U.y, l.U.x = - e * m.U.x, l.T.y = - e * m.T.y, l.U.y = e * m.T.x) : y.u = 1)
}
}
function Kw(a) {
for (var b = 0; b < a.i; b++) {
for (var c = a.g[b], d = c.o.x, e = c.o.y, f = 0; f < c.u; f++) {
var g = c,
h = c.j[f],
k = g.o.y,
l = - g.o.x,
m = g.H * h.g;
m = Sn(h.o - h.O * ((g.i.ka.x - g.i.Aa * h.j.y - g.g.ka.x + g.g.Aa * h.i.y) * k + (g.i.ka.y + g.i.Aa * h.j.x - g.g.ka.y - g.g.Aa * h.i.x) * l), - m, m);
var n = m - h.o;
k *= n;
l *= n;
g.g.ka.x -= g.g.Ma * k;
g.g.ka.y -= g.g.Ma * l;
g.g.Aa -= g.g.nb * (h.i.x * l - h.i.y * k);
g.i.ka.x += g.i.Ma * k;
g.i.ka.y += g.i.Ma * l;
g.i.Aa += g.i.nb * (h.j.x * l - h.j.y * k);
h.o = m
}
if (1 == c.u) f = c.j[0],
g = f.g - f.V * ((c.i.ka.x - c.i.Aa * f.j.y - c.g.ka.x + c.g.Aa * f.i.y) * d + (c.i.ka.y +
c.i.Aa * f.j.x - c.g.ka.y - c.g.Aa * f.i.x) * e - f.v),
g = 0 < g ? g : 0,
h = g - f.g,
d *= h,
e *= h,
c.g.ka.x -= c.g.Ma * d,
c.g.ka.y -= c.g.Ma * e,
c.g.Aa -= c.g.nb * (f.i.x * e - f.i.y * d),
c.i.ka.x += c.i.Ma * d,
c.i.ka.y += c.i.Ma * e,
c.i.Aa += c.i.nb * (f.j.x * e - f.j.y * d),
f.g = g;
else for (f = c.j[0], g = c.j[1], h = f.g, l = g.g, m = (c.i.ka.x - c.i.Aa * f.j.y - c.g.ka.x + c.g.Aa * f.i.y) * d + (c.i.ka.y + c.i.Aa * f.j.x - c.g.ka.y - c.g.Aa * f.i.x) * e - f.v, e = (c.i.ka.x - c.i.Aa * g.j.y - c.g.ka.x + c.g.Aa * g.i.y) * d + (c.i.ka.y + c.i.Aa * g.j.x - c.g.ka.y - c.g.Aa * g.i.x) * e - g.v, m -= c.K.T.x * h + c.K.U.x * l, e -= c.K.T.y * h + c.K.U.y * l; ; ) {
d = - (c.V.T.x * m + c.V.U.x * e);
if (0 <= d && (k = - (c.V.T.y * m + c.V.U.y * e), 0 <= k)) {
Lw(c, f, g, d - h, k - l);
f.g = d;
g.g = k;
break
}
d = - f.V * m;
if (0 <= d && 0 <= c.K.T.y * d + e) {
Lw(c, f, g, d - h, - l);
f.g = d;
g.g = 0;
break
}
d = - g.V * e;
if (0 <= d && 0 <= c.K.U.x * d + m) {
Lw(c, f, g, - h, d - l);
f.g = 0;
g.g = d;
break
}
if (0 <= m && 0 <= e) {
Lw(c, f, g, - h, - l);
f.g = 0;
g.g = 0;
break
}
break
}
}
}
function Lw(a, b, c, d, e) {
var f = d * a.o.x;
d *= a.o.y;
var g = e * a.o.x;
e *= a.o.y;
a.g.ka.x -= a.g.Ma * (f + g);
a.g.ka.y -= a.g.Ma * (d + e);
a.g.Aa -= a.g.nb * (b.i.x * d - b.i.y * f + c.i.x * e - c.i.y * g);
a.i.ka.x += a.i.Ma * (f + g);
a.i.ka.y += a.i.Ma * (d + e);
a.i.Aa += a.i.nb * (b.j.x * d - b.j.y * f + c.j.x * e - c.j.y * g);
b.g = 0;
c.g = 0
}
function Mw(a, b) {
void 0 === b && (b = 0);
for (var c = 0, d = 0; d < a.i; d++) {
var e = a.g[d],
f = e.g,
g = e.i,
h = f.Lb * f.Ma,
k = f.Lb * f.nb,
l = g.Lb * g.Ma,
m = g.Lb * g.nb,
n = e,
w = Nw;
Tn(0 < n.u);
switch (n.type) {
case 1:
w.j(n);
break;
case 2:
w.o(n);
break;
case 4:
w.u(n)
}
n = Nw.g;
for (w = 0; w < e.u; w++) {
var v = e.j[w],
A = Nw.Ea[w],
p = Nw.i[w],
u = A.x - f.ha.c.x,
C = A.y - f.ha.c.y,
G = A.x - g.ha.c.x;
A = A.y - g.ha.c.y;
c = c < p ? c : p;
p = - v.H * Sn(b * (p + 0.005), - 0.2, 0);
v = p * n.x;
p *= n.y;
f.ha.c.x -= h * v;
f.ha.c.y -= h * p;
f.ha.a -= k * (u * p - C * v);
Gv(f);
g.ha.c.x += l * v;
g.ha.c.y += l * p;
g.ha.a += m * (G * p - A * v);
Gv(g)
}
}
return - 0.0075 <
c
}
var Jw = new function () {
this.g = Y(0, 0);
this.Ea = [
];
for (var a = 0; 2 > a; a++) this.Ea[a] = Y(0, 0)
},
Nw = new Fw;
function Ow() {
this.g = [
];
this.i = [
]
}
Ow.prototype.reset = function () {
this.g = [
];
this.i = [
]
};
function Pw(a, b) {
this.O = a;
this.o = b;
this.j = [
];
this.v = [
];
this.u = [
];
this.i = [
];
this.g = [
];
this.H = new Ow
}
q = Pw.prototype;
q.reset = function (a, b) {
this.O = a;
this.o = b
};
q.clear = function () {
this.j = [
];
this.v = [
];
this.u = [
];
this.i = [
];
this.g = [
]
};
q.Jf = function (a, b) {
for (var c = 0; c < this.v.length; c++) {
var d = this.v[c];
d.ka.x += a.g * (b.x + d.Ma * d.va.x);
d.ka.y += a.g * (b.y + d.Ma * d.va.y);
d.Aa += a.g * d.nb * d.Oa;
vn(d.ka, Sn(1 - a.g * d.Fa, 0, 1));
d.Aa *= Sn(1 - a.g * d.Ba, 0, 1)
}
};
q.Mf = function (a) {
for (var b = this.o, c = 0; c < b.i; ++c) {
var d = b.g[c],
e = d.g,
f = d.i,
g = e.Ma,
h = e.nb,
k = f.Ma,
l = f.nb,
m = d.o.x,
n = d.o.y,
w = n,
v = - m,
A;
if (a.v) {
var p = d.u;
for (A = 0; A < p; ++A) {
var u = d.j[A];
u.g *= a.u;
u.o *= a.u;
var C = u.g * m + u.o * w,
G = u.g * n + u.o * v;
e.Aa -= h * (u.i.x * G - u.i.y * C);
e.ka.x -= g * C;
e.ka.y -= g * G;
f.Aa += l * (u.j.x * G - u.j.y * C);
f.ka.x += k * C;
f.ka.y += k * G
}
} else for (p = d.u, A = 0; A < p; ++A) e = d.j[A],
e.g = 0,
e.o = 0
}
for (b = 0; b < this.g.length; b++) this.g[b].j(a);
for (b = 0; b < a.o; b++) {
for (c = 0; c < this.g.length; c++) this.g[c].u(a);
Kw(this.o)
}
for (a = 0; a <
this.g.length; a++) this.g[a].v();
a = this.o;
for (b = 0; b < a.i; ++b) for (c = a.g[b], d = c.wa, A = 0; A < c.u; ++A) p = d.Ea[A],
e = c.j[A],
p.xc = e.g,
p.yc = e.o
};
q.Kf = function (a) {
for (var b = 0; b < this.u.length; ++b) {
var c = this.u[b],
d = a.g * c.ka.x,
e = a.g * c.ka.y;
4 < d * d + e * e && (xn(c.ka), c.ka.x = 2 * c.ka.x * a.i, c.ka.y = 2 * c.ka.y * a.i);
d = a.g * c.Aa;
d * d > Vn && (c.Aa = 0 > c.Aa ? - Un * a.i : Un * a.i);
c.ha.Fb.Ca(c.ha.c);
c.ha.Vb = c.ha.a;
c.ha.c.x += a.g * c.ka.x;
c.ha.c.y += a.g * c.ka.y;
c.ha.a += a.g * c.Aa;
Gv(c)
}
};
q.Lf = function (a) {
for (var b = 0; b < a.j; b++) {
for (var c = Mw(this.o, 0.2), d = !0, e = 0; e < this.g.length; e++) {
var f = this.g[e].o(0.2);
d = d && f
}
if (c && d) break
}
};
q.Ng = function (a) {
for (var b = Number.MAX_VALUE, c = 0; c < this.u.length; c++) {
var d = this.u[c];
!d.ya || Math.abs(d.Aa) > Wn || 0.0001 < Ln(d.ka, d.ka) ? b = d.O = 0 : (d.O += a.g, b = Math.min(b, d.O))
}
if (0.5 <= b) for (a = 0; a < this.j.length; a++) Ev(this.j[a], !1)
};
q.report = function (a) {
if (null != this.O) for (var b = 0; b < this.i.length; ++b) {
var c = a[b];
this.H.reset();
for (var d = 0; d < c.u; ++d) this.H.g[d] = c.j[d].g,
this.H.i[d] = c.j[d].o
}
};
function Qw(a, b) {
a.j.push(b);
0 != b.getType() && (a.u.push(b), 2 == b.getType() && a.v.push(b))
};
function Rw() {
this.i = [
];
this.g = [
]
}
Rw.prototype.isEmpty = function () {
return 0 === this.i.length && 0 === this.g.length
};
Rw.prototype.clear = function () {
this.i = [
];
this.g = [
]
};
Rw.prototype.contains = function (a) {
return 0 <= Pa(this.i, a) || 0 <= Pa(this.g, a)
};
Rw.prototype.Ce = function () {
for (var a = [
], b = this.i.length - 1; 0 <= b; --b) a.push(this.i[b]);
var c = this.g.length;
for (b = 0; b < c; ++b) a.push(this.g[b]);
return a
};
function Sw() {
var a = Y(0, 0);
this.g = new Cw(this);
this.u = new Hw;
this.v = this.i = !1;
this.j = new bv;
this.tb = new Su;
this.Sb = null;
this.va = new lv;
this.Ba = a;
this.V = 0;
so(this, new po);
this.o = new Gw;
this.O = new Gw;
this.H = new Pw(this.g.i, this.u)
}
var Tw = 1 - 100 * Number.MIN_VALUE;
function Uw(a, b) {
a.g.i = b
}
function so(a, b) {
Tn(!a.i);
b = new yv(b, a);
a = a.j;
var c = b.wa;
null == a.g[c] && (ev(a, b, c, cv), dv(a, b), b.H.push(a));
return b
}
function Dn(a, b) {
Tn(!a.i);
for (var c = b.Sb; c; ) {
var d = c;
c = c.next;
var e = a;
d = d.Dc;
var f = d.Rf;
d.De && (d.De.Fc = d.Fc);
d.Fc && (d.Fc.De = d.De);
d == e.Sb && (e.Sb = d.Fc);
e = d.H;
var g = d.O;
Ev(e, !0);
Ev(g, !0);
d.g.lc && (d.g.lc.next = d.g.next);
d.g.next && (d.g.next.lc = d.g.lc);
d.g == e.Sb && (e.Sb = d.g.next);
d.g.lc = null;
d.g.next = null;
d.i.lc && (d.i.lc.next = d.i.next);
d.i.next && (d.i.next.lc = d.i.lc);
d.i == g.Sb && (g.Sb = d.i.next);
d.i.lc = null;
d.i.next = null;
if (!f) for (d = g.tb.Pa(Tu); d; d = d.La()) sw(d.rb, g) == e && (d.rb.V = !0)
}
for (c = b.Na.Pa(); c; c = c.La()) c.g.g(b);
for (c = b.tb.Pa(Tu); c; c = c.La()) a.g.destroy(c.rb);
for (c = b.i.Pa(); c; c = c.La()) ku(b, c.hb);
b.destroy();
a = a.j;
c = b.wa;
if (null != a.g[c]) {
Ua(b.H, a);
for (b = 0; b <= cv; b++) gv(a, c, b);
delete a.g[c]
}
}
function ur(a) {
a.v && (Cv(a.g), a.v = !1);
a.i = !0;
a.o.reset(0.016, 0.016 * a.V, 10, 10, !0);
for (var b = a.g, c = b.o.tb.Pa(Tu); c; c = c.La()) {
var d = c.rb,
e = d.mb,
f = d.kb,
g = e.g,
h = f.g;
if (g.hc() || h.hc()) {
if (d.V) {
if (!Hv(h, g)) {
b.destroy(d);
continue
}
if (!Nv(e, f)) {
b.destroy(d);
continue
}
d.V = !1
}
b.g.ud(e.i, f.i) ? d.update(b.i) : b.destroy(d)
}
}
if (0 < a.o.g) {
b = a.o;
for (c = a.va.Pa(); c; c = c.La()) c.g.i(b);
c = a.H;
c.reset(a.g.i, a.u);
for (d = a.j.Pa(cv); d; d = d.La()) d.body.Ra = !1;
for (f = a.tb.Pa(Tu); f; f = f.La()) f.rb.Ra = !1;
for (d = a.Sb; d; d = d.Fc) d.Ra = !1;
for (d = a.j.Pa(iv); d; d = d.La()) if (f = d.body, !f.Ra) {
c.clear();
e = [
];
e.push(f);
for (f.Ra = !0; 0 < e.length; ) if (g = e.pop(), Qw(c, g), g.hc() || Ev(g, !0), 0 != g.getType()) {
for (f = g.tb.Pa(Xu); f; f = f.La()) h = f.rb,
h.Ra || (c.i.push(h), h.Ra = !0, h = sw(h, g), h.Ra || (e.push(h), h.Ra = !0));
for (f = g.Sb; f; f = f.next) !f.Dc.Ra && f.Xb.isActive() && (c.g.push(f.Dc), f.Dc.Ra = !0, f.Xb.Ra || (e.push(f.Xb), f.Xb.Ra = !0))
}
e = c;
f = b;
e.Jf(f, a.Ba);
Iw(e.o, e.i, e.i.length);
e.Mf(f);
e.Kf(f);
e.Lf(f);
e.report(e.o.g)
}
for (d = a.j.Pa(iv); d; d = d.La()) Dv(d.body);
Cv(a.g);
b = a.o;
c = a.H;
c.reset(a.g.i, a.u);
for (d = a.j.Pa(cv); d; d = d.La()) f = d.body,
f.Ra = !1,
f.ha.vb = 0;
for (g = a.tb.Pa(Tu); g; g = g.La()) g.rb.Ra = !1,
g.rb.j = null;
for (d = a.Sb; d; d = d.Fc) d.Ra = !1;
for (; ; ) {
d = a.wa(b);
e = d.Sf;
d = d.Tf;
if (null === e || Tw < d) break;
g = e.mb.g;
f = e.kb.g;
Vw.set(g.ha);
Ww.set(f.ha);
g.advance(d);
f.advance(d);
e.update(a.g.i);
e.j = null;
if (e.va || !e.v) g.ha.set(Vw),
f.ha.set(Ww),
Gv(g),
Gv(f);
else if (e.o) {
2 != g.getType() && (g = f);
c.clear();
e = new Rw;
e.g.push(g);
for (g.Ra = !0; 0 < e.i.length + e.g.length; ) if (g = f = e, 0 === g.i.length && (g.i = g.g, g.i.reverse(), g.g = [
]), f = f.i.pop(), Qw(c, f), f.hc() || Ev(f, !0), 2 == f.getType()) {
for (g = f.tb.Pa(Xu); g && 32 != c.i.length; g = g.La()) h = g.rb,
h.Ra || (c.i.push(h), h.Ra = !0, h = sw(h, f), h.Ra || (0 != h.getType() && (h.advance(d), Ev(h, !0), e.g.push(h)), h.Ra = !0));
for (f = f.Sb; f; f = f.next) 32 != c.g.length && !f.Dc.Ra && f.Xb.isActive() && (c.g.push(f.Dc), f.Dc.Ra = !0, f.Xb.Ra || (0 != f.Xb.getType() && (f.Xb.advance(d), Ev(f.Xb, !0), e.g.push(f.Xb)), f.Xb.Ra = !0))
}
a.O.reset((1 - d) * b.g, 0, b.o, b.j, !1);
e = c;
f = a.O;
Iw(e.o, e.i, e.i.length);
g = e.o;
for (d = 0; d < e.g.length; ++d) e.g[d].j(f);
for (d = 0; d < f.o; ++d) for (Kw(g), h = 0; h < e.g.length; ++h) e.g[h].u(f);
for (d = 0; d < e.u.length; ++d) {
h = e.u[d];
var k = f.g * h.ka.x,
l = f.g * h.ka.y;
4 < k * k + l * l && (xn(h.ka), h.ka.x = 2 * h.ka.x * f.i, h.ka.y = 2 * h.ka.y * f.i);
k = f.g * h.Aa;
k * k > Vn && (h.Aa = 0 > h.Aa ? - Un * f.i : Un * f.i);
h.ha.Fb.Ca(h.ha.c);
h.ha.Vb = h.ha.a;
h.ha.c.x += f.g * h.ka.x;
h.ha.c.y += f.g * h.ka.y;
h.ha.a += f.g * h.Aa;
Gv(h)
}
for (d = 0; d < f.j; ++d) {
k = Mw(g, 0.75);
l = !0;
for (h = 0; h < e.g.length; ++h) {
var m = e.g[h].o(0.2);
l = l && m
}
if (k && l) break
}
e.report(g.g);
for (d = 0; d < c.j.length; d++) if (c.j[d].Ra = !1, c.j[d].hc() && 2 == c.j[d].getType()) for (Dv(c.j[d]), g = c.j[d].tb.Pa(Tu); g; g = g.La()) g.rb.j = null;
for (d = 0; d < c.i.length; d++) c.i[d].Ra = !1,
c.i[d].j = null;
for (d = 0; d < c.g.length; d++) c.g[d].Ra = !1;
Cv(a.g)
}
}
a.V = a.o.i
}
a.i = !1
}
Sw.prototype.wa = function (a) {
for (var b = null, c = 1, d = this.tb.Pa(Zu); d; d = d.La()) {
var e = d.rb;
if (!this.ya(a, e)) {
if (null != e.j) var f = e.j;
else {
if (e.o) f = 1;
else {
var g = e.mb.g,
h = e.kb.g,
k = g.ha.vb;
g.ha.vb < h.ha.vb ? (k = h.ha.vb, g.ha.advance(k)) : h.ha.vb < g.ha.vb && (k = g.ha.vb, h.ha.advance(k));
f = e;
g = g.ha;
h = h.ha;
tw.g.set(f.mb.Sa);
tw.i.set(f.kb.Sa);
tw.j = g;
tw.o = h;
tw.u = 0.005;
var l = tw;
fw++;
f = l.g;
h = l.i;
g = l.j;
var m = l.o;
Tn(g.vb == m.vb);
Tn(1 - g.vb > Number.MIN_VALUE);
var n = f.i + h.i;
l = l.u;
var w = 0,
v = 0,
A = 0;
iw.count = 0;
for (jw.u = !1; ; ) {
Pu(g, kw, w);
Pu(m, lw, w);
jw.g = f;
jw.i = h;
jw.j = kw;
jw.o = lw;
ao(nw, iw, jw);
if (0 >= nw.j) {
w = 1;
break
}
var p = h;
var u = mw;
var C = iw;
var G = kw;
var y = lw;
u.i = f;
u.j = p;
p = C.count;
Tn(0 < p && 3 > p);
if (1 == p) {
u.o = 1;
var M = bo(u.i, C.Ya[0]);
C = bo(u.j, C.Za[0]);
p = M;
var D = G.R;
M = G.position.x + (D.T.x * p.x + D.U.x * p.y);
G = G.position.y + (D.T.y * p.x + D.U.y * p.y);
p = C;
D = y.R;
C = y.position.x + (D.T.x * p.x + D.U.x * p.y);
y = y.position.y + (D.T.y * p.x + D.U.y * p.y);
u.g.x = C - M;
u.g.y = y - G;
xn(u.g)
} else if (C.Za[0] == C.Za[1]) {
u.o = 2;
var K = bo(u.i, C.Ya[0]);
var x = bo(u.i, C.Ya[1]);
C = bo(u.j, C.Za[0]);
u.Ha.x = 0.5 * (K.x + x.x);
u.Ha.y = 0.5 * (K.y + x.y);
var z = Rn(x, K);
Z(u.g);
u.g = Nn(z);
Z(z);
xn(u.g);
p = u.g;
D = G.R;
K = D.T.x * p.x + D.U.x * p.y;
x = D.T.y * p.x + D.U.y * p.y;
p = u.Ha;
D = G.R;
M = G.position.x + (D.T.x * p.x + D.U.x * p.y);
G = G.position.y + (D.T.y * p.x + D.U.y * p.y);
p = C;
D = y.R;
C = y.position.x + (D.T.x * p.x + D.U.x * p.y);
y = y.position.y + (D.T.y * p.x + D.U.y * p.y);
0 > (C - M) * K + (y - G) * x && tn(u.g)
} else if (C.Ya[0] == C.Ya[0]) u.o = 4,
D = bo(u.j, C.Za[0]),
p = bo(u.j, C.Za[1]),
M = bo(u.i, C.Ya[0]),
u.Ha.x = 0.5 * (D.x + p.x),
u.Ha.y = 0.5 * (D.y + p.y),
z = Rn(p, D),
Z(u.g),
u.g = Nn(z),
Z(z),
xn(u.g),
p = u.g,
D = y.R,
K = D.T.x * p.x + D.U.x * p.y,
x = D.T.y * p.x + D.U.y * p.y,
p = u.Ha,
D = y.R,
C = y.position.x + (D.T.x * p.x + D.U.x * p.y),
y = y.position.y + (D.T.y * p.x + D.U.y * p.y),
p = M,
D = G.R,
M = G.position.x + (D.T.x * p.x + D.U.x * p.y),
G = G.position.y + (D.T.y * p.x + D.U.y * p.y),
0 > (M - C) * K + (G - y) * x && tn(u.g);
else {
K = bo(u.i, C.Ya[0]);
x = bo(u.i, C.Ya[1]);
D = bo(u.j, C.Za[0]);
p = bo(u.j, C.Za[1]);
z = Rn(x, K);
var T = On(G.R, z);
Z(z);
z = Rn(p, D);
y = On(y.R, z);
Z(z);
G = T.x * T.x + T.y * T.y;
M = y.x * y.x + y.y * y.y;
var na = Rn(y, T);
C = T.x * na.x + T.y * na.y;
z = y.x * na.x + y.y * na.y;
Z(na);
T = T.x * y.x + T.y * y.y;
na = G * M - T * T;
y = 0;
0 != na && (y = Sn((T * z - C * M) / na, 0, 1));
0 > (T * y + z) / M && (y = Sn((T - C) / G, 0, 1));
M = Y(0, 0);
M.x = K.x + y * (x.x - K.x);
M.y = K.y + y * (x.y - K.y);
C = Y(0, 0);
C.x = D.x + y * (p.x - D.x);
C.y = D.y + y * (p.y - D.y);
0 == y || 1 == y ? (u.o = 4, z = Rn(p, D), Z(u.g), u.g = Nn(z), Z(z), xn(u.g), u.Ha = C) : (u.o = 2, z = Rn(x, K), Z(u.g), u.g = Nn(z), Z(z), u.Ha = M);
0 > y && tn(u.g);
Z(M);
Z(C)
}
x = mw.evaluate(kw, lw);
if (0 >= x) {
w = 1;
break
}
0 == v && (A = x > n ? Math.max(n - l, 0.75 * n) : Math.max(x - l, 0.02 * n));
if (x - A < 0.5 * l) {
if (0 == v) {
w = 1;
break
}
break
}
p = u = w;
D = 1;
Pu(g, kw, D);
Pu(m, lw, D);
K = mw.evaluate(kw, lw);
if (K >=
A) {
w = 1;
break
}
for (y = 0; ; ) {
G = y & 1 ? p + (A - x) * (D - p) / (K - x) : 0.5 * (p + D);
Pu(g, kw, G);
Pu(m, lw, G);
M = mw.evaluate(kw, lw);
if (Math.abs(M - A) < 0.025 * l) {
u = G;
break
}
M > A ? (p = G, x = M) : (D = G, K = M);
y++;
hw++;
if (50 == y) break
}
if (u < (1 + 100 * Number.MIN_VALUE) * w) break;
w = u;
v++;
gw++;
if (1000 == v) break
}
f = w;
Tn(0 <= f && 1 >= f);
0 < f && 1 > f && (f = (1 - f) * k + f)
}
e.j = f
}
Number.MIN_VALUE < f && f < c && (b = e, c = f)
}
}
return {
Sf: b,
Tf: c
}
};
Sw.prototype.ya = function (a, b) {
a = b.mb.g;
b = b.kb.g;
return 2 == a.getType() && a.hc() || 2 == b.getType() && b.hc() ? !1 : !0
};
Sw.prototype.drawShape = function (a, b, c) {
if (a instanceof Qt) {
var d = Qn(b, a.g);
null.ah(d, a.j, b.R.T, c);
Z(d)
} else if (a instanceof lo) {
d = a.o;
var e = a.g,
f = [
];
for (a = 0; a < d; a++) f[a] = Qn(b, e[a]);
null.dh(f, d, c);
for (a = 0; a < d; a++) Z(f[a])
}
};
new ko;
var Vw = new Ou,
Ww = new Ou;
function br(a, b) {
for (const c of a.Qa) if (sc(c, 1) === b) return E(c, 2, 0);
return 0
}
function yu(a, b) {
a = a.settings.get(b);
return 'false' === a ? !1 : a
}
function Xw(a) {
const b = new Ju;
b.Ue = c=>{
var d = c.mb.g,
e = c.kb.g;
c = d.rf || e.rf;
var f = d.Te || e.Te,
g = d.Ye || e.Ye;
d = d.uf || e.uf;
if (c && f && c.i) a.Mb && (Hr(c), ss(a.ya), a.yb());
else if (c && g) a: {
d = g.i && c && g.i.Ua === c.Ua;
if (f = g.isVisible() && g.i !== c) {
if (f = zn(g, 'use_ally_candle_bonus') && d) {
f = Number.MAX_VALUE;
e = c.g;
for (var h of c.wb.u.values()) if (h.Ua === c.Ua) {
var k = h.g,
l = k.x - e.x;
k = k.y - e.y;
l = l * l + k * k;
l < f && (f = l)
}
f = 400 <= f
}
f = !f && zn(g, 'use_collectible_stealing') && qc(g.state, 2) && !d
}
if (f && (h = + zn(g, 'max_collectibles_held'), !( - 1 !==
h && c.j.length >= h))) {
if (g.i) {
if (0 < g.i.Fa) break a;
h = g.i;
h = h.j.splice(h.j.indexOf(g), 1);
g = g.i;
iu(g);
xr(g, - 1);
Gr(g, 2);
xr(c, 1);
Gr(c, 1)
} else h = [
g
];
for (const m of h) m.Sc(c),
g = c,
h = m,
0 <= g.j.indexOf(h) ? console.error('adding a collectible that is already in the list') : ju(g, 3) ? g.j.unshift(h) : g.j.push(h),
g = m,
h = c.Ua,
1 === h ? dq(g, 2) : 2 === h && dq(g, 3);
iu(c)
}
} else c && d && a.Qb(c, d)
};
b.g = () =>{
};
return b
}
function Yw(a) {
return !!(a.i && a.i.wa && a.j && a.j.H.g)
}
function Zw(a, b, c, d, e) {
const f = new Hm;
Gm(f, a.g.Ba++);
B(f, 2, d);
B(f, 3, e.x);
B(f, 4, e.y);
e = new Fm;
B(e, 2, c);
B(e, 3, b);
B(e, 4, !1);
lc(f, 6, e);
b = new Sm;
B(b, 2, d);
d = new Rm;
B(d, 1, 0);
c = yu(a, 'player_base_speed');
B(d, 2, c);
c = yu(a, 'player_vision_radius');
B(d, 3, c);
B(d, 6, 0);
B(d, 8, !0);
lc(b, 3, d);
d = new ln;
lc(d, 1, f);
lc(d, 2, b);
return Fp(a, d)
}
function $w(a) {
const b = Zw(a, 1, 1, 1, a.i.v);
var c = b.getId();
Dp(a.g, c);
return b
}
function ax(a) {
return Zw(a, 5, 2, 2, a.i.u)
}
function Fp(a, b) {
let c = Gp(a.g, F(b, Hm, 1).getId());
c || (c = bx(a, b)) && tr(a.g, c);
var d = F(b, Sm, 2),
e = c.getId();
B(d, 1, e);
b = F(b, Sm, 2);
Hp(a.g, b);
return c
}
function cx(a) {
a.Ba = new Fu;
return a.Ba
}
function dx(a, b) {
a.i = new Nt(a.O, a.g, a.settings, b, a.Da, a.v);
a.j = a.v || !a.i.map.g.properties.outside ? Q.Dd : Q.he;
a.j.H.preload();
R.Ad.preload();
R.Uc.preload()
}
function Ip(a, b) {
for (const c of b) switch (b = pc(c, 1), fc(c, an)) {
case 2:
a.settings.set(b, pc(c, 2 === fc(c, an) ? 2 : - 1));
break;
case 3:
a.settings.set(b, rc(c, 3 === fc(c, an) ? 3 : - 1));
break;
case 4:
a.settings.set(b, qc(c, 4 === fc(c, an) ? 4 : - 1))
}
}
function bx(a, b) {
switch (E(F(b, Hm, 1), 2, 0)) {
case 1:
case 2:
return new pu(a.O, a.settings, F(b, Hm, 1), a.g, a.v);
case 16:
return new gq(a.O, a.settings, F(b, Hm, 1), a.g);
case 4:
return new vo(a.O, a.settings, F(b, Hm, 1), a.g);
case 32:
return new St(a.O, a.settings, F(b, Hm, 1), a.g);
case 2048:
return new su(a.O, a.settings, F(b, Hm, 1), a.g)
}
}
function ex(a, b) {
if (!a.Fa) if (Yw(a)) a.Fa = !0,
Yo(a.onReady);
else return;
Tt || (a.Nb.v = self.performance.now());
const c = a.o;
a.V.update(b);
a.g.wa(b);
a.o -= b;
if (!a.v && 21000 >= a.o && a.H && !a.Ob) {
if (b = a.g.g) {
var d = bl.width / 2 + bl.left;
const e = 0.3 * bl.height + bl.top;
d = new bu(U('time_warning'), zn(b, 'time_warning_duration_ms'), d, e);
yr(b, d);
a.j.stop();
a.j = Q.Ad;
a.j.play()
}
a.Ob = !0
}
!a.v && 1000 > a.o && 1000 <= c && a.H && Q.Me.play()
}
function fx(a) {
const b = () =>{
a.O.g();
setTimeout(b, yu(a, 'client_broadcast_timeout'))
};
b()
}
function gx(a) {
a.j && (a.v ? $k(a.j, 14769) : a.i.map.g.properties.outside ? $k(a.j, 3503) : $k(a.j, 14769))
}
function hx(a) {
a.j && (a = a.j, Uj(a), a.i && a.g && (a.i.gain.setValueAtTime(a.i.gain.value, a.g.currentTime), a.i.gain.exponentialRampToValueAtTime(0.01, a.g.currentTime + 3)))
}
var ix = class extends ci {
constructor(a, b, c, d, e, f) {
super ();
this.O = a;
this.ya = b;
this.v = d;
this.yb = e;
this.Qb = f;
this.V = new Du;
this.Da = new Sw;
this.Mb = !1;
this.i = null;
this.Xa = this.Na = 0;
this.settings = new Iu;
this.wb = - 1;
this.o = 0;
this.Eb = this.H = !1;
this.Oa = null;
this.Qa = [
];
this.Ob = !1;
this.Ba = null;
this.u = 1;
this.j = null;
this.Ab = !1;
this.onReady = Wo();
this.Fa = !1;
di(this, ra(bi, this.V));
ss(this.ya);
d && Uw(this.Da, Xw(this));
this.g = new Lr(this.Da, b);
qr(this.g, g=>{
wu(this.V.j, g)
});
this.Nb = new Ut(() =>{
if (this.V) {
var g = this.V.j;
for (const h of g.i.keys()) wu(g, h)
}
});
c.reset();
this.V.gamepad = c
}
ub() {
super.ub();
this.j && (this.j.stop(), Vj(this.j, 1));
this.i = null
}
update(a) {
qc(a, 6) && !this.H && (rs(this.ya), this.H = !0, mk(15));
this.o = 1000 * sc(a, 3);
this.Na = sc(a, 4);
this.Xa = sc(a, 5);
qc(a, 7) && !this.Eb && (mk(16), this.Eb = !0, this.Oa = E(a, 8, 0), this.Qa = kc(a, en, 10), this.yb())
}
render(a, b) {
this.V.render(this, a, b);
a = this.Nb;
if (!Tt) {
b = self.performance.now() - a.v;
var c = a.u++ % a.g;
a.i -= a.j[c];
a.i += b;
a.j[c] = b;
!(a.u < 3 * a.g) && a.i / a.g > a.H && (Tt = !0, S(104), a.o && a.o())
}
}
wake() {
this.g.wake()
}
};
function jx(a) {
a.g ? a.g = !1 : (requestAnimationFrame(() =>jx(a)), kx(a))
}
function lx(a) {
a.i && (a.i = !1, a.g = !0)
}
function kx(a) {
var b = Date.now(),
c = b - a.j;
0 > c || (c = Math.min(c, 50), a.j = b, a.onLoop(c))
}
var mx = class {
constructor(a) {
this.onLoop = a;
this.j = 0;
this.g = this.i = !1;
this.onLoop = a
}
start() {
this.j = Date.now();
const a = !this.g && !this.i;
this.g = !1;
this.i = !0;
a && jx(this)
}
};
function nx(a) {
return 3 * a * a - 2 * a * a * a
};
function ox(a, b, c, d = () =>{
}) {
r(function * () {
yield px(a);
window.parent.postMessage({
cmd: 'resizeDoodle',
width: `${ b }px`,
height: `${ c }px`,
duration: '400ms',
preserveAspectRatio: !0
}, '*');
a.g = !0;
let e = !1;
const f = () =>{
a.o && a.oa.classList.remove('ddl-expanderHide_');
e = !0;
d()
};
a.j = setTimeout(f, 500);
window.addEventListener('message', g=>{
'resizeComplete' === g.data.Xe && (null !== a.j && (clearTimeout(a.j), a.j = null), e || f())
})
})
}
function qx(a, b, c, d = () =>{
}) {
if (a.oa && ck() && !a.g) {
var e = a.oa;
if (vf() || uf()) ox(a, b, c, d);
else {
document.getElementById('fkbx') && Qf(e.parentElement, 'width', '100%');
var f = Math.min(b, e.parentElement.clientWidth),
g = self.performance.now(),
h = new wm({
height: e.offsetHeight,
width: e.offsetWidth
}, {
height: f / (b / c),
width: f
}, 400, nx, () =>g);
h.start();
a.g = !0;
var k = new mx(l=>a.i(l));
a.i = l=>{
g = void 0 !== l ? g + l : self.performance.now();
l = bm(h);
ng(e, Math.round(l.width), Math.round(l.height));
a.u();
return cm(h) ? (lx(k), d(), a.oa.style.willChange = 'unset', a.i = () =>!1, !1) : !0
}
}
}
}
function px(a) {
if (!a.o) return Promise.resolve();
a.oa.classList.add('ddl-expanderHide_');
return new Promise(b=>{
setTimeout(b, 200)
})
}
var rx = class {
constructor(a, b = () =>{
}) {
this.u = b;
this.g = !1;
this.o = '1' === pf.g.get('ntp');
this.i = () =>!1;
this.j = null;
this.oa = a;
ck() && (this.oa.style.willChange = 'width,height')
}
reset() {
this.g && (Qf(this.oa, 'width', '', 'height', ''), mg(0), this.oa.style.width = '', this.oa.style.height = '');
this.g = !1
}
update(a) {
this.i(a)
}
};
var sx = class {
constructor(a) {
this.g = () =>{
N.style.background = '#000';
a()
};
this.j = 2 === E(Rp().g, 1, 1);
this.state = 1;
this.i = new wm({
alpha: 0
}, {
alpha: 1
}, 400)
}
Qc(a) {
S(a ? 102 : 101);
xg.removeAttribute('title');
this.state = 2;
this.i.start();
this.g();
window !== window.parent && window.focus()
}
render() {
}
};
Qg.Wa();
function tx(a, b) {
window.clearTimeout(a.Hc);
ux(a, !1);
ss(a.oc);
a.gamepad.alpha = 1;
a.Vc(b)
}
function vx(a) {
const b = a.match.i.g.get(1),
c = a.match.i.g.get(2);
a.match.u = 0;
a.j.Qa = !0;
a.actions.push(new em([new fm([new W(new X({
brightness: 0
}, {
brightness: 1
}, 1000, om), d=>{
a.Oa = d.brightness
}),
new W(new X({
x: b.x,
y: b.y
}, {
x: c.x,
y: c.y
}, 3500, om), d=>{
var e = a.i,
f = d.y;
e.x = d.x;
e.y = f
})]),
new dm(700),
new am(() =>{
Eu(a.i, !0);
a.g = new wx(Kh, U('tutorial_1'), 1);
a.u.push(a.g);
Q.Me.play()
}),
new dm(3000),
new am(() =>{
a.g.o = !0;
Eu(a.i, !1);
a.j.Qa = !1
}),
new W(new X({
brightness: 0
}, {
brightness: 1
}, 1000, om), d=>{
a.match.u = d.brightness
}),
new dm(1000),
new am(() =>{
Eu(a.i, !0);
a.g = new wx(Ih, U(I() ? 'tutorial_2_mobile' : 'tutorial_2_desktop'), 2);
a.u.push(a.g)
}),
new dm(750),
new W(new X({
alpha: 0
}, {
alpha: 1
}, 250, om), d=>{
a.gamepad.alpha = d.alpha
}),
new am(() =>{
xx(a)
})]))
}
function xx(a) {
a.Da = !0;
document.activeElement && document.activeElement.blur()
}
function yx(a, b, c) {
const d = new Ym;
var e = a.getId();
B(d, 1, e);
B(d, 2, b);
B(d, 3, c);
B(d, 4, 0 !== b || 0 !== c);
a.input = d
}
function zx(a) {
const b = a.match.i.g.get(2),
c = a.match.i.g.get(3);
a.actions.push(new em([new am(() =>{
a.g.o = !0;
Eu(a.i, !1);
a.Jc = !0
}),
new dm(1250),
new W(new X({
alpha: 1
}, {
alpha: 0
}, 250, qm), d=>{
a.gamepad.alpha = d.alpha
}),
new am(() =>{
a.Da = !1;
yx(a.j, 0, 0);
Jt(a.match.i, 1)
}),
new W(new X({
x: b.x,
y: b.y
}, {
x: c.x,
y: c.y
}, 333, om), d=>{
var e = a.i,
f = d.y;
e.x = d.x;
e.y = f
}),
new am(() =>{
a.g = new wx(Fh, U('tutorial_3'), 1);
a.u.push(a.g);
Eu(a.i, !0)
}),
new dm(750),
new W(new X({
alpha: 0
}, {
alpha: 1
}, 250, om), d=>{
a.gamepad.alpha = d.alpha
}),
new am(() =>
{
xx(a)
})]))
}
function Ax(a) {
const b = a.match.i.g.get(3),
c = a.match.i.g.get(4);
a.actions.push(new em([new am(() =>{
a.Ic = !0
}),
new W(new X({
x: b.x,
y: b.y
}, {
x: c.x,
y: c.y
}, 2000, om), d=>{
var e = a.i,
f = d.y;
e.x = d.x;
e.y = f
})]))
}
function Bx(a) {
const b = a.match.i.g.get(4),
c = a.match.i.g.get(5);
a.actions.push(new em([new am(() =>{
a.Da = !1;
yx(a.j, 0, 0);
a.g.o = !0;
a.Qa = !0;
a.j.Zb = !1;
Kt(a.match.i, 2)
}),
new fm([new W(new X({
alpha: 1
}, {
alpha: 0
}, 250, qm), d=>{
a.gamepad.alpha = d.alpha
}),
new W(new X({
x: b.x,
y: b.y
}, {
x: c.x,
y: c.y
}, 1000, om), d=>{
var e = a.i,
f = d.y;
e.x = d.x;
e.y = f
})]),
new am(() =>{
a.g = new wx(Jh, U('tutorial_4'), 1);
a.u.push(a.g);
Eu(a.i, !0)
}),
new dm(750),
new W(new X({
alpha: 0
}, {
alpha: 1
}, 250, om), d=>{
a.gamepad.alpha = d.alpha
}),
new am(() =>{
xx(a)
})]))
}
function Cx(a) {
const b = a.match.i.g.get(5),
c = a.match.i.g.get(6);
a.actions.push(new em([new am(() =>{
a.g.o = !0;
Eu(a.i, !1);
a.wb = !0;
a.j.Zb = !0;
Jt(a.match.i, 2);
a.match.Mb = !0
}),
new am(() =>{
a.g = new wx(Gh, U('tutorial_5'), 2);
a.u.push(a.g);
Eu(a.i, !0)
}),
new W(new X({
x: b.x,
y: b.y
}, {
x: c.x,
y: c.y
}, 4000, om), d=>{
var e = a.i,
f = d.y;
e.x = d.x;
e.y = f
})]))
}
function ux(a, b) {
Dx(a, b);
Ex(a, b)
}
function Fx(a, b) {
ux(a, !b);
b ? (Gx(a, a.Qb, c=>{
'mouseup' === c && (Fx(a, !1), S(106), tx(a, !0))
}), Gx(a, a.Ab, c=>{
'mouseup' === c && Fx(a, !1)
}), Gx(a, a.Mb, c=>{
'mouseup' === c && Fx(a, !1)
})) : (lr(a.v, a.Qb), lr(a.v, a.Ab), lr(a.v, a.Mb));
a.Ob = b
}
function Hx(a, b) {
a.j.Re = a.Da && !a.Ob;
ex(a.match, b);
if (Yw(a.match)) {
a.Xa = Math.max(a.Xa, a.o.j.length);
var c;
if (c = !a.Jc) c = a.oc,
c = c.H || c.o;
c && Jr(a.j) && zx(a);
!a.Ic && !a.Qa && 0 < a.j.j.length && Ax(a);
!a.Qa && 0 < a.o.j.length && Bx(a);
!a.wb && a.o.j.length < a.Xa && 5 <= a.j.j.length && Cx(a);
a.H.update(b);
a.wb && 0 === a.o.j.length && null === a.H.g && a.H.start();
null !== a.H.g && (c = bm(a.H).alpha, a.o.alpha = c);
cm(a.H) && a.o.va();
if (a.Na) {
if (0 <= a.V) {
c = 36 * Math.PI;
var d = 2 * yu(a.match, 'player_base_speed');
a.V += b;
c = 2 * - (a.V / 1000 / (c / d)) * Math.PI +
1.5 * Math.PI;
d = a.o.g;
yx(a.o, a.Na.x + 18 * Math.cos(c) - d.x, a.Na.y - 18 * Math.sin(c) - d.y)
}
if (a.nc) {
c = a.j;
const [g,
h] = nu(c);
d = g;
var e = h;
let k = !0;
0.1 > d && 0.1 > e && (e = d = 0, k = !1);
const l = new Ym;
var f = c.getId();
B(l, 1, f);
B(l, 2, d);
B(l, 3, e);
B(l, 4, k);
c.input = l
}
for (c = 0; c < a.u.length; c++) d = a.u[c],
d.update(b),
d.u() && a.u.splice(c--, 1);
for (c = 0; c < a.actions.length; c++) d = a.actions[c],
d.update(b),
d.g() && a.actions.splice(c--, 1)
}
}
}
function Gx(a, b, c) {
Xl(a.v, b, c);
Yl(a.v, b)
}
function Dx(a, b) {
a.Kc && a.ya && (b ? Gx(a, a.ya, c=>{
'mouseup' === c && (S(105), Fx(a, !0))
}) : lr(a.v, a.ya))
}
function Ex(a, b) {
a.Fa && (b ? Gx(a, a.Fa, c=>{
'mouseup' === c && (S(107), tx(a, !1))
}) : lr(a.v, a.Fa))
}
var Ix = class extends ci {
constructor(a, b, c, d, e) {
super ();
this.oc = a;
this.v = b;
this.gamepad = c;
this.Vc = e;
this.Jc = !1;
this.yb = new Set;
this.V = - 1;
this.Xa = 0;
this.nc = this.wb = this.Qa = this.Ic = !1;
this.u = [
];
this.actions = [
];
this.Hc = 0;
this.O = this.Fa = this.Ba = this.ya = null;
this.Ob = !1;
this.Oa = 0;
this.g = null;
this.gamepad.alpha = 0;
this.Kc = !Dg && 2 !== E(Rp().g, 1, 1);
this.Wc = U('host_private_match');
this.Xc = U('skip_tutorial');
this.Nb = new sq('host_private_match_dialog', 36, 0.8 * Dh[3], 2);
this.Nb.g = '#000';
this.Zb = new sq('host_private_match_dialog_yes_button', 36, 0.9 * Ah[3]);
this.Zb.g = '#000';
this.Eb = new sq('host_private_match_dialog_back_button', 36, 0.9 * Ah[3]);
this.Eb.g = '#000';
this.Qb = tq(0, 0, 223, 102);
this.Ab = tq(0, 0, 223, 109);
this.Mb = tq(0, 0, 106, 101);
this.match = new ix(new Fo, a, c, !0, () =>{
this.g.o = !0;
this.actions.push(new W(new X({
alpha: 1
}, {
alpha: 0
}, 250, qm), g=>{
this.gamepad.alpha = g.alpha
}));
const f = new wx(Hh, U('tutorial_6'), 1);
this.u.push(f);
this.Da = this.j.Zb = !1;
this.nc = !0;
mk(3);
hx(this.match);
this.Hc = window.setTimeout(() =>{
tx(this, !1)
}, 3000)
}, (f, g) =>{
g = g.getId();
if (!this.yb.has(g)) switch (g) {
case 1:
f.i && (this.yb.add(g), yx(this.o, 0, yu(this.match, 'player_base_speed')));
break;
case 2:
f.i || (this.yb.add(g), this.V = 0)
}
});
dx(this.match, d);
Kt(this.match.i, 1);
Jt(this.match.i, 2);
di(this, ra(bi, this.match));
this.j = $w(this.match);
this.o = ax(this.match);
this.i = cx(this.match);
this.H = new X({
alpha: this.o.alpha
}, {
alpha: 0
}, 1000);
this.Na = this.match.i.o;
this.Da = !1;
vx(this);
gx(this.match);
mk(2)
}
load() {
return this.match.onReady.promise
}
wake() {
this.match.wake()
}
render(a, b) {
a.save();
this.match.render(a, b);
1 > this.Oa && (a.save(), a.fillStyle = `rgba(0, 0, 0, ${ 1 - this.Oa }`, a.fillRect(0, 0, a.canvas.width, a.canvas.height), a.restore());
a.textAlign = 'center';
a.textBaseline = 'middle';
var c = Nh[3],
d = Nh[4],
e = a.canvas.width - 20 - c / 2,
f = J ? bl.top + bl.height : a.canvas.height - 20 - d / 2;
b = e - c / 2;
V(Nh, a, e, f);
e = a.canvas.width - 20 - c + 74;
this.O || (this.O = Jl(a, this.Xc, O, 24, 12, 95, 2));
const g = this.O.fontSize;
Ll(a, this.O, e, f - g * (this.O.lines.length - 1) / 2, g);
this.Fa || (this.Fa = tq(b, f - d / 2, c, d), Ex(this, !0));
this.Kc && (c = qh[3], d = qh[4], b = J ? 20 + c / 2 : b - 20 - c / 2, f = J ? bl.top + bl.height : a.canvas.height - 20 - d / 2, V(qh, a, b, f), this.Ba || (this.Ba = Jl(a, this.Wc, O, this.O.fontSize, 12, c - 30, 2)), e = this.Ba.fontSize, Ll(a, this.Ba, b, f - e * (this.Ba.lines.length - 1) / 2, e), this.ya || (this.ya = tq(b - c / 2, f - d / 2, c, d), Dx(this, !0)));
for (var h of this.u) h.render(a, 0, 0);
this.Ob && (Gl(a), h = a.canvas.width / 2, b = a.canvas.height / 2, V(Dh, a, h, b), h -= Dh[3] / 2, b -= Dh[4] / 2, c = L / 2, this.Nb.Ia(L / 2, b + 140), this.Nb.render(a), V(Ah, a, c, b + 260), this.Zb.Ia(c, b + 260), this.Zb.render(a), V(Ah, a, c, b +
378), this.Eb.Ia(c, b + 378), this.Eb.render(a), vq(this.Mb, h + Dh[3] - 118, b - 2), V(Eh, a, h + Dh[3] - 118 + Eh[3] / 2, b - 2 + Eh[4] / 2), vq(this.Qb, h + 114, b + 206), vq(this.Ab, h + 114, b + 324));
a.restore()
}
};
function mq(a) {
return new W(new X({
scale: 0
}, {
scale: 0.8
}, 250, rm), b=>a.Ta(b))
}
function nq(a) {
return new W(new X({
scale: 0.8
}, {
scale: 0
}, 250, pm), b=>a.Ta(b))
}
class wx extends oq {
constructor(a, b, c) {
super (b);
this.Ka = a;
this.scale = 0;
this.position = I() ? 2 : c;
a = document.createElement('canvas');
b = this.v();
a.width = 1.5 * kh[3] + b[3] / 2;
a.height = b[4] / 2;
this.g = a;
this.i = this.g.getContext('2d')
}
v() {
return this.Ka
}
Ta(a) {
this.scale = a.scale
}
render(a) {
const b = 1.5 * kh[3],
c = 1.5 * kh[4];
var d = this.v();
const e = d[3] / 2,
f = d[4] / 2,
g = bl.width,
h = bl.left,
k = (1 === this.position ? 0.25 : 0.7) * bl.height + bl.top;
this.i.clearRect(0, 0, this.g.width, this.g.height);
V(kh, this.i, (e + b) / 2, f / 2, b, c);
V(d, this.i, e / 2, f / 2, e, f);
this.i.textAlign = 'center';
this.i.textBaseline = 'middle';
this.i.fillStyle = '#000';
d = Jl(this.i, this.text, O, 36, 16, b - e / 2, 2);
Ll(this.i, d, (1.2 * e + b) / 2, c / 2 + (10 - 16.25 * (d.lines.length - 1)), 1.25 * d.fontSize);
a.save();
a.translate(h + g / 2, k);
a.translate(this.scale / 2 * - this.g.width, this.scale / 2 * - this.g.height);
a.drawImage(this.g, 0, 0, this.g.width * this.scale, this.g.height * this.scale);
a.restore()
}
};
function Jx(a, b = null) {
return r(function * () {
var c = pc(a, 2);
if (!Qp(c)) throw Error('W');
c = yield yp(c);
return new Mp(c, {
Zc: pc(a, 2),
Oc: pc(a, 1)
}, b)
})
};
var Kx = class extends H {
constructor(a) {
super (a)
}
};
var Lx = class extends H {
constructor(a) {
super (a)
}
};
var Mx = class extends H {
constructor(a) {
super (a)
}
};
var Nx = [
1,
2
],
Ox = [
class extends H {
constructor(a) {
super (a)
}
},
1,
$d,
[
Lx,
1,
ae,
2,
Vd,
3,
Vd,
4,
Yd,
[
Kx,
1,
Rd,
2,
Vd,
3,
Vd,
4,
Rd
]
],
Nx,
2,
$d,
[
Mx,
1,
Rd,
2,
Vd,
3,
Vd,
4,
Td,
5,
Vd
],
Nx
];
var Qx = {
Rd: a=>Id(a, Px),
df: a=>Hd(a, Ox)
};
var Rx = class extends Error {
constructor(a) {
super (`MatchmakerServerError: {${ a }}`);
Object.setPrototypeOf(this, Rx.prototype)
}
},
Sx = class extends Error {
constructor(a) {
super (`MatchmakerDisconnectedError: {${ a }}`);
Object.setPrototypeOf(this, Sx.prototype)
}
},
Tx = class extends Error {
constructor(a) {
super (`MatchmakerWebSocketError: {${ a }}`);
Object.setPrototypeOf(this, Tx.prototype)
}
};
var Vx = class extends H {
constructor(a) {
super (a, - 1, Ux)
}
},
Ux = [
1
];
var Wx = [
1
];
var Xx = class extends H {
constructor(a) {
super (a)
}
},
Yx = [
1,
2,
3,
4
],
Px = [
Xx,
1,
$d,
[
Vx,
1,
Wd,
2,
Vd
],
Yx,
2,
$d,
[
class extends H {
constructor(a) {
super (a, - 1, Wx)
}
},
1,
Wd
],
Yx,
3,
$d,
[
class extends H {
constructor(a) {
super (a)
}
},
1,
Vd
],
Yx,
4,
$d,
[
class extends H {
constructor(a) {
super (a)
}
},
1,
Vd
],
Yx
];
function Zx(a, b) {
var c = [
];
return r(function * () {
if (1 !== a.status) throw Error('X`' + a.clientId);
c.push(`${ 'GAME_MODE' }:${ b.name }`);
a.status = 3;
var d = a.g,
e = new Vx,
f = c;
if (null == f) f = Jb;
else {
for (let g = 0; g < f.length; g++);
rb(f, 5)
}
B(e, 1, f);
f = new Xx;
Kb(f);
null == e && (e = void 0);
ec(f, 1, Yx, e);
lp(d, f);
a.uc = Wo();
return a.uc.promise
})
}
function $x(a, b) {
console.error('MatchmakerClient Error: {%o}', b);
0 === a.status ? a.status = 5 : 2 === a.status ? (a.status = 5, Zo(a.u, b)) : (a.status = 5, a.uc ? Zo(a.uc, b) : console.error(`Unhandled Matchmaker error: ${ b }`))
}
var ay = class {
constructor() {
var a = Vo;
this.status = 0;
this.clientId = 'unset';
this.o = 0;
this.v = null;
this.H = () =>{
};
this.g = new a({
od: Qx
});
mp(this.g, 0, this.j.bind(this));
mp(this.g, 2, this.i.bind(this));
mp(this.g, 3, this.onError.bind(this));
mp(this.g, 1, this.O.bind(this))
}
connect(a) {
this.o = Date.now();
return this.g.connect(a)
}
O(a) {
switch (fc(a, Nx)) {
case 1:
a = F(a, Lx, 1 === fc(a, Nx) ? 1 : - 1);
if (!a) break;
this.v = a;
if (1 === E(a, 1, 0) && null != Wb(a, 2) && void 0 !== ic(a, Kx, 4)) {
if (!this.uc) throw this.status = 5,
Error('Y');
this.status = 4;
Yo(this.uc, {
address: pc(a, 2),
Oc: pc(F(a, Kx, 4), 2),
Ee: sc(F(a, Kx, 4), 1)
})
} else a = new Rx(pc(a, 3) || 'Unknown Error'),
$x(this, a);
this.g.close();
break;
case 2:
if (a = F(a, Mx, 2 === fc(a, Nx) ? 2 : - 1)) if (this.H(a), 2 === this.status) {
a = bg(cg(dg(new eg, pc(a, 3)), pc(a, 2)), pc(a, 5));
if (!this.u) throw this.status = 5,
Error('Z');
this.status = 3;
this.uc = Wo();
Yo(this.u, {
Vg: a,
uc: this.uc.promise
})
}
}
}
disconnect() {
this.g.close()
}
j() {
this.clientId = this.g.u.value.clientId;
this.status = 1
}
i() {
let a;
console.log('(%s) Disconnected from Matchmaker (result: %s) after (%d)s.', this.clientId, (null == (a = this.v) ? 0 : pc(a, 2).length) ? 'success' : 'fail', (Date.now() - this.o) / 1000);
4 === this.status || 5 === this.status || $x(this, new Sx('Disconnected unexpectedly waiting for match.'))
}
onError(a) {
$x(this, new Tx(`${ this.clientId }: ${ a }`))
}
};
var by = class extends ay {
constructor(a = () =>{
}, b, c, d) {
super ();
this.va = b;
this.V = c;
this.wa = d;
this.H = a
}
j() {
this.va();
super.j()
}
onError(a) {
this.V(a);
super.onError(a)
}
i() {
this.wa();
super.i()
}
};
function cy(a, b = a.H) {
return r(function * () {
a.i || (a.i = Wo(), yield a.g.connect(b), Yo(a.i));
return a.i.promise
})
}
var dy = class {
constructor(a) {
this.H = ug;
this.j = a;
this.v = Wo();
this.g = new by(this.u.bind(this), () =>{
}, this.j, () =>{
})
}
jd(a) {
const b = this;
return r(function * () {
yield cy(b);
const c = yield Zx(b.g, a);
return {
Zc: `wss://${ c.address }`,
Oc: c.Oc
}
})
}
reset() {
this.i = void 0;
this.v = Wo();
this.o = void 0;
this.g.disconnect();
this.g = new by(this.u.bind(this), () =>{
}, this.j, () =>{
})
}
u(a) {
a = pc(a, 3);
this.o || Yo(this.v);
this.o = a
}
};
const ey = rl(),
fy = Rp();
function Ep(a, b) {
r(function * () {
Ip(a.match, kc(b, $m, 2));
const c = pc(b, 3);
if (c) try {
const d = yield Wk(c, sc(b, 4) || void 0);
dx(a.match, d);
mk(13)
} catch (d) {
a.H()
} else a.H()
})
}
function gy(a, b) {
a.match = new ix(new Eo(b), a.V, a.gamepad, !1, () =>{
a.o = new nr(a.match, a.j);
hy(a, 5);
Io('halloween21.client.match_config', null)
}, () =>{
})
}
function iy(a) {
const b = Lo();
b ? jy(a, {
Zc: b.url,
Oc: b.match,
Rc: {
player: b.player,
nonce: b.nonce
}
}) : ky(a).then(() =>{
ly(a)
})
}
function jy(a, b) {
r(function * () {
yield Promise.all([my(a),
ky(a)]);
try {
yield ny(a, b)
} catch (c) {
ly(a);
return
}
yield a.match.onReady.promise;
hy(a, 4);
fx(a.match);
gx(a.match)
})
}
function ky(a) {
return r(function * () {
oy(a);
yield Xk();
return vs(a.v)
})
}
function ly(a) {
const b = Tk;
b ? (a.i = new Ix(a.V, a.j, a.gamepad, b, c=>{
py(a, c)
}), a.i.load().then(() =>{
Yk();
hy(a, 2);
rs(a.V)
})) : py(a, !1)
}
function py(a, b) {
r(function * () {
yield my(a);
return b ? qy(a) : 2 === E(fy.g, 1, 1) ? ry(a) : a.jd()
})
}
function hy(a, b) {
switch (a.state) {
case 2:
a.i.dispose();
a.i = null;
break;
case 4:
a.match.dispose();
a.match = null;
break;
case 5:
a.o.dispose();
a.o = null;
break;
case 6:
a.v = null
}
a.state = b
}
function my(a) {
return r(function * () {
oy(a);
yield Yk();
return vs(a.v)
})
}
function qy(a, b = !1) {
return r(function * () {
var c = Ur(a.ya, F(fy.g, eg, 2), b);
a.g = new et(a.j, !0, !0, c, () =>{
a.u && (a.u.start(), S(108))
}, b);
hy(a, 3);
c = yield c;
return sy(a, 3, c)
})
}
function ry(a, b = !1) {
const c = F(fy.g, eg, 2);
a.g = new et(a.j, !0, !1, Promise.resolve(c), () =>{
a.u && (a.u.start(), S(108))
}, b);
hy(a, 3);
return sy(a, 2, c)
}
function sy(a, b, c) {
return r(function * () {
fy.set(b, c);
const d = (() =>{
if (1 === b) return () =>r(function * () {
return {
connectionInfo: yield a.ya.jd(fg.Zd),
ob: void 0
}
});
if (!c) throw Error('$');
return () =>r(function * () {
a.u = yield Jx(c, fl('H21_HAT', null));
const {
ob: e,
connectionInfo: f
}
= yield a.u.join(g=>{
let h;
null == (h = a.g) || $s(h, g)
}, () =>{
let g;
null != (g = a.g) && (g.Nb = !0, g.Da || S(116), g.Da = !0)
});
a.u = null;
return {
ob: e,
connectionInfo: f
}
})
}) ();
try {
const {
connectionInfo: e,
ob: f
}
= yield d();
mk(10);
yield ny(a, e, f)
} catch (e) {
a.H()
} finally {
a.ya.reset()
}
})
}
function ny(a, b, c) {
return r(function * () {
const d = yield c ? Bp(a, b, c) : zp(a, b);
gy(a, d);
yield Cp(d);
mk(11)
})
}
function oy(a) {
6 !== a.state && (hy(a, 6), a.v = new ws)
}
var ty = class extends ci {
constructor(a, b) {
super ();
this.j = b;
this.state = 1;
this.u = this.O = this.i = this.o = this.v = this.match = this.g = null;
this.title = new sx(() =>{
document.activeElement && document.activeElement.blur();
a: {
var c = document.getElementsByTagName('INPUT');
for (const d of c) if ('q' === d.name) {
c = d;
break a
}
c = null
}
c && c.setAttribute('data-saf', 'true');
N.width = L;
N.height = vg;
Zr(this.j);
iy(this)
});
this.gamepad = new Sr;
this.V = new us(this.j, this.gamepad, a);
this.ya = (() =>new dy(this.H.bind(this))) ();
vl(rl(), 0, 0)
}
Qc() {
this.title.Qc(!1)
}
wake() {
switch (this.state) {
case 2:
this.i.wake();
break;
case 4:
this.match.wake()
}
}
jd() {
this.g = new et(this.j, !1, !1);
hy(this, 3);
return sy(this, 1)
}
H() {
3 === this.state && this.g ? ct(this.g) : (hy(this, 7), this.O || (this.O = new Pr(this.j, () =>{
document.location.reload()
})), Or(this.O))
}
update(a) {
switch (this.state) {
case 1:
a = this.title;
switch (a.state) {
case 1:
a.j && a.Qc(!0);
break;
case 2:
cm(a.i) && a.g()
}
break;
case 6:
var b = this.v;
b.j.update(a);
for (const c of b.i) c.update(a);
b.g += a;
this.i ? Hx(this.i, a) : this.match && ex(this.match, a);
break;
case 2:
Hx(this.i, a);
break;
case 3:
0 ===
this.g.state && this.match && (b = this.match.g.g) && bt(this.g, b.Na, b.Ua);
b = this.g;
b.i && b.i.update(a);
b.v += a;
b.Na.update(a);
b.u && b.u.update(a);
b.j && b.j.update(a);
b.ya && b.ya.update(a);
b.va && b.va.update(a);
b.yb && b.yb.update(a);
switch (b.state) {
case 7:
cm(b.u) && (at(b, 1), vm(b.u));
break;
case 1:
1000 <= b.v && at(b, 2);
break;
case 2:
cm(b.j) && at(b, 3);
break;
case 3:
500 <= b.v && at(b, 4);
break;
case 4:
b.O.update(a),
3000 <= b.v && at(b, 5)
}
b.H && b.H.update(a);
if (5 === this.g.state && Yw(this.match)) {
if (a = this.match.g.g) b = new nn,
B(b, 1, 14),
B(b, 2, a.id),
B(b, 3, !0),
a.ya.Ed(b);
hy(this, 4);
fx(this.match);
gx(this.match)
}
break;
case 4:
ex(this.match, a);
break;
case 5:
b = this.o;
b.v += a;
b.o && b.j.update(a);
switch (b.state) {
case 0:
3000 <= b.v && kr(b, 1)
}
if (3 === this.o.state) this.match = null,
qy(this);
else if (4 === this.o.state) switch (this.match = null, E(fy.g, 1, 1)) {
case 3:
qy(this, !0);
break;
case 2:
ry(this, !0);
break;
case 1:
this.jd()
}
}
}
render(a) {
switch (this.state) {
case 1:
this.title.render(a);
break;
case 6:
this.v.render(a);
break;
case 2:
this.i.render(a, ey);
break;
case 3:
this.g.render(a);
break;
case 4:
this.match.render(a, ey);
break;
case 5:
this.o.render(a);
break;
case 7:
this.O.render(a)
}
}
};
var uy = {
};
function vy() {
throw Error('aa');
}
vy.prototype.g = null;
vy.prototype.toString = function () {
return this.Ke
};
function wy() {
vy.call(this)
}
ta(wy, vy);
wy.prototype.Ze = uy;
var xy = function (a) {
function b(c) {
this.Ke = c
}
b.prototype = a.prototype;
return function (c, d) {
c = new b(String(c));
void 0 !== d && (c.g = d);
return c
}
}(wy);
const yy = {
'\x00': '&#0;',
'\t': '&#9;',
'\n': '&#10;',
'\v': '&#11;',
'\f': '&#12;',
'\r': '&#13;',
' ': '&#32;',
'"': '&quot;',
'&': '&amp;',
'\'': '&#39;',
'-': '&#45;',
'/': '&#47;',
'<': '&lt;',
'=': '&#61;',
'>': '&gt;',
'`': '&#96;',
'…': '&#133;',
' ': '&#160;',
'\u2028': '&#8232;',
'\u2029': '&#8233;'
};
function zy(a) {
return yy[a]
}
const Ay = /[\x00\x22\x26\x27\x3c\x3e]/g,
By = /[\x00\x22\x27\x3c\x3e]/g,
Cy = /^[a-zA-Z0-9+\/_-]+={0,2}$/,
Dy = /<(?:!|\/?([a-zA-Z][a-zA-Z0-9:\-]*))(?:[^>'"]|"[^"]*"|'[^']*')*>/g,
Ey = /</g; /*
Copyright The Closure Library Authors.
SPDX-License-Identifier: Apache-2.0
*/
function Fy() {
var a = Gy,
b = wa || (wa = new Vi);
a = a(Hy, void 0);
if (ma(a)) if (a instanceof vy) {
if (a.Ze !== uy) throw Error('ba');
a = Ge(a.toString())
} else a = Fe('zSoyz');
else a = Fe(String(a));
b = b.g;
var c = a;
a = Ui(b, 'DIV');
Xa ? (c = Je(Ke, c), Me(a, c), a.removeChild(a.firstChild)) : Me(a, c);
if (1 == a.childNodes.length) b = a.removeChild(a.firstChild);
else for (b = b.createDocumentFragment(); a.firstChild; ) b.appendChild(a.firstChild);
return b
}
const Hy = {
};
function Gy(a, b) {
(a = b && b.Rg) ? (a = String(a), a = Cy.test(a) ? a : 'zSoyz', a = ' nonce="' + (null != a && a.Ze === uy ? String(String(a.Ke).replace(Dy, '').replace(Ey, '&lt;')).replace(By, zy) : String(a).replace(Ay, zy)) + '"') : a = '';
a = xy('<style' + a + '>\n#hplogo{-webkit-transition:opacity 200ms;-o-transition:opacity 200ms;transition:opacity 200ms}#fpdoodle #hplogo.ddl-fpdoodleready_{opacity:1}#hpcanvas{background:none;pointer-events:all}#fpdoodle body,#sadoodle body{background:#000;-webkit-transition:background 200ms;-o-transition:background 200ms;transition:background 200ms}#fpdoodle .ddl-ntp_,#sadoodle .ddl-ntp_{background:transparent}.ddl-expanderHide_{opacity:0}.ddl-closeFullscreenBtn_{z-index:3000}.ddl-playButtonStatic18_{position:absolute;top:32%;left:50%;-webkit-transform:translate(-35%,-50%) scale(1);-ms-transform:translate(-35%,-50%) scale(1);-o-transform:translate(-35%,-50%) scale(1);transform:translate(-35%,-50%) scale(1)}.ddl-playButtonStatic_{position:absolute;left:0;top:0;height:100%;width:100%;background-image:url(/logos/2021/halloween21/r1030_5e329/Halloween21-CTAGreenButton.png);background-position:center;-webkit-background-size:contain;-o-background-size:contain;background-size:contain;background-repeat:no-repeat}.ddl-playButtonStatic18_.ddl-playButtonAnimated_{-webkit-animation:play18Animation 2s ease-in-out infinite;-o-animation:play18Animation 2s ease-in-out infinite;animation:play18Animation 2s ease-in-out infinite}.ddl-playButtonStatic_.ddl-playButtonAnimated_{-webkit-animation:playAnimation 2s ease-in-out infinite;-o-animation:playAnimation 2s ease-in-out infinite;animation:playAnimation 2s ease-in-out infinite}@keyframes playAnimation{0%{background-image:url(/logos/2021/halloween21/r1030_5e329/Halloween21-CTAGreenButton.png)}50%{background-image:url(/logos/2021/halloween21/r1030_5e329/Halloween21-CTAPurpleButton.png)}}@keyframes play18Animation{0%{-webkit-transform:translate(-35%,-50%) scale(1);-ms-transform:translate(-35%,-50%) scale(1);-o-transform:translate(-35%,-50%) scale(1);transform:translate(-35%,-50%) scale(1)}50%{-webkit-transform:translate(-35%,-50%) scale(1.4);-ms-transform:translate(-35%,-50%) scale(1.4);-o-transform:translate(-35%,-50%) scale(1.4);transform:translate(-35%,-50%) scale(1.4)}100%{-webkit-transform:translate(-35%,-50%) scale(1);-ms-transform:translate(-35%,-50%) scale(1);-o-transform:translate(-35%,-50%) scale(1);transform:translate(-35%,-50%) scale(1)}}.ddl-shareLinkContainer_{position:absolute;width:60%;height:36px;top:0;margin:0 auto;display:-webkit-box;display:-moz-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;align-items:center;-webkit-justify-content:flex-start;justify-content:flex-start;word-wrap:break-word}.ddl-shareLink_{color:#000;background:none;overflow:hidden;width:100%;text-align:center;vertical-align:middle;-webkit-user-select:all;-moz-user-select:all;-ms-user-select:all;-webkit-user-select:all;-moz-user-select:all;-ms-user-select:all}.ddl-shareButton_{position:absolute;width:44px;height:44px;bottom:-22px;right:-22px;opacity:0.75;pointer-events:all;cursor:pointer}.ddl-shareLinkCopied_{color:#000;position:absolute;top:160px;left:50%;padding:10px 15px;-webkit-border-radius:30px;-moz-border-radius:30px;border-radius:30px;background-color:rgba(255,255,255,0.7);-webkit-transform:translate(-50%,-100%);-ms-transform:translate(-50%,-100%);-o-transform:translate(-50%,-100%);transform:translate(-50%,-100%);-webkit-transition:transform .2s ease-out,opacity .2s ease-out;-o-transition:transform .2s ease-out,opacity .2s ease-out;transition:transform .2s ease-out,opacity .2s ease-out;opacity:0}.ddl-shareLinkCopied_.ddl-visible_{-webkit-transform:translate(-50%,0%);-ms-transform:translate(-50%,0%);-o-transform:translate(-50%,0%);transform:translate(-50%,0%);opacity:1.0}.ddl-hplogocta_{width:100%;height:100%;-webkit-background-size:contain;-o-background-size:contain;background-size:contain;background-position:center;border:none;overflow:hidden;position:absolute;left:0;top:0;z-index:10;cursor:pointer;padding:0;-webkit-transition:opacity 500ms;-o-transition:opacity 500ms;transition:opacity 500ms;opacity:0;pointer-events:auto}.ddl-hplogocta_.ddl-showCta_{opacity:1}.ddl-hplogocta_.ddl-ctaHideDuringLightbox_{display:none}.ddl-closeFullscreenBtn_{pointer-events:all;cursor:pointer;position:absolute;top:5px;right:5px;z-index:3000}.ddl-domRootLightboxed_{left:0;top:0}.ddl-contentHide_{display:none}#ddlDomRoot{pointer-events:none}.ddl-lightboxMode_,#hplogo.ddl-lightboxMode_{position:absolute;top:0;left:0;height:100%;width:100%;z-index:1000;overflow:hidden}.ddl-lightboxContentContainer_{position:relative;height:100%;width:100%}.ddl-lightboxEnabled_ .ddl-lightboxContentContainer_{height:90%;width:90%}.ddl-lightboxContent_{-webkit-transform-origin:0 0;-ms-transform-origin:0 0;-o-transform-origin:0 0;transform-origin:0 0}.ddl-lightboxContainer_{position:absolute;display:-webkit-box;display:-moz-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;align-items:center;-webkit-justify-content:center;justify-content:center;width:100%;height:100%}.ddl-lightboxBackground_{opacity:0;background-color:rgba(0,0,0,0.8)}.ddl-lightboxEnabled_{opacity:1;-webkit-transition:opacity 500ms;-o-transition:opacity 500ms;transition:opacity 500ms}\n</style>');
return xy(a)
};
function Iy() {
const a = document.getElementById('hplogo'),
b = document.getElementById('ddlDomRoot'),
c = document.getElementById('ctaRoot'),
d = document.getElementById('hpcanvas');
if (null === a || null === b || null === c || null === d) throw Error('ca');
return {
scale: 1,
orientation: 'landscape-primary',
isFullscreen: !1,
Md: !1,
width: 960,
height: 540,
oa: a,
Pb: b,
Rb: c,
Jb: d
}
};
var Ky = class {
constructor(a) {
this.j = a;
Jy(a)
}
};
function Ly(a, b) {
a.Va.style.display = b ? 'block' : 'none'
}
var Ny = class {
constructor(a, b) {
this.Va = My();
this.Va.style.top = '10px';
this.Va.style.right = '10px';
this.Va.style.width = '52px';
this.Va.style.height = '52px';
this.Va.style.cursor = 'pointer';
this.Va.style.position = 'absolute';
this.Va.style.pointerEvents = 'all';
this.Va.style.background = 'transparent';
this.Va.style.display = 'none';
this.Va.setAttribute('role', 'button');
this.Va.setAttribute('aria-label', 'Close');
this.Va.tabIndex = 0;
si(this.Va, 'click', b);
si(this.Va, 'keydown', c=>{
32 !== c.keyCode && 13 !== c.keyCode || b()
});
a.appendChild(this.Va)
}
};
const My = () =>{
var a = 52 * (window.devicePixelRatio || 1);
const b = document.createElement('canvas');
b.width = a;
b.height = a;
const c = b.getContext('2d');
c.fillStyle = 'rgba(0,0,0,.3)';
c.arc(a / 2, a / 2, a / 2, 0, 2 * Math.PI);
c.fill();
c.strokeStyle = '#fff';
c.lineWidth = a / 52 * 3.5;
const d = a / 52 * 2;
c.beginPath();
c.moveTo(a / 4 + d, a / 4 + d);
c.lineTo(3 * a / 4 - d, 3 * a / 4 - d);
c.stroke();
c.beginPath();
c.moveTo(3 * a / 4 - d, a / 4 + d);
c.lineTo(a / 4 + d, 3 * a / 4 - d);
c.stroke();
return b
};
function Oy(a) {
if (ek()) setTimeout(() =>{
Py(a)
}, 300);
else if (Qy(a), zf && of.includes('Safari')) si(a.Rb, 'click', () =>{
Py(a)
}, !0),
si(a.oa, 'keypress', b=>{
'Enter' === b.key && Py(a)
}, !0);
else {
const b = d=>{
'Enter' === d.key && d.currentTarget === d.target && (Bi(a.Rb, 'click', c, !0), Bi(a.oa, 'keypress', b, !0), Py(a))
},
c = () =>{
Bi(a.Rb, 'click', c, !0);
Bi(a.oa, 'keypress', b, !0);
Py(a)
};
ti(a.Rb, 'click', c, !0);
si(a.oa, 'keypress', b, !0)
}
}
function Qy(a) {
(xf() ? '1' === pf.g.get('scta') : document.getElementById('fkbx') || vf()) || (a.u.start(), a.i && a.j && a.i.classList.add(a.j))
}
function Ry(a) {
a.i && a.j && a.i.classList.remove(a.j);
lx(a.u)
}
function Sy(a) {
return r(function * () {
if (a.o) return a.o;
a.Rb.classList.remove(a.g.Ne);
a.o = Ty();
yield a.o;
a.i && a.i.remove();
a.Rb.remove()
})
}
function Py(a) {
r(function * () {
a.O && (yield Sy(a));
a.H()
})
}
function Ty() {
return new Promise(a=>{
setTimeout(a, 500)
})
}
function Uy(a) {
0 !== a.Bc && a.Rb.classList.add(a.g.Le)
}
var Vy = class {
constructor(a, b, c, d, e, f = !0) {
this.i = b;
this.j = c;
this.v = d;
this.H = e;
this.O = f;
this.Bc = 1;
this.o = null;
this.g = {
Je: 'ddl-hplogocta_',
Ne: 'ddl-showCta_',
Le: 'ddl-ctaHideDuringLightbox_'
};
this.oa = a.oa;
this.Rb = a.Rb;
this.Rb.classList.add(this.g.Je);
this.Rb.classList.add(this.g.Ne);
b && this.Rb.appendChild(b);
this.u = new mx(g=>{
this.v(g)
});
Oy(this)
}
};
const Wy = rf() && of.includes('OS 12_');
function Xy(a, b, c) {
a.style.position = 'absolute';
a.style.top = '0';
a.style.left = '0';
a.style.width = '100%';
a.style.height = '100%';
a.style.direction = 'ltr';
a.dataset.width = b.toString();
a.dataset.height = c.toString()
}
function Yy(a, b = !1) {
const c = a.g.parentElement ? a.g.parentElement.offsetWidth : a.oa.offsetWidth,
d = a.g.parentElement ? a.g.parentElement.offsetHeight : a.oa.offsetHeight;
a.j && (0 === window.scrollX && 0 === window.scrollY || window.scrollTo(0, 0));
if (c !== a.u || d !== a.o || a.i.isFullscreen !== a.v || b) {
b = Number(a.g.dataset.width);
var e = Number(a.g.dataset.height);
if (xf()) throw Error('N');
var f = !dk() || !I() || yf() || sf() && rf() || qf() ? !1 : b < e !== c < d;
var g = (a.i.Md = f) ? Math.min(c / e, d / b) : Math.min(c / b, d / e),
h = g * b,
k = g * e;
a.i.scale = g;
g = `scale(${ g }, ${ g })`;
var l = (h - b) / 2;
var m = (k - e) / 2;
var n = f ? Math.abs(c - k) / 2 : Math.abs(c - h) / 2,
w = f ? Math.abs(d - h) / 2 : Math.abs(d - k) / 2;
f ? (f = (h - k) / 2, h = l - f + n, m = m + f + w, g += 'rotate(90deg)') : (h = n + l, m += w);
Tf(a.g, 'TransformOrigin', 'center center');
Tf(a.g, 'Transform', g);
Qf(a.g, 'position', 'absolute', 'width', `${ b }px`, 'height', `${ e }px`, 'left', `${ h }px`, 'top', `${ m }px`);
Wy && a.j && (b = document.documentElement, e = b.getBoundingClientRect(), e.width === c && e.height === d || Qf(b, 'width', `${ c }px`, 'height', `${ d }px`));
a.j && !of.includes('CriOS') && 0 < c && document.body.clientWidth !==
c && (document.body.clientWidth < document.body.scrollWidth && Qf(document.body, 'width', `${ Math.min(document.body.scrollWidth, c) }px`), document.body.clientWidth > c && Qf(document.body, 'width', `${ c }px`));
a.j && Qf(a.oa, 'height', '100%', 'width', '100%');
a.u = c;
a.o = d;
a.v = a.i.isFullscreen
}
}
var Zy = class {
constructor(a) {
this.i = a;
this.o = this.u = 0;
this.v = !1;
this.oa = a.oa;
this.g = document.querySelector('#uidsdoodle') ? a.oa : a.Pb;
Xy(this.g, a.width, a.height);
this.j = dk();
Yy(this);
window.addEventListener('resize', () =>{
Yy(this)
})
}
setSize(a, b) {
this.g.dataset.width = a.toString();
this.g.dataset.height = b.toString()
}
};
const $y = document[Vf(document, 'exitFullscreen')],
az = Vf(document, 'fullscreenElement'),
bz = Vf(document, 'fullscreenEnabled');
function cz(a) {
a.i && window.screen.orientation && window.screen.orientation.lock && window.screen.orientation.lock(a.i).catch(() =>{
})
}
function dz(a, b) {
a.i = b;
a.g.orientation = b;
document[az] && cz(a)
}
var fz = class {
constructor(a) {
this.g = a;
this.i = null;
this.oa = a.oa;
a = Vf(this.oa, 'requestFullscreen');
this.o = this.oa[a];
a = !(!document[bz] || !$y);
if (xf()) throw Error('N');
if (this.j = (rf() ? !1 : wf() && !(sf() && rf() || sf() && !rf()) || uf() && I()) && a) Qf(document.body, 'margin', '0'),
Qf(this.oa, 'overflow', 'visible', 'width', '100%', 'height', '100%'),
document.body.scrollLeft = 0,
si(window, 'scroll', ez, !0)
}
exitFullscreen() {
$y.call(document);
this.g.isFullscreen = !!document[az]
}
};
const ez = a=>{
a.preventDefault();
a.stopPropagation();
return !1
};
const gz = a=>new Promise(b=>{
setTimeout(b, a)
});
function hz(a, b) {
const c = document.createElement('div');
c.classList.add('ddl-lightboxContainer_');
c.classList.add('ddl-lightboxBackground_');
a.oa.appendChild(c);
const d = document.createElement('div');
d.classList.add('ddl-lightboxContentContainer_');
c.appendChild(d);
b.classList.add('ddl-lightboxContent_');
Qf(b, 'position', 'relative', 'left', '50%', 'top', '50%');
d.appendChild(b);
b = new Ny(b, () =>{
iz(a)
});
c.appendChild(b.Va);
window.addEventListener('resize', () =>{
a.i()
});
return {
Va: b,
Ec: c,
ze: d
}
}
function iz(a) {
r(function * () {
a.g && (Ci(a.j), a.oa.classList.remove('ddl-lightboxMode_'), a.Ec.classList.remove('ddl-lightboxBackground_'), a.Ec.classList.remove('ddl-lightboxEnabled_'), a.g = !1, a.u(), Ly(a.Va, !1), I() || !of.includes('Safari') || of.includes('Chrome') || (a.oa.style.display = 'none', a.oa.offsetWidth, a.oa.style.display = 'block'), yield gz(0))
})
}
function jz(a) {
return r(function * () {
a.g || (yield gz(0), a.oa.classList.add('ddl-lightboxMode_'), a.Ec.classList.add('ddl-lightboxBackground_'), a.Ec.getBoundingClientRect(), a.Ec.classList.add('ddl-lightboxEnabled_'), a.g = !0, a.i(), a.j = si(document, 'keydown', b=>{
27 === b.keyCode && iz(a)
}), Ly(a.Va, !0), yield gz(500))
})
}
var kz = class {
constructor(a, b, c, d, e = () =>{
}, f = () =>{
}) {
this.oa = a;
this.o = b;
this.i = e;
this.j = null;
this.g = !1;
this.i = e;
this.u = f;
const {
Va: g,
Ec: h,
ze: k
}
= hz(this, b);
this.Va = g;
this.Ec = h;
this.ze = k;
this.setSize(c, d)
}
setSize(a, b) {
Qf(this.ze, 'maxWidth', `${ a }px`, 'maxHeight', `${ b }px`);
Qf(this.o, 'width', `${ a }px`, 'height', `${ b }px`)
}
};
var lz = a=>{
if (rf() && (wf() || uf())) for (const b of a) si(b, 'touchmove', c=>{
1 !== c.scale && c.preventDefault()
}, {
passive: !1
})
},
mz = a=>{
for (const b of a) si(b, 'contextmenu', c=>{
c.preventDefault()
}, {
passive: !1
})
};
let nz = null;
function Jy(a) {
Dq(a.O, a.Pb, [
'mousedown',
'mouseout',
'touchstart'
], b=>{
a.o.handleEvent(b)
});
Dq(a.O, document, [
'mouseup',
'mousemove',
'touchend',
'touchmove',
'contextmenu'
], b=>{
a.o.handleEvent(b)
})
}
function oz() {
var a = new URLSearchParams(window.location.search);
const b = a.get('hl') || 'en',
c = a.get('gl') || 'us';
let d;
switch (a.get('cta')) {
case 'a':
d = 0;
break;
case 's':
d = 1;
break;
default:
d = 2
}
a = '1' === a.get('se') ? !0 : !1;
return {
hl: b,
gl: c,
Sg: d,
rd: a
}
}
function pz(a) {
if (zf) tg(a.i.Nf);
else {
a.H.start();
a.ya = !0;
a.Da = !0;
if (document.querySelector('#uidsdoodle')) {
if (!a.Na.rd) return;
window.parent.postMessage({
Xe: 'resizeDoodle',
width: a.i.width,
height: a.i.height,
duration: 150,
preserveAspectRatio: !0
}, '*');
const b = new Promise(d=>{
window.addEventListener('message', e=>{
'resizeComplete' === e.data.Xe && d()
})
}),
c = new Promise(d=>{
setTimeout(d, 1000)
});
Promise.race([b,
c]).then(() =>{
S(0);
Uy(a.j);
qz(a.V);
Yy(a.u, !0);
Zr(a.o)
})
} else rz(a, () =>{
S(0);
Yy(a.u, !0)
});
a.oa.removeAttribute('title');
a.doodle.Qc()
}
}
function sz(a) {
lz([document,
a.oa,
a.Pb,
a.Jb]);
mz([a.oa,
a.Pb,
a.Jb]);
Dq(a.O, a.oa, 'touchend', () =>{
var b = a.fullscreen;
b.j && !document[az] && (b.o.call(b.oa), cz(b), b.g.isFullscreen = !!document[az]);
hs(a.Ba)
})
}
function rz(a, b) {
a.v ? tz(a, b) : ck() && a.i.rd ? (a.va = new rx(a.oa, () =>{
}), qx(a.va, a.i.width, a.i.height, b)) : (b(), Zr(a.o))
}
function tz(a, b) {
r(function * () {
a.wa = new kz(a.oa, a.Pb, a.i.width, a.i.height, () =>{
Yy(a.u, !0);
Zr(a.o)
}, () =>{
a.lf()
});
yield uz(a);
b();
a.Pb.addEventListener('click', () =>vz(a));
si(a.oa, 'keypress', c=>{
'Enter' === c.key && c.target === c.currentTarget && vz(a)
}, !0)
})
}
function wz(a) {
Zr(a.o);
a.ya && a.Da ? ((document.getElementById('fkbx') || vf()) && nz && (Ci(nz), nz = null), a.H.start()) : Qy(a.j);
a.doodle.Fe()
}
function uz(a) {
return r(function * () {
Uy(a.j);
qz(a.V);
let b,
c;
null == (b = a.Fa) || null == (c = b.Yg) || c.call(b);
yield jz(a.wa)
})
}
function vz(a) {
return r(function * () {
yield uz(a);
wz(a)
})
}
var yz = class {
constructor(a) {
this.i = a;
this.Da = this.ya = !1;
this.doodle = this.Fa = null;
this.Na = oz();
this.g = Iy();
this.oa = this.g.oa;
this.Oa = this.oa.title;
this.Jb = this.g.Jb;
this.Pb = this.g.Pb;
this.g.width = this.i.width;
this.g.height = this.i.height;
(this.v = fk()) && !document.querySelector('#uidsdoodle') && this.Pb.classList.add('ddl-domRootLightboxed_');
let b;
this.Ba = new ks(null != (b = a.Ug) ? b : 60000, () =>{
lx(this.H);
Ry(this.j);
Qj()
}, () =>{
this.Fe()
});
this.O = new Bq(this);
this.o = new as(this.g);
this.fullscreen = new fz(this.g);
let c;
dz(this.fullscreen, null != (c = this.i.orientation) ? c : 'landscape-primary');
this.u = new Zy(this.g);
this.Va = new Ny(this.Pb, () =>{
this.fullscreen.exitFullscreen()
});
this.Va.Va.classList.add('ddl-closeFullscreenBtn_');
this.j = new Vy(this.g, this.i.Hd.dg, this.i.Hd.Of, () =>{
}, () =>{
pz(this)
}, !1 !== this.i.Hd.Zg && !this.v && !zf);
this.V = new xz(this.g.Pb, this.j.g.Je, this.i.Hd.Bc);
this.H = new mx(d=>{
this.update(d)
});
sz(this);
Yy(this.u)
}
setSize(a, b) {
this.g.width = a;
this.g.height = b;
this.u.setSize(a, b);
let c;
null == (c = this.wa) || c.setSize(a, b);
Yy(this.u, !0)
}
Fe() {
let a;
!this.v || (null == (a = this.wa) ? 0 : a.g) ? wz(this) : Qy(this.j)
}
update(a) {
this.va && this.va.update(a);
Ly(this.Va, !!document[az]);
this.doodle.Ta(a)
}
rd() {
return !this.v && ck()
}
lf() {
lx(this.H);
Ry(this.j);
Qj();
this.oa.setAttribute('title', this.Oa);
var a = this.j;
0 !== a.Bc && (a.Rb.classList.remove(a.g.Le), Qy(a));
a = this.V;
if (0 !== a.Bc) for (const d of a.Pb.children) d.classList.contains(a.g) || d.classList.add('ddl-contentHide_');
Yy(this.u, !0);
let b,
c;
null == (b = this.Fa) || null == (c = b.lf) || c.call(b)
}
};
function qz(a) {
if (0 !== a.Bc) for (const b of a.Pb.children) b.classList.contains(a.g) || b.classList.remove('ddl-contentHide_')
}
class xz {
constructor(a, b, c) {
this.Pb = a;
this.g = b;
this.Bc = c
}
};
function zz(a) {
const b = new XMLHttpRequest;
b.open('GET', a);
return new Promise((c, d) =>{
b.send();
b.onreadystatechange = () =>{
if (4 == b.readyState) if (200 == b.status && b.responseText) a: {
var e = b.responseText;
e.startsWith(')]}\'\n') && (e = e.substring(5));
let f = {
};
try {
f = JSON.parse(e)
} catch (g) {
d(e);
break a
}
f.hasOwnProperty('ddllog') && (f = f.ddllog);
f.hasOwnProperty('__err__') ? d(f.__err__) : c(f)
} else d(b)
}
})
}
function Az(a, b, c = () =>{
}, d = !1) {
d = d ? '//www.google.com' : '';
d = new Se('ddllog'.startsWith('/') ? `${ d }${ 'ddllog' }` : `${ d }/async/${ 'ddllog' }`);
Ve(d, b);
d = d.toString();
a.g++;
c(a.g);
return zz(d).catch(e=>1 > a.g ? a.i(2000 * Math.pow(2, a.g - 1)).then(() =>Az(a, b, c)) : Promise.reject(e)).finally(() =>a.g = 0)
}
class Bz {
constructor(a) {
this.g = 0;
this.i = a
}
};
class Cz extends Bz {
constructor() {
super (a=>new Promise(b=>setTimeout(b, a)))
}
};
var Dz = class extends H {
constructor(a) {
super (a)
}
};
var Ez = () =>{
var a = hg;
if (sg() && rg()) return Promise.resolve();
a = `_fmt:jspb,doodle:${ a },slot:0,` + 'type:3,cta:1';
(document.getElementById('fkbx') || vf()) && (a += ',ntp:1');
sg() && (a += ',impr:0');
const b = new Ze;
b.add('async', a);
return Az(new Cz, b, void 0, !1).then(c=>{
c = new Dz(c);
!sg() && Wb(c, 2) && (og = (new Se(Wb(c, 2))).g.get('ved', ''));
!rg() && Wb(c, 3) && (qg = Wb(c, 3))
}).catch(() =>Promise.resolve())
};
const Fz = Qg.Wa(),
Rj = ak.Wa();
function Gz() {
nk();
const a = document.getElementById('hplogo');
var b = document.getElementById('hpcanvas');
if (a && b) {
(document.getElementById('fkbx') || vf()) && document.body.classList.add('ddl-ntp_');
a.appendChild(Fy());
b.width = L;
b.height = vg;
var c = b.getContext('2d');
b = Ez();
Nj(ak.Wa(), a);
Promise.all([Vk(),
b]).then(() =>{
var d = document.createElement('div');
d.classList.add('ddl-playButtonStatic_');
{
var e = {
width: L,
height: vg,
Nf: hg,
orientation: J ? 'portrait-primary' : 'landscape-primary',
Hd: {
dg: d,
Of: 'ddl-playButtonAnimated_',
Bc: 1
}
};
d = [
c
];
var f = Hz;
null != e.rd || (e.rd = !0);
e = new yz(e);
const g = e.g.Jb;
e.g.oa && g ? (d = new f(e, ...d), e.doodle = d) : console.error('Unable to render the Doodle. This is expected during unit tests but may be a cause for concern elsewhere.')
}
})
}
}((a, b) =>{
window.google && google.doodle && (b && sa('google.doodle.cpDestroy', b), sa('google.doodle.cpInit', function () {
b && b();
a()
}))
}) (Gz, function () {
for (const a of Fz.g) a.i = [
]
});
Gz();
class Hz extends Ky {
constructor(a, b) {
super (a);
dz(a.fullscreen, 'portrait-primary');
a.g.oa.classList.add('ddl-fpdoodleready_');
J || a.setSize(463, 200);
this.g = new ty(a.Ba, a.o);
this.i = b
}
Qc() {
this.j.setSize(L, vg);
this.g.Qc()
}
Ta(a) {
this.g.update(a);
this.g.render(this.i)
}
Fe() {
this.g.wake();
var a = Rj;
Promise.resolve();
a.o && a.g && a.g.resume();
a.o = !1
}
};
}).call(this);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment