| 0 | witness #0utf8����J��+L ���o�Ʉ�{�/�
?�mV�jP>&1tT�͒*o��� �����|������J��+L ���o�Ʉ�{�/�
?�mV�jP>&1tT�͒*o��� �����|��asciiu-_e7J:^+L dqboIQ{L/v
?5mVZjP>&1tTM*oy$O
(FN|u-_e7J:^+L dqboIQ{L/v
?5mVZjP>&1tTM*oy$O
(FN|hexf5addfe5b74abade2b4c09e417f1e26fffc984d17bcc2ff60d3f02b56d56da6a50173e263174115488cd920c2a141e6f170f03f9a4cf1a208aa885c6ce7c979df5addfe5b74abade2b4c09e417f1e26fffc984d17bcc2ff60d3f02b56d56da6a50173e263174115488cd920c2a141e6f170f03f9a4cf1a208aa885c6ce7c979d #1utf8 eŢ/w6�l�
�
}��HM�ܙ+}���s� cordtext/javascript M(function () {
var t = window;
var e = function () {
function n(r) {
if (e[r]) {
return e[r].exports;
}
var c = (e[r] = { i: r, l: false, exports: {} });
t[r].call(c.exports, c, c.exports, n);
c.l = true;
return c.exports;
}
var t = [
function (t, e) {
function e(e, n) {
var r = t.createEvent('Event');
r.initEvent(e, true, false);
n.dispatchEvent(r);
}
function n(e) {
return function (n,M c) {
if (e !== a.exit || t[r.element]) {
t.addEventListener(
r.events.change,
function e() {
n();
t.removeEventListener(r.events.change, e, false);
},
false
);
t.addEventListener(
r.events.error,
function e() {
c(new TypeError());
t.removeEventListener(r.events.error, e, false);
}M,
false
);
return;
} else {
setTimeout(function () {
c(new TypeError());
}, 1);
return;
}
};
}
var t = document;
var r;
var c;
var i = {
w3: {
enabled: 'fullscreenEnabled',
element: 'fullscreenElement',
request: 'requestFullscreen',
exit: 'exitFullscreen',
events: { change:M 'fullscreenchange', error: 'fullscreenerror' },
},
webkit: {
enabled: 'webkitFullscreenEnabled',
element: 'webkitCurrentFullScreenElement',
request: 'webkitRequestFullscreen',
exit: 'webkitExitFullscreen',
events: {
change: 'webkitfullscreenchange',
error: 'webkitfullscreenerror',
},
},
moz: {
enabled: 'mozFullScreenEnabled',
element: 'mozFullScreenElemMent',
request: 'mozRequestFullScreen',
exit: 'mozCancelFullScreen',
events: {
change: 'mozfullscreenchange',
error: 'mozfullscreenerror',
},
},
ms: {
enabled: 'msFullscreenEnabled',
element: 'msFullscreenElement',
request: 'msRequestFullscreen',
exit: 'msExitFullscreen',
events: {
change: 'MSFullscreenChange',
error: 'MSFullscreenErroMr',
},
},
};
var a = i.w3;
for (c in i) {
if (i[c].enabled in t) {
r = i[c];
break;
}
}
if (!(a.enabled in t) && !!r) {
t.addEventListener(
r.events.change,
function (n) {
n.stopPropagation();
n.stopImmediatePropagation();
t[a.enabled] = t[r.enabled];
t[a.element] = t[r.element];
e(a.events.change, n.target);M
},
false
);
t.addEventListener(
r.events.error,
function (t) {
e(a.events.error, t.target);
},
false
);
t[a.enabled] = t[r.enabled];
t[a.element] = t[r.element];
t[a.exit] = function () {
var e = t[r.exit]();
if (!e && Promise) {
return new Promise(n(a.exit));
} else {
return e;
}
};
M Element.prototype[a.request] = function () {
var t = this[r.request].apply(this, arguments);
if (!t && Promise) {
return new Promise(n(a.request));
} else {
return t;
}
};
}
},
function (t, e, n) {
var r = n(2);
var c = n(3);
if (typeof (c = c.__esModule ? c.default : c) == 'string') {
c = [[t.i, c, '']];
}
var i = { insert: 'head', singleton: false };
M r(c, i);
var a = c.locals ? c.locals : {};
t.exports = a;
},
function (t, e, n) {
'use strict';
function o(t) {
var e = -1;
for (var n = 0; n < a.length; n++) {
if (a[n].identifier === t) {
e = n;
break;
}
}
return e;
}
function s(t, e) {
var n = {};
var r = [];
for (var c = 0; c < t.length; c++) {
var i = t[c];
M var s = e.base ? i[0] + e.base : i[0];
var f = n[s] || 0;
var u = ''.concat(s, ' ').concat(f);
n[s] = f + 1;
var d = o(u);
var l = { css: i[1], media: i[2], sourceMap: i[3] };
if (d === -1) {
a.push({ identifier: u, updater: b(l, e), references: 1 });
} else {
a[d].references++;
a[d].updater(l);
}
r.push(u);
}
return r;
}
funMction f(t) {
var e = document.createElement('style');
var r = t.attributes || {};
if (r.nonce === void 0) {
var c = n.nc;
if (c) {
r.nonce = c;
}
}
Object.keys(r).forEach(function (t) {
e.setAttribute(t, r[t]);
});
if (typeof t.insert == 'function') {
t.insert(e);
} else {
var a = i(t.insert || 'head');
if (!a) {
throw new ErrMor(
"Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid."
);
}
a.appendChild(e);
}
return e;
}
function l(t, e, n, r) {
var c = n
? ''
: r.media
? '@media '.concat(r.media, ' {').concat(r.css, '}')
: r.css;
if (t.styleSheet) {
t.styleSheet.cssText = d(e, c);
} else {
var i = Mdocument.createTextNode(c);
var a = t.childNodes;
if (a[e]) {
t.removeChild(a[e]);
}
if (a.length) {
t.insertBefore(i, a[e]);
} else {
t.appendChild(i);
}
}
}
function h(t, e, n) {
var r = n.css;
var c = n.media;
var i = n.sourceMap;
if (c) {
t.setAttribute('media', c);
} else {
t.removeAttribute('media')M;
}
if (i && btoa) {
r += '\n/*# sourceMappingURL=data:application/json;base64,'.concat(
btoa(unescape(encodeURIComponent(JSON.stringify(i)))),
' */'
);
}
if (t.styleSheet) {
t.styleSheet.cssText = r;
} else {
while (t.firstChild) {
t.removeChild(t.firstChild);
}
t.appendChild(document.createTextNode(r));
}
}
function b(t, e) {
M var n;
var r;
var c;
if (e.singleton) {
var i = p++;
n = A || (A = f(e));
r = l.bind(null, n, i, false);
c = l.bind(null, n, i, true);
} else {
n = f(e);
r = h.bind(null, n, e);
c = function () {
var t = n;
if (t.parentNode === null) {
return;
}
t.parentNode.removeChild(t);
};
}
r(Mt);
return function (e) {
if (e) {
if (
e.css === t.css &&
e.media === t.media &&
e.sourceMap === t.sourceMap
) {
return;
}
r((t = e));
} else {
c();
}
};
}
var r;
var c = function () {
if (r === void 0) {
r = Boolean(window && document && document.all && !window.atob);
}
M return r;
};
var i = (function () {
var t = {};
return function (e) {
if (t[e] === void 0) {
var n = document.querySelector(e);
if (
window.HTMLIFrameElement &&
n instanceof window.HTMLIFrameElement
) {
try {
n = n.contentDocument.head;
} catch (t) {
n = null;
}
}
t[e] = n;
M }
return t[e];
};
})();
var a = [];
var u = [];
var d = function (t, e) {
u[t] = e;
return u.filter(Boolean).join('\n');
};
var A = null;
var p = 0;
t.exports = function (t, e) {
if (!(e = e || {}).singleton && typeof e.singleton != 'boolean') {
e.singleton = c();
}
var n = s((t = t || []), e);
return function (t) {
t = t || [];
M if (Object.prototype.toString.call(t) === '[object Array]') {
for (var r = 0; r < n.length; r++) {
var c = o(n[r]);
a[c].references--;
}
var i = s(t, e);
for (var f = 0; f < n.length; f++) {
var u = o(n[f]);
if (a[u].references === 0) {
a[u].updater();
a.splice(u, 1);
}
}
n = i;
}
};
};M
},
function (t, e, n) {
(e = n(4)(false)).push([
t.i,
'/* All sizing currently done in pixels */\r\n\r\n.js7800_noselect {\r\n -webkit-touch-callout: none; /* iOS Safari */\r\n -webkit-user-select: none; /* Safari */\r\n -khtml-user-select: none; /* Konqueror HTML */\r\n -moz-user-select: none; /* Old versions of Firefox */\r\n -ms-user-select: none; /* Internet Explorer/Edge */\r\n user-select: none; /* Non-prefixed version, currently\rM\n supported by Chrome, Opera and Firefox */\r\n padding:0;\r\n margin:0;\r\n}\r\n\r\n.js7800 {\r\n margin-left: auto;\r\n margin-right: auto;\r\n box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.4), 0 6px 20px 0 rgba(0, 0, 0, 0.39);\r\n border-radius: 16px;\r\n background: #000;\r\n padding: 20px;\r\n}\r\n\r\n.js7800__inner-container {\r\n position: relative;\r\n text-align: center;\r\n}\r\n\r\n.js7800__screen {\r\n margin: auto;\r\n background: #000;\r\n /* cursor: none; */\rM\n image-rendering: optimizeSpeed; /* Older versions of FF */\r\n image-rendering: -moz-crisp-edges; /* FF 6.0+ */\r\n image-rendering: -webkit-optimize-contrast; /* Safari */\r\n image-rendering: -o-crisp-edges; /* OS X & Windows Opera (12.02+) */\r\n image-rendering: pixelated; /* Awesome future-browsers */\r\n /*-ms-interpolation-mode: nearest-neighbor;*/ /* IE */ \r\n}\r\n\r\n.js7800__logo {\r\Mn left: 50%;\r\n top: 50%;\r\n -webkit-transform: translate(-50%, -50%);\r\n -moz-transform: translate(-50%, -50%);\r\n transform: translate(-50%, -50%);\r\n position: absolute;\r\n visibility: hidden;\r\n opacity: 0;\r\n}\r\n\r\n.js7800__logo .atari7800 {\r\n margin-top: -40px;\r\n padding: 0 3em;\r\n}\r\n\r\n.js7800__logo--show {\r\n visibility: visible;\r\n opacity: 1;\r\n transition: visibility 0s linear 0s, opacity 1s;\r\n}\r\n\r\n.js7800__logo--hide {\r\n visibility: hidden;\r\n opacity: 0;\r\nM transition: visibility 1s linear 1s, opacity 1s; \r\n}\r\n\r\n.js7800__controls {\r\n border-top: 10px solid black;\r\n background-color: #151515;\r\n margin-left: auto;\r\n margin-right: auto;\r\n font-size: 12px;\r\n border-radius: 5px;\r\n}\r\n\r\n#js7800__fullscreen-container:-webkit-full-screen {\r\n position:fixed;\r\n width: 100%;\r\n background-color: black;\r\n}\r\n\r\n.js7800__controls-switch {\r\n position: relative;\r\n display: inline-block;\r\n width: 29px;\r\n height: 18px;\r\n margiMn: 0 5px 0 5px;\r\n}\r\n\r\n.js7800__controls-switch input {\r\n opacity: 0;\r\n width: 0;\r\n height: 0;\r\n}\r\n\r\n.js7800__controls-switch-slider {\r\n position: absolute;\r\n cursor: pointer;\r\n top: 0;\r\n left: 0;\r\n right: 0;\r\n bottom: 0;\r\n background-color: #666;\r\n -webkit-transition: .4s;\r\n transition: .4s;\r\n opacity: 0.6;\r\n border-radius: 3px;\r\n}\r\n\r\n.js7800__controls-switch-slider:hover {\r\n opacity: 1\r\n}\r\n\r\n.js7800__controls-switch-slider:before {\r\n position:M absolute;\r\n content: "";\r\n height: 12px;\r\n width: 11px;\r\n left: 3px;\r\n bottom: 3px;\r\n background-color: #DDD;\r\n border-radius: 3px;\r\n -webkit-transition: .4s;\r\n transition: .4s;\r\n}\r\n\r\ninput:checked+.js7800__controls-switch-slider:before {\r\n -webkit-transform: translateX(12x);\r\n -ms-transform: translateX(12px);\r\n transform: translateX(12px);\r\n}\r\n\r\n.js7800__controls-button {\r\n background-color: #ce2f37;\r\n border: none;\r\n color: white;\r\n text-align: center;\Mr\n font-size: 10px;\r\n margin: 0 5px 0 5px;\r\n opacity: .6;\r\n transition: .3s;\r\n display: inline-block;\r\n text-decoration: none;\r\n cursor: pointer;\r\n padding: 3px 2px 3px 2px;\r\n min-width: 48px;\r\n border-radius: 3px;\r\n}\r\n\r\n.js7800__controls-button:hover {\r\n opacity: 1\r\n}\r\n\r\n.js7800__controls-img-button {\r\n cursor: pointer;\r\n width: 24px;\r\n height: 24px;\r\n opacity: .6;\r\n margin: 0 4px 0 4px;\r\n border: 0px solid white;\r\n vertical-align: middle;\r\n}\r\n\rM\n.js7800__controls-img-button:hover {\r\n opacity: .9\r\n}\r\n\r\n.js7800__controls-container {\r\n display: flex;\r\n margin: 0 2px 0 2px;\r\n padding: 4px 0 4px 0;\r\n flex-wrap: nowrap;\r\n user-select: none;\r\n /* max-width: 800px; */\r\n}\r\n\r\n.js7800__controls-group {\r\n border: 0px solid white;\r\n flex: 1 0 150px;\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n}\r\n\r\n.js7800__controls-group-start {\r\n border: 0px solid white;\r\n flex: 1 0 1px;\r\n text-alMign: left;\r\n display: flex;\r\n align-items: center;\r\n justify-content: flex-start;\r\n}\r\n\r\n.js7800__controls-group-end {\r\n border: 0px solid white;\r\n flex: 1 0 1px;\r\n display: flex;\r\n align-items: center;\r\n justify-content: flex-end;\r\n}\r\n',
'',
]);
t.exports = e;
},
function (t, e, n) {
'use strict';
t.exports = function (t) {
var e = [];
e.toString = function () {
return this.map(function (e) {
M var n = (function (t, e) {
var n = t[1] || '';
var r = t[3];
if (!r) {
return n;
}
if (e && typeof btoa == 'function') {
a = r;
o = btoa(unescape(encodeURIComponent(JSON.stringify(a))));
s =
'sourceMappingURL=data:application/json;charset=utf-8;base64,'.concat(
o
);
var c = '/*M# '.concat(s, ' */');
var i = r.sources.map(function (t) {
return '/*# sourceURL='
.concat(r.sourceRoot || '')
.concat(t, ' */');
});
return [n].concat(i).concat([c]).join('\n');
}
var a;
var o;
var s;
return [n].join('\n');
})(e, t);
if (e[2]) {
return '@media '.concat(e[2], 'M {').concat(n, '}');
} else {
return n;
}
}).join('');
};
e.i = function (t, n, r) {
if (typeof t == 'string') {
t = [[null, t, '']];
}
var c = {};
if (r) {
for (var i = 0; i < this.length; i++) {
var a = this[i][0];
if (a != null) {
c[a] = true;
}
}
}
for (var o M= 0; o < t.length; o++) {
var s = [].concat(t[o]);
if (!r || !c[s[0]]) {
if (n) {
if (s[2]) {
s[2] = ''.concat(n, ' and ').concat(s[2]);
} else {
s[2] = n;
}
}
e.push(s);
}
}
};
return e;
};
},
function (t, e, n) {
'use strict';
function H(t, e, n, r, c) {
vMar i = (1 << e) - 1;
var a = 0;
var o = 0;
for (var s = 0; s < i; s++) {
t[o] = e == 17 ? a >>> 6 : a;
o++;
a = ((a << n) + (a >>> r) + c) & i;
}
}
function Y() {
G = 0;
W = 0;
y = 0;
for (let t = 0; t < 32; t++) {
J[t] = 0;
}
(function () {
var t = 511;
for (var e = 0; e < 511; e++) {
var n = ((t >> 0) & 1) ^ ((t >>M 5) & 1);
t >>= 1;
t |= n << 8;
C[e] = 1 & t;
}
})();
(function () {
var t = 131071;
for (var e = 0; e < 131071; e++) {
var n = ((t >> 8) & 1) ^ ((t >> 13) & 1);
var r = 1 & t;
t = (65407 & (t >>= 1)) | (n << 7);
t |= r << 16;
E[e] = 1 & t;
}
})();
S = 0;
x = 0;
D = 0;
N = 0;
k =M (457605120 / g) | 0;
for (var t = 0; t <= 3; t++) {
v[t] = 0;
_[t] = 0;
m[t] = 0;
w[t] = 0;
}
for (var e = 0; e < 8; e++) {
z[e] = 228;
}
H(B, 9, 8, 1, 384);
H(j, 17, 16, 1, 114688);
O = 0;
F = 0;
M = 0;
R = 0;
P = 0;
U = 0;
Z = 0;
Q[0] = 1;
Q[1] = 1;
Q[2] = 0;
Q[3] = 0;
et(trueM);
}
function V(t) {
if (G-- > 0) {
console.log('pokey_getRegister: %d', t);
}
var e = 0;
var n = 15 & t;
if (n < 8) {
if ((r = z[n]) <= W) {
return r;
} else {
return W;
}
}
switch (t) {
case 16392:
var r = 0;
for (var c = 0; c < 8; c++) {
if (z[n] <= W) {
r &= ~(1 << c);
M }
}
return r;
case 16394:
var i = U + Jo();
if (3 & O) {
var a = (i - Z) >>> 2;
R = (a + R) % 511 | 0;
P = (a + P) % 131071 | 0;
} else {
R = 0;
P = 0;
}
F = 128 & M ? B[R] : j[P];
Z = i;
e = F ^= 255;
}
return e;
}
function X(t, e) {
switch (
M (G-- > 0 && console.log('pokey_setRegister: %d %d', t - 16384, e),
(J[t - 16384] = e),
t)
) {
case 16395:
if (!(4 & O)) {
W = 0;
}
return;
case 16399:
O = e;
if (4 & e) {
W = 228;
}
return;
case 16384:
w[0] = e;
break;
case 16385:
m[0] = e;
breakM;
case 16386:
w[1] = e;
break;
case 16387:
m[1] = e;
break;
case 16388:
w[2] = e;
break;
case 16389:
m[2] = e;
break;
case 16390:
w[3] = e;
break;
case 16391:
m[3] = e;
break;
case 16392:
M = e;
}
}
function q(t, e) {
M_[t] = (_[t] + 1) & 255;
if (_[t] == 0 && T[t] == 0) {
T[t] = e;
}
}
function K(t) {
if (T[t] > 0) {
T[t]--;
return T[t] == 0;
} else {
return 0;
}
}
function $(t) {
_[t] = 255 ^ w[t];
T[t] = 0;
}
function tt(t) {
if (128 & m[t] || I[x]) {
if (32 & m[t]) {
v[t] ^= 1;
} else if (64 & m[t]) {
Mv[t] = L[S];
} else {
v[t] = 128 & M ? C[D] : E[N];
}
}
}
function et(t) {
y = 0;
if (t) {
for (var e = 0; e < 2048; e++) {
b[e] = 0;
}
}
}
function ot(t, e) {
at[t] = e;
ct.SetReg(t, e);
}
function Ct() {
for (var t = 0; t < 131072; t++) {
ut[t] = 0;
}
dt = false;
lt = false;
M ht = false;
At = false;
pt = false;
bt = false;
gt = false;
yt = false;
wt = 0;
mt = 0;
Mt = 0;
vt = 0;
Lt = 0;
It = 0;
(function () {
ct.Reset();
for (let t = 0; t < at.length; t++) {
at[t] = 0;
}
})();
Et = 0;
St = 2;
xt = -1;
}
function Dt() {
return lt;
}
funcMtion Nt() {
return dt;
}
function _t() {
return ht;
}
function Tt(t) {
yt = t;
}
function jt(t, e) {
this.topic = t;
if (e) {
this.onEvent = e;
}
}
function Rt(t) {
if (Bt) {
var e = new Bt.Listener();
e.getTopic = function () {
return t.getTopic();
};
e.onEvent = function (e) {
t.onEvent(e);
M };
Bt.addListener(e);
} else {
var n = t.getTopic();
var r = kt[n];
if (!r) {
r = [];
kt[n] = r;
}
r.push(t);
}
}
function Pt(t, e) {
if (Bt) {
Bt.fireEvent(t, e);
} else {
var n = kt[t];
if (n) {
for (var r = 0; r < n.length; r++) {
n[r].onEvent(e);
}
}
M }
}
function Ot(t) {
for (var e in ((Bt = t), kt)) {
var n = kt[e];
for (var r = 0; r < n.length; r++) {
Rt(n[r]);
}
}
}
function Xt(t) {
Qt = t;
}
function qt(t) {
Ht = t;
Ft[642] = -21 & Ft[642] & 255;
Ft[642] = 255 & (Ft[642] | (20 & (~Ft[643] | Ht)));
}
function Kt() {
return Wt;
}
function $t() {
returnM Zt;
}
function pe(t) {
le[t]++;
if (le[t] == 31) {
le[t] = 0;
}
if (
(2 & se[t]) == 0 ||
((1 & se[t]) == 0 && ce[le[t]]) ||
((1 & se[t]) == 1 && ne[le[t]])
) {
if (4 & se[t]) {
ie[t] = ie[t] ? 0 : ue[t];
} else if (8 & se[t]) {
if (se[t] == 8) {
he[t]++;
if (he[t] == 511) {
he[t] = 0;
}M
ie[t] = re[he[t]] ? ue[t] : 0;
} else {
ie[t] = ne[le[t]] ? ue[t] : 0;
}
} else {
de[t]++;
if (de[t] == 15) {
de[t] = 0;
}
ie[t] = ee[de[t]] ? ue[t] : 0;
}
}
}
function be(t) {
Ae = 0;
if (t) {
for (var e = 0; e < 2048; e++) {
te[e] = 0;
}
}
}
function MUe() {
for (var t = 0; t < 65536; t++) {
Ne[t] = 0;
Te[t] = 0;
_e[t] = 1;
}
for (t = 0; t < 16384; t++) {
_e[t] = 0;
}
ze = false;
}
function Ze(t) {
var e;
if (
Fe &&
((t >= 1136 && t < 1152) ||
(Le() && t >= 1104 && t < 1136) ||
(Ie() && t >= 16384 && t < 32768) ||
(Ce() && t >= 1120 && t <= 1121))
) {
M return Ee(t);
}
if (
!Re &&
ke &&
((!Be && !je && t >= 16384 && t <= 16399) ||
(je && t >= 2048 && t < 2080) ||
(Be && t >= 1104 && t < 1136))
) {
return ye(je ? t - 2048 + 16384 : Be ? t - 1104 + 16384 : t);
}
if (t >= 32 && t <= 63 && t != 40) {
return 0;
}
switch (t) {
case 644:
case 646:
Ne[645] &= 127;
M return Ne[644];
case 645:
case 647:
e = Ne[645];
Ne[645] &= 127;
return e;
default:
if (We) {
if (Oe && t >= 16384 && t <= 32767) {
return Te[t];
}
if (Ge === hn || Ge === yn) {
if (t >= Kr() && t <= tc()) {
return Te[t];
}
} else {
if (Ge == gn && t >= 16384 && t M<= 32767) {
return Te[t];
}
if (t >= 32768 && t <= 49151) {
return Te[t];
}
if (t >= 49152 && t <= 65535) {
return Te[t];
}
}
}
return Ne[t];
}
}
function Qe(t) {
var e = Ze(t);
if (e < 0) {
console.error('Less than zero memory read: %d %d', t, e);
}
M return e;
}
function He(t) {
We = true;
var e = Ze(t);
We = false;
if (e < 0) {
console.error('Less than zero memory read: %d %d', t, e);
}
return e;
}
function Ye(t, e) {
if (e < 0) {
console.error('Less than zero memory write: %d %d', t, e);
}
if (
Fe &&
((t >= 1136 && t < 1152) ||
(Le() && t >= 1104 && t < 1136) ||
M (Ie() && t >= 16384 && t < 32768) ||
(Ce() && t >= 1120 && t <= 1121))
) {
Se(t, e);
} else if (
ke &&
((!Be && !je && t >= 16384 && t <= 16399) ||
(je && t >= 2048 && t < 2080) ||
(Be && t >= 1104 && t < 1136))
) {
ge(je ? t - 2048 + 16384 : Be ? t - 1104 + 16384 : t, e);
} else if (!_e[t] || (Oe && t >= 49152 && t <= 65535)) {
if (xe && t >= 4096 && t <= 6143 && De) {
M De.write(t, e);
}
if (t >= 0 && t <= 15) {
if (!ze) {
if (1 & e) {
ze = true;
console.log('Lock: ' + e);
Ne[40] = 128;
}
if (4 & e && nr()) {
if (!Xr()) {
$n();
}
}
}
} else {
switch (t) {
case 36:
Ne[36] = 1;
M break;
case 8:
case 9:
case 10:
case 11:
case 12:
case 13:
case 40:
break;
case 21:
we(21, e);
break;
case 22:
we(22, e);
break;
case 23:
we(23, e);
break;
case 24:
we(24, e);
brMeak;
case 25:
we(25, e);
break;
case 26:
we(26, e);
break;
case 642:
me(e);
break;
case 640:
Me(e);
break;
case 660:
case 668:
ve(660, e);
break;
case 661:
case 669:
ve(661, e);
M break;
case 662:
case 670:
ve(662, e);
break;
case 663:
case 671:
ve(663, e);
break;
default:
if (Oe && t >= 49152 && t <= 65535) {
Te[t - 49152 + 16384] = e;
} else {
Ne[t] = e;
if (t >= 8256 && t <= 8447) {
Ne[t - 8192] = e;
}M else if (t >= 8512 && t <= 8703) {
Ne[t - 8192] = e;
} else if (t >= 64 && t <= 255) {
Ne[t + 8192] = e;
} else if (t >= 320 && t <= 511) {
Ne[t + 8192] = e;
} else if (t >= 10240 && t <= 12287) {
Ne[t - 2048] = e;
} else if (t >= 8192 && t <= 10239) {
Ne[t + 2048] = e;
}
}
}
M }
} else {
tr(t, e);
}
}
function Ve(t, e, n, r) {
var c = false;
var i = 0;
if (Pe) {
var a = Cr();
if (a === hn || a === yn) {
i = e;
qr(t);
$r(t + e - 1);
c = true;
} else if (
t === 32768 ||
t === 49152 ||
(a === gn && t === 16384)
) {
i = 131072;
c = Mtrue;
}
}
if (t + e <= 65536 && n != null) {
for (var o = 0; o < e; o++) {
Ne[t + o] = n[o + r];
_e[t + o] = 1;
if (c) {
Te[t + o] = n[o + r + i];
}
}
}
}
function Je(t, e) {
if (t + e <= 65536) {
for (var n = 0; n < e; n++) {
Ne[t + n] = 0;
_e[t + n] = 0;
if (Oe && t === 16384) {
Te[tM + n] = 0;
}
}
}
}
function Xe(t, e) {
var n = t[0];
var r = t[1];
var c = t[2];
var i = t[3];
n = Ke(n, r, c, i, e[0], 7, -680876936);
i = Ke(i, n, r, c, e[1], 12, -389564586);
c = Ke(c, i, n, r, e[2], 17, 606105819);
r = Ke(r, c, i, n, e[3], 22, -1044525330);
n = Ke(n, r, c, i, e[4], 7, -176418897);
i = Ke(i, n, r, c, e[5], 12, 1200080426);
c = Ke(c, i, Mn, r, e[6], 17, -1473231341);
r = Ke(r, c, i, n, e[7], 22, -45705983);
n = Ke(n, r, c, i, e[8], 7, 1770035416);
i = Ke(i, n, r, c, e[9], 12, -1958414417);
c = Ke(c, i, n, r, e[10], 17, -42063);
r = Ke(r, c, i, n, e[11], 22, -1990404162);
n = Ke(n, r, c, i, e[12], 7, 1804603682);
i = Ke(i, n, r, c, e[13], 12, -40341101);
c = Ke(c, i, n, r, e[14], 17, -1502002290);
n = $e(
n,
(r = Ke(r, c, i, n, e[15], 22M, 1236535329)),
c,
i,
e[1],
5,
-165796510
);
i = $e(i, n, r, c, e[6], 9, -1069501632);
c = $e(c, i, n, r, e[11], 14, 643717713);
r = $e(r, c, i, n, e[0], 20, -373897302);
n = $e(n, r, c, i, e[5], 5, -701558691);
i = $e(i, n, r, c, e[10], 9, 38016083);
c = $e(c, i, n, r, e[15], 14, -660478335);
r = $e(r, c, i, n, e[4], 20, -405537848);
n = $e(n, r, c, i, e[9], 5, 56844M6438);
i = $e(i, n, r, c, e[14], 9, -1019803690);
c = $e(c, i, n, r, e[3], 14, -187363961);
r = $e(r, c, i, n, e[8], 20, 1163531501);
n = $e(n, r, c, i, e[13], 5, -1444681467);
i = $e(i, n, r, c, e[2], 9, -51403784);
c = $e(c, i, n, r, e[7], 14, 1735328473);
n = tn(
n,
(r = $e(r, c, i, n, e[12], 20, -1926607734)),
c,
i,
e[5],
4,
-378558
);
i = Mtn(i, n, r, c, e[8], 11, -2022574463);
c = tn(c, i, n, r, e[11], 16, 1839030562);
r = tn(r, c, i, n, e[14], 23, -35309556);
n = tn(n, r, c, i, e[1], 4, -1530992060);
i = tn(i, n, r, c, e[4], 11, 1272893353);
c = tn(c, i, n, r, e[7], 16, -155497632);
r = tn(r, c, i, n, e[10], 23, -1094730640);
n = tn(n, r, c, i, e[13], 4, 681279174);
i = tn(i, n, r, c, e[0], 11, -358537222);
c = tn(c, i, n, r, e[3], 16, -722521979);
rM = tn(r, c, i, n, e[6], 23, 76029189);
n = tn(n, r, c, i, e[9], 4, -640364487);
i = tn(i, n, r, c, e[12], 11, -421815835);
c = tn(c, i, n, r, e[15], 16, 530742520);
n = en(
n,
(r = tn(r, c, i, n, e[2], 23, -995338651)),
c,
i,
e[0],
6,
-198630844
);
i = en(i, n, r, c, e[7], 10, 1126891415);
c = en(c, i, n, r, e[14], 15, -1416354905);
r = en(r, c, i, n, e[M5], 21, -57434055);
n = en(n, r, c, i, e[12], 6, 1700485571);
i = en(i, n, r, c, e[3], 10, -1894986606);
c = en(c, i, n, r, e[10], 15, -1051523);
r = en(r, c, i, n, e[1], 21, -2054922799);
n = en(n, r, c, i, e[8], 6, 1873313359);
i = en(i, n, r, c, e[15], 10, -30611744);
c = en(c, i, n, r, e[6], 15, -1560198380);
r = en(r, c, i, n, e[13], 21, 1309151649);
n = en(n, r, c, i, e[4], 6, -145523070);
i = en(i, n, r, c, e[M11], 10, -1120210379);
c = en(c, i, n, r, e[2], 15, 718787259);
r = en(r, c, i, n, e[9], 21, -343485551);
t[0] = on(n, t[0]);
t[1] = on(r, t[1]);
t[2] = on(c, t[2]);
t[3] = on(i, t[3]);
}
function qe(t, e, n, r, c, i) {
e = on(on(e, t), on(r, i));
return on((e << c) | (e >>> (32 - c)), n);
}
function Ke(t, e, n, r, c, i, a) {
return qe((e & n) | (~e & r), t, e, c, i, a);
}
functiMon $e(t, e, n, r, c, i, a) {
return qe((e & r) | (n & ~r), t, e, c, i, a);
}
function tn(t, e, n, r, c, i, a) {
return qe(e ^ n ^ r, t, e, c, i, a);
}
function en(t, e, n, r, c, i, a) {
return qe(n ^ (e | ~r), t, e, c, i, a);
}
function nn(t) {
var n = [];
for (var e = 0; e < 64; e += 4) {
n[e >> 2] =
t.charCodeAt(e) +
(t.charCodeAt(e + 1) << 8) +
(t.charCodeAt(e + M2) << 16) +
(t.charCodeAt(e + 3) << 24);
}
return n;
}
function cn(t) {
var e = '';
for (var n = 0; n < 4; n++) {
e += rn[(t >> (8 * n + 4)) & 15] + rn[(t >> (8 * n)) & 15];
}
return e;
}
function an(t) {
return (function (t) {
for (var e = 0; e < t.length; e++) {
t[e] = cn(t[e]);
}
return t.join('');
})(
(function (t)M {
var n = t.length;
var r = [1732584193, -271733879, -1732584194, 271733878];
for (var e = 64; e <= t.length; e += 64) {
Xe(r, nn(t.substring(e - 64, e)));
}
t = t.substring(e - 64);
var c = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];
for (e = 0; e < t.length; e++) {
c[e >> 2] |= t.charCodeAt(e) << (e % 4 << 3);
}
c[e >> 2] |= 128 << (e % 4 << 3);
M if (e > 55) {
Xe(r, c);
for (e = 0; e < 16; e++) {
c[e] = 0;
}
}
c[14] = 8 * n;
Xe(r, c);
return r;
})(t)
);
}
function on(t, e) {
return (t + e) & 4294967295;
}
function Vn(t) {
if ((Mn == An || Mn == gn || Mn == bn) && Hn <= 65536) {
return 3 & t;
} else {
return t;
}
M }
function Jn(t) {
return 16384 * Vn(t);
}
function Xn(t, e) {
var n = Hn;
if (Pn) {
n >>= 1;
}
var r = Jn(e);
if (r < n) {
sn(t, 16384, Qn, r);
En = e;
}
}
function qn(t) {
if (Pn) {
t >>= 1;
}
if (t <= 65536) {
var e = Mn;
Mn = hn;
console.log('Update: no bits and <= 64k: %d, %d', e, MMn);
} else if (t == 147456) {
e = Mn;
Mn = pn;
console.log('Update: size == 144k: %d, %d', e, Mn);
} else if (t == 131072) {
e = Mn;
Mn = gn;
console.log('Update: size == 128k: %d, %d', e, Mn);
} else {
e = Mn;
Mn = An;
console.log('Update: default for > 64k: %d, %d', e, Mn);
}
}
function Kn(t, e) {
if (e <= 128) {
console.log('CartMridge data is invalid.');
return false;
}
console.log('actual cartridge_size: %d', e);
rr();
var n = new Array();
for (var r = 0; r < 128; r++) {
n[r] = t[r];
}
if (
(function (t) {
var e = ['>', '>'];
for (var n = 0; n < 2; n++) {
if (e[n] != String.fromCharCode(t[n + 1])) {
return false;
}
}
return true;
M })(n)
) {
console.log("Prosystem doesn't support CC2 hacks.");
return false;
}
var c = 0;
if (
!(function (t) {
var e = ['A', 'T', 'A', 'R', 'I', '7', '8', '0', '0'];
for (var n = 0; n < 9; n++) {
if (e[n] != String.fromCharCode(t[n + 1])) {
return false;
}
}
return true;
})(n)
) {
console.lMog('Unable to find cartridge header');
Hn = e;
qn(e);
} else {
console.log('Found cartridge header');
(function (t) {
console.log('Reading cartridge header');
var e = new Array();
for (var n = 0; n < 32; n++) {
e[n] = t[n + 17];
}
wn = '';
for (var r = 0; r < e.length; r++) {
wn += String.fromCharCode(e[r]);
}
consolMe.log('Title: %s', wn);
Hn = t[49] << 24;
Hn |= t[50] << 16;
Hn |= t[51] << 8;
Hn |= t[52];
Mn =
t[53] == 0
? Hn > 131072
? pn
: t[54] == 2 || t[54] == 3
? An
: t[54] == 4 || t[54] == 5 || t[54] == 6 || t[54] == 7
? bn
: t[54] == 8 || t[54] == 9 || t[54] == 10 || t[54] == 11
M? gn
: hn
: t[53] == 2
? 5
: t[53] == 1
? 6
: hn;
Ln = !!(1 & t[54]);
In = !!(64 & t[54]);
Wn = !!(128 & t[53]);
if (In || Wn) {
Ln = true;
}
Cn[0] = t[55];
Cn[1] = t[56];
vn = 1 & t[57];
Sn = 0;
_n = !!(1 & t[63]) || (8 & t[53]) == 8;
Rn =M 3 & t[58];
if (!!(Pn = !!(32 & t[53])) && (Hn === 98304 || Hn === 106496)) {
zn = true;
}
Gn = !!(64 & t[53]);
var c = t[54];
var i = t[53];
if ((10 & c) == 10) {
var a = Mn;
Mn = pn;
console.log('Update: (0x10) bit1 & bit3: %d, %d', a, Mn);
} else if ((18 & c) == 18) {
var a = Mn;
Mn = gn;
console.log('UpdaMte: (0x12) bit1 & bit4: %d, %d', a, Mn);
} else if ((6 & c) == 6) {
a = Mn;
Mn = bn;
console.log('Update: (0x06) bit1 & bit2: %d, %d', a, Mn);
} else if ((2 & c) == 2) {
a = Mn;
Mn = An;
console.log('Update: (0x01) bit1: %d, %d', a, Mn);
} else if (Hn <= 65536 && (4 & c) == 4) {
a = Mn;
Mn = yn;
console.log('Update: (0x04) bit2: %d,M %d', a, Mn);
} else {
qn(Hn);
}
if (Pn) {
if (Mn === hn || Mn === yn) {
if (Mn === hn && Gn) {
a = Mn;
Mn = yn;
console.log(
'Normal cart with halt based ram, switching type: %d, %d',
a,
Mn
);
}
} else if (
(a = Mn) !== (Mn = Gn M? bn : (16 & c) == 16 ? gn : An)
) {
console.log(
'Bank switched banksets, switching type: %d, %d',
a,
Mn
);
}
}
console.log('Header info:');
if (1 & c) {
console.log(' bit0: pokey at $4000');
}
if (2 & c) {
console.log(' bit1: supergame bank switched');
}
if M(4 & c) {
console.log(' bit2: supergame ram at $4000');
}
if (8 & c) {
console.log(' bit3: rom at $4000');
}
if (16 & c) {
console.log(' bit4: bank 6 at $4000');
}
if (32 & c) {
console.log(' bit5: supergame banked ram');
}
if (64 & c) {
console.log(' bit6: pokey at $450');
}
if (128 & c) {
M console.log(' bit7: mirror ram at $4000');
}
if (1 & i) {
console.log(' bit8: activision banking');
}
if (2 & i) {
console.log(' bit9: absolute banking');
}
if (4 & i) {
console.log(' bit10: pokey at $440');
}
if (8 & i) {
console.log(' bit11: ym2151 at $460/$461');
}
if (16 & i) {
M console.log(' bit12: souper');
}
if (32 & i) {
console.log(' bit13: banksets');
}
if (64 & i) {
console.log(' bit14: halt banked ram');
}
if (128 & i) {
console.log(' bit15: pokey@800');
}
console.log(' xm: %s', _n ? '1' : '0');
console.log(' banksets: %s', Pn ? '1' : '0');
console.log(' pokey: %s', Ln ? '1' : '0');
M console.log(' pokey450: %s', In ? '1' : '0');
console.log(' pokey800: %s', Wn ? '1' : '0');
console.log(' pokey write only: %s', zn ? '1' : '0');
console.log(' halt banked ram: %s', Gn ? '1' : '0');
console.log(' tv type: %s', vn ? 'PAL' : 'NTSC');
console.log(
' Save device: [%d]%s%s',
t[58],
2 & t[58] ? ' SaveKey/AtariVox' : '',
1 & t[58] ? ' HSC' : ''
)M;
console.log(' controller1: %d', Cn[0]);
console.log(' controller2: %d', Cn[1]);
console.log(' cartridge_type 53: %d', t[53]);
console.log(' cartridge_type 54: %d', t[54]);
console.log(' cartridge_size: %d', Hn);
console.log('cartridge_type (from header): %d', Mn);
})(n);
c = 128;
if (Hn != (e -= 128)) {
console.log(
'!!! CARTRIDGE SIZE IN HEADER DOES NOT MATCH M!!! : %d %d',
Hn,
e
);
if (e % 1024 == 0) {
console.log(
'!!! ROM size is 1k multiple, using ROM size !!! : %d',
e
);
Hn = e;
} else {
console.log(
'!!! ROM size is not 1k multiple, using header size !!! : %d',
Hn
);
}
}
}
console.log('cartridge_tyMpe: %d', Mn);
console.log('cartridge_size: %d', Hn);
Qn = new Array(Hn);
var i = '';
for (r = 0; r < Hn; r++) {
Qn[r] = t[r + c];
i += String.fromCharCode(Qn[r]);
}
mn = an(i);
console.log('cartridge_digest: %s', mn);
if (mn === '91041aadd1700a7a4076f4005f2c362f') {
console.log('Patching diagnostic cartridge...');
var a = [223, 230];
for (let t = 0; t < a.length; t++) {
M Qn[26348 - c + t] = a[t];
}
}
return true;
}
function $n() {
Yn = true;
var t = Hn;
switch ((Pn && (t >>= 1), Mn)) {
case hn:
sn(65536 - t, t, Qn, 0);
break;
case yn:
sn(65536 - t, t, Qn, 0);
fn(16384, 16384);
break;
case An:
if ((e = t - 16384) < t) {
sn(49152, 16384, Qn, e);
er(0)M;
}
break;
case pn:
if ((e = t - 16384) < t) {
sn(49152, 16384, Qn, e);
sn(16384, 16384, Qn, Jn(0));
er(0);
}
break;
case bn:
if ((e = t - 16384) < t) {
sn(49152, 16384, Qn, e);
fn(16384, 16384);
er(0);
}
break;
case gn:
var e;
if ((e = t - 16384) M< t && Jn(6) < t) {
sn(49152, 16384, Qn, e);
sn(16384, 16384, Qn, Jn(6));
er(0);
}
break;
case 5:
sn(16384, 16384, Qn, 0);
sn(32768, 32768, Qn, Jn(2));
break;
case 6:
if (122880 < t) {
sn(40960, 16384, Qn, 0);
sn(16384, 8192, Qn, 106496);
sn(24576, 8192, Qn, 98304);
sn(32768, 8192, Qn, 122880);
M sn(57344, 8192, Qn, 114688);
}
}
}
function tr(t, e) {
var n = Hn;
switch ((Pn && (n >>= 1), Mn)) {
case An:
case bn:
case gn:
var r = n / 16384;
if (t >= 32768 && t < 49152 && Vn(e) < r) {
er(e);
}
break;
case pn:
r = n / 16384;
if (t >= 32768 && t < 49152 && Vn(e) < r) {
er(e + 1);M
}
break;
case 5:
if (t == 32768 && (e == 1 || e == 2)) {
er(e - 1);
}
break;
case 6:
if (t >= 65408) {
er(7 & t);
}
}
}
function er(t) {
switch (Mn) {
case An:
case bn:
case gn:
case pn:
Xn(32768, t);
break;
case 5:
Xn(16384, tM);
break;
case 6:
Xn(40960, t);
}
}
function nr() {
return Qn != null;
}
function rr() {
Yn = false;
Zn = false;
if (Qn != null) {
Hn = 0;
Qn = null;
wn = '';
Mn = 0;
vn = 0;
Ln = 0;
In = 0;
Wn = 0;
_n = false;
Cn = [1, 1];
En = 0;
Sn = 0;
xnM = 0;
Dn = 0;
Tn = 28;
Nn = false;
kn = 1;
Bn = 0;
jn = false;
Rn = false;
Pn = false;
zn = false;
Gn = false;
}
}
function cr(t) {
if (!Rn || vn != ln) {
console.log(
Rn
? 'Not loading high score cartridge, PAL region.'
: 'High score cartridge is disabled (via db and cart header).'
);
M t(false);
return;
}
var e = dn.getRom();
if (e == null) {
console.log('Unable to locate high score cartridge.');
t(false);
return;
}
console.log('Found high score cartridge.');
if (an(e) != 'c8a73288ab97226c52602204ab894286') {
console.log('High score cartridge hash is invalid.');
t(false);
return;
}
dn.loadSram(function (n) {
if (n) {
M for (var r = 0; r < n.length && r < 2048; r++) {
un(4096 + r, n[r]);
}
for (r = 0; r < e.length; r++) {
un(12288 + r, e.charCodeAt(r));
}
Zn = true;
}
console.log('High score cart loaded: ' + Zn);
t(Zn);
});
}
function ir() {
return vn;
}
function ar() {
return Ln;
}
function or() {
return In;
M }
function sr() {
return Wn;
}
function fr() {
return zn;
}
function ur() {
return _n;
}
function dr() {
if (Un == 2) {
return _n;
} else {
return Un;
}
}
function lr() {
return Pn;
}
function hr() {
return Gn;
}
function Ar() {
return jn;
}
function pr() {
return Nn;M
}
function br() {
return Cn[0] == 2;
}
function gr() {
return Sn;
}
function yr() {
return Tn;
}
function wr() {
return kn;
}
function mr() {
return Bn;
}
function Mr() {
return mn;
}
function vr(t) {
wn = t;
}
function Lr() {
return wn;
}
function Ir() {
return Hn;
}
Mfunction Cr() {
return Mn;
}
function Er(t) {
Mn = t;
}
function Sr(t) {
Ln = t;
}
function xr(t) {
In = t;
}
function Dr(t) {
Cn[0] = t;
}
function Nr(t) {
Cn[1] = t;
}
function _r() {
return Cn[0];
}
function Tr() {
return Cn[1];
}
function kr(t) {
vn = t;
}
function Br(t) {
M Sn = t;
}
function jr(t) {
_n = t;
}
function Rr(t) {
Tn = t;
}
function Pr(t) {
xn = t;
}
function Or(t) {
Dn = t;
}
function Fr() {
return xn;
}
function Gr() {
return Dn;
}
function zr(t) {
Nn = t;
}
function Wr(t) {
kn = t;
}
function Ur(t) {
Bn = t;
}
function ZrM(t) {
jn = t;
}
function Qr(t) {
Rn = t;
}
function Hr() {
return Rn;
}
function Yr(t) {
Un = t;
}
function Vr() {
return Un;
}
function Jr() {
return 2;
}
function Xr() {
return Yn;
}
function qr(t) {
On = t;
}
function Kr() {
return On;
}
function $r(t) {
Fn = t;
}
M function tc() {
return Fn;
}
function ec() {
return En;
}
function _c(t) {
cc((uc + 256) & 65535, t);
uc = (uc - 1) & 255;
}
function Tc() {
return rc(((uc = (uc + 1) & 255) + 256) & 65535);
}
function kc(t) {
if (t) {
fc = fc & ~gc & 255;
} else {
fc |= gc;
}
if (128 & t) {
fc |= Lc;
} else {
fc = Mfc & ~Lc & 255;
}
}
function jc(t) {
if (t) {
Bc.copy(dc);
dc.wPlusEqual(hc.getBLSigned());
if (Bc.getBH() == dc.getBH()) {
Ac++;
} else {
Ac += 2;
}
}
}
function Oc(t) {
Rc.copy(hc);
Pc.copy(hc);
Rc.wMinusEqual(t);
if (Rc.getBH() != Pc.getBH()) {
Ac++;
}
}
function Fc() {
hc.setBLM(rc(dc.wPlusPlus()));
hc.setBH(rc(dc.wPlusPlus()));
}
function Gc() {
hc.setBL(rc(dc.wPlusPlus()));
hc.setBH(rc(dc.wPlusPlus()));
hc.wPlusEqual(oc);
}
function zc() {
hc.setBL(rc(dc.wPlusPlus()));
hc.setBH(rc(dc.wPlusPlus()));
hc.wPlusEqual(sc);
}
function Wc() {
hc.setW(dc.wPlusPlus());
}
function Uc() {
hc.setBL(rc(dc.wPlusPlus()) + oc);
hc.setBH(rc(hcM.getBL() + 1));
hc.setBL(rc(hc.getBL()));
}
function Zc() {
hc.setBL(rc(dc.wPlusPlus()));
hc.setBH(rc(hc.getBL() + 1));
hc.setBL(rc(hc.getBL()));
hc.wPlusEqual(sc);
}
function Qc() {
hc.setW(rc(dc.wPlusPlus()));
}
function Hc() {
hc.setW(rc(dc.wPlusPlus()));
}
function Yc() {
hc.setW(rc(dc.wPlusPlus()));
hc.blPlusEqual(oc);
}
function Vc() {
M hc.setW(rc(dc.wPlusPlus()));
hc.blPlusEqual(sc);
}
function Jc() {
var t = rc(hc.getW());
if (fc & wc) {
var e = ((15 & ac) + (15 & t) + (fc & bc)) & 65535;
var n = ((ac >>> 4) + (t >>> 4)) & 65535;
if (e > 9) {
e = (e + 6) & 65535;
n = (n + 1) & 65535;
}
var r = new nc();
r.setW(ac + t + (fc & bc));
if (r.getBL()) {
fc = fc & ~gc & 255;
M } else {
fc |= gc;
}
if ((8 & n) == 0) {
fc = fc & ~Lc & 255;
} else {
fc |= Lc;
}
if (~(ac ^ t) & ((n << 4) ^ ac) & 128) {
fc |= vc;
} else {
fc = fc & ~vc & 255;
}
if (n > 9) {
n = (n + 6) & 65535;
}
if (n > 15) {
fc |= bc;
} else {
fc = fc & ~bc & 255;
M}
ac = 255 & ((n << 4) | (15 & e));
} else {
var c = new nc();
c.setW(ac + t + (fc & bc));
if (c.getBH()) {
fc |= bc;
} else {
fc = fc & ~bc & 255;
}
if (~(ac ^ t) & (ac ^ c.getBL()) & 128) {
fc |= vc;
} else {
fc = fc & ~vc & 255;
}
kc(c.getBL());
ac = c.getBL();
}
}
function Xc() {
kMc((ac &= rc(hc.getW())));
}
function qc() {
var t = rc(hc.getW());
if (128 & t) {
fc |= bc;
} else {
fc = fc & ~bc & 255;
}
t = (t << 1) & 255;
cc(hc.getW(), t);
kc(t);
}
function Kc() {
var t = rc(hc.getW());
if (t & ac) {
fc = fc & ~gc & 255;
} else {
fc |= gc;
}
fc = (fc = fc & ~vc & 255) & ~Lc & 255;
fc |M= 64 & t;
fc |= 128 & t;
}
function $c() {
var t = rc(hc.getW());
if (ac >= t) {
fc |= bc;
} else {
fc = fc & ~bc & 255;
}
kc((ac - t) & 255);
}
function ti() {
var t = rc(hc.getW());
if (oc >= t) {
fc |= bc;
} else {
fc = fc & ~bc & 255;
}
kc((oc - t) & 255);
}
function ei() {
var t = rc(hc.getW());
M if (sc >= t) {
fc |= bc;
} else {
fc = fc & ~bc & 255;
}
kc((sc - t) & 255);
}
function ni() {
var t = rc(hc.getW());
t = (t - 1) & 255;
cc(hc.getW(), t);
kc(t);
}
function ri() {
kc((ac ^= rc(hc.getW())));
}
function ci() {
var t = rc(hc.getW());
t = (t + 1) & 255;
cc(hc.getW(), t);
kc(t);
}
function iMi() {
dc.copy(hc);
}
function ai() {
kc((ac = rc(hc.getW())));
}
function oi() {
kc((oc = rc(hc.getW())));
}
function si() {
kc((sc = rc(hc.getW())));
}
function fi() {
fc = fc & ~bc & 255;
fc |= 1 & ac;
kc((ac = (ac >>> 1) & 255));
}
function ui() {
var t = rc(hc.getW());
fc = fc & ~bc & 255;
fc |= 1 & t;
t = (t >>> 1) & 255;
M cc(hc.getW(), t);
kc(t);
}
function di() {
kc((ac |= rc(hc.getW())));
}
function li() {
_c(ac);
}
function hi() {
_c((fc |= mc));
}
function Ai() {
kc((ac = Tc()));
}
function pi() {
fc = Tc();
}
function bi() {
var t = rc(hc.getW());
var e = fc;
if (128 & t) {
fc |= bc;
} else {
fc = fc & M~bc & 255;
}
t = (t << 1) & 255;
t |= 1 & e;
cc(hc.getW(), t);
kc(t);
}
function gi() {
var t = rc(hc.getW());
var e = fc;
fc = fc & ~bc & 255;
fc |= 1 & t;
t = (t >>> 1) & 255;
if (1 & e) {
t |= 128;
}
cc(hc.getW(), t);
kc(t);
}
function yi() {
var t = rc(hc.getW());
if (fc & wc) {
var e = new nc();
M e.setW(ac - t - !(fc & bc));
var n = ((15 & ac) - (15 & t) - !(fc & bc)) & 65535;
var r = ((ac >>> 4) - (t >>> 4)) & 65535;
if (n > 9) {
n = (n - 6) & 65535;
r = (r - 1) & 65535;
}
if (r > 9) {
r = (r - 6) & 65535;
}
(c = new nc()).setW(ac - t - !(fc & bc));
if (c.getBH()) {
fc = fc & ~bc & 255;
} else {
fc |= bc;
}
M if ((ac ^ t) & (ac ^ c.getBL()) & 128) {
fc |= vc;
} else {
fc = fc & ~vc & 255;
}
kc(c.getBL());
if (e.getBL()) {
fc = fc & ~gc & 255;
} else {
fc |= gc;
}
ac = 255 & ((r << 4) | (15 & n));
} else {
var c;
(c = new nc()).setW(ac - t - !(fc & bc));
if (c.getBH()) {
fc = fc & ~bc & 255;
} else {
M fc |= bc;
}
if ((ac ^ t) & (ac ^ c.getBL()) & 128) {
fc |= vc;
} else {
fc = fc & ~vc & 255;
}
kc(c.getBL());
ac = c.getBL();
}
}
function wi() {
cc(hc.getW(), ac);
if (hc.getW() < 0) {
console.error('sally_STA: %d, %d', hc.getW(), ac);
HALT = true;
}
}
function mi() {
cc(hc.getW(), oc);
}
M function Mi() {
cc(hc.getW(), sc);
}
function vi() {
kc((oc = ac));
}
function Ii() {
return dc;
}
function Ci() {
return pc;
}
function Ei(t, e, n, r) {
this.Update = function (t, e, n, r) {
this.left = t;
this.top = e;
this.right = n;
this.bottom = r;
this.length = this.right - this.left + 1;
this.height = this.bottom - this.Mtop + 1;
this.area = this.length * this.height;
};
this.Copy = function (t) {
this.Update(t.left, t.top, t.right, t.bottom);
};
this.GetArea = function () {
return this.area;
};
this.GetLength = function () {
return this.length;
};
this.GetHeight = function () {
return this.height;
};
this.Update(t, e, n, r);
}
function Ji(t) {
if (MGi < 160) {
if (t) {
Bi[Gi] = zi | t;
} else if (4 & Si[60]) {
Bi[Gi] = 0;
}
}
Gi = (Gi + 1) & 255;
}
function Xi(t, e) {
var n = 4 & Si[60];
var r = (16 & zi) | t | e;
if ((3 & r || n) && Gi < 160) {
Bi[Gi] = r;
}
Gi = (Gi + 1) & 255;
}
function qi() {
if (Fi.getW() > 32767) {
if (Zi && 4096 & Fi.getW()) {
M return true;
}
if (Ui && 2048 & Fi.getW()) {
return true;
}
}
return false;
}
function Ki(t) {
if (3 & (t &= 255)) {
return Si[32 + t];
} else {
return Si[32];
}
}
function $i() {
var t = Hi ? Si[Fi.getW()] : xi(Fi.getW());
if (Qi) {
if (qi()) {
Gi = (Gi + 2) & 255;
} else {
Xi(12 & t, (1M92 & t) >>> 6);
Xi((48 & t) >>> 4, (3 & t) << 2);
}
} else if (qi()) {
Gi = (Gi + 4) & 255;
} else {
Ji((192 & t) >>> 6);
Ji((48 & t) >>> 4);
Ji((12 & t) >>> 2);
Ji(3 & t);
}
Fi.wPlusPlus();
}
function ta(t, e) {
for (var n = 0; n < 8; n++) {
t[e + n] = 15 & t[e + n];
}
}
function na() {
if (!_i) {
_i = js_Mget_blit_addr();
}
for (var t = 0; t < 77440; t++) {
_i[t] = 0;
}
for (t = 0; t < 160; t++) {
Ti[0][t] = 0;
Ti[1][t] = 0;
}
ji = 0;
Ri = false;
Pi.setW(0);
Oi.setW(0);
Fi.setW(0);
Gi = 0;
zi = 0;
Wi = 0;
Ui = 0;
Zi = 0;
Qi = 0;
Yi = false;
}
function ra() {
for (var t = 0; t < 77440; t++M) {
_i[t] = 0;
}
}
function ia(t) {
for (var e = 0; e < 768; e++) {
ca[e] = t[e];
}
}
function aa(t) {
var e = atob(t.split(',')[1]);
var n = new Array();
for (var r = 0; r < e.length; r++) {
n.push(e.charCodeAt(r));
}
return n;
}
function va(t) {
console.log('Set sample rate: %d', t);
g = 31440;
console.log('set pokey samplMe rate: %d', g);
(function (t) {
console.log('Set YM sample rate: ' + t);
ct.SetRate(3579545, t);
})(t);
ga = t;
}
function Da(t, e, n) {
for (var r = 0; r < n; r++) {
Ea[Sa++] = e ? (t[r] / 255 + e[r] / 128) / 2 : t[r] / 255;
if (Sa == 16384) {
Sa = 0;
}
}
}
function Na() {
Aa = Da;
if (Ia && (window.AudioContext || window.webkitAudioContextM)) {
Ia.close();
Ia = null;
Ca = null;
}
if (!Ia && (window.AudioContext || window.webkitAudioContext)) {
console.log('init audio');
var t = La;
if (
(Ia = window.AudioContext
? new window.AudioContext({ sampleRate: t })
: new window.webkitAudioContext()).sampleRate
) {
t = Ia.sampleRate;
}
va(t);
(Ca = Ia.createScriptMProcessor(2048, 0, 1)).onaudioprocess =
function (t) {
var e = t.outputBuffer.getChannelData(0);
var n = 0;
for (var r = e.length; xa != Sa && n < r; ) {
e[n++] = Ea[xa++];
if (xa == 16384) {
xa = 0;
}
}
while (n < r) {
e[n++] = 0;
}
};
Ca.connect(Ia.destination);
var e = functioMn () {
if (Ia.state !== 'running') {
Ia.resume();
}
};
var n = document.documentElement;
n.addEventListener('keydown', e);
n.addEventListener('click', e);
n.addEventListener('drop', e);
n.addEventListener('dragdrop', e);
window.addEventListener('gamepadconnected', e);
}
}
function _a(t) {
La = t;
Na();
}
function ro() {
M if (Ya == Qa || (Ya == Ha && ir() == Qa)) {
Di.Copy(Xa);
Ni.Copy(qa);
ia(eo[no]);
Ho(50);
Vo(313);
_a(31300);
} else {
Di.Copy(Va);
Ni.Copy(Ja);
ia(to[no]);
Ho(60);
Vo(263);
_a(31560);
}
}
function co() {
return to[no];
}
function io() {
return eo[no];
}
function ao() {
returMn no;
}
function oo(t) {
no = t;
}
function so() {
return 3;
}
function jo(t) {
Bo = t;
if (nr()) {
_o = 1;
Eo = false;
xo = 0;
ac = 0;
oc = 0;
sc = 0;
fc = Mc;
uc = 0;
dc.setW(0);
Li = 0;
ro();
be();
Y();
Ct();
Ue();
ra();
na()M;
Xt(0);
qt(0);
zt = false;
Wt = 662;
Ut = 0;
Zt = 0;
Yt = false;
Vt = 0;
Jt = 0;
$n();
if (t) {
cr(function (e) {
Pt('onHighScoreCartLoaded', e);
fc = yc | Mc | gc;
dc.setBL(ic[Cc]);
dc.setBH(ic[Ic]);
No = 24;
Co = true;
t();
});
}
M }
}
function Ro() {
if (_o >= of && _o <= of + 3 && No >= (0 | sf) - 1) {
mo[12] &= 127;
} else {
mo[12] |= 128;
}
}
function zo(t) {
if (Co) {
Eo = t;
}
}
function Wo() {
Co = false;
Eo = false;
rr();
na();
ra();
Ue();
(function () {
Ae = 0;
for (var t = 0; t < 2; t++) {
M ie[t] = 0;
ae[t] = 0;
oe[t] = 0;
se[t] = 0;
fe[t] = 0;
ue[t] = 0;
de[t] = 0;
le[t] = 0;
he[t] = 0;
}
be(true);
})();
be(true);
Y();
et(true);
}
function Uo() {
return Co;
}
function Zo() {
return Eo;
}
function Qo() {
return So;
}
function Ho(t) {
M So = t;
(function (t) {
pa = t;
})(t);
}
function Yo() {
return xo;
}
function Vo(t) {
Do = t;
(function (t) {
ba = t;
})(t);
}
function Jo() {
return No;
}
function Xo() {
const t = new Array(172036);
console.log('Saving game state.');
let e;
let n = 0;
for (e = 0; e < 16; e++) {
t[n + e]M = 'PRO-SYSTEM STATE'.charCodeAt(e);
}
n += 16;
t[n++] = 1;
for (e = 0; e < 4; e++) {
t[n + e] = 0;
}
n += 4;
for (e = 0; e < 32; e++) {
t[n + e] = Mr().charCodeAt(e);
}
n += 32;
t[n++] = ac;
t[n++] = oc;
t[n++] = sc;
t[n++] = fc;
t[n++] = uc;
t[n++] = Ii().getBL();
t[n++] = Ii().getBH();
t[n++] = ec();
for (e = 0;M e < 16384; e++) {
t[n + e] = Ne[e];
}
n += 16384;
if (Cr() == bn) {
for (e = 0; e < 16384; e++) {
t[n + e] = Ne[16384 + e];
}
n += 16384;
}
if (hr()) {
for (e = 0; e < 16384; e++) {
t[n + e] = Te[16384 + e];
}
n += 16384;
}
t[n++] = Qt;
t[n++] = Ht;
t[n++] = zt ? 1 : 0;
t[n++] = 255 & (Kt() >>> 8);
M t[n++] = 255 & Kt();
t[n++] = Ut;
t[n++] = 255 & ($t() >>> 8);
t[n++] = 255 & $t();
if (ur()) {
t[n++] = Nt() ? 1 : 0;
t[n++] = Dt() ? 1 : 0;
t[n++] = _t() ? 1 : 0;
t[n++] = At ? 1 : 0;
t[n++] = pt ? 1 : 0;
t[n++] = bt ? 1 : 0;
t[n++] = gt ? 1 : 0;
t[n++] = yt ? 1 : 0;
t[n++] = wt;
t[n++] = mt;
t[n++] = Mt;
t[n++] = vt;
M t[n++] = Lt;
t[n++] = It;
for (e = 0; e < 131072; e++) {
t[n + e] = ut[e];
}
n += 131072;
}
let r = J;
for (let e = 0; e < r.length; e++) {
t[n++] = r[e];
}
r = at;
for (let e = 0; e < r.length; e++) {
t[n++] = r[e];
}
t.length = n;
return t;
}
function qo(t) {
const e = t.length;
console.log('Loading gameM state.');
let n = 0;
if (hr()) {
n = 16384;
}
if (
e != 16741 + n &&
e != 33125 + n &&
e != 147827 + n &&
e != 164211 + n
) {
console.log('Save buffer has an invalid size.');
return false;
}
var r = 0;
for (let e = 0; e < 16; e++) {
if (String.fromCharCode(t[r + e]) != 'PRO-SYSTEM STATE'[e]) {
console.log('Buffer is not a validM ProSystem save state.');
return false;
}
}
r += 16;
t[r++];
for (let t = 0; t < 4; t++) {}
r += 4;
jo(null);
let c = '';
for (let e = 0; e < 32; e++) {
c += String.fromCharCode(t[r + e]);
}
r += 32;
if (Mr() != c) {
console.log(
'Load state digest [' +
c +
'] does not match loaded cartridge digest [' +
M cartridge_digest +
'].'
);
return false;
}
var i = t[r++];
ac = i;
var a = t[r++];
oc = a;
var o = t[r++];
sc = o;
var s = t[r++];
fc = s;
var f = t[r++];
uc = f;
Ii().setBL(t[r++]);
Ii().setBH(t[r++]);
er(t[r++]);
for (let e = 0; e < 16384; e++) {
Ne[e] = t[r + e];
}
r += 16384;
Mif (Cr() == bn) {
for (let e = 0; e < 16384; e++) {
Ne[16384 + e] = t[r + e];
}
r += 16384;
}
if (hr()) {
for (let e = 0; e < 16384; e++) {
Te[16384 + e] = t[r + e];
}
r += 16384;
}
Xt(t[r++]);
qt(t[r++]);
(function (t) {
zt = t;
})(t[r++] === 1);
let u = t[r++];
let d = t[r++];
var h;
(function (M) {
var t = ((u << 8) & 255) | (255 & d);
Wt = t;
})();
var l = t[r++];
Ut = l;
u = t[r++];
d = t[r++];
Zt = ((u << 8) & 255) | (255 & d);
if (ur()) {
h = t[r++] === 1;
dt = h;
(function (t) {
lt = t;
})(t[r++] === 1);
(function (t) {
ht = t;
})(t[r++] === 1);
(function (t) {
At = t;
})(Mt[r++] === 1);
(function (t) {
pt = t;
})(t[r++] === 1);
(function (t) {
bt = t;
})(t[r++] === 1);
(function (t) {
gt = t;
})(t[r++] === 1);
Tt(t[r++] === 1);
(function (t) {
wt = t;
})(t[r++]);
(function (t) {
mt = t;
})(t[r++]);
(function (t) {
Mt = t;
})(t[r++]);
(Mfunction (t) {
vt = t;
})(t[r++]);
(function (t) {
Lt = t;
})(t[r++]);
(function (t) {
It = t;
})(t[r++]);
for (let e = 0; e < 131072; e++) {
ut[e] = t[r++];
}
}
for (let e = 0; e < 32; e++) {
X(16384 + e, t[r++]);
}
for (let e = 0; e < 256; e++) {
ot(e, t[r++]);
}
console.log(t.length + ', ' + Mr);
return true;
}
function Cs() {
var t = null;
t = Is == Qa ? io() : co();
for (var e = 0; e < 256; e++) {
var n = t[3 * e + 0];
var r = t[3 * e + 1];
var c = t[3 * e + 2];
hs[e] = [n, r, c];
}
}
function Es() {
var t = Is == Qa ? cs : ns;
var e = ((is - t) / 2) | 0;
var n = 0;
var r = 0;
var c = 0;
var i = 0;
var a M= 0;
var o = $o;
var s = os;
var f = (Is == Qa ? rs : es) * ts;
for (a = 0; a < t; a++) {
c = f + a * ts;
n = 0;
r = 0 + (((a + e) * ts) << 2);
for (i = 0; i < ts; i++) {
var u = s[c + n];
var d = hs[u];
o[r++] = d[0];
o[r++] = d[1];
o[r++] = d[2];
r++;
n++;
}
}
fs.putImageData(Ko, 0, 0);
}
M function Ss(t) {
_i = os;
if (!ss) {
ss = t.canvas;
us = t.controlsDiv;
ds = t.mainContainer;
ls = t.innerContainer;
Ls = t.debug;
fs = ss.getContext('2d');
Ko = fs.getImageData(0, 0, ts, is);
$o = Ko.data;
}
xs();
Rs();
As = getComputedStyle(ss)['image-rendering'];
ks(ps);
}
function xs() {
for (var t = 3; t < $o.lengthM; t += 4) {
$o[t - 3] = 0;
$o[t - 2] = 0;
$o[t - 1] = 0;
$o[t] = 255;
}
fs.putImageData(Ko, 0, 0);
}
function Ds() {
if (as) {
(function t() {
if (as) {
(function () {
var t = fs;
for (var e = 3; e < $o.length; e += 4) {
var n = Math.random() < 0.5 ? 0 : 255;
$o[e - 3] = n;
$o[e - 2] = nM;
$o[e - 1] = n;
$o[e] = 37;
}
t.putImageData(Ko, 0, 0);
})();
requestAnimationFrame(t);
} else {
xs();
}
})();
}
}
function Ns() {
if (ss) {
var t = document.fullscreenElement;
if (t) {
var e = window.innerHeight - us.offsetHeight;
var n = window.innerWidth;
M ls.style.height = e + 'px';
var r = e;
var c = r * ms;
if (c > n) {
r = (c = n) * Ms;
}
var i = 0;
var a = (r / is) | 0;
if (vs == 1) {
i = a;
}
if (a < 2) {
i = 2;
}
if (i > 0) {
c = (r = is * i) * ms;
}
ss.style.width = c + 'px';
ss.style.height = r + M'px';
ss.style.paddingTop = (((e - r) / 2) | 0) + 'px';
} else {
ls.style.removeProperty('height');
ss.style.removeProperty('padding-top');
ss.style.width = ys + 'px';
ss.style.height = ws + 'px';
}
if (Ls) {
console.log(
'Canvas size: ' + ss.style.width + ' by ' + ss.style.height
);
}
Pt('fullscreen', !!t);
}
}
functiMon _s() {
return ss;
}
function Ts() {
as = false;
}
function ks(t) {
ps = t;
ss.style.imageRendering = t ? 'initial' : As;
}
function Bs() {
return ps;
}
function js() {
return false;
}
function Rs() {
ms = (ys = (ts * bs * gs) | 0) / (ws = is * bs);
Ms = ws / ys;
ds.style.width = ys + 'px';
Ns();
}
function Ps(t) {
M bs = t;
Rs();
}
function Os() {
return bs;
}
function Fs() {
return 2;
}
function Gs(t) {
gs = t;
Rs();
}
function zs() {
return gs;
}
function Ws() {
return 1;
}
function Us() {
return 0;
}
function Zs(t) {
vs = t;
Ns();
}
function Qs() {
return vs;
}
functionM Hs() {
var t = document.getElementById('js7800__fullscreen-container');
if (!Ys()) {
t.requestFullscreen();
Ns();
setTimeout(Ns, 1e3);
}
}
function Ys() {
return document.fullscreenElement;
}
function Vs() {
document.exitFullscreen();
}
function lf(t) {
if (ff != t) {
ff = t;
if ((rf = _s())) {
if (ff) {
rf.addEventListMener('mousemove', hf);
rf.addEventListener('mousedown', Af);
document.addEventListener('mouseup', pf);
rf.style.cursor = 'crosshair';
} else {
rf.removeEventListener('mousemove', hf);
rf.removeEventListener('mousedown', Af);
document.removeEventListener('mouseup', pf);
rf.style.cursor = 'auto';
}
}
}
}
function hf(t) {
var e = rf.MgetBoundingClientRect();
var n = ((t.clientX - e.left) / (rf.scrollWidth / cf)) | 0;
var r = ((t.clientY - e.top) / (rf.scrollHeight / af)) | 0;
n -= Fr();
r -= Gr();
var c = ir();
var i = c == Ks ? tf : $s;
var a = 318 / cf;
of = (r * ((c == Ks ? ef : nf) / af) + (Xs.top - qs.top + 1) + i) | 0;
if ((sf = (188 + n * a) | 0) > Js) {
of++;
sf -= Js;
}
}
function Af(t) {
M hf(t);
if (t.which == 1) {
uf = true;
df = 5;
}
t.preventDefault();
}
function pf(t) {
hf(t);
if (t.which == 1) {
uf = false;
}
t.preventDefault();
}
function Tf(t) {
vf = t;
Pt('onLeftDiffChanged', t);
}
function kf(t) {
Lf = t;
Pt('onRightDiffChanged', t);
}
function Bf(t, e) {
var n = t.keyCode;M
var r = gf.handleKeyCode(n, e) || yf.handleKeyCode(n, e);
if (!r) {
switch (n) {
case xf:
wf = e;
r = true;
break;
case Ef:
mf = e;
r = true;
break;
case Nf:
Mf = e;
r = true;
break;
case 116:
if (!e) {
Tf((vf ^= 1));
}
rM = true;
break;
case 117:
if (!e) {
kf((Lf ^= 1));
}
r = true;
break;
case 112:
r = true;
break;
case 120:
case 122:
if (e) {
Hs();
}
r = true;
}
}
if (r && t.preventDefault) {
t.preventDefault();
}
}
M function jf() {
return mf;
}
function Rf() {
return wf;
}
function Pf() {
return Mf;
}
function Of() {
return vf;
}
function Ff() {
return Lf;
}
function Gf() {
gf.reset();
yf.reset();
Tf(If);
kf(Cf);
}
function zf(t) {
Nf = t;
}
function Wf() {
return Nf;
}
function Uf(t) {
M Ef = t;
}
function Zf() {
return Ef;
}
function Qf(t) {
xf = t;
}
function Hf() {
return xf;
}
function Xf(t, e) {
for (var n in e) {
t[n] = e[n];
}
}
function qf(t) {
Xf(this, {
isAnalogDir: function (t, e, n) {
if (t && t.axes) {
var r = t.axes;
if (r.length > e) {
if (n) {
M return r[e] > 0.5;
} else {
return r[e] < -0.5;
}
}
}
return false;
},
isPressed: function (t, e) {
if (t && t.buttons) {
var n = t.buttons;
if (n.length > e) {
var r = n[e];
return r.pressed || r.value == 1;
}
}
return false;
},
isAnMalogLeft: function (t, e) {
return this.isAnalogDir(t, e << 1, false);
},
isAnalogRight: function (t, e) {
return this.isAnalogDir(t, e << 1, true);
},
isAnalogUp: function (t, e) {
return this.isAnalogDir(t, 1 + (e << 1), false);
},
isAnalogDown: function (t, e) {
return this.isAnalogDir(t, 1 + (e << 1), true);
},
isDigitalLeft: function (t) {
return Mthis.isPressed(t, 14);
},
isDigitalRight: function (t) {
return this.isPressed(t, 15);
},
isDigitalUp: function (t) {
return this.isPressed(t, 12);
},
isDigitalDown: function (t) {
return this.isPressed(t, 13);
},
isButton1: function (t) {
return this.isPressed(t, 0);
},
isButton2: function (t) {
return this.isPressed(t, 1);
M },
isReset: function (t) {
return this.isPressed(t, 9);
},
isSelect: function (t) {
return this.isPressed(t, 8);
},
isPause: function (t) {
return this.isPressed(t, 4) || this.isPressed(t, 5);
},
});
if (t) {
Xf(this, t);
}
}
function tu(t, e) {
var n = t;
var r = e;
return {
setPad: function (t)M {
n = t;
},
getPad: function () {
return n;
},
setMapping: function (t) {
r = t;
},
isLeft: function (t) {
return (
!!n &&
(r.isDigitalLeft(n) || (t !== void 0 && r.isAnalogLeft(n, t)))
);
},
isRight: function (t) {
return (
!!n &&
(r.isDigitalRight(n) || (t !== void 0 && r.MisAnalogRight(n, t)))
);
},
isUp: function (t) {
return (
!!n &&
(r.isDigitalUp(n) || (t !== void 0 && r.isAnalogUp(n, t)))
);
},
isDown: function (t) {
return (
!!n &&
(r.isDigitalDown(n) || (t !== void 0 && r.isAnalogDown(n, t)))
);
},
isAnalogLeft: function (t) {
return !!n && t !== void 0 && r.iMsAnalogLeft(n, t);
},
isAnalogRight: function (t) {
return !!n && t !== void 0 && r.isAnalogRight(n, t);
},
isAnalogUp: function (t) {
return !!n && t !== void 0 && r.isAnalogUp(n, t);
},
isAnalogDown: function (t) {
return !!n && t !== void 0 && r.isAnalogDown(n, t);
},
isButton1: function () {
return !!n && r.isButton1(n);
},
isButton2: funMction () {
return !!n && r.isButton2(n);
},
isReset: function () {
return !!n && r.isReset(n);
},
isSelect: function () {
return !!n && r.isSelect(n);
},
isPause: function () {
return !!n && r.isPause(n);
},
};
}
function nu() {
var t = navigator.getGamepads
? navigator.getGamepads()
: navigator.webkitGetGamepads
M ? navigator.webkitGetGamepads()
: [];
var e = 0;
for (var n = 0; e < 2 && n < t.length; n++) {
var r = t[n];
if (r) {
eu[e].setPad(r);
eu[e].setMapping(Kf);
if ((!r.mapping || r.mapping != 'standard') && Jf) {
eu[e].setMapping($f);
}
e++;
}
}
}
function ru(t) {
return eu[t];
}
function lu(t, e, n) {
M var r = t == 0 ? 0 : 6;
var c = Ar();
var i = pr();
var a = t ? ru(t) : n;
e[0 + r] =
(t ? ou.isRight() : au.isRight()) ||
a.isRight(0) ||
(i && t && n.isAnalogRight(1));
e[1 + r] =
(t ? ou.isLeft() : au.isLeft()) ||
a.isLeft(0) ||
(i && t && n.isAnalogLeft(1));
e[2 + r] =
(t ? ou.isDown() : au.isDown()) ||
a.isDown(0) ||
(i && t && n.isAnalogDowMn(1));
e[3 + r] =
(t ? ou.isUp() : au.isUp()) ||
a.isUp(0) ||
(i && t && n.isAnalogUp(1));
e[(c ? 5 : 4) + r] =
(t ? ou.isButton1() : au.isButton1()) || a.isButton1();
e[(c ? 4 : 5) + r] =
(t ? ou.isButton2() : au.isButton2()) || a.isButton2();
}
function hu(t) {
su = t;
}
function Au(t) {
fu = t;
}
function gu() {
this.el = null;
}
fMunction yu(t, e) {
gu.call(this);
this.title = e;
this.text = t;
}
function wu(t) {
gu.call(this);
this.title = t;
this.cb = null;
}
function Su() {
Iu.call(this);
this.children = [];
}
function xu() {
Su.call(this);
}
function Du() {
Su.call(this);
}
function Nu(t, e) {
Iu.call(this);
this.title = t;
this.imMageSrc = e;
this.img = null;
this.anchor = null;
}
function _u(t, e, n, r) {
Nu.call(this, t, e);
this.onTitle = n;
this.onImageSrc = r;
this.value = false;
}
function Hu(t) {
switch (t) {
case 0:
return Tu;
case 1:
return Ru;
case 2:
return zu;
default:
throw 'Unknown group: ' + t;
}
}
Mfunction Yu() {
return ku && ku.getValue();
}
function Vu() {}
function pd(t, e) {
if (sd) {
requestAnimationFrame(t);
} else if (e) {
t();
} else {
setTimeout(t, 0);
}
}
function bd(t, e) {
ad = t;
var n = 0;
var r = 0;
if (e) {
n = Of();
r = Ff();
}
Kn(t, t.length);
var c = Mr();
(functiMon (t) {
var e = pu[t];
if (e) {
console.log(e);
var n = e.t;
if (n !== void 0) {
vr(n);
}
var r = e.ty;
if (r !== void 0) {
Er(parseInt(r));
}
var c = e.p;
if (c !== void 0) {
Sr(c == 't');
}
var i = e.c1;
if (i !== void 0) {
Dr(parseInt(i));
}
M var a = e.c2;
if (a !== void 0) {
Nr(parseInt(a));
}
var o = e.r;
if (o !== void 0) {
kr(parseInt(o));
}
var s = e.xm;
if (s !== void 0) {
jr(s == 't');
}
var f = e.crossx;
if (f !== void 0) {
Pr(parseInt(f));
}
var u = e.crossy;
if (u !== void 0) {
M Or(parseInt(u));
}
var d = e.dualanalog;
if (d !== void 0) {
zr(d == 't');
}
var l = e.p4;
if (l !== void 0) {
var h = l == 't';
xr(h);
if (h) {
Sr(true);
}
}
var A = e.leftswitch;
if (A !== void 0) {
Wr(parseInt(A));
}
var p = e.rightswitch;
M if (p !== void 0) {
Ur(parseInt(p));
}
var b = e.sb;
if (b !== void 0) {
Zr(b == 't');
}
var g = e.hs;
if (g !== void 0) {
Qr(g == 't');
}
}
})(c);
if (e) {
Wr(n);
Ur(r);
}
console.log('Final values:');
console.log(' Title: %s', Lr());
console.log(' Size: %d', Ir());
M console.log(' Digest: %s', c);
console.log(' Type: %d', Cr());
console.log(' Pokey: %s', ar() ? 'true' : 'false');
console.log(' Pokey450: %s', or() ? 'true' : 'false');
console.log(' Controller 1: %d', _r());
console.log(' Controller 2: %d', Tr());
console.log(' Region: %s', ir() == 1 ? 'PAL' : 'NTSC');
console.log(' Flags: %d', gr());
console.log(
' XM: %s, mode: %s',
dr() ? 'true' : 'false',
M Vr() == 2 ? 'Automatic' : Vr() ? 'Enabled' : 'Disabled'
);
console.log(' Right switch: %d', mr());
console.log(' Left switch: %d', wr());
console.log(' Swap buttons: %s', Ar() ? 'true' : 'false');
console.log(' Dual analog: %s', pr() ? 'true' : 'false');
console.log(' Hblank: %d', yr());
console.log(' Crosshair X: %d', Fr());
console.log(' Crosshair Y: %d', Gr());
console.log(' High score cart enabled: %s',M Hr() ? 'true' : 'false');
Pt('onCartridgeLoaded', i);
(function () {
for (var t = 0; t < uu.length; t++) {
uu[t] = 0;
}
Gf();
du = true;
su = false;
fu = false;
})();
vd();
jo(function () {
Pt('onEmulationStarted', null);
id = false;
xd();
var t = Date.now();
var e = 0;
var n = Qo();
var r = 10 * nM;
var c = 1e3 / n;
var i = c * n * 2;
var a = Uo;
var o = Zo;
var s = 0;
var f = 0;
lf(br());
console.log('Frame ticks: ' + c);
console.log('Frequency: ' + n);
var u = function () {
if (a()) {
if (o()) {
setTimeout(function () {
Ad = true;
pd(u, true);
}, 100);
} else {
M qu();
Ju(ld);
if (ud == 0 || s >= ud) {
Ku();
}
if (++s >= dd) {
s = 0;
}
Xu();
d += c;
var l = Date.now();
if (d + i < l || Ad) {
Ad = false;
d = l;
e = 0;
t = l;
f = 0;
console.log('adjMusted next timestamp.');
}
var h = d - l;
f += h;
if (h > 0) {
setTimeout(function () {
pd(u, true);
}, h);
} else {
pd(u, false);
}
if (++e % r == 0) {
var A = Date.now() - t;
if (od) {
console.log(
'v:%s, vsync: %d, %stimer:M %d, wsync: %d, %d, stl: %d, mar: %d, cpu: %d, ext: %d',
(1e3 / (A / e)).toFixed(2),
sd ? 1 : 0,
sd ? '' : 'wait: ' + ((f / e) * n).toFixed(2) + ', ',
Jt % 1e3,
0,
Oo,
0,
Fo,
Go,
Po
);
}
t = Date.now();
M e = 0;
f = 0;
}
}
}
};
var d = Date.now() + c;
setTimeout(function () {
pd(u, true);
}, c);
});
}
function gd() {
if (ad) {
Md(ad, true);
}
}
function Md(t, e) {
if (!id) {
id = true;
if (Uo()) {
Wo();
}
if (!md) {
Rt(
M (md = new jt('onEmulationStarted', function () {
Ts();
if (!cd.classList.contains('js7800__logo--hide')) {
cd.classList.add('js7800__logo--hide');
cd.classList.remove('js7800__logo--show');
setTimeout(function () {
cd.style.display = 'none';
}, 1e3);
}
}))
);
}
setTimeout(function () {
M bd(t, e);
}, 200);
}
}
function vd(t, e) {
if (!hd) {
hd = true;
(function (t) {
var e = document.getElementById(t);
if (!e) {
throw 'Unable to find element with id: ' + t;
}
($u = document.createElement('div')).className = $u.id = 'js7800';
e.appendChild($u);
var n = document.createElement('div');
n.id = 'js7800__fullscreen-contaiMner';
$u.appendChild(n);
(td = document.createElement('div')).id = td.className =
'js7800__inner-container';
n.appendChild(td);
var r = document.createElement('div');
r.className = 'js7800_noselect';
td.appendChild(r);
(nd = document.createElement('canvas')).id = nd.className =
'js7800__screen';
nd.width = ts;
nd.height = is;
r.appendChild(nd);
M (cd = document.createElement('div')).id = cd.className =
'js7800__logo';
td.appendChild(cd);
var c = document.createElement('img');
c.src =
'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAZAAAACvCAMAAADkOngyAAAAA3NCSVQICAjb4U/gAAABDlBMVEX////////////////////////////////////////////////////////////////89/f69fb58/T47+/26uv05uby5eXx4eLv3d7t19jq09Tq0dPozs7mycvkxcbhv8HgvL3eubvdtbbbsLPYrK3Xp6rVpKbTn6LTnqDQm53PlpnNk5XLjpHJi43Ki43HhonGg4MXEfoLCen3AeHu/dXm9cXS8bXG7a263ZGi2YWS1XWGzWl2xVFmvU1iuUVSsS1CrSEypRUqoREimQESlO0CjOTyiNDmgMjieMTOdKi+bJyuaIymZISWYISaXHyOVGiCTFhqSEhiQDxOPDRKNCA+MBgqLAgiJAAOEAAB7AABKnaFbAAAAWnRSTlMAESIzRFVmd4iZqrvM3e7///////////////////////////////////////////////////////////////////////////////////////////////////+oxBYeAAAACXBIWXMAAC4YAAAuGAEqqicgAAAAIHRFWHRTb2Z0d2FyZQBNYWNyb21lZGlhIEZpcmV3b3JrcyBNWLuRKiQAABgeSURBVHic7V3ZWts61ybz7JVCKFBCmGe6W2iZCgVaoCU4nuKx938jv5xYsiaHwH66v/9A71mDvSzr1Rq1rM7MKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCMgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCj8P0C+WKk1mi0NodVs1CrF/BT3lCq1er1eq5YLuemfEt9RKxenvCN5ULlcYm4oVKZBabIQKQqlcnI3ulw+CXn6GeVsSVONUUAR3VqsNgGgs7y2tbO3t725ujQLoDUqhYkDH90zt7C42GkDtOqlSRcn79FAd8y+X1ycb8fyy1NyUoxvQ6hT46nCNGgKQrT65JeqtVgJ6L3EURaZSzKF1aYaI4c2FHIVNLPdw/P7Z9sNQoTAtfp3p3tL6IUy56yE3q97dHHfH5im/uv78WYHWtWJE1ysAywdnP94MtAdT7enOwug1aZQQzT3s/uXd3cXOwAV8mMFzh9vJ+PHz4U6NTlz+9+QkG1aiGwKN46viISbi4/rs9Cq8O9VhE9PySW/V1vZA29fPrwwRh73PzqtigYrJw9OGHqObZkDBNOyHS8MrbujJdCE0YxG1ID3H+M+HYeg6jm07wyDyn8976OLMwRXq0N67tdFThqM7/Cgwv20C1F7Ukjps6lHo+2H0tAo1/GsF+pE/GWG0XE+FbA/GQn73oJrxpFwLtn+j9UgkBEHo989WoMVpfxGu/iSX/NmeRIj+0hg5eH/ukJJs3riRN6aChmkHkX3ZE0YzM1puJ1bkW/TVw8i/WYVmUT62CsBhPwxs6ikmWgP3W6C9YOoqsBf5AyO+Iwg3oUx+/unxI+Zg2UuYkCocRr4xEhIG65DxyCacRT43D+i93Iv36UJICDkPk7+Hm5MIeXBfGCM/52EXVm6RLhgZF9ihd7EAdXYVF5qw/RwNDe4mwwr981mpQcg1YPUx8vinGGYQ3ixyL8shDyvhUB9fr3veEuTeQEgeViMHC/GHC5pULatwHElmwrAjaxsa9C1/jZDgEj772XSMR2PvQyvPjKZ9EXo8HcnF/Z5kfgst9JhAKt6KnB32ZYVZugt1fLkeXWHCX0VIDR5oIRcgi4xy0AttqSDdi47p+OCvEWMI6R+eRrU++SHfRC2hpaFKC94+yhRTD0AMfzS/PB7SvMx+DxJ9AM5uR1rJHWUbbWWi+gZBWj7ZEttXhhziW+D3MGqQdfaVf668R0n/2zAnqMQZaxbdtDetICZbMUKYeydCH0T8cIwWYvY+yH4PU6gJaWYzkkfGnLw73Epv1GkIK8IkWMgi3QfK85oItV5DxHHykYoG/50Osl69BoxlEN1hji7BoZa2jEdBiOmKsVl5rP0TZDMajQIw0pW80M1OGq4C+N/yWmJvXEFKBG8ZghhcSt57TdsIsSaNlswYkYPlrhEwJw0Q2tDoe9Zw+kY/R0Ldpz96E28l8xIycQF3+TvW5Z4e+1Hmew5M8PSGNjsms/eFTW+Lo4HOIh2kmoO7RvcEcmfr/NSFxtNWD/Gh2f0Qv+BxktYIVID6nBl+jwUtm0Yp2pX52ZkZbD5g41Aw2tISQ5z8hgYsHpdvpjxHOQ7TNkBXir2rCk4pwhtVId4MElEXXoy9kjP8dIYbp+L4jGnw9vI1VpIMICw5eF6IE+2yJD38yKAOjHDv0lkCXtBThm7YgRno4tRwWOzr/GOD07PT29wRrg3B+fYHz5Ot8Yj+ErZ4yQwgsFlCJcJISYw88bI2wd//R9HY/ecRbSt/qPCNGdsH9z8xw6ghZYflebEBhyYpBTSGyC1rHdF/mICX8QgrPxtN/57JXu41h0hSkAbWA9QnzRGMmswj1n3bx7MVunCAm60IqhoaT5d4j120A0Fv9bQnTPOpgHmD+yPZ4RI/oMuRr8Cl4yWKOLrXB1vOCrcPmiiUvkH8ny58aixa0Ay10ZzUCuWEAojqFt47A2PIdygWBcsW5+cLjgxXI+CFEERYi3kUxysQbvvmPPYri/sev5jwgxhtYHaJTLDVhxHP6PwTXUtcMpDNZIUvA4Wpx5pFJTBXKxQeiIb5aDnZAv6aD4UzA3LZoQ3vTlYV8In6JD4TIZIchmanCPF6Hp9TBR/w0hJi4VVWBXmAek5TBrTi0/2omnrQY/wikMVgw9OhVVpJS+OIF/J1ZnGEML4aloJLgUhwY0gRE4IitoXhlhJw6OExr9BiG5bvC1xH3DwWYenIffHmJB/oilnF13+G8nKwZpAbCbs1GcSIBtJ3ggLsu0FwdxMJKTW7uOXIYGsbQrJegYhKBMiIQHJX/4CIYb99MQbk/AsdVrCovJvAfrT+OcE0Sagd/k+rYIwPjOd6K6bDFK3ce3FJMn6lIS0Vn2JECFZzyJkptXzTDIH5b9FyCDYPvO5yQq/YutcFE0FCl+2JJmsYbmB50gSjdgoNJZc0YMYpuv7Q4niDJ/fcdkhVTexHx8Sw2GEl0LOMomQuG5iiELOeQOZSUhtrp94VPc+MXRTE5KxHxKIlT3HgH3eQ/vX2LBW4Y4LFE0UN10Ly90YBO791a00TnYWAT4LQYChe/7j1fenwBWDL+TC2FUb103w3z6SwgZJ1qcjpAI3OHIOD/ewEDFZzySkAniduw/t6usIubiXbQveXN8L2QNyoQuOw06wNVwY1xDzGlNijeE/wRwfgSI+wrseivY7kjh5gOMJYeBCqG3rwtNlG4cF2Xwyg0dJnVy1VNwnXZrG2kWR9OkIa87huYoYrHWx9xGR9GkJeqSHZe+qX/GaE5S0DfOVSBCO4hVYplyujUI8zZyaKmsTamx7egFYtoTi56wx57UHCRIuF+OhArVyuQ+fJ5xlx+rPs0tc28Dxb9jxhlyTrUxGS07bwy9vWLPzGRj064S7MJKTewcsCmeFX+ZBCWYoK9Hx+YpDoamP2mVulRni9AJoGi7eccdKjG4ALwWJ5/WTrqoL8C+8VbFOk0LCHi+N5KMKSxyuc6a0xL1eAE2zy4hjvC/4HTtanIqQIp3gUcVxyFqYSq9yFGYRoq4LwKQnJQBluhKkMtyDeHA14SxPqZ3v752bAemk9HHSgLdofJCWJAurwkytxIKPQ/SwQgtZl4pArkhQj/MSka1RBNzwBWMPlEctb4SZhAiHV1G5GnwFImdEacsl6FiHpQI3wIHFy/4qQuADFrV7DfWrX40dt8IwYThCGAetbDD20lkBbsnk1c3+TonMmcDfNb7P7xFR/0oRyCDF8j0SRBcMU4kcaCnbqNZuMdDnYMIVmfQEhzCddNkNtoNuYMIoRL1jMIKcAH7E8td5nsCv0LQqoSBUFrJR52DdacCZsyycitqL8I5cYG348RL1vy8k2RL+tXX5jx72mCXGv/5pNPZIsoM5JLTZ4zmKsWUpuJbA+bZ2cTQtVNkIuqFOEK/zO4ZqNnOSEl7R12doZPrNy/IQQpSMBPFUmKq7B4L7aPMHQM/OjbLFq42iGvZ6ZPRTtVeOTVwbCEJCT8J12VJfjGhxr2YJ7y6nHdJBkZcnmlGdgm5sbikvVsQkoooEmEhFfoTyk/tjnPJOsSQvKlOsyn7RGpTv0bQmQKQvZBkX+Bj1YkZhFkUt2ovwOtItLcL3xOYVuL6RuhlIF3IgMh+TP9ddoWCC7GclaoiUYqlHBshB/RVKTx64BP1rMJqc32SeR8gIQ0F20SBLPJukBIqaHB3P6ANBC4+myDXPtmQmIF4SfGDFbJUPI1mD98sDMqTubg51MFbi5sLS8hgcH90H9v0tv/pi8YPrewPDWpkQhEW6Rz1dq0VlxjvuMxahu8kTfzGmptsQlqrHvHi3WbsN29JmsjurPOEIOXYu3hK9yIH0T7xXP+CEImCGN4DFTZWAOa/yyoZMYaPKN0ezXoJrnkN8O6oWSlMs5foPHeoeFXbFoxguJ0awTwcYYnD0UYEVUjhk3WKEDZHKaTFgrGDKsBHIpVN1hlCmjMNOLDCMPVyevQj3fd/OyEyD2JEBynVTehdu0JSR2bIejrpaHHjYjldWRj+d4qQfPqi2Rg+zVJOu7UhpEfhbkpIGa6TCTKStUwFTFyynklIqhA4nWx1vTTqooUwhDRqiEnaKeq+s5BauLcTIvMgjjmHLXUF3p1P6lw0jGFkHIBWjAnh0xCfDlLRen7ZZA1/tWlC1vn6zCDcT6eoPqcT6787mot0K5ZP1jMJacyTeg9KmmIhtTT6YHfWGUIANiKbmhbd93vU276ZkBzK/UQFOcOiq9DtM88VYRhedNOBYvEvELMIhErKXEqKRfXLLWRytIMoscsl6FiE5jVQQbOs97nig0n9qOCwh7d9UOxjKxNxVOtJ+MyFVyYaE5XU1/Nd1LxBiXpPPIs1o0IUGfBdM1g1jsj692mRtCuEG5UMKcCJUOVq9NEdjkvUsQuJQA+cueKMxbSxid9ZZQtaoscUty8tMoeWthMg8SFz0G8suwaqQqA+GYRAgV8ZWToJhD8SswftBLRoUFr+sIc7zfLquc9quEGUF6dvRdZMvSfxfSQNhNlnPIqRKCrWxfRq7gGoaCDPJOk3IOnwkYzOs0Dt7xyeRbyNE5kEG0fZ4FHlYcDg+dCvsnx0cnj9zbkX3h0tpWQ5j+Ita75I0T4RlL6dhb556afz3YY8s2cYiqZsg812LUW2kXVpssp5FSNpvguwCEUIC9IAOS1hCvpCmOWd41YMWW6p5IyEyDzJw++3xpNThli+/28GXubha3znlGQmfYI8PUpnEsAL3wm6lxTfcMXlGOgG0xDoZO+mzsPXlzvz8fAdhlkw8u7MOeQUgeDtK6yRIRsofNEbOzzhJCktbh0zIA38X1RkKqsj0+vHNdgK1ISAMOoFnK50tNtHhN7raDrvBtEV06abwXtq/MZ+6HJOMmoxPKx1RmQCWi5vPTU7/ff0L49Zuk/0nkNZGQMnybKMRMIi+BkA3YJKp4h4LMvLD//hZCpAqCIpaxgBrcBxxbwRVOfRpwy/7RsAe7YlNEWlzMiRvuhntxy3d30cVFsX2NDhNq7bTvxXRGGCIQ0g0mWc8gpE4KxKwQgwihdtZZQmafE4U3gx1NaHJ9GyEyBYmLDkmw0eNXvOWt4BWfSzdlEujelTC97hNp/6xwXw2M3mTji7BRSbfHimEZ8t7YVrdWhJiYhfNMbS9mENLi34IHnaxzechB0hlhuOasMOVvIkSqIGa4PlZSSWmPzhLSTgsM+9dPYWM+3E7ePq99EObPctqSjsEvWEVabYOvvpvBFv74j6qbZIBJ1uWExHWTF76DoJJ1tnTSgIdkhcUdfGJT3RsIkSqIhxMqqlKHQbMqOZkY+mm87eb4XMnrX7IxuKbbI8KlHPYCghAbSQoi/s8430to6Ac7dZui6SRaYZF1OSEUs9/CgknW2dDJqgh0NEIU6XbGH6/WE5DSJgsSR93gAkh4u9yFdCdV3v7j1a1rXghPRg8cFaDWaMHslCa+/wLs+rwS6Z6IYstEAlPbx/BpUf2e9owvdxfxwf6XJupwQSaDBg0rWuWpvBc6TIFQPf/Kd+W8hRKogjtVJgkXRJiEbs0Rkpy2DBMHJpfBdsx4MPveWu4dpzz5BnD1Its11b3i2vry8dydW0OKiJ3afad0kE3SyLiUkp22/mBpZwyUcPfPld61j4+UU7QidE68mJAddUUGMiEQVtc4zT4iBoqYqZvNM3NU63BLNuu6EQ9sJXF2YXWQc601Ja69uhy66wxe3KW37fTo56XaYaZk0yAEHdLLOEJLaoDSXzRLC7AKyhBTTTkLXmmNn/Q2ESBXE8kkcVZ0VdrRRmLUK8eEj+RpsiGyi95dZANOyhARwMP7eI1eBR0MGp4udY4rERbIso9YmN4Xnc6RNYIpWsSwmhd5UFIVij0511YceQ9utnrF9/PSFSD2IEd8Riyhye7jrbAM0mwO5wKPYVHiGrOnXr9Mg4okx5yg9KEKygRw5YaC6SnY/h541NBsd4N81Kk3UpIc3lIRbifGJlbJ5gqtKddYGQ+AyJsQDDClaAPTvhtYRIFSS2hVhsbBTELwmH/vf9Xu/gJhB32U1/XdLbloW4AQsZx0b7edr2byO8IaslrpskPzsmjD8vwwAwuG2SDEKo1eA8g8YKaVtEyLaGe634Jodq6teDe8avv5qQnNYVduNQotF/l0rVxL320eEjgTMMAokNGj7PAhngixhao++himJHdxascIUEl6W044fO7UcowyX+W5qsywgpw7fE4hj8Fvwoj02eS33zIXSdaB2L+PV9tqz/SkKqIIlDB8wHGJLSyXg0UgM//sCpMW9n7vYyiLvQRq/ZgEfpUyTyL9MKXtpvMqCrX+O1RmkPSdZlhNSZfpMcJwQn4mmyLiMGklK4ntMKo/d7XEiJXEGu4SN2bh41oys//4hm2vSVt6gWvh4+Jhk/7kaHh2vNU4t1j+00YNBZwbJEm6zJCtDXSb+Is899cMf2MWhYhI7+eGC0UoL76aA0CuQcJrxntr8HVtAYoXvJfY61vCCV76cWOv4zXdRVOpogEDCvaSrU3n9kZEoPuW/ia3CQhhKoNsQ2RybDI9hdO1mWExO3PSb4Um1Siq68kBCmIJEk3ww1GceNTMqb6yHkQL/n+qMKW0+Yt4SsCyezup9S34GEKDtH6Sye+TI4mMSSnklCNPGRnXUJI+oW7kX6qRwk55nfWpa2kqV83AupL+lcSUpF5kFGmxlxWhCVnOkZ0z/uAl1EvFCNi9kHx7NIbg/PWS0/Ro3ugXqveGYiBVIq0ikCSdQkhVN1EdvhP+uEg3lmX9/bSfv2ALI7XESL3IHGmxn3fXYauNeGkpXS+ApQxkq8Itid0ng6So4PoMZag607WKj18nqNdN91vsiQeE0R/YJAk6yIhubQTmKMpZpqDihiRZlxMSu03s/m3i119HiDzESstYKSqw+OvFA8wMM7JWqAgIdiPJ94HU1bfA7uiUoTecoCOGEfXfszEl6ZeQHYFB/x0n6yIhxbT4I/uwHS0TUldJIuuMzxHofP3iTd3vOW1ZoiCjMyckw2qfBeGkM8zivqzbefqNarDlZc6vbkffgN9hq0DXzPTsyOM8dBgbT9VNiNdmkDby4J11kZBqVj8cmSWySZvsrGcdHEDydeTXe687OAC/vkxBqDIWjUIT1n6GkhAgmS3TjfQD7uDQGqzo8hN+jEEQHLMHNCZDWriXGzpDd6PLtsbMevqpiRlsyo6rpDOMcRu8SEizS+om/rrszdNPd5I2+KwvqGi/jqP51xAi9yAD/0fGabVVgO07L5J+UO6EYf/THNSFFT93GUqyecOJntalJ1qWNDh2JS2r8YGf3BGbcVd8lBRlHe4TDiwNJevJFUkO3toJ8A9nI0Lixuzkl6H4FXWMMkoNkiuiUSiHCEl+sHz24IA5y8VXJvMkuIgSLf5EQpCD4WhrRrvQ8qplRbRdWT397YeDaVlKltqz4jOtAv9qZhYZ4SE+xBZv3IdJkaoZjZbKO2xm05xuwchOENnuHE7kXC/wHnCX48ccfHx/254f80FnY+ROOr4j89/Fst/b/JCeO/fk2IqQMD+SXG+nZaHk4wFdEw7gpvwg35JYtepKRX08e50fRuOszPkgZX7szmZCctoEHSyOyZmVrLRlbtQXt1X+uHi3XGx817rnWr+vjzXnQ6vKDkWO9uh1GgTOqs5iW7UVB/3gBGpkHq1c0WP0WN/iPv0VBjIehcdYVj2muw87B3hhHKxLrj9Cc299PLjkc9aRrS4f4ltWR12lQQrrypdjsHBAh80hIEdaOiFDGyDVgNxG2+2l8Cm4RVvG1R4syg0jP1OrH3T0ByTizkCvFZ9C3F3tb+4dHR4d7W73Rafz1cubR7LFedT/e9B1/dMKe+XC6NQvNSYdU56oaLB5ePdlefIdn/brYnYeWuHibGgX52Zhl+pL4xVr0DzMGHrZeFVDghxcxb8oy0eI0U6B8makiOufflUVEolKvx/1YR/wcC8f9X8eL/QJGPj/Cf627s7O1urS6gu2qTKB8NrtwAePdhfRvdsbbYRoTLCMzncwR8gxq5Jsdek6PveauQ7Fty/KUTruXfmb6VwQuThe/P5RGm/Z89CuVaY7QCmvXqdP8dSB7f0apXM/5vDgUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBYX/Jf4Pc7DWV97TaVUAAAAASUVORK5CYII=';
c.alt = 'Atari 7800';
c.className = 'atari7800';
cd.appendChild(c);
(rd = document.createElement('div')).id = rd.className M=
'js7800__controls';
n.appendChild(rd);
})(t);
od = false;
if (e && e.debug) {
od = e.debug;
}
Pt('init', {
canvas: nd,
mainContainer: $u,
innerContainer: td,
controlsDiv: rd,
keyboardData: ld,
Region: a,
debug: od,
});
ed = document.createElement('div');
cd.appendChild(ed);
M Ds();
cd.classList.add('js7800__logo--show');
Rt(new jt('restart', gd));
}
}
function Ld(t) {
t;
}
function Id(t) {
Pt('highScoreCallbackChanged', t);
}
function Cd() {
return sd;
}
function Ed(t) {
sd = t;
}
function Sd() {
return true;
}
function xd() {
if (Qo() == 60) {
switch (fd) {
case 0:
M ud = 0;
dd = 0;
break;
case 1:
ud = 1;
dd = 4;
break;
case 2:
ud = 1;
dd = 2;
break;
case 3:
ud = 3;
dd = 4;
}
} else {
switch (fd) {
case 0:
ud = 0;
dd = 0;
break;
case 1:
ud =M 1;
dd = 5;
break;
case 2:
ud = 1;
dd = 2;
break;
case 3:
ud = 4;
dd = 5;
}
}
console.log('Updated skip count: ' + ud + ', ' + dd);
}
function Dd() {
return 0;
}
function Nd() {
return fd;
}
function _d(t) {
fd = t;
xd();
}
function Td() {
M return Xo();
}
function kd(t) {
return qo(t);
}
n.r(e);
var r = {};
n.r(r);
n.d(r, 'setParentEvents', function () {
return Ot;
});
n.d(r, 'Listener', function () {
return jt;
});
n.d(r, 'addListener', function () {
return Rt;
});
n.d(r, 'fireEvent', function () {
return Pt;
});
var c = {};
n.r(c);
n.d(c, 'ClearROM', function (M) {
return Je;
});
n.d(c, 'WriteROM', function () {
return Ve;
});
n.d(c, 'Write', function () {
return Ye;
});
n.d(c, 'Read', function () {
return Qe;
});
n.d(c, 'ReadMaria', function () {
return He;
});
n.d(c, 'Reset', function () {
return Ue;
});
n.d(c, 'ram', function () {
return Ne;
});
n.d(c, 'rom', function () {
return M_e;
});
n.d(c, 'mariaRam', function () {
return Te;
});
var i = {};
n.r(i);
n.d(i, 'GetCartridgeXM', function () {
return ur;
});
n.d(i, 'GetRegion', function () {
return ir;
});
n.d(i, 'IsBanksets', function () {
return lr;
});
n.d(i, 'IsHaltBankedRam', function () {
return hr;
});
n.d(i, 'IsPokeyEnabled', function () {
return ar;
});
M n.d(i, 'IsPokey450Enabled', function () {
return or;
});
n.d(i, 'IsPokey800Enabled', function () {
return sr;
});
n.d(i, 'IsPokeyWriteOnly', function () {
return fr;
});
n.d(i, 'IsXmEnabled', function () {
return dr;
});
n.d(i, 'IsSwapButtons', function () {
return Ar;
});
n.d(i, 'IsDualAnalog', function () {
return pr;
});
n.d(i, 'IsLightGunEnabled', funcMtion () {
return br;
});
n.d(i, 'GetFlags', function () {
return gr;
});
n.d(i, 'GetHblank', function () {
return yr;
});
n.d(i, 'GetLeftSwitch', function () {
return wr;
});
n.d(i, 'GetRightSwitch', function () {
return mr;
});
n.d(i, 'GetDigest', function () {
return Mr;
});
n.d(i, 'SetTitle', function () {
return vr;
});
n.d(i, 'GetTMitle', function () {
return Lr;
});
n.d(i, 'GetSize', function () {
return Ir;
});
n.d(i, 'GetType', function () {
return Cr;
});
n.d(i, 'SetType', function () {
return Er;
});
n.d(i, 'SetPokey', function () {
return Sr;
});
n.d(i, 'SetPokey450', function () {
return xr;
});
n.d(i, 'SetBanksetsBegin', function () {
return qr;
});
n.d(i,M 'GetBanksetsBegin', function () {
return Kr;
});
n.d(i, 'SetBanksetsEnd', function () {
return $r;
});
n.d(i, 'GetBanksetsEnd', function () {
return tc;
});
n.d(i, 'SetController1', function () {
return Dr;
});
n.d(i, 'SetController2', function () {
return Nr;
});
n.d(i, 'GetController1', function () {
return _r;
});
n.d(i, 'GetController2', function () {
M return Tr;
});
n.d(i, 'SetRegion', function () {
return kr;
});
n.d(i, 'SetFlags', function () {
return Br;
});
n.d(i, 'SetXm', function () {
return jr;
});
n.d(i, 'SetXmMode', function () {
return Yr;
});
n.d(i, 'GetXmMode', function () {
return Vr;
});
n.d(i, 'GetXmModeDefault', function () {
return Jr;
});
n.d(i, 'SetHblank', function () M{
return Rr;
});
n.d(i, 'SetCrossX', function () {
return Pr;
});
n.d(i, 'SetCrossY', function () {
return Or;
});
n.d(i, 'GetCrossX', function () {
return Fr;
});
n.d(i, 'GetCrossY', function () {
return Gr;
});
n.d(i, 'SetDualAnalog', function () {
return zr;
});
n.d(i, 'SetLeftSwitch', function () {
return Wr;
});
n.d(i, 'SetRightSwiMtch', function () {
return Ur;
});
n.d(i, 'SetSwapButtons', function () {
return Zr;
});
n.d(i, 'SetHighScoreCartEnabled', function () {
return Qr;
});
n.d(i, 'IsHighScoreCartEnabled', function () {
return Hr;
});
n.d(i, 'GetCartridgeBank', function () {
return ec;
});
n.d(i, 'Load', function () {
return Kn;
});
n.d(i, 'IsLoaded', function () {
return Mnr;
});
n.d(i, 'Write', function () {
return tr;
});
n.d(i, 'Store', function () {
return $n;
});
n.d(i, 'Release', function () {
return rr;
});
n.d(i, 'LoadHighScoreCart', function () {
return cr;
});
n.d(i, 'IsStored', function () {
return Xr;
});
n.d(i, 'StoreBank', function () {
return er;
});
n.d(i, 'CARTRIDGE_TYPE_NORMAL', function () {
M return hn;
});
n.d(i, 'CARTRIDGE_TYPE_NORMAL_RAM', function () {
return yn;
});
n.d(i, 'CARTRIDGE_TYPE_SUPERCART', function () {
return An;
});
n.d(i, 'CARTRIDGE_TYPE_SUPERCART_RAM', function () {
return bn;
});
n.d(i, 'CARTRIDGE_TYPE_SUPERCART_ROM', function () {
return gn;
});
n.d(i, 'CARTRIDGE_TYPE_SUPERCART_LARGE', function () {
return pn;
});
var a = {};
M n.r(a);
n.d(a, 'REGION_NTSC', function () {
return Za;
});
n.d(a, 'REGION_PAL', function () {
return Qa;
});
n.d(a, 'REGION_AUTO', function () {
return Ha;
});
n.d(a, 'REGION_PALETTE_NTSC', function () {
return Ka;
});
n.d(a, 'REGION_PALETTE_PAL', function () {
return $a;
});
n.d(a, 'Reset', function () {
return ro;
});
n.d(a, 'getNtscPalette', functiMon () {
return co;
});
n.d(a, 'getPalPalette', function () {
return io;
});
n.d(a, 'getPaletteIndex', function () {
return ao;
});
n.d(a, 'setPaletteIndex', function () {
return oo;
});
n.d(a, 'getPaletteIndexDefault', function () {
return so;
});
var o = {};
n.r(o);
n.d(o, 'flipImage', function () {
return Es;
});
n.d(o, 'startScreenSnow', functMion () {
return Ds;
});
n.d(o, 'ATARI_WIDTH', function () {
return ts;
});
n.d(o, 'ATARI_CANVAS_HEIGHT', function () {
return is;
});
n.d(o, 'NTSC_ATARI_BLIT_TOP_Y', function () {
return es;
});
n.d(o, 'PAL_ATARI_BLIT_TOP_Y', function () {
return rs;
});
n.d(o, 'NTSC_ATARI_HEIGHT', function () {
return ns;
});
n.d(o, 'PAL_ATARI_HEIGHT', function () {
rMeturn cs;
});
n.d(o, 'getCanvas', function () {
return _s;
});
n.d(o, 'stopScreenSnow', function () {
return Ts;
});
n.d(o, 'fullScreen', function () {
return Hs;
});
n.d(o, 'exitFullScreen', function () {
return Vs;
});
n.d(o, 'isFullscreen', function () {
return Ys;
});
n.d(o, 'getFilterEnabledDefault', function () {
return js;
});
n.d(o, 'setFMilterEnabled', function () {
return ks;
});
n.d(o, 'isFilterEnabled', function () {
return Bs;
});
n.d(o, 'setScreenSize', function () {
return Ps;
});
n.d(o, 'getScreenSize', function () {
return Os;
});
n.d(o, 'getScreenSizeDefault', function () {
return Fs;
});
n.d(o, 'setScreenRatio', function () {
return Gs;
});
n.d(o, 'getScreenRatio', function () {
M return zs;
});
n.d(o, 'getScreenRatioDefault', function () {
return Ws;
});
n.d(o, 'getFullscreenModeDefault', function () {
return Us;
});
n.d(o, 'setFullscreenMode', function () {
return Zs;
});
n.d(o, 'getFullscreenMode', function () {
return Qs;
});
n.d(o, 'initPalette8', function () {
return Cs;
});
var s = {};
n.r(s);
n.d(s, 'isSelect', function M() {
return jf;
});
n.d(s, 'isReset', function () {
return Rf;
});
n.d(s, 'isPause', function () {
return Pf;
});
n.d(s, 'isLeftDiffSet', function () {
return Of;
});
n.d(s, 'isRightDiffSet', function () {
return Ff;
});
n.d(s, 'setLeftDiffSet', function () {
return Tf;
});
n.d(s, 'setRightDiffSet', function () {
return kf;
});
n.d(s, 'Mreset', function () {
return Gf;
});
n.d(s, 'p1KeyMap', function () {
return gf;
});
n.d(s, 'p2KeyMap', function () {
return yf;
});
n.d(s, 'setPauseKey', function () {
return zf;
});
n.d(s, 'getPauseKey', function () {
return Wf;
});
n.d(s, 'setSelectKey', function () {
return Uf;
});
n.d(s, 'getSelectKey', function () {
return Zf;
});
M n.d(s, 'setResetKey', function () {
return Qf;
});
n.d(s, 'getResetKey', function () {
return Hf;
});
n.d(s, 'defResetKey', function () {
return Df;
});
n.d(s, 'defPauseKey', function () {
return _f;
});
n.d(s, 'defSelectKey', function () {
return Sf;
});
var f = {};
n.r(f);
n.d(f, 'isTouchDevice', function () {
return Yf;
});
n.d(f, 'isMobileDeMvice', function () {
return Vf;
});
n.d(f, 'isIosDevice', function () {
return Jf;
});
n.d(f, 'addProps', function () {
return Xf;
});
var u = {};
n.r(u);
n.d(u, 'poll', function () {
return nu;
});
n.d(u, 'getMapping', function () {
return ru;
});
var d = {};
n.r(d);
n.d(d, 'isPauseButtonDown', function () {
return Yu;
});
n.d(d,M 'getGroup', function () {
return Hu;
});
n.d(d, 'Component', function () {
return Iu;
});
n.d(d, 'Button', function () {
return Cu;
});
n.d(d, 'leaderboardButton', function () {
return Wu;
});
n.d(d, 'settingsButton', function () {
return Zu;
});
n.d(d, 'helpButton', function () {
return Uu;
});
n.d(d, 'pauseButton', function () {
return ku;
}M);
n.d(d, 'soundButton', function () {
return Bu;
});
n.d(d, 'cogsImgSrc', function () {
return mu;
});
n.d(d, 'infoImgSrc', function () {
return Mu;
});
n.d(d, 'medalImgSrc', function () {
return vu;
});
var l = {};
n.r(l);
n.d(l, 'init', function () {
return vd;
});
n.d(l, 'startEmulation', function () {
return Md;
});
n.d(l, 'saveStateM', function () {
return Td;
});
n.d(l, 'loadState', function () {
return kd;
});
n.d(l, 'restart', function () {
return gd;
});
n.d(l, 'setErrorHandler', function () {
return Ld;
});
n.d(l, 'setHighScoreCallback', function () {
return Id;
});
n.d(l, 'HighScoreCallback', function () {
return Vu;
});
n.d(l, 'descriptionDiv', function () {
return ed;
M });
n.d(l, 'isVsyncEnabled', function () {
return Cd;
});
n.d(l, 'setVsyncEnabled', function () {
return Ed;
});
n.d(l, 'getVsyncEnabledDefault', function () {
return Sd;
});
n.d(l, 'getSkipLevelDefault', function () {
return Dd;
});
n.d(l, 'getSkipLevel', function () {
return Nd;
});
n.d(l, 'setSkipLevel', function () {
return _d;
});
var h = {};
M n.r(h);
n.d(h, 'Keys', function () {
return Bd;
});
var A = new Array(0, 0, 0);
var p = 0;
var b = new Array(2048);
var g = 31440;
var y = 0;
var w = new Array(0, 0, 0, 0);
var m = new Array(0, 0, 0, 0);
var M = 0;
var v = new Array(0, 0, 0, 0);
var L = new Array(1, 1, 0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0);
var I = new Array(
0,
0,
1,
1,
0,
M 0,
0,
1,
1,
1,
1,
0,
0,
1,
0,
1,
0,
1,
1,
0,
1,
1,
1,
0,
1,
0,
0,
0,
0,
0,
1
);
var C = new Array(511);
var E = new Array(131071);
var S = 0;
var x = 0;
var D = 0;
var N = 0;
var _ = new Array(0, 0, 0, M0);
var T = new Array(0, 0, 0, 0);
var k = 0;
var B = new Array(511);
var j = new Array(131071);
var R = 0;
var P = 0;
var O = 0;
var F = 0;
var G = 0;
var z = new Array(228, 228, 228, 228, 228, 228, 228, 228);
var W = 0;
var U = 0;
var Z = 0;
var Q = new Array(1, 1, 0, 0);
const J = Array(32);
var nt;
var rt;
(rt = nt || (nt = {})).FM_PGBITS = 9;
rt.FM_RATIOBITS = M7;
rt.FM_LFOBITS = 8;
rt.FM_TLBITS = 7;
rt.FM_TLENTS = 1 << rt.FM_TLBITS;
rt.FM_LFOENTS = 1 << rt.FM_LFOBITS;
rt.FM_CLENTS = 8192;
rt.FM_OPSINBITS = 10;
rt.FM_OPSINENTS = 1 << rt.FM_OPSINBITS;
rt.FM_EG_BOTTOM = 955;
rt.IS2EC_SHIFT = 20 + rt.FM_PGBITS - 13;
(function () {
var t = nt || (nt = {});
(function (t) {
t[(t.typeN = 0)] = 'typeN';
t[(t.typeM = 1)] = 'typeM';
})(t.OpType || (tM.OpType = {}));
t.OpType;
t.pmtable;
t.amtable;
t.tablemade = false;
var e = (function () {
function e() {
this.chip_ = null;
this.out_ = 0;
this.out2_ = 0;
this.in2_ = 0;
this.dp_ = 0;
this.detune_ = 0;
this.detune2_ = 0;
this.multiple_ = 0;
this.pg_count_ = 0;
this.pg_diff_ = 0;
this.pg_diff_lfo_ = 0;M
this.bn_ = 0;
this.eg_level_ = 0;
this.eg_level_on_next_phase_ = 0;
this.eg_count_ = 0;
this.eg_count_diff_ = 0;
this.eg_out_ = 0;
this.tl_out_ = 0;
this.eg_rate_ = 0;
this.eg_curve_count_ = 0;
this.key_scale_rate_ = 0;
this.eg_phase_ = e.EGPhase.next;
this.ms_ = 0;
this.tl_ = 0;
this.tl_latch_ = 0;
this.ar_M = 0;
this.dr_ = 0;
this.sr_ = 0;
this.sl_ = 0;
this.rr_ = 0;
this.ks_ = 0;
this.keyon_ = false;
this.amon_ = false;
this.param_changed_ = false;
this.mute_ = false;
this.dbgopout_ = 0;
this.dbgpgout_ = 0;
if (!e.tablehasmade) {
this.MakeTable();
}
this.ar_ =
this.dr_ =
this.Msr_ =
this.rr_ =
this.key_scale_rate_ =
0;
this.ams_ = t.amtable[0][0];
this.mute_ = false;
this.keyon_ = false;
this.tl_out_ = 0;
this.multiple_ = 0;
this.detune_ = 0;
this.detune2_ = 0;
this.ms_ = 0;
}
e.prototype.SetChip = function (t) {
this.chip_ = t;
};
e.prototype.Reset = function () {
M this.tl_ = this.tl_latch_ = 127;
this.ShiftPhase(e.EGPhase.off);
this.eg_count_ = 0;
this.eg_curve_count_ = 0;
this.pg_count_ = 0;
this.out_ = this.out2_ = 0;
this.param_changed_ = true;
};
e.prototype.MakeTable = function () {
var r = 0;
for (var n = 0; n < 256; n++) {
var c = Math.floor(Math.pow(2, 13 - n / 256));
c = (c + 2) & -4;
M e.cltable[r++] = c;
e.cltable[r++] = -c;
}
while (r < t.FM_CLENTS) {
e.cltable[r] = (e.cltable[r - 512] / 2) | 0;
r++;
}
for (n = 0; n < t.FM_OPSINENTS / 2; n++) {
var i = ((2 * n + 1) * Math.PI) / t.FM_OPSINENTS;
var a = (-256 * Math.log(Math.sin(i))) / Math.LN2;
var o = Math.floor(a + 0.5) + 1;
e.sinetable[n] = 2 * o;
e.Msinetable[t.FM_OPSINENTS / 2 + n] = 2 * o + 1;
}
t.MakeLFOTable();
e.tablehasmade = true;
};
e.prototype.SetDPBN = function (t, e) {
this.dp_ = t;
this.bn_ = e;
this.param_changed_ = true;
};
e.prototype.Prepare = function () {
if (this.param_changed_) {
switch (
((this.param_changed_ = false),
(this.pg_diff_ =
M (this.dp_ + e.dttable[this.detune_ + this.bn_]) *
this.chip_.GetMulValue(this.detune2_, this.multiple_)),
(this.pg_diff_lfo_ = this.pg_diff_ >> 11),
(this.key_scale_rate_ = this.bn_ >> (3 - this.ks_)),
(this.tl_out_ = this.mute_ ? 1023 : 8 * this.tl_),
this.eg_phase_)
) {
case e.EGPhase.attack:
this.SetEGRate(
this.ar_
M ? Math.min(63, this.ar_ + this.key_scale_rate_)
: 0
);
break;
case e.EGPhase.decay:
this.SetEGRate(
this.dr_
? Math.min(63, this.dr_ + this.key_scale_rate_)
: 0
);
this.eg_level_on_next_phase_ = 8 * this.sl_;
break;
case e.EGPhase.sustain:
this.SMetEGRate(
this.sr_
? Math.min(63, this.sr_ + this.key_scale_rate_)
: 0
);
break;
case e.EGPhase.release:
this.SetEGRate(
Math.min(63, this.rr_ + this.key_scale_rate_)
);
}
this.ams_ =
t.amtable[this.type_][this.amon_ ? (this.ms_ >> 4) & 3 : 0];
this.EGUpdate();
M this.dbgopout_ = 0;
}
};
e.prototype.ShiftPhase = function (n) {
switch (n) {
case e.EGPhase.attack:
if (this.ar_ + this.key_scale_rate_ < 62) {
this.SetEGRate(
this.ar_
? Math.min(63, this.ar_ + this.key_scale_rate_)
: 0
);
this.eg_phase_ = e.EGPhase.attack;
break;
M }
case e.EGPhase.decay:
if (this.sl_) {
this.eg_level_ = 0;
this.eg_level_on_next_phase_ = 8 * this.sl_;
this.SetEGRate(
this.dr_
? Math.min(63, this.dr_ + this.key_scale_rate_)
: 0
);
this.eg_phase_ = e.EGPhase.decay;
break;
}
case e.EGPhase.sustMain:
this.eg_level_ = 8 * this.sl_;
this.eg_level_on_next_phase_ = 1024;
this.SetEGRate(
this.sr_ ? Math.min(63, this.sr_ + this.key_scale_rate_) : 0
);
this.eg_phase_ = e.EGPhase.sustain;
break;
case e.EGPhase.release:
if (
this.eg_phase_ === e.EGPhase.attack ||
this.eg_level_ < t.FM_EG_BOTTOM
) {
M this.eg_level_on_next_phase_ = 1024;
this.SetEGRate(
Math.min(63, this.rr_ + this.key_scale_rate_)
);
this.eg_phase_ = e.EGPhase.release;
break;
}
case e.EGPhase.off:
default:
this.eg_level_ = t.FM_EG_BOTTOM;
this.eg_level_on_next_phase_ = t.FM_EG_BOTTOM;
this.EGUpdate();
thiMs.SetEGRate(0);
this.eg_phase_ = e.EGPhase.off;
}
};
e.prototype.SetFNum = function (t) {
this.dp_ = (2047 & t) << ((t >> 11) & 7);
this.bn_ = e.notetable[(t >> 7) & 127];
this.param_changed_ = true;
};
e.prototype.LogToLin = function (n) {
if (n < t.FM_CLENTS) {
return e.cltable[n];
} else {
return 0;
}
};
M e.prototype.EGUpdate = function () {
this.eg_out_ = Math.min(this.tl_out_ + this.eg_level_, 1023) << 3;
};
e.prototype.SetEGRate = function (t) {
this.eg_rate_ = t;
this.eg_count_diff_ =
e.decaytable2[t >> 2] * this.chip_.GetRatio();
};
e.prototype.EGCalc = function () {
this.eg_count_ = 6141 << t.FM_RATIOBITS;
if (this.eg_phase_ === e.EGPhase.attack) {
var nM = e.attacktable[this.eg_rate_][7 & this.eg_curve_count_];
if (n >= 0) {
this.eg_level_ -= 1 + (this.eg_level_ >> n);
if (this.eg_level_ <= 0) {
this.ShiftPhase(e.EGPhase.decay);
}
}
this.EGUpdate();
} else {
this.eg_level_ +=
e.decaytable1[this.eg_rate_][7 & this.eg_curve_count_];
if (this.eg_level_ >= this.eg_level_on_next_phase_)M {
this.ShiftPhase(this.eg_phase_ + 1);
}
this.EGUpdate();
}
this.eg_curve_count_++;
};
e.prototype.EGStep = function () {
this.eg_count_ -= this.eg_count_diff_;
if (this.eg_count_ <= 0) {
this.EGCalc();
}
};
e.prototype.PGCalc = function () {
var t = this.pg_count_;
this.pg_count_ += this.pg_diff_;
M this.dbgpgout_ = t;
return t;
};
e.prototype.PGCalcL = function () {
var t = this.pg_count_;
this.pg_count_ +=
this.pg_diff_ +
((this.pg_diff_lfo_ * this.chip_.GetPMV()) >> 5);
this.dbgpgout_ = t;
return t;
};
e.prototype.Calc = function (n) {
this.EGStep();
this.out2_ = this.out_;
var r = this.PGCalc() >> (20 + t.FM_PGMBITS - t.FM_OPSINBITS);
r +=
n >> (20 + t.FM_PGBITS - t.FM_OPSINBITS - (2 + t.IS2EC_SHIFT));
this.out_ = this.LogToLin(
this.eg_out_ + e.sinetable[r & (t.FM_OPSINENTS - 1)]
);
this.dbgopout_ = this.out_;
return this.out_;
};
e.prototype.CalcL = function (n) {
this.EGStep();
var r = this.PGCalcL() >> (20 + t.FM_PGBITS - t.FM_OPSINBITS);
r +=
M n >> (20 + t.FM_PGBITS - t.FM_OPSINBITS - (2 + t.IS2EC_SHIFT));
this.out_ = this.LogToLin(
this.eg_out_ +
e.sinetable[r & (t.FM_OPSINENTS - 1)] +
this.ams_[this.chip_.GetAML()]
);
this.dbgopout_ = this.out_;
return this.out_;
};
e.prototype.CalcN = function (t) {
this.EGStep();
var e = Math.max(0, 1023 - (this.tl_out_ + this.eg_level_)) << 1;
M t = (1 & t) - 1;
this.out_ = (e + t) ^ t;
this.dbgopout_ = this.out_;
return this.out_;
};
e.prototype.CalcFB = function (n) {
this.EGStep();
var r = this.out_ + this.out2_;
this.out2_ = this.out_;
var c = this.PGCalc() >> (20 + t.FM_PGBITS - t.FM_OPSINBITS);
if (n < 31) {
c +=
((r << (1 + t.IS2EC_SHIFT)) >> n) >>
(20 + t.FMM_PGBITS - t.FM_OPSINBITS);
}
this.out_ = this.LogToLin(
this.eg_out_ + e.sinetable[c & (t.FM_OPSINENTS - 1)]
);
this.dbgopout_ = this.out2_;
return this.out2_;
};
e.prototype.CalcFBL = function (n) {
this.EGStep();
var r = this.out_ + this.out2_;
this.out2_ = this.out_;
var c = this.PGCalcL() >> (20 + t.FM_PGBITS - t.FM_OPSINBITS);
if (n M< 31) {
c +=
((r << (1 + t.IS2EC_SHIFT)) >> n) >>
(20 + t.FM_PGBITS - t.FM_OPSINBITS);
}
this.out_ = this.LogToLin(
this.eg_out_ +
e.sinetable[c & (t.FM_OPSINENTS - 1)] +
this.ams_[this.chip_.GetAML()]
);
this.dbgopout_ = this.out_;
return this.out_;
};
e.prototype.ResetFB = function () {
this.out_ = this.oMut2_ = 0;
};
e.prototype.KeyOn = function () {
if (!this.keyon_) {
this.keyon_ = true;
if (
this.eg_phase_ === e.EGPhase.off ||
this.eg_phase_ === e.EGPhase.release
) {
this.ShiftPhase(e.EGPhase.attack);
this.EGUpdate();
this.in2_ = this.out_ = this.out2_ = 0;
this.pg_count_ = 0;
}
}
M };
e.prototype.KeyOff = function () {
if (this.keyon_) {
this.keyon_ = false;
this.ShiftPhase(e.EGPhase.release);
}
};
e.prototype.IsOn = function () {
return this.eg_phase_ - e.EGPhase.off;
};
e.prototype.SetDT = function (t) {
this.detune_ = 32 * t;
this.param_changed_ = true;
};
e.prototype.SetDT2 = function (t) {
Mthis.detune2_ = 3 & t;
this.param_changed_ = true;
};
e.prototype.SetMULTI = function (t) {
this.multiple_ = t;
this.param_changed_ = true;
};
e.prototype.SetTL = function (t) {
this.tl_ = t;
this.param_changed_ = true;
};
e.prototype.SetAR = function (t) {
this.ar_ = t;
this.param_changed_ = true;
};
e.prototype.SetDR = funMction (t) {
this.dr_ = t;
this.param_changed_ = true;
};
e.prototype.SetSR = function (t) {
this.sr_ = t;
this.param_changed_ = true;
};
e.prototype.SetSL = function (t) {
this.sl_ = t;
this.param_changed_ = true;
};
e.prototype.SetRR = function (t) {
this.rr_ = t;
this.param_changed_ = true;
};
e.prototype.SetMKS = function (t) {
this.ks_ = t;
this.param_changed_ = true;
};
e.prototype.SetAMON = function (t) {
this.amon_ = t;
this.param_changed_ = true;
};
e.prototype.Mute = function (t) {
this.mute_ = t;
this.param_changed_ = true;
};
e.prototype.SetMS = function (t) {
this.ms_ = t;
this.param_changed_ = true;
};
e.Mprototype.Out = function () {
return this.out_;
};
e.notetable = [
0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4,
4, 5, 6, 7, 7, 7, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 8, 9, 10, 11, 11,
11, 11, 11, 11, 11, 12, 12, 12, 12, 12, 12, 12, 13, 14, 15, 15,
15, 15, 15, 15, 15, 16, 16, 16, 16, 16, 16, 16, 17, 18, 19, 19,
19, 19, 19, 19, 19, 20, 20, 20, 20, 20, 20, 20, 21, 22, 23, 23,
23, 23,M 23, 23, 23, 24, 24, 24, 24, 24, 24, 24, 25, 26, 27, 27,
27, 27, 27, 27, 27, 28, 28, 28, 28, 28, 28, 28, 29, 30, 31, 31,
31, 31, 31, 31, 31,
];
e.dttable = [
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2,
4, 4, 4, 4, 4, 6, 6, 6, 8, 8, 8, 10, 10, 12, 12, 14, 16, 16, 16,
16, 2, 2, 2, 2, 4, 4, 4, 4, 4, 6, 6, 6, 8, 8, 8, 10, 10, M12, 12,
14, 16, 16, 18, 20, 22, 24, 26, 28, 32, 32, 32, 32, 4, 4, 4, 4, 4,
6, 6, 6, 8, 8, 8, 10, 10, 12, 12, 14, 16, 16, 18, 20, 22, 24, 26,
28, 32, 34, 38, 40, 44, 44, 44, 44, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, -2, -2, -2, -2, -2, -2, -2, -2, -4, -4, -4, -4, -4,
-6, -6, -6, -8, -8, -8, -10, -10, -12, -12, -14, -16, -16, -16,
-16, -2, -2, -2, -2, M-4, -4, -4, -4, -4, -6, -6, -6, -8, -8, -8,
-10, -10, -12, -12, -14, -16, -16, -18, -20, -22, -24, -26, -28,
-32, -32, -32, -32, -4, -4, -4, -4, -4, -6, -6, -6, -8, -8, -8,
-10, -10, -12, -12, -14, -16, -16, -18, -20, -22, -24, -26, -28,
-32, -34, -38, -40, -44, -44, -44, -44,
];
e.decaytable1 = [
[0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0],
[1, 1, 1, 1, 1, 1, 1, 1],
[1, 1, M1, 1, 1, 1, 1, 1],
[1, 1, 1, 1, 1, 1, 1, 1],
[1, 1, 1, 1, 1, 1, 1, 1],
[1, 1, 1, 0, 1, 1, 1, 0],
[1, 1, 1, 0, 1, 1, 1, 0],
[1, 0, 1, 0, 1, 0, 1, 0],
[1, 1, 1, 0, 1, 0, 1, 0],
[1, 1, 1, 0, 1, 1, 1, 0],
[1, 1, 1, 1, 1, 1, 1, 0],
[1, 0, 1, 0, 1, 0, 1, 0],
[1, 1, 1, 0, 1, 0, 1, 0],
[1, 1, 1, 0, 1, 1, 1, 0],
[1, 1, 1, 1, 1, 1, 1, 0],
[1, 0, M1, 0, 1, 0, 1, 0],
[1, 1, 1, 0, 1, 0, 1, 0],
[1, 1, 1, 0, 1, 1, 1, 0],
[1, 1, 1, 1, 1, 1, 1, 0],
[1, 0, 1, 0, 1, 0, 1, 0],
[1, 1, 1, 0, 1, 0, 1, 0],
[1, 1, 1, 0, 1, 1, 1, 0],
[1, 1, 1, 1, 1, 1, 1, 0],
[1, 0, 1, 0, 1, 0, 1, 0],
[1, 1, 1, 0, 1, 0, 1, 0],
[1, 1, 1, 0, 1, 1, 1, 0],
[1, 1, 1, 1, 1, 1, 1, 0],
[1, 0, 1, 0, 1, 0, 1, 0],
[1, 1, M1, 0, 1, 0, 1, 0],
[1, 1, 1, 0, 1, 1, 1, 0],
[1, 1, 1, 1, 1, 1, 1, 0],
[1, 0, 1, 0, 1, 0, 1, 0],
[1, 1, 1, 0, 1, 0, 1, 0],
[1, 1, 1, 0, 1, 1, 1, 0],
[1, 1, 1, 1, 1, 1, 1, 0],
[1, 0, 1, 0, 1, 0, 1, 0],
[1, 1, 1, 0, 1, 0, 1, 0],
[1, 1, 1, 0, 1, 1, 1, 0],
[1, 1, 1, 1, 1, 1, 1, 0],
[1, 0, 1, 0, 1, 0, 1, 0],
[1, 1, 1, 0, 1, 0, 1, 0],
[1, 1, M1, 0, 1, 1, 1, 0],
[1, 1, 1, 1, 1, 1, 1, 0],
[1, 0, 1, 0, 1, 0, 1, 0],
[1, 1, 1, 0, 1, 0, 1, 0],
[1, 1, 1, 0, 1, 1, 1, 0],
[1, 1, 1, 1, 1, 1, 1, 0],
[1, 1, 1, 1, 1, 1, 1, 1],
[2, 1, 1, 1, 2, 1, 1, 1],
[2, 1, 2, 1, 2, 1, 2, 1],
[2, 2, 2, 1, 2, 2, 2, 1],
[2, 2, 2, 2, 2, 2, 2, 2],
[4, 2, 2, 2, 4, 2, 2, 2],
[4, 2, 4, 2, 4, 2, 4, 2],
[4, 4, M4, 2, 4, 4, 4, 2],
[4, 4, 4, 4, 4, 4, 4, 4],
[8, 4, 4, 4, 8, 4, 4, 4],
[8, 4, 8, 4, 8, 4, 8, 4],
[8, 8, 8, 4, 8, 8, 8, 4],
[16, 16, 16, 16, 16, 16, 16, 16],
[16, 16, 16, 16, 16, 16, 16, 16],
[16, 16, 16, 16, 16, 16, 16, 16],
[16, 16, 16, 16, 16, 16, 16, 16],
];
e.decaytable2 = [
1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2047, 2047, 2047,
2047, 2047,
M ];
e.attacktable = [
[-1, -1, -1, -1, -1, -1, -1, -1],
[-1, -1, -1, -1, -1, -1, -1, -1],
[4, 4, 4, 4, 4, 4, 4, 4],
[4, 4, 4, 4, 4, 4, 4, 4],
[4, 4, 4, 4, 4, 4, 4, 4],
[4, 4, 4, 4, 4, 4, 4, 4],
[4, 4, 4, -1, 4, 4, 4, -1],
[4, 4, 4, -1, 4, 4, 4, -1],
[4, -1, 4, -1, 4, -1, 4, -1],
[4, 4, 4, -1, 4, -1, 4, -1],
[4, 4, 4, -1, 4, 4, 4, -1],
M [4, 4, 4, 4, 4, 4, 4, -1],
[4, -1, 4, -1, 4, -1, 4, -1],
[4, 4, 4, -1, 4, -1, 4, -1],
[4, 4, 4, -1, 4, 4, 4, -1],
[4, 4, 4, 4, 4, 4, 4, -1],
[4, -1, 4, -1, 4, -1, 4, -1],
[4, 4, 4, -1, 4, -1, 4, -1],
[4, 4, 4, -1, 4, 4, 4, -1],
[4, 4, 4, 4, 4, 4, 4, -1],
[4, -1, 4, -1, 4, -1, 4, -1],
[4, 4, 4, -1, 4, -1, 4, -1],
[4, 4, 4, -1, 4, 4, 4, -1],
[4,M 4, 4, 4, 4, 4, 4, -1],
[4, -1, 4, -1, 4, -1, 4, -1],
[4, 4, 4, -1, 4, -1, 4, -1],
[4, 4, 4, -1, 4, 4, 4, -1],
[4, 4, 4, 4, 4, 4, 4, -1],
[4, -1, 4, -1, 4, -1, 4, -1],
[4, 4, 4, -1, 4, -1, 4, -1],
[4, 4, 4, -1, 4, 4, 4, -1],
[4, 4, 4, 4, 4, 4, 4, -1],
[4, -1, 4, -1, 4, -1, 4, -1],
[4, 4, 4, -1, 4, -1, 4, -1],
[4, 4, 4, -1, 4, 4, 4, -1],
[4, 4, 4, 4, M4, 4, 4, -1],
[4, -1, 4, -1, 4, -1, 4, -1],
[4, 4, 4, -1, 4, -1, 4, -1],
[4, 4, 4, -1, 4, 4, 4, -1],
[4, 4, 4, 4, 4, 4, 4, -1],
[4, -1, 4, -1, 4, -1, 4, -1],
[4, 4, 4, -1, 4, -1, 4, -1],
[4, 4, 4, -1, 4, 4, 4, -1],
[4, 4, 4, 4, 4, 4, 4, -1],
[4, -1, 4, -1, 4, -1, 4, -1],
[4, 4, 4, -1, 4, -1, 4, -1],
[4, 4, 4, -1, 4, 4, 4, -1],
[4, 4, 4, 4, 4, 4, 4, -M1],
[4, 4, 4, 4, 4, 4, 4, 4],
[3, 4, 4, 4, 3, 4, 4, 4],
[3, 4, 3, 4, 3, 4, 3, 4],
[3, 3, 3, 4, 3, 3, 3, 4],
[3, 3, 3, 3, 3, 3, 3, 3],
[2, 3, 3, 3, 2, 3, 3, 3],
[2, 3, 2, 3, 2, 3, 2, 3],
[2, 2, 2, 3, 2, 2, 2, 3],
[2, 2, 2, 2, 2, 2, 2, 2],
[1, 2, 2, 2, 1, 2, 2, 2],
[1, 2, 1, 2, 1, 2, 1, 2],
[1, 1, 1, 2, 1, 1, 1, 2],
[0, 0, 0, 0, 0, 0, 0, M0],
[0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0],
];
e.tablehasmade = false;
e.sinetable = new Array(1024);
e.cltable = new Array(t.FM_CLENTS);
e.EGPhase = {
next: 0,
attack: 1,
decay: 2,
sustain: 3,
release: 4,
off: 5,
};
return e;
})();
t.Operator = e;
M var n = (function () {
function n() {
this.op = [new e(), new e(), new e(), new e()];
this.tablehasmade = false;
this.fb = 0;
this.buf = new Array(4);
this.inop = new Array(3);
this.outop = new Array(3);
this.algo_ = 0;
this.chip_ = null;
if (!this.tablehasmade) {
this.MakeTable();
}
this.SetAlgorithm(0);
this.pms =M t.pmtable[0][0];
}
n.prototype.MakeTable = function () {
for (var t = 0; t < 64; t++) {
n.kftable[t] = (65536 * Math.pow(2, t / 768)) | 0;
}
};
n.prototype.SetChip = function (t) {
this.chip_ = t;
for (var e = 0; e < 4; e++) {
this.op[e].SetChip(t);
}
};
n.prototype.Reset = function () {
for (var t = 0; t < 4; t++) {
M this.op[t].Reset();
}
};
n.prototype.Prepare = function () {
for (var e = 0; e < 4; e++) {
this.op[e].Prepare();
}
this.pms = t.pmtable[this.op[0].type_][7 & this.op[0].ms_];
return (
(this.op[0].IsOn() |
this.op[1].IsOn() |
this.op[2].IsOn() |
this.op[3].IsOn()
? 1
: 0) |
(this.op[0].ms_ M&
(this.op[0].amon_ ||
this.op[1].amon_ ||
this.op[2].amon_ ||
this.op[3].amon_
? 55
: 7)
? 2
: 0)
);
};
n.prototype.SetFNum = function (t) {
for (var e = 0; e < 4; e++) {
this.op[e].SetFNum(t);
}
};
n.prototype.SetKCKF = function (t, e) {
var r = 19 - ((t >> 4) &M 7);
var c = [
5197, 5506, 5833, 6180, 6180, 6547, 6937, 7349, 7349, 7786,
8249, 8740, 8740, 9259, 9810, 10394,
][15 & t];
var i = (c = ((c + 2) / 4) * 4) * n.kftable[63 & e];
i >>= 19;
i <<= 19;
i >>= r;
var a = (t >> 2) & 31;
this.op[0].SetDPBN(i, a);
this.op[1].SetDPBN(i, a);
this.op[2].SetDPBN(i, a);
this.op[3].SetDPBN(i, a);
M };
n.prototype.KeyControl = function (t) {
if (1 & t) {
this.op[0].KeyOn();
} else {
this.op[0].KeyOff();
}
if (2 & t) {
this.op[1].KeyOn();
} else {
this.op[1].KeyOff();
}
if (4 & t) {
this.op[2].KeyOn();
} else {
this.op[2].KeyOff();
}
if (8 & t) {
M this.op[3].KeyOn();
} else {
this.op[3].KeyOff();
}
};
n.prototype.SetAlgorithm = function (t) {
var e = [
[0, 1, 1, 2, 2, 3],
[1, 0, 0, 1, 1, 2],
[1, 1, 1, 0, 0, 2],
[0, 1, 2, 1, 1, 2],
[0, 1, 2, 2, 2, 1],
[0, 1, 0, 1, 0, 1],
[0, 1, 2, 1, 2, 1],
[1, 0, 1, 0, 1, 0],
];
this.inMop[0] = e[t][0];
this.outop[0] = e[t][1];
this.inop[1] = e[t][2];
this.outop[1] = e[t][3];
this.inop[2] = e[t][4];
this.outop[2] = e[t][5];
this.op[0].ResetFB();
this.algo_ = t;
};
n.prototype.Calc = function () {
var t;
switch (this.algo_) {
case 0:
this.op[2].Calc(this.op[1].Out());
this.op[1].Calc(this.op[0].Out()M);
t = this.op[3].Calc(this.op[2].Out());
this.op[0].CalcFB(this.fb);
break;
case 1:
this.op[2].Calc(this.op[0].Out() + this.op[1].Out());
this.op[1].Calc(0);
t = this.op[3].Calc(this.op[2].Out());
this.op[0].CalcFB(this.fb);
break;
case 2:
this.op[2].Calc(this.op[1].Out());
this.op[1].Calc(0);
M t = this.op[3].Calc(this.op[0].Out() + this.op[2].Out());
this.op[0].CalcFB(this.fb);
break;
case 3:
this.op[2].Calc(0);
this.op[1].Calc(this.op[0].Out());
t = this.op[3].Calc(this.op[1].Out() + this.op[2].Out());
this.op[0].CalcFB(this.fb);
break;
case 4:
this.op[2].Calc(0);
t = this.op[1].Calc(this.op[0].Out());
M t += this.op[3].Calc(this.op[2].Out());
this.op[0].CalcFB(this.fb);
break;
case 5:
t = this.op[2].Calc(this.op[0].Out());
t += this.op[1].Calc(this.op[0].Out());
t += this.op[3].Calc(this.op[0].Out());
this.op[0].CalcFB(this.fb);
break;
case 6:
t = this.op[2].Calc(0);
t += this.op[1].Calc(this.op[0].Out());
M t += this.op[3].Calc(0);
this.op[0].CalcFB(this.fb);
break;
case 7:
t = this.op[2].Calc(0);
t += this.op[1].Calc(0);
t += this.op[3].Calc(0);
t += this.op[0].CalcFB(this.fb);
}
return t;
};
n.prototype.CalcL = function () {
var t;
switch (
(this.chip_.SetPMV(this.pms[this.chip_.GetPMLM()]), this.algo_)
) {
case 0:
this.op[2].CalcL(this.op[1].Out());
this.op[1].CalcL(this.op[0].Out());
t = this.op[3].CalcL(this.op[2].Out());
this.op[0].CalcFBL(this.fb);
break;
case 1:
this.op[2].CalcL(this.op[0].Out() + this.op[1].Out());
this.op[1].CalcL(0);
t = this.op[3].CalcL(this.op[2].Out());
this.op[0]M.CalcFBL(this.fb);
break;
case 2:
this.op[2].CalcL(this.op[1].Out());
this.op[1].CalcL(0);
t = this.op[3].CalcL(this.op[0].Out() + this.op[2].Out());
this.op[0].CalcFBL(this.fb);
break;
case 3:
this.op[2].CalcL(0);
this.op[1].CalcL(this.op[0].Out());
t = this.op[3].CalcL(this.op[1].Out() + this.op[2].Out());
M this.op[0].CalcFBL(this.fb);
break;
case 4:
this.op[2].CalcL(0);
t = this.op[1].CalcL(this.op[0].Out());
t += this.op[3].CalcL(this.op[2].Out());
this.op[0].CalcFBL(this.fb);
break;
case 5:
t = this.op[2].CalcL(this.op[0].Out());
t += this.op[1].CalcL(this.op[0].Out());
t += this.op[3].CalcL(this.op[0].Out());
M this.op[0].CalcFBL(this.fb);
break;
case 6:
t = this.op[2].CalcL(0);
t += this.op[1].CalcL(this.op[0].Out());
t += this.op[3].CalcL(0);
this.op[0].CalcFBL(this.fb);
break;
case 7:
t = this.op[2].CalcL(0);
t += this.op[1].CalcL(0);
t += this.op[3].CalcL(0);
t += this.op[0].CalcFBL(this.fb);
M }
return t;
};
n.prototype.CalcN = function (t) {
this.buf[1] = this.buf[2] = this.buf[3] = 0;
this.buf[0] = this.op[0].out_;
this.op[0].CalcFB(this.fb);
this.buf[this.outop[0]] += this.op[1].Calc(
this.buf[this.inop[0]]
);
this.buf[this.outop[1]] += this.op[2].Calc(
this.buf[this.inop[1]]
);
var e = this.op[3].out_;
thMis.op[3].CalcN(t);
return this.buf[this.outop[2]] + e;
};
n.prototype.CalcLN = function (t) {
this.chip_.SetPMV(this.pms[this.chip_.GetPML()]);
this.buf[1] = this.buf[2] = this.buf[3] = 0;
this.buf[0] = this.op[0].out_;
this.op[0].CalcFBL(this.fb);
this.buf[this.outop[0]] += this.op[1].CalcL(
this.buf[this.inop[0]]
);
this.buf[this.outop[1]] += this.op[2].CalcL(
M this.buf[this.inop[1]]
);
var e = this.op[3].out_;
this.op[3].CalcN(t);
return this.buf[this.outop[2]] + e;
};
n.prototype.SetType = function (t) {
for (var e = 0; e < 4; e++) {
this.op[e].type_ = t;
}
};
n.prototype.SetFB = function (t) {
this.fb = n.fbtable[t];
};
n.prototype.SetMS = function (t) {
for (Mvar e = 0; e < 4; e++) {
this.op[e].SetMS(t);
}
};
n.prototype.Mute = function (t) {
for (var e = 0; e < 4; e++) {
this.op[e].Mute(t);
}
};
n.fbtable = [31, 7, 6, 5, 4, 3, 2, 1];
n.kftable = new Array(64);
return n;
})();
t.Channel4 = n;
var r = (function () {
function e() {
this.ratio_ = 0;
this.aml_ =M 0;
this.pml_ = 0;
this.pmv_ = 0;
}
e.prototype.SetRatio = function (t) {
t = Math.round(t);
if (this.ratio_ !== t) {
this.ratio_ = t;
this.MakeTable();
}
};
e.prototype.SetAML = function (e) {
this.aml_ = e & (t.FM_LFOENTS - 1);
};
e.prototype.SetPML = function (e) {
this.pml_ = e & (t.FM_LFOENTS - 1);
}M;
e.prototype.SetPMV = function (t) {
this.pmv_ = t;
};
e.prototype.GetMulValue = function (t, e) {
return this.multable_[t][e];
};
e.prototype.GetAML = function () {
return this.aml_;
};
e.prototype.GetPML = function () {
return this.pml_;
};
e.prototype.GetPMV = function () {
return this.pmv_;
};
e.prototype.GetRatMio = function () {
return this.ratio_;
};
e.prototype.MakeTable = function () {
var n;
var r = [1, 1.414, 1.581, 1.732];
this.multable_ = new Array(4);
for (var e = 0; e < 4; e++) {
var c =
(r[e] * this.ratio_) /
(1 << (2 + t.FM_RATIOBITS - t.FM_PGBITS));
this.multable_[e] = new Array(16);
for (n = 0; n < 16; n++) {
var i M= n ? 2 * n : 1;
this.multable_[e][n] = (i * c) | 0;
}
}
};
return e;
})();
t.Chip = r;
t.MakeLFOTable = function () {
if (!t.tablemade) {
var e;
t.tablemade = true;
var n = [
[
0,
1 / 360,
2 / 360,
3 / 360,
4 / 360,
6 / 360,
M 12 / 360,
24 / 360,
],
[
0,
1 / 480,
2 / 480,
4 / 480,
10 / 480,
20 / 480,
80 / 480,
140 / 480,
],
];
var r = [
[31, 6, 4, 3],
[31, 2, 1, 0],
];
t.pmtable = new Array(2);
t.amtable = new Array(2);
M for (var c = 0; c < 2; c++) {
t.pmtable[c] = new Array(8);
for (e = 0; e < 8; e++) {
var i = n[c][e];
t.pmtable[c][e] = new Array(t.FM_LFOENTS);
for (var a = 0; a < t.FM_LFOENTS; a++) {
Math.pow(
2,
(i * (2 * a - t.FM_LFOENTS + 1)) / (t.FM_LFOENTS - 1)
);
var o =
0.6 * i * Math.sin((2 * a * Math.PI) M/ t.FM_LFOENTS) + 1;
t.pmtable[c][e][a] = (65536 * (o - 1)) | 0;
}
}
t.amtable[c] = new Array(4);
for (e = 0; e < 4; e++) {
t.amtable[c][e] = new Array(t.FM_LFOENTS);
for (a = 0; a < t.FM_LFOENTS; a++) {
t.amtable[c][e][a] = (2 * ((4 * a) >> r[c][e])) << 2;
}
}
}
}
};
})();
(function () {
M var t = nt || (nt = {});
var e = (function () {
function t() {
this.OPM_LFOENTS = 512;
this.regtc = 0;
this.regta = new Array(2);
this.timera = 0;
this.timera_count = 0;
this.timerb = 0;
this.timerb_count = 0;
this.timer_step = 0;
}
t.prototype.Reset = function () {
this.timera_count = 0;
this.timerb_count = 0;
}M;
t.prototype.SetTimerControl = function (t) {
var e = this.regtc ^ t;
this.regtc = t;
if (16 & t) {
this.ResetStatus(1);
}
if (32 & t) {
this.ResetStatus(2);
}
if (1 & e) {
this.timera_count = 1 & t ? this.timera : 0;
}
if (2 & e) {
this.timerb_count = 2 & t ? this.timerb : 0;
}
};
M t.prototype.SetTimerA = function (t, e) {
this.regta[1 & t] = e;
var n = (this.regta[0] << 2) + (3 & this.regta[1]);
this.timera = (1024 - n) * this.timer_step;
};
t.prototype.SetTimerB = function (t) {
this.timerb = (256 - t) * this.timer_step;
};
t.prototype.Count = function (t) {
var e = false;
if (this.timera_count) {
this.timera_count -= t << 16;
M if (this.timera_count <= 0) {
e = true;
for (this.TimerA(); this.timera_count <= 0; ) {
this.timera_count += this.timera;
}
if (4 & this.regtc) {
this.SetStatus(1);
}
}
}
if (this.timerb_count) {
this.timerb_count -= t << 12;
if (this.timerb_count <= 0) {
for (e = true; this.timerb_count <= 0;M ) {
this.timerb_count += this.timerb;
}
if (8 & this.regtc) {
this.SetStatus(2);
}
}
}
return e;
};
t.prototype.GetNextEvent = function () {
var t = ((this.timera_count + 65535) >> 16) - 1;
var e = ((this.timerb_count + 4095) >> 12) - 1;
return (t < e ? t : e) + 1;
};
t.prototype.SetTimerBaMse = function (t) {
this.timer_step = (65536e6 / t) | 0;
};
t.prototype.SetStatus = function (t) {};
t.prototype.ResetStatus = function (t) {};
t.prototype.TimerA = function () {};
return t;
})();
t.Timer = e;
})();
(function () {
var t = nt || (nt = {});
var e = (function () {
function n() {
e.call(this);
this.fmvolume = 0;
this.clocMk = 0;
this.rate = 0;
this.pcmrate = 0;
this.pmd = 0;
this.amd = 0;
this.lfocount = 0;
this.lfodcount = 0;
this.lfo_count_ = 0;
this.lfo_count_diff_ = 0;
this.lfo_step_ = 0;
this.lfo_count_prev_ = 0;
this.lfowaveform = 0;
this.rateratio = 0;
this.noise = 0;
this.noisecount = 0;
this.noisedelta = 0;
M this.interpolation = false;
this.lfofreq = 0;
this.status = 0;
this.reg01 = 0;
this.kc = new Array(8);
this.kf = new Array(8);
this.pan = new Array(8);
this.ch = [
new t.Channel4(),
new t.Channel4(),
new t.Channel4(),
new t.Channel4(),
new t.Channel4(),
new t.Channel4(),
new t.Channel4(),
Mnew t.Channel4(),
];
this.chip = new t.Chip();
this.lfo_count_ = 0;
this.lfo_count_prev_ = -1;
this.BuildLFOTable();
for (var n = 0; n < 8; n++) {
this.ch[n].SetChip(this.chip);
this.ch[n].SetType(1);
}
}
var e = t.Timer;
(function (t, e) {
function r() {
this.constructor = t;
}
for (var n in e)M {
if (e.hasOwnProperty(n)) {
t[n] = e[n];
}
}
r.prototype = e.prototype;
t.prototype = new r();
})(n, e);
n.prototype.Init = function (t, e) {
if (!this.SetRate(t, e)) {
return false;
}
this.Reset();
this.SetVolume(0);
this.SetChannelMask(0);
return true;
};
n.prototype.SetRate M= function (t, e) {
this.clock = t;
this.pcmrate = e;
this.rate = e;
this.RebuildTimeTable();
return true;
};
n.prototype.SetChannelMask = function (t) {
for (var e = 0; e < 8; e++) {
this.ch[e].Mute(!!(t & (1 << e)));
}
};
n.prototype.Reset = function () {
for (var t = 0; t < 256; t++) {
this.SetReg(t, 0);
}
M this.SetReg(25, 128);
e.prototype.Reset.call(this);
this.status = 0;
this.noise = 12345;
this.noisecount = 0;
for (t = 0; t < 8; t++) {
this.ch[t].Reset();
}
};
n.prototype.RebuildTimeTable = function () {
var e = this.clock / 64;
this.rateratio =
((e << t.FM_RATIOBITS) + this.rate / 2) / this.rate;
this.SetTimerBase(e);
M this.chip.SetRatio(this.rateratio);
};
n.prototype.SetVolume = function (t) {
t = Math.min(t, 20);
this.fmvolume = t > -192 ? (16384 * Math.pow(10, t / 40)) | 0 : 0;
};
n.prototype.SetStatus = function (t) {
if (!(this.status & t)) {
this.status |= t;
this.Intr(true);
}
};
n.prototype.GetStatus = function (t) {
return this.status;
M };
n.prototype.ResetStatus = function (t) {
if (this.status & t) {
this.status &= ~t;
if (!this.status) {
this.Intr(false);
}
}
};
n.prototype.SetReg = function (e, n) {
if (!(e >= 256)) {
var r = 7 & e;
switch (255 & e) {
case 1:
if (2 & n) {
this.lfo_count_ = 0;
M this.lfo_count_prev_ = -1;
}
this.reg01 = n;
break;
case 8:
if (128 & this.regtc) {
r = 7 & n;
if (!(8 & n)) {
this.ch[r].op[0].KeyOff();
}
if (!(16 & n)) {
this.ch[r].op[1].KeyOff();
}
if (!(32 & n)) {
thiMs.ch[r].op[2].KeyOff();
}
if (!(64 & n)) {
this.ch[r].op[3].KeyOff();
}
} else {
this.ch[7 & n].KeyControl(n >> 3);
}
break;
case 16:
case 17:
this.SetTimerA(e, n);
break;
case 18:
this.SetTimerB(n);
break;
M case 20:
this.SetTimerControl(n);
break;
case 24:
this.lfofreq = n;
this.lfo_count_diff_ =
(this.rateratio *
((16 + (15 & this.lfofreq)) << (12 - t.FM_RATIOBITS))) /
(1 << (15 - (this.lfofreq >> 4)));
break;
case 25:
if ((128 & n) == 0) {
this.amd = 127 & n;
M } else {
this.pmd = 127 & n;
}
break;
case 27:
this.lfowaveform = 3 & n;
break;
case 32:
case 33:
case 34:
case 35:
case 36:
case 37:
case 38:
case 39:
this.ch[r].SetFB((n >> 3) & 7);
this.ch[r].SetAlMgorithm(7 & n);
this.pan[r] = (n >> 6) & 3;
break;
case 40:
case 41:
case 42:
case 43:
case 44:
case 45:
case 46:
case 47:
this.kc[r] = n;
this.ch[r].SetKCKF(this.kc[r], this.kf[r]);
break;
case 48:
case 49:
case 50:
M case 51:
case 52:
case 53:
case 54:
case 55:
this.kf[r] = n >> 2;
this.ch[r].SetKCKF(this.kc[r], this.kf[r]);
break;
case 56:
case 57:
case 58:
case 59:
case 60:
case 61:
case 62:
case 63:
this.ch[r].SetMS((n <<M 4) | (n >> 4));
break;
case 15:
this.noisedelta = n;
this.noisecount = 0;
break;
default:
if (e >= 64) {
this.SetParameter(e, n);
}
}
}
};
n.prototype.SetParameter = function (t, e) {
var n = [0, 2, 1, 3][(t >> 3) & 3];
var r = this.ch[7 & t].op[n];
M switch ((t >> 5) & 7) {
case 2:
r.SetDT((e >> 4) & 7);
r.SetMULTI(15 & e);
break;
case 3:
r.SetTL(127 & e);
break;
case 4:
r.SetKS((e >> 6) & 3);
r.SetAR(2 * (31 & e));
break;
case 5:
r.SetDR(2 * (31 & e));
r.SetAMON((128 & e) != 0);
break;
M case 6:
r.SetSR(2 * (31 & e));
r.SetDT2((e >> 6) & 3);
break;
case 7:
r.SetSL(
[
0, 4, 8, 12, 16, 20, 24, 28, 32, 36, 40, 44, 48, 52, 56,
124,
][(e >> 4) & 15]
);
r.SetRR(4 * (15 & e) + 2);
}
};
n.prototype.BuildLFOTable = function () {
this.amtable = new MArray(4);
this.pmtable = new Array(4);
for (var t = 0; t < 4; t++) {
var e = 0;
this.amtable[t] = new Array(this.OPM_LFOENTS);
this.pmtable[t] = new Array(this.OPM_LFOENTS);
for (var n = 0; n < this.OPM_LFOENTS; n++) {
var r;
var c;
switch (t) {
case 0:
c = ((n + 256) & 511) / 2 - 128;
r = 255 - n / 2;
M break;
case 1:
r = n < 256 ? 255 : 0;
c = n < 256 ? 127 : -128;
break;
case 2:
c = (c = (n + 128) & 511) < 256 ? c - 128 : 383 - c;
r = n < 256 ? 255 - n : n - 256;
break;
case 3:
if (!(3 & n)) {
e = (((32768 * Math.random()) | 0) / 17) & 255;
M}
r = e;
c = e - 128;
}
this.amtable[t][n] = 0 | r;
this.pmtable[t][n] = (-c - 1) | 0;
}
}
};
n.prototype.LFO = function () {
var t;
if (this.lfowaveform === 3) {
if (-131072 & (this.lfo_count_ ^ this.lfo_count_prev_)) {
t = (((32768 * Math.random()) | 0) / 17) & 255;
this.chip.SetPML(((Mt - 128) * this.pmd) / 128 + 128);
this.chip.SetAML((t * this.amd) / 128);
}
} else {
t = (this.lfo_count_ >> 15) & 510;
this.chip.SetPML(
(this.pmtable[this.lfowaveform][t] * this.pmd) / 128 + 128
);
this.chip.SetAML(
(this.amtable[this.lfowaveform][t] * this.amd) / 128
);
}
this.lfo_count_prev_ = this.lfo_count_;
M this.lfo_step_++;
if ((7 & this.lfo_step_) == 0) {
this.lfo_count_ += this.lfo_count_diff_;
}
};
n.prototype.Noise = function () {
this.noisecount += 2 * this.rateratio;
if (this.noisecount >= 32 << t.FM_RATIOBITS) {
var e = 32 - (31 & this.noisedelta);
if (e === 1) {
e = 2;
}
this.noisecount = this.noisecount - (e << t.FM_RATIOBITS);
M if ((31 & this.noisedelta) == 31) {
this.noisecount -= t.FM_RATIOBITS;
}
this.noise = (this.noise >> 1) ^ (1 & this.noise ? 33800 : 0);
}
return this.noise;
};
n.prototype.MixSub = function (t, e) {
if (16384 & t) {
e[this.pan[0]] = this.ch[0].Calc();
}
if (4096 & t) {
e[this.pan[1]] += this.ch[1].Calc();
}
M if (1024 & t) {
e[this.pan[2]] += this.ch[2].Calc();
}
if (256 & t) {
e[this.pan[3]] += this.ch[3].Calc();
}
if (64 & t) {
e[this.pan[4]] += this.ch[4].Calc();
}
if (16 & t) {
e[this.pan[5]] += this.ch[5].Calc();
}
if (4 & t) {
e[this.pan[6]] += this.ch[6].Calc();
}
if (1 & t) {
M if (128 & this.noisedelta) {
e[this.pan[7]] += this.ch[7].CalcN(this.Noise());
} else {
e[this.pan[7]] += this.ch[7].Calc();
}
}
};
n.prototype.MixSubL = function (t, e) {
if (16384 & t) {
e[this.pan[0]] = this.ch[0].CalcL();
}
if (4096 & t) {
e[this.pan[1]] += this.ch[1].CalcL();
}
if (1024 & t) {
M e[this.pan[2]] += this.ch[2].CalcL();
}
if (256 & t) {
e[this.pan[3]] += this.ch[3].CalcL();
}
if (64 & t) {
e[this.pan[4]] += this.ch[4].CalcL();
}
if (16 & t) {
e[this.pan[5]] += this.ch[5].CalcL();
}
if (4 & t) {
e[this.pan[6]] += this.ch[6].CalcL();
}
if (1 & t) {
if (128 & this.noisedeltMa) {
e[this.pan[7]] += this.ch[7].CalcLN(this.Noise());
} else {
e[this.pan[7]] += this.ch[7].CalcL();
}
}
};
var r = new Array(4);
n.prototype.mixStereo = function (t, e, n) {
var c = 0;
for (var i = (this.attenuation, 0); i < 8; i++) {
c = (c << 2) | this.ch[i].Prepare();
}
if (2 & this.reg01) {
c &= 21845;
M }
var a = 0 | n;
for (i = 0; i < e; i++) {
r[1] = r[2] = r[3] = 0;
this.LFO();
if (43690 & c) {
this.MixSubL(c, r);
} else {
this.MixSub(c, r);
}
t[a++] = ((r[1] + r[3] + r[2] + r[3]) / 256) * 0.33;
}
};
n.prototype.Intr = function (t) {};
return n;
})();
t.OPM = e;
})()M;
var ct = new nt.OPM();
var it = ct.Init(3579545, 48e3);
console.log('YM Init: ' + it);
let at = new Array(256);
var st = V;
var ft = X;
var ut = new Array(131072);
var dt = false;
var lt = false;
var ht = false;
var At = false;
var pt = false;
var bt = false;
var gt = false;
var yt = false;
var wt = 0;
var mt = 0;
var Mt = 0;
var vt = 0;
var Lt = 0;
M var It = 0;
var Et = 0;
var St = 2;
var xt = -1;
var kt = {};
var Bt = null;
jt.prototype = {
getTopic: function () {
return this.topic;
},
onEvent: function (t) {},
};
var Ft = null;
var Gt = null;
var zt = false;
var Wt = 662;
var Ut = 0;
var Zt = 0;
var Qt = 0;
var Ht = 0;
var Yt = 0;
var Vt = 0;
var Jt = 0;
Rt(
M new jt('init', function () {
Ft = Ne;
Gt = Ye;
})
);
var te = new Array(2048);
var ee = [1, 1, 0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0];
var ne = [
0, 0, 1, 0, 1, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 0, 1, 1, 1, 0,
1, 0, 1, 0, 0, 0, 0, 1,
];
var re = [
0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 0,
1, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 1, 0, 1, 1, 1,
M 0, 1, 1, 0, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1,
0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 1, 1, 0, 1, 0, 1, 0, 0, 0,
0, 1, 1, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 1, 1, 0, 0, 1, 1,
0, 1, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 1, 0, 0,
0, 1, 1, 0, 0, 1, 1, 1, 1, 0, 0, 1, 0, 0, 0, 1, 1, 1, 0, 0, 1, 1, 0,
1, 0, 1, 1, 0, 1, 1, 0, 1, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1,
1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1M, 0, 0, 0, 1, 0, 0, 0, 0, 1,
0, 0, 0, 1, 0, 1, 0, 1, 1, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 0, 1, 0, 0,
0, 1, 1, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 1, 1, 0, 0, 1, 1,
0, 0, 1, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0,
1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 1,
1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 0, 1, 0, 1, 1, 1, 1, 0,
0, 1, 0M, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 1, 0,
1, 0, 1, 0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0,
0, 0, 1, 0, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 0,
0, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 1, 1, 0,
1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 1, 0, 0, 1, 0, 1, 1, 1, 1, 1, 1,
1, 0, 1, 0, 0, 1, 0, 0, 0, 1, 1, 0, 1, 1, 1, 0, 0, 0, 1, 0, 1, 0, 0,
1, 0, 1, 0, 1, 0, 1, 1, 1, 0, 0, 1, 0, 1, 1, 0, 0, 1,M 1, 1, 1, 1, 0,
0, 0, 1, 1, 0,
];
var ce = [
1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
];
var ie = [0, 0];
var ae = [0, 0];
var oe = [0, 0];
var se = [0, 0];
var fe = [0, 0];
var ue = [0, 0];
var de = [0, 0];
var le = [0, 0];
var he = [0, 0];
var Ae = 0;
var ge = X;
var ye = V;
var we = function (t, e) {
M var n = 0;
var r = 0;
switch (t) {
case 21:
se[0] = 15 & e;
n = 0;
break;
case 22:
se[1] = 15 & e;
n = 1;
break;
case 23:
fe[0] = 31 & e;
n = 0;
break;
case 24:
fe[1] = 31 & e;
n = 1;
break;
case 25:
ue[0] = (15 & e) << 2;
n = 0;
M break;
case 26:
ue[1] = (15 & e) << 2;
n = 1;
break;
default:
return;
}
if (se[n] == 0) {
r = 0;
ie[n] = ue[n];
} else {
r = (fe[n] + 1) & 255;
if (se[n] > 11) {
r = (3 * r) & 255;
}
}
if (r != ae[n]) {
ae[n] = r;
if (oe[n] == 0 || r == 0) {
oe[n] = r;
}
M }
};
var me = qt;
var Me = Xt;
var ve = function (t, e) {
switch (((Wt = t), (Ut = e), t)) {
case 663:
Zt = 1024;
zt = true;
break;
case 660:
Zt = 1;
zt = true;
break;
case 661:
Zt = 8;
zt = true;
break;
case 662:
Zt = 64;
zt = true;
}
if (zt) {
M Jt++;
Vt = Zt * e;
Yt = false;
}
};
var Le = Dt;
var Ie = Nt;
var Ce = _t;
var Ee = function (t) {
if (lt && t >= 1104 && t < 1120) {
var e = st(t - 1104 + 16384);
return e;
}
if (ht && t >= 1120 && t <= 1121) {
e = 1 & t ? ct.GetStatus() : 0;
if (xt != -1 && 1 & t) {
if (xt > 0) {
xt--;
} else if (xt == 0 && St > 0)M {
e = 2;
xt = Et;
if (--St === 0) {
xt = -1;
}
}
}
return e;
}
if (dt && t >= 16384 && t < 32768 && !gt) {
var n = t - 16384;
if (At) {
return m_ram[n];
}
if (pt && n < 8192) {
if (yt) {
return ut[((8191 & n) + 8192 * (15 & Mt)) | ((1 & wt) << 8)];
} else {
M return ut[((8191 & n) + 8192 * (15 & mt)) | ((1 & wt) << 8)];
}
}
if (bt && n >= 8192 && n < 16384) {
if (yt) {
return ut[
((8191 & n) + 8192 * ((Mt >> 4) & 15)) | ((2 & wt) << 7)
];
} else {
return ut[
((8191 & n) + 8192 * ((mt >> 4) & 15)) | ((2 & wt) << 7)
];
}
}
}
return 0;
};
var Se = Mfunction (t, e) {
if (lt && t >= 1104 && t < 1120) {
ft(t - 1104 + 16384, e);
} else if (ht && t >= 1120 && t <= 1121) {
if (1 & t) {
ot(It, e);
if (It === 18 && e === 252) {
xt = Et = 129;
}
} else {
It = e;
}
} else if (dt && t >= 16384 && t < 32768) {
var n = t - 16384;
if (At) {
m_ram[n] = e;
} else if (pt && n < 8M192) {
ut[(8191 & n) + 8192 * (15 & mt)] = e;
} else if (bt && n >= 8192 && n < 16384) {
ut[(8191 & n) + 8192 * ((mt >> 4) & 15)] = e;
}
} else if (t >= 1136 && t < 1152) {
if (t == 1136) {
lt = 16 & (wt = e);
pt = 32 & wt;
bt = 64 & wt;
ht = 128 & wt;
} else if (t == 1144) {
mt = e;
} else if (t == 1148) {
Mt = e;
} else ifM (t == 1137) {
vt = e;
} else if (t == 1138) {
At = 1 & (Lt = e);
gt = 2 & Lt;
}
dt = At || pt || bt;
}
};
var xe = false;
var De = null;
var Ne = new Array(65536);
var _e = new Array(65536);
var Te = new Array(65536);
var ke = false;
var Be = false;
var je = false;
var Re = false;
var Pe = false;
var Oe = false;
var Fe = falsMe;
var Ge = 0;
var ze = false;
var We = false;
Rt(
new jt('onCartridgeLoaded', function () {
ke = ar();
Be = or();
je = sr();
Fe = dr();
gr();
Re = fr();
Pe = lr();
Oe = hr();
Ge = Cr();
})
);
Rt(
new jt('onHighScoreCartLoaded', function (t) {
xe = t;
})
);
Rt(
new jt('highScoreCallbacMkChanged', function (t) {
De = t;
})
);
var rn = '0123456789abcdef'.split('');
if (an('hello') != '5d41402abc4b2a76b9719d911017c592') {
function on(t, e) {
var n = (65535 & t) + (65535 & e);
return (((t >> 16) + (e >> 16) + (n >> 16)) << 16) | (65535 & n);
}
}
var sn = null;
var fn = null;
var un = null;
var dn = null;
var ln = null;
var hn = 0;
var An = 1;
M var pn = 2;
var bn = 3;
var gn = 4;
var yn = 7;
var wn = '';
var mn = '';
var Mn = 0;
var vn = 0;
var Ln = false;
var In = false;
var Cn = [1, 1];
var En = 0;
var Sn = 0;
var xn = 0;
var Dn = 0;
var Nn = false;
var _n = false;
var Tn = 28;
var kn = 1;
var Bn = 0;
var jn = false;
var Rn = false;
var Pn = false;
var On = 0;
vaMr Fn = 0;
var Gn = false;
var zn = false;
var Wn = false;
var Un = 2;
var Zn = false;
var Qn = null;
var Hn = 0;
var Yn = false;
Rt(
new jt('init', function (t) {
ln = t.Region.REGION_NTSC;
sn = Ve;
fn = Je;
un = Ye;
})
);
Rt(
new jt('highScoreCallbackChanged', function (t) {
dn = t;
})
);
var nc = function () {
M this._w = 0;
this.wPlusPlus = function () {
var t = this._w;
this.setW(this._w + 1);
return t;
};
this.wMinusMinus = function () {
var t = this._w;
this.setW(this._w - 1);
return t;
};
this.wPlusEqual = function (t) {
this.setW(this._w + t);
};
this.wMinusEqual = function (t) {
this.setW(this._w - t);
};
this.setW = functionM (t) {
this._w = 65535 & t;
};
this.getW = function () {
return this._w;
};
this.getBL = function () {
return 255 & this._w;
};
this.getBLSigned = function () {
var t = this.getBL();
if ((128 & t) > 0) {
return t - 256;
} else {
return t;
}
};
this.setBL = function (t) {
this.setW((65280 & this._w) | (255 & t));
M };
this.blPlusEqual = function (t) {
this.setBL(this.getBL() + t);
};
this.getBH = function () {
return (65280 & this._w) >>> 8;
};
this.setBH = function (t) {
this.setW((255 & this._w) | ((t << 8) & 65280));
};
this.bhPlusEqual = function (t) {
this.setBH(this.getBH() + t);
};
this.copy = function (t) {
this._w = t._w;
};
};
var rc =M Qe;
var cc = Ye;
var ic = Ne;
var ac = 0;
var oc = 0;
var sc = 0;
var fc = 0;
var uc = 0;
var dc = new nc();
var lc = 0;
var hc = new nc();
var Ac = 0;
var pc = false;
var bc = 1;
var gc = 2;
var yc = 4;
var wc = 8;
var mc = 16;
var Mc = 32;
var vc = 64;
var Lc = 128;
var Ic = 65533;
var Cc = 65532;
var Ec = 65531;
var Sc = 6M5530;
var xc = 65535;
var Dc = 65534;
var Nc = [
7, 6, 0, 0, 2, 3, 5, 0, 3, 2, 2, 2, 0, 4, 6, 0, 2, 5, 0, 0, 0, 4, 6,
0, 2, 4, 0, 0, 0, 4, 7, 0, 6, 6, 0, 0, 3, 3, 5, 0, 4, 2, 2, 2, 4, 4,
6, 0, 2, 5, 0, 0, 0, 4, 6, 0, 2, 4, 0, 0, 0, 4, 7, 0, 6, 6, 0, 0, 0,
3, 5, 0, 3, 2, 2, 2, 3, 4, 6, 0, 2, 5, 0, 0, 0, 4, 6, 0, 2, 4, 0, 0,
0, 4, 7, 0, 6, 6, 0, 0, 0, 3, 5, 0, 4, 2, 2, 0, 5, 4, 6, 0, 2, 5, 0,
0, 0, 4, 6, 0, 2, 4, 0, 0, 0, 4, 7, 0, 2, M6, 0, 0, 3, 3, 3, 0, 2, 0,
2, 0, 4, 4, 4, 0, 2, 6, 0, 0, 4, 4, 4, 4, 2, 5, 2, 0, 0, 5, 0, 0, 2,
6, 2, 0, 3, 3, 3, 0, 2, 2, 2, 0, 4, 4, 4, 0, 2, 5, 0, 6, 4, 4, 4, 0,
2, 4, 2, 0, 4, 4, 4, 0, 2, 6, 0, 0, 3, 3, 5, 0, 2, 2, 2, 0, 4, 4, 6,
0, 2, 5, 0, 0, 0, 4, 6, 0, 2, 4, 0, 0, 0, 4, 7, 0, 2, 6, 0, 0, 3, 3,
5, 0, 2, 2, 2, 0, 4, 4, 6, 0, 2, 5, 0, 0, 0, 4, 6, 0, 2, 4, 0, 0, 0,
4, 7, 0,
];
var Bc = new nc();
var Rc = new nc();
var PcM = new nc();
var Li = 0;
var Si = Ne;
var xi = Qe;
var Di = new Ei(0, 17, 319, 258);
var Ni = new Ei(0, 26, 319, 248);
var _i = null;
var Ti = [new Array(160), new Array(160)];
var ki = 0;
var Bi = Ti[ki];
var ji = 0;
var Ri = false;
var Pi = new nc();
var Oi = new nc();
var Fi = new nc();
var Gi = 0;
var zi = 0;
var Wi = 0;
var Ui = 0;
var Zi = 0;
var Qi = M0;
var Hi = false;
var Yi = false;
var Vi = false;
var ea = new nc();
Rt(
new jt('onCartridgeLoaded', function (t) {
Hi = !t.IsXmEnabled() && !t.IsBanksets();
console.log('Maria RAM Direct: ' + Hi);
Vi = t.IsBanksets();
})
);
var ca = new Array(768);
var oa = b;
var sa = et;
var fa = te;
var ua = be;
var da = Dt;
var la = _t;
var ha = null;
vMar Aa = null;
var pa = 0;
var ba = 0;
var ga = 0;
var ya = false;
var wa = false;
var ma = new Array(8192);
var Ma = new Array(8192);
Rt(
new jt('init', function () {
ha = Yo;
})
);
Rt(
new jt('onCartridgeLoaded', function () {
ya = ar();
})
);
var La = 31440;
var Ia = null;
var Ca = null;
var Ea = new Array(16384);
var Sa = 0M;
var xa = 0;
Rt(new jt('init', Na));
var Ta = aa(
'data:;base64,AAAAAAAAEBAQIyMjNTU1R0dHWlpabGxsfn5+kZGRo6Ojtra2yMjI2tra7e3t////AQAAFAgAJhoAOSwASz8AXVEAcGMAgnYAlIgMp5ofua0xy79E3tJW8ORo//Z7//+NGQAALAAAPggAUBsAYy0AdUAAh1IAmmQFrHcYv4kq0Zs8465P9sBh/9J0/+WG//eYKAAAOwAATQAAXwsAch0AhDAAlkITqVQlu2c3zXlK4Itc8p5u/7CB/8OT/9Wl/+e4KwAAPQAAUAAAYgAJdRIbhyQumTdArElSvltl0G5344CK9ZOc/6Wu/7fB/8rT/9zlIQAFNAAXRgApWQA8aw5OfSBgkDJzokWFtFeXx2mq2Xy8647P/qHh/7Pz/8X//9j/DQAyIABFMgBXRABpVxF8aSOOezagjkizoFvFsMm3YxX/q15L86qT//Lb//8n//9v/AABSBQBkFwB3KQmJPBybTi6uYEDAc1PThWXlmHf3qor/vJz/z6//4cH/89P//+b/AABeAABwAAaCDRmVICunMj65RFDMV2LeaXXwe4f/jpn/oKz/sr7/xdD/1+P/6fX/AABTAAZlABh3ACqKCD2cGk+uLGHBP3TTUYbmY5j4dqv/iL3/mtD/reL/v/T/0v//AAMzABZGAChYADpqAE19C1+PHXGiMIS0QpbGVKjZZ7vrec39i+D/nvL/sP//w///AA8GACEYADMrAEY9AFhPCGpiGn10LY+GP6GZUbSrZMa+dtjQiOvim/31rf//v///ABMAACUAADgAAEoKAFwdEW8vJIFBNpNUSKZmW7h5bcuLgN2dku+wpP/Ct//Uyf/nABAAACIAADQAAUcAE1kAJmsBOH4USpAmXaM4b7VLgcddlNpvpuyCuP6Uy/+m3f+5AAUAABgACSoAHDwALk8AQGEAU3MAZYYGd5gYiqornL09rMs9PweJi0/R05v+G+P+ZAQAAEwgAJRoAOC0ASj8AXVIAb2QAgXYAlIkMppsfuK0xy8BE3dJW7+Ro//d7//+N'
);
var ka = aa(
'data:;base64,AAAAAAAAEBAQIyMjNTU1R0dHWlpabGxsfn5+kZGRo6Ojtra2yMjI2tra7e3t////AQAAFAgAJhoAOSwASz8AXVEAcGMAgnYAlIgMp5ofua0xy79E3tJW8ORo//Z7//+NGgAALQAAPwgAURoAZCwAdj8AiFEAm2QGrXYZv4gr0ps95K1Q9r9i/9J0/+SH//aZKQAAOwAATgAAYAoAchwAhS4El0EWqVMovGY7znhN4Ypf851y/6+E/8GW/9Sp/+a7KwAAPQAATwAAYgAPdBEihiM0mTZGq0hZvVtr0G194n+Q9ZKi/6S0/7bH/8nZ/9vsHwANMQAfQwAyVgBEaA5WeyBpjTJ7n0WNslegxGqy1nzE6Y7X+6Hp/7P7/8XM//9j/CAA6GgBNLQBfPwBxUROEZCWWdjeoiEq7m1zNrW/gwIHy0pP/5Kb/97j//8r//93/AABXAABpEAB8Ig2ONR+gRzGzWUTFbFbYfmnqkHv8o43/taD/x7L/2sT/7Nf//+n/AABdAABvAAuBBh6UGDCmKkO5PVXLT2fdYXrwdIz/hp7/mLH/q8P/vdX/z+j/4vr/AABKAAtdAB5vADCBAUKUFFWmJme4OHnLS4zdXZ7wcLD/gsP/lNX/p+j/ufr/y///AAgkABo2AC1IAD9bAFJtCGR/G3aSLYmkP5u2Uq3JZMDbdtLuieT/m/f/rv//wP//ABEAACQDADYWAEgoAFs6Cm1NHX9fL5JxQaSEVLeWZsmpedu7i+7Nnf/gsP/ywv//ABIAACUAADcAAEkAB1wHGW4ZLIErPpM+UaVQY7hidcp1iNyHmu+ZrP+sv/++0f/RAAsAAB4AADAADkIAIFUAMmcARXkBV4wUaZ4mfLA5jsNLodVds+hwxfqC2P+U6v+nAAAMABhAAGSIAKzQAPUcAUFkAYmsAdH4Ah5APmaMirLU0vsdG0NpZ4+xr9f59//+QEAAAIgAANBAARyMAWTUAa0cAfloAkGwAon4QtZEix6M12rZH7MhZ/tps/+1+//+R'
);
var Ba = aa(
'data:;base64,AAAAAAAAEBAQIyMjNTU1R0dHWlpabGxsfn5+kZGRo6Ojtra2yMjI2tra7e3t////AQAAFAgAJhoAOSwASz8AXVEAcGMAgnYAlIgMp5ofua0xy79E3tJW8ORo//Z7//+NGwAALQAAQAcAUhkAZCwAdz4AiVEAm2MHrnUawIgs05o+5axR979j/9F1/+OI//aaKgAAPAAATgAAYQkAcxsAhS0HmEAZqlIrvGU+z3dQ4Ylj85x1/66H/8Ca/9Os/+W+KgAAPAAATwADYQAVcxAohiM6mDVMqkdfvVpxz2yD4X6W9JGo/6O6/7bN/8jf/9rxHAAULgAnQQA5UwBLZMQ5eeCBwijOCnEWVr1enwWq61HzM5o7e+KHx/7P//8b//9j/AwBBFQBUKABmOgJ4TBWLXyedcTmvg0zCll7UqHDmuoP5zZX/36f/8rr//8z//9//AABaAABtCQB/HBCRLiOkQDW2U0fJZVrbd2ztin7/nJH/rqP/wbb/08j/5tr/+O3/AABaAABtABB/ACORETWkJEe2NlrISGzbW37tbZH/f6P/krb/pMj/ttr/ye3/2///AABBABBTACNlADV4AEeKD1qcIWyvNH7BRpHTWKPma7X4fcj/kNr/ou3/tP//x///AAwTAB4mADE4AENKAFVdB2hvGnqCLI2UP5+mUbG5Y8TLdtbdiOjwmvv/rf//v///ABMAACUAADcCAEoUAFwnD245IYFLM5NeRqZwWLiCasqVfd2nj++5of/MtP/exv/wABAAACMAADUAAEcAEFoAI2wGNX8YR5ErWqM9bLZPf8hikdp0o+2Gtv+ZyP+r2v++AAYAABgACCoAGz0ALU8AP2EAUMnQAZIYHdpkZiasrm70+rtBQwOJj0vR15f+H9/+aAgAAFAcAJxoAOSwASz4AXlEAcGMAg3UAlYgMp5ofuq0xzL9E3tFW8eRo//Z7//+NGwAALgAAQAcAUhkAZSsAdz4AiVAAnGMIrnUawYcs05o/5axR+L5k/9F2/+OI//Wb'
);
var ja = aa(
'data:;base64,AAAAAAAAEBAQIyMjNTU1R0dHWlpabGxsfn5+kZGRo6Ojtra2yMjI2tra7e3t////AAAABREAFyMAKTUAPEgATloAYGwAc38AhZEQmKMiqrY1vMhHz9tZ4e1s8/9+//+QDQAAIAAAMhIARCQAVzcAaUkAe1sAjm4AoIAPspMhxaU017dG6spY/Nxr/+59//+PIgAANAAARgEAWRMAayUAfTgAkEoAol0StG8kx4E22ZRJ66Zb/rht/8uA/92S/++lKwAAPQAAUAAAYgUAdRcChyoUmTwmrE45vmFL0HNMd44Vw9ZiC/6qV/72n/8+5/+HMKAAAOgAATQAOXwAhcg8zhCFFljRYqUZqu1h8zWuP4H2h8pCz/6LG/7TY/8fq/9n9GQAbKwAuPgBAUABSYw5ldSF3hzOJmkWcrFiuvmrA0XzT44/l9aH3/7T//8b//9j/AQBDEwBWJgBoOAN7SxWNXSifbzqygkzElF/WpnHpuYP7y5b/3aj/8Lv//83//9//AABaAABtCQB/HBCRLiOkQTW2U0fIZVrbeGztin7/nJH/r6P/wbX/08j/5tr/+Oz/AABbAABuAA+AASGSEzOlJka3OFjJSmvcXX3ub4//gaL/lLT/psb/udn/y+v/3f3/AABGAA5YACBrADJ9AEWPEVeiJGm0NnzGSI7ZW6DrbbP+gMX/ktj/pOr/t/z/yf//AAkfABwxAC5DAEBWAFNoCGV7GniNLYqfP5yyUa/EZMHWdtPpiOb7m/j/rf//v///ABIAACQAADYSAEklAFs3C21JHYBcMJJuQqSAVLeTZ8mledyM3i+7Knv/csP/vw///ABIAACUAADcAAEkACFwFGm4YLIAqP5M8UaVPY7hhdspziNyGm++Yrf+qv/+90v/PAAsAAB4AADAADUIAIFUAMmcARHkCV4wUaZ4mfLE5jsNLoNVes+hwxfqC1/+V6v+nAAAABRAAFyMAKjUAPEcATloAYWwAc38AhZEQmKMiqrY0vchHz9pZ4e1s9P9+//+Q'
);
var Ra = aa(
'data:;base64,AAAAAAAAEBAQIyMjNTU1R0dHWlpabGxsfn5+kZGRo6Ojtra2yMjI2tra7e3t////AAAABREAFyMAKTUAPEgATloAYGwAc38AhZEQmKMiqrY1vMhHz9tZ4e1s8/9+//+QDgAAIAAAMxEARSQAWDYAakgAfFsAj20AoYAPs5IixqQ02LdG6slZ/dtr/+59//+QIwAANQAARwAAWhIAbCQAfjcAkUkCo1sUtW4myIA52pJL7aVd/7dw/8qC/9yU/M+6nKwAAPgAAUAAAYgQAdRYHhygZmjsrrE0+vmBQ0XJi44R19ZeH/6ma/7us/86+/+DRJwAAOQADSwAWXgAocA46giFNlTNfp0ZxuViEzGqW3n2o8Y+7/6HN/7Tg/8by/9j/FQAjKAA2OgBITABbXw9tcSF/gzSSlkakqFi2u2vJzX3b35Dt8qL//7T//8f//9n/AABKDQBcIABvMgWBRRiUVyqmaTy4fE/LjmHdoHPvs4b/xZj/16v/6r3//M///+L/AABdAABvAgKBFRSUJyemOTm4TEvLXl7dcHDwg4L/lZX/qKf/urn/zMz/397/8fH/AABXAAFqABR8ACaODTmhH0uzMV3FRHDYVoLqaJT8e6f/jbn/n8v/st7/xPD/1v//AAA7ABNNACVgADdyAEqEDVyXH2+pMoG7RJPOVqbgabjye8r/jd3/oO//sv//xf//AA0OACAgADIyAERFAFdXCGlpGnt8LI6OP6CgUbKzY8XFdtfYiOnqmvz8rf//v///ABMAAMCUAADgAAEoQAFwjEG81IoFHNJNaR6ZsWbh+a8qRft2jkO+1o//Itf/ax//tABAAACMAADUAAEcAEVoAJGwENn4XSJEpW6M7bbVOf8hgktpzpOyFt/+Xyf+q2/+8AAYAABgACCoAGz0ALU8AP2IAUnQAZIYHdpkZiassm70+rdBQwOJj0vR15P+H9/+aAQAAEwgAJRoAOC0ASj8AXVIAb2QAgXYAlIkMppsfuK0xy8BE3dJW7+Ro//d7//+N'
);
var Pa = aa(
'data:;base64,AAAAAAAAEBAQIyMjNTU1R0dHWlpabGxsfn5+kZGRo6Ojtra2yMjI2tra7e3t////AAAABREAFyMAKTUAPEgATloAYGwAc38AhZEQmKMiqrY1vMhHz9tZ4e1s8/9+//+QDwAAIQAANBEARiMAWDUAa0gAfVoAkGwAon8QtJEix6Q02bZH68hZ/tts/+1+//+QJAAANgAASAAAWxEAbSMMAgDUAkkgEpFoXt20pyX8725FO7qRg/7Zy/8iF/9uX/+2pLAAAPgAAUAAAYwMAdRUMhycfmjoxrExDvl5W0XFo44N69pWN/6if/7qx/8zE/9/WJQAANwALSQAeXAAwbg5CgSBVkzNnpUV5uFeMymqe3Hyw74/D/6HV/7Pn/8b6/9j/EQAsIwA+NgBRSABjWhB1bSKIfzWakUespFq/tmzRyH7j25H27aP//7X//8j//9r/AABQBwBjGQB1LAiHPhuaUC2sYz++dVLRh2Tjmnb1rIn/vpv/0a3/48D/9tL//+X/AABeAABwAAaCDRmVICunMj65RFDMV2LeaXXwe4f/jpn/oKz/sr7/xdD/1+P/6fX/AABRAAdjABl2ACyIBj6aGFCtK2O/PXXRT4fkYpr2dKz/h7//mdH/q+P/vvb/0P//AAUtABg/ACpSADxkAE92CmGJHHObLoauQZjAU6vSZb3leM/3iuL/nfT/r///wf//ABAAACMNADUfAEcxAFpECWxWG35MoLpF7QKONUrWfZciyd9rEiu3WnP/prv/7wf//ABMAACUAADcAAEoABFwNF28gKYEyO5NFTqZXYLhpcsp8hd2Ol++gqv+zvP/Fzv/XAAwAAB8AADEAC0MAHVYAL2gAQnoFVI0XZ58qebI8i8ROntZhsOlzwvuG1f+Y5/+qAAAABBEAFyMAKTUAO0gATloAYG0Acn8AhZEQl6QiqrY1vMhHzttZ4e1s8/9+//+RDwAAIQAAMxEARiMAWDYAa0gAfVoAj20Aon8QtJEixqQ02bZH68lZ/dtr/+1+//+Q'
);
var Oa = aa(
'data:;base64,AAAAERERIiIiMzMzREREVVVVZmZmd3d3iIiImZmZqqqqu7u7zMzM3d3d7u7u////FgoAJxsAOCwAST0AWk4Aa18AfHAAjYEFnpIWr6MnwLQ40cVJ4tZa8+dr//h8//+NLgAAPwkAUBoAYSsAcjwAg00AlF4ApW8QtoAhx5Ey2MKJD6bNU+sRl/9V2/+aH//eYPQAATgAAXwoAcBsAgSwAkj0Oo04ftF8wxXBB1oFS55Jj+KN0/7SF/8WW/9an/+e4PwAAUAAAYQAJchAagyErlDI8pUNNtlRex2Vv2HaA6YeR+pii/6mz/7rE/8vV/9zmNgAZRwAqWAA7aQxMeh1diy5unD9/rVCQvmGhz3Ky4IPD8ZTU/6Xl/7b2/8f//9j/IQBHMgBYQwBpVA96ZSCLdjGch0KtmFO+qWTPunXgy4bx3Jf/7aj//rn//8r//9v/BgBnFwB4KAmJORqaSiurWzy8bE3NfV7ejm/vn4D/sJH/waL/0rP/48T/9NX//+b/AAByAAeDDBiUHSmlLjq2P0vHUFzYYW3pcn76g4//lKD/pbH/tsL/x9P/2OT/6fX/AAhnABl4ACqJBTuaFkyrJ128OG7NSX/eWpDva6H/fLL/jcP/ntT/r+X/wPb/0f//ABhHAClYADppAEt6B1yLGG2cKX6tOo++S6DPXLHgbcLxftP/jM+T/oPX/sf//wv//ACMZADQqAEU7AFZMBWddFnhuJ4l/OJqQSauhWryya83DfN7Uje/lnv/2r///wP//ACcAADgAAEkIAFoZDmsqH3w7MI1MQZ5dUq9uY8B/dNGQheKhlvOyp//DuP/Uyf/lACQAADUAAUYAElcAI2gANHkORYofVpswZ6xBeL1Sic5jmt90q/CFvP+Wzf+n3v+4ABkACyoAHDsALUwAPl0AT24AYH8AcZAQgqEhk7IypMNDtdRUxuVl1/Z26P+H+f+YFgkAJxoAOCsASTwAWk0Aa14AfG8AjYAFnpEWr6InwLM40cRJ4tVa8+Zr//d8//+N'
);
var Fa = aa(
'data:;base64,AAAAERERIiIiMzMzREREVVVVZmZmd3d3iIiImZmZqqqqu7u7zMzM3d3d7u7u////FgoAJxsAOCwAST0AWk4Aa18AfHAAjYEFnpIWr6MnwLQ40cVJ4tZa8+dr//h8//+MNLwAAQAgAURkAYioAczsAhEwAlV0Apm4Rt38iyJAz2aFE6rJV+8Nm/9R3/+WI//aZPQAATgAAXwkAcBoAgSsAkjwRo00itF4zxW9E1oBV55Fm+KJ3/7OI/8SZ/9Wq/+a7PwAAUAAAYQAPcg8ggyAxlDFCpUJTtlNkx2R12HWG6YaX+peo/6i5/7nK/8rb/9vsMwAhRAAyVQBDZgxUdx1liC52mT+HqlCYu2GpzHK63YPL7pTc/6Xt/7b+/8f//9j/HABPLQBgPgBxTxGCYCKTcTOkgkS1k1XGpGbXtXfoxoj515n/6Kr/+bv//8z//93/AABrEQB8IgyNMx2eRC6vVT/AZlDRd2HiiHLzmYP/qpT/u6X/zLb/3cf/7tj//+n/AABxAAyCBR2TFi6kJz+1OFDGSWHXWnLoa4P5fJT/jaX/nrb/r8f/wNj/0en/4vr/AA1fAB5wAC+BAECSEFGjIWK0MnPFQ4TWVJXnZab4drf/h8j/mNn/qer/uvv/y///AB04AC5MJAD9aAFBrBWF8FnKNJ4OeOJSvSaXAWrbRa8fifNjzjen/nvr/r///wP//ACYFADcWAEgnAFk4B2pJGHtaKYxrOp18S66NXL+ebdCvfuHAj/LRoP/isf/zwv//ACcAADgAAEkABVoFFmsWJ3wnOI04SZ5JWq9aa8BrfNF8jeKNnvOer/+vwP/A0f/RACAAADEADUIAHlMAL2QAQHUAUYYOYpcfc6gwhLlBlcpSpttjt+x0yP2F2f+W6v+nCBIAGSMAKjQAO0UATFYAXWcAbngAf4kIkJoZoasqsrw7w81M1N5d5e9u9v9///+QJAAANREARiIAVzMAaEQAeVUAimYAm3cJrIgavZkrzqo837tN8Mxe/91v/+6A//+R'
);
var Ga = aa(
'data:;base64,AAAAERERIiIiMzMzREREVVVVZmZmd3d3iIiImZmZqqqqu7u7zMzM3d3d7u7u////FgoAJxsAOCwAST0AWk4AaM18AfHAAjYEFnpIWr6MnwLQ40cVJ4tZa8+dr//h8//+NLwAAQAgAURkAYioAczsAhEwAlV0Bpm4St38jyJA02aFF6rJW+8Nn/9R4/+WJ//aaPgAATwAAYAgAcRkAgioDkzsUpEwltV02xm5H139Y6JBp+aF6/7KL/8Oc/9St/+W+PgAATwADYAAUcQ4lgh82kzBHpEFYtVJpxmN613SL6IWc+Zat/6e+/7jP/8ng/9rxMAApQQA6UgBLYwxcdB1thS5+lj+Pp1CguGGxyXLC2oPT65Tk/KX1/7b//8f//9j/FwBWKABnOQJ4ShOJWySabDWrfUa8jlfNn2jesHnvwYr/0pv/46z/9L3//87//9//AABvCgCAGxCRLCGiPTKzTkPEX1TVcGXmgXb3kof/o5j/tKn/xbr/1sv/59z/+O3/AABvABGAACKRDzOiIESzMVXEQmbVU3fmZIj3dZn/hqr/l7v/qMz/ud3/yu7/2///ABJVACNmADR3AEWIDFaZHWeqLni7PM4nMUJrdYavucrz/g83/lN7/pe//tv//x///ACAoADE5AEJKAFNbBGRsFXV9JoaON5efSKiwWbnBasrSe9vjjOz0nf3/rv//v///ACcAADgCAEkTAFokC2s1HHxGLY1XPp5oT695YMCKcdGbguKsk/O9pP/Otf/fxv/wACUAADYAAEcADlgAH2kDMHoUQYslUpw2Y61HdL5Yhc9pluB6p/GLuP+cyf+t2v++ABoACSsAGjwAK00APF4ATW8AXoABb5ESgKIjkbM0osRFs9VWxOZn1fd45v+J9/+aFgkAJxoAOCsASTwAWk0Aa14AfG8AjYAFnpEWr6InwLM40cRJ4tVa8+Zr//d8//+NMAAAQQcAUhgAYykAdDoAhUsAllwCp20TuH4kyY812qBG67FX/MJo/9N5/+SK//Wb'
);
var za = aa(
'data:;base64,AAAAERERIiIiMzMzREREVVVVZmZmd3d3iIiImZmZqqqMqu7u7zMzM3d3d7u7u////BxMAGCQAKTUAOkYAS1cAXGgAbXkAfooIj5sZoKwqsb07ws5M099d5PBu9f9///+QIgIAMxMARCQAVTUAZkYAd1cAiGgAmXkHqooYu5spzKw63b1L7s5c/99t//B+//+PNgAARwIAWBMAaSQAejUAi0YAnFcLrWgcvnktz4o+4JtP8axg/71x/86C/9+T//CkPwAAUAAAYQQAchUAgyYQlDchpUgytllDx2pU2Htl6Yx2+p2H/66Y/7+p/9C6/+HLPQAATgAOXwAfcA0wgR5Bki9So0BjtFF0xWKF1nOW54Sn+JW4/6bJ/7fa/8jr/9n8LgAvPwBAUABRYQxich1zgy6ElD+VpVCmtmG3x3LI2IPZ6ZTq+qX7/7b//8f//9j/FgBXJwBoOAJ5SROKWiSbazWsfEa9jVfOnmjfr3nwwIr/0Zv/4qz/873//87//9//AABuCwB/HA+QLSChPjGyT0LDYFPUcWTlgnX2k4b/pJf/taj/xrnM/18r/6Nv/+ez/AABwAA+BASCSEjGjI0K0NFPFRWTWVnXnZ4b4eJf/iaj/mrn/q8r/vNv/zez/3v3/AA9bACBsADF9AEKODlOfH2SwMHXBQYbSUpfjY6j0dLn/hcr/ltv/p+z/uP3/yf//AB00AC5FAD9WAFBnBWF4FnKJJ4OaOJSrSaW8WrbNa8fefNjvjen/nvr/r///wP//ACYDADcUAEglAFk2B2pHGHtYKYxpOp16S66LXL+cbdCtfuG+j/LPoP/gsf/xwv//ACcAADgAAEkABVoFFmsWJ3wnOI04SZ5JWq9aa8BrfNF8jeKNnvOer/+vwP/A0f/RACAAADEADEIAHVMALmQAP3UAUIYPYZcgcqgxg7lClMpTpdtktux1x/2G2P+X6f+oBhMAFyQAKDUAOUYASlcAW2gAbHkAfYoJjpsan6wrsL08wc5N0t9e4/Bv9P+A//+R'
);
var Wa = aa(
'data:;base64,AMAAAERERIiIiMzMzREREVVVVZmZmd3d3iIiImZmZqqqqu7u7zMzM3d3d7u7u////BxMAGCQAKTUAOkYAS1cAXGgAbXkAfooIj5sZoKwqsb07ws5M099d5PBu9f9///+QIwEANBIARSMAVjQAZ0UAeFYAiWcAmngIq4kZvJoqzas73rxM781d/95u/+9///+QNwAASAAAWREAaiIAezMAjEQAnVUOrmYfv3cw0IhB4ZlS8qpj/7t0/8yF/92W/+6nQAAAUQAAYgMAcxQFhCUWlTYnpkc4t1hJyGla2Xpr6ot8+5yN/62e/76v/8/A/+DROwAGTAAXXQAobgw5fx1KkC5boT9sslB9w2GO1HKf5YOw9pTB/6XS/7bj/8f0/9j/KQA4OgBJSwBaXA1rbR58fi+Nj0CeoFGvsWLAwnPR04Ti5JXz9ab//7f//8j//9n/DwBfIABwMQWBQhaSUyejZDi0dUnFhlrWl2vnqHz4uY3/yp7/26//7MD//dH//+L/AABxAgOCEMxSTJCWkNTa1RkfGV1jXaGnoeXr5iov/m5z/rK3/vb7/zs//3+D/8PH/AARrABV8ACaNCjeeG0ivLFnAPWrRTnviX4zzcJ3/ga7/kr//o9D/tOH/xfL/1v//ABVOACZfADdwAEiBCVmSGmqjK3u0PIzFTZ3WXq7nb7/4gND/keH/ovL/s///xP//ACIhADMyAERDAFVUBGZlFXd2JoiHN5mYSKqpWbu6aszLe93cjO7tnf/+rv//v///ACcAADgAAEkOAFofDWswHnxBL41SQJ5jUa90YsCFc9GWhOKnlfO4pv/Jt//ayP/rACQAADUAAEYAEFcAIWgAMnkRQ4oiVJszZaxEdr1Vh85mmN93qfCIuv+Zy/+q3P+7ABoACisAGzwALE0APV4ATm8AX4AAcJERgaIikrMzo8REtNVVxeZm1vd35/+I+P+ZFgkAJxoAOCsASTwAWk0Aa14AfG8AjYAFnpEWr6InwLM40cRJ4tVa8+Zr//d8//+N'
);
M var Ua = aa(
'data:;base64,AAAAERERIiIiMzMzREREVVVVZmZmd3d3iIiImZmZqqqqu7u7zMzM3d3d7u7u////BxMAGCQAKTUAOkYAS1cAXGgAbXkAfooIj5sZoKwqsb07ws5M099d5PBu9f9///+QJAAANREARiIAVzMAaEQAeVUAimYAm3cIrIgZvZkqzqo737tM8Mxd/91u/+5///+QOAAASQAAWhAAayEAfDIAjUMAnlQRr2UiwHYz0YdE4phV86lm/7p3/8uI/9yZ/+2qQAAAUQAAYgIAcxMLhCQclTUtpkY+t1dPyGhg2Xlx6oqC+5uT/6yk/721/87G/9/XOQAOSgAfWwAwbAxBfR1Sji5jnz90sFCFwWGW0nKn44O49JTJ/6Xa/7br/8f8/9j/JQBBNgBSRwBjWA50aR+FejCWi0GnnFK4rWPJvnTaz4Xr4Jb88af//7j//8n//9r/CABlGQB2KgiHOxmYTCqpXTu6bkzLf13MckG7toX/+spD/w6H/1LL/5cP/9tT//+X/AAByAAeDDBiUHSmlLjq2P0vHUFzYYW3pcn76g4//lKD/pbH/tsL/x9P/2OT/6fX/AAllABp2ACuHBDyYFU2pJl66N2/LSIDcWZHtaqL+e7P/jMT/ndX/rub/v/f/0P//ABpAACtRADxiAE1zBl6EF2+VKICmOZG3SqLIW7PZbMTqfdX7jub/n/f/sP//wf//ACUNADYeAEcvAFhABmlRF3piKItzOZyESq2VW76mbM+3feDIjvHZn//qsP/7wf//ACcAADgAAEkAA1oKFGsbJXwsNo09R55OWK9facBwetGBi+KSnPOjrf+0vv/Fz//WACAAADEAC0IAHFMALWQAPnUAT4YQYJchcagygrlDk8pUpNtltex2xv2H1/+Y6P+pBxIAGCMAKTQAOkUAS1YAXGcAbXgAfokIj5oZoKsqsbw7ws1M095d5O9u9f9///+QJAAANREARiIAVzMAaEQAeVUAimYAm3cJrIgavZkMrzqo837tN8Mxe/91v/+6A//+R'
);
var Za = 0;
var Qa = 1;
var Ha = 2;
var Ya = Ha;
var Va = new Ei(0, 16, 319, 258);
var Ja = new Ei(0, 27, 319, 250);
var Xa = new Ei(0, 16, 319, 308);
var qa = new Ei(0, 26, 319, 297);
var Ka = [
0, 0, 0, 37, 37, 37, 52, 52, 52, 79, 79, 79, 91, 91, 91, 105, 105,
105, 123, 123, 123, 138, 138, 138, 167, 167, 167, 185, 185, 185, 197,
197, 197, 208, 208, 208, 215, 215, 215, 225, 22M5, 225, 244, 244, 244,
255, 255, 255, 76, 50, 0, 98, 58, 0, 123, 74, 0, 154, 96, 0, 181, 116,
0, 204, 133, 0, 231, 158, 8, 247, 175, 16, 255, 195, 24, 255, 208, 32,
255, 216, 40, 255, 223, 48, 255, 230, 59, 255, 244, 64, 255, 250, 75,
255, 255, 80, 153, 37, 0, 170, 37, 0, 180, 37, 0, 211, 48, 0, 221, 72,
2, 226, 80, 9, 244, 103, 0, 244, 117, 16, 255, 158, 16, 255, 172, 32,
255, 186, 58, 255, 191, 80, 255, 198, 109, 255, 213, 128, 255, 228,
144, 2M55, 230, 153, 152, 12, 12, 153, 12, 12, 194, 19, 0, 211, 19, 0,
226, 53, 0, 227, 64, 0, 228, 64, 32, 229, 82, 48, 253, 120, 84, 255,
138, 106, 255, 152, 124, 255, 164, 139, 255, 179, 158, 255, 194, 178,
255, 208, 186, 255, 215, 192, 153, 0, 0, 169, 0, 0, 194, 4, 0, 211, 4,
0, 218, 4, 0, 219, 8, 0, 228, 32, 32, 246, 64, 64, 251, 112, 112, 251,
126, 126, 251, 143, 143, 255, 159, 159, 255, 171, 171, 255, 185, 185,
255, 201, 201, 255, 207, 207, 126, 0, 80, 128M, 0, 80, 128, 0, 95, 149,
11, 116, 170, 34, 136, 187, 47, 154, 206, 63, 173, 215, 90, 182, 228,
103, 195, 239, 114, 206, 251, 126, 218, 255, 141, 225, 255, 157, 229,
255, 165, 231, 255, 175, 234, 255, 184, 236, 72, 0, 108, 92, 4, 136,
101, 13, 144, 123, 35, 167, 147, 59, 191, 157, 69, 201, 167, 79, 211,
178, 90, 222, 189, 101, 233, 197, 109, 241, 206, 118, 250, 213, 131,
255, 218, 144, 255, 222, 156, 255, 226, 169, 255, 230, 182, 255, 27,
0, 112,M 34, 27, 141, 55, 48, 162, 72, 65, 179, 89, 82, 196, 99, 92,
206, 111, 104, 218, 125, 118, 232, 135, 128, 248, 147, 140, 255, 157,
151, 255, 168, 163, 255, 179, 175, 255, 188, 184, 255, 196, 193, 255,
218, 209, 255, 0, 13, 127, 0, 18, 167, 0, 24, 192, 10, 43, 209, 27,
74, 227, 47, 88, 240, 55, 104, 255, 73, 121, 255, 91, 133, 255, 109,
150, 255, 127, 163, 255, 140, 173, 255, 150, 180, 255, 168, 192, 255,
183, 203, 255, 198, 214, 255, 0, 41, 90, 0, 56, 118,M 0, 72, 146, 0,
92, 172, 0, 113, 198, 0, 134, 208, 10, 155, 223, 26, 168, 236, 43,
182, 255, 63, 194, 255, 69, 203, 255, 89, 211, 255, 127, 218, 255,
143, 222, 255, 160, 226, 255, 176, 235, 255, 0, 56, 57, 0, 60, 72, 0,
61, 91, 2, 102, 127, 3, 115, 131, 0, 156, 170, 0, 161, 187, 1, 164,
204, 3, 187, 255, 5, 218, 226, 24, 229, 255, 52, 234, 255, 73, 239,
255, 102, 242, 255, 132, 244, 255, 158, 249, 255, 0, 74, 0, 0, 93, 0,
0, 112, 0, 0, 139, 0, 0,M 169, 0, 0, 187, 5, 0, 189, 0, 2, 208, 5, 26,
213, 64, 90, 241, 119, 130, 239, 167, 132, 237, 209, 137, 255, 237,
125, 255, 255, 147, 255, 255, 155, 255, 255, 34, 74, 3, 39, 83, 4, 48,
100, 5, 60, 119, 12, 69, 140, 17, 90, 165, 19, 27, 210, 9, 31, 221, 0,
61, 205, 45, 61, 205, 48, 88, 204, 64, 96, 211, 80, 162, 236, 85, 179,
242, 74, 187, 246, 93, 196, 248, 112, 46, 63, 12, 54, 74, 15, 64, 86,
21, 70, 95, 23, 87, 119, 26, 101, 133, 28, 116, 147, 29, 143, 1M65, 37,
173, 183, 44, 188, 199, 48, 201, 213, 51, 212, 224, 59, 224, 236, 66,
234, 246, 69, 240, 253, 71, 244, 255, 111, 85, 36, 0, 90, 44, 0, 108,
59, 0, 121, 75, 0, 185, 117, 0, 187, 133, 0, 193, 161, 32, 208, 176,
47, 222, 190, 63, 230, 198, 69, 237, 205, 87, 245, 219, 98, 251, 229,
105, 252, 238, 111, 253, 243, 119, 253, 243, 127, 92, 39, 0, 92, 47,
0, 113, 59, 0, 123, 72, 0, 185, 104, 32, 187, 114, 32, 197, 134, 41,
215, 150, 51, 230, 164, 6M4, 244, 177, 75, 253, 193, 88, 255, 204, 85,
255, 212, 97, 255, 221, 105, 255, 230, 121, 255, 234, 152,
];
var $a = [
0, 0, 0, 28, 28, 28, 57, 57, 57, 89, 89, 89, 121, 121, 121, 146, 146,
146, 171, 171, 171, 188, 188, 188, 205, 205, 205, 217, 217, 217, 230,
230, 230, 236, 236, 236, 242, 242, 242, 248, 248, 248, 255, 255, 255,
255, 255, 255, 38, 48, 1, 36, 56, 3, 35, 64, 5, 81, 84, 27, 128, 105,
49, 151, 129, 53, 175, 153, 58, 194, 167, 62, M213, 181, 67, 219, 192,
61, 225, 203, 56, 226, 216, 54, 227, 229, 52, 239, 242, 88, 251, 255,
125, 251, 255, 125, 57, 23, 1, 94, 35, 4, 131, 48, 8, 165, 71, 22,
200, 95, 36, 227, 120, 32, 255, 145, 29, 255, 171, 29, 255, 197, 29,
255, 206, 52, 255, 216, 76, 255, 230, 81, 255, 244, 86, 255, 249, 119,
255, 255, 152, 255, 255, 152, 69, 25, 4, 114, 30, 17, 159, 36, 30,
179, 58, 32, 200, 81, 34, 227, 105, 32, 255, 129, 30, 255, 140, 37,
255, 152, 44, M255, 174, 56, 255, 197, 69, 255, 197, 89, 255, 198, 109,
255, 213, 135, 255, 228, 161, 255, 228, 161, 74, 23, 4, 126, 26, 13,
178, 29, 23, 200, 33, 25, 223, 37, 28, 236, 59, 56, 250, 82, 85, 252,
97, 97, 255, 112, 110, 255, 127, 126, 255, 143, 143, 255, 157, 158,
255, 171, 173, 255, 185, 189, 255, 199, 206, 255, 199, 206, 5, 5, 104,
59, 19, 109, 113, 34, 114, 139, 42, 140, 165, 50, 166, 185, 56, 186,
205, 62, 207, 219, 71, 221, 234, 81, 235, 244, 95, 245, M254, 109, 255,
254, 122, 253, 255, 135, 251, 255, 149, 253, 255, 164, 255, 255, 164,
255, 40, 4, 121, 64, 9, 132, 89, 15, 144, 112, 36, 157, 136, 57, 170,
164, 65, 195, 192, 74, 220, 208, 84, 237, 224, 94, 255, 233, 109, 255,
242, 124, 255, 248, 138, 255, 255, 152, 255, 254, 161, 255, 254, 171,
255, 254, 171, 255, 53, 8, 138, 66, 10, 173, 80, 12, 208, 100, 40,
208, 121, 69, 208, 141, 75, 212, 162, 81, 217, 176, 88, 236, 190, 96,
255, 197, 107, 25M5, 204, 119, 255, 209, 131, 255, 215, 144, 255, 219,
157, 255, 223, 170, 255, 223, 170, 255, 5, 30, 129, 6, 38, 165, 8, 47,
202, 38, 61, 212, 68, 76, 222, 79, 90, 238, 90, 104, 255, 101, 117,
255, 113, 131, 255, 128, 145, 255, 144, 160, 255, 151, 169, 255, 159,
178, 255, 175, 190, 255, 192, 203, 255, 192, 203, 255, 5, 30, 129, 6,
38, 165, 8, 47, 202, 38, 61, 212, 68, 76, 222, 79, 90, 238, 90, 104,
255, 101, 117, 255, 113, 131, 255, 128, 145, 255, 144, 160,M 255, 151,
169, 255, 159, 178, 255, 175, 190, 255, 192, 203, 255, 192, 203, 255,
12, 4, 139, 34, 24, 160, 56, 45, 181, 72, 62, 199, 88, 79, 218, 97,
89, 236, 107, 100, 255, 122, 116, 255, 138, 132, 255, 145, 142, 255,
153, 152, 255, 165, 163, 255, 177, 174, 255, 184, 184, 255, 192, 194,
255, 192, 194, 255, 29, 41, 90, 29, 56, 118, 29, 72, 146, 28, 92, 172,
28, 113, 198, 50, 134, 207, 72, 155, 217, 78, 168, 236, 85, 182, 255,
112, 199, 255, 140, 2M16, 255, 147, 219, 255, 155, 223, 255, 175, 228,
255, 195, 233, 255, 195, 233, 255, 47, 67, 2, 57, 82, 2, 68, 97, 3,
65, 122, 18, 62, 148, 33, 74, 159, 46, 87, 171, 59, 92, 189, 85, 97,
208, 112, 105, 226, 122, 114, 245, 132, 124, 250, 141, 135, 255, 151,
154, 255, 166, 173, 255, 182, 173, 255, 182, 10, 65, 8, 13, 84, 10,
16, 104, 13, 19, 125, 15, 22, 146, 18, 25, 165, 20, 28, 185, 23, 30,
201, 25, 33, 217, 27, 71, 228, 45, 110, 240, 64, 120, 247, 77, 131,M
255, 91, 154, 255, 122, 178, 255, 154, 178, 255, 154, 4, 65, 11, 5,
83, 14, 6, 102, 17, 7, 119, 20, 8, 136, 23, 9, 155, 26, 11, 175, 29,
72, 196, 31, 134, 217, 34, 143, 233, 36, 153, 249, 39, 168, 252, 65,
183, 255, 91, 201, 255, 110, 220, 255, 129, 220, 255, 129, 2, 53, 15,
7, 63, 21, 12, 74, 28, 45, 95, 30, 79, 116, 32, 89, 131, 36, 100, 146,
40, 130, 161, 46, 161, 176, 52, 169, 193, 58, 178, 210, 65, 196, 217,
69, 214, 225, 73, 228, 240, 78, M242, 255, 83, 242, 255, 83,
];
var to = { 0: Ka, 1: Ta, 2: ka, 3: Ba, 4: Oa, 5: Fa, 6: Ga };
var eo = { 0: $a, 1: ja, 2: Ra, 3: Pa, 4: za, 5: Wa, 6: Ua };
var no = 3;
new Array(131072);
var fo = function (t) {
for (var e = 0; e < t; e++) {
if (oe[0] > 1) {
oe[0]--;
} else if (oe[0] == 1) {
oe[0] = ae[0];
pe(0);
}
if (oe[1] > 1) {
oe[1]--;
} elsMe if (oe[1] == 1) {
oe[1] = ae[1];
pe(1);
}
te[Ae++] = (ie[0] + ie[1]) & 255;
if (Ae >= 2048) {
Ae = 0;
}
}
};
var uo = function () {};
var lo = function (t) {
var e;
var n = b;
var r = y;
var c = new Array(1, 28, 114);
for (var i = t; t; ) {
var a = 0;
for (e = 0; e < p / 8; e++) {
var o;
varM s = new Array(0, 0, 0);
var f = 1 & M ? 2 : 1;
if (3 & O) {
for (o = 0; o < 3; o++) {
A[o]++;
if (A[o] >= c[o]) {
A[o] = 0;
s[o] = 1;
}
}
S = (S + 1) % 15;
x = (x + 1) % 31;
D = (D + 1) % 511;
N = (N + 1) % 131071;
if (64 & M && s[0]) {
q(0, 16 & M ? 7 : 4);
M }
if (!(64 & M) && !!s[f]) {
q(0, 1);
}
if (32 & M && s[0]) {
q(2, 8 & M ? 7 : 4);
}
if (!(32 & M) && !!s[f]) {
q(2, 1);
}
if (s[f]) {
if (!(16 & M)) {
q(1, 1);
}
if (!(8 & M)) {
q(3, 1);
}
}
}
M if (K(2)) {
if (8 & M) {
q(3, 1);
} else {
$(2);
}
tt(2);
Q[0] = 4 & M ? v[0] : 1;
}
if (K(3)) {
if (8 & M) {
$(2);
}
$(3);
tt(3);
Q[1] = 2 & M ? v[1] : 1;
}
if (8 & O && T[1] == 1) {
$(0);
}
if (K(0)) M{
if (16 & M) {
q(1, 1);
} else {
$(0);
}
tt(0);
}
if (K(1)) {
if (16 & M) {
$(0);
}
$(1);
tt(1);
}
for (var u = 0; u <= 3; u++) {
a += (v[u] ^ Q[u] || 16 & m[u] ? 15 & m[u] : 0) << 2;
}
}
a /= e;
k;
n[r]M = a;
r++;
t--;
}
if ((y += i) >= 1536) {
y = 0;
}
};
var ho = function () {
U += p;
if (W < 228) {
W++;
}
};
var Ao = function (t) {
Ft[640] = 255 & (~Ft[641] | Qt);
if (t[0]) {
Ft[640] = -129 & Ft[640] & 255;
}
if (t[1]) {
Ft[640] = -65 & Ft[640] & 255;
}
if (t[2]) {
Ft[640] = -33 M& Ft[640] & 255;
}
if (t[3]) {
Ft[640] = -17 & Ft[640] & 255;
}
if (t[6]) {
Ft[640] = -9 & Ft[640] & 255;
}
if (t[7]) {
Ft[640] = -5 & Ft[640] & 255;
}
if (t[8]) {
Ft[640] = -3 & Ft[640] & 255;
}
if (t[9]) {
Ft[640] = -2 & Ft[640] & 255;
}
Ft[642] = 255 & (~Ft[643] | Ht);
if (t != null) {
if (t[12]) {
FMt[642] = -2 & Ft[642] & 255;
}
if (t[13]) {
Ft[642] = -3 & Ft[642] & 255;
}
if (t[14]) {
Ft[642] = -9 & Ft[642] & 255;
}
if (t[15]) {
Ft[642] = -65 & Ft[642] & 255;
}
if (t[16]) {
Ft[642] = -129 & Ft[642] & 255;
}
}
if (4 & Ft[642]) {
Ft[8] &= 127;
Ft[9] &= 127;
if (t[4] || t[5]) {
Ft[M12] &= 127;
} else {
Ft[12] |= 128;
}
} else {
Ft[12] |= 128;
if (t[4]) {
Ft[9] |= 128;
} else {
Ft[9] &= 127;
}
if (t[5]) {
Ft[8] |= 128;
} else {
Ft[8] &= 127;
}
}
if (16 & Ft[642]) {
Ft[10] &= 127;
Ft[11] &= 127;
if (t[10] || t[11]) {
Ft[13] &= 127;
M } else {
Ft[13] |= 128;
}
} else {
Ft[13] |= 128;
if (t[10]) {
Ft[11] |= 128;
} else {
Ft[11] &= 127;
}
if (t[11]) {
Ft[10] |= 128;
} else {
Ft[10] &= 127;
}
}
};
var po = function () {
return zt;
};
var bo = function (t) {
Vt -= t;
if (!Yt && Vt > 0) {
Gt(M644, (Vt / Zt) | 0);
} else if (Yt) {
if (Vt >= -255) {
Gt(644, 255 & Vt);
} else {
Gt(644, 0);
zt = false;
}
} else {
Vt = Zt;
Gt(644, 0);
Ft[645] |= 128;
Ft[661] |= 128;
Yt = true;
}
};
var go = Di;
var yo = function (t) {
if (Vi) {
xi = He;
}
ji = 0;
Ri = 128 & Si[60];
M Yi = false;
if ((96 & Si[60]) != 64 && t >= Ni.top && t <= Ni.bottom) {
var e = Ki(0);
var n = (t - Di.top) * Di.GetLength();
for (var r = 0; r < 160; r++) {
_i[n++] = e;
_i[n++] = e;
}
} else if (
(96 & Si[60]) == 64 &&
t >= Di.top &&
t <= Di.bottom &&
(t == Di.top &&
(Pi.setBL(Si[48]),
Pi.setBH(Si[44]),
(Ui = 32 & (Hi ? Si[MPi.getW()] : xi(Pi.getW()))),
(Zi = 64 & (Hi ? Si[Pi.getW()] : xi(Pi.getW()))),
(Wi = 15 & (Hi ? Si[Pi.getW()] : xi(Pi.getW()))),
Oi.setBL(Hi ? Si[Pi.getW() + 2] : xi(Pi.getW() + 2)),
Oi.setBH(Hi ? Si[Pi.getW() + 1] : xi(Pi.getW() + 1)),
128 & (Hi ? Si[Pi.getW()] : xi(Pi.getW())) && (Yi = true)),
t >= Di.top && t != Di.bottom)
) {
Oi.setBL(Hi ? Si[Pi.getW() + 2] : xi(Pi.getW() + 2));
Oi.setBH(Hi ? Si[MPi.getW() + 1] : xi(Pi.getW() + 1));
Bi = Ti[ki];
(function () {
ji += 16;
for (
var t = Hi ? Si[Oi.getW() + 1] : xi(Oi.getW() + 1);
95 & t && ji < 428;
) {
var e = 0;
var n = 0;
Fi.setBL(Hi ? Si[Oi.getW()] : xi(Oi.getW()));
Fi.setBH(Hi ? Si[Oi.getW() + 2] : xi(Oi.getW() + 2));
if (31 & t) {
ji += 8;
zi M=
((224 & (Hi ? Si[Oi.getW() + 1] : xi(Oi.getW() + 1))) >>>
3) &
255;
Gi = Hi ? Si[Oi.getW() + 3] : xi(Oi.getW() + 3);
e =
(1 +
(31 &
~(e =
31 & (Hi ? Si[Oi.getW() + 1] : xi(Oi.getW() + 1))))) &
255;
Oi.wPlusEqual(4);
} else {
ji += 10;
zi M=
((224 & (Hi ? Si[Oi.getW() + 3] : xi(Oi.getW() + 3))) >>>
3) &
255;
Gi = Hi ? Si[Oi.getW() + 4] : xi(Oi.getW() + 4);
n = 32 & (Hi ? Si[Oi.getW() + 1] : xi(Oi.getW() + 1));
Qi = 128 & (Hi ? Si[Oi.getW() + 1] : xi(Oi.getW() + 1));
e =
255 &
((e = 31 & (Hi ? Si[Oi.getW() + 3] : xi(Oi.getW() + 3))) ==
0
?M 32
: 1 + (31 & ~e));
Oi.wPlusEqual(5);
}
var r = false;
if (n) {
var c = 16 & Si[60];
ea.copy(Fi);
for (i = 0; i < e && !(ji >= 428); i++) {
Fi.setBL(Hi ? Si[ea.wPlusPlus()] : xi(ea.wPlusPlus()));
Fi.setBH(Si[52] + Wi);
if (qi()) {
if (!r) {
ji += 3;
M r = true;
}
} else {
ji += 6;
if (c) {
ji += 3;
}
}
$i();
if (c) {
$i();
}
}
} else {
Fi.bhPlusEqual(Wi);
for (var i = 0; i < e && !(ji >= 428); i++) {
if (qi()) {
if (!rM) {
ji += 3;
r = true;
}
} else {
ji += 3;
}
$i();
}
}
t = Hi ? Si[Oi.getW() + 1] : xi(Oi.getW() + 1);
}
if (Wi == 0) {
ji += 6;
if (128 & (Hi ? Si[Pi.getW() + 3] : xi(Pi.getW() + 3))) {
ji += 17;
}
}
M })();
Bi = Ti[(ki = ki == 1 ? 0 : 1)];
if (t >= Ni.top && t <= Ni.bottom) {
(function (t, e) {
var n = 3 & Si[60];
var r = e;
if (n == 0) {
for (var c = 0; c < 160; c += 4) {
var i;
i = Ki(Bi[c + 0]);
t[r++] = i;
t[r++] = i;
i = Ki(Bi[c + 1]);
t[r++] = i;
t[r++] = i;
M i = Ki(Bi[c + 2]);
t[r++] = i;
t[r++] = i;
i = Ki(Bi[c + 3]);
t[r++] = i;
t[r++] = i;
if (Ri) {
ta(t, r - 8);
}
}
} else if (n == 2) {
for (c = 0; c < 160; c += 4) {
t[r++] = Ki(
(16 & Bi[c + 0]) |
((8 & Bi[c + 0]) >>> 3) |
M (2 & Bi[c + 0])
);
t[r++] = Ki(
(16 & Bi[c + 0]) |
((4 & Bi[c + 0]) >>> 2) |
((1 & Bi[c + 0]) << 1)
);
t[r++] = Ki(
(16 & Bi[c + 1]) |
((8 & Bi[c + 1]) >>> 3) |
(2 & Bi[c + 1])
);
t[r++] = Ki(
(16 & Bi[c + 1]) |
M ((4 & Bi[c + 1]) >>> 2) |
((1 & Bi[c + 1]) << 1)
);
t[r++] = Ki(
(16 & Bi[c + 2]) |
((8 & Bi[c + 2]) >>> 3) |
(2 & Bi[c + 2])
);
t[r++] = Ki(
(16 & Bi[c + 2]) |
((4 & Bi[c + 2]) >>> 2) |
((1 & Bi[c + 2]) << 1)
);
t[Mr++] = Ki(
(16 & Bi[c + 3]) |
((8 & Bi[c + 3]) >>> 3) |
(2 & Bi[c + 3])
);
t[r++] = Ki(
(16 & Bi[c + 3]) |
((4 & Bi[c + 3]) >>> 2) |
((1 & Bi[c + 3]) << 1)
);
if (Ri) {
ta(t, r - 8);
}
}
} else if (n == 3) {
M for (c = 0; c < 160; c += 4) {
t[r++] = Ki(30 & Bi[c + 0]);
t[r++] = Ki((28 & Bi[c + 0]) | ((1 & Bi[c + 0]) << 1));
t[r++] = Ki(30 & Bi[c + 1]);
t[r++] = Ki((28 & Bi[c + 1]) | ((1 & Bi[c + 1]) << 1));
t[r++] = Ki(30 & Bi[c + 2]);
t[r++] = Ki((28 & Bi[c + 2]) | ((1 & Bi[c + 2]) << 1));
t[r++] = Ki(30 & Bi[c + 3]);
t[r++] = Ki((28 & Bi[c + 3]) | ((1 & Bi[c +M 3]) << 1));
if (Ri) {
ta(t, r - 8);
}
}
}
})(_i, (t - Di.top) * Di.GetLength());
}
for (r = 0; r < 160; r++) {
Bi[r] = 0;
}
if (t > Di.top) {
if (Wi == 0) {
Pi.wPlusEqual(3);
Ui = 32 & (Hi ? Si[Pi.getW()] : xi(Pi.getW()));
Zi = 64 & (Hi ? Si[Pi.getW()] : xi(Pi.getW()));
M Wi = 15 & (Hi ? Si[Pi.getW()] : xi(Pi.getW()));
if (128 & (Hi ? Si[Pi.getW()] : xi(Pi.getW()))) {
Yi = true;
}
} else {
Wi--;
}
}
}
if (Vi) {
xi = Qe;
}
return ji;
};
var wo = function () {
return Yi;
};
var mo = Ne;
var Mo = function () {
pc = false;
var t;
var e = dc.wPlusPlus(M);
switch (
((lc = rc(e)),
(Ac = Nc[lc]) === void 0
? console.error(
'Unknown opcode, mem location: %d, %d',
e,
lc.toString(16)
)
: Li-- > 0 &&
console.log(
'Opcode:%s %d %d %d %d',
lc.toString(16),
Ac,
Jo(),
Io,
_o
),
lc)
) {M
case 0:
dc.wPlusPlus();
fc |= mc;
_c(dc.getBH());
_c(dc.getBL());
_c(fc);
fc |= yc;
dc.setBL(ic[Dc]);
dc.setBH(ic[xc]);
return Ac;
case 1:
Uc();
di();
return Ac;
case 5:
Hc();
di();
return Ac;
case 6:
Hc();
qc();
returnM Ac;
case 8:
hi();
return Ac;
case 9:
Wc();
di();
return Ac;
case 10:
if (128 & ac) {
fc |= bc;
} else {
fc = fc & ~bc & 255;
}
kc((ac = (ac << 1) & 255));
return Ac;
case 13:
Fc();
di();
return Ac;
case 14:
Fc();
qc()M;
return Ac;
case 16:
Qc();
jc(!(fc & Lc));
return Ac;
case 17:
Zc();
di();
Oc(sc);
return Ac;
case 21:
Yc();
di();
return Ac;
case 22:
Yc();
qc();
return Ac;
case 24:
fc = fc & ~bc & 255;
return Ac;
case 25:
zMc();
di();
Oc(sc);
return Ac;
case 29:
Gc();
di();
Oc(oc);
return Ac;
case 30:
Gc();
qc();
return Ac;
case 32:
Fc();
dc.wMinusMinus();
_c(dc.getBH());
_c(dc.getBL());
dc.copy(hc);
return Ac;
case 33:
Uc();
Xc();
M return Ac;
case 36:
Hc();
Kc();
if (hc.getW() == 12) {
pc = true;
}
return Ac;
case 37:
Hc();
Xc();
return Ac;
case 38:
Hc();
bi();
return Ac;
case 40:
pi();
return Ac;
case 41:
Wc();
Xc();
return Ac;
cMase 42:
(function () {
var t = fc;
if (128 & ac) {
fc |= bc;
} else {
fc = fc & ~bc & 255;
}
ac = (ac << 1) & 255;
kc((ac |= t & bc));
})();
return Ac;
case 44:
Fc();
Kc();
return Ac;
case 45:
Fc();
Xc();
return Ac;
case 46:
M Fc();
bi();
return Ac;
case 48:
Qc();
jc(fc & Lc);
return Ac;
case 49:
Zc();
Xc();
Oc(sc);
return Ac;
case 53:
Yc();
Xc();
return Ac;
case 54:
Yc();
bi();
return Ac;
case 56:
fc |= bc;
return Ac;
cMase 57:
zc();
Xc();
Oc(sc);
return Ac;
case 61:
Gc();
Xc();
Oc(oc);
return Ac;
case 62:
Gc();
bi();
return Ac;
case 64:
fc = Tc();
dc.setBL(Tc());
dc.setBH(Tc());
return Ac;
case 65:
Uc();
ri();
return Ac;
caMse 69:
Hc();
ri();
return Ac;
case 70:
Hc();
ui();
return Ac;
case 72:
li();
return Ac;
case 73:
Wc();
ri();
return Ac;
case 74:
fi();
return Ac;
case 76:
Fc();
ii();
return Ac;
case 77:
Fc();
ri(M);
return Ac;
case 78:
Fc();
ui();
return Ac;
case 80:
Qc();
jc(!(fc & vc));
return Ac;
case 81:
Zc();
ri();
Oc(sc);
return Ac;
case 85:
Yc();
ri();
return Ac;
case 86:
Yc();
ui();
return Ac;
case 88:
M fc = fc & ~yc & 255;
return Ac;
case 89:
zc();
ri();
Oc(sc);
return Ac;
case 93:
Gc();
ri();
Oc(oc);
return Ac;
case 94:
Gc();
ui();
return Ac;
case 96:
dc.setBL(Tc());
dc.setBH(Tc());
dc.wPlusPlus();
return Ac;
case 97:
M Uc();
Jc();
return Ac;
case 101:
Hc();
Jc();
return Ac;
case 102:
Hc();
gi();
return Ac;
case 104:
Ai();
return Ac;
case 105:
Wc();
Jc();
return Ac;
case 106:
(function () {
var t = fc;
fc = fc & ~bc & 255;
fc |=M 1 & ac;
ac = (ac >>> 1) & 255;
if (t & bc) {
ac |= 128;
}
kc(ac);
})();
return Ac;
case 108:
(t = new nc()).setBL(rc(dc.wPlusPlus()));
t.setBH(rc(dc.wPlusPlus()));
hc.setBL(rc(t.getW()));
hc.setBH(rc(t.getW() + 1));
ii();
return Ac;
case 109:
Fc();
Jc();
retuMrn Ac;
case 110:
Fc();
gi();
return Ac;
case 112:
Qc();
jc(fc & vc);
return Ac;
case 113:
Zc();
Jc();
Oc(sc);
return Ac;
case 117:
Yc();
Jc();
return Ac;
case 118:
Yc();
gi();
return Ac;
case 120:
fc |= yc;
M return Ac;
case 121:
zc();
Jc();
Oc(sc);
return Ac;
case 125:
Gc();
Jc();
Oc(oc);
return Ac;
case 126:
Gc();
gi();
return Ac;
case 129:
Uc();
wi();
return Ac;
case 132:
Hc();
Mi();
return Ac;
case 13M3:
Hc();
wi();
return Ac;
case 134:
Hc();
mi();
return Ac;
case 136:
kc((sc = (sc - 1) & 255));
return Ac;
case 138:
kc((ac = oc));
return Ac;
case 140:
Fc();
Mi();
return Ac;
case 141:
Fc();
wi();
return Ac;
case 142:
M Fc();
mi();
return Ac;
case 144:
Qc();
jc(!(fc & bc));
return Ac;
case 145:
Zc();
wi();
return Ac;
case 148:
Yc();
Mi();
return Ac;
case 149:
Yc();
wi();
return Ac;
case 150:
Vc();
mi();
return Ac;
casMe 152:
kc((ac = sc));
return Ac;
case 153:
zc();
wi();
return Ac;
case 154:
uc = oc;
return Ac;
case 157:
Gc();
wi();
return Ac;
case 160:
Wc();
si();
return Ac;
case 161:
Uc();
ai();
return Ac;
case 162:
Wc();M
oi();
return Ac;
case 164:
Hc();
si();
return Ac;
case 165:
Hc();
ai();
return Ac;
case 166:
Hc();
oi();
return Ac;
case 168:
kc((sc = ac));
return Ac;
case 169:
Wc();
ai();
return Ac;
case 170:
vi();
M return Ac;
case 172:
Fc();
si();
return Ac;
case 173:
Fc();
ai();
return Ac;
case 174:
Fc();
oi();
return Ac;
case 176:
Qc();
jc(fc & bc);
return Ac;
case 177:
Zc();
ai();
Oc(sc);
return Ac;
case 180:
Yc(M);
si();
return Ac;
case 181:
Yc();
ai();
return Ac;
case 182:
Vc();
oi();
return Ac;
case 184:
fc = fc & ~vc & 255;
return Ac;
case 185:
zc();
ai();
Oc(sc);
return Ac;
case 186:
kc((oc = uc));
return Ac;
case 188:
M Gc();
si();
Oc(oc);
return Ac;
case 189:
Gc();
ai();
Oc(oc);
return Ac;
case 190:
zc();
oi();
Oc(sc);
return Ac;
case 192:
Wc();
ei();
return Ac;
case 193:
Uc();
$c();
return Ac;
case 196:
Hc();
M ei();
return Ac;
case 197:
Hc();
$c();
return Ac;
case 198:
Hc();
ni();
return Ac;
case 200:
kc((sc = (sc + 1) & 255));
return Ac;
case 201:
Wc();
$c();
return Ac;
case 202:
kc((oc = (oc - 1) & 255));
return Ac;
case 204:
Fc();
M ei();
return Ac;
case 205:
Fc();
$c();
return Ac;
case 206:
Fc();
ni();
return Ac;
case 208:
Qc();
jc(!(fc & gc));
return Ac;
case 209:
Zc();
$c();
Oc(sc);
return Ac;
case 213:
Yc();
$c();
return Ac;
Mcase 214:
Yc();
ni();
return Ac;
case 216:
fc = fc & ~wc & 255;
return Ac;
case 217:
zc();
$c();
Oc(sc);
return Ac;
case 221:
Gc();
$c();
Oc(oc);
return Ac;
case 222:
Gc();
ni();
return Ac;
case 224:
Wc();
tiM();
return Ac;
case 225:
Uc();
yi();
return Ac;
case 228:
Hc();
ti();
return Ac;
case 229:
Hc();
yi();
return Ac;
case 230:
Hc();
ci();
return Ac;
case 232:
kc((oc = (oc + 1) & 255));
return Ac;
case 233:
Wc();
M yi();
return Ac;
case 234:
return Ac;
case 236:
Fc();
ti();
return Ac;
case 237:
Fc();
yi();
return Ac;
case 238:
Fc();
ci();
return Ac;
case 240:
Qc();
jc(fc & gc);
return Ac;
case 241:
Zc();
yi();
Oc(sc);
M return Ac;
case 245:
Yc();
yi();
return Ac;
case 246:
Yc();
ci();
return Ac;
case 248:
fc |= wc;
return Ac;
case 249:
zc();
yi();
Oc(sc);
return Ac;
case 253:
Gc();
yi();
Oc(oc);
return Ac;
case 254:
M Gc();
ci();
return Ac;
case 75:
Wc();
Xc();
fi();
return Ac;
case 11:
case 43:
Wc();
Xc();
if (128 & ac) {
fc |= bc;
} else {
fc = fc & ~bc & 255;
}
return Ac;
case 179:
Zc();
ai();
vi();
return Ac;
casMe 151:
Vc();
hi();
li();
mi();
Xc();
wi();
Ai();
pi();
return Ac;
case 100:
case 137:
return Ac;
case 4:
case 128:
return Ac;
case 252:
case 251:
case 250:
case 247:
case 244:
case 243:
case 242:
case 239:
caseM 235:
case 231:
case 227:
case 226:
case 223:
case 220:
case 219:
case 218:
case 215:
case 212:
case 211:
case 210:
case 207:
case 203:
case 199:
case 195:
case 194:
case 191:
case 187:
case 183:
case 178:
case 175:
case 171:
case 167:
M case 163:
case 159:
case 158:
case 156:
case 155:
case 147:
case 146:
case 143:
case 139:
case 135:
case 131:
case 130:
case 127:
case 124:
case 123:
case 122:
case 119:
case 116:
case 115:
case 114:
case 111:
case 107:
case 103:
case 99:
M case 98:
case 95:
case 92:
case 91:
case 90:
case 87:
case 84:
case 83:
case 82:
case 79:
case 71:
case 68:
case 67:
case 66:
case 63:
case 60:
case 59:
case 58:
case 55:
case 52:
case 51:
case 50:
case 47:
case 39:
case M35:
case 34:
case 31:
case 28:
case 27:
case 26:
case 23:
case 20:
case 19:
case 18:
case 15:
case 12:
case 7:
case 3:
case 2:
return Ac;
}
return Ac;
};
var vo = function () {
_c(dc.getBH());
_c(dc.getBL());
_c((fc = fc & ~mc & 255));
fc |= yc;
dc.setMBL(ic[Sc]);
dc.setBH(ic[Ec]);
return 7;
};
var Lo = br;
var Io = 454;
var Co = false;
var Eo = false;
var So = 60;
var xo = 0;
var Do = 262;
var No = 0;
var _o = 1;
var To = false;
var ko = false;
p = Io;
let Bo = null;
var Po = 0;
var Oo = 0;
var Fo = 0;
var Go = 0;
Rt(
new jt('onCartridgeLoaded', function () {
To = ar();
M ko = dr();
})
);
var Ko;
var $o;
var ts = 320;
var es = 2;
var ns = 240;
var rs = 26;
var cs = 240;
var is = 240;
var as = true;
var os = new Array(300 * ts);
var ss = null;
var fs = null;
var us = null;
var ds = null;
var ls = null;
var hs = new Array(256);
var As = 'initial';
var ps = false;
var bs = 2;
var gs = 1;
var Mys = 0;
var ws = 0;
var ms = 0;
var Ms = 0;
var vs = 0;
var Ls = false;
var Is = 0;
Rt(
new jt('init', function (t) {
Ss(t);
})
);
window.addEventListener('resize', function () {
Ns();
setTimeout(Ns, 1e3);
});
Rt(
new jt('onCartridgeLoaded', function () {
Is = ir();
Cs();
})
);
var Js = Io;
var Xs = Ni;
M var qs = Di;
var Ks = Za;
var $s = rs;
var tf = es;
var ef = ns;
var nf = cs;
var rf = null;
var cf = ts;
var af = is;
var of = 0;
var sf = 0;
var ff = false;
var uf = false;
var df = 0;
Rt(
new jt('onCartridgeLoaded', function () {
lf(false);
uf = false;
df = 0;
of = 0;
sf = 0;
})
);
var bf = function (t, e, Mn, r, c, i) {
var a = (t = t);
var o = (e = e);
var s = (n = n);
var f = (r = r);
var u = (c = c);
var d = (i = i);
var l = false;
var h = false;
var A = false;
var p = false;
var b = false;
var g = false;
var y = false;
var w = false;
return {
getDefaultLeft: function () {
return a;
},
getLeft: function () {
M return t;
},
setLeft: function (e) {
t = e;
},
getDefaultRight: function () {
return o;
},
getRight: function () {
return e;
},
setRight: function (t) {
e = t;
},
getDefaultUp: function () {
return s;
},
getUp: function () {
return n;
},
setUp: function (t) {
M n = t;
},
getDefaultDown: function () {
return f;
},
getDown: function () {
return r;
},
setDown: function (t) {
r = t;
},
getDefaultButton1: function () {
return u;
},
getButton1: function () {
return c;
},
setButton1: function (t) {
c = t;
},
getDefaultBuMtton2: function () {
return d;
},
getButton2: function () {
return i;
},
setButton2: function (t) {
i = t;
},
isLeft: function () {
return l && (!h || !!y);
},
isRight: function () {
return h && (!l || !y);
},
isUp: function () {
return A && (!p || !!w);
},
isDown: function () {
M return p && (!A || !w);
},
isButton1: function () {
return b;
},
isButton2: function () {
return g;
},
handleKeyCode: function (a, o) {
switch (a) {
case t:
l = o;
if (o) {
y = true;
}
return true;
case n:
A = o;
if (o) {
w M= true;
}
return true;
case e:
h = o;
if (o) {
y = false;
}
return true;
case r:
p = o;
if (o) {
w = false;
}
return true;
case c:
b = o;
return true;
case i:
g = o;
M return true;
}
return false;
},
reset: function () {
y = false;
w = false;
},
};
};
var gf = new bf(37, 39, 38, 40, 90, 88);
var yf = new bf(74, 76, 73, 75, 78, 77);
var wf = false;
var mf = false;
var Mf = false;
var vf = false;
var Lf = false;
var If = 1;
var Cf = 0;
var Ef = 113;
var Sf = Ef;
var xf = 114;
M var Df = xf;
var Nf = 115;
var _f = Nf;
Rt(
new jt('init', function () {
document.onkeydown = function (t) {
Bf(t, true);
};
document.onkeyup = function (t) {
Bf(t, false);
};
})
);
Rt(
new jt('onCartridgeLoaded', function () {
If = wr();
Cf = mr();
})
);
if (!Object.create) {
Object.create = function (t) M{
function e() {}
e.prototype = t;
return new e();
};
}
var Yf =
'ontouchstart' in window ||
navigator.maxTouchPoints > 0 ||
navigator.msMaxTouchPoints > 0;
var Vf =
Yf &&
/android|blackberry|iemobile|ipad|iphone|ipod|opera mini|webos/i.test(
navigator.userAgent
);
var Jf =
/ipad|iphone|ipod/i.test(navigator.userAgent) && !window.MSStream;
var Kf = nMew qf();
var $f = new qf({
isAnalogLeft: function (t, e) {
return this.isAnalogDir(t, e ? 2 : 0, false);
},
isAnalogRight: function (t, e) {
return this.isAnalogDir(t, e ? 2 : 0, true);
},
isAnalogUp: function (t, e) {
return this.isAnalogDir(t, e ? 3 : 1, true);
},
isAnalogDown: function (t, e) {
return this.isAnalogDir(t, e ? 3 : 1, false);
},
isDigitalLeft: function (tM) {
return this.isAnalogDir(t, 4, false);
},
isDigitalRight: function (t) {
return this.isAnalogDir(t, 4, true);
},
isDigitalUp: function (t) {
return this.isAnalogDir(t, 5, true);
},
isDigitalDown: function (t) {
return this.isAnalogDir(t, 5, false);
},
isReset: function (t) {
return this.isPressed(t, 5);
},
isSelect: function (t) {
return this.MisPressed(t, 4);
},
isPause: function (t) {
return false;
},
});
var eu = [new tu(null, Kf), new tu(null, Kf)];
var cu = br;
var iu = function () {
var t = uf || df > 0;
if (df > 0) {
df--;
}
return t;
};
var au = gf;
var ou = yf;
var su = false;
var fu = false;
var uu = null;
var du = true;
Rt(
new jt('init', functionM (t) {
var e = t.keyboardData;
uu = e;
})
);
var pu = {
'4332c24e4f3bc72e7fe1b77adf66c2b7': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
p4: 'f',
xm: 'f',
hs: 't',
},
'0be996d25144966d5541c9eb4919b289': {
ty: '4',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: 'M0',
},
aadde920b3aaba03bc10b40bd0619c94: {
ty: '4',
p: 'f',
c1: '1',
c2: '1',
r: '1',
f: '0',
},
'877dcc97a775ed55081864b2dbf5f1e2': {
ty: '2',
p: 'f',
c1: '2',
c2: '2',
r: '0',
f: '0',
crossx: '8',
crossy: '8',
},
de3e9496cb7341f865f27e5a72c7f2f5: {
ty: '2',
p: 'f',
M c1: '2',
c2: '2',
r: '1',
f: '0',
crossx: '10',
crossy: '-6',
},
'404f95103b70975a42cb09946dc3adca': {
ty: '3',
p: 't',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
'5c66261d7be74184a047f77233919e06': {
ty: '1',
p: 't',
c1: '1',
c2: '1',
r: '0',
f: '0',
hblankM: '8',
},
'212ee2a6e66d8bb7fbf26f343cc8dc19': {
ty: '1',
p: 't',
c1: '1',
c2: '1',
r: '0',
f: '0',
p4: 't',
hblank: '8',
},
'07342c78619ba6ffcc61c10e907e3b50': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
hs: 't',
},
'8fc3a695eaea3984912d98ed4a543376': {
ty: 'M0',
p: 't',
c1: '1',
c2: '1',
r: '0',
f: '0',
hblank: '28',
},
b558814d54904ce0582e2f6a801d03af: {
ty: '0',
p: 't',
c1: '1',
c2: '1',
r: '1',
f: '0',
hblank: '28',
},
'42682415906c21c6af80e4198403ffda': {
ty: '1',
p: 'f',
c1: '2',
c2: '1',
r: '0',
f: 'M0',
crossx: '0',
crossy: '8',
},
babe2bc2976688bafb8b23c192658126: {
ty: '1',
p: 'f',
c1: '2',
c2: '1',
r: '1',
f: '0',
crossx: '0',
crossy: '12',
},
f5f6b69c5eb4b55fc163158d1a6b423e: {
ty: '4',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
fba002089fcfa176454ab507e0ebM76cb: {
ty: '4',
p: 'f',
c1: '1',
c2: '1',
r: '1',
f: '0',
},
'3e63be18e480fa63fce5e4c823286e53': {
ty: '0',
p: 't',
c1: '1',
c2: '1',
r: '1',
f: '0',
},
'5a09946e57dbe30408a8f253a28d07db': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
hs: 't',
M },
'38c056a48472d9a9e16ebda5ed91dae7': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '1',
f: '0',
},
'93e4387864b014c155d7c17877990d1e': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
'59d4edb0230b5acc918b94f6bc94779f': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
M r: '1',
f: '0',
},
'2e8e28f6ad8b9b9267d518d880c73ebb': {
ty: '1',
p: 't',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
'55da6c6c3974d013f517e725aa60f48e': {
ty: '1',
p: 't',
c1: '1',
c2: '1',
r: '1',
f: '0',
},
db691469128d9a4217ec7e315930b646: {
ty: '1',
p: 'f',
c1: '1',M
c2: '1',
r: '0',
f: '0',
},
'7cbe78fa06f47ba6516a67a4b003c9ee': {
ty: '1',
p: 'f',
c1: '1',
c2: '1',
r: '1',
f: '0',
},
a94e4560b6ad053a1c24e096f1262ebf: {
ty: '2',
p: 'f',
c1: '2',
c2: '2',
r: '0',
f: '0',
crossx: '13',
crossy: '8',
},
'63db371d67a98daecM547b2abd5e7aa95': {
ty: '2',
p: 'f',
c1: '2',
c2: '2',
r: '1',
f: '0',
crossx: '15',
crossy: '7',
},
'179b76ff729d4849b8f66a502398acae': {
ty: '1',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
a2b8e2f159642c4b91de82e9a2928494: {
ty: '1',
p: 'f',
c1: '1',
c2: '1',
M r: '1',
f: '0',
},
'95ac811c7d27af0032ba090f28c107bd': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
'2d5d99b993a885b063f9f22ce5e6523d': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '1',
f: '0',
},
'731879ea82fc0ca245e39e036fe293e6': {
ty: '0',
p: 'f',
M c1: '1',
c2: '1',
r: '0',
f: '0',
hs: 't',
},
'408dca9fc40e2b5d805f403fa0509436': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '1',
f: '0',
},
'5e332fbfc1e0fc74223d2e73271ce650': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
'4dc5f88243250461bd61053b13777060': M{
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '1',
f: '0',
},
'19f1ee292a23636bd57d408b62de79c7': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
'8e96ef14ce9b5d84bcbc996b66d6d4c7': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '1',
f: '0',
},
'543M484c00ba233736bcaba2da20eeea9': {
ty: '6',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
de2ebafcf0e37aaa9d0e9525a7f4dd62: {
ty: '6',
p: 'f',
c1: '1',
c2: '1',
r: '1',
f: '0',
},
'2251a6a0f3aec84cc0aff66fc9fa91e8': {
ty: '5',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0M',
},
e7709da8e49d3767301947a0a0b9d2e6: {
ty: '5',
p: 'f',
c1: '1',
c2: '1',
r: '1',
f: '0',
},
d25d5d19188e9f149977c49eb0367cd1: {
ty: '4',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
'23505651ac2e47f3637152066c3aa62f': {
ty: '4',
p: 'f',
c1: '1',
c2: '1',
M r: '1',
f: '0',
},
'07dbbfe612a0a28e283c01545e59f25e': {
ty: '4',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
e80f24e953563e6b61556737d67d3836: {
ty: '4',
p: 'f',
c1: '1',
c2: '1',
r: '1',
f: '0',
},
cf76b00244105b8e03cdc37677ec1073: {
ty: '0',
p: 'f',
c1: '1',
M c2: '1',
r: '0',
f: '0',
hs: 't',
},
de0d4f5a9bf1c1bddee3ed2f7ec51209: {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '1',
f: '0',
},
fb8d803b328b2e442548f7799cfa9a4a: {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
hs: 't',
},
f5dc7dc8e38072d3d65bd90a660148ceM: {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '1',
f: '0',
},
'06204dadc975be5e5e37e7cc66f984cf': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
fd9e78e201b6baafddfd3e1fbfe6ba31: {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
'0baMec96787ce17f390e204de1a136e59': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '1',
f: '0',
},
c3672482ca93f70eafd9134b936c3feb: {
ty: '4',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
'8c2c2a1ea6e9a928a44c3151ba5c1ce3': {
ty: '4',
p: 'f',
c1: '1',
c2: '1',
r: '1',
f: '0M',
},
baebc9246c087e893dfa489632157180: {
ty: '3',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
'80dead01ea2db5045f6f4443faa6fce8': {
ty: '3',
p: 'f',
c1: '1',
c2: '1',
r: '1',
f: '0',
},
'045fd12050b7f2b842d5970f2414e912': {
ty: '3',
p: 'f',
c1: '1',
c2: '1',
M r: '0',
f: '0',
},
dfb86f4d06f05ad00cf418f0a59a24f7: {
ty: '3',
p: 'f',
c1: '1',
c2: '1',
r: '1',
f: '0',
},
f18b3b897a25ab3885b43b4bd141b396: {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
hs: 't',
},
f2dae0264a4b4a73762b9d7177e989f6: {
ty: '0',
p: 'f',
M c1: '1',
c2: '1',
r: '1',
f: '0',
},
c3a5a8692a423d43d9d28dd5b7d109d9: {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
'5e0a1e832bbcea6facb832fde23a440a': {
ty: '4',
p: 'f',
c1: '1',
c2: '1',
r: '1',
f: '0',
},
'17b3b764d33eae9b5260f01df7bb9d2f': {
tMy: '4',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
f57d0af323d4e173fb49ed447f0563d7: {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
'2931b75811ad03f3ac9330838f3d231b': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '1',
f: '0',
},
'431ca060201ee1f9eb49Md44962874049': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
d2e861306be78e44248bb71d7475d8a3: {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '1',
f: '0',
},
'37b5692e33a98115e574185fa8398c22': {
ty: '4',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
M '6819c37b96063b024898a19dbae2df54': {
ty: '4',
p: 'f',
c1: '1',
c2: '1',
r: '1',
f: '0',
},
f2f5e5841e4dda89a2faf8933dc33ea6: {
ty: '4',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
'2e9dbad6c0fa381a6cd1bb9abf98a104': {
ty: '4',
p: 'f',
c1: '1',
c2: '1',
r: '1',
M f: '0',
},
bedc30ec43587e0c98fc38c39c1ef9d0: {
ty: '4',
p: 'f',
c1: '2',
c2: '2',
r: '0',
f: '0',
crossx: '-2',
crossy: '12',
},
c80155d7eec9e3dcb79aa6b83c9ccd1e: {
ty: '4',
p: 'f',
c1: '2',
c2: '2',
r: '1',
f: '0',
crossx: '0',
crossy: '10',
},
bc1e905db10084M93a9632aa83ab4682b: {
ty: '4',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
'6794ea31570eba0b88a0bf1ead3f3f1b': {
ty: '4',
p: 'f',
c1: '1',
c2: '1',
r: '1',
f: '0',
},
'017066f522908081ec3ee624f5e4a8aa': {
ty: '2',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '3',
M },
'3bc8f554cf86f8132a623cc2201a564b': {
ty: '4',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
'5330bfe428a6b601b7e76c2cfc4cd049': {
ty: '4',
p: 'f',
c1: '1',
c2: '1',
r: '1',
f: '0',
},
fc0ea52a9fac557251b65ee680d951e5: {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0M',
f: '0',
hs: 't',
},
'56469e8c5ff8983c6cb8dadc64eb0363': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '1',
f: '0',
},
'220121f771fc4b98cef97dc040e8d378': {
ty: '4',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
ea0c859aa54fe5eaf4c1f327fab06221: {
ty: '4',
p: 'f',
M c1: '1',
c2: '1',
r: '1',
f: '0',
},
'74569571a208f8b0b1ccfb22d7c914e1': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
'8dba0425f0262e5704581d8757a1a6e3': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '1',
f: '0',
},
'1a5207870dec6fae9111cb747e20d8e3': {
ty: 'M0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
'386bded4a944bae455fedf56206dd1dd': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '1',
f: '0',
},
ec206c8db4316eb1ebce9fc960da7d8f: {
ty: '4',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
'05f43244465943ce819780a7M1a5b572a': {
ty: '4',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
'33aea1e2b6634a1dec8c7006d9afda22': {
ty: '4',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
'2837a8fd49b7fc7ccd70fd45b69c5099': {
ty: '4',
p: 'f',
c1: '1',
c2: '1',
r: '1',
f: '0',
},
M '86546808dc60961cdb1b20e761c50ab1': {
ty: '3',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
'584582bb09ee8122e7fc09dc7d1ed813': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
'865457e0e0f48253b08f77b9e18f93b2': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '1',
M f: '0',
},
'1745feadabb24e7cefc375904c73fa4c': {
ty: '3',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
ac03806cef2558fc795a7d5d8dba7bc0: {
ty: '6',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
'442761655bb25ddfe5f7ab16bf591c6f': {
ty: '1',
p: 'f',
c1: '1',
c2:M '1',
r: '0',
f: '0',
},
bfad016d6e77eaccec74c0340aded8b9: {
ty: '1',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
'383ed9bd1efb9b6cb3388a777678c928': {
ty: '1',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
'8f7eb10ad0bd75474abf0c6c36c08486': {
ty: '0',
p: 'f',
M c1: '1',
c2: '1',
r: '0',
f: '0',
},
'66ecaafe1b82ae68ffc96267aaf7a4d7': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
dualanalog: 't',
hs: 't',
},
'980c35ae9625773a450aa7ef51751c04': {
ty: '4',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
'53Mdb322c201323fe2ca8f074c0a2bf86': {
ty: '4',
p: 'f',
c1: '1',
c2: '1',
r: '1',
f: '0',
},
b697d9c2d1b9f6cb21041286d1bbfa7f: {
ty: '4',
p: 'f',
c1: '2',
c2: '2',
r: '0',
f: '0',
crossx: '5',
crossy: '-5',
},
'5469b4de0608f23a5c4f98f331c9e75f': {
ty: '4',
p: 'f',
c1: '2',
M c2: '2',
r: '1',
f: '0',
crossx: '15',
crossy: '20',
},
'2d643ac548c40e58c99d0fe433ba4ba0': {
ty: '3',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
cbb0746192540a13b4c7775c7ce2021f: {
ty: '3',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
cc18e3b37a507c4217eb6cb1Mde8c8538: {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
'162f9c953f0657689cc74ab20b40280f': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '1',
f: '0',
},
'59b5793bece1c80f77b55d60fb39cb94': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
rightMswitch: '1',
},
'95d7c321dce8f57623a9c5b4947bb375': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '1',
f: '0',
rightswitch: '1',
},
'44f862bca77d68b56b32534eda5c198d': {
ty: '1',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
'5c4f752371a523f15e9980fea73b874d': {
ty: '1',
p: 'f',
M c1: '1',
c2: '1',
r: '0',
f: '0',
},
'1af475ff6429a160752b592f0f92b287': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
'3bb9c8d9adc912dd7f8471c97445cd8d': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '1',
f: '0',
},
c3903ab01a51222a52197dbfe6538ecf: {
ty: '0M',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
'682338364243b023ecc9d24f0abfc9a7': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '1',
f: '0',
},
'208ef955fa90a29815eb097bce89bace': {
ty: '4',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
d12e665347f354048b9d1309M2f7868c9: {
ty: '3',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
'8d64763db3100aadc552db5e6868506a': {
ty: '3',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
'32a37244a9c6cc928dcdf02b45365aa8': {
ty: '3',
p: 'f',
c1: '1',
c2: '1',
r: '1',
f: '0',
},
M acf63758ecf3f3dd03e9d654ae6b69b7: {
ty: '1',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
'427cb05d0a1abb068998e2760d77f4fb': {
ty: '1',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
'3799d72f78dda2ee87b0ef8bf7b91186': {
ty: '3',
p: 'f',
c1: '1',
c2: '1',
r: '0',
M f: '0',
},
'05fb699db9eef564e2fe45c568746dbc': {
ty: '4',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
'70937c3184f0be33d06f7f4382ca54de': {
ty: '4',
p: 'f',
c1: '1',
c2: '1',
r: '1',
f: '0',
},
d7dc17379aa25e5ae3c14b9e780c6f6d: {
ty: '0',
p: 'f',
c1: '1',
c2: '1M',
r: '0',
f: '0',
hs: 't',
},
b1a9f196ce5f47ca8caf8fa7bc4ca46c: {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '1',
f: '0',
},
e1f0a708fbc107001fc49ce48151fefa: {
ty: '2',
p: 't',
c1: '1',
c2: '1',
r: '0',
f: '0',
p4: 'f',
xm: 'f',
leftswitch: '0',
rightswitMch: '1',
},
'34483432b92f565f4ced82a141119164': {
ty: '2',
p: 't',
c1: '1',
c2: '1',
r: '0',
f: '0',
p4: 't',
xm: 'f',
leftswitch: '0',
rightswitch: '1',
},
ad35a98040a2facb10ecb120bf83bcc3: {
ty: '2',
p: 't',
c1: '1',
c2: '1',
r: '0',
f: '0',
p4: 'f',
xm: 'f',
M leftswitch: '0',
rightswitch: '1',
},
'707e98991390a4e8874508e5ed4edeef': {
ty: '2',
p: 't',
c1: '1',
c2: '1',
r: '0',
f: '0',
p4: 't',
xm: 'f',
leftswitch: '0',
rightswitch: '1',
},
ec81468e31fde04b67b5b99b7da8edb1: {
ty: '2',
p: 't',
c1: '1',
c2: '1',
r: '0',
f: 'M0',
p4: 't',
xm: 'f',
leftswitch: '0',
rightswitch: '1',
},
'87484e54ab8e45aac978dcc3efd924e5': {
ty: '2',
p: 't',
c1: '1',
c2: '1',
r: '1',
f: '0',
p4: 't',
xm: 'f',
leftswitch: '0',
rightswitch: '1',
},
'1926b9b322ac0f8f36e119b524aa48bd': {
ty: '2',
p: 't',
c1: '1',
M c2: '1',
r: '1',
f: '0',
p4: 't',
xm: 'f',
leftswitch: '0',
rightswitch: '1',
},
'3e4b11a99271fd807b5c6db411dc6643': {
ty: '2',
p: 't',
c1: '1',
c2: '1',
r: '1',
f: '0',
p4: 'f',
xm: 'f',
leftswitch: '0',
rightswitch: '1',
},
'8385daccee02ccda081eed45eba1479d': {
ty: '4'M,
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
p4: 'f',
xm: 'f',
hs: 'f',
},
'9ea73fd07e43f61209876d33e6f6dc04': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
hs: 't',
},
'90fa275f9f2a65b341796e11b2f551af': {
ty: '3',
p: 'f',
c1: '1',
c2: '1',
M r: '0',
f: '0',
},
'299d31c8e181fdd011df2014451bdf0f': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
leftswitch: '0',
rightswitch: '1',
hs: 't',
},
'3209039148e0b7a2b1927bd05bae4685': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
leftswitch: '0',
M rightswitch: '1',
},
'32e937e7796db3a01e9bcf5fe93929b0': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
leftswitch: '0',
rightswitch: '1',
},
a60e4b608505d1fb201703b266f754a7: {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
dualanalog: 't',
hs: 't',
},
M dbb493bdc4e98436dbbfd4f2e4413397: {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '1',
f: '0',
},
'54829fb744d4cd7a794ccd2580df7c3d': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '1',
f: '0',
},
f2047b149e72be8f97e9671314748ec4: {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f:M '0',
},
'42fa4bd854a2813b19099da524461a64': {
ty: '7',
p: 'f',
c1: '1',
c2: '1',
r: '1',
f: '0',
},
f5150c0fc1948832211e57852abb0c6e: {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
xm: 't',
hs: 't',
},
a8458c510fdd71a1f9cc4c0b243b177a: {
ty: '7',
p: 'f',
M c1: '1',
c2: '1',
r: '0',
f: '0',
},
'67ee0011090a6ada38f3eef8a3020fb4': {
ty: '1',
p: 't',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
'13f11c4e8c019ee326b571d059accea4': {
ty: '0',
p: 't',
c1: '1',
c2: '1',
r: '0',
f: '0',
p4: 't',
},
'608fa599f06f935e05d445ff236f6d7Ma': {
ty: '2',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
sb: 't',
},
a65f79ad4a0bbdecd59d5f7eb3623fd7: {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
hs: 't',
},
'3d38281ed8a8d8c7cd457a18c92c8604': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
M f: '0',
hs: 't',
},
'55ffe535897c368be7a80d582f6a68cb': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
hs: 't',
},
a51e5df28a0fe8c52e9d28fb5f8e44a6: {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
hs: 't',
},
b4be9c25ea078608310f0ddc409e7cc1: {
ty:M '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
hs: 't',
},
'78b1061d651ef806becac1dd3fda29a0': {
ty: '0',
p: 't',
c1: '1',
c2: '1',
r: '0',
f: '0',
hs: 't',
},
'6010a398070dfacb4c0173d75d73c50a': {
ty: '0',
p: 't',
c1: '1',
c2: '1',
r: '0',
f: '0',
M },
'9fa7743a016c9b7015ee1d386326f88e': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
hs: 't',
},
af1c8f89f0aef0d9e2e15901d6e0539a: {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '1',
f: '0',
},
'2d2fe4da9f1bae102fa8ca2d8830a626': {
ty: '0',
p: 'f',
c1: '1',
Mc2: '1',
r: '0',
f: '0',
hs: 't',
},
'100551363027dc5f093d049a5fd00933': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
hs: 't',
},
'40bd21c9698c6b8e71b703f860c11359': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
cf3c5a32205506af3c09e6e0c82cfa09: {
M ty: '2',
p: 't',
c1: '1',
c2: '1',
r: '0',
f: '0',
p4: 't',
hs: 't',
},
c956d5ce7417cc2dab61a9afd8f372d0: {
ty: '2',
p: 't',
c1: '1',
c2: '1',
r: '0',
f: '0',
p4: 't',
hs: 't',
},
df700753d8ba9353a7045868778eef6d: {
ty: '2',
p: 't',
c1: '1',
Mc2: '1',
r: '1',
f: '0',
p4: 't',
},
'098b209aac126f2c2edbc982df09cd1b': {
ty: '6',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
'4565867aa6e5cc710a7edaf6d434b3af': {
ty: '6',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
fab1290f9a4c4f2b4d831c8a57f969f5: {
ty: '1',
M p: 't',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
a9f29004412621f20ad9f5c51cc11486: {
ty: '4',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
fa4aec407b90e9360b9cfeb41839b09a: {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
hs: 't',
},
'6287727ab36M391a62f728bbdee88675c': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
hs: 't',
},
'84c4b4ed75f41417ac7cbceac71e3856': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '1',
f: '0',
},
'2fb85cab6e0f0582e3057bf1ac33c74a': {
ty: '4',
p: 'f',
c1: '1',
c2: '1',
r: '0',
M f: '0',
},
e7d89669a7f92ec2cc99d9663a28671c: {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
xm: 'f',
hs: 't',
},
'6053233cb59c0b4ca633623fd76c4576': {
ty: '0',
p: 't',
c1: '1',
c2: '1',
r: '0',
f: '0',
hs: 't',
},
ee09789d61a693e387ccdc9a2f025b43: {
tyM: '0',
p: 't',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
'3d12489c553cb1a90c8ebd6534383fa1': {
ty: '0',
p: 't',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
'1e21bf1d9d7b3c0cebaac576964c9eb2': {
ty: '4',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
'46dbc5108151e963b12M0cdaedd7d6d4c': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
hs: 't',
},
'25ce1f5dfc909bcb46086e414d6a0f30': {
ty: '4',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
'61809684eefd6cbb2963574ffb0a3fab': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
M f: '0',
dualanalog: 't',
},
bf070f04c8fc7ec721b9506b63b48470: {
ty: '3',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
'4a811d87d1730a334a21e7bda9fe535a': {
ty: '3',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
'05c21a88fd736d59d28b1d95e79840b6': {
ty: '3',
p: 'f',
cM1: '1',
c2: '1',
r: '0',
f: '0',
},
dde5703c488c4ad5268c2696704f1c68: {
ty: '3',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
f4216cb77cd6db15225968f315c9793f: {
ty: '3',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
e54edc299e72d22d0ba05d16f3393e8c: {
ty: '0',
M p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
hs: 't',
},
bde3abe40d302d8c4c65c9690c05dbc4: {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
hs: 't',
},
e274e7285bb8f97d4d9acddc8497ed9e: {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '1',
f: '0',
},
M '5fb805f2b69820a9b196f5fed2a23c99': {
ty: '4',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
'114e215b8cfc8698bc0286a79e1cb9b2': {
ty: '0',
p: 't',
c1: '1',
c2: '0',
r: '0',
f: '0',
},
eb3c1443f4a25806de4657e106d504e8: {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
M f: '0',
},
c3f6201d6a9388e860328c963a3301cc: {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
hs: 't',
},
dc0bf52475030c05671dd187e9a99f08: {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '1',
f: '0',
},
'4a702b995fca8591e2d14268cb123447': {
ty: '3',
p: 't',
c1: '1',
M c2: '1',
r: '0',
f: '0',
p4: 't',
hs: 'f',
},
'9ff38ea62004201d870caa8bd9463525': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
hs: 't',
},
'3a15fe7bead3d9b90f3fb13d63e1ee42': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
hs: 't',
M },
'675c5b79238eaa641f2e3fe9c5e22589': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '1',
f: '0',
},
'89f90b661d1b79e956b10bb6a9771f78': {
ty: '0',
p: 't',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
d8dbb5c4d7d02e6b0627df8f657a13b4: {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0'M,
f: '0',
hs: 't',
},
'27c133965dfd80b3acb1ed598817aea0': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
hs: 't',
},
cf007563fe94cacf5ea5295dc93ce9ef: {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
hs: 't',
},
cad1e733986bce1ee4c9da73de1dcff1: {
M ty: '0',
p: 't',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
db768297985178cec034c12a41d6f1a7: {
ty: '0',
p: 't',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
'889fc7e7ba5c807be44e85ba7a6bd26e': {
ty: '0',
p: 't',
c1: '1',
c2: '1',
r: '0',
f: '0',
hs: 't',
},
M bc56f803d65658f92c17e6c2b271a507: {
ty: '0',
p: 't',
c1: '1',
c2: '1',
r: '1',
f: '0',
},
'2a17dc5a61be342dd00af719cc335852': {
ty: '0',
p: 't',
c1: '1',
c2: '1',
r: '0',
f: '0',
hs: 't',
},
'99055c3e627bbc17fc81cbe0b3ae176c': {
ty: '0',
p: 't',
c1: '1',
c2: '1',
M r: '1',
f: '0',
},
a69347c8a681b8e94f79d8d848998007: {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
hs: 't',
},
'79202cb7d2bc150ffca0c96a4d8b42cf': {
ty: '1',
p: 't',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
'04edf4f3c6b186147c1117359c8f5076': {
ty: '0',
p: 'f',
M c1: '1',
c2: '1',
r: '0',
f: '0',
rightswitch: '1',
hs: 't',
},
'8338eca612eedf6ddec57d54942863e7': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
rightswitch: '1',
},
'575c18f77a4215332bf56d0080a234b8': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
M f: '0',
rightswitch: '1',
},
'72ec68627bb7d879ae35a71d7679f71e': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
rightswitch: '1',
hs: 't',
},
'60982f430b762343d53e48f70acfa6d0': {
ty: '0',
p: 't',
c1: '1',
c2: '1',
r: '0',
f: '0',
hs: 't',
},
'180121ecb4aabc7Mdaa945b355e15c254': {
ty: '0',
p: 't',
c1: '1',
c2: '1',
r: '1',
f: '0',
},
'4fb119f6db26380abba03e4ce3ca04c8': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
rightswitch: '1',
},
'0b7635d0f39ff97d1e841888e1b23b7b': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0M',
f: '0',
rightswitch: '1',
},
'368c3bfa91cf2bb8413967eb0c392c6c': {
ty: '0',
p: 't',
c1: '1',
c2: '1',
r: '0',
f: '0',
p4: 'f',
xm: 'f',
hs: 't',
},
'5013b69cb05b21a1194ce48517df7bfc': {
ty: '0',
p: 't',
c1: '1',
c2: '1',
r: '0',
f: '0',
p4: 'f',
xm:M 'f',
hs: 't',
},
'6f80cac59023a69afa26182eabbdfbad': {
ty: '0',
p: 't',
c1: '1',
c2: '1',
r: '0',
f: '0',
hs: 't',
},
b1685dcbaf1b578cb1b6643666d813e4: {
ty: '0',
p: 't',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
'4748a62d5c628fefd28df5de5567edec': {
ty: '0',
p: 'f',
M c1: '1',
c2: '1',
r: '0',
f: '0',
rightswitch: '1',
},
'1d7d65997d7cd0858e9bee71ded272aa': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
rightswitch: '1',
},
'791e55db03903988280388573a2fcdc1': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
riMghtswitch: '1',
hs: 't',
},
d0bf3b841ad4bbd356e9588874749a13: {
ty: '0',
p: 't',
c1: '1',
c2: '1',
r: '0',
f: '0',
p4: 't',
xm: 'f',
},
'1482beef7dbdb122f6bb4b03640888f2': {
ty: '0',
p: 't',
c1: '1',
c2: '1',
r: '1',
f: '0',
p4: 't',
xm: 'f',
},
e84976a352M9915ac91b964fab03aedb2: {
ty: '1',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '1',
p4: 'f',
xm: 't',
hs: 't',
},
'08055591f95a54a34dd90d90ae5dec24': {
ty: '1',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '1',
p4: 'f',
xm: 't',
hs: 't',
},
'9fac7d0433dc3d936efce5c713488b08': {
M ty: '1',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '1',
p4: 'f',
xm: 't',
hs: 't',
},
f3f4482b3551667a52d9b657e15cd2bf: {
ty: '1',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '1',
p4: 'f',
xm: 't',
hs: 't',
},
'044657294450c869c45e7ef61f4870de': {
ty: '1',
M p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '1',
p4: 'f',
xm: 't',
hs: 't',
},
d00e6962a2f9869b16cb46c8eb6126fc: {
ty: '1',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '1',
p4: 't',
xm: 't',
hs: 't',
},
c0fcce51fa95f4e1d69e1ca6aa2ce5a8: {
ty: '1',
p: 'f',
c1: 'M1',
c2: '1',
r: '0',
f: '1',
p4: 't',
xm: 't',
hs: 't',
},
'1e52e73d5862a7247ba0f93eff5b0370': {
ty: '1',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '1',
p4: 't',
xm: 't',
hs: 't',
},
bef783d15a103b51db03a866d7a0b273: {
ty: '1',
p: 'f',
c1: '1',
c2: '1',
M r: '0',
f: '1',
p4: 't',
xm: 't',
hs: 't',
},
'61c5f654b340379f69ada4bc4cc2d5d0': {
ty: '1',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '1',
p4: 't',
xm: 't',
hs: 't',
},
'6335d94cf614f38a5cd85c4219eb24f1': {
ty: '1',
p: 'f',
c1: '1',
c2: '1',
r: '0',
M f: '1',
p4: 't',
xm: 't',
hs: 't',
},
'39dc7f6f39f9b3e341a5ffea76e71fb1': {
ty: '1',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '1',
p4: 'f',
xm: 't',
hs: 't',
},
'8cb66c6ed5b379181b1420d8e4758834': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
duaMlanalog: 't',
},
c1ac9987a9483e200c338ccbd2ee94b5: {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
dualanalog: 't',
},
b5c9f0bf5b5763a923b7f370376b1849: {
ty: '4',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
b55e4d255173e5b2c2e620f3186a1ecc: {
ty: '0',
p: 'f',
cM1: '1',
c2: '1',
r: '0',
f: '0',
rightswitch: '1',
},
'26897ab47b8c5d3b57d3cc235d7635d8': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
rightswitch: '1',
},
'2b1f78aaa2b8de5dae3ee4b93ab678f4': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
rightswitchM: '1',
},
a3a4dbd27c80eff9bef51f73cd26f1d5: {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
rightswitch: '1',
},
'43a0059ff1b5bf76e0c7023fde7c33a5': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
rightswitch: '1',
},
a8e752d108efceff504ae4edc4766b75: {
ty: '0',
M p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
rightswitch: '1',
},
'04c985ebbd0bea4c557207e69b8cbd8f': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
rightswitch: '1',
},
bc1f56d7cc14f15ddfcba5e21e19937b: {
ty: '2',
p: 't',
c1: '1',
c2: '1',
r: '0',
f: '0',M
leftswitch: '0',
rightswitch: '1',
},
'8e0c5fc77b27422a39d86ac2e57dc73d': {
ty: '0',
p: 't',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
f9fa5107ed213e709858d8876359309e: {
ty: '0',
p: 't',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
'2370f7ce1b91fc775bce3e72454f908a': {
ty: '0',
Mp: 't',
c1: '1',
c2: '1',
r: '0',
f: '0',
p4: 't',
},
b4f137e85588ce42d302102ba7215437: {
ty: '0',
p: 't',
c1: '1',
c2: '1',
r: '0',
f: '0',
p4: 't',
},
e1b01dd7e842d2b682ef48f689d5a4eb: {
ty: '4',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
'M43525a0405184875c2ecfd0196886a34': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
xm: 'f',
hs: 't',
},
'803743fe18600f292456539906464421': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
xm: 'f',
hs: 't',
},
'106b409c6f4c219b1a3b3d099ead3b2b': {
ty: '0',
M p: 'f',
c1: '1',
c2: '1',
r: '1',
f: '0',
xm: 'f',
},
'03daa19b7aae2d27e61f2a4dbe3b9b79': {
ty: '0',
p: 't',
c1: '1',
c2: '1',
r: '1',
f: '0',
},
'03935b9a1f2561bada58fcd5d9fd27de': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
dualanalog: 't',
M},
d27ed8f883af9b4ee3b5570f30e9ff71: {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
dualanalog: 't',
},
'01c7bc3cd8375e353c8aa837fe1262ec': {
ty: '4',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
a3a85e507d6f718972b1464ce1aaf8a4: {
ty: '0',
p: 'f',
c1: '1',
c2M: '1',
r: '0',
f: '0',
xm: 'f',
hs: 't',
},
'31b20a4710e691300bb4aa62cf02284c': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
xm: 'f',
hs: 't',
},
'32f1a1b5a7e3b4493c3b7b637aeea7d8': {
ty: '4',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
M '6e27f73bd4a49b647bcd58bc5f8b739d': {
ty: '4',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
'0070751edb8bbf4dd4a685f58b5b72c5': {
ty: '4',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
'9bd70c06d3386f76f8162881699a777a': {
ty: '3',
p: 't',
c1: '1',
c2: '1',
r: '0',
M f: '0',
p4: 't',
hs: 'f',
},
'95c8a795e30640c9ec82609872c80517': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
rightswitch: '1',
},
'1c8139c584e1cf5c6afdd2f3455a2446': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '1',
f: '0',
},
ca1c27b53fcfb9fed83bc9e92920707c: {
M ty: '4',
p: 'f',
c1: '0',
c2: '0',
r: '0',
f: '0',
},
'771cb4609347657f63e6f0eb26036e35': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
hs: 't',
},
a84c1b2300fbfbf21b1c02387f613dad: {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '1',
f: '0',
},
M '6adf79558a3d7f5beca1bb8d34337417': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
hs: 't',
},
'783d09ad9542b0bb28aa4cc6ffcf8aa6': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
hs: 't',
},
'0f4bd5800359a62a5874b93dc92a47f1': {
ty: '2',
p: 'f',
c1: '1',
M c2: '1',
r: '0',
f: '0',
},
'02508e6df5e173b4063a7e6e63295817': {
ty: '0',
p: 't',
c1: '1',
c2: '1',
r: '0',
f: '0',
p4: 't',
xm: 'f',
hs: 't',
},
'81cee326b99d6831de10a566e338bd25': {
ty: '0',
p: 't',
c1: '1',
c2: '1',
r: '0',
f: '0',
hs: 't',
},
M '1c9b0bb028e63f83a2d1c1def675acc9': {
ty: '0',
p: 't',
c1: '1',
c2: '1',
r: '1',
f: '0',
xm: 'f',
},
f4ad1a1d732c2c8cdbd21dabaf38a46c: {
ty: '0',
p: 't',
c1: '1',
c2: '1',
r: '1',
f: '0',
p4: 'f',
xm: 'f',
hs: 'f',
},
f41f651417c234104d37296477fa29eb: {
ty: '0',
M p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
p4: 'f',
xm: 'f',
hs: 't',
},
'7ab539bb0e99e1e5a1c89230bde64610': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
p4: 'f',
xm: 'f',
hs: 't',
},
'88b9de0eba37ba516590fa8b860155f0': {
ty: '0',
p: 'f',
M c1: '1',
c2: '1',
r: '0',
f: '0',
p4: 'f',
xm: 'f',
hs: 't',
},
'61aa4a074ad08c524fbee88d15e369ea': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '1',
f: '0',
p4: 'f',
xm: 'f',
hs: 'f',
},
'3632fcc732a33591b91f0eea2c01e599': {
ty: '4',
p: 'f',
c1: '1',
c2:M '1',
r: '0',
f: '0',
p4: 'f',
xm: 'f',
hs: 'f',
},
d0b87d349d6d5e40920cc4ff95253339: {
ty: '4',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
p4: 'f',
xm: 'f',
hs: 'f',
},
'9cb3848416e39ebf642357dbee3e5970': {
ty: '3',
p: 'f',
c1: '1',
c2: '0',
r: '0',
M f: '0',
p4: 'f',
xm: 'f',
hs: 'f',
},
b1ec7bd809ab3deb746c5a5eb2efaecb: {
ty: '0',
p: 't',
c1: '1',
c2: '1',
r: '0',
f: '0',
p4: 'f',
xm: 'f',
hs: 'f',
},
'43f8e9cec3d9991017709f48a7aa22f6': {
ty: '0',
p: 't',
c1: '1',
c2: '1',
r: '0',
f: '0',
M p4: 'f',
xm: 'f',
hs: 'f',
},
f85d506f5933427c8de664be0c5510a3: {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
p4: 'f',
xm: 'f',
hs: 't',
},
f83849cf3f5ac95856e8f93ee90d5a8d: {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
p4: 'f',
xm: 'f'M,
hs: 'f',
rightswitch: '1',
},
c62632545c91823f72f6f14b19766804: {
ty: '0',
p: 't',
c1: '1',
c2: '1',
r: '0',
f: '0',
p4: 'f',
xm: 'f',
hs: 'f',
},
'40913dcf24a623c1dc2495a1c4931b48': {
ty: '4',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
p4: 'f',
xm: 'Mf',
hs: 'f',
},
'8b49549763f4f0e42a23942b8df6b248': {
ty: '4',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
p4: 'f',
xm: 'f',
hs: 'f',
},
'7db031f1c4dc957719812fe68ee42531': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '1',
f: '0',
p4: 'f',
xm: 'f',
hs: 'f',
M },
'5837c4ac8b481fb98381adfd2fe87969': {
ty: '0',
p: 't',
c1: '1',
c2: '1',
r: '0',
f: '0',
p4: 'f',
xm: 'f',
hs: 'f',
},
'05b04e9822a75ceeeaa2eb106ffe768e': {
ty: '4',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
p4: 'f',
xm: 'f',
hs: 'f',
},
'727Mb6d447e21af42b3767f9c2cff6012': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
p4: 'f',
xm: 'f',
hs: 't',
},
c3107d3e3e17d67e3a11d47a5946a4f3: {
ty: '2',
p: 't',
c1: '1',
c2: '1',
r: '0',
f: '0',
p4: 'f',
xm: 'f',
hs: 't',
},
'8caa29a8d9214ca02697b3357102309Ma': {
ty: '2',
p: 't',
c1: '1',
c2: '1',
r: '1',
f: '0',
p4: 'f',
xm: 'f',
hs: 'f',
},
b3143adbbb7d7d189e918e5b29d55a72: {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
p4: 'f',
xm: 'f',
hs: 't',
},
e547492ebd342e57c28bb235546da299: {
ty: '0',
M p: 'f',
c1: '1',
c2: '1',
r: '1',
f: '0',
p4: 'f',
xm: 'f',
hs: 'f',
},
'89b8b3df46733e0c4d57aeb9bb245e6f': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
p4: 'f',
xm: 'f',
hs: 't',
},
eea04359df6770d66b0d97c2cea1932f: {
ty: '0',
p: 'f',
M c1: '1',
c2: '1',
r: '0',
f: '0',
p4: 'f',
xm: 'f',
hs: 't',
},
'7cdfbe37634e7dcd4dc67db7edbcd3ba': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
p4: 'f',
xm: 'f',
hs: 'f',
},
'1ae0b27d47f19d59652168fad3966375': {
ty: '0',
p: 't',
c1: '1',
c2: M'1',
r: '1',
f: '0',
p4: 'f',
xm: 'f',
hs: 'f',
},
'35433868dfe383ae21fd77507e5a478d': {
ty: '0',
p: 't',
c1: '1',
c2: '1',
r: '0',
f: '0',
p4: 't',
xm: 'f',
hs: 'f',
},
'59f1c1e7f6653a4e66ea898ce6eab50f': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
M f: '0',
p4: 'f',
xm: 'f',
hs: 't',
},
c2b42639718d005a6d0aefa0809f77db: {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '1',
f: '0',
p4: 'f',
xm: 'f',
hs: 'f',
},
'80ffad3edb50f0970e780a727a4524dd': {
ty: '0',
p: 't',
c1: '1',
c2: '1',
r: '0',
f: '0',
M p4: 'f',
xm: 'f',
hs: 't',
},
d9a110d889c4d42089c61fade25af220: {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
p4: 'f',
xm: 'f',
hs: 't',
},
'79df20ee86a989e669158bcb9d113e8a': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
p4: 'f',
xm: M'f',
hs: 't',
},
f982c7dbf74c9c049cf7f875a46ed818: {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
p4: 'f',
xm: 'f',
hs: 't',
},
ff8d8283553af5d5dbdaddb5781b4896: {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
p4: 'f',
xm: 'f',
hs: 't',
M },
a466a699324d11e1a2594cc89a9f18e1: {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
p4: 'f',
xm: 't',
hs: 'f',
leftswitch: '0',
},
'0c097bc8c786af182935081ac5cd631f': {
ty: '0',
p: 't',
c1: '1',
c2: '1',
r: '0',
f: '0',
p4: 'f',
xm: 't',
hs: 't',
M },
a662862f20362fc5eb5c651065cbd51c: {
ty: '3',
p: 't',
c1: '1',
c2: '1',
r: '0',
f: '0',
p4: 'f',
xm: 't',
hs: 'f',
dualanalog: 't',
},
};
var bu = Xf;
gu.prototype = {
createElement: function () {
this.el = this.doCreateElement();
var t = this.getClass();
if (t) {
this.el.className = t;M
}
return this.el;
},
getClass: function () {
return null;
},
getElement: function () {
return this.el;
},
doCreateElement: function () {
return null;
},
};
yu.prototype = Object.create(gu.prototype);
bu(yu.prototype, {
getClass: function () {
return 'js7800__controls-button';
},
doCreateElement: function () {
Mvar t = document.createElement('button');
var e = this;
t.onclick = function (t) {
e.onClick(t);
};
t.onmousedown = function (t) {
e.onDown(t);
};
t.onmouseup = function (t) {
e.onUp(t);
};
var n = document.createTextNode(this.text);
t.appendChild(n);
if (this.title) {
t.setAttribute('title', this.title);
}
return t;
M },
onClick: function (t) {},
onDown: function (t) {},
onUp: function (t) {},
});
wu.prototype = Object.create(gu.prototype);
bu(wu.prototype, {
getClass: function () {
return 'js7800__controls-switch';
},
doCreateElement: function () {
var t = document.createElement('label');
t.setAttribute('title', this.title);
var e = document.createElement('input');
this.cb = e;M
e.setAttribute('type', 'checkbox');
var n = this;
e.onclick = function (t) {
n.onClick(t);
};
t.appendChild(e);
var r = document.createElement('span');
r.className = this.getClass() + '-slider';
t.appendChild(r);
return t;
},
setValue(t) {
this.cb.checked = t;
},
getValue() {
return this.cb.checked;
},
onClick: Mfunction (t) {},
});
var mu =
'data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4NCjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+DQo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHZlcnNpb249IjEuMSIgIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij4NCiAgIDxwYXRoIGZpbGw9IiNGRkZGRkYiIGQ9Ik0xNS45LDE4LjQ1QzE3LjI1LMDE4LjQ1IDE4LjM1LDE3LjM1IDE4LjM1LDE2QzE4LjM1LDE0LjY1IDE3LjI1LDEzLjU1IDE1LjksMTMuNTVDMTQuNTQsMTMuNTUgMTMuNDUsMTQuNjUgMTMuNDUsMTZDMTMuNDUsMTcuMzUgMTQuNTQsMTguNDUgMTUuOSwxOC40NU0yMS4xLDE2LjY4TDIyLjU4LDE3Ljg0QzIyLjcxLDE3Ljk1IDIyLjc1LDE4LjEzIDIyLjY2LDE4LjI5TDIxLjI2LDIwLjcxQzIxLjE3LDIwLjg2IDIxLDIwLjkyIDIwLjgzLDIwLjg2TDE5LjA5LDIwLjE2QzE4LjczLDIwLjQ0IDE4LjMzLDIwLjY3IDE3LjkxLDIwLjg1TDE3LjY0LDIyLjdDMTcuNjIsMjIuODcgMTcuNDcsMjMgMTcuMywyM0gxNC41QzE0LjMyLDIzIDE0LjE4LDIyLjg3IDE0LjE1LDIyLjdMMTMuODksMjAuODVDMTMuNDYsMjAuNjcgMTMuMDcsMMjAuNDQgMTIuNzEsMjAuMTZMMTAuOTYsMjAuODZDMTAuODEsMjAuOTIgMTAuNjIsMjAuODYgMTAuNTQsMjAuNzFMOS4xNCwxOC4yOUM5LjA1LDE4LjEzIDkuMDksMTcuOTUgOS4yMiwxNy44NEwxMC43LDE2LjY4TDEwLjY1LDE2TDEwLjcsMTUuMzFMOS4yMiwxNC4xNkM5LjA5LDE0LjA1IDkuMDUsMTMuODYgOS4xNCwxMy43MUwxMC41NCwxMS4yOUMxMC42MiwxMS4xMyAxMC44MSwxMS4wNyAxMC45NiwxMS4xM0wxMi43MSwxMS44NEMxMy4wNywxMS41NiAxMy40NiwxMS4zMiAxMy44OSwxMS4xNUwxNC4xNSw5LjI5QzE0LjE4LDkuMTMgMTQuMzIsOSAxNC41LDlIMTcuM0MxNy40Nyw5IDE3LjYyLDkuMTMgMTcuNjQsOS4yOUwxNy45MSwxMS4xNUMxOC4zMywxMS4zMiAxOC43MywxMS41NiAxOMS4wOSwxMS44NEwyMC44MywxMS4xM0MyMSwxMS4wNyAyMS4xNywxMS4xMyAyMS4yNiwxMS4yOUwyMi42NiwxMy43MUMyMi43NSwxMy44NiAyMi43MSwxNC4wNSAyMi41OCwxNC4xNkwyMS4xLDE1LjMxTDIxLjE1LDE2TDIxLjEsMTYuNjhNNi42OSw4LjA3QzcuNTYsOC4wNyA4LjI2LDcuMzcgOC4yNiw2LjVDOC4yNiw1LjYzIDcuNTYsNC45MiA2LjY5LDQuOTJBMS41OCwxLjU4IDAgMCwwIDUuMTEsNi41QzUuMTEsNy4zNyA1LjgyLDguMDcgNi42OSw4LjA3TTEwLjAzLDYuOTRMMTEsNy42OEMxMS4wNyw3Ljc1IDExLjA5LDcuODcgMTEuMDMsNy45N0wxMC4xMyw5LjUzQzEwLjA4LDkuNjMgOS45Niw5LjY3IDkuODYsOS42M0w4Ljc0LDkuMThMOCw5LjYyTDcuODEsMTAuODFDNy43OSwxMC45MMiA3LjcsMTEgNy41OSwxMUg1Ljc5QzUuNjcsMTEgNS41OCwxMC45MiA1LjU2LDEwLjgxTDUuNCw5LjYyTDQuNjQsOS4xOEwzLjUsOS42M0MzLjQxLDkuNjcgMy4zLDkuNjMgMy4yNCw5LjUzTDIuMzQsNy45N0MyLjI4LDcuODcgMi4zMSw3Ljc1IDIuMzksNy42OEwzLjM0LDYuOTRMMy4zMSw2LjVMMy4zNCw2LjA2TDIuMzksNS4zMkMyLjMxLDUuMjUgMi4yOCw1LjEzIDIuMzQsNS4wM0wzLjI0LDMuNDdDMy4zLDMuMzcgMy40MSwzLjMzIDMuNSwzLjM3TDQuNjMsMy44Mkw1LjQsMy4zOEw1LjU2LDIuMTlDNS41OCwyLjA4IDUuNjcsMiA1Ljc5LDJINy41OUM3LjcsMiA3Ljc5LDIuMDggNy44MSwyLjE5TDgsMy4zOEw4Ljc0LDMuODJMOS44NiwzLjM3QzkuOTYsMy4zMyAxMC4wOCwzLjM3IDEwLMjEzLDMuNDdMMTEuMDMsNS4wM0MxMS4wOSw1LjEzIDExLjA3LDUuMjUgMTEsNS4zMkwxMC4wMyw2LjA2TDEwLjA2LDYuNUwxMC4wMyw2Ljk0WiIgLz4NCjwvc3ZnPg==';
var Mu =
'data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4NCjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+DQo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHZlcnNpb249IjEuMSIgIHdpZHRoPSIyNCIgaGVpMZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij4NCiAgIDxwYXRoIGZpbGw9IiNmZmZmZmYiIGQ9Ik0xMSw5SDEzVjdIMTFNMTIsMjBDNy41OSwyMCA0LDE2LjQxIDQsMTJDNCw3LjU5IDcuNTksNCAxMiw0QzE2LjQxLDQgMjAsNy41OSAyMCwxMkMyMCwxNi40MSAxNi40MSwyMCAxMiwyME0xMiwyQTEwLDEwIDAgMCwwIDIsMTJBMTAsMTAgMCAwLDAgMTIsMjJBMTAsMTAgMCAwLDAgMjIsMTJBMTAsMTAgMCAwLDAgMTIsMk0xMSwxN0gxM1YxMUgxMVYxN1oiIC8+DQo8L3N2Zz4=';
var vu =
'data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4NCjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcMgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+DQo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHZlcnNpb249IjEuMSIgIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij4NCiAgIDxwYXRoIGZpbGw9IiNmZmZmZmYiIGQ9Ik0yMCwySDRWNEw5LjgxLDguMzZDNi4xNCw5LjU3IDQuMTQsMTMuNTMgNS4zNSwxNy4yQzYuNTYsMjAuODcgMTAuNSwyMi44NyAxNC4xOSwyMS42NkMxNy44NiwyMC40NSAxOS44NiwxNi41IDE4LjY1LDEyLjgyQzE3Ljk1LDEwLjcxIDE2LjMsOS4wNSAxNC4xOSw4LjM2TDIwLDRMWMk0xNC45NCwxOS41TDEyLDE3Ljc4TDkuMDYsMTkuNUw5Ljg0LDE2LjE3TDcuMjUsMTMuOTNMMTAuNjYsMTMuNjRMMTIsMTAuNUwxMy4zNCwxMy42NEwxNi43NSwxMy45M0wxNC4xNiwxNi4xN0wxNC45NCwxOS41WiIgLz4NCjwvc3ZnPg==';
var Lu = Xf;
var Iu = gu;
var Cu = yu;
var Eu = wu;
Su.prototype = Object.create(Iu.prototype);
Lu(Su.prototype, {
getClass: function () {
return 'js7800__controls-group';
},
doCreateElement: function () {
var t = document.createElemeMnt('div');
for (var e = 0; e < this.children.length; e++) {
t.appendChild(this.children[e].createElement());
}
return t;
},
addChild: function (t) {
this.children.push(t);
},
addChildAtIndex: function (t, e) {
this.children.splice(t, 0, e);
},
});
xu.prototype = Object.create(Su.prototype);
Lu(xu.prototype, {
getClass: function () {
return 'js7800_M_controls-group-start';
},
});
Du.prototype = Object.create(Su.prototype);
Lu(Du.prototype, {
getClass: function () {
return 'js7800__controls-group-end';
},
});
Nu.prototype = Object.create(Iu.prototype);
Lu(Nu.prototype, {
getClass: function () {
return 'js7800__controls-img-button';
},
doCreateElement: function () {
var t = this;
var e = document.createElemenMt('a');
this.anchor = e;
e.setAttribute('draggable', 'false');
e.setAttribute('role', 'button');
e.setAttribute('tabindex', '0');
e.onkeydown = function (e) {
var n = e.which;
if (n === 13 || n === 32) {
t.onClick(e);
}
};
e.onmousedown = function (t) {
t.preventDefault();
};
e.onclick = function (e) {
t.onClick(e);
M };
var n = document.createElement('img');
this.img = n;
n.setAttribute('draggable', 'false');
n.setAttribute('src', this.imageSrc);
n.setAttribute('title', this.title);
e.appendChild(n);
return e;
},
onClick(t) {},
});
_u.prototype = Object.create(Nu.prototype);
Lu(_u.prototype, {
doCreateElement: function () {
var t = Nu.prototype.doCreateElement.call(this);
M var e = this;
this.anchor.onclick = function (t) {
e.setValue(!e.value);
e.onClick(t);
};
return t;
},
setValue: function (t) {
this.value = t;
this.img.src = this.value ? this.onImageSrc : this.imageSrc;
this.img.title = this.value ? this.onTitle : this.title;
},
getValue: function () {
return this.value;
},
});
var Tu = new xu();
M var ku = new _u(
'Pause',
'data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4NCjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+DQo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHZlcnNpb249IjEuMSIgIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij4NCiAgIDxwYXRoIGZpbGw9IiNGRkZGRkYiIGQ9Ik0xNCwxOUgxOFY1SDE0TTYsMTlMIMTBWNUg2VjE5WiIgLz4NCjwvc3ZnPg==',
'Resume',
'data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4NCjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+DQo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHZlcnNpb249IjEuMSIgIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij4NCiAgIDxwYXRoIGZpbGw9IiNmZmZmZmYiIGQ9Ik04LDUuMTRWMTkMuMTRMMTksMTIuMTRMOCw1LjE0WiIgLz4NCjwvc3ZnPg=='
);
ku.onClick = function () {
zo(this.getValue());
};
Tu.addChild(ku);
var Bu = new _u(
'Sound Off',
'data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4NCjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+DQo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMMub3JnLzE5OTkveGxpbmsiIHZlcnNpb249IjEuMSIgIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij4NCiAgIDxwYXRoIGZpbGw9IiNGRkZGRkYiIGQ9Ik0xNCwzLjIzVjUuMjlDMTYuODksNi4xNSAxOSw4LjgzIDE5LDEyQzE5LDE1LjE3IDE2Ljg5LDE3Ljg0IDE0LDE4LjdWMjAuNzdDMTgsMTkuODYgMjEsMTYuMjggMjEsMTJDMjEsNy43MiAxOCw0LjE0IDE0LDMuMjNNMTYuNSwxMkMxNi41LDEwLjIzIDE1LjUsOC43MSAxNCw3Ljk3VjE2QzE1LjUsMTUuMjkgMTYuNSwxMy43NiAxNi41LDEyTTMsOVYxNUg3TDEyLDIwVjRMNyw5SDNaIiAvPg0KPC9zdmc+',
'Sound On',
'data:image/svg+xml;base64,PD94bWwgdmVyc2lvbMj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4NCjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+DQo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHZlcnNpb249IjEuMSIgIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij4NCiAgIDxwYXRoIGZpbGw9IiNmZmZmZmYiIGQ9Ik0xMiw0TDkuOTEsNi4wOUwxMiw4LjE4TTQuMjcsM0wzLDQuMjdMNy43Myw5SDNWMTVIN0wxMiwyMFYxMy4yN0wxNi4yNSwxNy41M0MxNS41OCwxOC4wNCAxNC44MMywxOC40NiAxNCwxOC43VjIwLjc3QzE1LjM4LDIwLjQ1IDE2LjYzLDE5LjgyIDE3LjY4LDE4Ljk2TDE5LjczLDIxTDIxLDE5LjczTDEyLDEwLjczTTE5LDEyQzE5LDEyLjk0IDE4LjgsMTMuODIgMTguNDYsMTQuNjRMMTkuOTcsMTYuMTVDMjAuNjIsMTQuOTEgMjEsMTMuNSAyMSwxMkMyMSw3LjcyIDE4LDQuMTQgMTQsMy4yM1Y1LjI5QzE2Ljg5LDYuMTUgMTksOC44MyAxOSwxMk0xNi41LDEyQzE2LjUsMTAuMjMgMTUuNSw4LjcxIDE0LDcuOTdWMTAuMThMMTYuNDUsMTIuNjNDMTYuNSwxMi40MyAxNi41LDEyLjIxIDE2LjUsMTJaIiAvPg0KPC9zdmc+'
);
Bu.onClick = function () {
var t = this.getValue();
wa = t;
M };
Tu.addChild(Bu);
var ju = new Nu(
'Restart',
'data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4NCjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+DQo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHZlcnNpb249IjEuMSIgIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij4NCiAgIDxwYXRoIGZpbGw9IiNGRkZGRMkYiIGQ9Ik0xMiw0QzE0LjEsNCAxNi4xLDQuOCAxNy42LDYuM0MyMC43LDkuNCAyMC43LDE0LjUgMTcuNiwxNy42QzE1LjgsMTkuNSAxMy4zLDIwLjIgMTAuOSwxOS45TDExLjQsMTcuOUMxMy4xLDE4LjEgMTQuOSwxNy41IDE2LjIsMTYuMkMxOC41LDEzLjkgMTguNSwxMC4xIDE2LjIsNy43QzE1LjEsNi42IDEzLjUsNiAxMiw2VjEwLjZMNyw1LjZMMTIsMC42VjRNNi4zLDE3LjZDMy43LDE1IDMuMywxMSA1LjEsNy45TDYuNiw5LjRDNS41LDExLjYgNS45LDE0LjQgNy44LDE2LjJDOC4zLDE2LjcgOC45LDE3LjEgOS42LDE3LjRMOSwxOS40QzgsMTkgNy4xLDE4LjQgNi4zLDE3LjZaIiAvPg0KPC9zdmc+'
);
ju.onClick = function () {
Pt('resMtart');
};
Tu.addChild(ju);
var Ru = new Su();
var Pu = new Cu('SELECT', 'Select');
Pu.onDown = function () {
Au(true);
};
Pu.onUp = function () {
Au(false);
};
Ru.addChild(Pu);
var Ou = new Cu('RESET', 'Reset');
Ou.onDown = function () {
hu(true);
};
Ou.onUp = function () {
hu(false);
};
Ru.addChild(Ou);
var Fu = new Eu('Left difficulty switch');
M Fu.onClick = function () {
Tf(!this.getValue());
};
Ru.addChild(Fu);
var Gu = new Eu('Right difficulty switch');
Gu.onClick = function () {
kf(!this.getValue());
};
Ru.addChild(Gu);
var zu = new Du();
var Wu = new Nu('Leaderboard', vu);
Wu.onClick = function () {
Pt('showError', 'Not implemented.');
};
zu.addChild(Wu);
var Uu = new Nu('Help / Info', Mu);
Uu.onClick = function (M) {
Pt('showError', 'Not implemented.');
};
zu.addChild(Uu);
var Zu = new Nu('Settings', mu);
Zu.onClick = function () {
Pt('showError', 'Not implemented.');
};
zu.addChild(Zu);
var Qu = new _u(
'Fullscreen',
'data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4NCjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+DQo8Mc3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHZlcnNpb249IjEuMSIgIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij4NCiAgIDxwYXRoIGZpbGw9IiNGRkZGRkYiIGQ9Ik01LDVIMTBWN0g3VjEwSDVWNU0xNCw1SDE5VjEwSDE3VjdIMTRWNU0xNywxNEgxOVYxOUgxNFYxN0gxN1YxNE0xMCwxN1YxOUg1VjE0SDdWMTdIMTBaIiAvPg0KPC9zdmc+',
'Exit Fullscreen',
'data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4NCjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RMURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+DQo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHZlcnNpb249IjEuMSIgIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij4NCiAgIDxwYXRoIGZpbGw9IiNGRkZGRkYiIGQ9Ik0xNCwxNEgxOVYxNkgxNlYxOUgxNFYxNE01LDE0SDEwVjE5SDhWMTZINVYxNE04LDVIMTBWMTBINVY4SDhWNU0xOSw4VjEwSDE0VjVIMTZWOEgxOVoiIC8+DQo8L3N2Zz4='
);
Qu.onClick = function () {
if (Ys()) {
M Vs();
} else {
Hs();
}
};
zu.addChild(Qu);
Rt(
new jt('init', function () {
var t = document.getElementById('js7800__controls');
var e = document.createElement('div');
e.className = 'js7800__controls-container';
t.appendChild(e);
e.appendChild(Tu.createElement());
e.appendChild(Ru.createElement());
e.appendChild(zu.createElement());
Rt(
M new jt('fullscreen', function (t) {
Qu.setValue(t);
})
);
})
);
Rt(
new jt('onCartridgeLoaded', function () {
ku.setValue(false);
})
);
Rt(
new jt('onLeftDiffChanged', function (t) {
Fu.setValue(!t);
})
);
Rt(
new jt('onRightDiffChanged', function (t) {
Gu.setValue(!t);
})
);
n(0);
n(1);
M Vu.prototype = {
getRom: function () {
return null;
},
write: function (t, e) {},
loadSram: function (t) {
t(null);
},
};
var Ju = function (t) {
var e = Lo() && (96 & mo[60]) != 64;
Ao(t);
Po = 0;
Oo = 0;
Fo = 0;
Go = 0;
if (To || ko) {
uo();
}
for (_o = 1; _o <= Do; _o++) {
if (_o == go.top) {
moM[40] = 0;
} else if (_o == go.bottom) {
mo[40] = 128;
}
var n = false;
var r = 0;
No %= Io;
for (e && Ro(); No < 28; ) {
r = Mo() << 2;
No += r;
if (e) {
Ro();
}
if (Ci()) {
No += 2;
if (e) {
Ro();
}
}
if (po()) {
bo(r >>> 2);
M }
if (mo[36]) {
Oo++;
mo[36] = 0;
n = true;
break;
}
}
Tt(true);
if ((r = ((yo(_o) + 3) >>> 2) << 2) > 428) {
n = true;
}
Tt(false);
No += r;
Fo += r;
if (po()) {
bo(r >>> 2);
}
for (
wo() &&
(!n &&
No < Io &&
((r = MMo() << 2),
po() && bo(r >>> 2),
(No += r),
mo[36] && (Oo++, (mo[36] = 0), (n = true))),
vo());
!n && No < Io;
) {
r = Mo() << 2;
No += r;
if (e) {
Ro();
}
if (Ci()) {
No += 2;
if (e) {
Ro();
}
}
if (po()) {
bo(r >>> 2);
}M
if (mo[36]) {
Oo++;
mo[36] = 0;
n = true;
break;
}
}
if (n && No < Io) {
if (po()) {
bo((Io - No) >>> 2);
}
No = Io;
}
Go += No;
if (e) {
Ro();
}
fo(2);
if (To || ko) {
lo(2);
}
if (To || ko) {
ho();
M }
}
if (++xo >= So) {
xo = 0;
}
};
var Xu = function () {
var t;
var e;
var n;
var r = ya || da();
var c = la();
var i = ha();
var a = (function () {
var t = ga;
var e = i;
var n = pa;
var r = (t / n) | 0;
var c = t % n | 0;
if (c != 0 && c >= e) {
r++;
}
return r;
}M)();
(function (t, e, n, r) {
var c = ga;
var i = 0;
var a = 0;
for (var o = (pa * ba) << 1; a < r; ) {
if (c >= o) {
n[a++] = t[i] + (e ? e[i] : 0);
c -= o;
} else {
i++;
c += ga;
}
}
})(fa, r ? oa : null, ma, a);
ua();
sa();
if (c) {
t = Ma;
e = a;
n = 0;
M ct.mixStereo(t, e, n);
ct.Count(e);
}
if (!wa) {
Aa(ma, c ? Ma : null, a);
}
return true;
};
var qu = function () {
var t = null;
if (cu()) {
if (du) {
du = false;
uu[3] = true;
} else {
uu[3] = !iu();
}
} else {
nu();
t = ru(0);
lu(0, uu, t);
lu(1, uu, t);
}
uuM[12] = su || Rf() || (t && t.isReset());
uu[13] = fu || jf() || (t && t.isSelect());
uu[14] = Pf() || (t && t.isPause());
uu[15] = Of();
uu[16] = Ff();
};
var Ku = Es;
var $u = null;
var td = null;
var ed = null;
var nd = null;
var rd = null;
var cd = null;
var id = false;
var ad = null;
new Vu();
var od = false;
var sd = true;
var fd = 0;
var ud = 0;
M var dd = 0;
var ld = new Array(19);
var hd = false;
var Ad = false;
var yd;
var wd;
var md = null;
if (document.hidden === void 0) {
if (document.msHidden === void 0) {
if (document.webkitHidden !== void 0) {
yd = 'webkitHidden';
wd = 'webkitvisibilitychange';
}
} else {
yd = 'msHidden';
wd = 'msvisibilitychange';
}
} else {
yd = 'hiddeMn';
wd = 'visibilitychange';
}
document.addEventListener(
wd,
function () {
if (document[yd]) {
console.log('page is no longer visible.');
zo(true);
Ad = true;
} else {
console.log('page visible.');
if (!Yu()) {
zo(false);
}
}
},
false
);
var Bd = {
8: 'Back',
9: 'Tab',
1M3: 'Enter',
16: 'Shift',
17: 'Ctrl',
18: 'Alt',
19: 'Break',
27: 'Esc',
32: 'Space',
33: 'PUp',
34: 'PDown',
35: 'End',
36: 'Home',
37: 'Left',
38: 'Up',
39: 'Right',
40: 'Down',
45: 'Insert',
46: 'Delete',
48: '0',
49: '1',
50: '2',
51: '3',
52: '4',
53: '5',
54: '6',
55: '7',
M 56: '8',
57: '9',
65: 'A',
66: 'B',
67: 'C',
68: 'D',
69: 'E',
70: 'F',
71: 'G',
72: 'H',
73: 'I',
74: 'J',
75: 'K',
76: 'L',
77: 'M',
78: 'N',
79: 'O',
80: 'P',
81: 'Q',
82: 'R',
83: 'S',
84: 'T',
85: 'U',
86: 'V',
87: 'W',
88: 'X',
89: 'Y',
M 90: 'Z',
96: 'Num 0',
97: 'Num 1',
98: 'Num 2',
99: 'Num 3',
100: 'Num 4',
101: 'Num 5',
102: 'Num 6',
103: 'Num 7',
104: 'Num 8',
105: 'Num 9',
106: 'Num *',
107: 'Num +',
109: 'Num -',
110: 'Num .',
111: 'Num /',
112: 'F1',
113: 'F2',
114: 'F3',
115: 'F4',
116: 'F5',
117: 'F6',
118: 'F7',
M 119: 'F8',
120: 'F9',
121: 'F10',
122: 'F11',
123: 'F12',
144: 'NLock',
145: 'SLock',
186: ';',
187: '=',
188: ',',
189: '-',
190: '.',
191: '/',
192: '`',
219: '[',
220: '\\',
221: ']',
222: "'",
};
n.d(e, 'Main', function () {
return l;
});
n.d(e, 'Cartridge', function () {
return i;
M });
n.d(e, 'ControlsBar', function () {
return d;
});
n.d(e, 'Util', function () {
return f;
});
n.d(e, 'Events', function () {
return r;
});
n.d(e, 'Keyboard', function () {
return s;
});
n.d(e, 'Keys', function () {
return h;
});
n.d(e, 'Pads', function () {
return u;
});
n.d(e, 'Memory', function () {
return c;
});
n.d(e, 'VMideo', function () {
return o;
});
n.d(e, 'Region', function () {
return a;
});
n.d(e, 'ProSystem', function () {
return a;
});
n.d(e, 'md5', function () {
return an;
});
},
];
var e = {};
n.m = t;
n.c = e;
n.d = function (t, e, r) {
if (!n.o(t, e)) {
Object.defineProperty(t, e, { enumerable: true, get: r });
}
};
n.r = function (t) {
if (typeof Symbol != 'undefMined' && Symbol.toStringTag) {
Object.defineProperty(t, Symbol.toStringTag, { value: 'Module' });
}
Object.defineProperty(t, '__esModule', { value: true });
};
n.t = function (t, e) {
if (1 & e) {
t = n(t);
}
if (8 & e) {
return t;
}
if (4 & e && typeof t == 'object' && t && t.__esModule) {
return t;
}
var r = Object.create(null);
n.r(r);
Object.defineProperty(r, 'default', { enumerable: true, value: t });
M if (2 & e && typeof t != 'string') {
for (var c in t) {
n.d(
r,
c,
function (e) {
return t[e];
}.bind(null, c)
);
}
}
return r;
};
n.n = function (t) {
var e =
t && t.__esModule
? function () {
return t.default;
}
: function () {
return t;
};
n.d(e, 'a', e);
return e;
};
n.o = function (t, e) M�{
return Object.prototype.hasOwnProperty.call(t, e);
};
n.p = '';
return n((n.s = 5));
};
if (typeof exports == 'object' && typeof module == 'object') {
module.exports = e();
} else if (typeof define == 'function' && define.amd) {
define('js7800', [], e);
} else if (typeof exports == 'object') {
exports.js7800 = e();
} else {
t.js7800 = e();
}
})();
h eŢ/w6�l�
�
}��HM�ܙ+}���s� cordtext/javascript M(function () {
var t = window;
var e = function () {
function n(r) {
if (e[r]) {
return e[r].exports;
}
var c = (e[r] = { i: r, l: false, exports: {} });
t[r].call(c.exports, c, c.exports, n);
c.l = true;
return c.exports;
}
var t = [
function (t, e) {
function e(e, n) {
var r = t.createEvent('Event');
r.initEvent(e, true, false);
n.dispatchEvent(r);
}
function n(e) {
return function (n,M c) {
if (e !== a.exit || t[r.element]) {
t.addEventListener(
r.events.change,
function e() {
n();
t.removeEventListener(r.events.change, e, false);
},
false
);
t.addEventListener(
r.events.error,
function e() {
c(new TypeError());
t.removeEventListener(r.events.error, e, false);
}M,
false
);
return;
} else {
setTimeout(function () {
c(new TypeError());
}, 1);
return;
}
};
}
var t = document;
var r;
var c;
var i = {
w3: {
enabled: 'fullscreenEnabled',
element: 'fullscreenElement',
request: 'requestFullscreen',
exit: 'exitFullscreen',
events: { change:M 'fullscreenchange', error: 'fullscreenerror' },
},
webkit: {
enabled: 'webkitFullscreenEnabled',
element: 'webkitCurrentFullScreenElement',
request: 'webkitRequestFullscreen',
exit: 'webkitExitFullscreen',
events: {
change: 'webkitfullscreenchange',
error: 'webkitfullscreenerror',
},
},
moz: {
enabled: 'mozFullScreenEnabled',
element: 'mozFullScreenElemMent',
request: 'mozRequestFullScreen',
exit: 'mozCancelFullScreen',
events: {
change: 'mozfullscreenchange',
error: 'mozfullscreenerror',
},
},
ms: {
enabled: 'msFullscreenEnabled',
element: 'msFullscreenElement',
request: 'msRequestFullscreen',
exit: 'msExitFullscreen',
events: {
change: 'MSFullscreenChange',
error: 'MSFullscreenErroMr',
},
},
};
var a = i.w3;
for (c in i) {
if (i[c].enabled in t) {
r = i[c];
break;
}
}
if (!(a.enabled in t) && !!r) {
t.addEventListener(
r.events.change,
function (n) {
n.stopPropagation();
n.stopImmediatePropagation();
t[a.enabled] = t[r.enabled];
t[a.element] = t[r.element];
e(a.events.change, n.target);M
},
false
);
t.addEventListener(
r.events.error,
function (t) {
e(a.events.error, t.target);
},
false
);
t[a.enabled] = t[r.enabled];
t[a.element] = t[r.element];
t[a.exit] = function () {
var e = t[r.exit]();
if (!e && Promise) {
return new Promise(n(a.exit));
} else {
return e;
}
};
M Element.prototype[a.request] = function () {
var t = this[r.request].apply(this, arguments);
if (!t && Promise) {
return new Promise(n(a.request));
} else {
return t;
}
};
}
},
function (t, e, n) {
var r = n(2);
var c = n(3);
if (typeof (c = c.__esModule ? c.default : c) == 'string') {
c = [[t.i, c, '']];
}
var i = { insert: 'head', singleton: false };
M r(c, i);
var a = c.locals ? c.locals : {};
t.exports = a;
},
function (t, e, n) {
'use strict';
function o(t) {
var e = -1;
for (var n = 0; n < a.length; n++) {
if (a[n].identifier === t) {
e = n;
break;
}
}
return e;
}
function s(t, e) {
var n = {};
var r = [];
for (var c = 0; c < t.length; c++) {
var i = t[c];
M var s = e.base ? i[0] + e.base : i[0];
var f = n[s] || 0;
var u = ''.concat(s, ' ').concat(f);
n[s] = f + 1;
var d = o(u);
var l = { css: i[1], media: i[2], sourceMap: i[3] };
if (d === -1) {
a.push({ identifier: u, updater: b(l, e), references: 1 });
} else {
a[d].references++;
a[d].updater(l);
}
r.push(u);
}
return r;
}
funMction f(t) {
var e = document.createElement('style');
var r = t.attributes || {};
if (r.nonce === void 0) {
var c = n.nc;
if (c) {
r.nonce = c;
}
}
Object.keys(r).forEach(function (t) {
e.setAttribute(t, r[t]);
});
if (typeof t.insert == 'function') {
t.insert(e);
} else {
var a = i(t.insert || 'head');
if (!a) {
throw new ErrMor(
"Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid."
);
}
a.appendChild(e);
}
return e;
}
function l(t, e, n, r) {
var c = n
? ''
: r.media
? '@media '.concat(r.media, ' {').concat(r.css, '}')
: r.css;
if (t.styleSheet) {
t.styleSheet.cssText = d(e, c);
} else {
var i = Mdocument.createTextNode(c);
var a = t.childNodes;
if (a[e]) {
t.removeChild(a[e]);
}
if (a.length) {
t.insertBefore(i, a[e]);
} else {
t.appendChild(i);
}
}
}
function h(t, e, n) {
var r = n.css;
var c = n.media;
var i = n.sourceMap;
if (c) {
t.setAttribute('media', c);
} else {
t.removeAttribute('media')M;
}
if (i && btoa) {
r += '\n/*# sourceMappingURL=data:application/json;base64,'.concat(
btoa(unescape(encodeURIComponent(JSON.stringify(i)))),
' */'
);
}
if (t.styleSheet) {
t.styleSheet.cssText = r;
} else {
while (t.firstChild) {
t.removeChild(t.firstChild);
}
t.appendChild(document.createTextNode(r));
}
}
function b(t, e) {
M var n;
var r;
var c;
if (e.singleton) {
var i = p++;
n = A || (A = f(e));
r = l.bind(null, n, i, false);
c = l.bind(null, n, i, true);
} else {
n = f(e);
r = h.bind(null, n, e);
c = function () {
var t = n;
if (t.parentNode === null) {
return;
}
t.parentNode.removeChild(t);
};
}
r(Mt);
return function (e) {
if (e) {
if (
e.css === t.css &&
e.media === t.media &&
e.sourceMap === t.sourceMap
) {
return;
}
r((t = e));
} else {
c();
}
};
}
var r;
var c = function () {
if (r === void 0) {
r = Boolean(window && document && document.all && !window.atob);
}
M return r;
};
var i = (function () {
var t = {};
return function (e) {
if (t[e] === void 0) {
var n = document.querySelector(e);
if (
window.HTMLIFrameElement &&
n instanceof window.HTMLIFrameElement
) {
try {
n = n.contentDocument.head;
} catch (t) {
n = null;
}
}
t[e] = n;
M }
return t[e];
};
})();
var a = [];
var u = [];
var d = function (t, e) {
u[t] = e;
return u.filter(Boolean).join('\n');
};
var A = null;
var p = 0;
t.exports = function (t, e) {
if (!(e = e || {}).singleton && typeof e.singleton != 'boolean') {
e.singleton = c();
}
var n = s((t = t || []), e);
return function (t) {
t = t || [];
M if (Object.prototype.toString.call(t) === '[object Array]') {
for (var r = 0; r < n.length; r++) {
var c = o(n[r]);
a[c].references--;
}
var i = s(t, e);
for (var f = 0; f < n.length; f++) {
var u = o(n[f]);
if (a[u].references === 0) {
a[u].updater();
a.splice(u, 1);
}
}
n = i;
}
};
};M
},
function (t, e, n) {
(e = n(4)(false)).push([
t.i,
'/* All sizing currently done in pixels */\r\n\r\n.js7800_noselect {\r\n -webkit-touch-callout: none; /* iOS Safari */\r\n -webkit-user-select: none; /* Safari */\r\n -khtml-user-select: none; /* Konqueror HTML */\r\n -moz-user-select: none; /* Old versions of Firefox */\r\n -ms-user-select: none; /* Internet Explorer/Edge */\r\n user-select: none; /* Non-prefixed version, currently\rM\n supported by Chrome, Opera and Firefox */\r\n padding:0;\r\n margin:0;\r\n}\r\n\r\n.js7800 {\r\n margin-left: auto;\r\n margin-right: auto;\r\n box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.4), 0 6px 20px 0 rgba(0, 0, 0, 0.39);\r\n border-radius: 16px;\r\n background: #000;\r\n padding: 20px;\r\n}\r\n\r\n.js7800__inner-container {\r\n position: relative;\r\n text-align: center;\r\n}\r\n\r\n.js7800__screen {\r\n margin: auto;\r\n background: #000;\r\n /* cursor: none; */\rM\n image-rendering: optimizeSpeed; /* Older versions of FF */\r\n image-rendering: -moz-crisp-edges; /* FF 6.0+ */\r\n image-rendering: -webkit-optimize-contrast; /* Safari */\r\n image-rendering: -o-crisp-edges; /* OS X & Windows Opera (12.02+) */\r\n image-rendering: pixelated; /* Awesome future-browsers */\r\n /*-ms-interpolation-mode: nearest-neighbor;*/ /* IE */ \r\n}\r\n\r\n.js7800__logo {\r\Mn left: 50%;\r\n top: 50%;\r\n -webkit-transform: translate(-50%, -50%);\r\n -moz-transform: translate(-50%, -50%);\r\n transform: translate(-50%, -50%);\r\n position: absolute;\r\n visibility: hidden;\r\n opacity: 0;\r\n}\r\n\r\n.js7800__logo .atari7800 {\r\n margin-top: -40px;\r\n padding: 0 3em;\r\n}\r\n\r\n.js7800__logo--show {\r\n visibility: visible;\r\n opacity: 1;\r\n transition: visibility 0s linear 0s, opacity 1s;\r\n}\r\n\r\n.js7800__logo--hide {\r\n visibility: hidden;\r\n opacity: 0;\r\nM transition: visibility 1s linear 1s, opacity 1s; \r\n}\r\n\r\n.js7800__controls {\r\n border-top: 10px solid black;\r\n background-color: #151515;\r\n margin-left: auto;\r\n margin-right: auto;\r\n font-size: 12px;\r\n border-radius: 5px;\r\n}\r\n\r\n#js7800__fullscreen-container:-webkit-full-screen {\r\n position:fixed;\r\n width: 100%;\r\n background-color: black;\r\n}\r\n\r\n.js7800__controls-switch {\r\n position: relative;\r\n display: inline-block;\r\n width: 29px;\r\n height: 18px;\r\n margiMn: 0 5px 0 5px;\r\n}\r\n\r\n.js7800__controls-switch input {\r\n opacity: 0;\r\n width: 0;\r\n height: 0;\r\n}\r\n\r\n.js7800__controls-switch-slider {\r\n position: absolute;\r\n cursor: pointer;\r\n top: 0;\r\n left: 0;\r\n right: 0;\r\n bottom: 0;\r\n background-color: #666;\r\n -webkit-transition: .4s;\r\n transition: .4s;\r\n opacity: 0.6;\r\n border-radius: 3px;\r\n}\r\n\r\n.js7800__controls-switch-slider:hover {\r\n opacity: 1\r\n}\r\n\r\n.js7800__controls-switch-slider:before {\r\n position:M absolute;\r\n content: "";\r\n height: 12px;\r\n width: 11px;\r\n left: 3px;\r\n bottom: 3px;\r\n background-color: #DDD;\r\n border-radius: 3px;\r\n -webkit-transition: .4s;\r\n transition: .4s;\r\n}\r\n\r\ninput:checked+.js7800__controls-switch-slider:before {\r\n -webkit-transform: translateX(12x);\r\n -ms-transform: translateX(12px);\r\n transform: translateX(12px);\r\n}\r\n\r\n.js7800__controls-button {\r\n background-color: #ce2f37;\r\n border: none;\r\n color: white;\r\n text-align: center;\Mr\n font-size: 10px;\r\n margin: 0 5px 0 5px;\r\n opacity: .6;\r\n transition: .3s;\r\n display: inline-block;\r\n text-decoration: none;\r\n cursor: pointer;\r\n padding: 3px 2px 3px 2px;\r\n min-width: 48px;\r\n border-radius: 3px;\r\n}\r\n\r\n.js7800__controls-button:hover {\r\n opacity: 1\r\n}\r\n\r\n.js7800__controls-img-button {\r\n cursor: pointer;\r\n width: 24px;\r\n height: 24px;\r\n opacity: .6;\r\n margin: 0 4px 0 4px;\r\n border: 0px solid white;\r\n vertical-align: middle;\r\n}\r\n\rM\n.js7800__controls-img-button:hover {\r\n opacity: .9\r\n}\r\n\r\n.js7800__controls-container {\r\n display: flex;\r\n margin: 0 2px 0 2px;\r\n padding: 4px 0 4px 0;\r\n flex-wrap: nowrap;\r\n user-select: none;\r\n /* max-width: 800px; */\r\n}\r\n\r\n.js7800__controls-group {\r\n border: 0px solid white;\r\n flex: 1 0 150px;\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n}\r\n\r\n.js7800__controls-group-start {\r\n border: 0px solid white;\r\n flex: 1 0 1px;\r\n text-alMign: left;\r\n display: flex;\r\n align-items: center;\r\n justify-content: flex-start;\r\n}\r\n\r\n.js7800__controls-group-end {\r\n border: 0px solid white;\r\n flex: 1 0 1px;\r\n display: flex;\r\n align-items: center;\r\n justify-content: flex-end;\r\n}\r\n',
'',
]);
t.exports = e;
},
function (t, e, n) {
'use strict';
t.exports = function (t) {
var e = [];
e.toString = function () {
return this.map(function (e) {
M var n = (function (t, e) {
var n = t[1] || '';
var r = t[3];
if (!r) {
return n;
}
if (e && typeof btoa == 'function') {
a = r;
o = btoa(unescape(encodeURIComponent(JSON.stringify(a))));
s =
'sourceMappingURL=data:application/json;charset=utf-8;base64,'.concat(
o
);
var c = '/*M# '.concat(s, ' */');
var i = r.sources.map(function (t) {
return '/*# sourceURL='
.concat(r.sourceRoot || '')
.concat(t, ' */');
});
return [n].concat(i).concat([c]).join('\n');
}
var a;
var o;
var s;
return [n].join('\n');
})(e, t);
if (e[2]) {
return '@media '.concat(e[2], 'M {').concat(n, '}');
} else {
return n;
}
}).join('');
};
e.i = function (t, n, r) {
if (typeof t == 'string') {
t = [[null, t, '']];
}
var c = {};
if (r) {
for (var i = 0; i < this.length; i++) {
var a = this[i][0];
if (a != null) {
c[a] = true;
}
}
}
for (var o M= 0; o < t.length; o++) {
var s = [].concat(t[o]);
if (!r || !c[s[0]]) {
if (n) {
if (s[2]) {
s[2] = ''.concat(n, ' and ').concat(s[2]);
} else {
s[2] = n;
}
}
e.push(s);
}
}
};
return e;
};
},
function (t, e, n) {
'use strict';
function H(t, e, n, r, c) {
vMar i = (1 << e) - 1;
var a = 0;
var o = 0;
for (var s = 0; s < i; s++) {
t[o] = e == 17 ? a >>> 6 : a;
o++;
a = ((a << n) + (a >>> r) + c) & i;
}
}
function Y() {
G = 0;
W = 0;
y = 0;
for (let t = 0; t < 32; t++) {
J[t] = 0;
}
(function () {
var t = 511;
for (var e = 0; e < 511; e++) {
var n = ((t >> 0) & 1) ^ ((t >>M 5) & 1);
t >>= 1;
t |= n << 8;
C[e] = 1 & t;
}
})();
(function () {
var t = 131071;
for (var e = 0; e < 131071; e++) {
var n = ((t >> 8) & 1) ^ ((t >> 13) & 1);
var r = 1 & t;
t = (65407 & (t >>= 1)) | (n << 7);
t |= r << 16;
E[e] = 1 & t;
}
})();
S = 0;
x = 0;
D = 0;
N = 0;
k =M (457605120 / g) | 0;
for (var t = 0; t <= 3; t++) {
v[t] = 0;
_[t] = 0;
m[t] = 0;
w[t] = 0;
}
for (var e = 0; e < 8; e++) {
z[e] = 228;
}
H(B, 9, 8, 1, 384);
H(j, 17, 16, 1, 114688);
O = 0;
F = 0;
M = 0;
R = 0;
P = 0;
U = 0;
Z = 0;
Q[0] = 1;
Q[1] = 1;
Q[2] = 0;
Q[3] = 0;
et(trueM);
}
function V(t) {
if (G-- > 0) {
console.log('pokey_getRegister: %d', t);
}
var e = 0;
var n = 15 & t;
if (n < 8) {
if ((r = z[n]) <= W) {
return r;
} else {
return W;
}
}
switch (t) {
case 16392:
var r = 0;
for (var c = 0; c < 8; c++) {
if (z[n] <= W) {
r &= ~(1 << c);
M }
}
return r;
case 16394:
var i = U + Jo();
if (3 & O) {
var a = (i - Z) >>> 2;
R = (a + R) % 511 | 0;
P = (a + P) % 131071 | 0;
} else {
R = 0;
P = 0;
}
F = 128 & M ? B[R] : j[P];
Z = i;
e = F ^= 255;
}
return e;
}
function X(t, e) {
switch (
M (G-- > 0 && console.log('pokey_setRegister: %d %d', t - 16384, e),
(J[t - 16384] = e),
t)
) {
case 16395:
if (!(4 & O)) {
W = 0;
}
return;
case 16399:
O = e;
if (4 & e) {
W = 228;
}
return;
case 16384:
w[0] = e;
break;
case 16385:
m[0] = e;
breakM;
case 16386:
w[1] = e;
break;
case 16387:
m[1] = e;
break;
case 16388:
w[2] = e;
break;
case 16389:
m[2] = e;
break;
case 16390:
w[3] = e;
break;
case 16391:
m[3] = e;
break;
case 16392:
M = e;
}
}
function q(t, e) {
M_[t] = (_[t] + 1) & 255;
if (_[t] == 0 && T[t] == 0) {
T[t] = e;
}
}
function K(t) {
if (T[t] > 0) {
T[t]--;
return T[t] == 0;
} else {
return 0;
}
}
function $(t) {
_[t] = 255 ^ w[t];
T[t] = 0;
}
function tt(t) {
if (128 & m[t] || I[x]) {
if (32 & m[t]) {
v[t] ^= 1;
} else if (64 & m[t]) {
Mv[t] = L[S];
} else {
v[t] = 128 & M ? C[D] : E[N];
}
}
}
function et(t) {
y = 0;
if (t) {
for (var e = 0; e < 2048; e++) {
b[e] = 0;
}
}
}
function ot(t, e) {
at[t] = e;
ct.SetReg(t, e);
}
function Ct() {
for (var t = 0; t < 131072; t++) {
ut[t] = 0;
}
dt = false;
lt = false;
M ht = false;
At = false;
pt = false;
bt = false;
gt = false;
yt = false;
wt = 0;
mt = 0;
Mt = 0;
vt = 0;
Lt = 0;
It = 0;
(function () {
ct.Reset();
for (let t = 0; t < at.length; t++) {
at[t] = 0;
}
})();
Et = 0;
St = 2;
xt = -1;
}
function Dt() {
return lt;
}
funcMtion Nt() {
return dt;
}
function _t() {
return ht;
}
function Tt(t) {
yt = t;
}
function jt(t, e) {
this.topic = t;
if (e) {
this.onEvent = e;
}
}
function Rt(t) {
if (Bt) {
var e = new Bt.Listener();
e.getTopic = function () {
return t.getTopic();
};
e.onEvent = function (e) {
t.onEvent(e);
M };
Bt.addListener(e);
} else {
var n = t.getTopic();
var r = kt[n];
if (!r) {
r = [];
kt[n] = r;
}
r.push(t);
}
}
function Pt(t, e) {
if (Bt) {
Bt.fireEvent(t, e);
} else {
var n = kt[t];
if (n) {
for (var r = 0; r < n.length; r++) {
n[r].onEvent(e);
}
}
M }
}
function Ot(t) {
for (var e in ((Bt = t), kt)) {
var n = kt[e];
for (var r = 0; r < n.length; r++) {
Rt(n[r]);
}
}
}
function Xt(t) {
Qt = t;
}
function qt(t) {
Ht = t;
Ft[642] = -21 & Ft[642] & 255;
Ft[642] = 255 & (Ft[642] | (20 & (~Ft[643] | Ht)));
}
function Kt() {
return Wt;
}
function $t() {
returnM Zt;
}
function pe(t) {
le[t]++;
if (le[t] == 31) {
le[t] = 0;
}
if (
(2 & se[t]) == 0 ||
((1 & se[t]) == 0 && ce[le[t]]) ||
((1 & se[t]) == 1 && ne[le[t]])
) {
if (4 & se[t]) {
ie[t] = ie[t] ? 0 : ue[t];
} else if (8 & se[t]) {
if (se[t] == 8) {
he[t]++;
if (he[t] == 511) {
he[t] = 0;
}M
ie[t] = re[he[t]] ? ue[t] : 0;
} else {
ie[t] = ne[le[t]] ? ue[t] : 0;
}
} else {
de[t]++;
if (de[t] == 15) {
de[t] = 0;
}
ie[t] = ee[de[t]] ? ue[t] : 0;
}
}
}
function be(t) {
Ae = 0;
if (t) {
for (var e = 0; e < 2048; e++) {
te[e] = 0;
}
}
}
function MUe() {
for (var t = 0; t < 65536; t++) {
Ne[t] = 0;
Te[t] = 0;
_e[t] = 1;
}
for (t = 0; t < 16384; t++) {
_e[t] = 0;
}
ze = false;
}
function Ze(t) {
var e;
if (
Fe &&
((t >= 1136 && t < 1152) ||
(Le() && t >= 1104 && t < 1136) ||
(Ie() && t >= 16384 && t < 32768) ||
(Ce() && t >= 1120 && t <= 1121))
) {
M return Ee(t);
}
if (
!Re &&
ke &&
((!Be && !je && t >= 16384 && t <= 16399) ||
(je && t >= 2048 && t < 2080) ||
(Be && t >= 1104 && t < 1136))
) {
return ye(je ? t - 2048 + 16384 : Be ? t - 1104 + 16384 : t);
}
if (t >= 32 && t <= 63 && t != 40) {
return 0;
}
switch (t) {
case 644:
case 646:
Ne[645] &= 127;
M return Ne[644];
case 645:
case 647:
e = Ne[645];
Ne[645] &= 127;
return e;
default:
if (We) {
if (Oe && t >= 16384 && t <= 32767) {
return Te[t];
}
if (Ge === hn || Ge === yn) {
if (t >= Kr() && t <= tc()) {
return Te[t];
}
} else {
if (Ge == gn && t >= 16384 && t M<= 32767) {
return Te[t];
}
if (t >= 32768 && t <= 49151) {
return Te[t];
}
if (t >= 49152 && t <= 65535) {
return Te[t];
}
}
}
return Ne[t];
}
}
function Qe(t) {
var e = Ze(t);
if (e < 0) {
console.error('Less than zero memory read: %d %d', t, e);
}
M return e;
}
function He(t) {
We = true;
var e = Ze(t);
We = false;
if (e < 0) {
console.error('Less than zero memory read: %d %d', t, e);
}
return e;
}
function Ye(t, e) {
if (e < 0) {
console.error('Less than zero memory write: %d %d', t, e);
}
if (
Fe &&
((t >= 1136 && t < 1152) ||
(Le() && t >= 1104 && t < 1136) ||
M (Ie() && t >= 16384 && t < 32768) ||
(Ce() && t >= 1120 && t <= 1121))
) {
Se(t, e);
} else if (
ke &&
((!Be && !je && t >= 16384 && t <= 16399) ||
(je && t >= 2048 && t < 2080) ||
(Be && t >= 1104 && t < 1136))
) {
ge(je ? t - 2048 + 16384 : Be ? t - 1104 + 16384 : t, e);
} else if (!_e[t] || (Oe && t >= 49152 && t <= 65535)) {
if (xe && t >= 4096 && t <= 6143 && De) {
M De.write(t, e);
}
if (t >= 0 && t <= 15) {
if (!ze) {
if (1 & e) {
ze = true;
console.log('Lock: ' + e);
Ne[40] = 128;
}
if (4 & e && nr()) {
if (!Xr()) {
$n();
}
}
}
} else {
switch (t) {
case 36:
Ne[36] = 1;
M break;
case 8:
case 9:
case 10:
case 11:
case 12:
case 13:
case 40:
break;
case 21:
we(21, e);
break;
case 22:
we(22, e);
break;
case 23:
we(23, e);
break;
case 24:
we(24, e);
brMeak;
case 25:
we(25, e);
break;
case 26:
we(26, e);
break;
case 642:
me(e);
break;
case 640:
Me(e);
break;
case 660:
case 668:
ve(660, e);
break;
case 661:
case 669:
ve(661, e);
M break;
case 662:
case 670:
ve(662, e);
break;
case 663:
case 671:
ve(663, e);
break;
default:
if (Oe && t >= 49152 && t <= 65535) {
Te[t - 49152 + 16384] = e;
} else {
Ne[t] = e;
if (t >= 8256 && t <= 8447) {
Ne[t - 8192] = e;
}M else if (t >= 8512 && t <= 8703) {
Ne[t - 8192] = e;
} else if (t >= 64 && t <= 255) {
Ne[t + 8192] = e;
} else if (t >= 320 && t <= 511) {
Ne[t + 8192] = e;
} else if (t >= 10240 && t <= 12287) {
Ne[t - 2048] = e;
} else if (t >= 8192 && t <= 10239) {
Ne[t + 2048] = e;
}
}
}
M }
} else {
tr(t, e);
}
}
function Ve(t, e, n, r) {
var c = false;
var i = 0;
if (Pe) {
var a = Cr();
if (a === hn || a === yn) {
i = e;
qr(t);
$r(t + e - 1);
c = true;
} else if (
t === 32768 ||
t === 49152 ||
(a === gn && t === 16384)
) {
i = 131072;
c = Mtrue;
}
}
if (t + e <= 65536 && n != null) {
for (var o = 0; o < e; o++) {
Ne[t + o] = n[o + r];
_e[t + o] = 1;
if (c) {
Te[t + o] = n[o + r + i];
}
}
}
}
function Je(t, e) {
if (t + e <= 65536) {
for (var n = 0; n < e; n++) {
Ne[t + n] = 0;
_e[t + n] = 0;
if (Oe && t === 16384) {
Te[tM + n] = 0;
}
}
}
}
function Xe(t, e) {
var n = t[0];
var r = t[1];
var c = t[2];
var i = t[3];
n = Ke(n, r, c, i, e[0], 7, -680876936);
i = Ke(i, n, r, c, e[1], 12, -389564586);
c = Ke(c, i, n, r, e[2], 17, 606105819);
r = Ke(r, c, i, n, e[3], 22, -1044525330);
n = Ke(n, r, c, i, e[4], 7, -176418897);
i = Ke(i, n, r, c, e[5], 12, 1200080426);
c = Ke(c, i, Mn, r, e[6], 17, -1473231341);
r = Ke(r, c, i, n, e[7], 22, -45705983);
n = Ke(n, r, c, i, e[8], 7, 1770035416);
i = Ke(i, n, r, c, e[9], 12, -1958414417);
c = Ke(c, i, n, r, e[10], 17, -42063);
r = Ke(r, c, i, n, e[11], 22, -1990404162);
n = Ke(n, r, c, i, e[12], 7, 1804603682);
i = Ke(i, n, r, c, e[13], 12, -40341101);
c = Ke(c, i, n, r, e[14], 17, -1502002290);
n = $e(
n,
(r = Ke(r, c, i, n, e[15], 22M, 1236535329)),
c,
i,
e[1],
5,
-165796510
);
i = $e(i, n, r, c, e[6], 9, -1069501632);
c = $e(c, i, n, r, e[11], 14, 643717713);
r = $e(r, c, i, n, e[0], 20, -373897302);
n = $e(n, r, c, i, e[5], 5, -701558691);
i = $e(i, n, r, c, e[10], 9, 38016083);
c = $e(c, i, n, r, e[15], 14, -660478335);
r = $e(r, c, i, n, e[4], 20, -405537848);
n = $e(n, r, c, i, e[9], 5, 56844M6438);
i = $e(i, n, r, c, e[14], 9, -1019803690);
c = $e(c, i, n, r, e[3], 14, -187363961);
r = $e(r, c, i, n, e[8], 20, 1163531501);
n = $e(n, r, c, i, e[13], 5, -1444681467);
i = $e(i, n, r, c, e[2], 9, -51403784);
c = $e(c, i, n, r, e[7], 14, 1735328473);
n = tn(
n,
(r = $e(r, c, i, n, e[12], 20, -1926607734)),
c,
i,
e[5],
4,
-378558
);
i = Mtn(i, n, r, c, e[8], 11, -2022574463);
c = tn(c, i, n, r, e[11], 16, 1839030562);
r = tn(r, c, i, n, e[14], 23, -35309556);
n = tn(n, r, c, i, e[1], 4, -1530992060);
i = tn(i, n, r, c, e[4], 11, 1272893353);
c = tn(c, i, n, r, e[7], 16, -155497632);
r = tn(r, c, i, n, e[10], 23, -1094730640);
n = tn(n, r, c, i, e[13], 4, 681279174);
i = tn(i, n, r, c, e[0], 11, -358537222);
c = tn(c, i, n, r, e[3], 16, -722521979);
rM = tn(r, c, i, n, e[6], 23, 76029189);
n = tn(n, r, c, i, e[9], 4, -640364487);
i = tn(i, n, r, c, e[12], 11, -421815835);
c = tn(c, i, n, r, e[15], 16, 530742520);
n = en(
n,
(r = tn(r, c, i, n, e[2], 23, -995338651)),
c,
i,
e[0],
6,
-198630844
);
i = en(i, n, r, c, e[7], 10, 1126891415);
c = en(c, i, n, r, e[14], 15, -1416354905);
r = en(r, c, i, n, e[M5], 21, -57434055);
n = en(n, r, c, i, e[12], 6, 1700485571);
i = en(i, n, r, c, e[3], 10, -1894986606);
c = en(c, i, n, r, e[10], 15, -1051523);
r = en(r, c, i, n, e[1], 21, -2054922799);
n = en(n, r, c, i, e[8], 6, 1873313359);
i = en(i, n, r, c, e[15], 10, -30611744);
c = en(c, i, n, r, e[6], 15, -1560198380);
r = en(r, c, i, n, e[13], 21, 1309151649);
n = en(n, r, c, i, e[4], 6, -145523070);
i = en(i, n, r, c, e[M11], 10, -1120210379);
c = en(c, i, n, r, e[2], 15, 718787259);
r = en(r, c, i, n, e[9], 21, -343485551);
t[0] = on(n, t[0]);
t[1] = on(r, t[1]);
t[2] = on(c, t[2]);
t[3] = on(i, t[3]);
}
function qe(t, e, n, r, c, i) {
e = on(on(e, t), on(r, i));
return on((e << c) | (e >>> (32 - c)), n);
}
function Ke(t, e, n, r, c, i, a) {
return qe((e & n) | (~e & r), t, e, c, i, a);
}
functiMon $e(t, e, n, r, c, i, a) {
return qe((e & r) | (n & ~r), t, e, c, i, a);
}
function tn(t, e, n, r, c, i, a) {
return qe(e ^ n ^ r, t, e, c, i, a);
}
function en(t, e, n, r, c, i, a) {
return qe(n ^ (e | ~r), t, e, c, i, a);
}
function nn(t) {
var n = [];
for (var e = 0; e < 64; e += 4) {
n[e >> 2] =
t.charCodeAt(e) +
(t.charCodeAt(e + 1) << 8) +
(t.charCodeAt(e + M2) << 16) +
(t.charCodeAt(e + 3) << 24);
}
return n;
}
function cn(t) {
var e = '';
for (var n = 0; n < 4; n++) {
e += rn[(t >> (8 * n + 4)) & 15] + rn[(t >> (8 * n)) & 15];
}
return e;
}
function an(t) {
return (function (t) {
for (var e = 0; e < t.length; e++) {
t[e] = cn(t[e]);
}
return t.join('');
})(
(function (t)M {
var n = t.length;
var r = [1732584193, -271733879, -1732584194, 271733878];
for (var e = 64; e <= t.length; e += 64) {
Xe(r, nn(t.substring(e - 64, e)));
}
t = t.substring(e - 64);
var c = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];
for (e = 0; e < t.length; e++) {
c[e >> 2] |= t.charCodeAt(e) << (e % 4 << 3);
}
c[e >> 2] |= 128 << (e % 4 << 3);
M if (e > 55) {
Xe(r, c);
for (e = 0; e < 16; e++) {
c[e] = 0;
}
}
c[14] = 8 * n;
Xe(r, c);
return r;
})(t)
);
}
function on(t, e) {
return (t + e) & 4294967295;
}
function Vn(t) {
if ((Mn == An || Mn == gn || Mn == bn) && Hn <= 65536) {
return 3 & t;
} else {
return t;
}
M }
function Jn(t) {
return 16384 * Vn(t);
}
function Xn(t, e) {
var n = Hn;
if (Pn) {
n >>= 1;
}
var r = Jn(e);
if (r < n) {
sn(t, 16384, Qn, r);
En = e;
}
}
function qn(t) {
if (Pn) {
t >>= 1;
}
if (t <= 65536) {
var e = Mn;
Mn = hn;
console.log('Update: no bits and <= 64k: %d, %d', e, MMn);
} else if (t == 147456) {
e = Mn;
Mn = pn;
console.log('Update: size == 144k: %d, %d', e, Mn);
} else if (t == 131072) {
e = Mn;
Mn = gn;
console.log('Update: size == 128k: %d, %d', e, Mn);
} else {
e = Mn;
Mn = An;
console.log('Update: default for > 64k: %d, %d', e, Mn);
}
}
function Kn(t, e) {
if (e <= 128) {
console.log('CartMridge data is invalid.');
return false;
}
console.log('actual cartridge_size: %d', e);
rr();
var n = new Array();
for (var r = 0; r < 128; r++) {
n[r] = t[r];
}
if (
(function (t) {
var e = ['>', '>'];
for (var n = 0; n < 2; n++) {
if (e[n] != String.fromCharCode(t[n + 1])) {
return false;
}
}
return true;
M })(n)
) {
console.log("Prosystem doesn't support CC2 hacks.");
return false;
}
var c = 0;
if (
!(function (t) {
var e = ['A', 'T', 'A', 'R', 'I', '7', '8', '0', '0'];
for (var n = 0; n < 9; n++) {
if (e[n] != String.fromCharCode(t[n + 1])) {
return false;
}
}
return true;
})(n)
) {
console.lMog('Unable to find cartridge header');
Hn = e;
qn(e);
} else {
console.log('Found cartridge header');
(function (t) {
console.log('Reading cartridge header');
var e = new Array();
for (var n = 0; n < 32; n++) {
e[n] = t[n + 17];
}
wn = '';
for (var r = 0; r < e.length; r++) {
wn += String.fromCharCode(e[r]);
}
consolMe.log('Title: %s', wn);
Hn = t[49] << 24;
Hn |= t[50] << 16;
Hn |= t[51] << 8;
Hn |= t[52];
Mn =
t[53] == 0
? Hn > 131072
? pn
: t[54] == 2 || t[54] == 3
? An
: t[54] == 4 || t[54] == 5 || t[54] == 6 || t[54] == 7
? bn
: t[54] == 8 || t[54] == 9 || t[54] == 10 || t[54] == 11
M? gn
: hn
: t[53] == 2
? 5
: t[53] == 1
? 6
: hn;
Ln = !!(1 & t[54]);
In = !!(64 & t[54]);
Wn = !!(128 & t[53]);
if (In || Wn) {
Ln = true;
}
Cn[0] = t[55];
Cn[1] = t[56];
vn = 1 & t[57];
Sn = 0;
_n = !!(1 & t[63]) || (8 & t[53]) == 8;
Rn =M 3 & t[58];
if (!!(Pn = !!(32 & t[53])) && (Hn === 98304 || Hn === 106496)) {
zn = true;
}
Gn = !!(64 & t[53]);
var c = t[54];
var i = t[53];
if ((10 & c) == 10) {
var a = Mn;
Mn = pn;
console.log('Update: (0x10) bit1 & bit3: %d, %d', a, Mn);
} else if ((18 & c) == 18) {
var a = Mn;
Mn = gn;
console.log('UpdaMte: (0x12) bit1 & bit4: %d, %d', a, Mn);
} else if ((6 & c) == 6) {
a = Mn;
Mn = bn;
console.log('Update: (0x06) bit1 & bit2: %d, %d', a, Mn);
} else if ((2 & c) == 2) {
a = Mn;
Mn = An;
console.log('Update: (0x01) bit1: %d, %d', a, Mn);
} else if (Hn <= 65536 && (4 & c) == 4) {
a = Mn;
Mn = yn;
console.log('Update: (0x04) bit2: %d,M %d', a, Mn);
} else {
qn(Hn);
}
if (Pn) {
if (Mn === hn || Mn === yn) {
if (Mn === hn && Gn) {
a = Mn;
Mn = yn;
console.log(
'Normal cart with halt based ram, switching type: %d, %d',
a,
Mn
);
}
} else if (
(a = Mn) !== (Mn = Gn M? bn : (16 & c) == 16 ? gn : An)
) {
console.log(
'Bank switched banksets, switching type: %d, %d',
a,
Mn
);
}
}
console.log('Header info:');
if (1 & c) {
console.log(' bit0: pokey at $4000');
}
if (2 & c) {
console.log(' bit1: supergame bank switched');
}
if M(4 & c) {
console.log(' bit2: supergame ram at $4000');
}
if (8 & c) {
console.log(' bit3: rom at $4000');
}
if (16 & c) {
console.log(' bit4: bank 6 at $4000');
}
if (32 & c) {
console.log(' bit5: supergame banked ram');
}
if (64 & c) {
console.log(' bit6: pokey at $450');
}
if (128 & c) {
M console.log(' bit7: mirror ram at $4000');
}
if (1 & i) {
console.log(' bit8: activision banking');
}
if (2 & i) {
console.log(' bit9: absolute banking');
}
if (4 & i) {
console.log(' bit10: pokey at $440');
}
if (8 & i) {
console.log(' bit11: ym2151 at $460/$461');
}
if (16 & i) {
M console.log(' bit12: souper');
}
if (32 & i) {
console.log(' bit13: banksets');
}
if (64 & i) {
console.log(' bit14: halt banked ram');
}
if (128 & i) {
console.log(' bit15: pokey@800');
}
console.log(' xm: %s', _n ? '1' : '0');
console.log(' banksets: %s', Pn ? '1' : '0');
console.log(' pokey: %s', Ln ? '1' : '0');
M console.log(' pokey450: %s', In ? '1' : '0');
console.log(' pokey800: %s', Wn ? '1' : '0');
console.log(' pokey write only: %s', zn ? '1' : '0');
console.log(' halt banked ram: %s', Gn ? '1' : '0');
console.log(' tv type: %s', vn ? 'PAL' : 'NTSC');
console.log(
' Save device: [%d]%s%s',
t[58],
2 & t[58] ? ' SaveKey/AtariVox' : '',
1 & t[58] ? ' HSC' : ''
)M;
console.log(' controller1: %d', Cn[0]);
console.log(' controller2: %d', Cn[1]);
console.log(' cartridge_type 53: %d', t[53]);
console.log(' cartridge_type 54: %d', t[54]);
console.log(' cartridge_size: %d', Hn);
console.log('cartridge_type (from header): %d', Mn);
})(n);
c = 128;
if (Hn != (e -= 128)) {
console.log(
'!!! CARTRIDGE SIZE IN HEADER DOES NOT MATCH M!!! : %d %d',
Hn,
e
);
if (e % 1024 == 0) {
console.log(
'!!! ROM size is 1k multiple, using ROM size !!! : %d',
e
);
Hn = e;
} else {
console.log(
'!!! ROM size is not 1k multiple, using header size !!! : %d',
Hn
);
}
}
}
console.log('cartridge_tyMpe: %d', Mn);
console.log('cartridge_size: %d', Hn);
Qn = new Array(Hn);
var i = '';
for (r = 0; r < Hn; r++) {
Qn[r] = t[r + c];
i += String.fromCharCode(Qn[r]);
}
mn = an(i);
console.log('cartridge_digest: %s', mn);
if (mn === '91041aadd1700a7a4076f4005f2c362f') {
console.log('Patching diagnostic cartridge...');
var a = [223, 230];
for (let t = 0; t < a.length; t++) {
M Qn[26348 - c + t] = a[t];
}
}
return true;
}
function $n() {
Yn = true;
var t = Hn;
switch ((Pn && (t >>= 1), Mn)) {
case hn:
sn(65536 - t, t, Qn, 0);
break;
case yn:
sn(65536 - t, t, Qn, 0);
fn(16384, 16384);
break;
case An:
if ((e = t - 16384) < t) {
sn(49152, 16384, Qn, e);
er(0)M;
}
break;
case pn:
if ((e = t - 16384) < t) {
sn(49152, 16384, Qn, e);
sn(16384, 16384, Qn, Jn(0));
er(0);
}
break;
case bn:
if ((e = t - 16384) < t) {
sn(49152, 16384, Qn, e);
fn(16384, 16384);
er(0);
}
break;
case gn:
var e;
if ((e = t - 16384) M< t && Jn(6) < t) {
sn(49152, 16384, Qn, e);
sn(16384, 16384, Qn, Jn(6));
er(0);
}
break;
case 5:
sn(16384, 16384, Qn, 0);
sn(32768, 32768, Qn, Jn(2));
break;
case 6:
if (122880 < t) {
sn(40960, 16384, Qn, 0);
sn(16384, 8192, Qn, 106496);
sn(24576, 8192, Qn, 98304);
sn(32768, 8192, Qn, 122880);
M sn(57344, 8192, Qn, 114688);
}
}
}
function tr(t, e) {
var n = Hn;
switch ((Pn && (n >>= 1), Mn)) {
case An:
case bn:
case gn:
var r = n / 16384;
if (t >= 32768 && t < 49152 && Vn(e) < r) {
er(e);
}
break;
case pn:
r = n / 16384;
if (t >= 32768 && t < 49152 && Vn(e) < r) {
er(e + 1);M
}
break;
case 5:
if (t == 32768 && (e == 1 || e == 2)) {
er(e - 1);
}
break;
case 6:
if (t >= 65408) {
er(7 & t);
}
}
}
function er(t) {
switch (Mn) {
case An:
case bn:
case gn:
case pn:
Xn(32768, t);
break;
case 5:
Xn(16384, tM);
break;
case 6:
Xn(40960, t);
}
}
function nr() {
return Qn != null;
}
function rr() {
Yn = false;
Zn = false;
if (Qn != null) {
Hn = 0;
Qn = null;
wn = '';
Mn = 0;
vn = 0;
Ln = 0;
In = 0;
Wn = 0;
_n = false;
Cn = [1, 1];
En = 0;
Sn = 0;
xnM = 0;
Dn = 0;
Tn = 28;
Nn = false;
kn = 1;
Bn = 0;
jn = false;
Rn = false;
Pn = false;
zn = false;
Gn = false;
}
}
function cr(t) {
if (!Rn || vn != ln) {
console.log(
Rn
? 'Not loading high score cartridge, PAL region.'
: 'High score cartridge is disabled (via db and cart header).'
);
M t(false);
return;
}
var e = dn.getRom();
if (e == null) {
console.log('Unable to locate high score cartridge.');
t(false);
return;
}
console.log('Found high score cartridge.');
if (an(e) != 'c8a73288ab97226c52602204ab894286') {
console.log('High score cartridge hash is invalid.');
t(false);
return;
}
dn.loadSram(function (n) {
if (n) {
M for (var r = 0; r < n.length && r < 2048; r++) {
un(4096 + r, n[r]);
}
for (r = 0; r < e.length; r++) {
un(12288 + r, e.charCodeAt(r));
}
Zn = true;
}
console.log('High score cart loaded: ' + Zn);
t(Zn);
});
}
function ir() {
return vn;
}
function ar() {
return Ln;
}
function or() {
return In;
M }
function sr() {
return Wn;
}
function fr() {
return zn;
}
function ur() {
return _n;
}
function dr() {
if (Un == 2) {
return _n;
} else {
return Un;
}
}
function lr() {
return Pn;
}
function hr() {
return Gn;
}
function Ar() {
return jn;
}
function pr() {
return Nn;M
}
function br() {
return Cn[0] == 2;
}
function gr() {
return Sn;
}
function yr() {
return Tn;
}
function wr() {
return kn;
}
function mr() {
return Bn;
}
function Mr() {
return mn;
}
function vr(t) {
wn = t;
}
function Lr() {
return wn;
}
function Ir() {
return Hn;
}
Mfunction Cr() {
return Mn;
}
function Er(t) {
Mn = t;
}
function Sr(t) {
Ln = t;
}
function xr(t) {
In = t;
}
function Dr(t) {
Cn[0] = t;
}
function Nr(t) {
Cn[1] = t;
}
function _r() {
return Cn[0];
}
function Tr() {
return Cn[1];
}
function kr(t) {
vn = t;
}
function Br(t) {
M Sn = t;
}
function jr(t) {
_n = t;
}
function Rr(t) {
Tn = t;
}
function Pr(t) {
xn = t;
}
function Or(t) {
Dn = t;
}
function Fr() {
return xn;
}
function Gr() {
return Dn;
}
function zr(t) {
Nn = t;
}
function Wr(t) {
kn = t;
}
function Ur(t) {
Bn = t;
}
function ZrM(t) {
jn = t;
}
function Qr(t) {
Rn = t;
}
function Hr() {
return Rn;
}
function Yr(t) {
Un = t;
}
function Vr() {
return Un;
}
function Jr() {
return 2;
}
function Xr() {
return Yn;
}
function qr(t) {
On = t;
}
function Kr() {
return On;
}
function $r(t) {
Fn = t;
}
M function tc() {
return Fn;
}
function ec() {
return En;
}
function _c(t) {
cc((uc + 256) & 65535, t);
uc = (uc - 1) & 255;
}
function Tc() {
return rc(((uc = (uc + 1) & 255) + 256) & 65535);
}
function kc(t) {
if (t) {
fc = fc & ~gc & 255;
} else {
fc |= gc;
}
if (128 & t) {
fc |= Lc;
} else {
fc = Mfc & ~Lc & 255;
}
}
function jc(t) {
if (t) {
Bc.copy(dc);
dc.wPlusEqual(hc.getBLSigned());
if (Bc.getBH() == dc.getBH()) {
Ac++;
} else {
Ac += 2;
}
}
}
function Oc(t) {
Rc.copy(hc);
Pc.copy(hc);
Rc.wMinusEqual(t);
if (Rc.getBH() != Pc.getBH()) {
Ac++;
}
}
function Fc() {
hc.setBLM(rc(dc.wPlusPlus()));
hc.setBH(rc(dc.wPlusPlus()));
}
function Gc() {
hc.setBL(rc(dc.wPlusPlus()));
hc.setBH(rc(dc.wPlusPlus()));
hc.wPlusEqual(oc);
}
function zc() {
hc.setBL(rc(dc.wPlusPlus()));
hc.setBH(rc(dc.wPlusPlus()));
hc.wPlusEqual(sc);
}
function Wc() {
hc.setW(dc.wPlusPlus());
}
function Uc() {
hc.setBL(rc(dc.wPlusPlus()) + oc);
hc.setBH(rc(hcM.getBL() + 1));
hc.setBL(rc(hc.getBL()));
}
function Zc() {
hc.setBL(rc(dc.wPlusPlus()));
hc.setBH(rc(hc.getBL() + 1));
hc.setBL(rc(hc.getBL()));
hc.wPlusEqual(sc);
}
function Qc() {
hc.setW(rc(dc.wPlusPlus()));
}
function Hc() {
hc.setW(rc(dc.wPlusPlus()));
}
function Yc() {
hc.setW(rc(dc.wPlusPlus()));
hc.blPlusEqual(oc);
}
function Vc() {
M hc.setW(rc(dc.wPlusPlus()));
hc.blPlusEqual(sc);
}
function Jc() {
var t = rc(hc.getW());
if (fc & wc) {
var e = ((15 & ac) + (15 & t) + (fc & bc)) & 65535;
var n = ((ac >>> 4) + (t >>> 4)) & 65535;
if (e > 9) {
e = (e + 6) & 65535;
n = (n + 1) & 65535;
}
var r = new nc();
r.setW(ac + t + (fc & bc));
if (r.getBL()) {
fc = fc & ~gc & 255;
M } else {
fc |= gc;
}
if ((8 & n) == 0) {
fc = fc & ~Lc & 255;
} else {
fc |= Lc;
}
if (~(ac ^ t) & ((n << 4) ^ ac) & 128) {
fc |= vc;
} else {
fc = fc & ~vc & 255;
}
if (n > 9) {
n = (n + 6) & 65535;
}
if (n > 15) {
fc |= bc;
} else {
fc = fc & ~bc & 255;
M}
ac = 255 & ((n << 4) | (15 & e));
} else {
var c = new nc();
c.setW(ac + t + (fc & bc));
if (c.getBH()) {
fc |= bc;
} else {
fc = fc & ~bc & 255;
}
if (~(ac ^ t) & (ac ^ c.getBL()) & 128) {
fc |= vc;
} else {
fc = fc & ~vc & 255;
}
kc(c.getBL());
ac = c.getBL();
}
}
function Xc() {
kMc((ac &= rc(hc.getW())));
}
function qc() {
var t = rc(hc.getW());
if (128 & t) {
fc |= bc;
} else {
fc = fc & ~bc & 255;
}
t = (t << 1) & 255;
cc(hc.getW(), t);
kc(t);
}
function Kc() {
var t = rc(hc.getW());
if (t & ac) {
fc = fc & ~gc & 255;
} else {
fc |= gc;
}
fc = (fc = fc & ~vc & 255) & ~Lc & 255;
fc |M= 64 & t;
fc |= 128 & t;
}
function $c() {
var t = rc(hc.getW());
if (ac >= t) {
fc |= bc;
} else {
fc = fc & ~bc & 255;
}
kc((ac - t) & 255);
}
function ti() {
var t = rc(hc.getW());
if (oc >= t) {
fc |= bc;
} else {
fc = fc & ~bc & 255;
}
kc((oc - t) & 255);
}
function ei() {
var t = rc(hc.getW());
M if (sc >= t) {
fc |= bc;
} else {
fc = fc & ~bc & 255;
}
kc((sc - t) & 255);
}
function ni() {
var t = rc(hc.getW());
t = (t - 1) & 255;
cc(hc.getW(), t);
kc(t);
}
function ri() {
kc((ac ^= rc(hc.getW())));
}
function ci() {
var t = rc(hc.getW());
t = (t + 1) & 255;
cc(hc.getW(), t);
kc(t);
}
function iMi() {
dc.copy(hc);
}
function ai() {
kc((ac = rc(hc.getW())));
}
function oi() {
kc((oc = rc(hc.getW())));
}
function si() {
kc((sc = rc(hc.getW())));
}
function fi() {
fc = fc & ~bc & 255;
fc |= 1 & ac;
kc((ac = (ac >>> 1) & 255));
}
function ui() {
var t = rc(hc.getW());
fc = fc & ~bc & 255;
fc |= 1 & t;
t = (t >>> 1) & 255;
M cc(hc.getW(), t);
kc(t);
}
function di() {
kc((ac |= rc(hc.getW())));
}
function li() {
_c(ac);
}
function hi() {
_c((fc |= mc));
}
function Ai() {
kc((ac = Tc()));
}
function pi() {
fc = Tc();
}
function bi() {
var t = rc(hc.getW());
var e = fc;
if (128 & t) {
fc |= bc;
} else {
fc = fc & M~bc & 255;
}
t = (t << 1) & 255;
t |= 1 & e;
cc(hc.getW(), t);
kc(t);
}
function gi() {
var t = rc(hc.getW());
var e = fc;
fc = fc & ~bc & 255;
fc |= 1 & t;
t = (t >>> 1) & 255;
if (1 & e) {
t |= 128;
}
cc(hc.getW(), t);
kc(t);
}
function yi() {
var t = rc(hc.getW());
if (fc & wc) {
var e = new nc();
M e.setW(ac - t - !(fc & bc));
var n = ((15 & ac) - (15 & t) - !(fc & bc)) & 65535;
var r = ((ac >>> 4) - (t >>> 4)) & 65535;
if (n > 9) {
n = (n - 6) & 65535;
r = (r - 1) & 65535;
}
if (r > 9) {
r = (r - 6) & 65535;
}
(c = new nc()).setW(ac - t - !(fc & bc));
if (c.getBH()) {
fc = fc & ~bc & 255;
} else {
fc |= bc;
}
M if ((ac ^ t) & (ac ^ c.getBL()) & 128) {
fc |= vc;
} else {
fc = fc & ~vc & 255;
}
kc(c.getBL());
if (e.getBL()) {
fc = fc & ~gc & 255;
} else {
fc |= gc;
}
ac = 255 & ((r << 4) | (15 & n));
} else {
var c;
(c = new nc()).setW(ac - t - !(fc & bc));
if (c.getBH()) {
fc = fc & ~bc & 255;
} else {
M fc |= bc;
}
if ((ac ^ t) & (ac ^ c.getBL()) & 128) {
fc |= vc;
} else {
fc = fc & ~vc & 255;
}
kc(c.getBL());
ac = c.getBL();
}
}
function wi() {
cc(hc.getW(), ac);
if (hc.getW() < 0) {
console.error('sally_STA: %d, %d', hc.getW(), ac);
HALT = true;
}
}
function mi() {
cc(hc.getW(), oc);
}
M function Mi() {
cc(hc.getW(), sc);
}
function vi() {
kc((oc = ac));
}
function Ii() {
return dc;
}
function Ci() {
return pc;
}
function Ei(t, e, n, r) {
this.Update = function (t, e, n, r) {
this.left = t;
this.top = e;
this.right = n;
this.bottom = r;
this.length = this.right - this.left + 1;
this.height = this.bottom - this.Mtop + 1;
this.area = this.length * this.height;
};
this.Copy = function (t) {
this.Update(t.left, t.top, t.right, t.bottom);
};
this.GetArea = function () {
return this.area;
};
this.GetLength = function () {
return this.length;
};
this.GetHeight = function () {
return this.height;
};
this.Update(t, e, n, r);
}
function Ji(t) {
if (MGi < 160) {
if (t) {
Bi[Gi] = zi | t;
} else if (4 & Si[60]) {
Bi[Gi] = 0;
}
}
Gi = (Gi + 1) & 255;
}
function Xi(t, e) {
var n = 4 & Si[60];
var r = (16 & zi) | t | e;
if ((3 & r || n) && Gi < 160) {
Bi[Gi] = r;
}
Gi = (Gi + 1) & 255;
}
function qi() {
if (Fi.getW() > 32767) {
if (Zi && 4096 & Fi.getW()) {
M return true;
}
if (Ui && 2048 & Fi.getW()) {
return true;
}
}
return false;
}
function Ki(t) {
if (3 & (t &= 255)) {
return Si[32 + t];
} else {
return Si[32];
}
}
function $i() {
var t = Hi ? Si[Fi.getW()] : xi(Fi.getW());
if (Qi) {
if (qi()) {
Gi = (Gi + 2) & 255;
} else {
Xi(12 & t, (1M92 & t) >>> 6);
Xi((48 & t) >>> 4, (3 & t) << 2);
}
} else if (qi()) {
Gi = (Gi + 4) & 255;
} else {
Ji((192 & t) >>> 6);
Ji((48 & t) >>> 4);
Ji((12 & t) >>> 2);
Ji(3 & t);
}
Fi.wPlusPlus();
}
function ta(t, e) {
for (var n = 0; n < 8; n++) {
t[e + n] = 15 & t[e + n];
}
}
function na() {
if (!_i) {
_i = js_Mget_blit_addr();
}
for (var t = 0; t < 77440; t++) {
_i[t] = 0;
}
for (t = 0; t < 160; t++) {
Ti[0][t] = 0;
Ti[1][t] = 0;
}
ji = 0;
Ri = false;
Pi.setW(0);
Oi.setW(0);
Fi.setW(0);
Gi = 0;
zi = 0;
Wi = 0;
Ui = 0;
Zi = 0;
Qi = 0;
Yi = false;
}
function ra() {
for (var t = 0; t < 77440; t++M) {
_i[t] = 0;
}
}
function ia(t) {
for (var e = 0; e < 768; e++) {
ca[e] = t[e];
}
}
function aa(t) {
var e = atob(t.split(',')[1]);
var n = new Array();
for (var r = 0; r < e.length; r++) {
n.push(e.charCodeAt(r));
}
return n;
}
function va(t) {
console.log('Set sample rate: %d', t);
g = 31440;
console.log('set pokey samplMe rate: %d', g);
(function (t) {
console.log('Set YM sample rate: ' + t);
ct.SetRate(3579545, t);
})(t);
ga = t;
}
function Da(t, e, n) {
for (var r = 0; r < n; r++) {
Ea[Sa++] = e ? (t[r] / 255 + e[r] / 128) / 2 : t[r] / 255;
if (Sa == 16384) {
Sa = 0;
}
}
}
function Na() {
Aa = Da;
if (Ia && (window.AudioContext || window.webkitAudioContextM)) {
Ia.close();
Ia = null;
Ca = null;
}
if (!Ia && (window.AudioContext || window.webkitAudioContext)) {
console.log('init audio');
var t = La;
if (
(Ia = window.AudioContext
? new window.AudioContext({ sampleRate: t })
: new window.webkitAudioContext()).sampleRate
) {
t = Ia.sampleRate;
}
va(t);
(Ca = Ia.createScriptMProcessor(2048, 0, 1)).onaudioprocess =
function (t) {
var e = t.outputBuffer.getChannelData(0);
var n = 0;
for (var r = e.length; xa != Sa && n < r; ) {
e[n++] = Ea[xa++];
if (xa == 16384) {
xa = 0;
}
}
while (n < r) {
e[n++] = 0;
}
};
Ca.connect(Ia.destination);
var e = functioMn () {
if (Ia.state !== 'running') {
Ia.resume();
}
};
var n = document.documentElement;
n.addEventListener('keydown', e);
n.addEventListener('click', e);
n.addEventListener('drop', e);
n.addEventListener('dragdrop', e);
window.addEventListener('gamepadconnected', e);
}
}
function _a(t) {
La = t;
Na();
}
function ro() {
M if (Ya == Qa || (Ya == Ha && ir() == Qa)) {
Di.Copy(Xa);
Ni.Copy(qa);
ia(eo[no]);
Ho(50);
Vo(313);
_a(31300);
} else {
Di.Copy(Va);
Ni.Copy(Ja);
ia(to[no]);
Ho(60);
Vo(263);
_a(31560);
}
}
function co() {
return to[no];
}
function io() {
return eo[no];
}
function ao() {
returMn no;
}
function oo(t) {
no = t;
}
function so() {
return 3;
}
function jo(t) {
Bo = t;
if (nr()) {
_o = 1;
Eo = false;
xo = 0;
ac = 0;
oc = 0;
sc = 0;
fc = Mc;
uc = 0;
dc.setW(0);
Li = 0;
ro();
be();
Y();
Ct();
Ue();
ra();
na()M;
Xt(0);
qt(0);
zt = false;
Wt = 662;
Ut = 0;
Zt = 0;
Yt = false;
Vt = 0;
Jt = 0;
$n();
if (t) {
cr(function (e) {
Pt('onHighScoreCartLoaded', e);
fc = yc | Mc | gc;
dc.setBL(ic[Cc]);
dc.setBH(ic[Ic]);
No = 24;
Co = true;
t();
});
}
M }
}
function Ro() {
if (_o >= of && _o <= of + 3 && No >= (0 | sf) - 1) {
mo[12] &= 127;
} else {
mo[12] |= 128;
}
}
function zo(t) {
if (Co) {
Eo = t;
}
}
function Wo() {
Co = false;
Eo = false;
rr();
na();
ra();
Ue();
(function () {
Ae = 0;
for (var t = 0; t < 2; t++) {
M ie[t] = 0;
ae[t] = 0;
oe[t] = 0;
se[t] = 0;
fe[t] = 0;
ue[t] = 0;
de[t] = 0;
le[t] = 0;
he[t] = 0;
}
be(true);
})();
be(true);
Y();
et(true);
}
function Uo() {
return Co;
}
function Zo() {
return Eo;
}
function Qo() {
return So;
}
function Ho(t) {
M So = t;
(function (t) {
pa = t;
})(t);
}
function Yo() {
return xo;
}
function Vo(t) {
Do = t;
(function (t) {
ba = t;
})(t);
}
function Jo() {
return No;
}
function Xo() {
const t = new Array(172036);
console.log('Saving game state.');
let e;
let n = 0;
for (e = 0; e < 16; e++) {
t[n + e]M = 'PRO-SYSTEM STATE'.charCodeAt(e);
}
n += 16;
t[n++] = 1;
for (e = 0; e < 4; e++) {
t[n + e] = 0;
}
n += 4;
for (e = 0; e < 32; e++) {
t[n + e] = Mr().charCodeAt(e);
}
n += 32;
t[n++] = ac;
t[n++] = oc;
t[n++] = sc;
t[n++] = fc;
t[n++] = uc;
t[n++] = Ii().getBL();
t[n++] = Ii().getBH();
t[n++] = ec();
for (e = 0;M e < 16384; e++) {
t[n + e] = Ne[e];
}
n += 16384;
if (Cr() == bn) {
for (e = 0; e < 16384; e++) {
t[n + e] = Ne[16384 + e];
}
n += 16384;
}
if (hr()) {
for (e = 0; e < 16384; e++) {
t[n + e] = Te[16384 + e];
}
n += 16384;
}
t[n++] = Qt;
t[n++] = Ht;
t[n++] = zt ? 1 : 0;
t[n++] = 255 & (Kt() >>> 8);
M t[n++] = 255 & Kt();
t[n++] = Ut;
t[n++] = 255 & ($t() >>> 8);
t[n++] = 255 & $t();
if (ur()) {
t[n++] = Nt() ? 1 : 0;
t[n++] = Dt() ? 1 : 0;
t[n++] = _t() ? 1 : 0;
t[n++] = At ? 1 : 0;
t[n++] = pt ? 1 : 0;
t[n++] = bt ? 1 : 0;
t[n++] = gt ? 1 : 0;
t[n++] = yt ? 1 : 0;
t[n++] = wt;
t[n++] = mt;
t[n++] = Mt;
t[n++] = vt;
M t[n++] = Lt;
t[n++] = It;
for (e = 0; e < 131072; e++) {
t[n + e] = ut[e];
}
n += 131072;
}
let r = J;
for (let e = 0; e < r.length; e++) {
t[n++] = r[e];
}
r = at;
for (let e = 0; e < r.length; e++) {
t[n++] = r[e];
}
t.length = n;
return t;
}
function qo(t) {
const e = t.length;
console.log('Loading gameM state.');
let n = 0;
if (hr()) {
n = 16384;
}
if (
e != 16741 + n &&
e != 33125 + n &&
e != 147827 + n &&
e != 164211 + n
) {
console.log('Save buffer has an invalid size.');
return false;
}
var r = 0;
for (let e = 0; e < 16; e++) {
if (String.fromCharCode(t[r + e]) != 'PRO-SYSTEM STATE'[e]) {
console.log('Buffer is not a validM ProSystem save state.');
return false;
}
}
r += 16;
t[r++];
for (let t = 0; t < 4; t++) {}
r += 4;
jo(null);
let c = '';
for (let e = 0; e < 32; e++) {
c += String.fromCharCode(t[r + e]);
}
r += 32;
if (Mr() != c) {
console.log(
'Load state digest [' +
c +
'] does not match loaded cartridge digest [' +
M cartridge_digest +
'].'
);
return false;
}
var i = t[r++];
ac = i;
var a = t[r++];
oc = a;
var o = t[r++];
sc = o;
var s = t[r++];
fc = s;
var f = t[r++];
uc = f;
Ii().setBL(t[r++]);
Ii().setBH(t[r++]);
er(t[r++]);
for (let e = 0; e < 16384; e++) {
Ne[e] = t[r + e];
}
r += 16384;
Mif (Cr() == bn) {
for (let e = 0; e < 16384; e++) {
Ne[16384 + e] = t[r + e];
}
r += 16384;
}
if (hr()) {
for (let e = 0; e < 16384; e++) {
Te[16384 + e] = t[r + e];
}
r += 16384;
}
Xt(t[r++]);
qt(t[r++]);
(function (t) {
zt = t;
})(t[r++] === 1);
let u = t[r++];
let d = t[r++];
var h;
(function (M) {
var t = ((u << 8) & 255) | (255 & d);
Wt = t;
})();
var l = t[r++];
Ut = l;
u = t[r++];
d = t[r++];
Zt = ((u << 8) & 255) | (255 & d);
if (ur()) {
h = t[r++] === 1;
dt = h;
(function (t) {
lt = t;
})(t[r++] === 1);
(function (t) {
ht = t;
})(t[r++] === 1);
(function (t) {
At = t;
})(Mt[r++] === 1);
(function (t) {
pt = t;
})(t[r++] === 1);
(function (t) {
bt = t;
})(t[r++] === 1);
(function (t) {
gt = t;
})(t[r++] === 1);
Tt(t[r++] === 1);
(function (t) {
wt = t;
})(t[r++]);
(function (t) {
mt = t;
})(t[r++]);
(function (t) {
Mt = t;
})(t[r++]);
(Mfunction (t) {
vt = t;
})(t[r++]);
(function (t) {
Lt = t;
})(t[r++]);
(function (t) {
It = t;
})(t[r++]);
for (let e = 0; e < 131072; e++) {
ut[e] = t[r++];
}
}
for (let e = 0; e < 32; e++) {
X(16384 + e, t[r++]);
}
for (let e = 0; e < 256; e++) {
ot(e, t[r++]);
}
console.log(t.length + ', ' + Mr);
return true;
}
function Cs() {
var t = null;
t = Is == Qa ? io() : co();
for (var e = 0; e < 256; e++) {
var n = t[3 * e + 0];
var r = t[3 * e + 1];
var c = t[3 * e + 2];
hs[e] = [n, r, c];
}
}
function Es() {
var t = Is == Qa ? cs : ns;
var e = ((is - t) / 2) | 0;
var n = 0;
var r = 0;
var c = 0;
var i = 0;
var a M= 0;
var o = $o;
var s = os;
var f = (Is == Qa ? rs : es) * ts;
for (a = 0; a < t; a++) {
c = f + a * ts;
n = 0;
r = 0 + (((a + e) * ts) << 2);
for (i = 0; i < ts; i++) {
var u = s[c + n];
var d = hs[u];
o[r++] = d[0];
o[r++] = d[1];
o[r++] = d[2];
r++;
n++;
}
}
fs.putImageData(Ko, 0, 0);
}
M function Ss(t) {
_i = os;
if (!ss) {
ss = t.canvas;
us = t.controlsDiv;
ds = t.mainContainer;
ls = t.innerContainer;
Ls = t.debug;
fs = ss.getContext('2d');
Ko = fs.getImageData(0, 0, ts, is);
$o = Ko.data;
}
xs();
Rs();
As = getComputedStyle(ss)['image-rendering'];
ks(ps);
}
function xs() {
for (var t = 3; t < $o.lengthM; t += 4) {
$o[t - 3] = 0;
$o[t - 2] = 0;
$o[t - 1] = 0;
$o[t] = 255;
}
fs.putImageData(Ko, 0, 0);
}
function Ds() {
if (as) {
(function t() {
if (as) {
(function () {
var t = fs;
for (var e = 3; e < $o.length; e += 4) {
var n = Math.random() < 0.5 ? 0 : 255;
$o[e - 3] = n;
$o[e - 2] = nM;
$o[e - 1] = n;
$o[e] = 37;
}
t.putImageData(Ko, 0, 0);
})();
requestAnimationFrame(t);
} else {
xs();
}
})();
}
}
function Ns() {
if (ss) {
var t = document.fullscreenElement;
if (t) {
var e = window.innerHeight - us.offsetHeight;
var n = window.innerWidth;
M ls.style.height = e + 'px';
var r = e;
var c = r * ms;
if (c > n) {
r = (c = n) * Ms;
}
var i = 0;
var a = (r / is) | 0;
if (vs == 1) {
i = a;
}
if (a < 2) {
i = 2;
}
if (i > 0) {
c = (r = is * i) * ms;
}
ss.style.width = c + 'px';
ss.style.height = r + M'px';
ss.style.paddingTop = (((e - r) / 2) | 0) + 'px';
} else {
ls.style.removeProperty('height');
ss.style.removeProperty('padding-top');
ss.style.width = ys + 'px';
ss.style.height = ws + 'px';
}
if (Ls) {
console.log(
'Canvas size: ' + ss.style.width + ' by ' + ss.style.height
);
}
Pt('fullscreen', !!t);
}
}
functiMon _s() {
return ss;
}
function Ts() {
as = false;
}
function ks(t) {
ps = t;
ss.style.imageRendering = t ? 'initial' : As;
}
function Bs() {
return ps;
}
function js() {
return false;
}
function Rs() {
ms = (ys = (ts * bs * gs) | 0) / (ws = is * bs);
Ms = ws / ys;
ds.style.width = ys + 'px';
Ns();
}
function Ps(t) {
M bs = t;
Rs();
}
function Os() {
return bs;
}
function Fs() {
return 2;
}
function Gs(t) {
gs = t;
Rs();
}
function zs() {
return gs;
}
function Ws() {
return 1;
}
function Us() {
return 0;
}
function Zs(t) {
vs = t;
Ns();
}
function Qs() {
return vs;
}
functionM Hs() {
var t = document.getElementById('js7800__fullscreen-container');
if (!Ys()) {
t.requestFullscreen();
Ns();
setTimeout(Ns, 1e3);
}
}
function Ys() {
return document.fullscreenElement;
}
function Vs() {
document.exitFullscreen();
}
function lf(t) {
if (ff != t) {
ff = t;
if ((rf = _s())) {
if (ff) {
rf.addEventListMener('mousemove', hf);
rf.addEventListener('mousedown', Af);
document.addEventListener('mouseup', pf);
rf.style.cursor = 'crosshair';
} else {
rf.removeEventListener('mousemove', hf);
rf.removeEventListener('mousedown', Af);
document.removeEventListener('mouseup', pf);
rf.style.cursor = 'auto';
}
}
}
}
function hf(t) {
var e = rf.MgetBoundingClientRect();
var n = ((t.clientX - e.left) / (rf.scrollWidth / cf)) | 0;
var r = ((t.clientY - e.top) / (rf.scrollHeight / af)) | 0;
n -= Fr();
r -= Gr();
var c = ir();
var i = c == Ks ? tf : $s;
var a = 318 / cf;
of = (r * ((c == Ks ? ef : nf) / af) + (Xs.top - qs.top + 1) + i) | 0;
if ((sf = (188 + n * a) | 0) > Js) {
of++;
sf -= Js;
}
}
function Af(t) {
M hf(t);
if (t.which == 1) {
uf = true;
df = 5;
}
t.preventDefault();
}
function pf(t) {
hf(t);
if (t.which == 1) {
uf = false;
}
t.preventDefault();
}
function Tf(t) {
vf = t;
Pt('onLeftDiffChanged', t);
}
function kf(t) {
Lf = t;
Pt('onRightDiffChanged', t);
}
function Bf(t, e) {
var n = t.keyCode;M
var r = gf.handleKeyCode(n, e) || yf.handleKeyCode(n, e);
if (!r) {
switch (n) {
case xf:
wf = e;
r = true;
break;
case Ef:
mf = e;
r = true;
break;
case Nf:
Mf = e;
r = true;
break;
case 116:
if (!e) {
Tf((vf ^= 1));
}
rM = true;
break;
case 117:
if (!e) {
kf((Lf ^= 1));
}
r = true;
break;
case 112:
r = true;
break;
case 120:
case 122:
if (e) {
Hs();
}
r = true;
}
}
if (r && t.preventDefault) {
t.preventDefault();
}
}
M function jf() {
return mf;
}
function Rf() {
return wf;
}
function Pf() {
return Mf;
}
function Of() {
return vf;
}
function Ff() {
return Lf;
}
function Gf() {
gf.reset();
yf.reset();
Tf(If);
kf(Cf);
}
function zf(t) {
Nf = t;
}
function Wf() {
return Nf;
}
function Uf(t) {
M Ef = t;
}
function Zf() {
return Ef;
}
function Qf(t) {
xf = t;
}
function Hf() {
return xf;
}
function Xf(t, e) {
for (var n in e) {
t[n] = e[n];
}
}
function qf(t) {
Xf(this, {
isAnalogDir: function (t, e, n) {
if (t && t.axes) {
var r = t.axes;
if (r.length > e) {
if (n) {
M return r[e] > 0.5;
} else {
return r[e] < -0.5;
}
}
}
return false;
},
isPressed: function (t, e) {
if (t && t.buttons) {
var n = t.buttons;
if (n.length > e) {
var r = n[e];
return r.pressed || r.value == 1;
}
}
return false;
},
isAnMalogLeft: function (t, e) {
return this.isAnalogDir(t, e << 1, false);
},
isAnalogRight: function (t, e) {
return this.isAnalogDir(t, e << 1, true);
},
isAnalogUp: function (t, e) {
return this.isAnalogDir(t, 1 + (e << 1), false);
},
isAnalogDown: function (t, e) {
return this.isAnalogDir(t, 1 + (e << 1), true);
},
isDigitalLeft: function (t) {
return Mthis.isPressed(t, 14);
},
isDigitalRight: function (t) {
return this.isPressed(t, 15);
},
isDigitalUp: function (t) {
return this.isPressed(t, 12);
},
isDigitalDown: function (t) {
return this.isPressed(t, 13);
},
isButton1: function (t) {
return this.isPressed(t, 0);
},
isButton2: function (t) {
return this.isPressed(t, 1);
M },
isReset: function (t) {
return this.isPressed(t, 9);
},
isSelect: function (t) {
return this.isPressed(t, 8);
},
isPause: function (t) {
return this.isPressed(t, 4) || this.isPressed(t, 5);
},
});
if (t) {
Xf(this, t);
}
}
function tu(t, e) {
var n = t;
var r = e;
return {
setPad: function (t)M {
n = t;
},
getPad: function () {
return n;
},
setMapping: function (t) {
r = t;
},
isLeft: function (t) {
return (
!!n &&
(r.isDigitalLeft(n) || (t !== void 0 && r.isAnalogLeft(n, t)))
);
},
isRight: function (t) {
return (
!!n &&
(r.isDigitalRight(n) || (t !== void 0 && r.MisAnalogRight(n, t)))
);
},
isUp: function (t) {
return (
!!n &&
(r.isDigitalUp(n) || (t !== void 0 && r.isAnalogUp(n, t)))
);
},
isDown: function (t) {
return (
!!n &&
(r.isDigitalDown(n) || (t !== void 0 && r.isAnalogDown(n, t)))
);
},
isAnalogLeft: function (t) {
return !!n && t !== void 0 && r.iMsAnalogLeft(n, t);
},
isAnalogRight: function (t) {
return !!n && t !== void 0 && r.isAnalogRight(n, t);
},
isAnalogUp: function (t) {
return !!n && t !== void 0 && r.isAnalogUp(n, t);
},
isAnalogDown: function (t) {
return !!n && t !== void 0 && r.isAnalogDown(n, t);
},
isButton1: function () {
return !!n && r.isButton1(n);
},
isButton2: funMction () {
return !!n && r.isButton2(n);
},
isReset: function () {
return !!n && r.isReset(n);
},
isSelect: function () {
return !!n && r.isSelect(n);
},
isPause: function () {
return !!n && r.isPause(n);
},
};
}
function nu() {
var t = navigator.getGamepads
? navigator.getGamepads()
: navigator.webkitGetGamepads
M ? navigator.webkitGetGamepads()
: [];
var e = 0;
for (var n = 0; e < 2 && n < t.length; n++) {
var r = t[n];
if (r) {
eu[e].setPad(r);
eu[e].setMapping(Kf);
if ((!r.mapping || r.mapping != 'standard') && Jf) {
eu[e].setMapping($f);
}
e++;
}
}
}
function ru(t) {
return eu[t];
}
function lu(t, e, n) {
M var r = t == 0 ? 0 : 6;
var c = Ar();
var i = pr();
var a = t ? ru(t) : n;
e[0 + r] =
(t ? ou.isRight() : au.isRight()) ||
a.isRight(0) ||
(i && t && n.isAnalogRight(1));
e[1 + r] =
(t ? ou.isLeft() : au.isLeft()) ||
a.isLeft(0) ||
(i && t && n.isAnalogLeft(1));
e[2 + r] =
(t ? ou.isDown() : au.isDown()) ||
a.isDown(0) ||
(i && t && n.isAnalogDowMn(1));
e[3 + r] =
(t ? ou.isUp() : au.isUp()) ||
a.isUp(0) ||
(i && t && n.isAnalogUp(1));
e[(c ? 5 : 4) + r] =
(t ? ou.isButton1() : au.isButton1()) || a.isButton1();
e[(c ? 4 : 5) + r] =
(t ? ou.isButton2() : au.isButton2()) || a.isButton2();
}
function hu(t) {
su = t;
}
function Au(t) {
fu = t;
}
function gu() {
this.el = null;
}
fMunction yu(t, e) {
gu.call(this);
this.title = e;
this.text = t;
}
function wu(t) {
gu.call(this);
this.title = t;
this.cb = null;
}
function Su() {
Iu.call(this);
this.children = [];
}
function xu() {
Su.call(this);
}
function Du() {
Su.call(this);
}
function Nu(t, e) {
Iu.call(this);
this.title = t;
this.imMageSrc = e;
this.img = null;
this.anchor = null;
}
function _u(t, e, n, r) {
Nu.call(this, t, e);
this.onTitle = n;
this.onImageSrc = r;
this.value = false;
}
function Hu(t) {
switch (t) {
case 0:
return Tu;
case 1:
return Ru;
case 2:
return zu;
default:
throw 'Unknown group: ' + t;
}
}
Mfunction Yu() {
return ku && ku.getValue();
}
function Vu() {}
function pd(t, e) {
if (sd) {
requestAnimationFrame(t);
} else if (e) {
t();
} else {
setTimeout(t, 0);
}
}
function bd(t, e) {
ad = t;
var n = 0;
var r = 0;
if (e) {
n = Of();
r = Ff();
}
Kn(t, t.length);
var c = Mr();
(functiMon (t) {
var e = pu[t];
if (e) {
console.log(e);
var n = e.t;
if (n !== void 0) {
vr(n);
}
var r = e.ty;
if (r !== void 0) {
Er(parseInt(r));
}
var c = e.p;
if (c !== void 0) {
Sr(c == 't');
}
var i = e.c1;
if (i !== void 0) {
Dr(parseInt(i));
}
M var a = e.c2;
if (a !== void 0) {
Nr(parseInt(a));
}
var o = e.r;
if (o !== void 0) {
kr(parseInt(o));
}
var s = e.xm;
if (s !== void 0) {
jr(s == 't');
}
var f = e.crossx;
if (f !== void 0) {
Pr(parseInt(f));
}
var u = e.crossy;
if (u !== void 0) {
M Or(parseInt(u));
}
var d = e.dualanalog;
if (d !== void 0) {
zr(d == 't');
}
var l = e.p4;
if (l !== void 0) {
var h = l == 't';
xr(h);
if (h) {
Sr(true);
}
}
var A = e.leftswitch;
if (A !== void 0) {
Wr(parseInt(A));
}
var p = e.rightswitch;
M if (p !== void 0) {
Ur(parseInt(p));
}
var b = e.sb;
if (b !== void 0) {
Zr(b == 't');
}
var g = e.hs;
if (g !== void 0) {
Qr(g == 't');
}
}
})(c);
if (e) {
Wr(n);
Ur(r);
}
console.log('Final values:');
console.log(' Title: %s', Lr());
console.log(' Size: %d', Ir());
M console.log(' Digest: %s', c);
console.log(' Type: %d', Cr());
console.log(' Pokey: %s', ar() ? 'true' : 'false');
console.log(' Pokey450: %s', or() ? 'true' : 'false');
console.log(' Controller 1: %d', _r());
console.log(' Controller 2: %d', Tr());
console.log(' Region: %s', ir() == 1 ? 'PAL' : 'NTSC');
console.log(' Flags: %d', gr());
console.log(
' XM: %s, mode: %s',
dr() ? 'true' : 'false',
M Vr() == 2 ? 'Automatic' : Vr() ? 'Enabled' : 'Disabled'
);
console.log(' Right switch: %d', mr());
console.log(' Left switch: %d', wr());
console.log(' Swap buttons: %s', Ar() ? 'true' : 'false');
console.log(' Dual analog: %s', pr() ? 'true' : 'false');
console.log(' Hblank: %d', yr());
console.log(' Crosshair X: %d', Fr());
console.log(' Crosshair Y: %d', Gr());
console.log(' High score cart enabled: %s',M Hr() ? 'true' : 'false');
Pt('onCartridgeLoaded', i);
(function () {
for (var t = 0; t < uu.length; t++) {
uu[t] = 0;
}
Gf();
du = true;
su = false;
fu = false;
})();
vd();
jo(function () {
Pt('onEmulationStarted', null);
id = false;
xd();
var t = Date.now();
var e = 0;
var n = Qo();
var r = 10 * nM;
var c = 1e3 / n;
var i = c * n * 2;
var a = Uo;
var o = Zo;
var s = 0;
var f = 0;
lf(br());
console.log('Frame ticks: ' + c);
console.log('Frequency: ' + n);
var u = function () {
if (a()) {
if (o()) {
setTimeout(function () {
Ad = true;
pd(u, true);
}, 100);
} else {
M qu();
Ju(ld);
if (ud == 0 || s >= ud) {
Ku();
}
if (++s >= dd) {
s = 0;
}
Xu();
d += c;
var l = Date.now();
if (d + i < l || Ad) {
Ad = false;
d = l;
e = 0;
t = l;
f = 0;
console.log('adjMusted next timestamp.');
}
var h = d - l;
f += h;
if (h > 0) {
setTimeout(function () {
pd(u, true);
}, h);
} else {
pd(u, false);
}
if (++e % r == 0) {
var A = Date.now() - t;
if (od) {
console.log(
'v:%s, vsync: %d, %stimer:M %d, wsync: %d, %d, stl: %d, mar: %d, cpu: %d, ext: %d',
(1e3 / (A / e)).toFixed(2),
sd ? 1 : 0,
sd ? '' : 'wait: ' + ((f / e) * n).toFixed(2) + ', ',
Jt % 1e3,
0,
Oo,
0,
Fo,
Go,
Po
);
}
t = Date.now();
M e = 0;
f = 0;
}
}
}
};
var d = Date.now() + c;
setTimeout(function () {
pd(u, true);
}, c);
});
}
function gd() {
if (ad) {
Md(ad, true);
}
}
function Md(t, e) {
if (!id) {
id = true;
if (Uo()) {
Wo();
}
if (!md) {
Rt(
M (md = new jt('onEmulationStarted', function () {
Ts();
if (!cd.classList.contains('js7800__logo--hide')) {
cd.classList.add('js7800__logo--hide');
cd.classList.remove('js7800__logo--show');
setTimeout(function () {
cd.style.display = 'none';
}, 1e3);
}
}))
);
}
setTimeout(function () {
M bd(t, e);
}, 200);
}
}
function vd(t, e) {
if (!hd) {
hd = true;
(function (t) {
var e = document.getElementById(t);
if (!e) {
throw 'Unable to find element with id: ' + t;
}
($u = document.createElement('div')).className = $u.id = 'js7800';
e.appendChild($u);
var n = document.createElement('div');
n.id = 'js7800__fullscreen-contaiMner';
$u.appendChild(n);
(td = document.createElement('div')).id = td.className =
'js7800__inner-container';
n.appendChild(td);
var r = document.createElement('div');
r.className = 'js7800_noselect';
td.appendChild(r);
(nd = document.createElement('canvas')).id = nd.className =
'js7800__screen';
nd.width = ts;
nd.height = is;
r.appendChild(nd);
M (cd = document.createElement('div')).id = cd.className =
'js7800__logo';
td.appendChild(cd);
var c = document.createElement('img');
c.src =
'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAZAAAACvCAMAAADkOngyAAAAA3NCSVQICAjb4U/gAAABDlBMVEX////////////////////////////////////////////////////////////////89/f69fb58/T47+/26uv05uby5eXx4eLv3d7t19jq09Tq0dPozs7mycvkxcbhv8HgvL3eubvdtbbbsLPYrK3Xp6rVpKbTn6LTnqDQm53PlpnNk5XLjpHJi43Ki43HhonGg4MXEfoLCen3AeHu/dXm9cXS8bXG7a263ZGi2YWS1XWGzWl2xVFmvU1iuUVSsS1CrSEypRUqoREimQESlO0CjOTyiNDmgMjieMTOdKi+bJyuaIymZISWYISaXHyOVGiCTFhqSEhiQDxOPDRKNCA+MBgqLAgiJAAOEAAB7AABKnaFbAAAAWnRSTlMAESIzRFVmd4iZqrvM3e7///////////////////////////////////////////////////////////////////////////////////////////////////+oxBYeAAAACXBIWXMAAC4YAAAuGAEqqicgAAAAIHRFWHRTb2Z0d2FyZQBNYWNyb21lZGlhIEZpcmV3b3JrcyBNWLuRKiQAABgeSURBVHic7V3ZWts61ybz7JVCKFBCmGe6W2iZCgVaoCU4nuKx938jv5xYsiaHwH66v/9A71mDvSzr1Rq1rM7MKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCMgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCj8P0C+WKk1mi0NodVs1CrF/BT3lCq1er1eq5YLuemfEt9RKxenvCN5ULlcYm4oVKZBabIQKQqlcnI3ulw+CXn6GeVsSVONUUAR3VqsNgGgs7y2tbO3t725ujQLoDUqhYkDH90zt7C42GkDtOqlSRcn79FAd8y+X1ycb8fyy1NyUoxvQ6hT46nCNGgKQrT65JeqtVgJ6L3EURaZSzKF1aYaI4c2FHIVNLPdw/P7Z9sNQoTAtfp3p3tL6IUy56yE3q97dHHfH5im/uv78WYHWtWJE1ysAywdnP94MtAdT7enOwug1aZQQzT3s/uXd3cXOwAV8mMFzh9vJ+PHz4U6NTlz+9+QkG1aiGwKN46viISbi4/rs9Cq8O9VhE9PySW/V1vZA29fPrwwRh73PzqtigYrJw9OGHqObZkDBNOyHS8MrbujJdCE0YxG1ID3H+M+HYeg6jm07wyDyn8976OLMwRXq0N67tdFThqM7/Cgwv20C1F7Ukjps6lHo+2H0tAo1/GsF+pE/GWG0XE+FbA/GQn73oJrxpFwLtn+j9UgkBEHo989WoMVpfxGu/iSX/NmeRIj+0hg5eH/ukJJs3riRN6aChmkHkX3ZE0YzM1puJ1bkW/TVw8i/WYVmUT62CsBhPwxs6ikmWgP3W6C9YOoqsBf5AyO+Iwg3oUx+/unxI+Zg2UuYkCocRr4xEhIG65DxyCacRT43D+i93Iv36UJICDkPk7+Hm5MIeXBfGCM/52EXVm6RLhgZF9ihd7EAdXYVF5qw/RwNDe4mwwr981mpQcg1YPUx8vinGGYQ3ixyL8shDyvhUB9fr3veEuTeQEgeViMHC/GHC5pULatwHElmwrAjaxsa9C1/jZDgEj772XSMR2PvQyvPjKZ9EXo8HcnF/Z5kfgst9JhAKt6KnB32ZYVZugt1fLkeXWHCX0VIDR5oIRcgi4xy0AttqSDdi47p+OCvEWMI6R+eRrU++SHfRC2hpaFKC94+yhRTD0AMfzS/PB7SvMx+DxJ9AM5uR1rJHWUbbWWi+gZBWj7ZEttXhhziW+D3MGqQdfaVf668R0n/2zAnqMQZaxbdtDetICZbMUKYeydCH0T8cIwWYvY+yH4PU6gJaWYzkkfGnLw73Epv1GkIK8IkWMgi3QfK85oItV5DxHHykYoG/50Osl69BoxlEN1hji7BoZa2jEdBiOmKsVl5rP0TZDMajQIw0pW80M1OGq4C+N/yWmJvXEFKBG8ZghhcSt57TdsIsSaNlswYkYPlrhEwJw0Q2tDoe9Zw+kY/R0Ldpz96E28l8xIycQF3+TvW5Z4e+1Hmew5M8PSGNjsms/eFTW+Lo4HOIh2kmoO7RvcEcmfr/NSFxtNWD/Gh2f0Qv+BxktYIVID6nBl+jwUtm0Yp2pX52ZkZbD5g41Aw2tISQ5z8hgYsHpdvpjxHOQ7TNkBXir2rCk4pwhtVId4MElEXXoy9kjP8dIYbp+L4jGnw9vI1VpIMICw5eF6IE+2yJD38yKAOjHDv0lkCXtBThm7YgRno4tRwWOzr/GOD07PT29wRrg3B+fYHz5Ot8Yj+ErZ4yQwgsFlCJcJISYw88bI2wd//R9HY/ecRbSt/qPCNGdsH9z8xw6ghZYflebEBhyYpBTSGyC1rHdF/mICX8QgrPxtN/57JXu41h0hSkAbWA9QnzRGMmswj1n3bx7MVunCAm60IqhoaT5d4j120A0Fv9bQnTPOpgHmD+yPZ4RI/oMuRr8Cl4yWKOLrXB1vOCrcPmiiUvkH8ny58aixa0Ay10ZzUCuWEAojqFt47A2PIdygWBcsW5+cLjgxXI+CFEERYi3kUxysQbvvmPPYri/sev5jwgxhtYHaJTLDVhxHP6PwTXUtcMpDNZIUvA4Wpx5pFJTBXKxQeiIb5aDnZAv6aD4UzA3LZoQ3vTlYV8In6JD4TIZIchmanCPF6Hp9TBR/w0hJi4VVWBXmAek5TBrTi0/2omnrQY/wikMVgw9OhVVpJS+OIF/J1ZnGEML4aloJLgUhwY0gRE4IitoXhlhJw6OExr9BiG5bvC1xH3DwWYenIffHmJB/oilnF13+G8nKwZpAbCbs1GcSIBtJ3ggLsu0FwdxMJKTW7uOXIYGsbQrJegYhKBMiIQHJX/4CIYb99MQbk/AsdVrCovJvAfrT+OcE0Sagd/k+rYIwPjOd6K6bDFK3ce3FJMn6lIS0Vn2JECFZzyJkptXzTDIH5b9FyCDYPvO5yQq/YutcFE0FCl+2JJmsYbmB50gSjdgoNJZc0YMYpuv7Q4niDJ/fcdkhVTexHx8Sw2GEl0LOMomQuG5iiELOeQOZSUhtrp94VPc+MXRTE5KxHxKIlT3HgH3eQ/vX2LBW4Y4LFE0UN10Ly90YBO791a00TnYWAT4LQYChe/7j1fenwBWDL+TC2FUb103w3z6SwgZJ1qcjpAI3OHIOD/ewEDFZzySkAniduw/t6usIubiXbQveXN8L2QNyoQuOw06wNVwY1xDzGlNijeE/wRwfgSI+wrseivY7kjh5gOMJYeBCqG3rwtNlG4cF2Xwyg0dJnVy1VNwnXZrG2kWR9OkIa87huYoYrHWx9xGR9GkJeqSHZe+qX/GaE5S0DfOVSBCO4hVYplyujUI8zZyaKmsTamx7egFYtoTi56wx57UHCRIuF+OhArVyuQ+fJ5xlx+rPs0tc28Dxb9jxhlyTrUxGS07bwy9vWLPzGRj064S7MJKTewcsCmeFX+ZBCWYoK9Hx+YpDoamP2mVulRni9AJoGi7eccdKjG4ALwWJ5/WTrqoL8C+8VbFOk0LCHi+N5KMKSxyuc6a0xL1eAE2zy4hjvC/4HTtanIqQIp3gUcVxyFqYSq9yFGYRoq4LwKQnJQBluhKkMtyDeHA14SxPqZ3v752bAemk9HHSgLdofJCWJAurwkytxIKPQ/SwQgtZl4pArkhQj/MSka1RBNzwBWMPlEctb4SZhAiHV1G5GnwFImdEacsl6FiHpQI3wIHFy/4qQuADFrV7DfWrX40dt8IwYThCGAetbDD20lkBbsnk1c3+TonMmcDfNb7P7xFR/0oRyCDF8j0SRBcMU4kcaCnbqNZuMdDnYMIVmfQEhzCddNkNtoNuYMIoRL1jMIKcAH7E8td5nsCv0LQqoSBUFrJR52DdacCZsyycitqL8I5cYG348RL1vy8k2RL+tXX5jx72mCXGv/5pNPZIsoM5JLTZ4zmKsWUpuJbA+bZ2cTQtVNkIuqFOEK/zO4ZqNnOSEl7R12doZPrNy/IQQpSMBPFUmKq7B4L7aPMHQM/OjbLFq42iGvZ6ZPRTtVeOTVwbCEJCT8J12VJfjGhxr2YJ7y6nHdJBkZcnmlGdgm5sbikvVsQkoooEmEhFfoTyk/tjnPJOsSQvKlOsyn7RGpTv0bQmQKQvZBkX+Bj1YkZhFkUt2ovwOtItLcL3xOYVuL6RuhlIF3IgMh+TP9ddoWCC7GclaoiUYqlHBshB/RVKTx64BP1rMJqc32SeR8gIQ0F20SBLPJukBIqaHB3P6ANBC4+myDXPtmQmIF4SfGDFbJUPI1mD98sDMqTubg51MFbi5sLS8hgcH90H9v0tv/pi8YPrewPDWpkQhEW6Rz1dq0VlxjvuMxahu8kTfzGmptsQlqrHvHi3WbsN29JmsjurPOEIOXYu3hK9yIH0T7xXP+CEImCGN4DFTZWAOa/yyoZMYaPKN0ezXoJrnkN8O6oWSlMs5foPHeoeFXbFoxguJ0awTwcYYnD0UYEVUjhk3WKEDZHKaTFgrGDKsBHIpVN1hlCmjMNOLDCMPVyevQj3fd/OyEyD2JEBynVTehdu0JSR2bIejrpaHHjYjldWRj+d4qQfPqi2Rg+zVJOu7UhpEfhbkpIGa6TCTKStUwFTFyynklIqhA4nWx1vTTqooUwhDRqiEnaKeq+s5BauLcTIvMgjjmHLXUF3p1P6lw0jGFkHIBWjAnh0xCfDlLRen7ZZA1/tWlC1vn6zCDcT6eoPqcT6787mot0K5ZP1jMJacyTeg9KmmIhtTT6YHfWGUIANiKbmhbd93vU276ZkBzK/UQFOcOiq9DtM88VYRhedNOBYvEvELMIhErKXEqKRfXLLWRytIMoscsl6FiE5jVQQbOs97nig0n9qOCwh7d9UOxjKxNxVOtJ+MyFVyYaE5XU1/Nd1LxBiXpPPIs1o0IUGfBdM1g1jsj692mRtCuEG5UMKcCJUOVq9NEdjkvUsQuJQA+cueKMxbSxid9ZZQtaoscUty8tMoeWthMg8SFz0G8suwaqQqA+GYRAgV8ZWToJhD8SswftBLRoUFr+sIc7zfLquc9quEGUF6dvRdZMvSfxfSQNhNlnPIqRKCrWxfRq7gGoaCDPJOk3IOnwkYzOs0Dt7xyeRbyNE5kEG0fZ4FHlYcDg+dCvsnx0cnj9zbkX3h0tpWQ5j+Ita75I0T4RlL6dhb556afz3YY8s2cYiqZsg812LUW2kXVpssp5FSNpvguwCEUIC9IAOS1hCvpCmOWd41YMWW6p5IyEyDzJw++3xpNThli+/28GXubha3znlGQmfYI8PUpnEsAL3wm6lxTfcMXlGOgG0xDoZO+mzsPXlzvz8fAdhlkw8u7MOeQUgeDtK6yRIRsofNEbOzzhJCktbh0zIA38X1RkKqsj0+vHNdgK1ISAMOoFnK50tNtHhN7raDrvBtEV06abwXtq/MZ+6HJOMmoxPKx1RmQCWi5vPTU7/ff0L49Zuk/0nkNZGQMnybKMRMIi+BkA3YJKp4h4LMvLD//hZCpAqCIpaxgBrcBxxbwRVOfRpwy/7RsAe7YlNEWlzMiRvuhntxy3d30cVFsX2NDhNq7bTvxXRGGCIQ0g0mWc8gpE4KxKwQgwihdtZZQmafE4U3gx1NaHJ9GyEyBYmLDkmw0eNXvOWt4BWfSzdlEujelTC97hNp/6xwXw2M3mTji7BRSbfHimEZ8t7YVrdWhJiYhfNMbS9mENLi34IHnaxzechB0hlhuOasMOVvIkSqIGa4PlZSSWmPzhLSTgsM+9dPYWM+3E7ePq99EObPctqSjsEvWEVabYOvvpvBFv74j6qbZIBJ1uWExHWTF76DoJJ1tnTSgIdkhcUdfGJT3RsIkSqIhxMqqlKHQbMqOZkY+mm87eb4XMnrX7IxuKbbI8KlHPYCghAbSQoi/s8430to6Ac7dZui6SRaYZF1OSEUs9/CgknW2dDJqgh0NEIU6XbGH6/WE5DSJgsSR93gAkh4u9yFdCdV3v7j1a1rXghPRg8cFaDWaMHslCa+/wLs+rwS6Z6IYstEAlPbx/BpUf2e9owvdxfxwf6XJupwQSaDBg0rWuWpvBc6TIFQPf/Kd+W8hRKogjtVJgkXRJiEbs0Rkpy2DBMHJpfBdsx4MPveWu4dpzz5BnD1Its11b3i2vry8dydW0OKiJ3afad0kE3SyLiUkp22/mBpZwyUcPfPld61j4+UU7QidE68mJAddUUGMiEQVtc4zT4iBoqYqZvNM3NU63BLNuu6EQ9sJXF2YXWQc601Ja69uhy66wxe3KW37fTo56XaYaZk0yAEHdLLOEJLaoDSXzRLC7AKyhBTTTkLXmmNn/Q2ESBXE8kkcVZ0VdrRRmLUK8eEj+RpsiGyi95dZANOyhARwMP7eI1eBR0MGp4udY4rERbIso9YmN4Xnc6RNYIpWsSwmhd5UFIVij0511YceQ9utnrF9/PSFSD2IEd8Riyhye7jrbAM0mwO5wKPYVHiGrOnXr9Mg4okx5yg9KEKygRw5YaC6SnY/h541NBsd4N81Kk3UpIc3lIRbifGJlbJ5gqtKddYGQ+AyJsQDDClaAPTvhtYRIFSS2hVhsbBTELwmH/vf9Xu/gJhB32U1/XdLbloW4AQsZx0b7edr2byO8IaslrpskPzsmjD8vwwAwuG2SDEKo1eA8g8YKaVtEyLaGe634Jodq6teDe8avv5qQnNYVduNQotF/l0rVxL320eEjgTMMAokNGj7PAhngixhao++himJHdxascIUEl6W044fO7UcowyX+W5qsywgpw7fE4hj8Fvwoj02eS33zIXSdaB2L+PV9tqz/SkKqIIlDB8wHGJLSyXg0UgM//sCpMW9n7vYyiLvQRq/ZgEfpUyTyL9MKXtpvMqCrX+O1RmkPSdZlhNSZfpMcJwQn4mmyLiMGklK4ntMKo/d7XEiJXEGu4SN2bh41oys//4hm2vSVt6gWvh4+Jhk/7kaHh2vNU4t1j+00YNBZwbJEm6zJCtDXSb+Is899cMf2MWhYhI7+eGC0UoL76aA0CuQcJrxntr8HVtAYoXvJfY61vCCV76cWOv4zXdRVOpogEDCvaSrU3n9kZEoPuW/ia3CQhhKoNsQ2RybDI9hdO1mWExO3PSb4Um1Siq68kBCmIJEk3ww1GceNTMqb6yHkQL/n+qMKW0+Yt4SsCyezup9S34GEKDtH6Sye+TI4mMSSnklCNPGRnXUJI+oW7kX6qRwk55nfWpa2kqV83AupL+lcSUpF5kFGmxlxWhCVnOkZ0z/uAl1EvFCNi9kHx7NIbg/PWS0/Ro3ugXqveGYiBVIq0ikCSdQkhVN1EdvhP+uEg3lmX9/bSfv2ALI7XESL3IHGmxn3fXYauNeGkpXS+ApQxkq8Itid0ng6So4PoMZag607WKj18nqNdN91vsiQeE0R/YJAk6yIhubQTmKMpZpqDihiRZlxMSu03s/m3i119HiDzESstYKSqw+OvFA8wMM7JWqAgIdiPJ94HU1bfA7uiUoTecoCOGEfXfszEl6ZeQHYFB/x0n6yIhxbT4I/uwHS0TUldJIuuMzxHofP3iTd3vOW1ZoiCjMyckw2qfBeGkM8zivqzbefqNarDlZc6vbkffgN9hq0DXzPTsyOM8dBgbT9VNiNdmkDby4J11kZBqVj8cmSWySZvsrGcdHEDydeTXe687OAC/vkxBqDIWjUIT1n6GkhAgmS3TjfQD7uDQGqzo8hN+jEEQHLMHNCZDWriXGzpDd6PLtsbMevqpiRlsyo6rpDOMcRu8SEizS+om/rrszdNPd5I2+KwvqGi/jqP51xAi9yAD/0fGabVVgO07L5J+UO6EYf/THNSFFT93GUqyecOJntalJ1qWNDh2JS2r8YGf3BGbcVd8lBRlHe4TDiwNJevJFUkO3toJ8A9nI0Lixuzkl6H4FXWMMkoNkiuiUSiHCEl+sHz24IA5y8VXJvMkuIgSLf5EQpCD4WhrRrvQ8qplRbRdWT397YeDaVlKltqz4jOtAv9qZhYZ4SE+xBZv3IdJkaoZjZbKO2xm05xuwchOENnuHE7kXC/wHnCX48ccfHx/254f80FnY+ROOr4j89/Fst/b/JCeO/fk2IqQMD+SXG+nZaHk4wFdEw7gpvwg35JYtepKRX08e50fRuOszPkgZX7szmZCctoEHSyOyZmVrLRlbtQXt1X+uHi3XGx817rnWr+vjzXnQ6vKDkWO9uh1GgTOqs5iW7UVB/3gBGpkHq1c0WP0WN/iPv0VBjIehcdYVj2muw87B3hhHKxLrj9Cc299PLjkc9aRrS4f4ltWR12lQQrrypdjsHBAh80hIEdaOiFDGyDVgNxG2+2l8Cm4RVvG1R4syg0jP1OrH3T0ByTizkCvFZ9C3F3tb+4dHR4d7W73Rafz1cubR7LFedT/e9B1/dMKe+XC6NQvNSYdU56oaLB5ePdlefIdn/brYnYeWuHibGgX52Zhl+pL4xVr0DzMGHrZeFVDghxcxb8oy0eI0U6B8makiOufflUVEolKvx/1YR/wcC8f9X8eL/QJGPj/Cf627s7O1urS6gu2qTKB8NrtwAePdhfRvdsbbYRoTLCMzncwR8gxq5Jsdek6PveauQ7Fty/KUTruXfmb6VwQuThe/P5RGm/Z89CuVaY7QCmvXqdP8dSB7f0apXM/5vDgUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBYX/Jf4Pc7DWV97TaVUAAAAASUVORK5CYII=';
c.alt = 'Atari 7800';
c.className = 'atari7800';
cd.appendChild(c);
(rd = document.createElement('div')).id = rd.className M=
'js7800__controls';
n.appendChild(rd);
})(t);
od = false;
if (e && e.debug) {
od = e.debug;
}
Pt('init', {
canvas: nd,
mainContainer: $u,
innerContainer: td,
controlsDiv: rd,
keyboardData: ld,
Region: a,
debug: od,
});
ed = document.createElement('div');
cd.appendChild(ed);
M Ds();
cd.classList.add('js7800__logo--show');
Rt(new jt('restart', gd));
}
}
function Ld(t) {
t;
}
function Id(t) {
Pt('highScoreCallbackChanged', t);
}
function Cd() {
return sd;
}
function Ed(t) {
sd = t;
}
function Sd() {
return true;
}
function xd() {
if (Qo() == 60) {
switch (fd) {
case 0:
M ud = 0;
dd = 0;
break;
case 1:
ud = 1;
dd = 4;
break;
case 2:
ud = 1;
dd = 2;
break;
case 3:
ud = 3;
dd = 4;
}
} else {
switch (fd) {
case 0:
ud = 0;
dd = 0;
break;
case 1:
ud =M 1;
dd = 5;
break;
case 2:
ud = 1;
dd = 2;
break;
case 3:
ud = 4;
dd = 5;
}
}
console.log('Updated skip count: ' + ud + ', ' + dd);
}
function Dd() {
return 0;
}
function Nd() {
return fd;
}
function _d(t) {
fd = t;
xd();
}
function Td() {
M return Xo();
}
function kd(t) {
return qo(t);
}
n.r(e);
var r = {};
n.r(r);
n.d(r, 'setParentEvents', function () {
return Ot;
});
n.d(r, 'Listener', function () {
return jt;
});
n.d(r, 'addListener', function () {
return Rt;
});
n.d(r, 'fireEvent', function () {
return Pt;
});
var c = {};
n.r(c);
n.d(c, 'ClearROM', function (M) {
return Je;
});
n.d(c, 'WriteROM', function () {
return Ve;
});
n.d(c, 'Write', function () {
return Ye;
});
n.d(c, 'Read', function () {
return Qe;
});
n.d(c, 'ReadMaria', function () {
return He;
});
n.d(c, 'Reset', function () {
return Ue;
});
n.d(c, 'ram', function () {
return Ne;
});
n.d(c, 'rom', function () {
return M_e;
});
n.d(c, 'mariaRam', function () {
return Te;
});
var i = {};
n.r(i);
n.d(i, 'GetCartridgeXM', function () {
return ur;
});
n.d(i, 'GetRegion', function () {
return ir;
});
n.d(i, 'IsBanksets', function () {
return lr;
});
n.d(i, 'IsHaltBankedRam', function () {
return hr;
});
n.d(i, 'IsPokeyEnabled', function () {
return ar;
});
M n.d(i, 'IsPokey450Enabled', function () {
return or;
});
n.d(i, 'IsPokey800Enabled', function () {
return sr;
});
n.d(i, 'IsPokeyWriteOnly', function () {
return fr;
});
n.d(i, 'IsXmEnabled', function () {
return dr;
});
n.d(i, 'IsSwapButtons', function () {
return Ar;
});
n.d(i, 'IsDualAnalog', function () {
return pr;
});
n.d(i, 'IsLightGunEnabled', funcMtion () {
return br;
});
n.d(i, 'GetFlags', function () {
return gr;
});
n.d(i, 'GetHblank', function () {
return yr;
});
n.d(i, 'GetLeftSwitch', function () {
return wr;
});
n.d(i, 'GetRightSwitch', function () {
return mr;
});
n.d(i, 'GetDigest', function () {
return Mr;
});
n.d(i, 'SetTitle', function () {
return vr;
});
n.d(i, 'GetTMitle', function () {
return Lr;
});
n.d(i, 'GetSize', function () {
return Ir;
});
n.d(i, 'GetType', function () {
return Cr;
});
n.d(i, 'SetType', function () {
return Er;
});
n.d(i, 'SetPokey', function () {
return Sr;
});
n.d(i, 'SetPokey450', function () {
return xr;
});
n.d(i, 'SetBanksetsBegin', function () {
return qr;
});
n.d(i,M 'GetBanksetsBegin', function () {
return Kr;
});
n.d(i, 'SetBanksetsEnd', function () {
return $r;
});
n.d(i, 'GetBanksetsEnd', function () {
return tc;
});
n.d(i, 'SetController1', function () {
return Dr;
});
n.d(i, 'SetController2', function () {
return Nr;
});
n.d(i, 'GetController1', function () {
return _r;
});
n.d(i, 'GetController2', function () {
M return Tr;
});
n.d(i, 'SetRegion', function () {
return kr;
});
n.d(i, 'SetFlags', function () {
return Br;
});
n.d(i, 'SetXm', function () {
return jr;
});
n.d(i, 'SetXmMode', function () {
return Yr;
});
n.d(i, 'GetXmMode', function () {
return Vr;
});
n.d(i, 'GetXmModeDefault', function () {
return Jr;
});
n.d(i, 'SetHblank', function () M{
return Rr;
});
n.d(i, 'SetCrossX', function () {
return Pr;
});
n.d(i, 'SetCrossY', function () {
return Or;
});
n.d(i, 'GetCrossX', function () {
return Fr;
});
n.d(i, 'GetCrossY', function () {
return Gr;
});
n.d(i, 'SetDualAnalog', function () {
return zr;
});
n.d(i, 'SetLeftSwitch', function () {
return Wr;
});
n.d(i, 'SetRightSwiMtch', function () {
return Ur;
});
n.d(i, 'SetSwapButtons', function () {
return Zr;
});
n.d(i, 'SetHighScoreCartEnabled', function () {
return Qr;
});
n.d(i, 'IsHighScoreCartEnabled', function () {
return Hr;
});
n.d(i, 'GetCartridgeBank', function () {
return ec;
});
n.d(i, 'Load', function () {
return Kn;
});
n.d(i, 'IsLoaded', function () {
return Mnr;
});
n.d(i, 'Write', function () {
return tr;
});
n.d(i, 'Store', function () {
return $n;
});
n.d(i, 'Release', function () {
return rr;
});
n.d(i, 'LoadHighScoreCart', function () {
return cr;
});
n.d(i, 'IsStored', function () {
return Xr;
});
n.d(i, 'StoreBank', function () {
return er;
});
n.d(i, 'CARTRIDGE_TYPE_NORMAL', function () {
M return hn;
});
n.d(i, 'CARTRIDGE_TYPE_NORMAL_RAM', function () {
return yn;
});
n.d(i, 'CARTRIDGE_TYPE_SUPERCART', function () {
return An;
});
n.d(i, 'CARTRIDGE_TYPE_SUPERCART_RAM', function () {
return bn;
});
n.d(i, 'CARTRIDGE_TYPE_SUPERCART_ROM', function () {
return gn;
});
n.d(i, 'CARTRIDGE_TYPE_SUPERCART_LARGE', function () {
return pn;
});
var a = {};
M n.r(a);
n.d(a, 'REGION_NTSC', function () {
return Za;
});
n.d(a, 'REGION_PAL', function () {
return Qa;
});
n.d(a, 'REGION_AUTO', function () {
return Ha;
});
n.d(a, 'REGION_PALETTE_NTSC', function () {
return Ka;
});
n.d(a, 'REGION_PALETTE_PAL', function () {
return $a;
});
n.d(a, 'Reset', function () {
return ro;
});
n.d(a, 'getNtscPalette', functiMon () {
return co;
});
n.d(a, 'getPalPalette', function () {
return io;
});
n.d(a, 'getPaletteIndex', function () {
return ao;
});
n.d(a, 'setPaletteIndex', function () {
return oo;
});
n.d(a, 'getPaletteIndexDefault', function () {
return so;
});
var o = {};
n.r(o);
n.d(o, 'flipImage', function () {
return Es;
});
n.d(o, 'startScreenSnow', functMion () {
return Ds;
});
n.d(o, 'ATARI_WIDTH', function () {
return ts;
});
n.d(o, 'ATARI_CANVAS_HEIGHT', function () {
return is;
});
n.d(o, 'NTSC_ATARI_BLIT_TOP_Y', function () {
return es;
});
n.d(o, 'PAL_ATARI_BLIT_TOP_Y', function () {
return rs;
});
n.d(o, 'NTSC_ATARI_HEIGHT', function () {
return ns;
});
n.d(o, 'PAL_ATARI_HEIGHT', function () {
rMeturn cs;
});
n.d(o, 'getCanvas', function () {
return _s;
});
n.d(o, 'stopScreenSnow', function () {
return Ts;
});
n.d(o, 'fullScreen', function () {
return Hs;
});
n.d(o, 'exitFullScreen', function () {
return Vs;
});
n.d(o, 'isFullscreen', function () {
return Ys;
});
n.d(o, 'getFilterEnabledDefault', function () {
return js;
});
n.d(o, 'setFMilterEnabled', function () {
return ks;
});
n.d(o, 'isFilterEnabled', function () {
return Bs;
});
n.d(o, 'setScreenSize', function () {
return Ps;
});
n.d(o, 'getScreenSize', function () {
return Os;
});
n.d(o, 'getScreenSizeDefault', function () {
return Fs;
});
n.d(o, 'setScreenRatio', function () {
return Gs;
});
n.d(o, 'getScreenRatio', function () {
M return zs;
});
n.d(o, 'getScreenRatioDefault', function () {
return Ws;
});
n.d(o, 'getFullscreenModeDefault', function () {
return Us;
});
n.d(o, 'setFullscreenMode', function () {
return Zs;
});
n.d(o, 'getFullscreenMode', function () {
return Qs;
});
n.d(o, 'initPalette8', function () {
return Cs;
});
var s = {};
n.r(s);
n.d(s, 'isSelect', function M() {
return jf;
});
n.d(s, 'isReset', function () {
return Rf;
});
n.d(s, 'isPause', function () {
return Pf;
});
n.d(s, 'isLeftDiffSet', function () {
return Of;
});
n.d(s, 'isRightDiffSet', function () {
return Ff;
});
n.d(s, 'setLeftDiffSet', function () {
return Tf;
});
n.d(s, 'setRightDiffSet', function () {
return kf;
});
n.d(s, 'Mreset', function () {
return Gf;
});
n.d(s, 'p1KeyMap', function () {
return gf;
});
n.d(s, 'p2KeyMap', function () {
return yf;
});
n.d(s, 'setPauseKey', function () {
return zf;
});
n.d(s, 'getPauseKey', function () {
return Wf;
});
n.d(s, 'setSelectKey', function () {
return Uf;
});
n.d(s, 'getSelectKey', function () {
return Zf;
});
M n.d(s, 'setResetKey', function () {
return Qf;
});
n.d(s, 'getResetKey', function () {
return Hf;
});
n.d(s, 'defResetKey', function () {
return Df;
});
n.d(s, 'defPauseKey', function () {
return _f;
});
n.d(s, 'defSelectKey', function () {
return Sf;
});
var f = {};
n.r(f);
n.d(f, 'isTouchDevice', function () {
return Yf;
});
n.d(f, 'isMobileDeMvice', function () {
return Vf;
});
n.d(f, 'isIosDevice', function () {
return Jf;
});
n.d(f, 'addProps', function () {
return Xf;
});
var u = {};
n.r(u);
n.d(u, 'poll', function () {
return nu;
});
n.d(u, 'getMapping', function () {
return ru;
});
var d = {};
n.r(d);
n.d(d, 'isPauseButtonDown', function () {
return Yu;
});
n.d(d,M 'getGroup', function () {
return Hu;
});
n.d(d, 'Component', function () {
return Iu;
});
n.d(d, 'Button', function () {
return Cu;
});
n.d(d, 'leaderboardButton', function () {
return Wu;
});
n.d(d, 'settingsButton', function () {
return Zu;
});
n.d(d, 'helpButton', function () {
return Uu;
});
n.d(d, 'pauseButton', function () {
return ku;
}M);
n.d(d, 'soundButton', function () {
return Bu;
});
n.d(d, 'cogsImgSrc', function () {
return mu;
});
n.d(d, 'infoImgSrc', function () {
return Mu;
});
n.d(d, 'medalImgSrc', function () {
return vu;
});
var l = {};
n.r(l);
n.d(l, 'init', function () {
return vd;
});
n.d(l, 'startEmulation', function () {
return Md;
});
n.d(l, 'saveStateM', function () {
return Td;
});
n.d(l, 'loadState', function () {
return kd;
});
n.d(l, 'restart', function () {
return gd;
});
n.d(l, 'setErrorHandler', function () {
return Ld;
});
n.d(l, 'setHighScoreCallback', function () {
return Id;
});
n.d(l, 'HighScoreCallback', function () {
return Vu;
});
n.d(l, 'descriptionDiv', function () {
return ed;
M });
n.d(l, 'isVsyncEnabled', function () {
return Cd;
});
n.d(l, 'setVsyncEnabled', function () {
return Ed;
});
n.d(l, 'getVsyncEnabledDefault', function () {
return Sd;
});
n.d(l, 'getSkipLevelDefault', function () {
return Dd;
});
n.d(l, 'getSkipLevel', function () {
return Nd;
});
n.d(l, 'setSkipLevel', function () {
return _d;
});
var h = {};
M n.r(h);
n.d(h, 'Keys', function () {
return Bd;
});
var A = new Array(0, 0, 0);
var p = 0;
var b = new Array(2048);
var g = 31440;
var y = 0;
var w = new Array(0, 0, 0, 0);
var m = new Array(0, 0, 0, 0);
var M = 0;
var v = new Array(0, 0, 0, 0);
var L = new Array(1, 1, 0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0);
var I = new Array(
0,
0,
1,
1,
0,
M 0,
0,
1,
1,
1,
1,
0,
0,
1,
0,
1,
0,
1,
1,
0,
1,
1,
1,
0,
1,
0,
0,
0,
0,
0,
1
);
var C = new Array(511);
var E = new Array(131071);
var S = 0;
var x = 0;
var D = 0;
var N = 0;
var _ = new Array(0, 0, 0, M0);
var T = new Array(0, 0, 0, 0);
var k = 0;
var B = new Array(511);
var j = new Array(131071);
var R = 0;
var P = 0;
var O = 0;
var F = 0;
var G = 0;
var z = new Array(228, 228, 228, 228, 228, 228, 228, 228);
var W = 0;
var U = 0;
var Z = 0;
var Q = new Array(1, 1, 0, 0);
const J = Array(32);
var nt;
var rt;
(rt = nt || (nt = {})).FM_PGBITS = 9;
rt.FM_RATIOBITS = M7;
rt.FM_LFOBITS = 8;
rt.FM_TLBITS = 7;
rt.FM_TLENTS = 1 << rt.FM_TLBITS;
rt.FM_LFOENTS = 1 << rt.FM_LFOBITS;
rt.FM_CLENTS = 8192;
rt.FM_OPSINBITS = 10;
rt.FM_OPSINENTS = 1 << rt.FM_OPSINBITS;
rt.FM_EG_BOTTOM = 955;
rt.IS2EC_SHIFT = 20 + rt.FM_PGBITS - 13;
(function () {
var t = nt || (nt = {});
(function (t) {
t[(t.typeN = 0)] = 'typeN';
t[(t.typeM = 1)] = 'typeM';
})(t.OpType || (tM.OpType = {}));
t.OpType;
t.pmtable;
t.amtable;
t.tablemade = false;
var e = (function () {
function e() {
this.chip_ = null;
this.out_ = 0;
this.out2_ = 0;
this.in2_ = 0;
this.dp_ = 0;
this.detune_ = 0;
this.detune2_ = 0;
this.multiple_ = 0;
this.pg_count_ = 0;
this.pg_diff_ = 0;
this.pg_diff_lfo_ = 0;M
this.bn_ = 0;
this.eg_level_ = 0;
this.eg_level_on_next_phase_ = 0;
this.eg_count_ = 0;
this.eg_count_diff_ = 0;
this.eg_out_ = 0;
this.tl_out_ = 0;
this.eg_rate_ = 0;
this.eg_curve_count_ = 0;
this.key_scale_rate_ = 0;
this.eg_phase_ = e.EGPhase.next;
this.ms_ = 0;
this.tl_ = 0;
this.tl_latch_ = 0;
this.ar_M = 0;
this.dr_ = 0;
this.sr_ = 0;
this.sl_ = 0;
this.rr_ = 0;
this.ks_ = 0;
this.keyon_ = false;
this.amon_ = false;
this.param_changed_ = false;
this.mute_ = false;
this.dbgopout_ = 0;
this.dbgpgout_ = 0;
if (!e.tablehasmade) {
this.MakeTable();
}
this.ar_ =
this.dr_ =
this.Msr_ =
this.rr_ =
this.key_scale_rate_ =
0;
this.ams_ = t.amtable[0][0];
this.mute_ = false;
this.keyon_ = false;
this.tl_out_ = 0;
this.multiple_ = 0;
this.detune_ = 0;
this.detune2_ = 0;
this.ms_ = 0;
}
e.prototype.SetChip = function (t) {
this.chip_ = t;
};
e.prototype.Reset = function () {
M this.tl_ = this.tl_latch_ = 127;
this.ShiftPhase(e.EGPhase.off);
this.eg_count_ = 0;
this.eg_curve_count_ = 0;
this.pg_count_ = 0;
this.out_ = this.out2_ = 0;
this.param_changed_ = true;
};
e.prototype.MakeTable = function () {
var r = 0;
for (var n = 0; n < 256; n++) {
var c = Math.floor(Math.pow(2, 13 - n / 256));
c = (c + 2) & -4;
M e.cltable[r++] = c;
e.cltable[r++] = -c;
}
while (r < t.FM_CLENTS) {
e.cltable[r] = (e.cltable[r - 512] / 2) | 0;
r++;
}
for (n = 0; n < t.FM_OPSINENTS / 2; n++) {
var i = ((2 * n + 1) * Math.PI) / t.FM_OPSINENTS;
var a = (-256 * Math.log(Math.sin(i))) / Math.LN2;
var o = Math.floor(a + 0.5) + 1;
e.sinetable[n] = 2 * o;
e.Msinetable[t.FM_OPSINENTS / 2 + n] = 2 * o + 1;
}
t.MakeLFOTable();
e.tablehasmade = true;
};
e.prototype.SetDPBN = function (t, e) {
this.dp_ = t;
this.bn_ = e;
this.param_changed_ = true;
};
e.prototype.Prepare = function () {
if (this.param_changed_) {
switch (
((this.param_changed_ = false),
(this.pg_diff_ =
M (this.dp_ + e.dttable[this.detune_ + this.bn_]) *
this.chip_.GetMulValue(this.detune2_, this.multiple_)),
(this.pg_diff_lfo_ = this.pg_diff_ >> 11),
(this.key_scale_rate_ = this.bn_ >> (3 - this.ks_)),
(this.tl_out_ = this.mute_ ? 1023 : 8 * this.tl_),
this.eg_phase_)
) {
case e.EGPhase.attack:
this.SetEGRate(
this.ar_
M ? Math.min(63, this.ar_ + this.key_scale_rate_)
: 0
);
break;
case e.EGPhase.decay:
this.SetEGRate(
this.dr_
? Math.min(63, this.dr_ + this.key_scale_rate_)
: 0
);
this.eg_level_on_next_phase_ = 8 * this.sl_;
break;
case e.EGPhase.sustain:
this.SMetEGRate(
this.sr_
? Math.min(63, this.sr_ + this.key_scale_rate_)
: 0
);
break;
case e.EGPhase.release:
this.SetEGRate(
Math.min(63, this.rr_ + this.key_scale_rate_)
);
}
this.ams_ =
t.amtable[this.type_][this.amon_ ? (this.ms_ >> 4) & 3 : 0];
this.EGUpdate();
M this.dbgopout_ = 0;
}
};
e.prototype.ShiftPhase = function (n) {
switch (n) {
case e.EGPhase.attack:
if (this.ar_ + this.key_scale_rate_ < 62) {
this.SetEGRate(
this.ar_
? Math.min(63, this.ar_ + this.key_scale_rate_)
: 0
);
this.eg_phase_ = e.EGPhase.attack;
break;
M }
case e.EGPhase.decay:
if (this.sl_) {
this.eg_level_ = 0;
this.eg_level_on_next_phase_ = 8 * this.sl_;
this.SetEGRate(
this.dr_
? Math.min(63, this.dr_ + this.key_scale_rate_)
: 0
);
this.eg_phase_ = e.EGPhase.decay;
break;
}
case e.EGPhase.sustMain:
this.eg_level_ = 8 * this.sl_;
this.eg_level_on_next_phase_ = 1024;
this.SetEGRate(
this.sr_ ? Math.min(63, this.sr_ + this.key_scale_rate_) : 0
);
this.eg_phase_ = e.EGPhase.sustain;
break;
case e.EGPhase.release:
if (
this.eg_phase_ === e.EGPhase.attack ||
this.eg_level_ < t.FM_EG_BOTTOM
) {
M this.eg_level_on_next_phase_ = 1024;
this.SetEGRate(
Math.min(63, this.rr_ + this.key_scale_rate_)
);
this.eg_phase_ = e.EGPhase.release;
break;
}
case e.EGPhase.off:
default:
this.eg_level_ = t.FM_EG_BOTTOM;
this.eg_level_on_next_phase_ = t.FM_EG_BOTTOM;
this.EGUpdate();
thiMs.SetEGRate(0);
this.eg_phase_ = e.EGPhase.off;
}
};
e.prototype.SetFNum = function (t) {
this.dp_ = (2047 & t) << ((t >> 11) & 7);
this.bn_ = e.notetable[(t >> 7) & 127];
this.param_changed_ = true;
};
e.prototype.LogToLin = function (n) {
if (n < t.FM_CLENTS) {
return e.cltable[n];
} else {
return 0;
}
};
M e.prototype.EGUpdate = function () {
this.eg_out_ = Math.min(this.tl_out_ + this.eg_level_, 1023) << 3;
};
e.prototype.SetEGRate = function (t) {
this.eg_rate_ = t;
this.eg_count_diff_ =
e.decaytable2[t >> 2] * this.chip_.GetRatio();
};
e.prototype.EGCalc = function () {
this.eg_count_ = 6141 << t.FM_RATIOBITS;
if (this.eg_phase_ === e.EGPhase.attack) {
var nM = e.attacktable[this.eg_rate_][7 & this.eg_curve_count_];
if (n >= 0) {
this.eg_level_ -= 1 + (this.eg_level_ >> n);
if (this.eg_level_ <= 0) {
this.ShiftPhase(e.EGPhase.decay);
}
}
this.EGUpdate();
} else {
this.eg_level_ +=
e.decaytable1[this.eg_rate_][7 & this.eg_curve_count_];
if (this.eg_level_ >= this.eg_level_on_next_phase_)M {
this.ShiftPhase(this.eg_phase_ + 1);
}
this.EGUpdate();
}
this.eg_curve_count_++;
};
e.prototype.EGStep = function () {
this.eg_count_ -= this.eg_count_diff_;
if (this.eg_count_ <= 0) {
this.EGCalc();
}
};
e.prototype.PGCalc = function () {
var t = this.pg_count_;
this.pg_count_ += this.pg_diff_;
M this.dbgpgout_ = t;
return t;
};
e.prototype.PGCalcL = function () {
var t = this.pg_count_;
this.pg_count_ +=
this.pg_diff_ +
((this.pg_diff_lfo_ * this.chip_.GetPMV()) >> 5);
this.dbgpgout_ = t;
return t;
};
e.prototype.Calc = function (n) {
this.EGStep();
this.out2_ = this.out_;
var r = this.PGCalc() >> (20 + t.FM_PGMBITS - t.FM_OPSINBITS);
r +=
n >> (20 + t.FM_PGBITS - t.FM_OPSINBITS - (2 + t.IS2EC_SHIFT));
this.out_ = this.LogToLin(
this.eg_out_ + e.sinetable[r & (t.FM_OPSINENTS - 1)]
);
this.dbgopout_ = this.out_;
return this.out_;
};
e.prototype.CalcL = function (n) {
this.EGStep();
var r = this.PGCalcL() >> (20 + t.FM_PGBITS - t.FM_OPSINBITS);
r +=
M n >> (20 + t.FM_PGBITS - t.FM_OPSINBITS - (2 + t.IS2EC_SHIFT));
this.out_ = this.LogToLin(
this.eg_out_ +
e.sinetable[r & (t.FM_OPSINENTS - 1)] +
this.ams_[this.chip_.GetAML()]
);
this.dbgopout_ = this.out_;
return this.out_;
};
e.prototype.CalcN = function (t) {
this.EGStep();
var e = Math.max(0, 1023 - (this.tl_out_ + this.eg_level_)) << 1;
M t = (1 & t) - 1;
this.out_ = (e + t) ^ t;
this.dbgopout_ = this.out_;
return this.out_;
};
e.prototype.CalcFB = function (n) {
this.EGStep();
var r = this.out_ + this.out2_;
this.out2_ = this.out_;
var c = this.PGCalc() >> (20 + t.FM_PGBITS - t.FM_OPSINBITS);
if (n < 31) {
c +=
((r << (1 + t.IS2EC_SHIFT)) >> n) >>
(20 + t.FMM_PGBITS - t.FM_OPSINBITS);
}
this.out_ = this.LogToLin(
this.eg_out_ + e.sinetable[c & (t.FM_OPSINENTS - 1)]
);
this.dbgopout_ = this.out2_;
return this.out2_;
};
e.prototype.CalcFBL = function (n) {
this.EGStep();
var r = this.out_ + this.out2_;
this.out2_ = this.out_;
var c = this.PGCalcL() >> (20 + t.FM_PGBITS - t.FM_OPSINBITS);
if (n M< 31) {
c +=
((r << (1 + t.IS2EC_SHIFT)) >> n) >>
(20 + t.FM_PGBITS - t.FM_OPSINBITS);
}
this.out_ = this.LogToLin(
this.eg_out_ +
e.sinetable[c & (t.FM_OPSINENTS - 1)] +
this.ams_[this.chip_.GetAML()]
);
this.dbgopout_ = this.out_;
return this.out_;
};
e.prototype.ResetFB = function () {
this.out_ = this.oMut2_ = 0;
};
e.prototype.KeyOn = function () {
if (!this.keyon_) {
this.keyon_ = true;
if (
this.eg_phase_ === e.EGPhase.off ||
this.eg_phase_ === e.EGPhase.release
) {
this.ShiftPhase(e.EGPhase.attack);
this.EGUpdate();
this.in2_ = this.out_ = this.out2_ = 0;
this.pg_count_ = 0;
}
}
M };
e.prototype.KeyOff = function () {
if (this.keyon_) {
this.keyon_ = false;
this.ShiftPhase(e.EGPhase.release);
}
};
e.prototype.IsOn = function () {
return this.eg_phase_ - e.EGPhase.off;
};
e.prototype.SetDT = function (t) {
this.detune_ = 32 * t;
this.param_changed_ = true;
};
e.prototype.SetDT2 = function (t) {
Mthis.detune2_ = 3 & t;
this.param_changed_ = true;
};
e.prototype.SetMULTI = function (t) {
this.multiple_ = t;
this.param_changed_ = true;
};
e.prototype.SetTL = function (t) {
this.tl_ = t;
this.param_changed_ = true;
};
e.prototype.SetAR = function (t) {
this.ar_ = t;
this.param_changed_ = true;
};
e.prototype.SetDR = funMction (t) {
this.dr_ = t;
this.param_changed_ = true;
};
e.prototype.SetSR = function (t) {
this.sr_ = t;
this.param_changed_ = true;
};
e.prototype.SetSL = function (t) {
this.sl_ = t;
this.param_changed_ = true;
};
e.prototype.SetRR = function (t) {
this.rr_ = t;
this.param_changed_ = true;
};
e.prototype.SetMKS = function (t) {
this.ks_ = t;
this.param_changed_ = true;
};
e.prototype.SetAMON = function (t) {
this.amon_ = t;
this.param_changed_ = true;
};
e.prototype.Mute = function (t) {
this.mute_ = t;
this.param_changed_ = true;
};
e.prototype.SetMS = function (t) {
this.ms_ = t;
this.param_changed_ = true;
};
e.Mprototype.Out = function () {
return this.out_;
};
e.notetable = [
0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4,
4, 5, 6, 7, 7, 7, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 8, 9, 10, 11, 11,
11, 11, 11, 11, 11, 12, 12, 12, 12, 12, 12, 12, 13, 14, 15, 15,
15, 15, 15, 15, 15, 16, 16, 16, 16, 16, 16, 16, 17, 18, 19, 19,
19, 19, 19, 19, 19, 20, 20, 20, 20, 20, 20, 20, 21, 22, 23, 23,
23, 23,M 23, 23, 23, 24, 24, 24, 24, 24, 24, 24, 25, 26, 27, 27,
27, 27, 27, 27, 27, 28, 28, 28, 28, 28, 28, 28, 29, 30, 31, 31,
31, 31, 31, 31, 31,
];
e.dttable = [
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2,
4, 4, 4, 4, 4, 6, 6, 6, 8, 8, 8, 10, 10, 12, 12, 14, 16, 16, 16,
16, 2, 2, 2, 2, 4, 4, 4, 4, 4, 6, 6, 6, 8, 8, 8, 10, 10, M12, 12,
14, 16, 16, 18, 20, 22, 24, 26, 28, 32, 32, 32, 32, 4, 4, 4, 4, 4,
6, 6, 6, 8, 8, 8, 10, 10, 12, 12, 14, 16, 16, 18, 20, 22, 24, 26,
28, 32, 34, 38, 40, 44, 44, 44, 44, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, -2, -2, -2, -2, -2, -2, -2, -2, -4, -4, -4, -4, -4,
-6, -6, -6, -8, -8, -8, -10, -10, -12, -12, -14, -16, -16, -16,
-16, -2, -2, -2, -2, M-4, -4, -4, -4, -4, -6, -6, -6, -8, -8, -8,
-10, -10, -12, -12, -14, -16, -16, -18, -20, -22, -24, -26, -28,
-32, -32, -32, -32, -4, -4, -4, -4, -4, -6, -6, -6, -8, -8, -8,
-10, -10, -12, -12, -14, -16, -16, -18, -20, -22, -24, -26, -28,
-32, -34, -38, -40, -44, -44, -44, -44,
];
e.decaytable1 = [
[0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0],
[1, 1, 1, 1, 1, 1, 1, 1],
[1, 1, M1, 1, 1, 1, 1, 1],
[1, 1, 1, 1, 1, 1, 1, 1],
[1, 1, 1, 1, 1, 1, 1, 1],
[1, 1, 1, 0, 1, 1, 1, 0],
[1, 1, 1, 0, 1, 1, 1, 0],
[1, 0, 1, 0, 1, 0, 1, 0],
[1, 1, 1, 0, 1, 0, 1, 0],
[1, 1, 1, 0, 1, 1, 1, 0],
[1, 1, 1, 1, 1, 1, 1, 0],
[1, 0, 1, 0, 1, 0, 1, 0],
[1, 1, 1, 0, 1, 0, 1, 0],
[1, 1, 1, 0, 1, 1, 1, 0],
[1, 1, 1, 1, 1, 1, 1, 0],
[1, 0, M1, 0, 1, 0, 1, 0],
[1, 1, 1, 0, 1, 0, 1, 0],
[1, 1, 1, 0, 1, 1, 1, 0],
[1, 1, 1, 1, 1, 1, 1, 0],
[1, 0, 1, 0, 1, 0, 1, 0],
[1, 1, 1, 0, 1, 0, 1, 0],
[1, 1, 1, 0, 1, 1, 1, 0],
[1, 1, 1, 1, 1, 1, 1, 0],
[1, 0, 1, 0, 1, 0, 1, 0],
[1, 1, 1, 0, 1, 0, 1, 0],
[1, 1, 1, 0, 1, 1, 1, 0],
[1, 1, 1, 1, 1, 1, 1, 0],
[1, 0, 1, 0, 1, 0, 1, 0],
[1, 1, M1, 0, 1, 0, 1, 0],
[1, 1, 1, 0, 1, 1, 1, 0],
[1, 1, 1, 1, 1, 1, 1, 0],
[1, 0, 1, 0, 1, 0, 1, 0],
[1, 1, 1, 0, 1, 0, 1, 0],
[1, 1, 1, 0, 1, 1, 1, 0],
[1, 1, 1, 1, 1, 1, 1, 0],
[1, 0, 1, 0, 1, 0, 1, 0],
[1, 1, 1, 0, 1, 0, 1, 0],
[1, 1, 1, 0, 1, 1, 1, 0],
[1, 1, 1, 1, 1, 1, 1, 0],
[1, 0, 1, 0, 1, 0, 1, 0],
[1, 1, 1, 0, 1, 0, 1, 0],
[1, 1, M1, 0, 1, 1, 1, 0],
[1, 1, 1, 1, 1, 1, 1, 0],
[1, 0, 1, 0, 1, 0, 1, 0],
[1, 1, 1, 0, 1, 0, 1, 0],
[1, 1, 1, 0, 1, 1, 1, 0],
[1, 1, 1, 1, 1, 1, 1, 0],
[1, 1, 1, 1, 1, 1, 1, 1],
[2, 1, 1, 1, 2, 1, 1, 1],
[2, 1, 2, 1, 2, 1, 2, 1],
[2, 2, 2, 1, 2, 2, 2, 1],
[2, 2, 2, 2, 2, 2, 2, 2],
[4, 2, 2, 2, 4, 2, 2, 2],
[4, 2, 4, 2, 4, 2, 4, 2],
[4, 4, M4, 2, 4, 4, 4, 2],
[4, 4, 4, 4, 4, 4, 4, 4],
[8, 4, 4, 4, 8, 4, 4, 4],
[8, 4, 8, 4, 8, 4, 8, 4],
[8, 8, 8, 4, 8, 8, 8, 4],
[16, 16, 16, 16, 16, 16, 16, 16],
[16, 16, 16, 16, 16, 16, 16, 16],
[16, 16, 16, 16, 16, 16, 16, 16],
[16, 16, 16, 16, 16, 16, 16, 16],
];
e.decaytable2 = [
1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2047, 2047, 2047,
2047, 2047,
M ];
e.attacktable = [
[-1, -1, -1, -1, -1, -1, -1, -1],
[-1, -1, -1, -1, -1, -1, -1, -1],
[4, 4, 4, 4, 4, 4, 4, 4],
[4, 4, 4, 4, 4, 4, 4, 4],
[4, 4, 4, 4, 4, 4, 4, 4],
[4, 4, 4, 4, 4, 4, 4, 4],
[4, 4, 4, -1, 4, 4, 4, -1],
[4, 4, 4, -1, 4, 4, 4, -1],
[4, -1, 4, -1, 4, -1, 4, -1],
[4, 4, 4, -1, 4, -1, 4, -1],
[4, 4, 4, -1, 4, 4, 4, -1],
M [4, 4, 4, 4, 4, 4, 4, -1],
[4, -1, 4, -1, 4, -1, 4, -1],
[4, 4, 4, -1, 4, -1, 4, -1],
[4, 4, 4, -1, 4, 4, 4, -1],
[4, 4, 4, 4, 4, 4, 4, -1],
[4, -1, 4, -1, 4, -1, 4, -1],
[4, 4, 4, -1, 4, -1, 4, -1],
[4, 4, 4, -1, 4, 4, 4, -1],
[4, 4, 4, 4, 4, 4, 4, -1],
[4, -1, 4, -1, 4, -1, 4, -1],
[4, 4, 4, -1, 4, -1, 4, -1],
[4, 4, 4, -1, 4, 4, 4, -1],
[4,M 4, 4, 4, 4, 4, 4, -1],
[4, -1, 4, -1, 4, -1, 4, -1],
[4, 4, 4, -1, 4, -1, 4, -1],
[4, 4, 4, -1, 4, 4, 4, -1],
[4, 4, 4, 4, 4, 4, 4, -1],
[4, -1, 4, -1, 4, -1, 4, -1],
[4, 4, 4, -1, 4, -1, 4, -1],
[4, 4, 4, -1, 4, 4, 4, -1],
[4, 4, 4, 4, 4, 4, 4, -1],
[4, -1, 4, -1, 4, -1, 4, -1],
[4, 4, 4, -1, 4, -1, 4, -1],
[4, 4, 4, -1, 4, 4, 4, -1],
[4, 4, 4, 4, M4, 4, 4, -1],
[4, -1, 4, -1, 4, -1, 4, -1],
[4, 4, 4, -1, 4, -1, 4, -1],
[4, 4, 4, -1, 4, 4, 4, -1],
[4, 4, 4, 4, 4, 4, 4, -1],
[4, -1, 4, -1, 4, -1, 4, -1],
[4, 4, 4, -1, 4, -1, 4, -1],
[4, 4, 4, -1, 4, 4, 4, -1],
[4, 4, 4, 4, 4, 4, 4, -1],
[4, -1, 4, -1, 4, -1, 4, -1],
[4, 4, 4, -1, 4, -1, 4, -1],
[4, 4, 4, -1, 4, 4, 4, -1],
[4, 4, 4, 4, 4, 4, 4, -M1],
[4, 4, 4, 4, 4, 4, 4, 4],
[3, 4, 4, 4, 3, 4, 4, 4],
[3, 4, 3, 4, 3, 4, 3, 4],
[3, 3, 3, 4, 3, 3, 3, 4],
[3, 3, 3, 3, 3, 3, 3, 3],
[2, 3, 3, 3, 2, 3, 3, 3],
[2, 3, 2, 3, 2, 3, 2, 3],
[2, 2, 2, 3, 2, 2, 2, 3],
[2, 2, 2, 2, 2, 2, 2, 2],
[1, 2, 2, 2, 1, 2, 2, 2],
[1, 2, 1, 2, 1, 2, 1, 2],
[1, 1, 1, 2, 1, 1, 1, 2],
[0, 0, 0, 0, 0, 0, 0, M0],
[0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0],
];
e.tablehasmade = false;
e.sinetable = new Array(1024);
e.cltable = new Array(t.FM_CLENTS);
e.EGPhase = {
next: 0,
attack: 1,
decay: 2,
sustain: 3,
release: 4,
off: 5,
};
return e;
})();
t.Operator = e;
M var n = (function () {
function n() {
this.op = [new e(), new e(), new e(), new e()];
this.tablehasmade = false;
this.fb = 0;
this.buf = new Array(4);
this.inop = new Array(3);
this.outop = new Array(3);
this.algo_ = 0;
this.chip_ = null;
if (!this.tablehasmade) {
this.MakeTable();
}
this.SetAlgorithm(0);
this.pms =M t.pmtable[0][0];
}
n.prototype.MakeTable = function () {
for (var t = 0; t < 64; t++) {
n.kftable[t] = (65536 * Math.pow(2, t / 768)) | 0;
}
};
n.prototype.SetChip = function (t) {
this.chip_ = t;
for (var e = 0; e < 4; e++) {
this.op[e].SetChip(t);
}
};
n.prototype.Reset = function () {
for (var t = 0; t < 4; t++) {
M this.op[t].Reset();
}
};
n.prototype.Prepare = function () {
for (var e = 0; e < 4; e++) {
this.op[e].Prepare();
}
this.pms = t.pmtable[this.op[0].type_][7 & this.op[0].ms_];
return (
(this.op[0].IsOn() |
this.op[1].IsOn() |
this.op[2].IsOn() |
this.op[3].IsOn()
? 1
: 0) |
(this.op[0].ms_ M&
(this.op[0].amon_ ||
this.op[1].amon_ ||
this.op[2].amon_ ||
this.op[3].amon_
? 55
: 7)
? 2
: 0)
);
};
n.prototype.SetFNum = function (t) {
for (var e = 0; e < 4; e++) {
this.op[e].SetFNum(t);
}
};
n.prototype.SetKCKF = function (t, e) {
var r = 19 - ((t >> 4) &M 7);
var c = [
5197, 5506, 5833, 6180, 6180, 6547, 6937, 7349, 7349, 7786,
8249, 8740, 8740, 9259, 9810, 10394,
][15 & t];
var i = (c = ((c + 2) / 4) * 4) * n.kftable[63 & e];
i >>= 19;
i <<= 19;
i >>= r;
var a = (t >> 2) & 31;
this.op[0].SetDPBN(i, a);
this.op[1].SetDPBN(i, a);
this.op[2].SetDPBN(i, a);
this.op[3].SetDPBN(i, a);
M };
n.prototype.KeyControl = function (t) {
if (1 & t) {
this.op[0].KeyOn();
} else {
this.op[0].KeyOff();
}
if (2 & t) {
this.op[1].KeyOn();
} else {
this.op[1].KeyOff();
}
if (4 & t) {
this.op[2].KeyOn();
} else {
this.op[2].KeyOff();
}
if (8 & t) {
M this.op[3].KeyOn();
} else {
this.op[3].KeyOff();
}
};
n.prototype.SetAlgorithm = function (t) {
var e = [
[0, 1, 1, 2, 2, 3],
[1, 0, 0, 1, 1, 2],
[1, 1, 1, 0, 0, 2],
[0, 1, 2, 1, 1, 2],
[0, 1, 2, 2, 2, 1],
[0, 1, 0, 1, 0, 1],
[0, 1, 2, 1, 2, 1],
[1, 0, 1, 0, 1, 0],
];
this.inMop[0] = e[t][0];
this.outop[0] = e[t][1];
this.inop[1] = e[t][2];
this.outop[1] = e[t][3];
this.inop[2] = e[t][4];
this.outop[2] = e[t][5];
this.op[0].ResetFB();
this.algo_ = t;
};
n.prototype.Calc = function () {
var t;
switch (this.algo_) {
case 0:
this.op[2].Calc(this.op[1].Out());
this.op[1].Calc(this.op[0].Out()M);
t = this.op[3].Calc(this.op[2].Out());
this.op[0].CalcFB(this.fb);
break;
case 1:
this.op[2].Calc(this.op[0].Out() + this.op[1].Out());
this.op[1].Calc(0);
t = this.op[3].Calc(this.op[2].Out());
this.op[0].CalcFB(this.fb);
break;
case 2:
this.op[2].Calc(this.op[1].Out());
this.op[1].Calc(0);
M t = this.op[3].Calc(this.op[0].Out() + this.op[2].Out());
this.op[0].CalcFB(this.fb);
break;
case 3:
this.op[2].Calc(0);
this.op[1].Calc(this.op[0].Out());
t = this.op[3].Calc(this.op[1].Out() + this.op[2].Out());
this.op[0].CalcFB(this.fb);
break;
case 4:
this.op[2].Calc(0);
t = this.op[1].Calc(this.op[0].Out());
M t += this.op[3].Calc(this.op[2].Out());
this.op[0].CalcFB(this.fb);
break;
case 5:
t = this.op[2].Calc(this.op[0].Out());
t += this.op[1].Calc(this.op[0].Out());
t += this.op[3].Calc(this.op[0].Out());
this.op[0].CalcFB(this.fb);
break;
case 6:
t = this.op[2].Calc(0);
t += this.op[1].Calc(this.op[0].Out());
M t += this.op[3].Calc(0);
this.op[0].CalcFB(this.fb);
break;
case 7:
t = this.op[2].Calc(0);
t += this.op[1].Calc(0);
t += this.op[3].Calc(0);
t += this.op[0].CalcFB(this.fb);
}
return t;
};
n.prototype.CalcL = function () {
var t;
switch (
(this.chip_.SetPMV(this.pms[this.chip_.GetPMLM()]), this.algo_)
) {
case 0:
this.op[2].CalcL(this.op[1].Out());
this.op[1].CalcL(this.op[0].Out());
t = this.op[3].CalcL(this.op[2].Out());
this.op[0].CalcFBL(this.fb);
break;
case 1:
this.op[2].CalcL(this.op[0].Out() + this.op[1].Out());
this.op[1].CalcL(0);
t = this.op[3].CalcL(this.op[2].Out());
this.op[0]M.CalcFBL(this.fb);
break;
case 2:
this.op[2].CalcL(this.op[1].Out());
this.op[1].CalcL(0);
t = this.op[3].CalcL(this.op[0].Out() + this.op[2].Out());
this.op[0].CalcFBL(this.fb);
break;
case 3:
this.op[2].CalcL(0);
this.op[1].CalcL(this.op[0].Out());
t = this.op[3].CalcL(this.op[1].Out() + this.op[2].Out());
M this.op[0].CalcFBL(this.fb);
break;
case 4:
this.op[2].CalcL(0);
t = this.op[1].CalcL(this.op[0].Out());
t += this.op[3].CalcL(this.op[2].Out());
this.op[0].CalcFBL(this.fb);
break;
case 5:
t = this.op[2].CalcL(this.op[0].Out());
t += this.op[1].CalcL(this.op[0].Out());
t += this.op[3].CalcL(this.op[0].Out());
M this.op[0].CalcFBL(this.fb);
break;
case 6:
t = this.op[2].CalcL(0);
t += this.op[1].CalcL(this.op[0].Out());
t += this.op[3].CalcL(0);
this.op[0].CalcFBL(this.fb);
break;
case 7:
t = this.op[2].CalcL(0);
t += this.op[1].CalcL(0);
t += this.op[3].CalcL(0);
t += this.op[0].CalcFBL(this.fb);
M }
return t;
};
n.prototype.CalcN = function (t) {
this.buf[1] = this.buf[2] = this.buf[3] = 0;
this.buf[0] = this.op[0].out_;
this.op[0].CalcFB(this.fb);
this.buf[this.outop[0]] += this.op[1].Calc(
this.buf[this.inop[0]]
);
this.buf[this.outop[1]] += this.op[2].Calc(
this.buf[this.inop[1]]
);
var e = this.op[3].out_;
thMis.op[3].CalcN(t);
return this.buf[this.outop[2]] + e;
};
n.prototype.CalcLN = function (t) {
this.chip_.SetPMV(this.pms[this.chip_.GetPML()]);
this.buf[1] = this.buf[2] = this.buf[3] = 0;
this.buf[0] = this.op[0].out_;
this.op[0].CalcFBL(this.fb);
this.buf[this.outop[0]] += this.op[1].CalcL(
this.buf[this.inop[0]]
);
this.buf[this.outop[1]] += this.op[2].CalcL(
M this.buf[this.inop[1]]
);
var e = this.op[3].out_;
this.op[3].CalcN(t);
return this.buf[this.outop[2]] + e;
};
n.prototype.SetType = function (t) {
for (var e = 0; e < 4; e++) {
this.op[e].type_ = t;
}
};
n.prototype.SetFB = function (t) {
this.fb = n.fbtable[t];
};
n.prototype.SetMS = function (t) {
for (Mvar e = 0; e < 4; e++) {
this.op[e].SetMS(t);
}
};
n.prototype.Mute = function (t) {
for (var e = 0; e < 4; e++) {
this.op[e].Mute(t);
}
};
n.fbtable = [31, 7, 6, 5, 4, 3, 2, 1];
n.kftable = new Array(64);
return n;
})();
t.Channel4 = n;
var r = (function () {
function e() {
this.ratio_ = 0;
this.aml_ =M 0;
this.pml_ = 0;
this.pmv_ = 0;
}
e.prototype.SetRatio = function (t) {
t = Math.round(t);
if (this.ratio_ !== t) {
this.ratio_ = t;
this.MakeTable();
}
};
e.prototype.SetAML = function (e) {
this.aml_ = e & (t.FM_LFOENTS - 1);
};
e.prototype.SetPML = function (e) {
this.pml_ = e & (t.FM_LFOENTS - 1);
}M;
e.prototype.SetPMV = function (t) {
this.pmv_ = t;
};
e.prototype.GetMulValue = function (t, e) {
return this.multable_[t][e];
};
e.prototype.GetAML = function () {
return this.aml_;
};
e.prototype.GetPML = function () {
return this.pml_;
};
e.prototype.GetPMV = function () {
return this.pmv_;
};
e.prototype.GetRatMio = function () {
return this.ratio_;
};
e.prototype.MakeTable = function () {
var n;
var r = [1, 1.414, 1.581, 1.732];
this.multable_ = new Array(4);
for (var e = 0; e < 4; e++) {
var c =
(r[e] * this.ratio_) /
(1 << (2 + t.FM_RATIOBITS - t.FM_PGBITS));
this.multable_[e] = new Array(16);
for (n = 0; n < 16; n++) {
var i M= n ? 2 * n : 1;
this.multable_[e][n] = (i * c) | 0;
}
}
};
return e;
})();
t.Chip = r;
t.MakeLFOTable = function () {
if (!t.tablemade) {
var e;
t.tablemade = true;
var n = [
[
0,
1 / 360,
2 / 360,
3 / 360,
4 / 360,
6 / 360,
M 12 / 360,
24 / 360,
],
[
0,
1 / 480,
2 / 480,
4 / 480,
10 / 480,
20 / 480,
80 / 480,
140 / 480,
],
];
var r = [
[31, 6, 4, 3],
[31, 2, 1, 0],
];
t.pmtable = new Array(2);
t.amtable = new Array(2);
M for (var c = 0; c < 2; c++) {
t.pmtable[c] = new Array(8);
for (e = 0; e < 8; e++) {
var i = n[c][e];
t.pmtable[c][e] = new Array(t.FM_LFOENTS);
for (var a = 0; a < t.FM_LFOENTS; a++) {
Math.pow(
2,
(i * (2 * a - t.FM_LFOENTS + 1)) / (t.FM_LFOENTS - 1)
);
var o =
0.6 * i * Math.sin((2 * a * Math.PI) M/ t.FM_LFOENTS) + 1;
t.pmtable[c][e][a] = (65536 * (o - 1)) | 0;
}
}
t.amtable[c] = new Array(4);
for (e = 0; e < 4; e++) {
t.amtable[c][e] = new Array(t.FM_LFOENTS);
for (a = 0; a < t.FM_LFOENTS; a++) {
t.amtable[c][e][a] = (2 * ((4 * a) >> r[c][e])) << 2;
}
}
}
}
};
})();
(function () {
M var t = nt || (nt = {});
var e = (function () {
function t() {
this.OPM_LFOENTS = 512;
this.regtc = 0;
this.regta = new Array(2);
this.timera = 0;
this.timera_count = 0;
this.timerb = 0;
this.timerb_count = 0;
this.timer_step = 0;
}
t.prototype.Reset = function () {
this.timera_count = 0;
this.timerb_count = 0;
}M;
t.prototype.SetTimerControl = function (t) {
var e = this.regtc ^ t;
this.regtc = t;
if (16 & t) {
this.ResetStatus(1);
}
if (32 & t) {
this.ResetStatus(2);
}
if (1 & e) {
this.timera_count = 1 & t ? this.timera : 0;
}
if (2 & e) {
this.timerb_count = 2 & t ? this.timerb : 0;
}
};
M t.prototype.SetTimerA = function (t, e) {
this.regta[1 & t] = e;
var n = (this.regta[0] << 2) + (3 & this.regta[1]);
this.timera = (1024 - n) * this.timer_step;
};
t.prototype.SetTimerB = function (t) {
this.timerb = (256 - t) * this.timer_step;
};
t.prototype.Count = function (t) {
var e = false;
if (this.timera_count) {
this.timera_count -= t << 16;
M if (this.timera_count <= 0) {
e = true;
for (this.TimerA(); this.timera_count <= 0; ) {
this.timera_count += this.timera;
}
if (4 & this.regtc) {
this.SetStatus(1);
}
}
}
if (this.timerb_count) {
this.timerb_count -= t << 12;
if (this.timerb_count <= 0) {
for (e = true; this.timerb_count <= 0;M ) {
this.timerb_count += this.timerb;
}
if (8 & this.regtc) {
this.SetStatus(2);
}
}
}
return e;
};
t.prototype.GetNextEvent = function () {
var t = ((this.timera_count + 65535) >> 16) - 1;
var e = ((this.timerb_count + 4095) >> 12) - 1;
return (t < e ? t : e) + 1;
};
t.prototype.SetTimerBaMse = function (t) {
this.timer_step = (65536e6 / t) | 0;
};
t.prototype.SetStatus = function (t) {};
t.prototype.ResetStatus = function (t) {};
t.prototype.TimerA = function () {};
return t;
})();
t.Timer = e;
})();
(function () {
var t = nt || (nt = {});
var e = (function () {
function n() {
e.call(this);
this.fmvolume = 0;
this.clocMk = 0;
this.rate = 0;
this.pcmrate = 0;
this.pmd = 0;
this.amd = 0;
this.lfocount = 0;
this.lfodcount = 0;
this.lfo_count_ = 0;
this.lfo_count_diff_ = 0;
this.lfo_step_ = 0;
this.lfo_count_prev_ = 0;
this.lfowaveform = 0;
this.rateratio = 0;
this.noise = 0;
this.noisecount = 0;
this.noisedelta = 0;
M this.interpolation = false;
this.lfofreq = 0;
this.status = 0;
this.reg01 = 0;
this.kc = new Array(8);
this.kf = new Array(8);
this.pan = new Array(8);
this.ch = [
new t.Channel4(),
new t.Channel4(),
new t.Channel4(),
new t.Channel4(),
new t.Channel4(),
new t.Channel4(),
new t.Channel4(),
Mnew t.Channel4(),
];
this.chip = new t.Chip();
this.lfo_count_ = 0;
this.lfo_count_prev_ = -1;
this.BuildLFOTable();
for (var n = 0; n < 8; n++) {
this.ch[n].SetChip(this.chip);
this.ch[n].SetType(1);
}
}
var e = t.Timer;
(function (t, e) {
function r() {
this.constructor = t;
}
for (var n in e)M {
if (e.hasOwnProperty(n)) {
t[n] = e[n];
}
}
r.prototype = e.prototype;
t.prototype = new r();
})(n, e);
n.prototype.Init = function (t, e) {
if (!this.SetRate(t, e)) {
return false;
}
this.Reset();
this.SetVolume(0);
this.SetChannelMask(0);
return true;
};
n.prototype.SetRate M= function (t, e) {
this.clock = t;
this.pcmrate = e;
this.rate = e;
this.RebuildTimeTable();
return true;
};
n.prototype.SetChannelMask = function (t) {
for (var e = 0; e < 8; e++) {
this.ch[e].Mute(!!(t & (1 << e)));
}
};
n.prototype.Reset = function () {
for (var t = 0; t < 256; t++) {
this.SetReg(t, 0);
}
M this.SetReg(25, 128);
e.prototype.Reset.call(this);
this.status = 0;
this.noise = 12345;
this.noisecount = 0;
for (t = 0; t < 8; t++) {
this.ch[t].Reset();
}
};
n.prototype.RebuildTimeTable = function () {
var e = this.clock / 64;
this.rateratio =
((e << t.FM_RATIOBITS) + this.rate / 2) / this.rate;
this.SetTimerBase(e);
M this.chip.SetRatio(this.rateratio);
};
n.prototype.SetVolume = function (t) {
t = Math.min(t, 20);
this.fmvolume = t > -192 ? (16384 * Math.pow(10, t / 40)) | 0 : 0;
};
n.prototype.SetStatus = function (t) {
if (!(this.status & t)) {
this.status |= t;
this.Intr(true);
}
};
n.prototype.GetStatus = function (t) {
return this.status;
M };
n.prototype.ResetStatus = function (t) {
if (this.status & t) {
this.status &= ~t;
if (!this.status) {
this.Intr(false);
}
}
};
n.prototype.SetReg = function (e, n) {
if (!(e >= 256)) {
var r = 7 & e;
switch (255 & e) {
case 1:
if (2 & n) {
this.lfo_count_ = 0;
M this.lfo_count_prev_ = -1;
}
this.reg01 = n;
break;
case 8:
if (128 & this.regtc) {
r = 7 & n;
if (!(8 & n)) {
this.ch[r].op[0].KeyOff();
}
if (!(16 & n)) {
this.ch[r].op[1].KeyOff();
}
if (!(32 & n)) {
thiMs.ch[r].op[2].KeyOff();
}
if (!(64 & n)) {
this.ch[r].op[3].KeyOff();
}
} else {
this.ch[7 & n].KeyControl(n >> 3);
}
break;
case 16:
case 17:
this.SetTimerA(e, n);
break;
case 18:
this.SetTimerB(n);
break;
M case 20:
this.SetTimerControl(n);
break;
case 24:
this.lfofreq = n;
this.lfo_count_diff_ =
(this.rateratio *
((16 + (15 & this.lfofreq)) << (12 - t.FM_RATIOBITS))) /
(1 << (15 - (this.lfofreq >> 4)));
break;
case 25:
if ((128 & n) == 0) {
this.amd = 127 & n;
M } else {
this.pmd = 127 & n;
}
break;
case 27:
this.lfowaveform = 3 & n;
break;
case 32:
case 33:
case 34:
case 35:
case 36:
case 37:
case 38:
case 39:
this.ch[r].SetFB((n >> 3) & 7);
this.ch[r].SetAlMgorithm(7 & n);
this.pan[r] = (n >> 6) & 3;
break;
case 40:
case 41:
case 42:
case 43:
case 44:
case 45:
case 46:
case 47:
this.kc[r] = n;
this.ch[r].SetKCKF(this.kc[r], this.kf[r]);
break;
case 48:
case 49:
case 50:
M case 51:
case 52:
case 53:
case 54:
case 55:
this.kf[r] = n >> 2;
this.ch[r].SetKCKF(this.kc[r], this.kf[r]);
break;
case 56:
case 57:
case 58:
case 59:
case 60:
case 61:
case 62:
case 63:
this.ch[r].SetMS((n <<M 4) | (n >> 4));
break;
case 15:
this.noisedelta = n;
this.noisecount = 0;
break;
default:
if (e >= 64) {
this.SetParameter(e, n);
}
}
}
};
n.prototype.SetParameter = function (t, e) {
var n = [0, 2, 1, 3][(t >> 3) & 3];
var r = this.ch[7 & t].op[n];
M switch ((t >> 5) & 7) {
case 2:
r.SetDT((e >> 4) & 7);
r.SetMULTI(15 & e);
break;
case 3:
r.SetTL(127 & e);
break;
case 4:
r.SetKS((e >> 6) & 3);
r.SetAR(2 * (31 & e));
break;
case 5:
r.SetDR(2 * (31 & e));
r.SetAMON((128 & e) != 0);
break;
M case 6:
r.SetSR(2 * (31 & e));
r.SetDT2((e >> 6) & 3);
break;
case 7:
r.SetSL(
[
0, 4, 8, 12, 16, 20, 24, 28, 32, 36, 40, 44, 48, 52, 56,
124,
][(e >> 4) & 15]
);
r.SetRR(4 * (15 & e) + 2);
}
};
n.prototype.BuildLFOTable = function () {
this.amtable = new MArray(4);
this.pmtable = new Array(4);
for (var t = 0; t < 4; t++) {
var e = 0;
this.amtable[t] = new Array(this.OPM_LFOENTS);
this.pmtable[t] = new Array(this.OPM_LFOENTS);
for (var n = 0; n < this.OPM_LFOENTS; n++) {
var r;
var c;
switch (t) {
case 0:
c = ((n + 256) & 511) / 2 - 128;
r = 255 - n / 2;
M break;
case 1:
r = n < 256 ? 255 : 0;
c = n < 256 ? 127 : -128;
break;
case 2:
c = (c = (n + 128) & 511) < 256 ? c - 128 : 383 - c;
r = n < 256 ? 255 - n : n - 256;
break;
case 3:
if (!(3 & n)) {
e = (((32768 * Math.random()) | 0) / 17) & 255;
M}
r = e;
c = e - 128;
}
this.amtable[t][n] = 0 | r;
this.pmtable[t][n] = (-c - 1) | 0;
}
}
};
n.prototype.LFO = function () {
var t;
if (this.lfowaveform === 3) {
if (-131072 & (this.lfo_count_ ^ this.lfo_count_prev_)) {
t = (((32768 * Math.random()) | 0) / 17) & 255;
this.chip.SetPML(((Mt - 128) * this.pmd) / 128 + 128);
this.chip.SetAML((t * this.amd) / 128);
}
} else {
t = (this.lfo_count_ >> 15) & 510;
this.chip.SetPML(
(this.pmtable[this.lfowaveform][t] * this.pmd) / 128 + 128
);
this.chip.SetAML(
(this.amtable[this.lfowaveform][t] * this.amd) / 128
);
}
this.lfo_count_prev_ = this.lfo_count_;
M this.lfo_step_++;
if ((7 & this.lfo_step_) == 0) {
this.lfo_count_ += this.lfo_count_diff_;
}
};
n.prototype.Noise = function () {
this.noisecount += 2 * this.rateratio;
if (this.noisecount >= 32 << t.FM_RATIOBITS) {
var e = 32 - (31 & this.noisedelta);
if (e === 1) {
e = 2;
}
this.noisecount = this.noisecount - (e << t.FM_RATIOBITS);
M if ((31 & this.noisedelta) == 31) {
this.noisecount -= t.FM_RATIOBITS;
}
this.noise = (this.noise >> 1) ^ (1 & this.noise ? 33800 : 0);
}
return this.noise;
};
n.prototype.MixSub = function (t, e) {
if (16384 & t) {
e[this.pan[0]] = this.ch[0].Calc();
}
if (4096 & t) {
e[this.pan[1]] += this.ch[1].Calc();
}
M if (1024 & t) {
e[this.pan[2]] += this.ch[2].Calc();
}
if (256 & t) {
e[this.pan[3]] += this.ch[3].Calc();
}
if (64 & t) {
e[this.pan[4]] += this.ch[4].Calc();
}
if (16 & t) {
e[this.pan[5]] += this.ch[5].Calc();
}
if (4 & t) {
e[this.pan[6]] += this.ch[6].Calc();
}
if (1 & t) {
M if (128 & this.noisedelta) {
e[this.pan[7]] += this.ch[7].CalcN(this.Noise());
} else {
e[this.pan[7]] += this.ch[7].Calc();
}
}
};
n.prototype.MixSubL = function (t, e) {
if (16384 & t) {
e[this.pan[0]] = this.ch[0].CalcL();
}
if (4096 & t) {
e[this.pan[1]] += this.ch[1].CalcL();
}
if (1024 & t) {
M e[this.pan[2]] += this.ch[2].CalcL();
}
if (256 & t) {
e[this.pan[3]] += this.ch[3].CalcL();
}
if (64 & t) {
e[this.pan[4]] += this.ch[4].CalcL();
}
if (16 & t) {
e[this.pan[5]] += this.ch[5].CalcL();
}
if (4 & t) {
e[this.pan[6]] += this.ch[6].CalcL();
}
if (1 & t) {
if (128 & this.noisedeltMa) {
e[this.pan[7]] += this.ch[7].CalcLN(this.Noise());
} else {
e[this.pan[7]] += this.ch[7].CalcL();
}
}
};
var r = new Array(4);
n.prototype.mixStereo = function (t, e, n) {
var c = 0;
for (var i = (this.attenuation, 0); i < 8; i++) {
c = (c << 2) | this.ch[i].Prepare();
}
if (2 & this.reg01) {
c &= 21845;
M }
var a = 0 | n;
for (i = 0; i < e; i++) {
r[1] = r[2] = r[3] = 0;
this.LFO();
if (43690 & c) {
this.MixSubL(c, r);
} else {
this.MixSub(c, r);
}
t[a++] = ((r[1] + r[3] + r[2] + r[3]) / 256) * 0.33;
}
};
n.prototype.Intr = function (t) {};
return n;
})();
t.OPM = e;
})()M;
var ct = new nt.OPM();
var it = ct.Init(3579545, 48e3);
console.log('YM Init: ' + it);
let at = new Array(256);
var st = V;
var ft = X;
var ut = new Array(131072);
var dt = false;
var lt = false;
var ht = false;
var At = false;
var pt = false;
var bt = false;
var gt = false;
var yt = false;
var wt = 0;
var mt = 0;
var Mt = 0;
var vt = 0;
var Lt = 0;
M var It = 0;
var Et = 0;
var St = 2;
var xt = -1;
var kt = {};
var Bt = null;
jt.prototype = {
getTopic: function () {
return this.topic;
},
onEvent: function (t) {},
};
var Ft = null;
var Gt = null;
var zt = false;
var Wt = 662;
var Ut = 0;
var Zt = 0;
var Qt = 0;
var Ht = 0;
var Yt = 0;
var Vt = 0;
var Jt = 0;
Rt(
M new jt('init', function () {
Ft = Ne;
Gt = Ye;
})
);
var te = new Array(2048);
var ee = [1, 1, 0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0];
var ne = [
0, 0, 1, 0, 1, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 0, 1, 1, 1, 0,
1, 0, 1, 0, 0, 0, 0, 1,
];
var re = [
0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 0,
1, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 1, 0, 1, 1, 1,
M 0, 1, 1, 0, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1,
0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 1, 1, 0, 1, 0, 1, 0, 0, 0,
0, 1, 1, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 1, 1, 0, 0, 1, 1,
0, 1, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 1, 0, 0,
0, 1, 1, 0, 0, 1, 1, 1, 1, 0, 0, 1, 0, 0, 0, 1, 1, 1, 0, 0, 1, 1, 0,
1, 0, 1, 1, 0, 1, 1, 0, 1, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1,
1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1M, 0, 0, 0, 1, 0, 0, 0, 0, 1,
0, 0, 0, 1, 0, 1, 0, 1, 1, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 0, 1, 0, 0,
0, 1, 1, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 1, 1, 0, 0, 1, 1,
0, 0, 1, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0,
1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 1,
1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 0, 1, 0, 1, 1, 1, 1, 0,
0, 1, 0M, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 1, 0,
1, 0, 1, 0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0,
0, 0, 1, 0, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 0,
0, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 1, 1, 0,
1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 1, 0, 0, 1, 0, 1, 1, 1, 1, 1, 1,
1, 0, 1, 0, 0, 1, 0, 0, 0, 1, 1, 0, 1, 1, 1, 0, 0, 0, 1, 0, 1, 0, 0,
1, 0, 1, 0, 1, 0, 1, 1, 1, 0, 0, 1, 0, 1, 1, 0, 0, 1,M 1, 1, 1, 1, 0,
0, 0, 1, 1, 0,
];
var ce = [
1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
];
var ie = [0, 0];
var ae = [0, 0];
var oe = [0, 0];
var se = [0, 0];
var fe = [0, 0];
var ue = [0, 0];
var de = [0, 0];
var le = [0, 0];
var he = [0, 0];
var Ae = 0;
var ge = X;
var ye = V;
var we = function (t, e) {
M var n = 0;
var r = 0;
switch (t) {
case 21:
se[0] = 15 & e;
n = 0;
break;
case 22:
se[1] = 15 & e;
n = 1;
break;
case 23:
fe[0] = 31 & e;
n = 0;
break;
case 24:
fe[1] = 31 & e;
n = 1;
break;
case 25:
ue[0] = (15 & e) << 2;
n = 0;
M break;
case 26:
ue[1] = (15 & e) << 2;
n = 1;
break;
default:
return;
}
if (se[n] == 0) {
r = 0;
ie[n] = ue[n];
} else {
r = (fe[n] + 1) & 255;
if (se[n] > 11) {
r = (3 * r) & 255;
}
}
if (r != ae[n]) {
ae[n] = r;
if (oe[n] == 0 || r == 0) {
oe[n] = r;
}
M }
};
var me = qt;
var Me = Xt;
var ve = function (t, e) {
switch (((Wt = t), (Ut = e), t)) {
case 663:
Zt = 1024;
zt = true;
break;
case 660:
Zt = 1;
zt = true;
break;
case 661:
Zt = 8;
zt = true;
break;
case 662:
Zt = 64;
zt = true;
}
if (zt) {
M Jt++;
Vt = Zt * e;
Yt = false;
}
};
var Le = Dt;
var Ie = Nt;
var Ce = _t;
var Ee = function (t) {
if (lt && t >= 1104 && t < 1120) {
var e = st(t - 1104 + 16384);
return e;
}
if (ht && t >= 1120 && t <= 1121) {
e = 1 & t ? ct.GetStatus() : 0;
if (xt != -1 && 1 & t) {
if (xt > 0) {
xt--;
} else if (xt == 0 && St > 0)M {
e = 2;
xt = Et;
if (--St === 0) {
xt = -1;
}
}
}
return e;
}
if (dt && t >= 16384 && t < 32768 && !gt) {
var n = t - 16384;
if (At) {
return m_ram[n];
}
if (pt && n < 8192) {
if (yt) {
return ut[((8191 & n) + 8192 * (15 & Mt)) | ((1 & wt) << 8)];
} else {
M return ut[((8191 & n) + 8192 * (15 & mt)) | ((1 & wt) << 8)];
}
}
if (bt && n >= 8192 && n < 16384) {
if (yt) {
return ut[
((8191 & n) + 8192 * ((Mt >> 4) & 15)) | ((2 & wt) << 7)
];
} else {
return ut[
((8191 & n) + 8192 * ((mt >> 4) & 15)) | ((2 & wt) << 7)
];
}
}
}
return 0;
};
var Se = Mfunction (t, e) {
if (lt && t >= 1104 && t < 1120) {
ft(t - 1104 + 16384, e);
} else if (ht && t >= 1120 && t <= 1121) {
if (1 & t) {
ot(It, e);
if (It === 18 && e === 252) {
xt = Et = 129;
}
} else {
It = e;
}
} else if (dt && t >= 16384 && t < 32768) {
var n = t - 16384;
if (At) {
m_ram[n] = e;
} else if (pt && n < 8M192) {
ut[(8191 & n) + 8192 * (15 & mt)] = e;
} else if (bt && n >= 8192 && n < 16384) {
ut[(8191 & n) + 8192 * ((mt >> 4) & 15)] = e;
}
} else if (t >= 1136 && t < 1152) {
if (t == 1136) {
lt = 16 & (wt = e);
pt = 32 & wt;
bt = 64 & wt;
ht = 128 & wt;
} else if (t == 1144) {
mt = e;
} else if (t == 1148) {
Mt = e;
} else ifM (t == 1137) {
vt = e;
} else if (t == 1138) {
At = 1 & (Lt = e);
gt = 2 & Lt;
}
dt = At || pt || bt;
}
};
var xe = false;
var De = null;
var Ne = new Array(65536);
var _e = new Array(65536);
var Te = new Array(65536);
var ke = false;
var Be = false;
var je = false;
var Re = false;
var Pe = false;
var Oe = false;
var Fe = falsMe;
var Ge = 0;
var ze = false;
var We = false;
Rt(
new jt('onCartridgeLoaded', function () {
ke = ar();
Be = or();
je = sr();
Fe = dr();
gr();
Re = fr();
Pe = lr();
Oe = hr();
Ge = Cr();
})
);
Rt(
new jt('onHighScoreCartLoaded', function (t) {
xe = t;
})
);
Rt(
new jt('highScoreCallbacMkChanged', function (t) {
De = t;
})
);
var rn = '0123456789abcdef'.split('');
if (an('hello') != '5d41402abc4b2a76b9719d911017c592') {
function on(t, e) {
var n = (65535 & t) + (65535 & e);
return (((t >> 16) + (e >> 16) + (n >> 16)) << 16) | (65535 & n);
}
}
var sn = null;
var fn = null;
var un = null;
var dn = null;
var ln = null;
var hn = 0;
var An = 1;
M var pn = 2;
var bn = 3;
var gn = 4;
var yn = 7;
var wn = '';
var mn = '';
var Mn = 0;
var vn = 0;
var Ln = false;
var In = false;
var Cn = [1, 1];
var En = 0;
var Sn = 0;
var xn = 0;
var Dn = 0;
var Nn = false;
var _n = false;
var Tn = 28;
var kn = 1;
var Bn = 0;
var jn = false;
var Rn = false;
var Pn = false;
var On = 0;
vaMr Fn = 0;
var Gn = false;
var zn = false;
var Wn = false;
var Un = 2;
var Zn = false;
var Qn = null;
var Hn = 0;
var Yn = false;
Rt(
new jt('init', function (t) {
ln = t.Region.REGION_NTSC;
sn = Ve;
fn = Je;
un = Ye;
})
);
Rt(
new jt('highScoreCallbackChanged', function (t) {
dn = t;
})
);
var nc = function () {
M this._w = 0;
this.wPlusPlus = function () {
var t = this._w;
this.setW(this._w + 1);
return t;
};
this.wMinusMinus = function () {
var t = this._w;
this.setW(this._w - 1);
return t;
};
this.wPlusEqual = function (t) {
this.setW(this._w + t);
};
this.wMinusEqual = function (t) {
this.setW(this._w - t);
};
this.setW = functionM (t) {
this._w = 65535 & t;
};
this.getW = function () {
return this._w;
};
this.getBL = function () {
return 255 & this._w;
};
this.getBLSigned = function () {
var t = this.getBL();
if ((128 & t) > 0) {
return t - 256;
} else {
return t;
}
};
this.setBL = function (t) {
this.setW((65280 & this._w) | (255 & t));
M };
this.blPlusEqual = function (t) {
this.setBL(this.getBL() + t);
};
this.getBH = function () {
return (65280 & this._w) >>> 8;
};
this.setBH = function (t) {
this.setW((255 & this._w) | ((t << 8) & 65280));
};
this.bhPlusEqual = function (t) {
this.setBH(this.getBH() + t);
};
this.copy = function (t) {
this._w = t._w;
};
};
var rc =M Qe;
var cc = Ye;
var ic = Ne;
var ac = 0;
var oc = 0;
var sc = 0;
var fc = 0;
var uc = 0;
var dc = new nc();
var lc = 0;
var hc = new nc();
var Ac = 0;
var pc = false;
var bc = 1;
var gc = 2;
var yc = 4;
var wc = 8;
var mc = 16;
var Mc = 32;
var vc = 64;
var Lc = 128;
var Ic = 65533;
var Cc = 65532;
var Ec = 65531;
var Sc = 6M5530;
var xc = 65535;
var Dc = 65534;
var Nc = [
7, 6, 0, 0, 2, 3, 5, 0, 3, 2, 2, 2, 0, 4, 6, 0, 2, 5, 0, 0, 0, 4, 6,
0, 2, 4, 0, 0, 0, 4, 7, 0, 6, 6, 0, 0, 3, 3, 5, 0, 4, 2, 2, 2, 4, 4,
6, 0, 2, 5, 0, 0, 0, 4, 6, 0, 2, 4, 0, 0, 0, 4, 7, 0, 6, 6, 0, 0, 0,
3, 5, 0, 3, 2, 2, 2, 3, 4, 6, 0, 2, 5, 0, 0, 0, 4, 6, 0, 2, 4, 0, 0,
0, 4, 7, 0, 6, 6, 0, 0, 0, 3, 5, 0, 4, 2, 2, 0, 5, 4, 6, 0, 2, 5, 0,
0, 0, 4, 6, 0, 2, 4, 0, 0, 0, 4, 7, 0, 2, M6, 0, 0, 3, 3, 3, 0, 2, 0,
2, 0, 4, 4, 4, 0, 2, 6, 0, 0, 4, 4, 4, 4, 2, 5, 2, 0, 0, 5, 0, 0, 2,
6, 2, 0, 3, 3, 3, 0, 2, 2, 2, 0, 4, 4, 4, 0, 2, 5, 0, 6, 4, 4, 4, 0,
2, 4, 2, 0, 4, 4, 4, 0, 2, 6, 0, 0, 3, 3, 5, 0, 2, 2, 2, 0, 4, 4, 6,
0, 2, 5, 0, 0, 0, 4, 6, 0, 2, 4, 0, 0, 0, 4, 7, 0, 2, 6, 0, 0, 3, 3,
5, 0, 2, 2, 2, 0, 4, 4, 6, 0, 2, 5, 0, 0, 0, 4, 6, 0, 2, 4, 0, 0, 0,
4, 7, 0,
];
var Bc = new nc();
var Rc = new nc();
var PcM = new nc();
var Li = 0;
var Si = Ne;
var xi = Qe;
var Di = new Ei(0, 17, 319, 258);
var Ni = new Ei(0, 26, 319, 248);
var _i = null;
var Ti = [new Array(160), new Array(160)];
var ki = 0;
var Bi = Ti[ki];
var ji = 0;
var Ri = false;
var Pi = new nc();
var Oi = new nc();
var Fi = new nc();
var Gi = 0;
var zi = 0;
var Wi = 0;
var Ui = 0;
var Zi = 0;
var Qi = M0;
var Hi = false;
var Yi = false;
var Vi = false;
var ea = new nc();
Rt(
new jt('onCartridgeLoaded', function (t) {
Hi = !t.IsXmEnabled() && !t.IsBanksets();
console.log('Maria RAM Direct: ' + Hi);
Vi = t.IsBanksets();
})
);
var ca = new Array(768);
var oa = b;
var sa = et;
var fa = te;
var ua = be;
var da = Dt;
var la = _t;
var ha = null;
vMar Aa = null;
var pa = 0;
var ba = 0;
var ga = 0;
var ya = false;
var wa = false;
var ma = new Array(8192);
var Ma = new Array(8192);
Rt(
new jt('init', function () {
ha = Yo;
})
);
Rt(
new jt('onCartridgeLoaded', function () {
ya = ar();
})
);
var La = 31440;
var Ia = null;
var Ca = null;
var Ea = new Array(16384);
var Sa = 0M;
var xa = 0;
Rt(new jt('init', Na));
var Ta = aa(
'data:;base64,AAAAAAAAEBAQIyMjNTU1R0dHWlpabGxsfn5+kZGRo6Ojtra2yMjI2tra7e3t////AQAAFAgAJhoAOSwASz8AXVEAcGMAgnYAlIgMp5ofua0xy79E3tJW8ORo//Z7//+NGQAALAAAPggAUBsAYy0AdUAAh1IAmmQFrHcYv4kq0Zs8465P9sBh/9J0/+WG//eYKAAAOwAATQAAXwsAch0AhDAAlkITqVQlu2c3zXlK4Itc8p5u/7CB/8OT/9Wl/+e4KwAAPQAAUAAAYgAJdRIbhyQumTdArElSvltl0G5344CK9ZOc/6Wu/7fB/8rT/9zlIQAFNAAXRgApWQA8aw5OfSBgkDJzokWFtFeXx2mq2Xy8647P/qHh/7Pz/8X//9j/DQAyIABFMgBXRABpVxF8aSOOezagjkizoFvFsMm3YxX/q15L86qT//Lb//8n//9v/AABSBQBkFwB3KQmJPBybTi6uYEDAc1PThWXlmHf3qor/vJz/z6//4cH/89P//+b/AABeAABwAAaCDRmVICunMj65RFDMV2LeaXXwe4f/jpn/oKz/sr7/xdD/1+P/6fX/AABTAAZlABh3ACqKCD2cGk+uLGHBP3TTUYbmY5j4dqv/iL3/mtD/reL/v/T/0v//AAMzABZGAChYADpqAE19C1+PHXGiMIS0QpbGVKjZZ7vrec39i+D/nvL/sP//w///AA8GACEYADMrAEY9AFhPCGpiGn10LY+GP6GZUbSrZMa+dtjQiOvim/31rf//v///ABMAACUAADgAAEoKAFwdEW8vJIFBNpNUSKZmW7h5bcuLgN2dku+wpP/Ct//Uyf/nABAAACIAADQAAUcAE1kAJmsBOH4USpAmXaM4b7VLgcddlNpvpuyCuP6Uy/+m3f+5AAUAABgACSoAHDwALk8AQGEAU3MAZYYGd5gYiqornL09rMs9PweJi0/R05v+G+P+ZAQAAEwgAJRoAOC0ASj8AXVIAb2QAgXYAlIkMppsfuK0xy8BE3dJW7+Ro//d7//+N'
);
var ka = aa(
'data:;base64,AAAAAAAAEBAQIyMjNTU1R0dHWlpabGxsfn5+kZGRo6Ojtra2yMjI2tra7e3t////AQAAFAgAJhoAOSwASz8AXVEAcGMAgnYAlIgMp5ofua0xy79E3tJW8ORo//Z7//+NGgAALQAAPwgAURoAZCwAdj8AiFEAm2QGrXYZv4gr0ps95K1Q9r9i/9J0/+SH//aZKQAAOwAATgAAYAoAchwAhS4El0EWqVMovGY7znhN4Ypf851y/6+E/8GW/9Sp/+a7KwAAPQAATwAAYgAPdBEihiM0mTZGq0hZvVtr0G194n+Q9ZKi/6S0/7bH/8nZ/9vsHwANMQAfQwAyVgBEaA5WeyBpjTJ7n0WNslegxGqy1nzE6Y7X+6Hp/7P7/8XM//9j/CAA6GgBNLQBfPwBxUROEZCWWdjeoiEq7m1zNrW/gwIHy0pP/5Kb/97j//8r//93/AABXAABpEAB8Ig2ONR+gRzGzWUTFbFbYfmnqkHv8o43/taD/x7L/2sT/7Nf//+n/AABdAABvAAuBBh6UGDCmKkO5PVXLT2fdYXrwdIz/hp7/mLH/q8P/vdX/z+j/4vr/AABKAAtdAB5vADCBAUKUFFWmJme4OHnLS4zdXZ7wcLD/gsP/lNX/p+j/ufr/y///AAgkABo2AC1IAD9bAFJtCGR/G3aSLYmkP5u2Uq3JZMDbdtLuieT/m/f/rv//wP//ABEAACQDADYWAEgoAFs6Cm1NHX9fL5JxQaSEVLeWZsmpedu7i+7Nnf/gsP/ywv//ABIAACUAADcAAEkAB1wHGW4ZLIErPpM+UaVQY7hidcp1iNyHmu+ZrP+sv/++0f/RAAsAAB4AADAADkIAIFUAMmcARXkBV4wUaZ4mfLA5jsNLodVds+hwxfqC2P+U6v+nAAAMABhAAGSIAKzQAPUcAUFkAYmsAdH4Ah5APmaMirLU0vsdG0NpZ4+xr9f59//+QEAAAIgAANBAARyMAWTUAa0cAfloAkGwAon4QtZEix6M12rZH7MhZ/tps/+1+//+R'
);
var Ba = aa(
'data:;base64,AAAAAAAAEBAQIyMjNTU1R0dHWlpabGxsfn5+kZGRo6Ojtra2yMjI2tra7e3t////AQAAFAgAJhoAOSwASz8AXVEAcGMAgnYAlIgMp5ofua0xy79E3tJW8ORo//Z7//+NGwAALQAAQAcAUhkAZCwAdz4AiVEAm2MHrnUawIgs05o+5axR979j/9F1/+OI//aaKgAAPAAATgAAYQkAcxsAhS0HmEAZqlIrvGU+z3dQ4Ylj85x1/66H/8Ca/9Os/+W+KgAAPAAATwADYQAVcxAohiM6mDVMqkdfvVpxz2yD4X6W9JGo/6O6/7bN/8jf/9rxHAAULgAnQQA5UwBLZMQ5eeCBwijOCnEWVr1enwWq61HzM5o7e+KHx/7P//8b//9j/AwBBFQBUKABmOgJ4TBWLXyedcTmvg0zCll7UqHDmuoP5zZX/36f/8rr//8z//9//AABaAABtCQB/HBCRLiOkQDW2U0fJZVrbd2ztin7/nJH/rqP/wbb/08j/5tr/+O3/AABaAABtABB/ACORETWkJEe2NlrISGzbW37tbZH/f6P/krb/pMj/ttr/ye3/2///AABBABBTACNlADV4AEeKD1qcIWyvNH7BRpHTWKPma7X4fcj/kNr/ou3/tP//x///AAwTAB4mADE4AENKAFVdB2hvGnqCLI2UP5+mUbG5Y8TLdtbdiOjwmvv/rf//v///ABMAACUAADcCAEoUAFwnD245IYFLM5NeRqZwWLiCasqVfd2nj++5of/MtP/exv/wABAAACMAADUAAEcAEFoAI2wGNX8YR5ErWqM9bLZPf8hikdp0o+2Gtv+ZyP+r2v++AAYAABgACCoAGz0ALU8AP2EAUMnQAZIYHdpkZiasrm70+rtBQwOJj0vR15f+H9/+aAgAAFAcAJxoAOSwASz4AXlEAcGMAg3UAlYgMp5ofuq0xzL9E3tFW8eRo//Z7//+NGwAALgAAQAcAUhkAZSsAdz4AiVAAnGMIrnUawYcs05o/5axR+L5k/9F2/+OI//Wb'
);
var ja = aa(
'data:;base64,AAAAAAAAEBAQIyMjNTU1R0dHWlpabGxsfn5+kZGRo6Ojtra2yMjI2tra7e3t////AAAABREAFyMAKTUAPEgATloAYGwAc38AhZEQmKMiqrY1vMhHz9tZ4e1s8/9+//+QDQAAIAAAMhIARCQAVzcAaUkAe1sAjm4AoIAPspMhxaU017dG6spY/Nxr/+59//+PIgAANAAARgEAWRMAayUAfTgAkEoAol0StG8kx4E22ZRJ66Zb/rht/8uA/92S/++lKwAAPQAAUAAAYgUAdRcChyoUmTwmrE45vmFL0HNMd44Vw9ZiC/6qV/72n/8+5/+HMKAAAOgAATQAOXwAhcg8zhCFFljRYqUZqu1h8zWuP4H2h8pCz/6LG/7TY/8fq/9n9GQAbKwAuPgBAUABSYw5ldSF3hzOJmkWcrFiuvmrA0XzT44/l9aH3/7T//8b//9j/AQBDEwBWJgBoOAN7SxWNXSifbzqygkzElF/WpnHpuYP7y5b/3aj/8Lv//83//9//AABaAABtCQB/HBCRLiOkQTW2U0fIZVrbeGztin7/nJH/r6P/wbX/08j/5tr/+Oz/AABbAABuAA+AASGSEzOlJka3OFjJSmvcXX3ub4//gaL/lLT/psb/udn/y+v/3f3/AABGAA5YACBrADJ9AEWPEVeiJGm0NnzGSI7ZW6DrbbP+gMX/ktj/pOr/t/z/yf//AAkfABwxAC5DAEBWAFNoCGV7GniNLYqfP5yyUa/EZMHWdtPpiOb7m/j/rf//v///ABIAACQAADYSAEklAFs3C21JHYBcMJJuQqSAVLeTZ8mledyM3i+7Knv/csP/vw///ABIAACUAADcAAEkACFwFGm4YLIAqP5M8UaVPY7hhdspziNyGm++Yrf+qv/+90v/PAAsAAB4AADAADUIAIFUAMmcARHkCV4wUaZ4mfLE5jsNLoNVes+hwxfqC1/+V6v+nAAAABRAAFyMAKjUAPEcATloAYWwAc38AhZEQmKMiqrY0vchHz9pZ4e1s9P9+//+Q'
);
var Ra = aa(
'data:;base64,AAAAAAAAEBAQIyMjNTU1R0dHWlpabGxsfn5+kZGRo6Ojtra2yMjI2tra7e3t////AAAABREAFyMAKTUAPEgATloAYGwAc38AhZEQmKMiqrY1vMhHz9tZ4e1s8/9+//+QDgAAIAAAMxEARSQAWDYAakgAfFsAj20AoYAPs5IixqQ02LdG6slZ/dtr/+59//+QIwAANQAARwAAWhIAbCQAfjcAkUkCo1sUtW4myIA52pJL7aVd/7dw/8qC/9yU/M+6nKwAAPgAAUAAAYgQAdRYHhygZmjsrrE0+vmBQ0XJi44R19ZeH/6ma/7us/86+/+DRJwAAOQADSwAWXgAocA46giFNlTNfp0ZxuViEzGqW3n2o8Y+7/6HN/7Tg/8by/9j/FQAjKAA2OgBITABbXw9tcSF/gzSSlkakqFi2u2vJzX3b35Dt8qL//7T//8f//9n/AABKDQBcIABvMgWBRRiUVyqmaTy4fE/LjmHdoHPvs4b/xZj/16v/6r3//M///+L/AABdAABvAgKBFRSUJyemOTm4TEvLXl7dcHDwg4L/lZX/qKf/urn/zMz/397/8fH/AABXAAFqABR8ACaODTmhH0uzMV3FRHDYVoLqaJT8e6f/jbn/n8v/st7/xPD/1v//AAA7ABNNACVgADdyAEqEDVyXH2+pMoG7RJPOVqbgabjye8r/jd3/oO//sv//xf//AA0OACAgADIyAERFAFdXCGlpGnt8LI6OP6CgUbKzY8XFdtfYiOnqmvz8rf//v///ABMAAMCUAADgAAEoQAFwjEG81IoFHNJNaR6ZsWbh+a8qRft2jkO+1o//Itf/ax//tABAAACMAADUAAEcAEVoAJGwENn4XSJEpW6M7bbVOf8hgktpzpOyFt/+Xyf+q2/+8AAYAABgACCoAGz0ALU8AP2IAUnQAZIYHdpkZiassm70+rdBQwOJj0vR15P+H9/+aAQAAEwgAJRoAOC0ASj8AXVIAb2QAgXYAlIkMppsfuK0xy8BE3dJW7+Ro//d7//+N'
);
var Pa = aa(
'data:;base64,AAAAAAAAEBAQIyMjNTU1R0dHWlpabGxsfn5+kZGRo6Ojtra2yMjI2tra7e3t////AAAABREAFyMAKTUAPEgATloAYGwAc38AhZEQmKMiqrY1vMhHz9tZ4e1s8/9+//+QDwAAIQAANBEARiMAWDUAa0gAfVoAkGwAon8QtJEix6Q02bZH68hZ/tts/+1+//+QJAAANgAASAAAWxEAbSMMAgDUAkkgEpFoXt20pyX8725FO7qRg/7Zy/8iF/9uX/+2pLAAAPgAAUAAAYwMAdRUMhycfmjoxrExDvl5W0XFo44N69pWN/6if/7qx/8zE/9/WJQAANwALSQAeXAAwbg5CgSBVkzNnpUV5uFeMymqe3Hyw74/D/6HV/7Pn/8b6/9j/EQAsIwA+NgBRSABjWhB1bSKIfzWakUespFq/tmzRyH7j25H27aP//7X//8j//9r/AABQBwBjGQB1LAiHPhuaUC2sYz++dVLRh2Tjmnb1rIn/vpv/0a3/48D/9tL//+X/AABeAABwAAaCDRmVICunMj65RFDMV2LeaXXwe4f/jpn/oKz/sr7/xdD/1+P/6fX/AABRAAdjABl2ACyIBj6aGFCtK2O/PXXRT4fkYpr2dKz/h7//mdH/q+P/vvb/0P//AAUtABg/ACpSADxkAE92CmGJHHObLoauQZjAU6vSZb3leM/3iuL/nfT/r///wf//ABAAACMNADUfAEcxAFpECWxWG35MoLpF7QKONUrWfZciyd9rEiu3WnP/prv/7wf//ABMAACUAADcAAEoABFwNF28gKYEyO5NFTqZXYLhpcsp8hd2Ol++gqv+zvP/Fzv/XAAwAAB8AADEAC0MAHVYAL2gAQnoFVI0XZ58qebI8i8ROntZhsOlzwvuG1f+Y5/+qAAAABBEAFyMAKTUAO0gATloAYG0Acn8AhZEQl6QiqrY1vMhHzttZ4e1s8/9+//+RDwAAIQAAMxEARiMAWDYAa0gAfVoAj20Aon8QtJEixqQ02bZH68lZ/dtr/+1+//+Q'
);
var Oa = aa(
'data:;base64,AAAAERERIiIiMzMzREREVVVVZmZmd3d3iIiImZmZqqqqu7u7zMzM3d3d7u7u////FgoAJxsAOCwAST0AWk4Aa18AfHAAjYEFnpIWr6MnwLQ40cVJ4tZa8+dr//h8//+NLgAAPwkAUBoAYSsAcjwAg00AlF4ApW8QtoAhx5Ey2MKJD6bNU+sRl/9V2/+aH//eYPQAATgAAXwoAcBsAgSwAkj0Oo04ftF8wxXBB1oFS55Jj+KN0/7SF/8WW/9an/+e4PwAAUAAAYQAJchAagyErlDI8pUNNtlRex2Vv2HaA6YeR+pii/6mz/7rE/8vV/9zmNgAZRwAqWAA7aQxMeh1diy5unD9/rVCQvmGhz3Ky4IPD8ZTU/6Xl/7b2/8f//9j/IQBHMgBYQwBpVA96ZSCLdjGch0KtmFO+qWTPunXgy4bx3Jf/7aj//rn//8r//9v/BgBnFwB4KAmJORqaSiurWzy8bE3NfV7ejm/vn4D/sJH/waL/0rP/48T/9NX//+b/AAByAAeDDBiUHSmlLjq2P0vHUFzYYW3pcn76g4//lKD/pbH/tsL/x9P/2OT/6fX/AAhnABl4ACqJBTuaFkyrJ128OG7NSX/eWpDva6H/fLL/jcP/ntT/r+X/wPb/0f//ABhHAClYADppAEt6B1yLGG2cKX6tOo++S6DPXLHgbcLxftP/jM+T/oPX/sf//wv//ACMZADQqAEU7AFZMBWddFnhuJ4l/OJqQSauhWryya83DfN7Uje/lnv/2r///wP//ACcAADgAAEkIAFoZDmsqH3w7MI1MQZ5dUq9uY8B/dNGQheKhlvOyp//DuP/Uyf/lACQAADUAAUYAElcAI2gANHkORYofVpswZ6xBeL1Sic5jmt90q/CFvP+Wzf+n3v+4ABkACyoAHDsALUwAPl0AT24AYH8AcZAQgqEhk7IypMNDtdRUxuVl1/Z26P+H+f+YFgkAJxoAOCsASTwAWk0Aa14AfG8AjYAFnpEWr6InwLM40cRJ4tVa8+Zr//d8//+N'
);
var Fa = aa(
'data:;base64,AAAAERERIiIiMzMzREREVVVVZmZmd3d3iIiImZmZqqqqu7u7zMzM3d3d7u7u////FgoAJxsAOCwAST0AWk4Aa18AfHAAjYEFnpIWr6MnwLQ40cVJ4tZa8+dr//h8//+MNLwAAQAgAURkAYioAczsAhEwAlV0Apm4Rt38iyJAz2aFE6rJV+8Nm/9R3/+WI//aZPQAATgAAXwkAcBoAgSsAkjwRo00itF4zxW9E1oBV55Fm+KJ3/7OI/8SZ/9Wq/+a7PwAAUAAAYQAPcg8ggyAxlDFCpUJTtlNkx2R12HWG6YaX+peo/6i5/7nK/8rb/9vsMwAhRAAyVQBDZgxUdx1liC52mT+HqlCYu2GpzHK63YPL7pTc/6Xt/7b+/8f//9j/HABPLQBgPgBxTxGCYCKTcTOkgkS1k1XGpGbXtXfoxoj515n/6Kr/+bv//8z//93/AABrEQB8IgyNMx2eRC6vVT/AZlDRd2HiiHLzmYP/qpT/u6X/zLb/3cf/7tj//+n/AABxAAyCBR2TFi6kJz+1OFDGSWHXWnLoa4P5fJT/jaX/nrb/r8f/wNj/0en/4vr/AA1fAB5wAC+BAECSEFGjIWK0MnPFQ4TWVJXnZab4drf/h8j/mNn/qer/uvv/y///AB04AC5MJAD9aAFBrBWF8FnKNJ4OeOJSvSaXAWrbRa8fifNjzjen/nvr/r///wP//ACYFADcWAEgnAFk4B2pJGHtaKYxrOp18S66NXL+ebdCvfuHAj/LRoP/isf/zwv//ACcAADgAAEkABVoFFmsWJ3wnOI04SZ5JWq9aa8BrfNF8jeKNnvOer/+vwP/A0f/RACAAADEADUIAHlMAL2QAQHUAUYYOYpcfc6gwhLlBlcpSpttjt+x0yP2F2f+W6v+nCBIAGSMAKjQAO0UATFYAXWcAbngAf4kIkJoZoasqsrw7w81M1N5d5e9u9v9///+QJAAANREARiIAVzMAaEQAeVUAimYAm3cJrIgavZkrzqo837tN8Mxe/91v/+6A//+R'
);
var Ga = aa(
'data:;base64,AAAAERERIiIiMzMzREREVVVVZmZmd3d3iIiImZmZqqqqu7u7zMzM3d3d7u7u////FgoAJxsAOCwAST0AWk4AaM18AfHAAjYEFnpIWr6MnwLQ40cVJ4tZa8+dr//h8//+NLwAAQAgAURkAYioAczsAhEwAlV0Bpm4St38jyJA02aFF6rJW+8Nn/9R4/+WJ//aaPgAATwAAYAgAcRkAgioDkzsUpEwltV02xm5H139Y6JBp+aF6/7KL/8Oc/9St/+W+PgAATwADYAAUcQ4lgh82kzBHpEFYtVJpxmN613SL6IWc+Zat/6e+/7jP/8ng/9rxMAApQQA6UgBLYwxcdB1thS5+lj+Pp1CguGGxyXLC2oPT65Tk/KX1/7b//8f//9j/FwBWKABnOQJ4ShOJWySabDWrfUa8jlfNn2jesHnvwYr/0pv/46z/9L3//87//9//AABvCgCAGxCRLCGiPTKzTkPEX1TVcGXmgXb3kof/o5j/tKn/xbr/1sv/59z/+O3/AABvABGAACKRDzOiIESzMVXEQmbVU3fmZIj3dZn/hqr/l7v/qMz/ud3/yu7/2///ABJVACNmADR3AEWIDFaZHWeqLni7PM4nMUJrdYavucrz/g83/lN7/pe//tv//x///ACAoADE5AEJKAFNbBGRsFXV9JoaON5efSKiwWbnBasrSe9vjjOz0nf3/rv//v///ACcAADgCAEkTAFokC2s1HHxGLY1XPp5oT695YMCKcdGbguKsk/O9pP/Otf/fxv/wACUAADYAAEcADlgAH2kDMHoUQYslUpw2Y61HdL5Yhc9pluB6p/GLuP+cyf+t2v++ABoACSsAGjwAK00APF4ATW8AXoABb5ESgKIjkbM0osRFs9VWxOZn1fd45v+J9/+aFgkAJxoAOCsASTwAWk0Aa14AfG8AjYAFnpEWr6InwLM40cRJ4tVa8+Zr//d8//+NMAAAQQcAUhgAYykAdDoAhUsAllwCp20TuH4kyY812qBG67FX/MJo/9N5/+SK//Wb'
);
var za = aa(
'data:;base64,AAAAERERIiIiMzMzREREVVVVZmZmd3d3iIiImZmZqqqMqu7u7zMzM3d3d7u7u////BxMAGCQAKTUAOkYAS1cAXGgAbXkAfooIj5sZoKwqsb07ws5M099d5PBu9f9///+QIgIAMxMARCQAVTUAZkYAd1cAiGgAmXkHqooYu5spzKw63b1L7s5c/99t//B+//+PNgAARwIAWBMAaSQAejUAi0YAnFcLrWgcvnktz4o+4JtP8axg/71x/86C/9+T//CkPwAAUAAAYQQAchUAgyYQlDchpUgytllDx2pU2Htl6Yx2+p2H/66Y/7+p/9C6/+HLPQAATgAOXwAfcA0wgR5Bki9So0BjtFF0xWKF1nOW54Sn+JW4/6bJ/7fa/8jr/9n8LgAvPwBAUABRYQxich1zgy6ElD+VpVCmtmG3x3LI2IPZ6ZTq+qX7/7b//8f//9j/FgBXJwBoOAJ5SROKWiSbazWsfEa9jVfOnmjfr3nwwIr/0Zv/4qz/873//87//9//AABuCwB/HA+QLSChPjGyT0LDYFPUcWTlgnX2k4b/pJf/taj/xrnM/18r/6Nv/+ez/AABwAA+BASCSEjGjI0K0NFPFRWTWVnXnZ4b4eJf/iaj/mrn/q8r/vNv/zez/3v3/AA9bACBsADF9AEKODlOfH2SwMHXBQYbSUpfjY6j0dLn/hcr/ltv/p+z/uP3/yf//AB00AC5FAD9WAFBnBWF4FnKJJ4OaOJSrSaW8WrbNa8fefNjvjen/nvr/r///wP//ACYDADcUAEglAFk2B2pHGHtYKYxpOp16S66LXL+cbdCtfuG+j/LPoP/gsf/xwv//ACcAADgAAEkABVoFFmsWJ3wnOI04SZ5JWq9aa8BrfNF8jeKNnvOer/+vwP/A0f/RACAAADEADEIAHVMALmQAP3UAUIYPYZcgcqgxg7lClMpTpdtktux1x/2G2P+X6f+oBhMAFyQAKDUAOUYASlcAW2gAbHkAfYoJjpsan6wrsL08wc5N0t9e4/Bv9P+A//+R'
);
var Wa = aa(
'data:;base64,AMAAAERERIiIiMzMzREREVVVVZmZmd3d3iIiImZmZqqqqu7u7zMzM3d3d7u7u////BxMAGCQAKTUAOkYAS1cAXGgAbXkAfooIj5sZoKwqsb07ws5M099d5PBu9f9///+QIwEANBIARSMAVjQAZ0UAeFYAiWcAmngIq4kZvJoqzas73rxM781d/95u/+9///+QNwAASAAAWREAaiIAezMAjEQAnVUOrmYfv3cw0IhB4ZlS8qpj/7t0/8yF/92W/+6nQAAAUQAAYgMAcxQFhCUWlTYnpkc4t1hJyGla2Xpr6ot8+5yN/62e/76v/8/A/+DROwAGTAAXXQAobgw5fx1KkC5boT9sslB9w2GO1HKf5YOw9pTB/6XS/7bj/8f0/9j/KQA4OgBJSwBaXA1rbR58fi+Nj0CeoFGvsWLAwnPR04Ti5JXz9ab//7f//8j//9n/DwBfIABwMQWBQhaSUyejZDi0dUnFhlrWl2vnqHz4uY3/yp7/26//7MD//dH//+L/AABxAgOCEMxSTJCWkNTa1RkfGV1jXaGnoeXr5iov/m5z/rK3/vb7/zs//3+D/8PH/AARrABV8ACaNCjeeG0ivLFnAPWrRTnviX4zzcJ3/ga7/kr//o9D/tOH/xfL/1v//ABVOACZfADdwAEiBCVmSGmqjK3u0PIzFTZ3WXq7nb7/4gND/keH/ovL/s///xP//ACIhADMyAERDAFVUBGZlFXd2JoiHN5mYSKqpWbu6aszLe93cjO7tnf/+rv//v///ACcAADgAAEkOAFofDWswHnxBL41SQJ5jUa90YsCFc9GWhOKnlfO4pv/Jt//ayP/rACQAADUAAEYAEFcAIWgAMnkRQ4oiVJszZaxEdr1Vh85mmN93qfCIuv+Zy/+q3P+7ABoACisAGzwALE0APV4ATm8AX4AAcJERgaIikrMzo8REtNVVxeZm1vd35/+I+P+ZFgkAJxoAOCsASTwAWk0Aa14AfG8AjYAFnpEWr6InwLM40cRJ4tVa8+Zr//d8//+N'
);
M var Ua = aa(
'data:;base64,AAAAERERIiIiMzMzREREVVVVZmZmd3d3iIiImZmZqqqqu7u7zMzM3d3d7u7u////BxMAGCQAKTUAOkYAS1cAXGgAbXkAfooIj5sZoKwqsb07ws5M099d5PBu9f9///+QJAAANREARiIAVzMAaEQAeVUAimYAm3cIrIgZvZkqzqo737tM8Mxd/91u/+5///+QOAAASQAAWhAAayEAfDIAjUMAnlQRr2UiwHYz0YdE4phV86lm/7p3/8uI/9yZ/+2qQAAAUQAAYgIAcxMLhCQclTUtpkY+t1dPyGhg2Xlx6oqC+5uT/6yk/721/87G/9/XOQAOSgAfWwAwbAxBfR1Sji5jnz90sFCFwWGW0nKn44O49JTJ/6Xa/7br/8f8/9j/JQBBNgBSRwBjWA50aR+FejCWi0GnnFK4rWPJvnTaz4Xr4Jb88af//7j//8n//9r/CABlGQB2KgiHOxmYTCqpXTu6bkzLf13MckG7toX/+spD/w6H/1LL/5cP/9tT//+X/AAByAAeDDBiUHSmlLjq2P0vHUFzYYW3pcn76g4//lKD/pbH/tsL/x9P/2OT/6fX/AAllABp2ACuHBDyYFU2pJl66N2/LSIDcWZHtaqL+e7P/jMT/ndX/rub/v/f/0P//ABpAACtRADxiAE1zBl6EF2+VKICmOZG3SqLIW7PZbMTqfdX7jub/n/f/sP//wf//ACUNADYeAEcvAFhABmlRF3piKItzOZyESq2VW76mbM+3feDIjvHZn//qsP/7wf//ACcAADgAAEkAA1oKFGsbJXwsNo09R55OWK9facBwetGBi+KSnPOjrf+0vv/Fz//WACAAADEAC0IAHFMALWQAPnUAT4YQYJchcagygrlDk8pUpNtltex2xv2H1/+Y6P+pBxIAGCMAKTQAOkUAS1YAXGcAbXgAfokIj5oZoKsqsbw7ws1M095d5O9u9f9///+QJAAANREARiIAVzMAaEQAeVUAimYAm3cJrIgavZkMrzqo837tN8Mxe/91v/+6A//+R'
);
var Za = 0;
var Qa = 1;
var Ha = 2;
var Ya = Ha;
var Va = new Ei(0, 16, 319, 258);
var Ja = new Ei(0, 27, 319, 250);
var Xa = new Ei(0, 16, 319, 308);
var qa = new Ei(0, 26, 319, 297);
var Ka = [
0, 0, 0, 37, 37, 37, 52, 52, 52, 79, 79, 79, 91, 91, 91, 105, 105,
105, 123, 123, 123, 138, 138, 138, 167, 167, 167, 185, 185, 185, 197,
197, 197, 208, 208, 208, 215, 215, 215, 225, 22M5, 225, 244, 244, 244,
255, 255, 255, 76, 50, 0, 98, 58, 0, 123, 74, 0, 154, 96, 0, 181, 116,
0, 204, 133, 0, 231, 158, 8, 247, 175, 16, 255, 195, 24, 255, 208, 32,
255, 216, 40, 255, 223, 48, 255, 230, 59, 255, 244, 64, 255, 250, 75,
255, 255, 80, 153, 37, 0, 170, 37, 0, 180, 37, 0, 211, 48, 0, 221, 72,
2, 226, 80, 9, 244, 103, 0, 244, 117, 16, 255, 158, 16, 255, 172, 32,
255, 186, 58, 255, 191, 80, 255, 198, 109, 255, 213, 128, 255, 228,
144, 2M55, 230, 153, 152, 12, 12, 153, 12, 12, 194, 19, 0, 211, 19, 0,
226, 53, 0, 227, 64, 0, 228, 64, 32, 229, 82, 48, 253, 120, 84, 255,
138, 106, 255, 152, 124, 255, 164, 139, 255, 179, 158, 255, 194, 178,
255, 208, 186, 255, 215, 192, 153, 0, 0, 169, 0, 0, 194, 4, 0, 211, 4,
0, 218, 4, 0, 219, 8, 0, 228, 32, 32, 246, 64, 64, 251, 112, 112, 251,
126, 126, 251, 143, 143, 255, 159, 159, 255, 171, 171, 255, 185, 185,
255, 201, 201, 255, 207, 207, 126, 0, 80, 128M, 0, 80, 128, 0, 95, 149,
11, 116, 170, 34, 136, 187, 47, 154, 206, 63, 173, 215, 90, 182, 228,
103, 195, 239, 114, 206, 251, 126, 218, 255, 141, 225, 255, 157, 229,
255, 165, 231, 255, 175, 234, 255, 184, 236, 72, 0, 108, 92, 4, 136,
101, 13, 144, 123, 35, 167, 147, 59, 191, 157, 69, 201, 167, 79, 211,
178, 90, 222, 189, 101, 233, 197, 109, 241, 206, 118, 250, 213, 131,
255, 218, 144, 255, 222, 156, 255, 226, 169, 255, 230, 182, 255, 27,
0, 112,M 34, 27, 141, 55, 48, 162, 72, 65, 179, 89, 82, 196, 99, 92,
206, 111, 104, 218, 125, 118, 232, 135, 128, 248, 147, 140, 255, 157,
151, 255, 168, 163, 255, 179, 175, 255, 188, 184, 255, 196, 193, 255,
218, 209, 255, 0, 13, 127, 0, 18, 167, 0, 24, 192, 10, 43, 209, 27,
74, 227, 47, 88, 240, 55, 104, 255, 73, 121, 255, 91, 133, 255, 109,
150, 255, 127, 163, 255, 140, 173, 255, 150, 180, 255, 168, 192, 255,
183, 203, 255, 198, 214, 255, 0, 41, 90, 0, 56, 118,M 0, 72, 146, 0,
92, 172, 0, 113, 198, 0, 134, 208, 10, 155, 223, 26, 168, 236, 43,
182, 255, 63, 194, 255, 69, 203, 255, 89, 211, 255, 127, 218, 255,
143, 222, 255, 160, 226, 255, 176, 235, 255, 0, 56, 57, 0, 60, 72, 0,
61, 91, 2, 102, 127, 3, 115, 131, 0, 156, 170, 0, 161, 187, 1, 164,
204, 3, 187, 255, 5, 218, 226, 24, 229, 255, 52, 234, 255, 73, 239,
255, 102, 242, 255, 132, 244, 255, 158, 249, 255, 0, 74, 0, 0, 93, 0,
0, 112, 0, 0, 139, 0, 0,M 169, 0, 0, 187, 5, 0, 189, 0, 2, 208, 5, 26,
213, 64, 90, 241, 119, 130, 239, 167, 132, 237, 209, 137, 255, 237,
125, 255, 255, 147, 255, 255, 155, 255, 255, 34, 74, 3, 39, 83, 4, 48,
100, 5, 60, 119, 12, 69, 140, 17, 90, 165, 19, 27, 210, 9, 31, 221, 0,
61, 205, 45, 61, 205, 48, 88, 204, 64, 96, 211, 80, 162, 236, 85, 179,
242, 74, 187, 246, 93, 196, 248, 112, 46, 63, 12, 54, 74, 15, 64, 86,
21, 70, 95, 23, 87, 119, 26, 101, 133, 28, 116, 147, 29, 143, 1M65, 37,
173, 183, 44, 188, 199, 48, 201, 213, 51, 212, 224, 59, 224, 236, 66,
234, 246, 69, 240, 253, 71, 244, 255, 111, 85, 36, 0, 90, 44, 0, 108,
59, 0, 121, 75, 0, 185, 117, 0, 187, 133, 0, 193, 161, 32, 208, 176,
47, 222, 190, 63, 230, 198, 69, 237, 205, 87, 245, 219, 98, 251, 229,
105, 252, 238, 111, 253, 243, 119, 253, 243, 127, 92, 39, 0, 92, 47,
0, 113, 59, 0, 123, 72, 0, 185, 104, 32, 187, 114, 32, 197, 134, 41,
215, 150, 51, 230, 164, 6M4, 244, 177, 75, 253, 193, 88, 255, 204, 85,
255, 212, 97, 255, 221, 105, 255, 230, 121, 255, 234, 152,
];
var $a = [
0, 0, 0, 28, 28, 28, 57, 57, 57, 89, 89, 89, 121, 121, 121, 146, 146,
146, 171, 171, 171, 188, 188, 188, 205, 205, 205, 217, 217, 217, 230,
230, 230, 236, 236, 236, 242, 242, 242, 248, 248, 248, 255, 255, 255,
255, 255, 255, 38, 48, 1, 36, 56, 3, 35, 64, 5, 81, 84, 27, 128, 105,
49, 151, 129, 53, 175, 153, 58, 194, 167, 62, M213, 181, 67, 219, 192,
61, 225, 203, 56, 226, 216, 54, 227, 229, 52, 239, 242, 88, 251, 255,
125, 251, 255, 125, 57, 23, 1, 94, 35, 4, 131, 48, 8, 165, 71, 22,
200, 95, 36, 227, 120, 32, 255, 145, 29, 255, 171, 29, 255, 197, 29,
255, 206, 52, 255, 216, 76, 255, 230, 81, 255, 244, 86, 255, 249, 119,
255, 255, 152, 255, 255, 152, 69, 25, 4, 114, 30, 17, 159, 36, 30,
179, 58, 32, 200, 81, 34, 227, 105, 32, 255, 129, 30, 255, 140, 37,
255, 152, 44, M255, 174, 56, 255, 197, 69, 255, 197, 89, 255, 198, 109,
255, 213, 135, 255, 228, 161, 255, 228, 161, 74, 23, 4, 126, 26, 13,
178, 29, 23, 200, 33, 25, 223, 37, 28, 236, 59, 56, 250, 82, 85, 252,
97, 97, 255, 112, 110, 255, 127, 126, 255, 143, 143, 255, 157, 158,
255, 171, 173, 255, 185, 189, 255, 199, 206, 255, 199, 206, 5, 5, 104,
59, 19, 109, 113, 34, 114, 139, 42, 140, 165, 50, 166, 185, 56, 186,
205, 62, 207, 219, 71, 221, 234, 81, 235, 244, 95, 245, M254, 109, 255,
254, 122, 253, 255, 135, 251, 255, 149, 253, 255, 164, 255, 255, 164,
255, 40, 4, 121, 64, 9, 132, 89, 15, 144, 112, 36, 157, 136, 57, 170,
164, 65, 195, 192, 74, 220, 208, 84, 237, 224, 94, 255, 233, 109, 255,
242, 124, 255, 248, 138, 255, 255, 152, 255, 254, 161, 255, 254, 171,
255, 254, 171, 255, 53, 8, 138, 66, 10, 173, 80, 12, 208, 100, 40,
208, 121, 69, 208, 141, 75, 212, 162, 81, 217, 176, 88, 236, 190, 96,
255, 197, 107, 25M5, 204, 119, 255, 209, 131, 255, 215, 144, 255, 219,
157, 255, 223, 170, 255, 223, 170, 255, 5, 30, 129, 6, 38, 165, 8, 47,
202, 38, 61, 212, 68, 76, 222, 79, 90, 238, 90, 104, 255, 101, 117,
255, 113, 131, 255, 128, 145, 255, 144, 160, 255, 151, 169, 255, 159,
178, 255, 175, 190, 255, 192, 203, 255, 192, 203, 255, 5, 30, 129, 6,
38, 165, 8, 47, 202, 38, 61, 212, 68, 76, 222, 79, 90, 238, 90, 104,
255, 101, 117, 255, 113, 131, 255, 128, 145, 255, 144, 160,M 255, 151,
169, 255, 159, 178, 255, 175, 190, 255, 192, 203, 255, 192, 203, 255,
12, 4, 139, 34, 24, 160, 56, 45, 181, 72, 62, 199, 88, 79, 218, 97,
89, 236, 107, 100, 255, 122, 116, 255, 138, 132, 255, 145, 142, 255,
153, 152, 255, 165, 163, 255, 177, 174, 255, 184, 184, 255, 192, 194,
255, 192, 194, 255, 29, 41, 90, 29, 56, 118, 29, 72, 146, 28, 92, 172,
28, 113, 198, 50, 134, 207, 72, 155, 217, 78, 168, 236, 85, 182, 255,
112, 199, 255, 140, 2M16, 255, 147, 219, 255, 155, 223, 255, 175, 228,
255, 195, 233, 255, 195, 233, 255, 47, 67, 2, 57, 82, 2, 68, 97, 3,
65, 122, 18, 62, 148, 33, 74, 159, 46, 87, 171, 59, 92, 189, 85, 97,
208, 112, 105, 226, 122, 114, 245, 132, 124, 250, 141, 135, 255, 151,
154, 255, 166, 173, 255, 182, 173, 255, 182, 10, 65, 8, 13, 84, 10,
16, 104, 13, 19, 125, 15, 22, 146, 18, 25, 165, 20, 28, 185, 23, 30,
201, 25, 33, 217, 27, 71, 228, 45, 110, 240, 64, 120, 247, 77, 131,M
255, 91, 154, 255, 122, 178, 255, 154, 178, 255, 154, 4, 65, 11, 5,
83, 14, 6, 102, 17, 7, 119, 20, 8, 136, 23, 9, 155, 26, 11, 175, 29,
72, 196, 31, 134, 217, 34, 143, 233, 36, 153, 249, 39, 168, 252, 65,
183, 255, 91, 201, 255, 110, 220, 255, 129, 220, 255, 129, 2, 53, 15,
7, 63, 21, 12, 74, 28, 45, 95, 30, 79, 116, 32, 89, 131, 36, 100, 146,
40, 130, 161, 46, 161, 176, 52, 169, 193, 58, 178, 210, 65, 196, 217,
69, 214, 225, 73, 228, 240, 78, M242, 255, 83, 242, 255, 83,
];
var to = { 0: Ka, 1: Ta, 2: ka, 3: Ba, 4: Oa, 5: Fa, 6: Ga };
var eo = { 0: $a, 1: ja, 2: Ra, 3: Pa, 4: za, 5: Wa, 6: Ua };
var no = 3;
new Array(131072);
var fo = function (t) {
for (var e = 0; e < t; e++) {
if (oe[0] > 1) {
oe[0]--;
} else if (oe[0] == 1) {
oe[0] = ae[0];
pe(0);
}
if (oe[1] > 1) {
oe[1]--;
} elsMe if (oe[1] == 1) {
oe[1] = ae[1];
pe(1);
}
te[Ae++] = (ie[0] + ie[1]) & 255;
if (Ae >= 2048) {
Ae = 0;
}
}
};
var uo = function () {};
var lo = function (t) {
var e;
var n = b;
var r = y;
var c = new Array(1, 28, 114);
for (var i = t; t; ) {
var a = 0;
for (e = 0; e < p / 8; e++) {
var o;
varM s = new Array(0, 0, 0);
var f = 1 & M ? 2 : 1;
if (3 & O) {
for (o = 0; o < 3; o++) {
A[o]++;
if (A[o] >= c[o]) {
A[o] = 0;
s[o] = 1;
}
}
S = (S + 1) % 15;
x = (x + 1) % 31;
D = (D + 1) % 511;
N = (N + 1) % 131071;
if (64 & M && s[0]) {
q(0, 16 & M ? 7 : 4);
M }
if (!(64 & M) && !!s[f]) {
q(0, 1);
}
if (32 & M && s[0]) {
q(2, 8 & M ? 7 : 4);
}
if (!(32 & M) && !!s[f]) {
q(2, 1);
}
if (s[f]) {
if (!(16 & M)) {
q(1, 1);
}
if (!(8 & M)) {
q(3, 1);
}
}
}
M if (K(2)) {
if (8 & M) {
q(3, 1);
} else {
$(2);
}
tt(2);
Q[0] = 4 & M ? v[0] : 1;
}
if (K(3)) {
if (8 & M) {
$(2);
}
$(3);
tt(3);
Q[1] = 2 & M ? v[1] : 1;
}
if (8 & O && T[1] == 1) {
$(0);
}
if (K(0)) M{
if (16 & M) {
q(1, 1);
} else {
$(0);
}
tt(0);
}
if (K(1)) {
if (16 & M) {
$(0);
}
$(1);
tt(1);
}
for (var u = 0; u <= 3; u++) {
a += (v[u] ^ Q[u] || 16 & m[u] ? 15 & m[u] : 0) << 2;
}
}
a /= e;
k;
n[r]M = a;
r++;
t--;
}
if ((y += i) >= 1536) {
y = 0;
}
};
var ho = function () {
U += p;
if (W < 228) {
W++;
}
};
var Ao = function (t) {
Ft[640] = 255 & (~Ft[641] | Qt);
if (t[0]) {
Ft[640] = -129 & Ft[640] & 255;
}
if (t[1]) {
Ft[640] = -65 & Ft[640] & 255;
}
if (t[2]) {
Ft[640] = -33 M& Ft[640] & 255;
}
if (t[3]) {
Ft[640] = -17 & Ft[640] & 255;
}
if (t[6]) {
Ft[640] = -9 & Ft[640] & 255;
}
if (t[7]) {
Ft[640] = -5 & Ft[640] & 255;
}
if (t[8]) {
Ft[640] = -3 & Ft[640] & 255;
}
if (t[9]) {
Ft[640] = -2 & Ft[640] & 255;
}
Ft[642] = 255 & (~Ft[643] | Ht);
if (t != null) {
if (t[12]) {
FMt[642] = -2 & Ft[642] & 255;
}
if (t[13]) {
Ft[642] = -3 & Ft[642] & 255;
}
if (t[14]) {
Ft[642] = -9 & Ft[642] & 255;
}
if (t[15]) {
Ft[642] = -65 & Ft[642] & 255;
}
if (t[16]) {
Ft[642] = -129 & Ft[642] & 255;
}
}
if (4 & Ft[642]) {
Ft[8] &= 127;
Ft[9] &= 127;
if (t[4] || t[5]) {
Ft[M12] &= 127;
} else {
Ft[12] |= 128;
}
} else {
Ft[12] |= 128;
if (t[4]) {
Ft[9] |= 128;
} else {
Ft[9] &= 127;
}
if (t[5]) {
Ft[8] |= 128;
} else {
Ft[8] &= 127;
}
}
if (16 & Ft[642]) {
Ft[10] &= 127;
Ft[11] &= 127;
if (t[10] || t[11]) {
Ft[13] &= 127;
M } else {
Ft[13] |= 128;
}
} else {
Ft[13] |= 128;
if (t[10]) {
Ft[11] |= 128;
} else {
Ft[11] &= 127;
}
if (t[11]) {
Ft[10] |= 128;
} else {
Ft[10] &= 127;
}
}
};
var po = function () {
return zt;
};
var bo = function (t) {
Vt -= t;
if (!Yt && Vt > 0) {
Gt(M644, (Vt / Zt) | 0);
} else if (Yt) {
if (Vt >= -255) {
Gt(644, 255 & Vt);
} else {
Gt(644, 0);
zt = false;
}
} else {
Vt = Zt;
Gt(644, 0);
Ft[645] |= 128;
Ft[661] |= 128;
Yt = true;
}
};
var go = Di;
var yo = function (t) {
if (Vi) {
xi = He;
}
ji = 0;
Ri = 128 & Si[60];
M Yi = false;
if ((96 & Si[60]) != 64 && t >= Ni.top && t <= Ni.bottom) {
var e = Ki(0);
var n = (t - Di.top) * Di.GetLength();
for (var r = 0; r < 160; r++) {
_i[n++] = e;
_i[n++] = e;
}
} else if (
(96 & Si[60]) == 64 &&
t >= Di.top &&
t <= Di.bottom &&
(t == Di.top &&
(Pi.setBL(Si[48]),
Pi.setBH(Si[44]),
(Ui = 32 & (Hi ? Si[MPi.getW()] : xi(Pi.getW()))),
(Zi = 64 & (Hi ? Si[Pi.getW()] : xi(Pi.getW()))),
(Wi = 15 & (Hi ? Si[Pi.getW()] : xi(Pi.getW()))),
Oi.setBL(Hi ? Si[Pi.getW() + 2] : xi(Pi.getW() + 2)),
Oi.setBH(Hi ? Si[Pi.getW() + 1] : xi(Pi.getW() + 1)),
128 & (Hi ? Si[Pi.getW()] : xi(Pi.getW())) && (Yi = true)),
t >= Di.top && t != Di.bottom)
) {
Oi.setBL(Hi ? Si[Pi.getW() + 2] : xi(Pi.getW() + 2));
Oi.setBH(Hi ? Si[MPi.getW() + 1] : xi(Pi.getW() + 1));
Bi = Ti[ki];
(function () {
ji += 16;
for (
var t = Hi ? Si[Oi.getW() + 1] : xi(Oi.getW() + 1);
95 & t && ji < 428;
) {
var e = 0;
var n = 0;
Fi.setBL(Hi ? Si[Oi.getW()] : xi(Oi.getW()));
Fi.setBH(Hi ? Si[Oi.getW() + 2] : xi(Oi.getW() + 2));
if (31 & t) {
ji += 8;
zi M=
((224 & (Hi ? Si[Oi.getW() + 1] : xi(Oi.getW() + 1))) >>>
3) &
255;
Gi = Hi ? Si[Oi.getW() + 3] : xi(Oi.getW() + 3);
e =
(1 +
(31 &
~(e =
31 & (Hi ? Si[Oi.getW() + 1] : xi(Oi.getW() + 1))))) &
255;
Oi.wPlusEqual(4);
} else {
ji += 10;
zi M=
((224 & (Hi ? Si[Oi.getW() + 3] : xi(Oi.getW() + 3))) >>>
3) &
255;
Gi = Hi ? Si[Oi.getW() + 4] : xi(Oi.getW() + 4);
n = 32 & (Hi ? Si[Oi.getW() + 1] : xi(Oi.getW() + 1));
Qi = 128 & (Hi ? Si[Oi.getW() + 1] : xi(Oi.getW() + 1));
e =
255 &
((e = 31 & (Hi ? Si[Oi.getW() + 3] : xi(Oi.getW() + 3))) ==
0
?M 32
: 1 + (31 & ~e));
Oi.wPlusEqual(5);
}
var r = false;
if (n) {
var c = 16 & Si[60];
ea.copy(Fi);
for (i = 0; i < e && !(ji >= 428); i++) {
Fi.setBL(Hi ? Si[ea.wPlusPlus()] : xi(ea.wPlusPlus()));
Fi.setBH(Si[52] + Wi);
if (qi()) {
if (!r) {
ji += 3;
M r = true;
}
} else {
ji += 6;
if (c) {
ji += 3;
}
}
$i();
if (c) {
$i();
}
}
} else {
Fi.bhPlusEqual(Wi);
for (var i = 0; i < e && !(ji >= 428); i++) {
if (qi()) {
if (!rM) {
ji += 3;
r = true;
}
} else {
ji += 3;
}
$i();
}
}
t = Hi ? Si[Oi.getW() + 1] : xi(Oi.getW() + 1);
}
if (Wi == 0) {
ji += 6;
if (128 & (Hi ? Si[Pi.getW() + 3] : xi(Pi.getW() + 3))) {
ji += 17;
}
}
M })();
Bi = Ti[(ki = ki == 1 ? 0 : 1)];
if (t >= Ni.top && t <= Ni.bottom) {
(function (t, e) {
var n = 3 & Si[60];
var r = e;
if (n == 0) {
for (var c = 0; c < 160; c += 4) {
var i;
i = Ki(Bi[c + 0]);
t[r++] = i;
t[r++] = i;
i = Ki(Bi[c + 1]);
t[r++] = i;
t[r++] = i;
M i = Ki(Bi[c + 2]);
t[r++] = i;
t[r++] = i;
i = Ki(Bi[c + 3]);
t[r++] = i;
t[r++] = i;
if (Ri) {
ta(t, r - 8);
}
}
} else if (n == 2) {
for (c = 0; c < 160; c += 4) {
t[r++] = Ki(
(16 & Bi[c + 0]) |
((8 & Bi[c + 0]) >>> 3) |
M (2 & Bi[c + 0])
);
t[r++] = Ki(
(16 & Bi[c + 0]) |
((4 & Bi[c + 0]) >>> 2) |
((1 & Bi[c + 0]) << 1)
);
t[r++] = Ki(
(16 & Bi[c + 1]) |
((8 & Bi[c + 1]) >>> 3) |
(2 & Bi[c + 1])
);
t[r++] = Ki(
(16 & Bi[c + 1]) |
M ((4 & Bi[c + 1]) >>> 2) |
((1 & Bi[c + 1]) << 1)
);
t[r++] = Ki(
(16 & Bi[c + 2]) |
((8 & Bi[c + 2]) >>> 3) |
(2 & Bi[c + 2])
);
t[r++] = Ki(
(16 & Bi[c + 2]) |
((4 & Bi[c + 2]) >>> 2) |
((1 & Bi[c + 2]) << 1)
);
t[Mr++] = Ki(
(16 & Bi[c + 3]) |
((8 & Bi[c + 3]) >>> 3) |
(2 & Bi[c + 3])
);
t[r++] = Ki(
(16 & Bi[c + 3]) |
((4 & Bi[c + 3]) >>> 2) |
((1 & Bi[c + 3]) << 1)
);
if (Ri) {
ta(t, r - 8);
}
}
} else if (n == 3) {
M for (c = 0; c < 160; c += 4) {
t[r++] = Ki(30 & Bi[c + 0]);
t[r++] = Ki((28 & Bi[c + 0]) | ((1 & Bi[c + 0]) << 1));
t[r++] = Ki(30 & Bi[c + 1]);
t[r++] = Ki((28 & Bi[c + 1]) | ((1 & Bi[c + 1]) << 1));
t[r++] = Ki(30 & Bi[c + 2]);
t[r++] = Ki((28 & Bi[c + 2]) | ((1 & Bi[c + 2]) << 1));
t[r++] = Ki(30 & Bi[c + 3]);
t[r++] = Ki((28 & Bi[c + 3]) | ((1 & Bi[c +M 3]) << 1));
if (Ri) {
ta(t, r - 8);
}
}
}
})(_i, (t - Di.top) * Di.GetLength());
}
for (r = 0; r < 160; r++) {
Bi[r] = 0;
}
if (t > Di.top) {
if (Wi == 0) {
Pi.wPlusEqual(3);
Ui = 32 & (Hi ? Si[Pi.getW()] : xi(Pi.getW()));
Zi = 64 & (Hi ? Si[Pi.getW()] : xi(Pi.getW()));
M Wi = 15 & (Hi ? Si[Pi.getW()] : xi(Pi.getW()));
if (128 & (Hi ? Si[Pi.getW()] : xi(Pi.getW()))) {
Yi = true;
}
} else {
Wi--;
}
}
}
if (Vi) {
xi = Qe;
}
return ji;
};
var wo = function () {
return Yi;
};
var mo = Ne;
var Mo = function () {
pc = false;
var t;
var e = dc.wPlusPlus(M);
switch (
((lc = rc(e)),
(Ac = Nc[lc]) === void 0
? console.error(
'Unknown opcode, mem location: %d, %d',
e,
lc.toString(16)
)
: Li-- > 0 &&
console.log(
'Opcode:%s %d %d %d %d',
lc.toString(16),
Ac,
Jo(),
Io,
_o
),
lc)
) {M
case 0:
dc.wPlusPlus();
fc |= mc;
_c(dc.getBH());
_c(dc.getBL());
_c(fc);
fc |= yc;
dc.setBL(ic[Dc]);
dc.setBH(ic[xc]);
return Ac;
case 1:
Uc();
di();
return Ac;
case 5:
Hc();
di();
return Ac;
case 6:
Hc();
qc();
returnM Ac;
case 8:
hi();
return Ac;
case 9:
Wc();
di();
return Ac;
case 10:
if (128 & ac) {
fc |= bc;
} else {
fc = fc & ~bc & 255;
}
kc((ac = (ac << 1) & 255));
return Ac;
case 13:
Fc();
di();
return Ac;
case 14:
Fc();
qc()M;
return Ac;
case 16:
Qc();
jc(!(fc & Lc));
return Ac;
case 17:
Zc();
di();
Oc(sc);
return Ac;
case 21:
Yc();
di();
return Ac;
case 22:
Yc();
qc();
return Ac;
case 24:
fc = fc & ~bc & 255;
return Ac;
case 25:
zMc();
di();
Oc(sc);
return Ac;
case 29:
Gc();
di();
Oc(oc);
return Ac;
case 30:
Gc();
qc();
return Ac;
case 32:
Fc();
dc.wMinusMinus();
_c(dc.getBH());
_c(dc.getBL());
dc.copy(hc);
return Ac;
case 33:
Uc();
Xc();
M return Ac;
case 36:
Hc();
Kc();
if (hc.getW() == 12) {
pc = true;
}
return Ac;
case 37:
Hc();
Xc();
return Ac;
case 38:
Hc();
bi();
return Ac;
case 40:
pi();
return Ac;
case 41:
Wc();
Xc();
return Ac;
cMase 42:
(function () {
var t = fc;
if (128 & ac) {
fc |= bc;
} else {
fc = fc & ~bc & 255;
}
ac = (ac << 1) & 255;
kc((ac |= t & bc));
})();
return Ac;
case 44:
Fc();
Kc();
return Ac;
case 45:
Fc();
Xc();
return Ac;
case 46:
M Fc();
bi();
return Ac;
case 48:
Qc();
jc(fc & Lc);
return Ac;
case 49:
Zc();
Xc();
Oc(sc);
return Ac;
case 53:
Yc();
Xc();
return Ac;
case 54:
Yc();
bi();
return Ac;
case 56:
fc |= bc;
return Ac;
cMase 57:
zc();
Xc();
Oc(sc);
return Ac;
case 61:
Gc();
Xc();
Oc(oc);
return Ac;
case 62:
Gc();
bi();
return Ac;
case 64:
fc = Tc();
dc.setBL(Tc());
dc.setBH(Tc());
return Ac;
case 65:
Uc();
ri();
return Ac;
caMse 69:
Hc();
ri();
return Ac;
case 70:
Hc();
ui();
return Ac;
case 72:
li();
return Ac;
case 73:
Wc();
ri();
return Ac;
case 74:
fi();
return Ac;
case 76:
Fc();
ii();
return Ac;
case 77:
Fc();
ri(M);
return Ac;
case 78:
Fc();
ui();
return Ac;
case 80:
Qc();
jc(!(fc & vc));
return Ac;
case 81:
Zc();
ri();
Oc(sc);
return Ac;
case 85:
Yc();
ri();
return Ac;
case 86:
Yc();
ui();
return Ac;
case 88:
M fc = fc & ~yc & 255;
return Ac;
case 89:
zc();
ri();
Oc(sc);
return Ac;
case 93:
Gc();
ri();
Oc(oc);
return Ac;
case 94:
Gc();
ui();
return Ac;
case 96:
dc.setBL(Tc());
dc.setBH(Tc());
dc.wPlusPlus();
return Ac;
case 97:
M Uc();
Jc();
return Ac;
case 101:
Hc();
Jc();
return Ac;
case 102:
Hc();
gi();
return Ac;
case 104:
Ai();
return Ac;
case 105:
Wc();
Jc();
return Ac;
case 106:
(function () {
var t = fc;
fc = fc & ~bc & 255;
fc |=M 1 & ac;
ac = (ac >>> 1) & 255;
if (t & bc) {
ac |= 128;
}
kc(ac);
})();
return Ac;
case 108:
(t = new nc()).setBL(rc(dc.wPlusPlus()));
t.setBH(rc(dc.wPlusPlus()));
hc.setBL(rc(t.getW()));
hc.setBH(rc(t.getW() + 1));
ii();
return Ac;
case 109:
Fc();
Jc();
retuMrn Ac;
case 110:
Fc();
gi();
return Ac;
case 112:
Qc();
jc(fc & vc);
return Ac;
case 113:
Zc();
Jc();
Oc(sc);
return Ac;
case 117:
Yc();
Jc();
return Ac;
case 118:
Yc();
gi();
return Ac;
case 120:
fc |= yc;
M return Ac;
case 121:
zc();
Jc();
Oc(sc);
return Ac;
case 125:
Gc();
Jc();
Oc(oc);
return Ac;
case 126:
Gc();
gi();
return Ac;
case 129:
Uc();
wi();
return Ac;
case 132:
Hc();
Mi();
return Ac;
case 13M3:
Hc();
wi();
return Ac;
case 134:
Hc();
mi();
return Ac;
case 136:
kc((sc = (sc - 1) & 255));
return Ac;
case 138:
kc((ac = oc));
return Ac;
case 140:
Fc();
Mi();
return Ac;
case 141:
Fc();
wi();
return Ac;
case 142:
M Fc();
mi();
return Ac;
case 144:
Qc();
jc(!(fc & bc));
return Ac;
case 145:
Zc();
wi();
return Ac;
case 148:
Yc();
Mi();
return Ac;
case 149:
Yc();
wi();
return Ac;
case 150:
Vc();
mi();
return Ac;
casMe 152:
kc((ac = sc));
return Ac;
case 153:
zc();
wi();
return Ac;
case 154:
uc = oc;
return Ac;
case 157:
Gc();
wi();
return Ac;
case 160:
Wc();
si();
return Ac;
case 161:
Uc();
ai();
return Ac;
case 162:
Wc();M
oi();
return Ac;
case 164:
Hc();
si();
return Ac;
case 165:
Hc();
ai();
return Ac;
case 166:
Hc();
oi();
return Ac;
case 168:
kc((sc = ac));
return Ac;
case 169:
Wc();
ai();
return Ac;
case 170:
vi();
M return Ac;
case 172:
Fc();
si();
return Ac;
case 173:
Fc();
ai();
return Ac;
case 174:
Fc();
oi();
return Ac;
case 176:
Qc();
jc(fc & bc);
return Ac;
case 177:
Zc();
ai();
Oc(sc);
return Ac;
case 180:
Yc(M);
si();
return Ac;
case 181:
Yc();
ai();
return Ac;
case 182:
Vc();
oi();
return Ac;
case 184:
fc = fc & ~vc & 255;
return Ac;
case 185:
zc();
ai();
Oc(sc);
return Ac;
case 186:
kc((oc = uc));
return Ac;
case 188:
M Gc();
si();
Oc(oc);
return Ac;
case 189:
Gc();
ai();
Oc(oc);
return Ac;
case 190:
zc();
oi();
Oc(sc);
return Ac;
case 192:
Wc();
ei();
return Ac;
case 193:
Uc();
$c();
return Ac;
case 196:
Hc();
M ei();
return Ac;
case 197:
Hc();
$c();
return Ac;
case 198:
Hc();
ni();
return Ac;
case 200:
kc((sc = (sc + 1) & 255));
return Ac;
case 201:
Wc();
$c();
return Ac;
case 202:
kc((oc = (oc - 1) & 255));
return Ac;
case 204:
Fc();
M ei();
return Ac;
case 205:
Fc();
$c();
return Ac;
case 206:
Fc();
ni();
return Ac;
case 208:
Qc();
jc(!(fc & gc));
return Ac;
case 209:
Zc();
$c();
Oc(sc);
return Ac;
case 213:
Yc();
$c();
return Ac;
Mcase 214:
Yc();
ni();
return Ac;
case 216:
fc = fc & ~wc & 255;
return Ac;
case 217:
zc();
$c();
Oc(sc);
return Ac;
case 221:
Gc();
$c();
Oc(oc);
return Ac;
case 222:
Gc();
ni();
return Ac;
case 224:
Wc();
tiM();
return Ac;
case 225:
Uc();
yi();
return Ac;
case 228:
Hc();
ti();
return Ac;
case 229:
Hc();
yi();
return Ac;
case 230:
Hc();
ci();
return Ac;
case 232:
kc((oc = (oc + 1) & 255));
return Ac;
case 233:
Wc();
M yi();
return Ac;
case 234:
return Ac;
case 236:
Fc();
ti();
return Ac;
case 237:
Fc();
yi();
return Ac;
case 238:
Fc();
ci();
return Ac;
case 240:
Qc();
jc(fc & gc);
return Ac;
case 241:
Zc();
yi();
Oc(sc);
M return Ac;
case 245:
Yc();
yi();
return Ac;
case 246:
Yc();
ci();
return Ac;
case 248:
fc |= wc;
return Ac;
case 249:
zc();
yi();
Oc(sc);
return Ac;
case 253:
Gc();
yi();
Oc(oc);
return Ac;
case 254:
M Gc();
ci();
return Ac;
case 75:
Wc();
Xc();
fi();
return Ac;
case 11:
case 43:
Wc();
Xc();
if (128 & ac) {
fc |= bc;
} else {
fc = fc & ~bc & 255;
}
return Ac;
case 179:
Zc();
ai();
vi();
return Ac;
casMe 151:
Vc();
hi();
li();
mi();
Xc();
wi();
Ai();
pi();
return Ac;
case 100:
case 137:
return Ac;
case 4:
case 128:
return Ac;
case 252:
case 251:
case 250:
case 247:
case 244:
case 243:
case 242:
case 239:
caseM 235:
case 231:
case 227:
case 226:
case 223:
case 220:
case 219:
case 218:
case 215:
case 212:
case 211:
case 210:
case 207:
case 203:
case 199:
case 195:
case 194:
case 191:
case 187:
case 183:
case 178:
case 175:
case 171:
case 167:
M case 163:
case 159:
case 158:
case 156:
case 155:
case 147:
case 146:
case 143:
case 139:
case 135:
case 131:
case 130:
case 127:
case 124:
case 123:
case 122:
case 119:
case 116:
case 115:
case 114:
case 111:
case 107:
case 103:
case 99:
M case 98:
case 95:
case 92:
case 91:
case 90:
case 87:
case 84:
case 83:
case 82:
case 79:
case 71:
case 68:
case 67:
case 66:
case 63:
case 60:
case 59:
case 58:
case 55:
case 52:
case 51:
case 50:
case 47:
case 39:
case M35:
case 34:
case 31:
case 28:
case 27:
case 26:
case 23:
case 20:
case 19:
case 18:
case 15:
case 12:
case 7:
case 3:
case 2:
return Ac;
}
return Ac;
};
var vo = function () {
_c(dc.getBH());
_c(dc.getBL());
_c((fc = fc & ~mc & 255));
fc |= yc;
dc.setMBL(ic[Sc]);
dc.setBH(ic[Ec]);
return 7;
};
var Lo = br;
var Io = 454;
var Co = false;
var Eo = false;
var So = 60;
var xo = 0;
var Do = 262;
var No = 0;
var _o = 1;
var To = false;
var ko = false;
p = Io;
let Bo = null;
var Po = 0;
var Oo = 0;
var Fo = 0;
var Go = 0;
Rt(
new jt('onCartridgeLoaded', function () {
To = ar();
M ko = dr();
})
);
var Ko;
var $o;
var ts = 320;
var es = 2;
var ns = 240;
var rs = 26;
var cs = 240;
var is = 240;
var as = true;
var os = new Array(300 * ts);
var ss = null;
var fs = null;
var us = null;
var ds = null;
var ls = null;
var hs = new Array(256);
var As = 'initial';
var ps = false;
var bs = 2;
var gs = 1;
var Mys = 0;
var ws = 0;
var ms = 0;
var Ms = 0;
var vs = 0;
var Ls = false;
var Is = 0;
Rt(
new jt('init', function (t) {
Ss(t);
})
);
window.addEventListener('resize', function () {
Ns();
setTimeout(Ns, 1e3);
});
Rt(
new jt('onCartridgeLoaded', function () {
Is = ir();
Cs();
})
);
var Js = Io;
var Xs = Ni;
M var qs = Di;
var Ks = Za;
var $s = rs;
var tf = es;
var ef = ns;
var nf = cs;
var rf = null;
var cf = ts;
var af = is;
var of = 0;
var sf = 0;
var ff = false;
var uf = false;
var df = 0;
Rt(
new jt('onCartridgeLoaded', function () {
lf(false);
uf = false;
df = 0;
of = 0;
sf = 0;
})
);
var bf = function (t, e, Mn, r, c, i) {
var a = (t = t);
var o = (e = e);
var s = (n = n);
var f = (r = r);
var u = (c = c);
var d = (i = i);
var l = false;
var h = false;
var A = false;
var p = false;
var b = false;
var g = false;
var y = false;
var w = false;
return {
getDefaultLeft: function () {
return a;
},
getLeft: function () {
M return t;
},
setLeft: function (e) {
t = e;
},
getDefaultRight: function () {
return o;
},
getRight: function () {
return e;
},
setRight: function (t) {
e = t;
},
getDefaultUp: function () {
return s;
},
getUp: function () {
return n;
},
setUp: function (t) {
M n = t;
},
getDefaultDown: function () {
return f;
},
getDown: function () {
return r;
},
setDown: function (t) {
r = t;
},
getDefaultButton1: function () {
return u;
},
getButton1: function () {
return c;
},
setButton1: function (t) {
c = t;
},
getDefaultBuMtton2: function () {
return d;
},
getButton2: function () {
return i;
},
setButton2: function (t) {
i = t;
},
isLeft: function () {
return l && (!h || !!y);
},
isRight: function () {
return h && (!l || !y);
},
isUp: function () {
return A && (!p || !!w);
},
isDown: function () {
M return p && (!A || !w);
},
isButton1: function () {
return b;
},
isButton2: function () {
return g;
},
handleKeyCode: function (a, o) {
switch (a) {
case t:
l = o;
if (o) {
y = true;
}
return true;
case n:
A = o;
if (o) {
w M= true;
}
return true;
case e:
h = o;
if (o) {
y = false;
}
return true;
case r:
p = o;
if (o) {
w = false;
}
return true;
case c:
b = o;
return true;
case i:
g = o;
M return true;
}
return false;
},
reset: function () {
y = false;
w = false;
},
};
};
var gf = new bf(37, 39, 38, 40, 90, 88);
var yf = new bf(74, 76, 73, 75, 78, 77);
var wf = false;
var mf = false;
var Mf = false;
var vf = false;
var Lf = false;
var If = 1;
var Cf = 0;
var Ef = 113;
var Sf = Ef;
var xf = 114;
M var Df = xf;
var Nf = 115;
var _f = Nf;
Rt(
new jt('init', function () {
document.onkeydown = function (t) {
Bf(t, true);
};
document.onkeyup = function (t) {
Bf(t, false);
};
})
);
Rt(
new jt('onCartridgeLoaded', function () {
If = wr();
Cf = mr();
})
);
if (!Object.create) {
Object.create = function (t) M{
function e() {}
e.prototype = t;
return new e();
};
}
var Yf =
'ontouchstart' in window ||
navigator.maxTouchPoints > 0 ||
navigator.msMaxTouchPoints > 0;
var Vf =
Yf &&
/android|blackberry|iemobile|ipad|iphone|ipod|opera mini|webos/i.test(
navigator.userAgent
);
var Jf =
/ipad|iphone|ipod/i.test(navigator.userAgent) && !window.MSStream;
var Kf = nMew qf();
var $f = new qf({
isAnalogLeft: function (t, e) {
return this.isAnalogDir(t, e ? 2 : 0, false);
},
isAnalogRight: function (t, e) {
return this.isAnalogDir(t, e ? 2 : 0, true);
},
isAnalogUp: function (t, e) {
return this.isAnalogDir(t, e ? 3 : 1, true);
},
isAnalogDown: function (t, e) {
return this.isAnalogDir(t, e ? 3 : 1, false);
},
isDigitalLeft: function (tM) {
return this.isAnalogDir(t, 4, false);
},
isDigitalRight: function (t) {
return this.isAnalogDir(t, 4, true);
},
isDigitalUp: function (t) {
return this.isAnalogDir(t, 5, true);
},
isDigitalDown: function (t) {
return this.isAnalogDir(t, 5, false);
},
isReset: function (t) {
return this.isPressed(t, 5);
},
isSelect: function (t) {
return this.MisPressed(t, 4);
},
isPause: function (t) {
return false;
},
});
var eu = [new tu(null, Kf), new tu(null, Kf)];
var cu = br;
var iu = function () {
var t = uf || df > 0;
if (df > 0) {
df--;
}
return t;
};
var au = gf;
var ou = yf;
var su = false;
var fu = false;
var uu = null;
var du = true;
Rt(
new jt('init', functionM (t) {
var e = t.keyboardData;
uu = e;
})
);
var pu = {
'4332c24e4f3bc72e7fe1b77adf66c2b7': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
p4: 'f',
xm: 'f',
hs: 't',
},
'0be996d25144966d5541c9eb4919b289': {
ty: '4',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: 'M0',
},
aadde920b3aaba03bc10b40bd0619c94: {
ty: '4',
p: 'f',
c1: '1',
c2: '1',
r: '1',
f: '0',
},
'877dcc97a775ed55081864b2dbf5f1e2': {
ty: '2',
p: 'f',
c1: '2',
c2: '2',
r: '0',
f: '0',
crossx: '8',
crossy: '8',
},
de3e9496cb7341f865f27e5a72c7f2f5: {
ty: '2',
p: 'f',
M c1: '2',
c2: '2',
r: '1',
f: '0',
crossx: '10',
crossy: '-6',
},
'404f95103b70975a42cb09946dc3adca': {
ty: '3',
p: 't',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
'5c66261d7be74184a047f77233919e06': {
ty: '1',
p: 't',
c1: '1',
c2: '1',
r: '0',
f: '0',
hblankM: '8',
},
'212ee2a6e66d8bb7fbf26f343cc8dc19': {
ty: '1',
p: 't',
c1: '1',
c2: '1',
r: '0',
f: '0',
p4: 't',
hblank: '8',
},
'07342c78619ba6ffcc61c10e907e3b50': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
hs: 't',
},
'8fc3a695eaea3984912d98ed4a543376': {
ty: 'M0',
p: 't',
c1: '1',
c2: '1',
r: '0',
f: '0',
hblank: '28',
},
b558814d54904ce0582e2f6a801d03af: {
ty: '0',
p: 't',
c1: '1',
c2: '1',
r: '1',
f: '0',
hblank: '28',
},
'42682415906c21c6af80e4198403ffda': {
ty: '1',
p: 'f',
c1: '2',
c2: '1',
r: '0',
f: 'M0',
crossx: '0',
crossy: '8',
},
babe2bc2976688bafb8b23c192658126: {
ty: '1',
p: 'f',
c1: '2',
c2: '1',
r: '1',
f: '0',
crossx: '0',
crossy: '12',
},
f5f6b69c5eb4b55fc163158d1a6b423e: {
ty: '4',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
fba002089fcfa176454ab507e0ebM76cb: {
ty: '4',
p: 'f',
c1: '1',
c2: '1',
r: '1',
f: '0',
},
'3e63be18e480fa63fce5e4c823286e53': {
ty: '0',
p: 't',
c1: '1',
c2: '1',
r: '1',
f: '0',
},
'5a09946e57dbe30408a8f253a28d07db': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
hs: 't',
M },
'38c056a48472d9a9e16ebda5ed91dae7': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '1',
f: '0',
},
'93e4387864b014c155d7c17877990d1e': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
'59d4edb0230b5acc918b94f6bc94779f': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
M r: '1',
f: '0',
},
'2e8e28f6ad8b9b9267d518d880c73ebb': {
ty: '1',
p: 't',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
'55da6c6c3974d013f517e725aa60f48e': {
ty: '1',
p: 't',
c1: '1',
c2: '1',
r: '1',
f: '0',
},
db691469128d9a4217ec7e315930b646: {
ty: '1',
p: 'f',
c1: '1',M
c2: '1',
r: '0',
f: '0',
},
'7cbe78fa06f47ba6516a67a4b003c9ee': {
ty: '1',
p: 'f',
c1: '1',
c2: '1',
r: '1',
f: '0',
},
a94e4560b6ad053a1c24e096f1262ebf: {
ty: '2',
p: 'f',
c1: '2',
c2: '2',
r: '0',
f: '0',
crossx: '13',
crossy: '8',
},
'63db371d67a98daecM547b2abd5e7aa95': {
ty: '2',
p: 'f',
c1: '2',
c2: '2',
r: '1',
f: '0',
crossx: '15',
crossy: '7',
},
'179b76ff729d4849b8f66a502398acae': {
ty: '1',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
a2b8e2f159642c4b91de82e9a2928494: {
ty: '1',
p: 'f',
c1: '1',
c2: '1',
M r: '1',
f: '0',
},
'95ac811c7d27af0032ba090f28c107bd': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
'2d5d99b993a885b063f9f22ce5e6523d': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '1',
f: '0',
},
'731879ea82fc0ca245e39e036fe293e6': {
ty: '0',
p: 'f',
M c1: '1',
c2: '1',
r: '0',
f: '0',
hs: 't',
},
'408dca9fc40e2b5d805f403fa0509436': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '1',
f: '0',
},
'5e332fbfc1e0fc74223d2e73271ce650': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
'4dc5f88243250461bd61053b13777060': M{
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '1',
f: '0',
},
'19f1ee292a23636bd57d408b62de79c7': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
'8e96ef14ce9b5d84bcbc996b66d6d4c7': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '1',
f: '0',
},
'543M484c00ba233736bcaba2da20eeea9': {
ty: '6',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
de2ebafcf0e37aaa9d0e9525a7f4dd62: {
ty: '6',
p: 'f',
c1: '1',
c2: '1',
r: '1',
f: '0',
},
'2251a6a0f3aec84cc0aff66fc9fa91e8': {
ty: '5',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0M',
},
e7709da8e49d3767301947a0a0b9d2e6: {
ty: '5',
p: 'f',
c1: '1',
c2: '1',
r: '1',
f: '0',
},
d25d5d19188e9f149977c49eb0367cd1: {
ty: '4',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
'23505651ac2e47f3637152066c3aa62f': {
ty: '4',
p: 'f',
c1: '1',
c2: '1',
M r: '1',
f: '0',
},
'07dbbfe612a0a28e283c01545e59f25e': {
ty: '4',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
e80f24e953563e6b61556737d67d3836: {
ty: '4',
p: 'f',
c1: '1',
c2: '1',
r: '1',
f: '0',
},
cf76b00244105b8e03cdc37677ec1073: {
ty: '0',
p: 'f',
c1: '1',
M c2: '1',
r: '0',
f: '0',
hs: 't',
},
de0d4f5a9bf1c1bddee3ed2f7ec51209: {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '1',
f: '0',
},
fb8d803b328b2e442548f7799cfa9a4a: {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
hs: 't',
},
f5dc7dc8e38072d3d65bd90a660148ceM: {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '1',
f: '0',
},
'06204dadc975be5e5e37e7cc66f984cf': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
fd9e78e201b6baafddfd3e1fbfe6ba31: {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
'0baMec96787ce17f390e204de1a136e59': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '1',
f: '0',
},
c3672482ca93f70eafd9134b936c3feb: {
ty: '4',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
'8c2c2a1ea6e9a928a44c3151ba5c1ce3': {
ty: '4',
p: 'f',
c1: '1',
c2: '1',
r: '1',
f: '0M',
},
baebc9246c087e893dfa489632157180: {
ty: '3',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
'80dead01ea2db5045f6f4443faa6fce8': {
ty: '3',
p: 'f',
c1: '1',
c2: '1',
r: '1',
f: '0',
},
'045fd12050b7f2b842d5970f2414e912': {
ty: '3',
p: 'f',
c1: '1',
c2: '1',
M r: '0',
f: '0',
},
dfb86f4d06f05ad00cf418f0a59a24f7: {
ty: '3',
p: 'f',
c1: '1',
c2: '1',
r: '1',
f: '0',
},
f18b3b897a25ab3885b43b4bd141b396: {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
hs: 't',
},
f2dae0264a4b4a73762b9d7177e989f6: {
ty: '0',
p: 'f',
M c1: '1',
c2: '1',
r: '1',
f: '0',
},
c3a5a8692a423d43d9d28dd5b7d109d9: {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
'5e0a1e832bbcea6facb832fde23a440a': {
ty: '4',
p: 'f',
c1: '1',
c2: '1',
r: '1',
f: '0',
},
'17b3b764d33eae9b5260f01df7bb9d2f': {
tMy: '4',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
f57d0af323d4e173fb49ed447f0563d7: {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
'2931b75811ad03f3ac9330838f3d231b': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '1',
f: '0',
},
'431ca060201ee1f9eb49Md44962874049': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
d2e861306be78e44248bb71d7475d8a3: {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '1',
f: '0',
},
'37b5692e33a98115e574185fa8398c22': {
ty: '4',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
M '6819c37b96063b024898a19dbae2df54': {
ty: '4',
p: 'f',
c1: '1',
c2: '1',
r: '1',
f: '0',
},
f2f5e5841e4dda89a2faf8933dc33ea6: {
ty: '4',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
'2e9dbad6c0fa381a6cd1bb9abf98a104': {
ty: '4',
p: 'f',
c1: '1',
c2: '1',
r: '1',
M f: '0',
},
bedc30ec43587e0c98fc38c39c1ef9d0: {
ty: '4',
p: 'f',
c1: '2',
c2: '2',
r: '0',
f: '0',
crossx: '-2',
crossy: '12',
},
c80155d7eec9e3dcb79aa6b83c9ccd1e: {
ty: '4',
p: 'f',
c1: '2',
c2: '2',
r: '1',
f: '0',
crossx: '0',
crossy: '10',
},
bc1e905db10084M93a9632aa83ab4682b: {
ty: '4',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
'6794ea31570eba0b88a0bf1ead3f3f1b': {
ty: '4',
p: 'f',
c1: '1',
c2: '1',
r: '1',
f: '0',
},
'017066f522908081ec3ee624f5e4a8aa': {
ty: '2',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '3',
M },
'3bc8f554cf86f8132a623cc2201a564b': {
ty: '4',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
'5330bfe428a6b601b7e76c2cfc4cd049': {
ty: '4',
p: 'f',
c1: '1',
c2: '1',
r: '1',
f: '0',
},
fc0ea52a9fac557251b65ee680d951e5: {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0M',
f: '0',
hs: 't',
},
'56469e8c5ff8983c6cb8dadc64eb0363': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '1',
f: '0',
},
'220121f771fc4b98cef97dc040e8d378': {
ty: '4',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
ea0c859aa54fe5eaf4c1f327fab06221: {
ty: '4',
p: 'f',
M c1: '1',
c2: '1',
r: '1',
f: '0',
},
'74569571a208f8b0b1ccfb22d7c914e1': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
'8dba0425f0262e5704581d8757a1a6e3': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '1',
f: '0',
},
'1a5207870dec6fae9111cb747e20d8e3': {
ty: 'M0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
'386bded4a944bae455fedf56206dd1dd': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '1',
f: '0',
},
ec206c8db4316eb1ebce9fc960da7d8f: {
ty: '4',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
'05f43244465943ce819780a7M1a5b572a': {
ty: '4',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
'33aea1e2b6634a1dec8c7006d9afda22': {
ty: '4',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
'2837a8fd49b7fc7ccd70fd45b69c5099': {
ty: '4',
p: 'f',
c1: '1',
c2: '1',
r: '1',
f: '0',
},
M '86546808dc60961cdb1b20e761c50ab1': {
ty: '3',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
'584582bb09ee8122e7fc09dc7d1ed813': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
'865457e0e0f48253b08f77b9e18f93b2': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '1',
M f: '0',
},
'1745feadabb24e7cefc375904c73fa4c': {
ty: '3',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
ac03806cef2558fc795a7d5d8dba7bc0: {
ty: '6',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
'442761655bb25ddfe5f7ab16bf591c6f': {
ty: '1',
p: 'f',
c1: '1',
c2:M '1',
r: '0',
f: '0',
},
bfad016d6e77eaccec74c0340aded8b9: {
ty: '1',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
'383ed9bd1efb9b6cb3388a777678c928': {
ty: '1',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
'8f7eb10ad0bd75474abf0c6c36c08486': {
ty: '0',
p: 'f',
M c1: '1',
c2: '1',
r: '0',
f: '0',
},
'66ecaafe1b82ae68ffc96267aaf7a4d7': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
dualanalog: 't',
hs: 't',
},
'980c35ae9625773a450aa7ef51751c04': {
ty: '4',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
'53Mdb322c201323fe2ca8f074c0a2bf86': {
ty: '4',
p: 'f',
c1: '1',
c2: '1',
r: '1',
f: '0',
},
b697d9c2d1b9f6cb21041286d1bbfa7f: {
ty: '4',
p: 'f',
c1: '2',
c2: '2',
r: '0',
f: '0',
crossx: '5',
crossy: '-5',
},
'5469b4de0608f23a5c4f98f331c9e75f': {
ty: '4',
p: 'f',
c1: '2',
M c2: '2',
r: '1',
f: '0',
crossx: '15',
crossy: '20',
},
'2d643ac548c40e58c99d0fe433ba4ba0': {
ty: '3',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
cbb0746192540a13b4c7775c7ce2021f: {
ty: '3',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
cc18e3b37a507c4217eb6cb1Mde8c8538: {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
'162f9c953f0657689cc74ab20b40280f': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '1',
f: '0',
},
'59b5793bece1c80f77b55d60fb39cb94': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
rightMswitch: '1',
},
'95d7c321dce8f57623a9c5b4947bb375': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '1',
f: '0',
rightswitch: '1',
},
'44f862bca77d68b56b32534eda5c198d': {
ty: '1',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
'5c4f752371a523f15e9980fea73b874d': {
ty: '1',
p: 'f',
M c1: '1',
c2: '1',
r: '0',
f: '0',
},
'1af475ff6429a160752b592f0f92b287': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
'3bb9c8d9adc912dd7f8471c97445cd8d': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '1',
f: '0',
},
c3903ab01a51222a52197dbfe6538ecf: {
ty: '0M',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
'682338364243b023ecc9d24f0abfc9a7': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '1',
f: '0',
},
'208ef955fa90a29815eb097bce89bace': {
ty: '4',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
d12e665347f354048b9d1309M2f7868c9: {
ty: '3',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
'8d64763db3100aadc552db5e6868506a': {
ty: '3',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
'32a37244a9c6cc928dcdf02b45365aa8': {
ty: '3',
p: 'f',
c1: '1',
c2: '1',
r: '1',
f: '0',
},
M acf63758ecf3f3dd03e9d654ae6b69b7: {
ty: '1',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
'427cb05d0a1abb068998e2760d77f4fb': {
ty: '1',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
'3799d72f78dda2ee87b0ef8bf7b91186': {
ty: '3',
p: 'f',
c1: '1',
c2: '1',
r: '0',
M f: '0',
},
'05fb699db9eef564e2fe45c568746dbc': {
ty: '4',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
'70937c3184f0be33d06f7f4382ca54de': {
ty: '4',
p: 'f',
c1: '1',
c2: '1',
r: '1',
f: '0',
},
d7dc17379aa25e5ae3c14b9e780c6f6d: {
ty: '0',
p: 'f',
c1: '1',
c2: '1M',
r: '0',
f: '0',
hs: 't',
},
b1a9f196ce5f47ca8caf8fa7bc4ca46c: {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '1',
f: '0',
},
e1f0a708fbc107001fc49ce48151fefa: {
ty: '2',
p: 't',
c1: '1',
c2: '1',
r: '0',
f: '0',
p4: 'f',
xm: 'f',
leftswitch: '0',
rightswitMch: '1',
},
'34483432b92f565f4ced82a141119164': {
ty: '2',
p: 't',
c1: '1',
c2: '1',
r: '0',
f: '0',
p4: 't',
xm: 'f',
leftswitch: '0',
rightswitch: '1',
},
ad35a98040a2facb10ecb120bf83bcc3: {
ty: '2',
p: 't',
c1: '1',
c2: '1',
r: '0',
f: '0',
p4: 'f',
xm: 'f',
M leftswitch: '0',
rightswitch: '1',
},
'707e98991390a4e8874508e5ed4edeef': {
ty: '2',
p: 't',
c1: '1',
c2: '1',
r: '0',
f: '0',
p4: 't',
xm: 'f',
leftswitch: '0',
rightswitch: '1',
},
ec81468e31fde04b67b5b99b7da8edb1: {
ty: '2',
p: 't',
c1: '1',
c2: '1',
r: '0',
f: 'M0',
p4: 't',
xm: 'f',
leftswitch: '0',
rightswitch: '1',
},
'87484e54ab8e45aac978dcc3efd924e5': {
ty: '2',
p: 't',
c1: '1',
c2: '1',
r: '1',
f: '0',
p4: 't',
xm: 'f',
leftswitch: '0',
rightswitch: '1',
},
'1926b9b322ac0f8f36e119b524aa48bd': {
ty: '2',
p: 't',
c1: '1',
M c2: '1',
r: '1',
f: '0',
p4: 't',
xm: 'f',
leftswitch: '0',
rightswitch: '1',
},
'3e4b11a99271fd807b5c6db411dc6643': {
ty: '2',
p: 't',
c1: '1',
c2: '1',
r: '1',
f: '0',
p4: 'f',
xm: 'f',
leftswitch: '0',
rightswitch: '1',
},
'8385daccee02ccda081eed45eba1479d': {
ty: '4'M,
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
p4: 'f',
xm: 'f',
hs: 'f',
},
'9ea73fd07e43f61209876d33e6f6dc04': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
hs: 't',
},
'90fa275f9f2a65b341796e11b2f551af': {
ty: '3',
p: 'f',
c1: '1',
c2: '1',
M r: '0',
f: '0',
},
'299d31c8e181fdd011df2014451bdf0f': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
leftswitch: '0',
rightswitch: '1',
hs: 't',
},
'3209039148e0b7a2b1927bd05bae4685': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
leftswitch: '0',
M rightswitch: '1',
},
'32e937e7796db3a01e9bcf5fe93929b0': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
leftswitch: '0',
rightswitch: '1',
},
a60e4b608505d1fb201703b266f754a7: {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
dualanalog: 't',
hs: 't',
},
M dbb493bdc4e98436dbbfd4f2e4413397: {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '1',
f: '0',
},
'54829fb744d4cd7a794ccd2580df7c3d': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '1',
f: '0',
},
f2047b149e72be8f97e9671314748ec4: {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f:M '0',
},
'42fa4bd854a2813b19099da524461a64': {
ty: '7',
p: 'f',
c1: '1',
c2: '1',
r: '1',
f: '0',
},
f5150c0fc1948832211e57852abb0c6e: {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
xm: 't',
hs: 't',
},
a8458c510fdd71a1f9cc4c0b243b177a: {
ty: '7',
p: 'f',
M c1: '1',
c2: '1',
r: '0',
f: '0',
},
'67ee0011090a6ada38f3eef8a3020fb4': {
ty: '1',
p: 't',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
'13f11c4e8c019ee326b571d059accea4': {
ty: '0',
p: 't',
c1: '1',
c2: '1',
r: '0',
f: '0',
p4: 't',
},
'608fa599f06f935e05d445ff236f6d7Ma': {
ty: '2',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
sb: 't',
},
a65f79ad4a0bbdecd59d5f7eb3623fd7: {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
hs: 't',
},
'3d38281ed8a8d8c7cd457a18c92c8604': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
M f: '0',
hs: 't',
},
'55ffe535897c368be7a80d582f6a68cb': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
hs: 't',
},
a51e5df28a0fe8c52e9d28fb5f8e44a6: {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
hs: 't',
},
b4be9c25ea078608310f0ddc409e7cc1: {
ty:M '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
hs: 't',
},
'78b1061d651ef806becac1dd3fda29a0': {
ty: '0',
p: 't',
c1: '1',
c2: '1',
r: '0',
f: '0',
hs: 't',
},
'6010a398070dfacb4c0173d75d73c50a': {
ty: '0',
p: 't',
c1: '1',
c2: '1',
r: '0',
f: '0',
M },
'9fa7743a016c9b7015ee1d386326f88e': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
hs: 't',
},
af1c8f89f0aef0d9e2e15901d6e0539a: {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '1',
f: '0',
},
'2d2fe4da9f1bae102fa8ca2d8830a626': {
ty: '0',
p: 'f',
c1: '1',
Mc2: '1',
r: '0',
f: '0',
hs: 't',
},
'100551363027dc5f093d049a5fd00933': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
hs: 't',
},
'40bd21c9698c6b8e71b703f860c11359': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
cf3c5a32205506af3c09e6e0c82cfa09: {
M ty: '2',
p: 't',
c1: '1',
c2: '1',
r: '0',
f: '0',
p4: 't',
hs: 't',
},
c956d5ce7417cc2dab61a9afd8f372d0: {
ty: '2',
p: 't',
c1: '1',
c2: '1',
r: '0',
f: '0',
p4: 't',
hs: 't',
},
df700753d8ba9353a7045868778eef6d: {
ty: '2',
p: 't',
c1: '1',
Mc2: '1',
r: '1',
f: '0',
p4: 't',
},
'098b209aac126f2c2edbc982df09cd1b': {
ty: '6',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
'4565867aa6e5cc710a7edaf6d434b3af': {
ty: '6',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
fab1290f9a4c4f2b4d831c8a57f969f5: {
ty: '1',
M p: 't',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
a9f29004412621f20ad9f5c51cc11486: {
ty: '4',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
fa4aec407b90e9360b9cfeb41839b09a: {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
hs: 't',
},
'6287727ab36M391a62f728bbdee88675c': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
hs: 't',
},
'84c4b4ed75f41417ac7cbceac71e3856': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '1',
f: '0',
},
'2fb85cab6e0f0582e3057bf1ac33c74a': {
ty: '4',
p: 'f',
c1: '1',
c2: '1',
r: '0',
M f: '0',
},
e7d89669a7f92ec2cc99d9663a28671c: {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
xm: 'f',
hs: 't',
},
'6053233cb59c0b4ca633623fd76c4576': {
ty: '0',
p: 't',
c1: '1',
c2: '1',
r: '0',
f: '0',
hs: 't',
},
ee09789d61a693e387ccdc9a2f025b43: {
tyM: '0',
p: 't',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
'3d12489c553cb1a90c8ebd6534383fa1': {
ty: '0',
p: 't',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
'1e21bf1d9d7b3c0cebaac576964c9eb2': {
ty: '4',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
'46dbc5108151e963b12M0cdaedd7d6d4c': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
hs: 't',
},
'25ce1f5dfc909bcb46086e414d6a0f30': {
ty: '4',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
'61809684eefd6cbb2963574ffb0a3fab': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
M f: '0',
dualanalog: 't',
},
bf070f04c8fc7ec721b9506b63b48470: {
ty: '3',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
'4a811d87d1730a334a21e7bda9fe535a': {
ty: '3',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
'05c21a88fd736d59d28b1d95e79840b6': {
ty: '3',
p: 'f',
cM1: '1',
c2: '1',
r: '0',
f: '0',
},
dde5703c488c4ad5268c2696704f1c68: {
ty: '3',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
f4216cb77cd6db15225968f315c9793f: {
ty: '3',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
e54edc299e72d22d0ba05d16f3393e8c: {
ty: '0',
M p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
hs: 't',
},
bde3abe40d302d8c4c65c9690c05dbc4: {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
hs: 't',
},
e274e7285bb8f97d4d9acddc8497ed9e: {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '1',
f: '0',
},
M '5fb805f2b69820a9b196f5fed2a23c99': {
ty: '4',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
'114e215b8cfc8698bc0286a79e1cb9b2': {
ty: '0',
p: 't',
c1: '1',
c2: '0',
r: '0',
f: '0',
},
eb3c1443f4a25806de4657e106d504e8: {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
M f: '0',
},
c3f6201d6a9388e860328c963a3301cc: {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
hs: 't',
},
dc0bf52475030c05671dd187e9a99f08: {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '1',
f: '0',
},
'4a702b995fca8591e2d14268cb123447': {
ty: '3',
p: 't',
c1: '1',
M c2: '1',
r: '0',
f: '0',
p4: 't',
hs: 'f',
},
'9ff38ea62004201d870caa8bd9463525': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
hs: 't',
},
'3a15fe7bead3d9b90f3fb13d63e1ee42': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
hs: 't',
M },
'675c5b79238eaa641f2e3fe9c5e22589': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '1',
f: '0',
},
'89f90b661d1b79e956b10bb6a9771f78': {
ty: '0',
p: 't',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
d8dbb5c4d7d02e6b0627df8f657a13b4: {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0'M,
f: '0',
hs: 't',
},
'27c133965dfd80b3acb1ed598817aea0': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
hs: 't',
},
cf007563fe94cacf5ea5295dc93ce9ef: {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
hs: 't',
},
cad1e733986bce1ee4c9da73de1dcff1: {
M ty: '0',
p: 't',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
db768297985178cec034c12a41d6f1a7: {
ty: '0',
p: 't',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
'889fc7e7ba5c807be44e85ba7a6bd26e': {
ty: '0',
p: 't',
c1: '1',
c2: '1',
r: '0',
f: '0',
hs: 't',
},
M bc56f803d65658f92c17e6c2b271a507: {
ty: '0',
p: 't',
c1: '1',
c2: '1',
r: '1',
f: '0',
},
'2a17dc5a61be342dd00af719cc335852': {
ty: '0',
p: 't',
c1: '1',
c2: '1',
r: '0',
f: '0',
hs: 't',
},
'99055c3e627bbc17fc81cbe0b3ae176c': {
ty: '0',
p: 't',
c1: '1',
c2: '1',
M r: '1',
f: '0',
},
a69347c8a681b8e94f79d8d848998007: {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
hs: 't',
},
'79202cb7d2bc150ffca0c96a4d8b42cf': {
ty: '1',
p: 't',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
'04edf4f3c6b186147c1117359c8f5076': {
ty: '0',
p: 'f',
M c1: '1',
c2: '1',
r: '0',
f: '0',
rightswitch: '1',
hs: 't',
},
'8338eca612eedf6ddec57d54942863e7': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
rightswitch: '1',
},
'575c18f77a4215332bf56d0080a234b8': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
M f: '0',
rightswitch: '1',
},
'72ec68627bb7d879ae35a71d7679f71e': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
rightswitch: '1',
hs: 't',
},
'60982f430b762343d53e48f70acfa6d0': {
ty: '0',
p: 't',
c1: '1',
c2: '1',
r: '0',
f: '0',
hs: 't',
},
'180121ecb4aabc7Mdaa945b355e15c254': {
ty: '0',
p: 't',
c1: '1',
c2: '1',
r: '1',
f: '0',
},
'4fb119f6db26380abba03e4ce3ca04c8': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
rightswitch: '1',
},
'0b7635d0f39ff97d1e841888e1b23b7b': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0M',
f: '0',
rightswitch: '1',
},
'368c3bfa91cf2bb8413967eb0c392c6c': {
ty: '0',
p: 't',
c1: '1',
c2: '1',
r: '0',
f: '0',
p4: 'f',
xm: 'f',
hs: 't',
},
'5013b69cb05b21a1194ce48517df7bfc': {
ty: '0',
p: 't',
c1: '1',
c2: '1',
r: '0',
f: '0',
p4: 'f',
xm:M 'f',
hs: 't',
},
'6f80cac59023a69afa26182eabbdfbad': {
ty: '0',
p: 't',
c1: '1',
c2: '1',
r: '0',
f: '0',
hs: 't',
},
b1685dcbaf1b578cb1b6643666d813e4: {
ty: '0',
p: 't',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
'4748a62d5c628fefd28df5de5567edec': {
ty: '0',
p: 'f',
M c1: '1',
c2: '1',
r: '0',
f: '0',
rightswitch: '1',
},
'1d7d65997d7cd0858e9bee71ded272aa': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
rightswitch: '1',
},
'791e55db03903988280388573a2fcdc1': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
riMghtswitch: '1',
hs: 't',
},
d0bf3b841ad4bbd356e9588874749a13: {
ty: '0',
p: 't',
c1: '1',
c2: '1',
r: '0',
f: '0',
p4: 't',
xm: 'f',
},
'1482beef7dbdb122f6bb4b03640888f2': {
ty: '0',
p: 't',
c1: '1',
c2: '1',
r: '1',
f: '0',
p4: 't',
xm: 'f',
},
e84976a352M9915ac91b964fab03aedb2: {
ty: '1',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '1',
p4: 'f',
xm: 't',
hs: 't',
},
'08055591f95a54a34dd90d90ae5dec24': {
ty: '1',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '1',
p4: 'f',
xm: 't',
hs: 't',
},
'9fac7d0433dc3d936efce5c713488b08': {
M ty: '1',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '1',
p4: 'f',
xm: 't',
hs: 't',
},
f3f4482b3551667a52d9b657e15cd2bf: {
ty: '1',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '1',
p4: 'f',
xm: 't',
hs: 't',
},
'044657294450c869c45e7ef61f4870de': {
ty: '1',
M p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '1',
p4: 'f',
xm: 't',
hs: 't',
},
d00e6962a2f9869b16cb46c8eb6126fc: {
ty: '1',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '1',
p4: 't',
xm: 't',
hs: 't',
},
c0fcce51fa95f4e1d69e1ca6aa2ce5a8: {
ty: '1',
p: 'f',
c1: 'M1',
c2: '1',
r: '0',
f: '1',
p4: 't',
xm: 't',
hs: 't',
},
'1e52e73d5862a7247ba0f93eff5b0370': {
ty: '1',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '1',
p4: 't',
xm: 't',
hs: 't',
},
bef783d15a103b51db03a866d7a0b273: {
ty: '1',
p: 'f',
c1: '1',
c2: '1',
M r: '0',
f: '1',
p4: 't',
xm: 't',
hs: 't',
},
'61c5f654b340379f69ada4bc4cc2d5d0': {
ty: '1',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '1',
p4: 't',
xm: 't',
hs: 't',
},
'6335d94cf614f38a5cd85c4219eb24f1': {
ty: '1',
p: 'f',
c1: '1',
c2: '1',
r: '0',
M f: '1',
p4: 't',
xm: 't',
hs: 't',
},
'39dc7f6f39f9b3e341a5ffea76e71fb1': {
ty: '1',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '1',
p4: 'f',
xm: 't',
hs: 't',
},
'8cb66c6ed5b379181b1420d8e4758834': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
duaMlanalog: 't',
},
c1ac9987a9483e200c338ccbd2ee94b5: {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
dualanalog: 't',
},
b5c9f0bf5b5763a923b7f370376b1849: {
ty: '4',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
b55e4d255173e5b2c2e620f3186a1ecc: {
ty: '0',
p: 'f',
cM1: '1',
c2: '1',
r: '0',
f: '0',
rightswitch: '1',
},
'26897ab47b8c5d3b57d3cc235d7635d8': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
rightswitch: '1',
},
'2b1f78aaa2b8de5dae3ee4b93ab678f4': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
rightswitchM: '1',
},
a3a4dbd27c80eff9bef51f73cd26f1d5: {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
rightswitch: '1',
},
'43a0059ff1b5bf76e0c7023fde7c33a5': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
rightswitch: '1',
},
a8e752d108efceff504ae4edc4766b75: {
ty: '0',
M p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
rightswitch: '1',
},
'04c985ebbd0bea4c557207e69b8cbd8f': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
rightswitch: '1',
},
bc1f56d7cc14f15ddfcba5e21e19937b: {
ty: '2',
p: 't',
c1: '1',
c2: '1',
r: '0',
f: '0',M
leftswitch: '0',
rightswitch: '1',
},
'8e0c5fc77b27422a39d86ac2e57dc73d': {
ty: '0',
p: 't',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
f9fa5107ed213e709858d8876359309e: {
ty: '0',
p: 't',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
'2370f7ce1b91fc775bce3e72454f908a': {
ty: '0',
Mp: 't',
c1: '1',
c2: '1',
r: '0',
f: '0',
p4: 't',
},
b4f137e85588ce42d302102ba7215437: {
ty: '0',
p: 't',
c1: '1',
c2: '1',
r: '0',
f: '0',
p4: 't',
},
e1b01dd7e842d2b682ef48f689d5a4eb: {
ty: '4',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
'M43525a0405184875c2ecfd0196886a34': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
xm: 'f',
hs: 't',
},
'803743fe18600f292456539906464421': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
xm: 'f',
hs: 't',
},
'106b409c6f4c219b1a3b3d099ead3b2b': {
ty: '0',
M p: 'f',
c1: '1',
c2: '1',
r: '1',
f: '0',
xm: 'f',
},
'03daa19b7aae2d27e61f2a4dbe3b9b79': {
ty: '0',
p: 't',
c1: '1',
c2: '1',
r: '1',
f: '0',
},
'03935b9a1f2561bada58fcd5d9fd27de': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
dualanalog: 't',
M},
d27ed8f883af9b4ee3b5570f30e9ff71: {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
dualanalog: 't',
},
'01c7bc3cd8375e353c8aa837fe1262ec': {
ty: '4',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
a3a85e507d6f718972b1464ce1aaf8a4: {
ty: '0',
p: 'f',
c1: '1',
c2M: '1',
r: '0',
f: '0',
xm: 'f',
hs: 't',
},
'31b20a4710e691300bb4aa62cf02284c': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
xm: 'f',
hs: 't',
},
'32f1a1b5a7e3b4493c3b7b637aeea7d8': {
ty: '4',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
M '6e27f73bd4a49b647bcd58bc5f8b739d': {
ty: '4',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
'0070751edb8bbf4dd4a685f58b5b72c5': {
ty: '4',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
'9bd70c06d3386f76f8162881699a777a': {
ty: '3',
p: 't',
c1: '1',
c2: '1',
r: '0',
M f: '0',
p4: 't',
hs: 'f',
},
'95c8a795e30640c9ec82609872c80517': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
rightswitch: '1',
},
'1c8139c584e1cf5c6afdd2f3455a2446': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '1',
f: '0',
},
ca1c27b53fcfb9fed83bc9e92920707c: {
M ty: '4',
p: 'f',
c1: '0',
c2: '0',
r: '0',
f: '0',
},
'771cb4609347657f63e6f0eb26036e35': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
hs: 't',
},
a84c1b2300fbfbf21b1c02387f613dad: {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '1',
f: '0',
},
M '6adf79558a3d7f5beca1bb8d34337417': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
hs: 't',
},
'783d09ad9542b0bb28aa4cc6ffcf8aa6': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
hs: 't',
},
'0f4bd5800359a62a5874b93dc92a47f1': {
ty: '2',
p: 'f',
c1: '1',
M c2: '1',
r: '0',
f: '0',
},
'02508e6df5e173b4063a7e6e63295817': {
ty: '0',
p: 't',
c1: '1',
c2: '1',
r: '0',
f: '0',
p4: 't',
xm: 'f',
hs: 't',
},
'81cee326b99d6831de10a566e338bd25': {
ty: '0',
p: 't',
c1: '1',
c2: '1',
r: '0',
f: '0',
hs: 't',
},
M '1c9b0bb028e63f83a2d1c1def675acc9': {
ty: '0',
p: 't',
c1: '1',
c2: '1',
r: '1',
f: '0',
xm: 'f',
},
f4ad1a1d732c2c8cdbd21dabaf38a46c: {
ty: '0',
p: 't',
c1: '1',
c2: '1',
r: '1',
f: '0',
p4: 'f',
xm: 'f',
hs: 'f',
},
f41f651417c234104d37296477fa29eb: {
ty: '0',
M p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
p4: 'f',
xm: 'f',
hs: 't',
},
'7ab539bb0e99e1e5a1c89230bde64610': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
p4: 'f',
xm: 'f',
hs: 't',
},
'88b9de0eba37ba516590fa8b860155f0': {
ty: '0',
p: 'f',
M c1: '1',
c2: '1',
r: '0',
f: '0',
p4: 'f',
xm: 'f',
hs: 't',
},
'61aa4a074ad08c524fbee88d15e369ea': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '1',
f: '0',
p4: 'f',
xm: 'f',
hs: 'f',
},
'3632fcc732a33591b91f0eea2c01e599': {
ty: '4',
p: 'f',
c1: '1',
c2:M '1',
r: '0',
f: '0',
p4: 'f',
xm: 'f',
hs: 'f',
},
d0b87d349d6d5e40920cc4ff95253339: {
ty: '4',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
p4: 'f',
xm: 'f',
hs: 'f',
},
'9cb3848416e39ebf642357dbee3e5970': {
ty: '3',
p: 'f',
c1: '1',
c2: '0',
r: '0',
M f: '0',
p4: 'f',
xm: 'f',
hs: 'f',
},
b1ec7bd809ab3deb746c5a5eb2efaecb: {
ty: '0',
p: 't',
c1: '1',
c2: '1',
r: '0',
f: '0',
p4: 'f',
xm: 'f',
hs: 'f',
},
'43f8e9cec3d9991017709f48a7aa22f6': {
ty: '0',
p: 't',
c1: '1',
c2: '1',
r: '0',
f: '0',
M p4: 'f',
xm: 'f',
hs: 'f',
},
f85d506f5933427c8de664be0c5510a3: {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
p4: 'f',
xm: 'f',
hs: 't',
},
f83849cf3f5ac95856e8f93ee90d5a8d: {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
p4: 'f',
xm: 'f'M,
hs: 'f',
rightswitch: '1',
},
c62632545c91823f72f6f14b19766804: {
ty: '0',
p: 't',
c1: '1',
c2: '1',
r: '0',
f: '0',
p4: 'f',
xm: 'f',
hs: 'f',
},
'40913dcf24a623c1dc2495a1c4931b48': {
ty: '4',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
p4: 'f',
xm: 'Mf',
hs: 'f',
},
'8b49549763f4f0e42a23942b8df6b248': {
ty: '4',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
p4: 'f',
xm: 'f',
hs: 'f',
},
'7db031f1c4dc957719812fe68ee42531': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '1',
f: '0',
p4: 'f',
xm: 'f',
hs: 'f',
M },
'5837c4ac8b481fb98381adfd2fe87969': {
ty: '0',
p: 't',
c1: '1',
c2: '1',
r: '0',
f: '0',
p4: 'f',
xm: 'f',
hs: 'f',
},
'05b04e9822a75ceeeaa2eb106ffe768e': {
ty: '4',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
p4: 'f',
xm: 'f',
hs: 'f',
},
'727Mb6d447e21af42b3767f9c2cff6012': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
p4: 'f',
xm: 'f',
hs: 't',
},
c3107d3e3e17d67e3a11d47a5946a4f3: {
ty: '2',
p: 't',
c1: '1',
c2: '1',
r: '0',
f: '0',
p4: 'f',
xm: 'f',
hs: 't',
},
'8caa29a8d9214ca02697b3357102309Ma': {
ty: '2',
p: 't',
c1: '1',
c2: '1',
r: '1',
f: '0',
p4: 'f',
xm: 'f',
hs: 'f',
},
b3143adbbb7d7d189e918e5b29d55a72: {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
p4: 'f',
xm: 'f',
hs: 't',
},
e547492ebd342e57c28bb235546da299: {
ty: '0',
M p: 'f',
c1: '1',
c2: '1',
r: '1',
f: '0',
p4: 'f',
xm: 'f',
hs: 'f',
},
'89b8b3df46733e0c4d57aeb9bb245e6f': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
p4: 'f',
xm: 'f',
hs: 't',
},
eea04359df6770d66b0d97c2cea1932f: {
ty: '0',
p: 'f',
M c1: '1',
c2: '1',
r: '0',
f: '0',
p4: 'f',
xm: 'f',
hs: 't',
},
'7cdfbe37634e7dcd4dc67db7edbcd3ba': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
p4: 'f',
xm: 'f',
hs: 'f',
},
'1ae0b27d47f19d59652168fad3966375': {
ty: '0',
p: 't',
c1: '1',
c2: M'1',
r: '1',
f: '0',
p4: 'f',
xm: 'f',
hs: 'f',
},
'35433868dfe383ae21fd77507e5a478d': {
ty: '0',
p: 't',
c1: '1',
c2: '1',
r: '0',
f: '0',
p4: 't',
xm: 'f',
hs: 'f',
},
'59f1c1e7f6653a4e66ea898ce6eab50f': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
M f: '0',
p4: 'f',
xm: 'f',
hs: 't',
},
c2b42639718d005a6d0aefa0809f77db: {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '1',
f: '0',
p4: 'f',
xm: 'f',
hs: 'f',
},
'80ffad3edb50f0970e780a727a4524dd': {
ty: '0',
p: 't',
c1: '1',
c2: '1',
r: '0',
f: '0',
M p4: 'f',
xm: 'f',
hs: 't',
},
d9a110d889c4d42089c61fade25af220: {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
p4: 'f',
xm: 'f',
hs: 't',
},
'79df20ee86a989e669158bcb9d113e8a': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
p4: 'f',
xm: M'f',
hs: 't',
},
f982c7dbf74c9c049cf7f875a46ed818: {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
p4: 'f',
xm: 'f',
hs: 't',
},
ff8d8283553af5d5dbdaddb5781b4896: {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
p4: 'f',
xm: 'f',
hs: 't',
M },
a466a699324d11e1a2594cc89a9f18e1: {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
p4: 'f',
xm: 't',
hs: 'f',
leftswitch: '0',
},
'0c097bc8c786af182935081ac5cd631f': {
ty: '0',
p: 't',
c1: '1',
c2: '1',
r: '0',
f: '0',
p4: 'f',
xm: 't',
hs: 't',
M },
a662862f20362fc5eb5c651065cbd51c: {
ty: '3',
p: 't',
c1: '1',
c2: '1',
r: '0',
f: '0',
p4: 'f',
xm: 't',
hs: 'f',
dualanalog: 't',
},
};
var bu = Xf;
gu.prototype = {
createElement: function () {
this.el = this.doCreateElement();
var t = this.getClass();
if (t) {
this.el.className = t;M
}
return this.el;
},
getClass: function () {
return null;
},
getElement: function () {
return this.el;
},
doCreateElement: function () {
return null;
},
};
yu.prototype = Object.create(gu.prototype);
bu(yu.prototype, {
getClass: function () {
return 'js7800__controls-button';
},
doCreateElement: function () {
Mvar t = document.createElement('button');
var e = this;
t.onclick = function (t) {
e.onClick(t);
};
t.onmousedown = function (t) {
e.onDown(t);
};
t.onmouseup = function (t) {
e.onUp(t);
};
var n = document.createTextNode(this.text);
t.appendChild(n);
if (this.title) {
t.setAttribute('title', this.title);
}
return t;
M },
onClick: function (t) {},
onDown: function (t) {},
onUp: function (t) {},
});
wu.prototype = Object.create(gu.prototype);
bu(wu.prototype, {
getClass: function () {
return 'js7800__controls-switch';
},
doCreateElement: function () {
var t = document.createElement('label');
t.setAttribute('title', this.title);
var e = document.createElement('input');
this.cb = e;M
e.setAttribute('type', 'checkbox');
var n = this;
e.onclick = function (t) {
n.onClick(t);
};
t.appendChild(e);
var r = document.createElement('span');
r.className = this.getClass() + '-slider';
t.appendChild(r);
return t;
},
setValue(t) {
this.cb.checked = t;
},
getValue() {
return this.cb.checked;
},
onClick: Mfunction (t) {},
});
var mu =
'data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4NCjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+DQo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHZlcnNpb249IjEuMSIgIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij4NCiAgIDxwYXRoIGZpbGw9IiNGRkZGRkYiIGQ9Ik0xNS45LDE4LjQ1QzE3LjI1LMDE4LjQ1IDE4LjM1LDE3LjM1IDE4LjM1LDE2QzE4LjM1LDE0LjY1IDE3LjI1LDEzLjU1IDE1LjksMTMuNTVDMTQuNTQsMTMuNTUgMTMuNDUsMTQuNjUgMTMuNDUsMTZDMTMuNDUsMTcuMzUgMTQuNTQsMTguNDUgMTUuOSwxOC40NU0yMS4xLDE2LjY4TDIyLjU4LDE3Ljg0QzIyLjcxLDE3Ljk1IDIyLjc1LDE4LjEzIDIyLjY2LDE4LjI5TDIxLjI2LDIwLjcxQzIxLjE3LDIwLjg2IDIxLDIwLjkyIDIwLjgzLDIwLjg2TDE5LjA5LDIwLjE2QzE4LjczLDIwLjQ0IDE4LjMzLDIwLjY3IDE3LjkxLDIwLjg1TDE3LjY0LDIyLjdDMTcuNjIsMjIuODcgMTcuNDcsMjMgMTcuMywyM0gxNC41QzE0LjMyLDIzIDE0LjE4LDIyLjg3IDE0LjE1LDIyLjdMMTMuODksMjAuODVDMTMuNDYsMjAuNjcgMTMuMDcsMMjAuNDQgMTIuNzEsMjAuMTZMMTAuOTYsMjAuODZDMTAuODEsMjAuOTIgMTAuNjIsMjAuODYgMTAuNTQsMjAuNzFMOS4xNCwxOC4yOUM5LjA1LDE4LjEzIDkuMDksMTcuOTUgOS4yMiwxNy44NEwxMC43LDE2LjY4TDEwLjY1LDE2TDEwLjcsMTUuMzFMOS4yMiwxNC4xNkM5LjA5LDE0LjA1IDkuMDUsMTMuODYgOS4xNCwxMy43MUwxMC41NCwxMS4yOUMxMC42MiwxMS4xMyAxMC44MSwxMS4wNyAxMC45NiwxMS4xM0wxMi43MSwxMS44NEMxMy4wNywxMS41NiAxMy40NiwxMS4zMiAxMy44OSwxMS4xNUwxNC4xNSw5LjI5QzE0LjE4LDkuMTMgMTQuMzIsOSAxNC41LDlIMTcuM0MxNy40Nyw5IDE3LjYyLDkuMTMgMTcuNjQsOS4yOUwxNy45MSwxMS4xNUMxOC4zMywxMS4zMiAxOC43MywxMS41NiAxOMS4wOSwxMS44NEwyMC44MywxMS4xM0MyMSwxMS4wNyAyMS4xNywxMS4xMyAyMS4yNiwxMS4yOUwyMi42NiwxMy43MUMyMi43NSwxMy44NiAyMi43MSwxNC4wNSAyMi41OCwxNC4xNkwyMS4xLDE1LjMxTDIxLjE1LDE2TDIxLjEsMTYuNjhNNi42OSw4LjA3QzcuNTYsOC4wNyA4LjI2LDcuMzcgOC4yNiw2LjVDOC4yNiw1LjYzIDcuNTYsNC45MiA2LjY5LDQuOTJBMS41OCwxLjU4IDAgMCwwIDUuMTEsNi41QzUuMTEsNy4zNyA1LjgyLDguMDcgNi42OSw4LjA3TTEwLjAzLDYuOTRMMTEsNy42OEMxMS4wNyw3Ljc1IDExLjA5LDcuODcgMTEuMDMsNy45N0wxMC4xMyw5LjUzQzEwLjA4LDkuNjMgOS45Niw5LjY3IDkuODYsOS42M0w4Ljc0LDkuMThMOCw5LjYyTDcuODEsMTAuODFDNy43OSwxMC45MMiA3LjcsMTEgNy41OSwxMUg1Ljc5QzUuNjcsMTEgNS41OCwxMC45MiA1LjU2LDEwLjgxTDUuNCw5LjYyTDQuNjQsOS4xOEwzLjUsOS42M0MzLjQxLDkuNjcgMy4zLDkuNjMgMy4yNCw5LjUzTDIuMzQsNy45N0MyLjI4LDcuODcgMi4zMSw3Ljc1IDIuMzksNy42OEwzLjM0LDYuOTRMMy4zMSw2LjVMMy4zNCw2LjA2TDIuMzksNS4zMkMyLjMxLDUuMjUgMi4yOCw1LjEzIDIuMzQsNS4wM0wzLjI0LDMuNDdDMy4zLDMuMzcgMy40MSwzLjMzIDMuNSwzLjM3TDQuNjMsMy44Mkw1LjQsMy4zOEw1LjU2LDIuMTlDNS41OCwyLjA4IDUuNjcsMiA1Ljc5LDJINy41OUM3LjcsMiA3Ljc5LDIuMDggNy44MSwyLjE5TDgsMy4zOEw4Ljc0LDMuODJMOS44NiwzLjM3QzkuOTYsMy4zMyAxMC4wOCwzLjM3IDEwLMjEzLDMuNDdMMTEuMDMsNS4wM0MxMS4wOSw1LjEzIDExLjA3LDUuMjUgMTEsNS4zMkwxMC4wMyw2LjA2TDEwLjA2LDYuNUwxMC4wMyw2Ljk0WiIgLz4NCjwvc3ZnPg==';
var Mu =
'data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4NCjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+DQo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHZlcnNpb249IjEuMSIgIHdpZHRoPSIyNCIgaGVpMZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij4NCiAgIDxwYXRoIGZpbGw9IiNmZmZmZmYiIGQ9Ik0xMSw5SDEzVjdIMTFNMTIsMjBDNy41OSwyMCA0LDE2LjQxIDQsMTJDNCw3LjU5IDcuNTksNCAxMiw0QzE2LjQxLDQgMjAsNy41OSAyMCwxMkMyMCwxNi40MSAxNi40MSwyMCAxMiwyME0xMiwyQTEwLDEwIDAgMCwwIDIsMTJBMTAsMTAgMCAwLDAgMTIsMjJBMTAsMTAgMCAwLDAgMjIsMTJBMTAsMTAgMCAwLDAgMTIsMk0xMSwxN0gxM1YxMUgxMVYxN1oiIC8+DQo8L3N2Zz4=';
var vu =
'data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4NCjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcMgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+DQo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHZlcnNpb249IjEuMSIgIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij4NCiAgIDxwYXRoIGZpbGw9IiNmZmZmZmYiIGQ9Ik0yMCwySDRWNEw5LjgxLDguMzZDNi4xNCw5LjU3IDQuMTQsMTMuNTMgNS4zNSwxNy4yQzYuNTYsMjAuODcgMTAuNSwyMi44NyAxNC4xOSwyMS42NkMxNy44NiwyMC40NSAxOS44NiwxNi41IDE4LjY1LDEyLjgyQzE3Ljk1LDEwLjcxIDE2LjMsOS4wNSAxNC4xOSw4LjM2TDIwLDRMWMk0xNC45NCwxOS41TDEyLDE3Ljc4TDkuMDYsMTkuNUw5Ljg0LDE2LjE3TDcuMjUsMTMuOTNMMTAuNjYsMTMuNjRMMTIsMTAuNUwxMy4zNCwxMy42NEwxNi43NSwxMy45M0wxNC4xNiwxNi4xN0wxNC45NCwxOS41WiIgLz4NCjwvc3ZnPg==';
var Lu = Xf;
var Iu = gu;
var Cu = yu;
var Eu = wu;
Su.prototype = Object.create(Iu.prototype);
Lu(Su.prototype, {
getClass: function () {
return 'js7800__controls-group';
},
doCreateElement: function () {
var t = document.createElemeMnt('div');
for (var e = 0; e < this.children.length; e++) {
t.appendChild(this.children[e].createElement());
}
return t;
},
addChild: function (t) {
this.children.push(t);
},
addChildAtIndex: function (t, e) {
this.children.splice(t, 0, e);
},
});
xu.prototype = Object.create(Su.prototype);
Lu(xu.prototype, {
getClass: function () {
return 'js7800_M_controls-group-start';
},
});
Du.prototype = Object.create(Su.prototype);
Lu(Du.prototype, {
getClass: function () {
return 'js7800__controls-group-end';
},
});
Nu.prototype = Object.create(Iu.prototype);
Lu(Nu.prototype, {
getClass: function () {
return 'js7800__controls-img-button';
},
doCreateElement: function () {
var t = this;
var e = document.createElemenMt('a');
this.anchor = e;
e.setAttribute('draggable', 'false');
e.setAttribute('role', 'button');
e.setAttribute('tabindex', '0');
e.onkeydown = function (e) {
var n = e.which;
if (n === 13 || n === 32) {
t.onClick(e);
}
};
e.onmousedown = function (t) {
t.preventDefault();
};
e.onclick = function (e) {
t.onClick(e);
M };
var n = document.createElement('img');
this.img = n;
n.setAttribute('draggable', 'false');
n.setAttribute('src', this.imageSrc);
n.setAttribute('title', this.title);
e.appendChild(n);
return e;
},
onClick(t) {},
});
_u.prototype = Object.create(Nu.prototype);
Lu(_u.prototype, {
doCreateElement: function () {
var t = Nu.prototype.doCreateElement.call(this);
M var e = this;
this.anchor.onclick = function (t) {
e.setValue(!e.value);
e.onClick(t);
};
return t;
},
setValue: function (t) {
this.value = t;
this.img.src = this.value ? this.onImageSrc : this.imageSrc;
this.img.title = this.value ? this.onTitle : this.title;
},
getValue: function () {
return this.value;
},
});
var Tu = new xu();
M var ku = new _u(
'Pause',
'data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4NCjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+DQo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHZlcnNpb249IjEuMSIgIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij4NCiAgIDxwYXRoIGZpbGw9IiNGRkZGRkYiIGQ9Ik0xNCwxOUgxOFY1SDE0TTYsMTlMIMTBWNUg2VjE5WiIgLz4NCjwvc3ZnPg==',
'Resume',
'data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4NCjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+DQo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHZlcnNpb249IjEuMSIgIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij4NCiAgIDxwYXRoIGZpbGw9IiNmZmZmZmYiIGQ9Ik04LDUuMTRWMTkMuMTRMMTksMTIuMTRMOCw1LjE0WiIgLz4NCjwvc3ZnPg=='
);
ku.onClick = function () {
zo(this.getValue());
};
Tu.addChild(ku);
var Bu = new _u(
'Sound Off',
'data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4NCjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+DQo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMMub3JnLzE5OTkveGxpbmsiIHZlcnNpb249IjEuMSIgIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij4NCiAgIDxwYXRoIGZpbGw9IiNGRkZGRkYiIGQ9Ik0xNCwzLjIzVjUuMjlDMTYuODksNi4xNSAxOSw4LjgzIDE5LDEyQzE5LDE1LjE3IDE2Ljg5LDE3Ljg0IDE0LDE4LjdWMjAuNzdDMTgsMTkuODYgMjEsMTYuMjggMjEsMTJDMjEsNy43MiAxOCw0LjE0IDE0LDMuMjNNMTYuNSwxMkMxNi41LDEwLjIzIDE1LjUsOC43MSAxNCw3Ljk3VjE2QzE1LjUsMTUuMjkgMTYuNSwxMy43NiAxNi41LDEyTTMsOVYxNUg3TDEyLDIwVjRMNyw5SDNaIiAvPg0KPC9zdmc+',
'Sound On',
'data:image/svg+xml;base64,PD94bWwgdmVyc2lvbMj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4NCjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+DQo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHZlcnNpb249IjEuMSIgIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij4NCiAgIDxwYXRoIGZpbGw9IiNmZmZmZmYiIGQ9Ik0xMiw0TDkuOTEsNi4wOUwxMiw4LjE4TTQuMjcsM0wzLDQuMjdMNy43Myw5SDNWMTVIN0wxMiwyMFYxMy4yN0wxNi4yNSwxNy41M0MxNS41OCwxOC4wNCAxNC44MMywxOC40NiAxNCwxOC43VjIwLjc3QzE1LjM4LDIwLjQ1IDE2LjYzLDE5LjgyIDE3LjY4LDE4Ljk2TDE5LjczLDIxTDIxLDE5LjczTDEyLDEwLjczTTE5LDEyQzE5LDEyLjk0IDE4LjgsMTMuODIgMTguNDYsMTQuNjRMMTkuOTcsMTYuMTVDMjAuNjIsMTQuOTEgMjEsMTMuNSAyMSwxMkMyMSw3LjcyIDE4LDQuMTQgMTQsMy4yM1Y1LjI5QzE2Ljg5LDYuMTUgMTksOC44MyAxOSwxMk0xNi41LDEyQzE2LjUsMTAuMjMgMTUuNSw4LjcxIDE0LDcuOTdWMTAuMThMMTYuNDUsMTIuNjNDMTYuNSwxMi40MyAxNi41LDEyLjIxIDE2LjUsMTJaIiAvPg0KPC9zdmc+'
);
Bu.onClick = function () {
var t = this.getValue();
wa = t;
M };
Tu.addChild(Bu);
var ju = new Nu(
'Restart',
'data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4NCjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+DQo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHZlcnNpb249IjEuMSIgIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij4NCiAgIDxwYXRoIGZpbGw9IiNGRkZGRMkYiIGQ9Ik0xMiw0QzE0LjEsNCAxNi4xLDQuOCAxNy42LDYuM0MyMC43LDkuNCAyMC43LDE0LjUgMTcuNiwxNy42QzE1LjgsMTkuNSAxMy4zLDIwLjIgMTAuOSwxOS45TDExLjQsMTcuOUMxMy4xLDE4LjEgMTQuOSwxNy41IDE2LjIsMTYuMkMxOC41LDEzLjkgMTguNSwxMC4xIDE2LjIsNy43QzE1LjEsNi42IDEzLjUsNiAxMiw2VjEwLjZMNyw1LjZMMTIsMC42VjRNNi4zLDE3LjZDMy43LDE1IDMuMywxMSA1LjEsNy45TDYuNiw5LjRDNS41LDExLjYgNS45LDE0LjQgNy44LDE2LjJDOC4zLDE2LjcgOC45LDE3LjEgOS42LDE3LjRMOSwxOS40QzgsMTkgNy4xLDE4LjQgNi4zLDE3LjZaIiAvPg0KPC9zdmc+'
);
ju.onClick = function () {
Pt('resMtart');
};
Tu.addChild(ju);
var Ru = new Su();
var Pu = new Cu('SELECT', 'Select');
Pu.onDown = function () {
Au(true);
};
Pu.onUp = function () {
Au(false);
};
Ru.addChild(Pu);
var Ou = new Cu('RESET', 'Reset');
Ou.onDown = function () {
hu(true);
};
Ou.onUp = function () {
hu(false);
};
Ru.addChild(Ou);
var Fu = new Eu('Left difficulty switch');
M Fu.onClick = function () {
Tf(!this.getValue());
};
Ru.addChild(Fu);
var Gu = new Eu('Right difficulty switch');
Gu.onClick = function () {
kf(!this.getValue());
};
Ru.addChild(Gu);
var zu = new Du();
var Wu = new Nu('Leaderboard', vu);
Wu.onClick = function () {
Pt('showError', 'Not implemented.');
};
zu.addChild(Wu);
var Uu = new Nu('Help / Info', Mu);
Uu.onClick = function (M) {
Pt('showError', 'Not implemented.');
};
zu.addChild(Uu);
var Zu = new Nu('Settings', mu);
Zu.onClick = function () {
Pt('showError', 'Not implemented.');
};
zu.addChild(Zu);
var Qu = new _u(
'Fullscreen',
'data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4NCjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+DQo8Mc3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHZlcnNpb249IjEuMSIgIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij4NCiAgIDxwYXRoIGZpbGw9IiNGRkZGRkYiIGQ9Ik01LDVIMTBWN0g3VjEwSDVWNU0xNCw1SDE5VjEwSDE3VjdIMTRWNU0xNywxNEgxOVYxOUgxNFYxN0gxN1YxNE0xMCwxN1YxOUg1VjE0SDdWMTdIMTBaIiAvPg0KPC9zdmc+',
'Exit Fullscreen',
'data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4NCjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RMURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+DQo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHZlcnNpb249IjEuMSIgIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij4NCiAgIDxwYXRoIGZpbGw9IiNGRkZGRkYiIGQ9Ik0xNCwxNEgxOVYxNkgxNlYxOUgxNFYxNE01LDE0SDEwVjE5SDhWMTZINVYxNE04LDVIMTBWMTBINVY4SDhWNU0xOSw4VjEwSDE0VjVIMTZWOEgxOVoiIC8+DQo8L3N2Zz4='
);
Qu.onClick = function () {
if (Ys()) {
M Vs();
} else {
Hs();
}
};
zu.addChild(Qu);
Rt(
new jt('init', function () {
var t = document.getElementById('js7800__controls');
var e = document.createElement('div');
e.className = 'js7800__controls-container';
t.appendChild(e);
e.appendChild(Tu.createElement());
e.appendChild(Ru.createElement());
e.appendChild(zu.createElement());
Rt(
M new jt('fullscreen', function (t) {
Qu.setValue(t);
})
);
})
);
Rt(
new jt('onCartridgeLoaded', function () {
ku.setValue(false);
})
);
Rt(
new jt('onLeftDiffChanged', function (t) {
Fu.setValue(!t);
})
);
Rt(
new jt('onRightDiffChanged', function (t) {
Gu.setValue(!t);
})
);
n(0);
n(1);
M Vu.prototype = {
getRom: function () {
return null;
},
write: function (t, e) {},
loadSram: function (t) {
t(null);
},
};
var Ju = function (t) {
var e = Lo() && (96 & mo[60]) != 64;
Ao(t);
Po = 0;
Oo = 0;
Fo = 0;
Go = 0;
if (To || ko) {
uo();
}
for (_o = 1; _o <= Do; _o++) {
if (_o == go.top) {
moM[40] = 0;
} else if (_o == go.bottom) {
mo[40] = 128;
}
var n = false;
var r = 0;
No %= Io;
for (e && Ro(); No < 28; ) {
r = Mo() << 2;
No += r;
if (e) {
Ro();
}
if (Ci()) {
No += 2;
if (e) {
Ro();
}
}
if (po()) {
bo(r >>> 2);
M }
if (mo[36]) {
Oo++;
mo[36] = 0;
n = true;
break;
}
}
Tt(true);
if ((r = ((yo(_o) + 3) >>> 2) << 2) > 428) {
n = true;
}
Tt(false);
No += r;
Fo += r;
if (po()) {
bo(r >>> 2);
}
for (
wo() &&
(!n &&
No < Io &&
((r = MMo() << 2),
po() && bo(r >>> 2),
(No += r),
mo[36] && (Oo++, (mo[36] = 0), (n = true))),
vo());
!n && No < Io;
) {
r = Mo() << 2;
No += r;
if (e) {
Ro();
}
if (Ci()) {
No += 2;
if (e) {
Ro();
}
}
if (po()) {
bo(r >>> 2);
}M
if (mo[36]) {
Oo++;
mo[36] = 0;
n = true;
break;
}
}
if (n && No < Io) {
if (po()) {
bo((Io - No) >>> 2);
}
No = Io;
}
Go += No;
if (e) {
Ro();
}
fo(2);
if (To || ko) {
lo(2);
}
if (To || ko) {
ho();
M }
}
if (++xo >= So) {
xo = 0;
}
};
var Xu = function () {
var t;
var e;
var n;
var r = ya || da();
var c = la();
var i = ha();
var a = (function () {
var t = ga;
var e = i;
var n = pa;
var r = (t / n) | 0;
var c = t % n | 0;
if (c != 0 && c >= e) {
r++;
}
return r;
}M)();
(function (t, e, n, r) {
var c = ga;
var i = 0;
var a = 0;
for (var o = (pa * ba) << 1; a < r; ) {
if (c >= o) {
n[a++] = t[i] + (e ? e[i] : 0);
c -= o;
} else {
i++;
c += ga;
}
}
})(fa, r ? oa : null, ma, a);
ua();
sa();
if (c) {
t = Ma;
e = a;
n = 0;
M ct.mixStereo(t, e, n);
ct.Count(e);
}
if (!wa) {
Aa(ma, c ? Ma : null, a);
}
return true;
};
var qu = function () {
var t = null;
if (cu()) {
if (du) {
du = false;
uu[3] = true;
} else {
uu[3] = !iu();
}
} else {
nu();
t = ru(0);
lu(0, uu, t);
lu(1, uu, t);
}
uuM[12] = su || Rf() || (t && t.isReset());
uu[13] = fu || jf() || (t && t.isSelect());
uu[14] = Pf() || (t && t.isPause());
uu[15] = Of();
uu[16] = Ff();
};
var Ku = Es;
var $u = null;
var td = null;
var ed = null;
var nd = null;
var rd = null;
var cd = null;
var id = false;
var ad = null;
new Vu();
var od = false;
var sd = true;
var fd = 0;
var ud = 0;
M var dd = 0;
var ld = new Array(19);
var hd = false;
var Ad = false;
var yd;
var wd;
var md = null;
if (document.hidden === void 0) {
if (document.msHidden === void 0) {
if (document.webkitHidden !== void 0) {
yd = 'webkitHidden';
wd = 'webkitvisibilitychange';
}
} else {
yd = 'msHidden';
wd = 'msvisibilitychange';
}
} else {
yd = 'hiddeMn';
wd = 'visibilitychange';
}
document.addEventListener(
wd,
function () {
if (document[yd]) {
console.log('page is no longer visible.');
zo(true);
Ad = true;
} else {
console.log('page visible.');
if (!Yu()) {
zo(false);
}
}
},
false
);
var Bd = {
8: 'Back',
9: 'Tab',
1M3: 'Enter',
16: 'Shift',
17: 'Ctrl',
18: 'Alt',
19: 'Break',
27: 'Esc',
32: 'Space',
33: 'PUp',
34: 'PDown',
35: 'End',
36: 'Home',
37: 'Left',
38: 'Up',
39: 'Right',
40: 'Down',
45: 'Insert',
46: 'Delete',
48: '0',
49: '1',
50: '2',
51: '3',
52: '4',
53: '5',
54: '6',
55: '7',
M 56: '8',
57: '9',
65: 'A',
66: 'B',
67: 'C',
68: 'D',
69: 'E',
70: 'F',
71: 'G',
72: 'H',
73: 'I',
74: 'J',
75: 'K',
76: 'L',
77: 'M',
78: 'N',
79: 'O',
80: 'P',
81: 'Q',
82: 'R',
83: 'S',
84: 'T',
85: 'U',
86: 'V',
87: 'W',
88: 'X',
89: 'Y',
M 90: 'Z',
96: 'Num 0',
97: 'Num 1',
98: 'Num 2',
99: 'Num 3',
100: 'Num 4',
101: 'Num 5',
102: 'Num 6',
103: 'Num 7',
104: 'Num 8',
105: 'Num 9',
106: 'Num *',
107: 'Num +',
109: 'Num -',
110: 'Num .',
111: 'Num /',
112: 'F1',
113: 'F2',
114: 'F3',
115: 'F4',
116: 'F5',
117: 'F6',
118: 'F7',
M 119: 'F8',
120: 'F9',
121: 'F10',
122: 'F11',
123: 'F12',
144: 'NLock',
145: 'SLock',
186: ';',
187: '=',
188: ',',
189: '-',
190: '.',
191: '/',
192: '`',
219: '[',
220: '\\',
221: ']',
222: "'",
};
n.d(e, 'Main', function () {
return l;
});
n.d(e, 'Cartridge', function () {
return i;
M });
n.d(e, 'ControlsBar', function () {
return d;
});
n.d(e, 'Util', function () {
return f;
});
n.d(e, 'Events', function () {
return r;
});
n.d(e, 'Keyboard', function () {
return s;
});
n.d(e, 'Keys', function () {
return h;
});
n.d(e, 'Pads', function () {
return u;
});
n.d(e, 'Memory', function () {
return c;
});
n.d(e, 'VMideo', function () {
return o;
});
n.d(e, 'Region', function () {
return a;
});
n.d(e, 'ProSystem', function () {
return a;
});
n.d(e, 'md5', function () {
return an;
});
},
];
var e = {};
n.m = t;
n.c = e;
n.d = function (t, e, r) {
if (!n.o(t, e)) {
Object.defineProperty(t, e, { enumerable: true, get: r });
}
};
n.r = function (t) {
if (typeof Symbol != 'undefMined' && Symbol.toStringTag) {
Object.defineProperty(t, Symbol.toStringTag, { value: 'Module' });
}
Object.defineProperty(t, '__esModule', { value: true });
};
n.t = function (t, e) {
if (1 & e) {
t = n(t);
}
if (8 & e) {
return t;
}
if (4 & e && typeof t == 'object' && t && t.__esModule) {
return t;
}
var r = Object.create(null);
n.r(r);
Object.defineProperty(r, 'default', { enumerable: true, value: t });
M if (2 & e && typeof t != 'string') {
for (var c in t) {
n.d(
r,
c,
function (e) {
return t[e];
}.bind(null, c)
);
}
}
return r;
};
n.n = function (t) {
var e =
t && t.__esModule
? function () {
return t.default;
}
: function () {
return t;
};
n.d(e, 'a', e);
return e;
};
n.o = function (t, e) M�{
return Object.prototype.hasOwnProperty.call(t, e);
};
n.p = '';
return n((n.s = 5));
};
if (typeof exports == 'object' && typeof module == 'object') {
module.exports = e();
} else if (typeof define == 'function' && define.amd) {
define('js7800', [], e);
} else if (typeof exports == 'object') {
exports.js7800 = e();
} else {
t.js7800 = e();
}
})();
hascii eE"/w6Clo
}syHM\+}j_Hs, cordtext/javascript M(function () {
var t = window;
var e = function () {
function n(r) {
if (e[r]) {
return e[r].exports;
}
var c = (e[r] = { i: r, l: false, exports: {} });
t[r].call(c.exports, c, c.exports, n);
c.l = true;
return c.exports;
}
var t = [
function (t, e) {
function e(e, n) {
var r = t.createEvent('Event');
r.initEvent(e, true, false);
n.dispatchEvent(r);
}
function n(e) {
return function (n,M c) {
if (e !== a.exit || t[r.element]) {
t.addEventListener(
r.events.change,
function e() {
n();
t.removeEventListener(r.events.change, e, false);
},
false
);
t.addEventListener(
r.events.error,
function e() {
c(new TypeError());
t.removeEventListener(r.events.error, e, false);
}M,
false
);
return;
} else {
setTimeout(function () {
c(new TypeError());
}, 1);
return;
}
};
}
var t = document;
var r;
var c;
var i = {
w3: {
enabled: 'fullscreenEnabled',
element: 'fullscreenElement',
request: 'requestFullscreen',
exit: 'exitFullscreen',
events: { change:M 'fullscreenchange', error: 'fullscreenerror' },
},
webkit: {
enabled: 'webkitFullscreenEnabled',
element: 'webkitCurrentFullScreenElement',
request: 'webkitRequestFullscreen',
exit: 'webkitExitFullscreen',
events: {
change: 'webkitfullscreenchange',
error: 'webkitfullscreenerror',
},
},
moz: {
enabled: 'mozFullScreenEnabled',
element: 'mozFullScreenElemMent',
request: 'mozRequestFullScreen',
exit: 'mozCancelFullScreen',
events: {
change: 'mozfullscreenchange',
error: 'mozfullscreenerror',
},
},
ms: {
enabled: 'msFullscreenEnabled',
element: 'msFullscreenElement',
request: 'msRequestFullscreen',
exit: 'msExitFullscreen',
events: {
change: 'MSFullscreenChange',
error: 'MSFullscreenErroMr',
},
},
};
var a = i.w3;
for (c in i) {
if (i[c].enabled in t) {
r = i[c];
break;
}
}
if (!(a.enabled in t) && !!r) {
t.addEventListener(
r.events.change,
function (n) {
n.stopPropagation();
n.stopImmediatePropagation();
t[a.enabled] = t[r.enabled];
t[a.element] = t[r.element];
e(a.events.change, n.target);M
},
false
);
t.addEventListener(
r.events.error,
function (t) {
e(a.events.error, t.target);
},
false
);
t[a.enabled] = t[r.enabled];
t[a.element] = t[r.element];
t[a.exit] = function () {
var e = t[r.exit]();
if (!e && Promise) {
return new Promise(n(a.exit));
} else {
return e;
}
};
M Element.prototype[a.request] = function () {
var t = this[r.request].apply(this, arguments);
if (!t && Promise) {
return new Promise(n(a.request));
} else {
return t;
}
};
}
},
function (t, e, n) {
var r = n(2);
var c = n(3);
if (typeof (c = c.__esModule ? c.default : c) == 'string') {
c = [[t.i, c, '']];
}
var i = { insert: 'head', singleton: false };
M r(c, i);
var a = c.locals ? c.locals : {};
t.exports = a;
},
function (t, e, n) {
'use strict';
function o(t) {
var e = -1;
for (var n = 0; n < a.length; n++) {
if (a[n].identifier === t) {
e = n;
break;
}
}
return e;
}
function s(t, e) {
var n = {};
var r = [];
for (var c = 0; c < t.length; c++) {
var i = t[c];
M var s = e.base ? i[0] + e.base : i[0];
var f = n[s] || 0;
var u = ''.concat(s, ' ').concat(f);
n[s] = f + 1;
var d = o(u);
var l = { css: i[1], media: i[2], sourceMap: i[3] };
if (d === -1) {
a.push({ identifier: u, updater: b(l, e), references: 1 });
} else {
a[d].references++;
a[d].updater(l);
}
r.push(u);
}
return r;
}
funMction f(t) {
var e = document.createElement('style');
var r = t.attributes || {};
if (r.nonce === void 0) {
var c = n.nc;
if (c) {
r.nonce = c;
}
}
Object.keys(r).forEach(function (t) {
e.setAttribute(t, r[t]);
});
if (typeof t.insert == 'function') {
t.insert(e);
} else {
var a = i(t.insert || 'head');
if (!a) {
throw new ErrMor(
"Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid."
);
}
a.appendChild(e);
}
return e;
}
function l(t, e, n, r) {
var c = n
? ''
: r.media
? '@media '.concat(r.media, ' {').concat(r.css, '}')
: r.css;
if (t.styleSheet) {
t.styleSheet.cssText = d(e, c);
} else {
var i = Mdocument.createTextNode(c);
var a = t.childNodes;
if (a[e]) {
t.removeChild(a[e]);
}
if (a.length) {
t.insertBefore(i, a[e]);
} else {
t.appendChild(i);
}
}
}
function h(t, e, n) {
var r = n.css;
var c = n.media;
var i = n.sourceMap;
if (c) {
t.setAttribute('media', c);
} else {
t.removeAttribute('media')M;
}
if (i && btoa) {
r += '\n/*# sourceMappingURL=data:application/json;base64,'.concat(
btoa(unescape(encodeURIComponent(JSON.stringify(i)))),
' */'
);
}
if (t.styleSheet) {
t.styleSheet.cssText = r;
} else {
while (t.firstChild) {
t.removeChild(t.firstChild);
}
t.appendChild(document.createTextNode(r));
}
}
function b(t, e) {
M var n;
var r;
var c;
if (e.singleton) {
var i = p++;
n = A || (A = f(e));
r = l.bind(null, n, i, false);
c = l.bind(null, n, i, true);
} else {
n = f(e);
r = h.bind(null, n, e);
c = function () {
var t = n;
if (t.parentNode === null) {
return;
}
t.parentNode.removeChild(t);
};
}
r(Mt);
return function (e) {
if (e) {
if (
e.css === t.css &&
e.media === t.media &&
e.sourceMap === t.sourceMap
) {
return;
}
r((t = e));
} else {
c();
}
};
}
var r;
var c = function () {
if (r === void 0) {
r = Boolean(window && document && document.all && !window.atob);
}
M return r;
};
var i = (function () {
var t = {};
return function (e) {
if (t[e] === void 0) {
var n = document.querySelector(e);
if (
window.HTMLIFrameElement &&
n instanceof window.HTMLIFrameElement
) {
try {
n = n.contentDocument.head;
} catch (t) {
n = null;
}
}
t[e] = n;
M }
return t[e];
};
})();
var a = [];
var u = [];
var d = function (t, e) {
u[t] = e;
return u.filter(Boolean).join('\n');
};
var A = null;
var p = 0;
t.exports = function (t, e) {
if (!(e = e || {}).singleton && typeof e.singleton != 'boolean') {
e.singleton = c();
}
var n = s((t = t || []), e);
return function (t) {
t = t || [];
M if (Object.prototype.toString.call(t) === '[object Array]') {
for (var r = 0; r < n.length; r++) {
var c = o(n[r]);
a[c].references--;
}
var i = s(t, e);
for (var f = 0; f < n.length; f++) {
var u = o(n[f]);
if (a[u].references === 0) {
a[u].updater();
a.splice(u, 1);
}
}
n = i;
}
};
};M
},
function (t, e, n) {
(e = n(4)(false)).push([
t.i,
'/* All sizing currently done in pixels */\r\n\r\n.js7800_noselect {\r\n -webkit-touch-callout: none; /* iOS Safari */\r\n -webkit-user-select: none; /* Safari */\r\n -khtml-user-select: none; /* Konqueror HTML */\r\n -moz-user-select: none; /* Old versions of Firefox */\r\n -ms-user-select: none; /* Internet Explorer/Edge */\r\n user-select: none; /* Non-prefixed version, currently\rM\n supported by Chrome, Opera and Firefox */\r\n padding:0;\r\n margin:0;\r\n}\r\n\r\n.js7800 {\r\n margin-left: auto;\r\n margin-right: auto;\r\n box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.4), 0 6px 20px 0 rgba(0, 0, 0, 0.39);\r\n border-radius: 16px;\r\n background: #000;\r\n padding: 20px;\r\n}\r\n\r\n.js7800__inner-container {\r\n position: relative;\r\n text-align: center;\r\n}\r\n\r\n.js7800__screen {\r\n margin: auto;\r\n background: #000;\r\n /* cursor: none; */\rM\n image-rendering: optimizeSpeed; /* Older versions of FF */\r\n image-rendering: -moz-crisp-edges; /* FF 6.0+ */\r\n image-rendering: -webkit-optimize-contrast; /* Safari */\r\n image-rendering: -o-crisp-edges; /* OS X & Windows Opera (12.02+) */\r\n image-rendering: pixelated; /* Awesome future-browsers */\r\n /*-ms-interpolation-mode: nearest-neighbor;*/ /* IE */ \r\n}\r\n\r\n.js7800__logo {\r\Mn left: 50%;\r\n top: 50%;\r\n -webkit-transform: translate(-50%, -50%);\r\n -moz-transform: translate(-50%, -50%);\r\n transform: translate(-50%, -50%);\r\n position: absolute;\r\n visibility: hidden;\r\n opacity: 0;\r\n}\r\n\r\n.js7800__logo .atari7800 {\r\n margin-top: -40px;\r\n padding: 0 3em;\r\n}\r\n\r\n.js7800__logo--show {\r\n visibility: visible;\r\n opacity: 1;\r\n transition: visibility 0s linear 0s, opacity 1s;\r\n}\r\n\r\n.js7800__logo--hide {\r\n visibility: hidden;\r\n opacity: 0;\r\nM transition: visibility 1s linear 1s, opacity 1s; \r\n}\r\n\r\n.js7800__controls {\r\n border-top: 10px solid black;\r\n background-color: #151515;\r\n margin-left: auto;\r\n margin-right: auto;\r\n font-size: 12px;\r\n border-radius: 5px;\r\n}\r\n\r\n#js7800__fullscreen-container:-webkit-full-screen {\r\n position:fixed;\r\n width: 100%;\r\n background-color: black;\r\n}\r\n\r\n.js7800__controls-switch {\r\n position: relative;\r\n display: inline-block;\r\n width: 29px;\r\n height: 18px;\r\n margiMn: 0 5px 0 5px;\r\n}\r\n\r\n.js7800__controls-switch input {\r\n opacity: 0;\r\n width: 0;\r\n height: 0;\r\n}\r\n\r\n.js7800__controls-switch-slider {\r\n position: absolute;\r\n cursor: pointer;\r\n top: 0;\r\n left: 0;\r\n right: 0;\r\n bottom: 0;\r\n background-color: #666;\r\n -webkit-transition: .4s;\r\n transition: .4s;\r\n opacity: 0.6;\r\n border-radius: 3px;\r\n}\r\n\r\n.js7800__controls-switch-slider:hover {\r\n opacity: 1\r\n}\r\n\r\n.js7800__controls-switch-slider:before {\r\n position:M absolute;\r\n content: "";\r\n height: 12px;\r\n width: 11px;\r\n left: 3px;\r\n bottom: 3px;\r\n background-color: #DDD;\r\n border-radius: 3px;\r\n -webkit-transition: .4s;\r\n transition: .4s;\r\n}\r\n\r\ninput:checked+.js7800__controls-switch-slider:before {\r\n -webkit-transform: translateX(12x);\r\n -ms-transform: translateX(12px);\r\n transform: translateX(12px);\r\n}\r\n\r\n.js7800__controls-button {\r\n background-color: #ce2f37;\r\n border: none;\r\n color: white;\r\n text-align: center;\Mr\n font-size: 10px;\r\n margin: 0 5px 0 5px;\r\n opacity: .6;\r\n transition: .3s;\r\n display: inline-block;\r\n text-decoration: none;\r\n cursor: pointer;\r\n padding: 3px 2px 3px 2px;\r\n min-width: 48px;\r\n border-radius: 3px;\r\n}\r\n\r\n.js7800__controls-button:hover {\r\n opacity: 1\r\n}\r\n\r\n.js7800__controls-img-button {\r\n cursor: pointer;\r\n width: 24px;\r\n height: 24px;\r\n opacity: .6;\r\n margin: 0 4px 0 4px;\r\n border: 0px solid white;\r\n vertical-align: middle;\r\n}\r\n\rM\n.js7800__controls-img-button:hover {\r\n opacity: .9\r\n}\r\n\r\n.js7800__controls-container {\r\n display: flex;\r\n margin: 0 2px 0 2px;\r\n padding: 4px 0 4px 0;\r\n flex-wrap: nowrap;\r\n user-select: none;\r\n /* max-width: 800px; */\r\n}\r\n\r\n.js7800__controls-group {\r\n border: 0px solid white;\r\n flex: 1 0 150px;\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n}\r\n\r\n.js7800__controls-group-start {\r\n border: 0px solid white;\r\n flex: 1 0 1px;\r\n text-alMign: left;\r\n display: flex;\r\n align-items: center;\r\n justify-content: flex-start;\r\n}\r\n\r\n.js7800__controls-group-end {\r\n border: 0px solid white;\r\n flex: 1 0 1px;\r\n display: flex;\r\n align-items: center;\r\n justify-content: flex-end;\r\n}\r\n',
'',
]);
t.exports = e;
},
function (t, e, n) {
'use strict';
t.exports = function (t) {
var e = [];
e.toString = function () {
return this.map(function (e) {
M var n = (function (t, e) {
var n = t[1] || '';
var r = t[3];
if (!r) {
return n;
}
if (e && typeof btoa == 'function') {
a = r;
o = btoa(unescape(encodeURIComponent(JSON.stringify(a))));
s =
'sourceMappingURL=data:application/json;charset=utf-8;base64,'.concat(
o
);
var c = '/*M# '.concat(s, ' */');
var i = r.sources.map(function (t) {
return '/*# sourceURL='
.concat(r.sourceRoot || '')
.concat(t, ' */');
});
return [n].concat(i).concat([c]).join('\n');
}
var a;
var o;
var s;
return [n].join('\n');
})(e, t);
if (e[2]) {
return '@media '.concat(e[2], 'M {').concat(n, '}');
} else {
return n;
}
}).join('');
};
e.i = function (t, n, r) {
if (typeof t == 'string') {
t = [[null, t, '']];
}
var c = {};
if (r) {
for (var i = 0; i < this.length; i++) {
var a = this[i][0];
if (a != null) {
c[a] = true;
}
}
}
for (var o M= 0; o < t.length; o++) {
var s = [].concat(t[o]);
if (!r || !c[s[0]]) {
if (n) {
if (s[2]) {
s[2] = ''.concat(n, ' and ').concat(s[2]);
} else {
s[2] = n;
}
}
e.push(s);
}
}
};
return e;
};
},
function (t, e, n) {
'use strict';
function H(t, e, n, r, c) {
vMar i = (1 << e) - 1;
var a = 0;
var o = 0;
for (var s = 0; s < i; s++) {
t[o] = e == 17 ? a >>> 6 : a;
o++;
a = ((a << n) + (a >>> r) + c) & i;
}
}
function Y() {
G = 0;
W = 0;
y = 0;
for (let t = 0; t < 32; t++) {
J[t] = 0;
}
(function () {
var t = 511;
for (var e = 0; e < 511; e++) {
var n = ((t >> 0) & 1) ^ ((t >>M 5) & 1);
t >>= 1;
t |= n << 8;
C[e] = 1 & t;
}
})();
(function () {
var t = 131071;
for (var e = 0; e < 131071; e++) {
var n = ((t >> 8) & 1) ^ ((t >> 13) & 1);
var r = 1 & t;
t = (65407 & (t >>= 1)) | (n << 7);
t |= r << 16;
E[e] = 1 & t;
}
})();
S = 0;
x = 0;
D = 0;
N = 0;
k =M (457605120 / g) | 0;
for (var t = 0; t <= 3; t++) {
v[t] = 0;
_[t] = 0;
m[t] = 0;
w[t] = 0;
}
for (var e = 0; e < 8; e++) {
z[e] = 228;
}
H(B, 9, 8, 1, 384);
H(j, 17, 16, 1, 114688);
O = 0;
F = 0;
M = 0;
R = 0;
P = 0;
U = 0;
Z = 0;
Q[0] = 1;
Q[1] = 1;
Q[2] = 0;
Q[3] = 0;
et(trueM);
}
function V(t) {
if (G-- > 0) {
console.log('pokey_getRegister: %d', t);
}
var e = 0;
var n = 15 & t;
if (n < 8) {
if ((r = z[n]) <= W) {
return r;
} else {
return W;
}
}
switch (t) {
case 16392:
var r = 0;
for (var c = 0; c < 8; c++) {
if (z[n] <= W) {
r &= ~(1 << c);
M }
}
return r;
case 16394:
var i = U + Jo();
if (3 & O) {
var a = (i - Z) >>> 2;
R = (a + R) % 511 | 0;
P = (a + P) % 131071 | 0;
} else {
R = 0;
P = 0;
}
F = 128 & M ? B[R] : j[P];
Z = i;
e = F ^= 255;
}
return e;
}
function X(t, e) {
switch (
M (G-- > 0 && console.log('pokey_setRegister: %d %d', t - 16384, e),
(J[t - 16384] = e),
t)
) {
case 16395:
if (!(4 & O)) {
W = 0;
}
return;
case 16399:
O = e;
if (4 & e) {
W = 228;
}
return;
case 16384:
w[0] = e;
break;
case 16385:
m[0] = e;
breakM;
case 16386:
w[1] = e;
break;
case 16387:
m[1] = e;
break;
case 16388:
w[2] = e;
break;
case 16389:
m[2] = e;
break;
case 16390:
w[3] = e;
break;
case 16391:
m[3] = e;
break;
case 16392:
M = e;
}
}
function q(t, e) {
M_[t] = (_[t] + 1) & 255;
if (_[t] == 0 && T[t] == 0) {
T[t] = e;
}
}
function K(t) {
if (T[t] > 0) {
T[t]--;
return T[t] == 0;
} else {
return 0;
}
}
function $(t) {
_[t] = 255 ^ w[t];
T[t] = 0;
}
function tt(t) {
if (128 & m[t] || I[x]) {
if (32 & m[t]) {
v[t] ^= 1;
} else if (64 & m[t]) {
Mv[t] = L[S];
} else {
v[t] = 128 & M ? C[D] : E[N];
}
}
}
function et(t) {
y = 0;
if (t) {
for (var e = 0; e < 2048; e++) {
b[e] = 0;
}
}
}
function ot(t, e) {
at[t] = e;
ct.SetReg(t, e);
}
function Ct() {
for (var t = 0; t < 131072; t++) {
ut[t] = 0;
}
dt = false;
lt = false;
M ht = false;
At = false;
pt = false;
bt = false;
gt = false;
yt = false;
wt = 0;
mt = 0;
Mt = 0;
vt = 0;
Lt = 0;
It = 0;
(function () {
ct.Reset();
for (let t = 0; t < at.length; t++) {
at[t] = 0;
}
})();
Et = 0;
St = 2;
xt = -1;
}
function Dt() {
return lt;
}
funcMtion Nt() {
return dt;
}
function _t() {
return ht;
}
function Tt(t) {
yt = t;
}
function jt(t, e) {
this.topic = t;
if (e) {
this.onEvent = e;
}
}
function Rt(t) {
if (Bt) {
var e = new Bt.Listener();
e.getTopic = function () {
return t.getTopic();
};
e.onEvent = function (e) {
t.onEvent(e);
M };
Bt.addListener(e);
} else {
var n = t.getTopic();
var r = kt[n];
if (!r) {
r = [];
kt[n] = r;
}
r.push(t);
}
}
function Pt(t, e) {
if (Bt) {
Bt.fireEvent(t, e);
} else {
var n = kt[t];
if (n) {
for (var r = 0; r < n.length; r++) {
n[r].onEvent(e);
}
}
M }
}
function Ot(t) {
for (var e in ((Bt = t), kt)) {
var n = kt[e];
for (var r = 0; r < n.length; r++) {
Rt(n[r]);
}
}
}
function Xt(t) {
Qt = t;
}
function qt(t) {
Ht = t;
Ft[642] = -21 & Ft[642] & 255;
Ft[642] = 255 & (Ft[642] | (20 & (~Ft[643] | Ht)));
}
function Kt() {
return Wt;
}
function $t() {
returnM Zt;
}
function pe(t) {
le[t]++;
if (le[t] == 31) {
le[t] = 0;
}
if (
(2 & se[t]) == 0 ||
((1 & se[t]) == 0 && ce[le[t]]) ||
((1 & se[t]) == 1 && ne[le[t]])
) {
if (4 & se[t]) {
ie[t] = ie[t] ? 0 : ue[t];
} else if (8 & se[t]) {
if (se[t] == 8) {
he[t]++;
if (he[t] == 511) {
he[t] = 0;
}M
ie[t] = re[he[t]] ? ue[t] : 0;
} else {
ie[t] = ne[le[t]] ? ue[t] : 0;
}
} else {
de[t]++;
if (de[t] == 15) {
de[t] = 0;
}
ie[t] = ee[de[t]] ? ue[t] : 0;
}
}
}
function be(t) {
Ae = 0;
if (t) {
for (var e = 0; e < 2048; e++) {
te[e] = 0;
}
}
}
function MUe() {
for (var t = 0; t < 65536; t++) {
Ne[t] = 0;
Te[t] = 0;
_e[t] = 1;
}
for (t = 0; t < 16384; t++) {
_e[t] = 0;
}
ze = false;
}
function Ze(t) {
var e;
if (
Fe &&
((t >= 1136 && t < 1152) ||
(Le() && t >= 1104 && t < 1136) ||
(Ie() && t >= 16384 && t < 32768) ||
(Ce() && t >= 1120 && t <= 1121))
) {
M return Ee(t);
}
if (
!Re &&
ke &&
((!Be && !je && t >= 16384 && t <= 16399) ||
(je && t >= 2048 && t < 2080) ||
(Be && t >= 1104 && t < 1136))
) {
return ye(je ? t - 2048 + 16384 : Be ? t - 1104 + 16384 : t);
}
if (t >= 32 && t <= 63 && t != 40) {
return 0;
}
switch (t) {
case 644:
case 646:
Ne[645] &= 127;
M return Ne[644];
case 645:
case 647:
e = Ne[645];
Ne[645] &= 127;
return e;
default:
if (We) {
if (Oe && t >= 16384 && t <= 32767) {
return Te[t];
}
if (Ge === hn || Ge === yn) {
if (t >= Kr() && t <= tc()) {
return Te[t];
}
} else {
if (Ge == gn && t >= 16384 && t M<= 32767) {
return Te[t];
}
if (t >= 32768 && t <= 49151) {
return Te[t];
}
if (t >= 49152 && t <= 65535) {
return Te[t];
}
}
}
return Ne[t];
}
}
function Qe(t) {
var e = Ze(t);
if (e < 0) {
console.error('Less than zero memory read: %d %d', t, e);
}
M return e;
}
function He(t) {
We = true;
var e = Ze(t);
We = false;
if (e < 0) {
console.error('Less than zero memory read: %d %d', t, e);
}
return e;
}
function Ye(t, e) {
if (e < 0) {
console.error('Less than zero memory write: %d %d', t, e);
}
if (
Fe &&
((t >= 1136 && t < 1152) ||
(Le() && t >= 1104 && t < 1136) ||
M (Ie() && t >= 16384 && t < 32768) ||
(Ce() && t >= 1120 && t <= 1121))
) {
Se(t, e);
} else if (
ke &&
((!Be && !je && t >= 16384 && t <= 16399) ||
(je && t >= 2048 && t < 2080) ||
(Be && t >= 1104 && t < 1136))
) {
ge(je ? t - 2048 + 16384 : Be ? t - 1104 + 16384 : t, e);
} else if (!_e[t] || (Oe && t >= 49152 && t <= 65535)) {
if (xe && t >= 4096 && t <= 6143 && De) {
M De.write(t, e);
}
if (t >= 0 && t <= 15) {
if (!ze) {
if (1 & e) {
ze = true;
console.log('Lock: ' + e);
Ne[40] = 128;
}
if (4 & e && nr()) {
if (!Xr()) {
$n();
}
}
}
} else {
switch (t) {
case 36:
Ne[36] = 1;
M break;
case 8:
case 9:
case 10:
case 11:
case 12:
case 13:
case 40:
break;
case 21:
we(21, e);
break;
case 22:
we(22, e);
break;
case 23:
we(23, e);
break;
case 24:
we(24, e);
brMeak;
case 25:
we(25, e);
break;
case 26:
we(26, e);
break;
case 642:
me(e);
break;
case 640:
Me(e);
break;
case 660:
case 668:
ve(660, e);
break;
case 661:
case 669:
ve(661, e);
M break;
case 662:
case 670:
ve(662, e);
break;
case 663:
case 671:
ve(663, e);
break;
default:
if (Oe && t >= 49152 && t <= 65535) {
Te[t - 49152 + 16384] = e;
} else {
Ne[t] = e;
if (t >= 8256 && t <= 8447) {
Ne[t - 8192] = e;
}M else if (t >= 8512 && t <= 8703) {
Ne[t - 8192] = e;
} else if (t >= 64 && t <= 255) {
Ne[t + 8192] = e;
} else if (t >= 320 && t <= 511) {
Ne[t + 8192] = e;
} else if (t >= 10240 && t <= 12287) {
Ne[t - 2048] = e;
} else if (t >= 8192 && t <= 10239) {
Ne[t + 2048] = e;
}
}
}
M }
} else {
tr(t, e);
}
}
function Ve(t, e, n, r) {
var c = false;
var i = 0;
if (Pe) {
var a = Cr();
if (a === hn || a === yn) {
i = e;
qr(t);
$r(t + e - 1);
c = true;
} else if (
t === 32768 ||
t === 49152 ||
(a === gn && t === 16384)
) {
i = 131072;
c = Mtrue;
}
}
if (t + e <= 65536 && n != null) {
for (var o = 0; o < e; o++) {
Ne[t + o] = n[o + r];
_e[t + o] = 1;
if (c) {
Te[t + o] = n[o + r + i];
}
}
}
}
function Je(t, e) {
if (t + e <= 65536) {
for (var n = 0; n < e; n++) {
Ne[t + n] = 0;
_e[t + n] = 0;
if (Oe && t === 16384) {
Te[tM + n] = 0;
}
}
}
}
function Xe(t, e) {
var n = t[0];
var r = t[1];
var c = t[2];
var i = t[3];
n = Ke(n, r, c, i, e[0], 7, -680876936);
i = Ke(i, n, r, c, e[1], 12, -389564586);
c = Ke(c, i, n, r, e[2], 17, 606105819);
r = Ke(r, c, i, n, e[3], 22, -1044525330);
n = Ke(n, r, c, i, e[4], 7, -176418897);
i = Ke(i, n, r, c, e[5], 12, 1200080426);
c = Ke(c, i, Mn, r, e[6], 17, -1473231341);
r = Ke(r, c, i, n, e[7], 22, -45705983);
n = Ke(n, r, c, i, e[8], 7, 1770035416);
i = Ke(i, n, r, c, e[9], 12, -1958414417);
c = Ke(c, i, n, r, e[10], 17, -42063);
r = Ke(r, c, i, n, e[11], 22, -1990404162);
n = Ke(n, r, c, i, e[12], 7, 1804603682);
i = Ke(i, n, r, c, e[13], 12, -40341101);
c = Ke(c, i, n, r, e[14], 17, -1502002290);
n = $e(
n,
(r = Ke(r, c, i, n, e[15], 22M, 1236535329)),
c,
i,
e[1],
5,
-165796510
);
i = $e(i, n, r, c, e[6], 9, -1069501632);
c = $e(c, i, n, r, e[11], 14, 643717713);
r = $e(r, c, i, n, e[0], 20, -373897302);
n = $e(n, r, c, i, e[5], 5, -701558691);
i = $e(i, n, r, c, e[10], 9, 38016083);
c = $e(c, i, n, r, e[15], 14, -660478335);
r = $e(r, c, i, n, e[4], 20, -405537848);
n = $e(n, r, c, i, e[9], 5, 56844M6438);
i = $e(i, n, r, c, e[14], 9, -1019803690);
c = $e(c, i, n, r, e[3], 14, -187363961);
r = $e(r, c, i, n, e[8], 20, 1163531501);
n = $e(n, r, c, i, e[13], 5, -1444681467);
i = $e(i, n, r, c, e[2], 9, -51403784);
c = $e(c, i, n, r, e[7], 14, 1735328473);
n = tn(
n,
(r = $e(r, c, i, n, e[12], 20, -1926607734)),
c,
i,
e[5],
4,
-378558
);
i = Mtn(i, n, r, c, e[8], 11, -2022574463);
c = tn(c, i, n, r, e[11], 16, 1839030562);
r = tn(r, c, i, n, e[14], 23, -35309556);
n = tn(n, r, c, i, e[1], 4, -1530992060);
i = tn(i, n, r, c, e[4], 11, 1272893353);
c = tn(c, i, n, r, e[7], 16, -155497632);
r = tn(r, c, i, n, e[10], 23, -1094730640);
n = tn(n, r, c, i, e[13], 4, 681279174);
i = tn(i, n, r, c, e[0], 11, -358537222);
c = tn(c, i, n, r, e[3], 16, -722521979);
rM = tn(r, c, i, n, e[6], 23, 76029189);
n = tn(n, r, c, i, e[9], 4, -640364487);
i = tn(i, n, r, c, e[12], 11, -421815835);
c = tn(c, i, n, r, e[15], 16, 530742520);
n = en(
n,
(r = tn(r, c, i, n, e[2], 23, -995338651)),
c,
i,
e[0],
6,
-198630844
);
i = en(i, n, r, c, e[7], 10, 1126891415);
c = en(c, i, n, r, e[14], 15, -1416354905);
r = en(r, c, i, n, e[M5], 21, -57434055);
n = en(n, r, c, i, e[12], 6, 1700485571);
i = en(i, n, r, c, e[3], 10, -1894986606);
c = en(c, i, n, r, e[10], 15, -1051523);
r = en(r, c, i, n, e[1], 21, -2054922799);
n = en(n, r, c, i, e[8], 6, 1873313359);
i = en(i, n, r, c, e[15], 10, -30611744);
c = en(c, i, n, r, e[6], 15, -1560198380);
r = en(r, c, i, n, e[13], 21, 1309151649);
n = en(n, r, c, i, e[4], 6, -145523070);
i = en(i, n, r, c, e[M11], 10, -1120210379);
c = en(c, i, n, r, e[2], 15, 718787259);
r = en(r, c, i, n, e[9], 21, -343485551);
t[0] = on(n, t[0]);
t[1] = on(r, t[1]);
t[2] = on(c, t[2]);
t[3] = on(i, t[3]);
}
function qe(t, e, n, r, c, i) {
e = on(on(e, t), on(r, i));
return on((e << c) | (e >>> (32 - c)), n);
}
function Ke(t, e, n, r, c, i, a) {
return qe((e & n) | (~e & r), t, e, c, i, a);
}
functiMon $e(t, e, n, r, c, i, a) {
return qe((e & r) | (n & ~r), t, e, c, i, a);
}
function tn(t, e, n, r, c, i, a) {
return qe(e ^ n ^ r, t, e, c, i, a);
}
function en(t, e, n, r, c, i, a) {
return qe(n ^ (e | ~r), t, e, c, i, a);
}
function nn(t) {
var n = [];
for (var e = 0; e < 64; e += 4) {
n[e >> 2] =
t.charCodeAt(e) +
(t.charCodeAt(e + 1) << 8) +
(t.charCodeAt(e + M2) << 16) +
(t.charCodeAt(e + 3) << 24);
}
return n;
}
function cn(t) {
var e = '';
for (var n = 0; n < 4; n++) {
e += rn[(t >> (8 * n + 4)) & 15] + rn[(t >> (8 * n)) & 15];
}
return e;
}
function an(t) {
return (function (t) {
for (var e = 0; e < t.length; e++) {
t[e] = cn(t[e]);
}
return t.join('');
})(
(function (t)M {
var n = t.length;
var r = [1732584193, -271733879, -1732584194, 271733878];
for (var e = 64; e <= t.length; e += 64) {
Xe(r, nn(t.substring(e - 64, e)));
}
t = t.substring(e - 64);
var c = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];
for (e = 0; e < t.length; e++) {
c[e >> 2] |= t.charCodeAt(e) << (e % 4 << 3);
}
c[e >> 2] |= 128 << (e % 4 << 3);
M if (e > 55) {
Xe(r, c);
for (e = 0; e < 16; e++) {
c[e] = 0;
}
}
c[14] = 8 * n;
Xe(r, c);
return r;
})(t)
);
}
function on(t, e) {
return (t + e) & 4294967295;
}
function Vn(t) {
if ((Mn == An || Mn == gn || Mn == bn) && Hn <= 65536) {
return 3 & t;
} else {
return t;
}
M }
function Jn(t) {
return 16384 * Vn(t);
}
function Xn(t, e) {
var n = Hn;
if (Pn) {
n >>= 1;
}
var r = Jn(e);
if (r < n) {
sn(t, 16384, Qn, r);
En = e;
}
}
function qn(t) {
if (Pn) {
t >>= 1;
}
if (t <= 65536) {
var e = Mn;
Mn = hn;
console.log('Update: no bits and <= 64k: %d, %d', e, MMn);
} else if (t == 147456) {
e = Mn;
Mn = pn;
console.log('Update: size == 144k: %d, %d', e, Mn);
} else if (t == 131072) {
e = Mn;
Mn = gn;
console.log('Update: size == 128k: %d, %d', e, Mn);
} else {
e = Mn;
Mn = An;
console.log('Update: default for > 64k: %d, %d', e, Mn);
}
}
function Kn(t, e) {
if (e <= 128) {
console.log('CartMridge data is invalid.');
return false;
}
console.log('actual cartridge_size: %d', e);
rr();
var n = new Array();
for (var r = 0; r < 128; r++) {
n[r] = t[r];
}
if (
(function (t) {
var e = ['>', '>'];
for (var n = 0; n < 2; n++) {
if (e[n] != String.fromCharCode(t[n + 1])) {
return false;
}
}
return true;
M })(n)
) {
console.log("Prosystem doesn't support CC2 hacks.");
return false;
}
var c = 0;
if (
!(function (t) {
var e = ['A', 'T', 'A', 'R', 'I', '7', '8', '0', '0'];
for (var n = 0; n < 9; n++) {
if (e[n] != String.fromCharCode(t[n + 1])) {
return false;
}
}
return true;
})(n)
) {
console.lMog('Unable to find cartridge header');
Hn = e;
qn(e);
} else {
console.log('Found cartridge header');
(function (t) {
console.log('Reading cartridge header');
var e = new Array();
for (var n = 0; n < 32; n++) {
e[n] = t[n + 17];
}
wn = '';
for (var r = 0; r < e.length; r++) {
wn += String.fromCharCode(e[r]);
}
consolMe.log('Title: %s', wn);
Hn = t[49] << 24;
Hn |= t[50] << 16;
Hn |= t[51] << 8;
Hn |= t[52];
Mn =
t[53] == 0
? Hn > 131072
? pn
: t[54] == 2 || t[54] == 3
? An
: t[54] == 4 || t[54] == 5 || t[54] == 6 || t[54] == 7
? bn
: t[54] == 8 || t[54] == 9 || t[54] == 10 || t[54] == 11
M? gn
: hn
: t[53] == 2
? 5
: t[53] == 1
? 6
: hn;
Ln = !!(1 & t[54]);
In = !!(64 & t[54]);
Wn = !!(128 & t[53]);
if (In || Wn) {
Ln = true;
}
Cn[0] = t[55];
Cn[1] = t[56];
vn = 1 & t[57];
Sn = 0;
_n = !!(1 & t[63]) || (8 & t[53]) == 8;
Rn =M 3 & t[58];
if (!!(Pn = !!(32 & t[53])) && (Hn === 98304 || Hn === 106496)) {
zn = true;
}
Gn = !!(64 & t[53]);
var c = t[54];
var i = t[53];
if ((10 & c) == 10) {
var a = Mn;
Mn = pn;
console.log('Update: (0x10) bit1 & bit3: %d, %d', a, Mn);
} else if ((18 & c) == 18) {
var a = Mn;
Mn = gn;
console.log('UpdaMte: (0x12) bit1 & bit4: %d, %d', a, Mn);
} else if ((6 & c) == 6) {
a = Mn;
Mn = bn;
console.log('Update: (0x06) bit1 & bit2: %d, %d', a, Mn);
} else if ((2 & c) == 2) {
a = Mn;
Mn = An;
console.log('Update: (0x01) bit1: %d, %d', a, Mn);
} else if (Hn <= 65536 && (4 & c) == 4) {
a = Mn;
Mn = yn;
console.log('Update: (0x04) bit2: %d,M %d', a, Mn);
} else {
qn(Hn);
}
if (Pn) {
if (Mn === hn || Mn === yn) {
if (Mn === hn && Gn) {
a = Mn;
Mn = yn;
console.log(
'Normal cart with halt based ram, switching type: %d, %d',
a,
Mn
);
}
} else if (
(a = Mn) !== (Mn = Gn M? bn : (16 & c) == 16 ? gn : An)
) {
console.log(
'Bank switched banksets, switching type: %d, %d',
a,
Mn
);
}
}
console.log('Header info:');
if (1 & c) {
console.log(' bit0: pokey at $4000');
}
if (2 & c) {
console.log(' bit1: supergame bank switched');
}
if M(4 & c) {
console.log(' bit2: supergame ram at $4000');
}
if (8 & c) {
console.log(' bit3: rom at $4000');
}
if (16 & c) {
console.log(' bit4: bank 6 at $4000');
}
if (32 & c) {
console.log(' bit5: supergame banked ram');
}
if (64 & c) {
console.log(' bit6: pokey at $450');
}
if (128 & c) {
M console.log(' bit7: mirror ram at $4000');
}
if (1 & i) {
console.log(' bit8: activision banking');
}
if (2 & i) {
console.log(' bit9: absolute banking');
}
if (4 & i) {
console.log(' bit10: pokey at $440');
}
if (8 & i) {
console.log(' bit11: ym2151 at $460/$461');
}
if (16 & i) {
M console.log(' bit12: souper');
}
if (32 & i) {
console.log(' bit13: banksets');
}
if (64 & i) {
console.log(' bit14: halt banked ram');
}
if (128 & i) {
console.log(' bit15: pokey@800');
}
console.log(' xm: %s', _n ? '1' : '0');
console.log(' banksets: %s', Pn ? '1' : '0');
console.log(' pokey: %s', Ln ? '1' : '0');
M console.log(' pokey450: %s', In ? '1' : '0');
console.log(' pokey800: %s', Wn ? '1' : '0');
console.log(' pokey write only: %s', zn ? '1' : '0');
console.log(' halt banked ram: %s', Gn ? '1' : '0');
console.log(' tv type: %s', vn ? 'PAL' : 'NTSC');
console.log(
' Save device: [%d]%s%s',
t[58],
2 & t[58] ? ' SaveKey/AtariVox' : '',
1 & t[58] ? ' HSC' : ''
)M;
console.log(' controller1: %d', Cn[0]);
console.log(' controller2: %d', Cn[1]);
console.log(' cartridge_type 53: %d', t[53]);
console.log(' cartridge_type 54: %d', t[54]);
console.log(' cartridge_size: %d', Hn);
console.log('cartridge_type (from header): %d', Mn);
})(n);
c = 128;
if (Hn != (e -= 128)) {
console.log(
'!!! CARTRIDGE SIZE IN HEADER DOES NOT MATCH M!!! : %d %d',
Hn,
e
);
if (e % 1024 == 0) {
console.log(
'!!! ROM size is 1k multiple, using ROM size !!! : %d',
e
);
Hn = e;
} else {
console.log(
'!!! ROM size is not 1k multiple, using header size !!! : %d',
Hn
);
}
}
}
console.log('cartridge_tyMpe: %d', Mn);
console.log('cartridge_size: %d', Hn);
Qn = new Array(Hn);
var i = '';
for (r = 0; r < Hn; r++) {
Qn[r] = t[r + c];
i += String.fromCharCode(Qn[r]);
}
mn = an(i);
console.log('cartridge_digest: %s', mn);
if (mn === '91041aadd1700a7a4076f4005f2c362f') {
console.log('Patching diagnostic cartridge...');
var a = [223, 230];
for (let t = 0; t < a.length; t++) {
M Qn[26348 - c + t] = a[t];
}
}
return true;
}
function $n() {
Yn = true;
var t = Hn;
switch ((Pn && (t >>= 1), Mn)) {
case hn:
sn(65536 - t, t, Qn, 0);
break;
case yn:
sn(65536 - t, t, Qn, 0);
fn(16384, 16384);
break;
case An:
if ((e = t - 16384) < t) {
sn(49152, 16384, Qn, e);
er(0)M;
}
break;
case pn:
if ((e = t - 16384) < t) {
sn(49152, 16384, Qn, e);
sn(16384, 16384, Qn, Jn(0));
er(0);
}
break;
case bn:
if ((e = t - 16384) < t) {
sn(49152, 16384, Qn, e);
fn(16384, 16384);
er(0);
}
break;
case gn:
var e;
if ((e = t - 16384) M< t && Jn(6) < t) {
sn(49152, 16384, Qn, e);
sn(16384, 16384, Qn, Jn(6));
er(0);
}
break;
case 5:
sn(16384, 16384, Qn, 0);
sn(32768, 32768, Qn, Jn(2));
break;
case 6:
if (122880 < t) {
sn(40960, 16384, Qn, 0);
sn(16384, 8192, Qn, 106496);
sn(24576, 8192, Qn, 98304);
sn(32768, 8192, Qn, 122880);
M sn(57344, 8192, Qn, 114688);
}
}
}
function tr(t, e) {
var n = Hn;
switch ((Pn && (n >>= 1), Mn)) {
case An:
case bn:
case gn:
var r = n / 16384;
if (t >= 32768 && t < 49152 && Vn(e) < r) {
er(e);
}
break;
case pn:
r = n / 16384;
if (t >= 32768 && t < 49152 && Vn(e) < r) {
er(e + 1);M
}
break;
case 5:
if (t == 32768 && (e == 1 || e == 2)) {
er(e - 1);
}
break;
case 6:
if (t >= 65408) {
er(7 & t);
}
}
}
function er(t) {
switch (Mn) {
case An:
case bn:
case gn:
case pn:
Xn(32768, t);
break;
case 5:
Xn(16384, tM);
break;
case 6:
Xn(40960, t);
}
}
function nr() {
return Qn != null;
}
function rr() {
Yn = false;
Zn = false;
if (Qn != null) {
Hn = 0;
Qn = null;
wn = '';
Mn = 0;
vn = 0;
Ln = 0;
In = 0;
Wn = 0;
_n = false;
Cn = [1, 1];
En = 0;
Sn = 0;
xnM = 0;
Dn = 0;
Tn = 28;
Nn = false;
kn = 1;
Bn = 0;
jn = false;
Rn = false;
Pn = false;
zn = false;
Gn = false;
}
}
function cr(t) {
if (!Rn || vn != ln) {
console.log(
Rn
? 'Not loading high score cartridge, PAL region.'
: 'High score cartridge is disabled (via db and cart header).'
);
M t(false);
return;
}
var e = dn.getRom();
if (e == null) {
console.log('Unable to locate high score cartridge.');
t(false);
return;
}
console.log('Found high score cartridge.');
if (an(e) != 'c8a73288ab97226c52602204ab894286') {
console.log('High score cartridge hash is invalid.');
t(false);
return;
}
dn.loadSram(function (n) {
if (n) {
M for (var r = 0; r < n.length && r < 2048; r++) {
un(4096 + r, n[r]);
}
for (r = 0; r < e.length; r++) {
un(12288 + r, e.charCodeAt(r));
}
Zn = true;
}
console.log('High score cart loaded: ' + Zn);
t(Zn);
});
}
function ir() {
return vn;
}
function ar() {
return Ln;
}
function or() {
return In;
M }
function sr() {
return Wn;
}
function fr() {
return zn;
}
function ur() {
return _n;
}
function dr() {
if (Un == 2) {
return _n;
} else {
return Un;
}
}
function lr() {
return Pn;
}
function hr() {
return Gn;
}
function Ar() {
return jn;
}
function pr() {
return Nn;M
}
function br() {
return Cn[0] == 2;
}
function gr() {
return Sn;
}
function yr() {
return Tn;
}
function wr() {
return kn;
}
function mr() {
return Bn;
}
function Mr() {
return mn;
}
function vr(t) {
wn = t;
}
function Lr() {
return wn;
}
function Ir() {
return Hn;
}
Mfunction Cr() {
return Mn;
}
function Er(t) {
Mn = t;
}
function Sr(t) {
Ln = t;
}
function xr(t) {
In = t;
}
function Dr(t) {
Cn[0] = t;
}
function Nr(t) {
Cn[1] = t;
}
function _r() {
return Cn[0];
}
function Tr() {
return Cn[1];
}
function kr(t) {
vn = t;
}
function Br(t) {
M Sn = t;
}
function jr(t) {
_n = t;
}
function Rr(t) {
Tn = t;
}
function Pr(t) {
xn = t;
}
function Or(t) {
Dn = t;
}
function Fr() {
return xn;
}
function Gr() {
return Dn;
}
function zr(t) {
Nn = t;
}
function Wr(t) {
kn = t;
}
function Ur(t) {
Bn = t;
}
function ZrM(t) {
jn = t;
}
function Qr(t) {
Rn = t;
}
function Hr() {
return Rn;
}
function Yr(t) {
Un = t;
}
function Vr() {
return Un;
}
function Jr() {
return 2;
}
function Xr() {
return Yn;
}
function qr(t) {
On = t;
}
function Kr() {
return On;
}
function $r(t) {
Fn = t;
}
M function tc() {
return Fn;
}
function ec() {
return En;
}
function _c(t) {
cc((uc + 256) & 65535, t);
uc = (uc - 1) & 255;
}
function Tc() {
return rc(((uc = (uc + 1) & 255) + 256) & 65535);
}
function kc(t) {
if (t) {
fc = fc & ~gc & 255;
} else {
fc |= gc;
}
if (128 & t) {
fc |= Lc;
} else {
fc = Mfc & ~Lc & 255;
}
}
function jc(t) {
if (t) {
Bc.copy(dc);
dc.wPlusEqual(hc.getBLSigned());
if (Bc.getBH() == dc.getBH()) {
Ac++;
} else {
Ac += 2;
}
}
}
function Oc(t) {
Rc.copy(hc);
Pc.copy(hc);
Rc.wMinusEqual(t);
if (Rc.getBH() != Pc.getBH()) {
Ac++;
}
}
function Fc() {
hc.setBLM(rc(dc.wPlusPlus()));
hc.setBH(rc(dc.wPlusPlus()));
}
function Gc() {
hc.setBL(rc(dc.wPlusPlus()));
hc.setBH(rc(dc.wPlusPlus()));
hc.wPlusEqual(oc);
}
function zc() {
hc.setBL(rc(dc.wPlusPlus()));
hc.setBH(rc(dc.wPlusPlus()));
hc.wPlusEqual(sc);
}
function Wc() {
hc.setW(dc.wPlusPlus());
}
function Uc() {
hc.setBL(rc(dc.wPlusPlus()) + oc);
hc.setBH(rc(hcM.getBL() + 1));
hc.setBL(rc(hc.getBL()));
}
function Zc() {
hc.setBL(rc(dc.wPlusPlus()));
hc.setBH(rc(hc.getBL() + 1));
hc.setBL(rc(hc.getBL()));
hc.wPlusEqual(sc);
}
function Qc() {
hc.setW(rc(dc.wPlusPlus()));
}
function Hc() {
hc.setW(rc(dc.wPlusPlus()));
}
function Yc() {
hc.setW(rc(dc.wPlusPlus()));
hc.blPlusEqual(oc);
}
function Vc() {
M hc.setW(rc(dc.wPlusPlus()));
hc.blPlusEqual(sc);
}
function Jc() {
var t = rc(hc.getW());
if (fc & wc) {
var e = ((15 & ac) + (15 & t) + (fc & bc)) & 65535;
var n = ((ac >>> 4) + (t >>> 4)) & 65535;
if (e > 9) {
e = (e + 6) & 65535;
n = (n + 1) & 65535;
}
var r = new nc();
r.setW(ac + t + (fc & bc));
if (r.getBL()) {
fc = fc & ~gc & 255;
M } else {
fc |= gc;
}
if ((8 & n) == 0) {
fc = fc & ~Lc & 255;
} else {
fc |= Lc;
}
if (~(ac ^ t) & ((n << 4) ^ ac) & 128) {
fc |= vc;
} else {
fc = fc & ~vc & 255;
}
if (n > 9) {
n = (n + 6) & 65535;
}
if (n > 15) {
fc |= bc;
} else {
fc = fc & ~bc & 255;
M}
ac = 255 & ((n << 4) | (15 & e));
} else {
var c = new nc();
c.setW(ac + t + (fc & bc));
if (c.getBH()) {
fc |= bc;
} else {
fc = fc & ~bc & 255;
}
if (~(ac ^ t) & (ac ^ c.getBL()) & 128) {
fc |= vc;
} else {
fc = fc & ~vc & 255;
}
kc(c.getBL());
ac = c.getBL();
}
}
function Xc() {
kMc((ac &= rc(hc.getW())));
}
function qc() {
var t = rc(hc.getW());
if (128 & t) {
fc |= bc;
} else {
fc = fc & ~bc & 255;
}
t = (t << 1) & 255;
cc(hc.getW(), t);
kc(t);
}
function Kc() {
var t = rc(hc.getW());
if (t & ac) {
fc = fc & ~gc & 255;
} else {
fc |= gc;
}
fc = (fc = fc & ~vc & 255) & ~Lc & 255;
fc |M= 64 & t;
fc |= 128 & t;
}
function $c() {
var t = rc(hc.getW());
if (ac >= t) {
fc |= bc;
} else {
fc = fc & ~bc & 255;
}
kc((ac - t) & 255);
}
function ti() {
var t = rc(hc.getW());
if (oc >= t) {
fc |= bc;
} else {
fc = fc & ~bc & 255;
}
kc((oc - t) & 255);
}
function ei() {
var t = rc(hc.getW());
M if (sc >= t) {
fc |= bc;
} else {
fc = fc & ~bc & 255;
}
kc((sc - t) & 255);
}
function ni() {
var t = rc(hc.getW());
t = (t - 1) & 255;
cc(hc.getW(), t);
kc(t);
}
function ri() {
kc((ac ^= rc(hc.getW())));
}
function ci() {
var t = rc(hc.getW());
t = (t + 1) & 255;
cc(hc.getW(), t);
kc(t);
}
function iMi() {
dc.copy(hc);
}
function ai() {
kc((ac = rc(hc.getW())));
}
function oi() {
kc((oc = rc(hc.getW())));
}
function si() {
kc((sc = rc(hc.getW())));
}
function fi() {
fc = fc & ~bc & 255;
fc |= 1 & ac;
kc((ac = (ac >>> 1) & 255));
}
function ui() {
var t = rc(hc.getW());
fc = fc & ~bc & 255;
fc |= 1 & t;
t = (t >>> 1) & 255;
M cc(hc.getW(), t);
kc(t);
}
function di() {
kc((ac |= rc(hc.getW())));
}
function li() {
_c(ac);
}
function hi() {
_c((fc |= mc));
}
function Ai() {
kc((ac = Tc()));
}
function pi() {
fc = Tc();
}
function bi() {
var t = rc(hc.getW());
var e = fc;
if (128 & t) {
fc |= bc;
} else {
fc = fc & M~bc & 255;
}
t = (t << 1) & 255;
t |= 1 & e;
cc(hc.getW(), t);
kc(t);
}
function gi() {
var t = rc(hc.getW());
var e = fc;
fc = fc & ~bc & 255;
fc |= 1 & t;
t = (t >>> 1) & 255;
if (1 & e) {
t |= 128;
}
cc(hc.getW(), t);
kc(t);
}
function yi() {
var t = rc(hc.getW());
if (fc & wc) {
var e = new nc();
M e.setW(ac - t - !(fc & bc));
var n = ((15 & ac) - (15 & t) - !(fc & bc)) & 65535;
var r = ((ac >>> 4) - (t >>> 4)) & 65535;
if (n > 9) {
n = (n - 6) & 65535;
r = (r - 1) & 65535;
}
if (r > 9) {
r = (r - 6) & 65535;
}
(c = new nc()).setW(ac - t - !(fc & bc));
if (c.getBH()) {
fc = fc & ~bc & 255;
} else {
fc |= bc;
}
M if ((ac ^ t) & (ac ^ c.getBL()) & 128) {
fc |= vc;
} else {
fc = fc & ~vc & 255;
}
kc(c.getBL());
if (e.getBL()) {
fc = fc & ~gc & 255;
} else {
fc |= gc;
}
ac = 255 & ((r << 4) | (15 & n));
} else {
var c;
(c = new nc()).setW(ac - t - !(fc & bc));
if (c.getBH()) {
fc = fc & ~bc & 255;
} else {
M fc |= bc;
}
if ((ac ^ t) & (ac ^ c.getBL()) & 128) {
fc |= vc;
} else {
fc = fc & ~vc & 255;
}
kc(c.getBL());
ac = c.getBL();
}
}
function wi() {
cc(hc.getW(), ac);
if (hc.getW() < 0) {
console.error('sally_STA: %d, %d', hc.getW(), ac);
HALT = true;
}
}
function mi() {
cc(hc.getW(), oc);
}
M function Mi() {
cc(hc.getW(), sc);
}
function vi() {
kc((oc = ac));
}
function Ii() {
return dc;
}
function Ci() {
return pc;
}
function Ei(t, e, n, r) {
this.Update = function (t, e, n, r) {
this.left = t;
this.top = e;
this.right = n;
this.bottom = r;
this.length = this.right - this.left + 1;
this.height = this.bottom - this.Mtop + 1;
this.area = this.length * this.height;
};
this.Copy = function (t) {
this.Update(t.left, t.top, t.right, t.bottom);
};
this.GetArea = function () {
return this.area;
};
this.GetLength = function () {
return this.length;
};
this.GetHeight = function () {
return this.height;
};
this.Update(t, e, n, r);
}
function Ji(t) {
if (MGi < 160) {
if (t) {
Bi[Gi] = zi | t;
} else if (4 & Si[60]) {
Bi[Gi] = 0;
}
}
Gi = (Gi + 1) & 255;
}
function Xi(t, e) {
var n = 4 & Si[60];
var r = (16 & zi) | t | e;
if ((3 & r || n) && Gi < 160) {
Bi[Gi] = r;
}
Gi = (Gi + 1) & 255;
}
function qi() {
if (Fi.getW() > 32767) {
if (Zi && 4096 & Fi.getW()) {
M return true;
}
if (Ui && 2048 & Fi.getW()) {
return true;
}
}
return false;
}
function Ki(t) {
if (3 & (t &= 255)) {
return Si[32 + t];
} else {
return Si[32];
}
}
function $i() {
var t = Hi ? Si[Fi.getW()] : xi(Fi.getW());
if (Qi) {
if (qi()) {
Gi = (Gi + 2) & 255;
} else {
Xi(12 & t, (1M92 & t) >>> 6);
Xi((48 & t) >>> 4, (3 & t) << 2);
}
} else if (qi()) {
Gi = (Gi + 4) & 255;
} else {
Ji((192 & t) >>> 6);
Ji((48 & t) >>> 4);
Ji((12 & t) >>> 2);
Ji(3 & t);
}
Fi.wPlusPlus();
}
function ta(t, e) {
for (var n = 0; n < 8; n++) {
t[e + n] = 15 & t[e + n];
}
}
function na() {
if (!_i) {
_i = js_Mget_blit_addr();
}
for (var t = 0; t < 77440; t++) {
_i[t] = 0;
}
for (t = 0; t < 160; t++) {
Ti[0][t] = 0;
Ti[1][t] = 0;
}
ji = 0;
Ri = false;
Pi.setW(0);
Oi.setW(0);
Fi.setW(0);
Gi = 0;
zi = 0;
Wi = 0;
Ui = 0;
Zi = 0;
Qi = 0;
Yi = false;
}
function ra() {
for (var t = 0; t < 77440; t++M) {
_i[t] = 0;
}
}
function ia(t) {
for (var e = 0; e < 768; e++) {
ca[e] = t[e];
}
}
function aa(t) {
var e = atob(t.split(',')[1]);
var n = new Array();
for (var r = 0; r < e.length; r++) {
n.push(e.charCodeAt(r));
}
return n;
}
function va(t) {
console.log('Set sample rate: %d', t);
g = 31440;
console.log('set pokey samplMe rate: %d', g);
(function (t) {
console.log('Set YM sample rate: ' + t);
ct.SetRate(3579545, t);
})(t);
ga = t;
}
function Da(t, e, n) {
for (var r = 0; r < n; r++) {
Ea[Sa++] = e ? (t[r] / 255 + e[r] / 128) / 2 : t[r] / 255;
if (Sa == 16384) {
Sa = 0;
}
}
}
function Na() {
Aa = Da;
if (Ia && (window.AudioContext || window.webkitAudioContextM)) {
Ia.close();
Ia = null;
Ca = null;
}
if (!Ia && (window.AudioContext || window.webkitAudioContext)) {
console.log('init audio');
var t = La;
if (
(Ia = window.AudioContext
? new window.AudioContext({ sampleRate: t })
: new window.webkitAudioContext()).sampleRate
) {
t = Ia.sampleRate;
}
va(t);
(Ca = Ia.createScriptMProcessor(2048, 0, 1)).onaudioprocess =
function (t) {
var e = t.outputBuffer.getChannelData(0);
var n = 0;
for (var r = e.length; xa != Sa && n < r; ) {
e[n++] = Ea[xa++];
if (xa == 16384) {
xa = 0;
}
}
while (n < r) {
e[n++] = 0;
}
};
Ca.connect(Ia.destination);
var e = functioMn () {
if (Ia.state !== 'running') {
Ia.resume();
}
};
var n = document.documentElement;
n.addEventListener('keydown', e);
n.addEventListener('click', e);
n.addEventListener('drop', e);
n.addEventListener('dragdrop', e);
window.addEventListener('gamepadconnected', e);
}
}
function _a(t) {
La = t;
Na();
}
function ro() {
M if (Ya == Qa || (Ya == Ha && ir() == Qa)) {
Di.Copy(Xa);
Ni.Copy(qa);
ia(eo[no]);
Ho(50);
Vo(313);
_a(31300);
} else {
Di.Copy(Va);
Ni.Copy(Ja);
ia(to[no]);
Ho(60);
Vo(263);
_a(31560);
}
}
function co() {
return to[no];
}
function io() {
return eo[no];
}
function ao() {
returMn no;
}
function oo(t) {
no = t;
}
function so() {
return 3;
}
function jo(t) {
Bo = t;
if (nr()) {
_o = 1;
Eo = false;
xo = 0;
ac = 0;
oc = 0;
sc = 0;
fc = Mc;
uc = 0;
dc.setW(0);
Li = 0;
ro();
be();
Y();
Ct();
Ue();
ra();
na()M;
Xt(0);
qt(0);
zt = false;
Wt = 662;
Ut = 0;
Zt = 0;
Yt = false;
Vt = 0;
Jt = 0;
$n();
if (t) {
cr(function (e) {
Pt('onHighScoreCartLoaded', e);
fc = yc | Mc | gc;
dc.setBL(ic[Cc]);
dc.setBH(ic[Ic]);
No = 24;
Co = true;
t();
});
}
M }
}
function Ro() {
if (_o >= of && _o <= of + 3 && No >= (0 | sf) - 1) {
mo[12] &= 127;
} else {
mo[12] |= 128;
}
}
function zo(t) {
if (Co) {
Eo = t;
}
}
function Wo() {
Co = false;
Eo = false;
rr();
na();
ra();
Ue();
(function () {
Ae = 0;
for (var t = 0; t < 2; t++) {
M ie[t] = 0;
ae[t] = 0;
oe[t] = 0;
se[t] = 0;
fe[t] = 0;
ue[t] = 0;
de[t] = 0;
le[t] = 0;
he[t] = 0;
}
be(true);
})();
be(true);
Y();
et(true);
}
function Uo() {
return Co;
}
function Zo() {
return Eo;
}
function Qo() {
return So;
}
function Ho(t) {
M So = t;
(function (t) {
pa = t;
})(t);
}
function Yo() {
return xo;
}
function Vo(t) {
Do = t;
(function (t) {
ba = t;
})(t);
}
function Jo() {
return No;
}
function Xo() {
const t = new Array(172036);
console.log('Saving game state.');
let e;
let n = 0;
for (e = 0; e < 16; e++) {
t[n + e]M = 'PRO-SYSTEM STATE'.charCodeAt(e);
}
n += 16;
t[n++] = 1;
for (e = 0; e < 4; e++) {
t[n + e] = 0;
}
n += 4;
for (e = 0; e < 32; e++) {
t[n + e] = Mr().charCodeAt(e);
}
n += 32;
t[n++] = ac;
t[n++] = oc;
t[n++] = sc;
t[n++] = fc;
t[n++] = uc;
t[n++] = Ii().getBL();
t[n++] = Ii().getBH();
t[n++] = ec();
for (e = 0;M e < 16384; e++) {
t[n + e] = Ne[e];
}
n += 16384;
if (Cr() == bn) {
for (e = 0; e < 16384; e++) {
t[n + e] = Ne[16384 + e];
}
n += 16384;
}
if (hr()) {
for (e = 0; e < 16384; e++) {
t[n + e] = Te[16384 + e];
}
n += 16384;
}
t[n++] = Qt;
t[n++] = Ht;
t[n++] = zt ? 1 : 0;
t[n++] = 255 & (Kt() >>> 8);
M t[n++] = 255 & Kt();
t[n++] = Ut;
t[n++] = 255 & ($t() >>> 8);
t[n++] = 255 & $t();
if (ur()) {
t[n++] = Nt() ? 1 : 0;
t[n++] = Dt() ? 1 : 0;
t[n++] = _t() ? 1 : 0;
t[n++] = At ? 1 : 0;
t[n++] = pt ? 1 : 0;
t[n++] = bt ? 1 : 0;
t[n++] = gt ? 1 : 0;
t[n++] = yt ? 1 : 0;
t[n++] = wt;
t[n++] = mt;
t[n++] = Mt;
t[n++] = vt;
M t[n++] = Lt;
t[n++] = It;
for (e = 0; e < 131072; e++) {
t[n + e] = ut[e];
}
n += 131072;
}
let r = J;
for (let e = 0; e < r.length; e++) {
t[n++] = r[e];
}
r = at;
for (let e = 0; e < r.length; e++) {
t[n++] = r[e];
}
t.length = n;
return t;
}
function qo(t) {
const e = t.length;
console.log('Loading gameM state.');
let n = 0;
if (hr()) {
n = 16384;
}
if (
e != 16741 + n &&
e != 33125 + n &&
e != 147827 + n &&
e != 164211 + n
) {
console.log('Save buffer has an invalid size.');
return false;
}
var r = 0;
for (let e = 0; e < 16; e++) {
if (String.fromCharCode(t[r + e]) != 'PRO-SYSTEM STATE'[e]) {
console.log('Buffer is not a validM ProSystem save state.');
return false;
}
}
r += 16;
t[r++];
for (let t = 0; t < 4; t++) {}
r += 4;
jo(null);
let c = '';
for (let e = 0; e < 32; e++) {
c += String.fromCharCode(t[r + e]);
}
r += 32;
if (Mr() != c) {
console.log(
'Load state digest [' +
c +
'] does not match loaded cartridge digest [' +
M cartridge_digest +
'].'
);
return false;
}
var i = t[r++];
ac = i;
var a = t[r++];
oc = a;
var o = t[r++];
sc = o;
var s = t[r++];
fc = s;
var f = t[r++];
uc = f;
Ii().setBL(t[r++]);
Ii().setBH(t[r++]);
er(t[r++]);
for (let e = 0; e < 16384; e++) {
Ne[e] = t[r + e];
}
r += 16384;
Mif (Cr() == bn) {
for (let e = 0; e < 16384; e++) {
Ne[16384 + e] = t[r + e];
}
r += 16384;
}
if (hr()) {
for (let e = 0; e < 16384; e++) {
Te[16384 + e] = t[r + e];
}
r += 16384;
}
Xt(t[r++]);
qt(t[r++]);
(function (t) {
zt = t;
})(t[r++] === 1);
let u = t[r++];
let d = t[r++];
var h;
(function (M) {
var t = ((u << 8) & 255) | (255 & d);
Wt = t;
})();
var l = t[r++];
Ut = l;
u = t[r++];
d = t[r++];
Zt = ((u << 8) & 255) | (255 & d);
if (ur()) {
h = t[r++] === 1;
dt = h;
(function (t) {
lt = t;
})(t[r++] === 1);
(function (t) {
ht = t;
})(t[r++] === 1);
(function (t) {
At = t;
})(Mt[r++] === 1);
(function (t) {
pt = t;
})(t[r++] === 1);
(function (t) {
bt = t;
})(t[r++] === 1);
(function (t) {
gt = t;
})(t[r++] === 1);
Tt(t[r++] === 1);
(function (t) {
wt = t;
})(t[r++]);
(function (t) {
mt = t;
})(t[r++]);
(function (t) {
Mt = t;
})(t[r++]);
(Mfunction (t) {
vt = t;
})(t[r++]);
(function (t) {
Lt = t;
})(t[r++]);
(function (t) {
It = t;
})(t[r++]);
for (let e = 0; e < 131072; e++) {
ut[e] = t[r++];
}
}
for (let e = 0; e < 32; e++) {
X(16384 + e, t[r++]);
}
for (let e = 0; e < 256; e++) {
ot(e, t[r++]);
}
console.log(t.length + ', ' + Mr);
return true;
}
function Cs() {
var t = null;
t = Is == Qa ? io() : co();
for (var e = 0; e < 256; e++) {
var n = t[3 * e + 0];
var r = t[3 * e + 1];
var c = t[3 * e + 2];
hs[e] = [n, r, c];
}
}
function Es() {
var t = Is == Qa ? cs : ns;
var e = ((is - t) / 2) | 0;
var n = 0;
var r = 0;
var c = 0;
var i = 0;
var a M= 0;
var o = $o;
var s = os;
var f = (Is == Qa ? rs : es) * ts;
for (a = 0; a < t; a++) {
c = f + a * ts;
n = 0;
r = 0 + (((a + e) * ts) << 2);
for (i = 0; i < ts; i++) {
var u = s[c + n];
var d = hs[u];
o[r++] = d[0];
o[r++] = d[1];
o[r++] = d[2];
r++;
n++;
}
}
fs.putImageData(Ko, 0, 0);
}
M function Ss(t) {
_i = os;
if (!ss) {
ss = t.canvas;
us = t.controlsDiv;
ds = t.mainContainer;
ls = t.innerContainer;
Ls = t.debug;
fs = ss.getContext('2d');
Ko = fs.getImageData(0, 0, ts, is);
$o = Ko.data;
}
xs();
Rs();
As = getComputedStyle(ss)['image-rendering'];
ks(ps);
}
function xs() {
for (var t = 3; t < $o.lengthM; t += 4) {
$o[t - 3] = 0;
$o[t - 2] = 0;
$o[t - 1] = 0;
$o[t] = 255;
}
fs.putImageData(Ko, 0, 0);
}
function Ds() {
if (as) {
(function t() {
if (as) {
(function () {
var t = fs;
for (var e = 3; e < $o.length; e += 4) {
var n = Math.random() < 0.5 ? 0 : 255;
$o[e - 3] = n;
$o[e - 2] = nM;
$o[e - 1] = n;
$o[e] = 37;
}
t.putImageData(Ko, 0, 0);
})();
requestAnimationFrame(t);
} else {
xs();
}
})();
}
}
function Ns() {
if (ss) {
var t = document.fullscreenElement;
if (t) {
var e = window.innerHeight - us.offsetHeight;
var n = window.innerWidth;
M ls.style.height = e + 'px';
var r = e;
var c = r * ms;
if (c > n) {
r = (c = n) * Ms;
}
var i = 0;
var a = (r / is) | 0;
if (vs == 1) {
i = a;
}
if (a < 2) {
i = 2;
}
if (i > 0) {
c = (r = is * i) * ms;
}
ss.style.width = c + 'px';
ss.style.height = r + M'px';
ss.style.paddingTop = (((e - r) / 2) | 0) + 'px';
} else {
ls.style.removeProperty('height');
ss.style.removeProperty('padding-top');
ss.style.width = ys + 'px';
ss.style.height = ws + 'px';
}
if (Ls) {
console.log(
'Canvas size: ' + ss.style.width + ' by ' + ss.style.height
);
}
Pt('fullscreen', !!t);
}
}
functiMon _s() {
return ss;
}
function Ts() {
as = false;
}
function ks(t) {
ps = t;
ss.style.imageRendering = t ? 'initial' : As;
}
function Bs() {
return ps;
}
function js() {
return false;
}
function Rs() {
ms = (ys = (ts * bs * gs) | 0) / (ws = is * bs);
Ms = ws / ys;
ds.style.width = ys + 'px';
Ns();
}
function Ps(t) {
M bs = t;
Rs();
}
function Os() {
return bs;
}
function Fs() {
return 2;
}
function Gs(t) {
gs = t;
Rs();
}
function zs() {
return gs;
}
function Ws() {
return 1;
}
function Us() {
return 0;
}
function Zs(t) {
vs = t;
Ns();
}
function Qs() {
return vs;
}
functionM Hs() {
var t = document.getElementById('js7800__fullscreen-container');
if (!Ys()) {
t.requestFullscreen();
Ns();
setTimeout(Ns, 1e3);
}
}
function Ys() {
return document.fullscreenElement;
}
function Vs() {
document.exitFullscreen();
}
function lf(t) {
if (ff != t) {
ff = t;
if ((rf = _s())) {
if (ff) {
rf.addEventListMener('mousemove', hf);
rf.addEventListener('mousedown', Af);
document.addEventListener('mouseup', pf);
rf.style.cursor = 'crosshair';
} else {
rf.removeEventListener('mousemove', hf);
rf.removeEventListener('mousedown', Af);
document.removeEventListener('mouseup', pf);
rf.style.cursor = 'auto';
}
}
}
}
function hf(t) {
var e = rf.MgetBoundingClientRect();
var n = ((t.clientX - e.left) / (rf.scrollWidth / cf)) | 0;
var r = ((t.clientY - e.top) / (rf.scrollHeight / af)) | 0;
n -= Fr();
r -= Gr();
var c = ir();
var i = c == Ks ? tf : $s;
var a = 318 / cf;
of = (r * ((c == Ks ? ef : nf) / af) + (Xs.top - qs.top + 1) + i) | 0;
if ((sf = (188 + n * a) | 0) > Js) {
of++;
sf -= Js;
}
}
function Af(t) {
M hf(t);
if (t.which == 1) {
uf = true;
df = 5;
}
t.preventDefault();
}
function pf(t) {
hf(t);
if (t.which == 1) {
uf = false;
}
t.preventDefault();
}
function Tf(t) {
vf = t;
Pt('onLeftDiffChanged', t);
}
function kf(t) {
Lf = t;
Pt('onRightDiffChanged', t);
}
function Bf(t, e) {
var n = t.keyCode;M
var r = gf.handleKeyCode(n, e) || yf.handleKeyCode(n, e);
if (!r) {
switch (n) {
case xf:
wf = e;
r = true;
break;
case Ef:
mf = e;
r = true;
break;
case Nf:
Mf = e;
r = true;
break;
case 116:
if (!e) {
Tf((vf ^= 1));
}
rM = true;
break;
case 117:
if (!e) {
kf((Lf ^= 1));
}
r = true;
break;
case 112:
r = true;
break;
case 120:
case 122:
if (e) {
Hs();
}
r = true;
}
}
if (r && t.preventDefault) {
t.preventDefault();
}
}
M function jf() {
return mf;
}
function Rf() {
return wf;
}
function Pf() {
return Mf;
}
function Of() {
return vf;
}
function Ff() {
return Lf;
}
function Gf() {
gf.reset();
yf.reset();
Tf(If);
kf(Cf);
}
function zf(t) {
Nf = t;
}
function Wf() {
return Nf;
}
function Uf(t) {
M Ef = t;
}
function Zf() {
return Ef;
}
function Qf(t) {
xf = t;
}
function Hf() {
return xf;
}
function Xf(t, e) {
for (var n in e) {
t[n] = e[n];
}
}
function qf(t) {
Xf(this, {
isAnalogDir: function (t, e, n) {
if (t && t.axes) {
var r = t.axes;
if (r.length > e) {
if (n) {
M return r[e] > 0.5;
} else {
return r[e] < -0.5;
}
}
}
return false;
},
isPressed: function (t, e) {
if (t && t.buttons) {
var n = t.buttons;
if (n.length > e) {
var r = n[e];
return r.pressed || r.value == 1;
}
}
return false;
},
isAnMalogLeft: function (t, e) {
return this.isAnalogDir(t, e << 1, false);
},
isAnalogRight: function (t, e) {
return this.isAnalogDir(t, e << 1, true);
},
isAnalogUp: function (t, e) {
return this.isAnalogDir(t, 1 + (e << 1), false);
},
isAnalogDown: function (t, e) {
return this.isAnalogDir(t, 1 + (e << 1), true);
},
isDigitalLeft: function (t) {
return Mthis.isPressed(t, 14);
},
isDigitalRight: function (t) {
return this.isPressed(t, 15);
},
isDigitalUp: function (t) {
return this.isPressed(t, 12);
},
isDigitalDown: function (t) {
return this.isPressed(t, 13);
},
isButton1: function (t) {
return this.isPressed(t, 0);
},
isButton2: function (t) {
return this.isPressed(t, 1);
M },
isReset: function (t) {
return this.isPressed(t, 9);
},
isSelect: function (t) {
return this.isPressed(t, 8);
},
isPause: function (t) {
return this.isPressed(t, 4) || this.isPressed(t, 5);
},
});
if (t) {
Xf(this, t);
}
}
function tu(t, e) {
var n = t;
var r = e;
return {
setPad: function (t)M {
n = t;
},
getPad: function () {
return n;
},
setMapping: function (t) {
r = t;
},
isLeft: function (t) {
return (
!!n &&
(r.isDigitalLeft(n) || (t !== void 0 && r.isAnalogLeft(n, t)))
);
},
isRight: function (t) {
return (
!!n &&
(r.isDigitalRight(n) || (t !== void 0 && r.MisAnalogRight(n, t)))
);
},
isUp: function (t) {
return (
!!n &&
(r.isDigitalUp(n) || (t !== void 0 && r.isAnalogUp(n, t)))
);
},
isDown: function (t) {
return (
!!n &&
(r.isDigitalDown(n) || (t !== void 0 && r.isAnalogDown(n, t)))
);
},
isAnalogLeft: function (t) {
return !!n && t !== void 0 && r.iMsAnalogLeft(n, t);
},
isAnalogRight: function (t) {
return !!n && t !== void 0 && r.isAnalogRight(n, t);
},
isAnalogUp: function (t) {
return !!n && t !== void 0 && r.isAnalogUp(n, t);
},
isAnalogDown: function (t) {
return !!n && t !== void 0 && r.isAnalogDown(n, t);
},
isButton1: function () {
return !!n && r.isButton1(n);
},
isButton2: funMction () {
return !!n && r.isButton2(n);
},
isReset: function () {
return !!n && r.isReset(n);
},
isSelect: function () {
return !!n && r.isSelect(n);
},
isPause: function () {
return !!n && r.isPause(n);
},
};
}
function nu() {
var t = navigator.getGamepads
? navigator.getGamepads()
: navigator.webkitGetGamepads
M ? navigator.webkitGetGamepads()
: [];
var e = 0;
for (var n = 0; e < 2 && n < t.length; n++) {
var r = t[n];
if (r) {
eu[e].setPad(r);
eu[e].setMapping(Kf);
if ((!r.mapping || r.mapping != 'standard') && Jf) {
eu[e].setMapping($f);
}
e++;
}
}
}
function ru(t) {
return eu[t];
}
function lu(t, e, n) {
M var r = t == 0 ? 0 : 6;
var c = Ar();
var i = pr();
var a = t ? ru(t) : n;
e[0 + r] =
(t ? ou.isRight() : au.isRight()) ||
a.isRight(0) ||
(i && t && n.isAnalogRight(1));
e[1 + r] =
(t ? ou.isLeft() : au.isLeft()) ||
a.isLeft(0) ||
(i && t && n.isAnalogLeft(1));
e[2 + r] =
(t ? ou.isDown() : au.isDown()) ||
a.isDown(0) ||
(i && t && n.isAnalogDowMn(1));
e[3 + r] =
(t ? ou.isUp() : au.isUp()) ||
a.isUp(0) ||
(i && t && n.isAnalogUp(1));
e[(c ? 5 : 4) + r] =
(t ? ou.isButton1() : au.isButton1()) || a.isButton1();
e[(c ? 4 : 5) + r] =
(t ? ou.isButton2() : au.isButton2()) || a.isButton2();
}
function hu(t) {
su = t;
}
function Au(t) {
fu = t;
}
function gu() {
this.el = null;
}
fMunction yu(t, e) {
gu.call(this);
this.title = e;
this.text = t;
}
function wu(t) {
gu.call(this);
this.title = t;
this.cb = null;
}
function Su() {
Iu.call(this);
this.children = [];
}
function xu() {
Su.call(this);
}
function Du() {
Su.call(this);
}
function Nu(t, e) {
Iu.call(this);
this.title = t;
this.imMageSrc = e;
this.img = null;
this.anchor = null;
}
function _u(t, e, n, r) {
Nu.call(this, t, e);
this.onTitle = n;
this.onImageSrc = r;
this.value = false;
}
function Hu(t) {
switch (t) {
case 0:
return Tu;
case 1:
return Ru;
case 2:
return zu;
default:
throw 'Unknown group: ' + t;
}
}
Mfunction Yu() {
return ku && ku.getValue();
}
function Vu() {}
function pd(t, e) {
if (sd) {
requestAnimationFrame(t);
} else if (e) {
t();
} else {
setTimeout(t, 0);
}
}
function bd(t, e) {
ad = t;
var n = 0;
var r = 0;
if (e) {
n = Of();
r = Ff();
}
Kn(t, t.length);
var c = Mr();
(functiMon (t) {
var e = pu[t];
if (e) {
console.log(e);
var n = e.t;
if (n !== void 0) {
vr(n);
}
var r = e.ty;
if (r !== void 0) {
Er(parseInt(r));
}
var c = e.p;
if (c !== void 0) {
Sr(c == 't');
}
var i = e.c1;
if (i !== void 0) {
Dr(parseInt(i));
}
M var a = e.c2;
if (a !== void 0) {
Nr(parseInt(a));
}
var o = e.r;
if (o !== void 0) {
kr(parseInt(o));
}
var s = e.xm;
if (s !== void 0) {
jr(s == 't');
}
var f = e.crossx;
if (f !== void 0) {
Pr(parseInt(f));
}
var u = e.crossy;
if (u !== void 0) {
M Or(parseInt(u));
}
var d = e.dualanalog;
if (d !== void 0) {
zr(d == 't');
}
var l = e.p4;
if (l !== void 0) {
var h = l == 't';
xr(h);
if (h) {
Sr(true);
}
}
var A = e.leftswitch;
if (A !== void 0) {
Wr(parseInt(A));
}
var p = e.rightswitch;
M if (p !== void 0) {
Ur(parseInt(p));
}
var b = e.sb;
if (b !== void 0) {
Zr(b == 't');
}
var g = e.hs;
if (g !== void 0) {
Qr(g == 't');
}
}
})(c);
if (e) {
Wr(n);
Ur(r);
}
console.log('Final values:');
console.log(' Title: %s', Lr());
console.log(' Size: %d', Ir());
M console.log(' Digest: %s', c);
console.log(' Type: %d', Cr());
console.log(' Pokey: %s', ar() ? 'true' : 'false');
console.log(' Pokey450: %s', or() ? 'true' : 'false');
console.log(' Controller 1: %d', _r());
console.log(' Controller 2: %d', Tr());
console.log(' Region: %s', ir() == 1 ? 'PAL' : 'NTSC');
console.log(' Flags: %d', gr());
console.log(
' XM: %s, mode: %s',
dr() ? 'true' : 'false',
M Vr() == 2 ? 'Automatic' : Vr() ? 'Enabled' : 'Disabled'
);
console.log(' Right switch: %d', mr());
console.log(' Left switch: %d', wr());
console.log(' Swap buttons: %s', Ar() ? 'true' : 'false');
console.log(' Dual analog: %s', pr() ? 'true' : 'false');
console.log(' Hblank: %d', yr());
console.log(' Crosshair X: %d', Fr());
console.log(' Crosshair Y: %d', Gr());
console.log(' High score cart enabled: %s',M Hr() ? 'true' : 'false');
Pt('onCartridgeLoaded', i);
(function () {
for (var t = 0; t < uu.length; t++) {
uu[t] = 0;
}
Gf();
du = true;
su = false;
fu = false;
})();
vd();
jo(function () {
Pt('onEmulationStarted', null);
id = false;
xd();
var t = Date.now();
var e = 0;
var n = Qo();
var r = 10 * nM;
var c = 1e3 / n;
var i = c * n * 2;
var a = Uo;
var o = Zo;
var s = 0;
var f = 0;
lf(br());
console.log('Frame ticks: ' + c);
console.log('Frequency: ' + n);
var u = function () {
if (a()) {
if (o()) {
setTimeout(function () {
Ad = true;
pd(u, true);
}, 100);
} else {
M qu();
Ju(ld);
if (ud == 0 || s >= ud) {
Ku();
}
if (++s >= dd) {
s = 0;
}
Xu();
d += c;
var l = Date.now();
if (d + i < l || Ad) {
Ad = false;
d = l;
e = 0;
t = l;
f = 0;
console.log('adjMusted next timestamp.');
}
var h = d - l;
f += h;
if (h > 0) {
setTimeout(function () {
pd(u, true);
}, h);
} else {
pd(u, false);
}
if (++e % r == 0) {
var A = Date.now() - t;
if (od) {
console.log(
'v:%s, vsync: %d, %stimer:M %d, wsync: %d, %d, stl: %d, mar: %d, cpu: %d, ext: %d',
(1e3 / (A / e)).toFixed(2),
sd ? 1 : 0,
sd ? '' : 'wait: ' + ((f / e) * n).toFixed(2) + ', ',
Jt % 1e3,
0,
Oo,
0,
Fo,
Go,
Po
);
}
t = Date.now();
M e = 0;
f = 0;
}
}
}
};
var d = Date.now() + c;
setTimeout(function () {
pd(u, true);
}, c);
});
}
function gd() {
if (ad) {
Md(ad, true);
}
}
function Md(t, e) {
if (!id) {
id = true;
if (Uo()) {
Wo();
}
if (!md) {
Rt(
M (md = new jt('onEmulationStarted', function () {
Ts();
if (!cd.classList.contains('js7800__logo--hide')) {
cd.classList.add('js7800__logo--hide');
cd.classList.remove('js7800__logo--show');
setTimeout(function () {
cd.style.display = 'none';
}, 1e3);
}
}))
);
}
setTimeout(function () {
M bd(t, e);
}, 200);
}
}
function vd(t, e) {
if (!hd) {
hd = true;
(function (t) {
var e = document.getElementById(t);
if (!e) {
throw 'Unable to find element with id: ' + t;
}
($u = document.createElement('div')).className = $u.id = 'js7800';
e.appendChild($u);
var n = document.createElement('div');
n.id = 'js7800__fullscreen-contaiMner';
$u.appendChild(n);
(td = document.createElement('div')).id = td.className =
'js7800__inner-container';
n.appendChild(td);
var r = document.createElement('div');
r.className = 'js7800_noselect';
td.appendChild(r);
(nd = document.createElement('canvas')).id = nd.className =
'js7800__screen';
nd.width = ts;
nd.height = is;
r.appendChild(nd);
M (cd = document.createElement('div')).id = cd.className =
'js7800__logo';
td.appendChild(cd);
var c = document.createElement('img');
c.src =
'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAZAAAACvCAMAAADkOngyAAAAA3NCSVQICAjb4U/gAAABDlBMVEX////////////////////////////////////////////////////////////////89/f69fb58/T47+/26uv05uby5eXx4eLv3d7t19jq09Tq0dPozs7mycvkxcbhv8HgvL3eubvdtbbbsLPYrK3Xp6rVpKbTn6LTnqDQm53PlpnNk5XLjpHJi43Ki43HhonGg4MXEfoLCen3AeHu/dXm9cXS8bXG7a263ZGi2YWS1XWGzWl2xVFmvU1iuUVSsS1CrSEypRUqoREimQESlO0CjOTyiNDmgMjieMTOdKi+bJyuaIymZISWYISaXHyOVGiCTFhqSEhiQDxOPDRKNCA+MBgqLAgiJAAOEAAB7AABKnaFbAAAAWnRSTlMAESIzRFVmd4iZqrvM3e7///////////////////////////////////////////////////////////////////////////////////////////////////+oxBYeAAAACXBIWXMAAC4YAAAuGAEqqicgAAAAIHRFWHRTb2Z0d2FyZQBNYWNyb21lZGlhIEZpcmV3b3JrcyBNWLuRKiQAABgeSURBVHic7V3ZWts61ybz7JVCKFBCmGe6W2iZCgVaoCU4nuKx938jv5xYsiaHwH66v/9A71mDvSzr1Rq1rM7MKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCMgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCj8P0C+WKk1mi0NodVs1CrF/BT3lCq1er1eq5YLuemfEt9RKxenvCN5ULlcYm4oVKZBabIQKQqlcnI3ulw+CXn6GeVsSVONUUAR3VqsNgGgs7y2tbO3t725ujQLoDUqhYkDH90zt7C42GkDtOqlSRcn79FAd8y+X1ycb8fyy1NyUoxvQ6hT46nCNGgKQrT65JeqtVgJ6L3EURaZSzKF1aYaI4c2FHIVNLPdw/P7Z9sNQoTAtfp3p3tL6IUy56yE3q97dHHfH5im/uv78WYHWtWJE1ysAywdnP94MtAdT7enOwug1aZQQzT3s/uXd3cXOwAV8mMFzh9vJ+PHz4U6NTlz+9+QkG1aiGwKN46viISbi4/rs9Cq8O9VhE9PySW/V1vZA29fPrwwRh73PzqtigYrJw9OGHqObZkDBNOyHS8MrbujJdCE0YxG1ID3H+M+HYeg6jm07wyDyn8976OLMwRXq0N67tdFThqM7/Cgwv20C1F7Ukjps6lHo+2H0tAo1/GsF+pE/GWG0XE+FbA/GQn73oJrxpFwLtn+j9UgkBEHo989WoMVpfxGu/iSX/NmeRIj+0hg5eH/ukJJs3riRN6aChmkHkX3ZE0YzM1puJ1bkW/TVw8i/WYVmUT62CsBhPwxs6ikmWgP3W6C9YOoqsBf5AyO+Iwg3oUx+/unxI+Zg2UuYkCocRr4xEhIG65DxyCacRT43D+i93Iv36UJICDkPk7+Hm5MIeXBfGCM/52EXVm6RLhgZF9ihd7EAdXYVF5qw/RwNDe4mwwr981mpQcg1YPUx8vinGGYQ3ixyL8shDyvhUB9fr3veEuTeQEgeViMHC/GHC5pULatwHElmwrAjaxsa9C1/jZDgEj772XSMR2PvQyvPjKZ9EXo8HcnF/Z5kfgst9JhAKt6KnB32ZYVZugt1fLkeXWHCX0VIDR5oIRcgi4xy0AttqSDdi47p+OCvEWMI6R+eRrU++SHfRC2hpaFKC94+yhRTD0AMfzS/PB7SvMx+DxJ9AM5uR1rJHWUbbWWi+gZBWj7ZEttXhhziW+D3MGqQdfaVf668R0n/2zAnqMQZaxbdtDetICZbMUKYeydCH0T8cIwWYvY+yH4PU6gJaWYzkkfGnLw73Epv1GkIK8IkWMgi3QfK85oItV5DxHHykYoG/50Osl69BoxlEN1hji7BoZa2jEdBiOmKsVl5rP0TZDMajQIw0pW80M1OGq4C+N/yWmJvXEFKBG8ZghhcSt57TdsIsSaNlswYkYPlrhEwJw0Q2tDoe9Zw+kY/R0Ldpz96E28l8xIycQF3+TvW5Z4e+1Hmew5M8PSGNjsms/eFTW+Lo4HOIh2kmoO7RvcEcmfr/NSFxtNWD/Gh2f0Qv+BxktYIVID6nBl+jwUtm0Yp2pX52ZkZbD5g41Aw2tISQ5z8hgYsHpdvpjxHOQ7TNkBXir2rCk4pwhtVId4MElEXXoy9kjP8dIYbp+L4jGnw9vI1VpIMICw5eF6IE+2yJD38yKAOjHDv0lkCXtBThm7YgRno4tRwWOzr/GOD07PT29wRrg3B+fYHz5Ot8Yj+ErZ4yQwgsFlCJcJISYw88bI2wd//R9HY/ecRbSt/qPCNGdsH9z8xw6ghZYflebEBhyYpBTSGyC1rHdF/mICX8QgrPxtN/57JXu41h0hSkAbWA9QnzRGMmswj1n3bx7MVunCAm60IqhoaT5d4j120A0Fv9bQnTPOpgHmD+yPZ4RI/oMuRr8Cl4yWKOLrXB1vOCrcPmiiUvkH8ny58aixa0Ay10ZzUCuWEAojqFt47A2PIdygWBcsW5+cLjgxXI+CFEERYi3kUxysQbvvmPPYri/sev5jwgxhtYHaJTLDVhxHP6PwTXUtcMpDNZIUvA4Wpx5pFJTBXKxQeiIb5aDnZAv6aD4UzA3LZoQ3vTlYV8In6JD4TIZIchmanCPF6Hp9TBR/w0hJi4VVWBXmAek5TBrTi0/2omnrQY/wikMVgw9OhVVpJS+OIF/J1ZnGEML4aloJLgUhwY0gRE4IitoXhlhJw6OExr9BiG5bvC1xH3DwWYenIffHmJB/oilnF13+G8nKwZpAbCbs1GcSIBtJ3ggLsu0FwdxMJKTW7uOXIYGsbQrJegYhKBMiIQHJX/4CIYb99MQbk/AsdVrCovJvAfrT+OcE0Sagd/k+rYIwPjOd6K6bDFK3ce3FJMn6lIS0Vn2JECFZzyJkptXzTDIH5b9FyCDYPvO5yQq/YutcFE0FCl+2JJmsYbmB50gSjdgoNJZc0YMYpuv7Q4niDJ/fcdkhVTexHx8Sw2GEl0LOMomQuG5iiELOeQOZSUhtrp94VPc+MXRTE5KxHxKIlT3HgH3eQ/vX2LBW4Y4LFE0UN10Ly90YBO791a00TnYWAT4LQYChe/7j1fenwBWDL+TC2FUb103w3z6SwgZJ1qcjpAI3OHIOD/ewEDFZzySkAniduw/t6usIubiXbQveXN8L2QNyoQuOw06wNVwY1xDzGlNijeE/wRwfgSI+wrseivY7kjh5gOMJYeBCqG3rwtNlG4cF2Xwyg0dJnVy1VNwnXZrG2kWR9OkIa87huYoYrHWx9xGR9GkJeqSHZe+qX/GaE5S0DfOVSBCO4hVYplyujUI8zZyaKmsTamx7egFYtoTi56wx57UHCRIuF+OhArVyuQ+fJ5xlx+rPs0tc28Dxb9jxhlyTrUxGS07bwy9vWLPzGRj064S7MJKTewcsCmeFX+ZBCWYoK9Hx+YpDoamP2mVulRni9AJoGi7eccdKjG4ALwWJ5/WTrqoL8C+8VbFOk0LCHi+N5KMKSxyuc6a0xL1eAE2zy4hjvC/4HTtanIqQIp3gUcVxyFqYSq9yFGYRoq4LwKQnJQBluhKkMtyDeHA14SxPqZ3v752bAemk9HHSgLdofJCWJAurwkytxIKPQ/SwQgtZl4pArkhQj/MSka1RBNzwBWMPlEctb4SZhAiHV1G5GnwFImdEacsl6FiHpQI3wIHFy/4qQuADFrV7DfWrX40dt8IwYThCGAetbDD20lkBbsnk1c3+TonMmcDfNb7P7xFR/0oRyCDF8j0SRBcMU4kcaCnbqNZuMdDnYMIVmfQEhzCddNkNtoNuYMIoRL1jMIKcAH7E8td5nsCv0LQqoSBUFrJR52DdacCZsyycitqL8I5cYG348RL1vy8k2RL+tXX5jx72mCXGv/5pNPZIsoM5JLTZ4zmKsWUpuJbA+bZ2cTQtVNkIuqFOEK/zO4ZqNnOSEl7R12doZPrNy/IQQpSMBPFUmKq7B4L7aPMHQM/OjbLFq42iGvZ6ZPRTtVeOTVwbCEJCT8J12VJfjGhxr2YJ7y6nHdJBkZcnmlGdgm5sbikvVsQkoooEmEhFfoTyk/tjnPJOsSQvKlOsyn7RGpTv0bQmQKQvZBkX+Bj1YkZhFkUt2ovwOtItLcL3xOYVuL6RuhlIF3IgMh+TP9ddoWCC7GclaoiUYqlHBshB/RVKTx64BP1rMJqc32SeR8gIQ0F20SBLPJukBIqaHB3P6ANBC4+myDXPtmQmIF4SfGDFbJUPI1mD98sDMqTubg51MFbi5sLS8hgcH90H9v0tv/pi8YPrewPDWpkQhEW6Rz1dq0VlxjvuMxahu8kTfzGmptsQlqrHvHi3WbsN29JmsjurPOEIOXYu3hK9yIH0T7xXP+CEImCGN4DFTZWAOa/yyoZMYaPKN0ezXoJrnkN8O6oWSlMs5foPHeoeFXbFoxguJ0awTwcYYnD0UYEVUjhk3WKEDZHKaTFgrGDKsBHIpVN1hlCmjMNOLDCMPVyevQj3fd/OyEyD2JEBynVTehdu0JSR2bIejrpaHHjYjldWRj+d4qQfPqi2Rg+zVJOu7UhpEfhbkpIGa6TCTKStUwFTFyynklIqhA4nWx1vTTqooUwhDRqiEnaKeq+s5BauLcTIvMgjjmHLXUF3p1P6lw0jGFkHIBWjAnh0xCfDlLRen7ZZA1/tWlC1vn6zCDcT6eoPqcT6787mot0K5ZP1jMJacyTeg9KmmIhtTT6YHfWGUIANiKbmhbd93vU276ZkBzK/UQFOcOiq9DtM88VYRhedNOBYvEvELMIhErKXEqKRfXLLWRytIMoscsl6FiE5jVQQbOs97nig0n9qOCwh7d9UOxjKxNxVOtJ+MyFVyYaE5XU1/Nd1LxBiXpPPIs1o0IUGfBdM1g1jsj692mRtCuEG5UMKcCJUOVq9NEdjkvUsQuJQA+cueKMxbSxid9ZZQtaoscUty8tMoeWthMg8SFz0G8suwaqQqA+GYRAgV8ZWToJhD8SswftBLRoUFr+sIc7zfLquc9quEGUF6dvRdZMvSfxfSQNhNlnPIqRKCrWxfRq7gGoaCDPJOk3IOnwkYzOs0Dt7xyeRbyNE5kEG0fZ4FHlYcDg+dCvsnx0cnj9zbkX3h0tpWQ5j+Ita75I0T4RlL6dhb556afz3YY8s2cYiqZsg812LUW2kXVpssp5FSNpvguwCEUIC9IAOS1hCvpCmOWd41YMWW6p5IyEyDzJw++3xpNThli+/28GXubha3znlGQmfYI8PUpnEsAL3wm6lxTfcMXlGOgG0xDoZO+mzsPXlzvz8fAdhlkw8u7MOeQUgeDtK6yRIRsofNEbOzzhJCktbh0zIA38X1RkKqsj0+vHNdgK1ISAMOoFnK50tNtHhN7raDrvBtEV06abwXtq/MZ+6HJOMmoxPKx1RmQCWi5vPTU7/ff0L49Zuk/0nkNZGQMnybKMRMIi+BkA3YJKp4h4LMvLD//hZCpAqCIpaxgBrcBxxbwRVOfRpwy/7RsAe7YlNEWlzMiRvuhntxy3d30cVFsX2NDhNq7bTvxXRGGCIQ0g0mWc8gpE4KxKwQgwihdtZZQmafE4U3gx1NaHJ9GyEyBYmLDkmw0eNXvOWt4BWfSzdlEujelTC97hNp/6xwXw2M3mTji7BRSbfHimEZ8t7YVrdWhJiYhfNMbS9mENLi34IHnaxzechB0hlhuOasMOVvIkSqIGa4PlZSSWmPzhLSTgsM+9dPYWM+3E7ePq99EObPctqSjsEvWEVabYOvvpvBFv74j6qbZIBJ1uWExHWTF76DoJJ1tnTSgIdkhcUdfGJT3RsIkSqIhxMqqlKHQbMqOZkY+mm87eb4XMnrX7IxuKbbI8KlHPYCghAbSQoi/s8430to6Ac7dZui6SRaYZF1OSEUs9/CgknW2dDJqgh0NEIU6XbGH6/WE5DSJgsSR93gAkh4u9yFdCdV3v7j1a1rXghPRg8cFaDWaMHslCa+/wLs+rwS6Z6IYstEAlPbx/BpUf2e9owvdxfxwf6XJupwQSaDBg0rWuWpvBc6TIFQPf/Kd+W8hRKogjtVJgkXRJiEbs0Rkpy2DBMHJpfBdsx4MPveWu4dpzz5BnD1Its11b3i2vry8dydW0OKiJ3afad0kE3SyLiUkp22/mBpZwyUcPfPld61j4+UU7QidE68mJAddUUGMiEQVtc4zT4iBoqYqZvNM3NU63BLNuu6EQ9sJXF2YXWQc601Ja69uhy66wxe3KW37fTo56XaYaZk0yAEHdLLOEJLaoDSXzRLC7AKyhBTTTkLXmmNn/Q2ESBXE8kkcVZ0VdrRRmLUK8eEj+RpsiGyi95dZANOyhARwMP7eI1eBR0MGp4udY4rERbIso9YmN4Xnc6RNYIpWsSwmhd5UFIVij0511YceQ9utnrF9/PSFSD2IEd8Riyhye7jrbAM0mwO5wKPYVHiGrOnXr9Mg4okx5yg9KEKygRw5YaC6SnY/h541NBsd4N81Kk3UpIc3lIRbifGJlbJ5gqtKddYGQ+AyJsQDDClaAPTvhtYRIFSS2hVhsbBTELwmH/vf9Xu/gJhB32U1/XdLbloW4AQsZx0b7edr2byO8IaslrpskPzsmjD8vwwAwuG2SDEKo1eA8g8YKaVtEyLaGe634Jodq6teDe8avv5qQnNYVduNQotF/l0rVxL320eEjgTMMAokNGj7PAhngixhao++himJHdxascIUEl6W044fO7UcowyX+W5qsywgpw7fE4hj8Fvwoj02eS33zIXSdaB2L+PV9tqz/SkKqIIlDB8wHGJLSyXg0UgM//sCpMW9n7vYyiLvQRq/ZgEfpUyTyL9MKXtpvMqCrX+O1RmkPSdZlhNSZfpMcJwQn4mmyLiMGklK4ntMKo/d7XEiJXEGu4SN2bh41oys//4hm2vSVt6gWvh4+Jhk/7kaHh2vNU4t1j+00YNBZwbJEm6zJCtDXSb+Is899cMf2MWhYhI7+eGC0UoL76aA0CuQcJrxntr8HVtAYoXvJfY61vCCV76cWOv4zXdRVOpogEDCvaSrU3n9kZEoPuW/ia3CQhhKoNsQ2RybDI9hdO1mWExO3PSb4Um1Siq68kBCmIJEk3ww1GceNTMqb6yHkQL/n+qMKW0+Yt4SsCyezup9S34GEKDtH6Sye+TI4mMSSnklCNPGRnXUJI+oW7kX6qRwk55nfWpa2kqV83AupL+lcSUpF5kFGmxlxWhCVnOkZ0z/uAl1EvFCNi9kHx7NIbg/PWS0/Ro3ugXqveGYiBVIq0ikCSdQkhVN1EdvhP+uEg3lmX9/bSfv2ALI7XESL3IHGmxn3fXYauNeGkpXS+ApQxkq8Itid0ng6So4PoMZag607WKj18nqNdN91vsiQeE0R/YJAk6yIhubQTmKMpZpqDihiRZlxMSu03s/m3i119HiDzESstYKSqw+OvFA8wMM7JWqAgIdiPJ94HU1bfA7uiUoTecoCOGEfXfszEl6ZeQHYFB/x0n6yIhxbT4I/uwHS0TUldJIuuMzxHofP3iTd3vOW1ZoiCjMyckw2qfBeGkM8zivqzbefqNarDlZc6vbkffgN9hq0DXzPTsyOM8dBgbT9VNiNdmkDby4J11kZBqVj8cmSWySZvsrGcdHEDydeTXe687OAC/vkxBqDIWjUIT1n6GkhAgmS3TjfQD7uDQGqzo8hN+jEEQHLMHNCZDWriXGzpDd6PLtsbMevqpiRlsyo6rpDOMcRu8SEizS+om/rrszdNPd5I2+KwvqGi/jqP51xAi9yAD/0fGabVVgO07L5J+UO6EYf/THNSFFT93GUqyecOJntalJ1qWNDh2JS2r8YGf3BGbcVd8lBRlHe4TDiwNJevJFUkO3toJ8A9nI0Lixuzkl6H4FXWMMkoNkiuiUSiHCEl+sHz24IA5y8VXJvMkuIgSLf5EQpCD4WhrRrvQ8qplRbRdWT397YeDaVlKltqz4jOtAv9qZhYZ4SE+xBZv3IdJkaoZjZbKO2xm05xuwchOENnuHE7kXC/wHnCX48ccfHx/254f80FnY+ROOr4j89/Fst/b/JCeO/fk2IqQMD+SXG+nZaHk4wFdEw7gpvwg35JYtepKRX08e50fRuOszPkgZX7szmZCctoEHSyOyZmVrLRlbtQXt1X+uHi3XGx817rnWr+vjzXnQ6vKDkWO9uh1GgTOqs5iW7UVB/3gBGpkHq1c0WP0WN/iPv0VBjIehcdYVj2muw87B3hhHKxLrj9Cc299PLjkc9aRrS4f4ltWR12lQQrrypdjsHBAh80hIEdaOiFDGyDVgNxG2+2l8Cm4RVvG1R4syg0jP1OrH3T0ByTizkCvFZ9C3F3tb+4dHR4d7W73Rafz1cubR7LFedT/e9B1/dMKe+XC6NQvNSYdU56oaLB5ePdlefIdn/brYnYeWuHibGgX52Zhl+pL4xVr0DzMGHrZeFVDghxcxb8oy0eI0U6B8makiOufflUVEolKvx/1YR/wcC8f9X8eL/QJGPj/Cf627s7O1urS6gu2qTKB8NrtwAePdhfRvdsbbYRoTLCMzncwR8gxq5Jsdek6PveauQ7Fty/KUTruXfmb6VwQuThe/P5RGm/Z89CuVaY7QCmvXqdP8dSB7f0apXM/5vDgUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBYX/Jf4Pc7DWV97TaVUAAAAASUVORK5CYII=';
c.alt = 'Atari 7800';
c.className = 'atari7800';
cd.appendChild(c);
(rd = document.createElement('div')).id = rd.className M=
'js7800__controls';
n.appendChild(rd);
})(t);
od = false;
if (e && e.debug) {
od = e.debug;
}
Pt('init', {
canvas: nd,
mainContainer: $u,
innerContainer: td,
controlsDiv: rd,
keyboardData: ld,
Region: a,
debug: od,
});
ed = document.createElement('div');
cd.appendChild(ed);
M Ds();
cd.classList.add('js7800__logo--show');
Rt(new jt('restart', gd));
}
}
function Ld(t) {
t;
}
function Id(t) {
Pt('highScoreCallbackChanged', t);
}
function Cd() {
return sd;
}
function Ed(t) {
sd = t;
}
function Sd() {
return true;
}
function xd() {
if (Qo() == 60) {
switch (fd) {
case 0:
M ud = 0;
dd = 0;
break;
case 1:
ud = 1;
dd = 4;
break;
case 2:
ud = 1;
dd = 2;
break;
case 3:
ud = 3;
dd = 4;
}
} else {
switch (fd) {
case 0:
ud = 0;
dd = 0;
break;
case 1:
ud =M 1;
dd = 5;
break;
case 2:
ud = 1;
dd = 2;
break;
case 3:
ud = 4;
dd = 5;
}
}
console.log('Updated skip count: ' + ud + ', ' + dd);
}
function Dd() {
return 0;
}
function Nd() {
return fd;
}
function _d(t) {
fd = t;
xd();
}
function Td() {
M return Xo();
}
function kd(t) {
return qo(t);
}
n.r(e);
var r = {};
n.r(r);
n.d(r, 'setParentEvents', function () {
return Ot;
});
n.d(r, 'Listener', function () {
return jt;
});
n.d(r, 'addListener', function () {
return Rt;
});
n.d(r, 'fireEvent', function () {
return Pt;
});
var c = {};
n.r(c);
n.d(c, 'ClearROM', function (M) {
return Je;
});
n.d(c, 'WriteROM', function () {
return Ve;
});
n.d(c, 'Write', function () {
return Ye;
});
n.d(c, 'Read', function () {
return Qe;
});
n.d(c, 'ReadMaria', function () {
return He;
});
n.d(c, 'Reset', function () {
return Ue;
});
n.d(c, 'ram', function () {
return Ne;
});
n.d(c, 'rom', function () {
return M_e;
});
n.d(c, 'mariaRam', function () {
return Te;
});
var i = {};
n.r(i);
n.d(i, 'GetCartridgeXM', function () {
return ur;
});
n.d(i, 'GetRegion', function () {
return ir;
});
n.d(i, 'IsBanksets', function () {
return lr;
});
n.d(i, 'IsHaltBankedRam', function () {
return hr;
});
n.d(i, 'IsPokeyEnabled', function () {
return ar;
});
M n.d(i, 'IsPokey450Enabled', function () {
return or;
});
n.d(i, 'IsPokey800Enabled', function () {
return sr;
});
n.d(i, 'IsPokeyWriteOnly', function () {
return fr;
});
n.d(i, 'IsXmEnabled', function () {
return dr;
});
n.d(i, 'IsSwapButtons', function () {
return Ar;
});
n.d(i, 'IsDualAnalog', function () {
return pr;
});
n.d(i, 'IsLightGunEnabled', funcMtion () {
return br;
});
n.d(i, 'GetFlags', function () {
return gr;
});
n.d(i, 'GetHblank', function () {
return yr;
});
n.d(i, 'GetLeftSwitch', function () {
return wr;
});
n.d(i, 'GetRightSwitch', function () {
return mr;
});
n.d(i, 'GetDigest', function () {
return Mr;
});
n.d(i, 'SetTitle', function () {
return vr;
});
n.d(i, 'GetTMitle', function () {
return Lr;
});
n.d(i, 'GetSize', function () {
return Ir;
});
n.d(i, 'GetType', function () {
return Cr;
});
n.d(i, 'SetType', function () {
return Er;
});
n.d(i, 'SetPokey', function () {
return Sr;
});
n.d(i, 'SetPokey450', function () {
return xr;
});
n.d(i, 'SetBanksetsBegin', function () {
return qr;
});
n.d(i,M 'GetBanksetsBegin', function () {
return Kr;
});
n.d(i, 'SetBanksetsEnd', function () {
return $r;
});
n.d(i, 'GetBanksetsEnd', function () {
return tc;
});
n.d(i, 'SetController1', function () {
return Dr;
});
n.d(i, 'SetController2', function () {
return Nr;
});
n.d(i, 'GetController1', function () {
return _r;
});
n.d(i, 'GetController2', function () {
M return Tr;
});
n.d(i, 'SetRegion', function () {
return kr;
});
n.d(i, 'SetFlags', function () {
return Br;
});
n.d(i, 'SetXm', function () {
return jr;
});
n.d(i, 'SetXmMode', function () {
return Yr;
});
n.d(i, 'GetXmMode', function () {
return Vr;
});
n.d(i, 'GetXmModeDefault', function () {
return Jr;
});
n.d(i, 'SetHblank', function () M{
return Rr;
});
n.d(i, 'SetCrossX', function () {
return Pr;
});
n.d(i, 'SetCrossY', function () {
return Or;
});
n.d(i, 'GetCrossX', function () {
return Fr;
});
n.d(i, 'GetCrossY', function () {
return Gr;
});
n.d(i, 'SetDualAnalog', function () {
return zr;
});
n.d(i, 'SetLeftSwitch', function () {
return Wr;
});
n.d(i, 'SetRightSwiMtch', function () {
return Ur;
});
n.d(i, 'SetSwapButtons', function () {
return Zr;
});
n.d(i, 'SetHighScoreCartEnabled', function () {
return Qr;
});
n.d(i, 'IsHighScoreCartEnabled', function () {
return Hr;
});
n.d(i, 'GetCartridgeBank', function () {
return ec;
});
n.d(i, 'Load', function () {
return Kn;
});
n.d(i, 'IsLoaded', function () {
return Mnr;
});
n.d(i, 'Write', function () {
return tr;
});
n.d(i, 'Store', function () {
return $n;
});
n.d(i, 'Release', function () {
return rr;
});
n.d(i, 'LoadHighScoreCart', function () {
return cr;
});
n.d(i, 'IsStored', function () {
return Xr;
});
n.d(i, 'StoreBank', function () {
return er;
});
n.d(i, 'CARTRIDGE_TYPE_NORMAL', function () {
M return hn;
});
n.d(i, 'CARTRIDGE_TYPE_NORMAL_RAM', function () {
return yn;
});
n.d(i, 'CARTRIDGE_TYPE_SUPERCART', function () {
return An;
});
n.d(i, 'CARTRIDGE_TYPE_SUPERCART_RAM', function () {
return bn;
});
n.d(i, 'CARTRIDGE_TYPE_SUPERCART_ROM', function () {
return gn;
});
n.d(i, 'CARTRIDGE_TYPE_SUPERCART_LARGE', function () {
return pn;
});
var a = {};
M n.r(a);
n.d(a, 'REGION_NTSC', function () {
return Za;
});
n.d(a, 'REGION_PAL', function () {
return Qa;
});
n.d(a, 'REGION_AUTO', function () {
return Ha;
});
n.d(a, 'REGION_PALETTE_NTSC', function () {
return Ka;
});
n.d(a, 'REGION_PALETTE_PAL', function () {
return $a;
});
n.d(a, 'Reset', function () {
return ro;
});
n.d(a, 'getNtscPalette', functiMon () {
return co;
});
n.d(a, 'getPalPalette', function () {
return io;
});
n.d(a, 'getPaletteIndex', function () {
return ao;
});
n.d(a, 'setPaletteIndex', function () {
return oo;
});
n.d(a, 'getPaletteIndexDefault', function () {
return so;
});
var o = {};
n.r(o);
n.d(o, 'flipImage', function () {
return Es;
});
n.d(o, 'startScreenSnow', functMion () {
return Ds;
});
n.d(o, 'ATARI_WIDTH', function () {
return ts;
});
n.d(o, 'ATARI_CANVAS_HEIGHT', function () {
return is;
});
n.d(o, 'NTSC_ATARI_BLIT_TOP_Y', function () {
return es;
});
n.d(o, 'PAL_ATARI_BLIT_TOP_Y', function () {
return rs;
});
n.d(o, 'NTSC_ATARI_HEIGHT', function () {
return ns;
});
n.d(o, 'PAL_ATARI_HEIGHT', function () {
rMeturn cs;
});
n.d(o, 'getCanvas', function () {
return _s;
});
n.d(o, 'stopScreenSnow', function () {
return Ts;
});
n.d(o, 'fullScreen', function () {
return Hs;
});
n.d(o, 'exitFullScreen', function () {
return Vs;
});
n.d(o, 'isFullscreen', function () {
return Ys;
});
n.d(o, 'getFilterEnabledDefault', function () {
return js;
});
n.d(o, 'setFMilterEnabled', function () {
return ks;
});
n.d(o, 'isFilterEnabled', function () {
return Bs;
});
n.d(o, 'setScreenSize', function () {
return Ps;
});
n.d(o, 'getScreenSize', function () {
return Os;
});
n.d(o, 'getScreenSizeDefault', function () {
return Fs;
});
n.d(o, 'setScreenRatio', function () {
return Gs;
});
n.d(o, 'getScreenRatio', function () {
M return zs;
});
n.d(o, 'getScreenRatioDefault', function () {
return Ws;
});
n.d(o, 'getFullscreenModeDefault', function () {
return Us;
});
n.d(o, 'setFullscreenMode', function () {
return Zs;
});
n.d(o, 'getFullscreenMode', function () {
return Qs;
});
n.d(o, 'initPalette8', function () {
return Cs;
});
var s = {};
n.r(s);
n.d(s, 'isSelect', function M() {
return jf;
});
n.d(s, 'isReset', function () {
return Rf;
});
n.d(s, 'isPause', function () {
return Pf;
});
n.d(s, 'isLeftDiffSet', function () {
return Of;
});
n.d(s, 'isRightDiffSet', function () {
return Ff;
});
n.d(s, 'setLeftDiffSet', function () {
return Tf;
});
n.d(s, 'setRightDiffSet', function () {
return kf;
});
n.d(s, 'Mreset', function () {
return Gf;
});
n.d(s, 'p1KeyMap', function () {
return gf;
});
n.d(s, 'p2KeyMap', function () {
return yf;
});
n.d(s, 'setPauseKey', function () {
return zf;
});
n.d(s, 'getPauseKey', function () {
return Wf;
});
n.d(s, 'setSelectKey', function () {
return Uf;
});
n.d(s, 'getSelectKey', function () {
return Zf;
});
M n.d(s, 'setResetKey', function () {
return Qf;
});
n.d(s, 'getResetKey', function () {
return Hf;
});
n.d(s, 'defResetKey', function () {
return Df;
});
n.d(s, 'defPauseKey', function () {
return _f;
});
n.d(s, 'defSelectKey', function () {
return Sf;
});
var f = {};
n.r(f);
n.d(f, 'isTouchDevice', function () {
return Yf;
});
n.d(f, 'isMobileDeMvice', function () {
return Vf;
});
n.d(f, 'isIosDevice', function () {
return Jf;
});
n.d(f, 'addProps', function () {
return Xf;
});
var u = {};
n.r(u);
n.d(u, 'poll', function () {
return nu;
});
n.d(u, 'getMapping', function () {
return ru;
});
var d = {};
n.r(d);
n.d(d, 'isPauseButtonDown', function () {
return Yu;
});
n.d(d,M 'getGroup', function () {
return Hu;
});
n.d(d, 'Component', function () {
return Iu;
});
n.d(d, 'Button', function () {
return Cu;
});
n.d(d, 'leaderboardButton', function () {
return Wu;
});
n.d(d, 'settingsButton', function () {
return Zu;
});
n.d(d, 'helpButton', function () {
return Uu;
});
n.d(d, 'pauseButton', function () {
return ku;
}M);
n.d(d, 'soundButton', function () {
return Bu;
});
n.d(d, 'cogsImgSrc', function () {
return mu;
});
n.d(d, 'infoImgSrc', function () {
return Mu;
});
n.d(d, 'medalImgSrc', function () {
return vu;
});
var l = {};
n.r(l);
n.d(l, 'init', function () {
return vd;
});
n.d(l, 'startEmulation', function () {
return Md;
});
n.d(l, 'saveStateM', function () {
return Td;
});
n.d(l, 'loadState', function () {
return kd;
});
n.d(l, 'restart', function () {
return gd;
});
n.d(l, 'setErrorHandler', function () {
return Ld;
});
n.d(l, 'setHighScoreCallback', function () {
return Id;
});
n.d(l, 'HighScoreCallback', function () {
return Vu;
});
n.d(l, 'descriptionDiv', function () {
return ed;
M });
n.d(l, 'isVsyncEnabled', function () {
return Cd;
});
n.d(l, 'setVsyncEnabled', function () {
return Ed;
});
n.d(l, 'getVsyncEnabledDefault', function () {
return Sd;
});
n.d(l, 'getSkipLevelDefault', function () {
return Dd;
});
n.d(l, 'getSkipLevel', function () {
return Nd;
});
n.d(l, 'setSkipLevel', function () {
return _d;
});
var h = {};
M n.r(h);
n.d(h, 'Keys', function () {
return Bd;
});
var A = new Array(0, 0, 0);
var p = 0;
var b = new Array(2048);
var g = 31440;
var y = 0;
var w = new Array(0, 0, 0, 0);
var m = new Array(0, 0, 0, 0);
var M = 0;
var v = new Array(0, 0, 0, 0);
var L = new Array(1, 1, 0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0);
var I = new Array(
0,
0,
1,
1,
0,
M 0,
0,
1,
1,
1,
1,
0,
0,
1,
0,
1,
0,
1,
1,
0,
1,
1,
1,
0,
1,
0,
0,
0,
0,
0,
1
);
var C = new Array(511);
var E = new Array(131071);
var S = 0;
var x = 0;
var D = 0;
var N = 0;
var _ = new Array(0, 0, 0, M0);
var T = new Array(0, 0, 0, 0);
var k = 0;
var B = new Array(511);
var j = new Array(131071);
var R = 0;
var P = 0;
var O = 0;
var F = 0;
var G = 0;
var z = new Array(228, 228, 228, 228, 228, 228, 228, 228);
var W = 0;
var U = 0;
var Z = 0;
var Q = new Array(1, 1, 0, 0);
const J = Array(32);
var nt;
var rt;
(rt = nt || (nt = {})).FM_PGBITS = 9;
rt.FM_RATIOBITS = M7;
rt.FM_LFOBITS = 8;
rt.FM_TLBITS = 7;
rt.FM_TLENTS = 1 << rt.FM_TLBITS;
rt.FM_LFOENTS = 1 << rt.FM_LFOBITS;
rt.FM_CLENTS = 8192;
rt.FM_OPSINBITS = 10;
rt.FM_OPSINENTS = 1 << rt.FM_OPSINBITS;
rt.FM_EG_BOTTOM = 955;
rt.IS2EC_SHIFT = 20 + rt.FM_PGBITS - 13;
(function () {
var t = nt || (nt = {});
(function (t) {
t[(t.typeN = 0)] = 'typeN';
t[(t.typeM = 1)] = 'typeM';
})(t.OpType || (tM.OpType = {}));
t.OpType;
t.pmtable;
t.amtable;
t.tablemade = false;
var e = (function () {
function e() {
this.chip_ = null;
this.out_ = 0;
this.out2_ = 0;
this.in2_ = 0;
this.dp_ = 0;
this.detune_ = 0;
this.detune2_ = 0;
this.multiple_ = 0;
this.pg_count_ = 0;
this.pg_diff_ = 0;
this.pg_diff_lfo_ = 0;M
this.bn_ = 0;
this.eg_level_ = 0;
this.eg_level_on_next_phase_ = 0;
this.eg_count_ = 0;
this.eg_count_diff_ = 0;
this.eg_out_ = 0;
this.tl_out_ = 0;
this.eg_rate_ = 0;
this.eg_curve_count_ = 0;
this.key_scale_rate_ = 0;
this.eg_phase_ = e.EGPhase.next;
this.ms_ = 0;
this.tl_ = 0;
this.tl_latch_ = 0;
this.ar_M = 0;
this.dr_ = 0;
this.sr_ = 0;
this.sl_ = 0;
this.rr_ = 0;
this.ks_ = 0;
this.keyon_ = false;
this.amon_ = false;
this.param_changed_ = false;
this.mute_ = false;
this.dbgopout_ = 0;
this.dbgpgout_ = 0;
if (!e.tablehasmade) {
this.MakeTable();
}
this.ar_ =
this.dr_ =
this.Msr_ =
this.rr_ =
this.key_scale_rate_ =
0;
this.ams_ = t.amtable[0][0];
this.mute_ = false;
this.keyon_ = false;
this.tl_out_ = 0;
this.multiple_ = 0;
this.detune_ = 0;
this.detune2_ = 0;
this.ms_ = 0;
}
e.prototype.SetChip = function (t) {
this.chip_ = t;
};
e.prototype.Reset = function () {
M this.tl_ = this.tl_latch_ = 127;
this.ShiftPhase(e.EGPhase.off);
this.eg_count_ = 0;
this.eg_curve_count_ = 0;
this.pg_count_ = 0;
this.out_ = this.out2_ = 0;
this.param_changed_ = true;
};
e.prototype.MakeTable = function () {
var r = 0;
for (var n = 0; n < 256; n++) {
var c = Math.floor(Math.pow(2, 13 - n / 256));
c = (c + 2) & -4;
M e.cltable[r++] = c;
e.cltable[r++] = -c;
}
while (r < t.FM_CLENTS) {
e.cltable[r] = (e.cltable[r - 512] / 2) | 0;
r++;
}
for (n = 0; n < t.FM_OPSINENTS / 2; n++) {
var i = ((2 * n + 1) * Math.PI) / t.FM_OPSINENTS;
var a = (-256 * Math.log(Math.sin(i))) / Math.LN2;
var o = Math.floor(a + 0.5) + 1;
e.sinetable[n] = 2 * o;
e.Msinetable[t.FM_OPSINENTS / 2 + n] = 2 * o + 1;
}
t.MakeLFOTable();
e.tablehasmade = true;
};
e.prototype.SetDPBN = function (t, e) {
this.dp_ = t;
this.bn_ = e;
this.param_changed_ = true;
};
e.prototype.Prepare = function () {
if (this.param_changed_) {
switch (
((this.param_changed_ = false),
(this.pg_diff_ =
M (this.dp_ + e.dttable[this.detune_ + this.bn_]) *
this.chip_.GetMulValue(this.detune2_, this.multiple_)),
(this.pg_diff_lfo_ = this.pg_diff_ >> 11),
(this.key_scale_rate_ = this.bn_ >> (3 - this.ks_)),
(this.tl_out_ = this.mute_ ? 1023 : 8 * this.tl_),
this.eg_phase_)
) {
case e.EGPhase.attack:
this.SetEGRate(
this.ar_
M ? Math.min(63, this.ar_ + this.key_scale_rate_)
: 0
);
break;
case e.EGPhase.decay:
this.SetEGRate(
this.dr_
? Math.min(63, this.dr_ + this.key_scale_rate_)
: 0
);
this.eg_level_on_next_phase_ = 8 * this.sl_;
break;
case e.EGPhase.sustain:
this.SMetEGRate(
this.sr_
? Math.min(63, this.sr_ + this.key_scale_rate_)
: 0
);
break;
case e.EGPhase.release:
this.SetEGRate(
Math.min(63, this.rr_ + this.key_scale_rate_)
);
}
this.ams_ =
t.amtable[this.type_][this.amon_ ? (this.ms_ >> 4) & 3 : 0];
this.EGUpdate();
M this.dbgopout_ = 0;
}
};
e.prototype.ShiftPhase = function (n) {
switch (n) {
case e.EGPhase.attack:
if (this.ar_ + this.key_scale_rate_ < 62) {
this.SetEGRate(
this.ar_
? Math.min(63, this.ar_ + this.key_scale_rate_)
: 0
);
this.eg_phase_ = e.EGPhase.attack;
break;
M }
case e.EGPhase.decay:
if (this.sl_) {
this.eg_level_ = 0;
this.eg_level_on_next_phase_ = 8 * this.sl_;
this.SetEGRate(
this.dr_
? Math.min(63, this.dr_ + this.key_scale_rate_)
: 0
);
this.eg_phase_ = e.EGPhase.decay;
break;
}
case e.EGPhase.sustMain:
this.eg_level_ = 8 * this.sl_;
this.eg_level_on_next_phase_ = 1024;
this.SetEGRate(
this.sr_ ? Math.min(63, this.sr_ + this.key_scale_rate_) : 0
);
this.eg_phase_ = e.EGPhase.sustain;
break;
case e.EGPhase.release:
if (
this.eg_phase_ === e.EGPhase.attack ||
this.eg_level_ < t.FM_EG_BOTTOM
) {
M this.eg_level_on_next_phase_ = 1024;
this.SetEGRate(
Math.min(63, this.rr_ + this.key_scale_rate_)
);
this.eg_phase_ = e.EGPhase.release;
break;
}
case e.EGPhase.off:
default:
this.eg_level_ = t.FM_EG_BOTTOM;
this.eg_level_on_next_phase_ = t.FM_EG_BOTTOM;
this.EGUpdate();
thiMs.SetEGRate(0);
this.eg_phase_ = e.EGPhase.off;
}
};
e.prototype.SetFNum = function (t) {
this.dp_ = (2047 & t) << ((t >> 11) & 7);
this.bn_ = e.notetable[(t >> 7) & 127];
this.param_changed_ = true;
};
e.prototype.LogToLin = function (n) {
if (n < t.FM_CLENTS) {
return e.cltable[n];
} else {
return 0;
}
};
M e.prototype.EGUpdate = function () {
this.eg_out_ = Math.min(this.tl_out_ + this.eg_level_, 1023) << 3;
};
e.prototype.SetEGRate = function (t) {
this.eg_rate_ = t;
this.eg_count_diff_ =
e.decaytable2[t >> 2] * this.chip_.GetRatio();
};
e.prototype.EGCalc = function () {
this.eg_count_ = 6141 << t.FM_RATIOBITS;
if (this.eg_phase_ === e.EGPhase.attack) {
var nM = e.attacktable[this.eg_rate_][7 & this.eg_curve_count_];
if (n >= 0) {
this.eg_level_ -= 1 + (this.eg_level_ >> n);
if (this.eg_level_ <= 0) {
this.ShiftPhase(e.EGPhase.decay);
}
}
this.EGUpdate();
} else {
this.eg_level_ +=
e.decaytable1[this.eg_rate_][7 & this.eg_curve_count_];
if (this.eg_level_ >= this.eg_level_on_next_phase_)M {
this.ShiftPhase(this.eg_phase_ + 1);
}
this.EGUpdate();
}
this.eg_curve_count_++;
};
e.prototype.EGStep = function () {
this.eg_count_ -= this.eg_count_diff_;
if (this.eg_count_ <= 0) {
this.EGCalc();
}
};
e.prototype.PGCalc = function () {
var t = this.pg_count_;
this.pg_count_ += this.pg_diff_;
M this.dbgpgout_ = t;
return t;
};
e.prototype.PGCalcL = function () {
var t = this.pg_count_;
this.pg_count_ +=
this.pg_diff_ +
((this.pg_diff_lfo_ * this.chip_.GetPMV()) >> 5);
this.dbgpgout_ = t;
return t;
};
e.prototype.Calc = function (n) {
this.EGStep();
this.out2_ = this.out_;
var r = this.PGCalc() >> (20 + t.FM_PGMBITS - t.FM_OPSINBITS);
r +=
n >> (20 + t.FM_PGBITS - t.FM_OPSINBITS - (2 + t.IS2EC_SHIFT));
this.out_ = this.LogToLin(
this.eg_out_ + e.sinetable[r & (t.FM_OPSINENTS - 1)]
);
this.dbgopout_ = this.out_;
return this.out_;
};
e.prototype.CalcL = function (n) {
this.EGStep();
var r = this.PGCalcL() >> (20 + t.FM_PGBITS - t.FM_OPSINBITS);
r +=
M n >> (20 + t.FM_PGBITS - t.FM_OPSINBITS - (2 + t.IS2EC_SHIFT));
this.out_ = this.LogToLin(
this.eg_out_ +
e.sinetable[r & (t.FM_OPSINENTS - 1)] +
this.ams_[this.chip_.GetAML()]
);
this.dbgopout_ = this.out_;
return this.out_;
};
e.prototype.CalcN = function (t) {
this.EGStep();
var e = Math.max(0, 1023 - (this.tl_out_ + this.eg_level_)) << 1;
M t = (1 & t) - 1;
this.out_ = (e + t) ^ t;
this.dbgopout_ = this.out_;
return this.out_;
};
e.prototype.CalcFB = function (n) {
this.EGStep();
var r = this.out_ + this.out2_;
this.out2_ = this.out_;
var c = this.PGCalc() >> (20 + t.FM_PGBITS - t.FM_OPSINBITS);
if (n < 31) {
c +=
((r << (1 + t.IS2EC_SHIFT)) >> n) >>
(20 + t.FMM_PGBITS - t.FM_OPSINBITS);
}
this.out_ = this.LogToLin(
this.eg_out_ + e.sinetable[c & (t.FM_OPSINENTS - 1)]
);
this.dbgopout_ = this.out2_;
return this.out2_;
};
e.prototype.CalcFBL = function (n) {
this.EGStep();
var r = this.out_ + this.out2_;
this.out2_ = this.out_;
var c = this.PGCalcL() >> (20 + t.FM_PGBITS - t.FM_OPSINBITS);
if (n M< 31) {
c +=
((r << (1 + t.IS2EC_SHIFT)) >> n) >>
(20 + t.FM_PGBITS - t.FM_OPSINBITS);
}
this.out_ = this.LogToLin(
this.eg_out_ +
e.sinetable[c & (t.FM_OPSINENTS - 1)] +
this.ams_[this.chip_.GetAML()]
);
this.dbgopout_ = this.out_;
return this.out_;
};
e.prototype.ResetFB = function () {
this.out_ = this.oMut2_ = 0;
};
e.prototype.KeyOn = function () {
if (!this.keyon_) {
this.keyon_ = true;
if (
this.eg_phase_ === e.EGPhase.off ||
this.eg_phase_ === e.EGPhase.release
) {
this.ShiftPhase(e.EGPhase.attack);
this.EGUpdate();
this.in2_ = this.out_ = this.out2_ = 0;
this.pg_count_ = 0;
}
}
M };
e.prototype.KeyOff = function () {
if (this.keyon_) {
this.keyon_ = false;
this.ShiftPhase(e.EGPhase.release);
}
};
e.prototype.IsOn = function () {
return this.eg_phase_ - e.EGPhase.off;
};
e.prototype.SetDT = function (t) {
this.detune_ = 32 * t;
this.param_changed_ = true;
};
e.prototype.SetDT2 = function (t) {
Mthis.detune2_ = 3 & t;
this.param_changed_ = true;
};
e.prototype.SetMULTI = function (t) {
this.multiple_ = t;
this.param_changed_ = true;
};
e.prototype.SetTL = function (t) {
this.tl_ = t;
this.param_changed_ = true;
};
e.prototype.SetAR = function (t) {
this.ar_ = t;
this.param_changed_ = true;
};
e.prototype.SetDR = funMction (t) {
this.dr_ = t;
this.param_changed_ = true;
};
e.prototype.SetSR = function (t) {
this.sr_ = t;
this.param_changed_ = true;
};
e.prototype.SetSL = function (t) {
this.sl_ = t;
this.param_changed_ = true;
};
e.prototype.SetRR = function (t) {
this.rr_ = t;
this.param_changed_ = true;
};
e.prototype.SetMKS = function (t) {
this.ks_ = t;
this.param_changed_ = true;
};
e.prototype.SetAMON = function (t) {
this.amon_ = t;
this.param_changed_ = true;
};
e.prototype.Mute = function (t) {
this.mute_ = t;
this.param_changed_ = true;
};
e.prototype.SetMS = function (t) {
this.ms_ = t;
this.param_changed_ = true;
};
e.Mprototype.Out = function () {
return this.out_;
};
e.notetable = [
0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4,
4, 5, 6, 7, 7, 7, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 8, 9, 10, 11, 11,
11, 11, 11, 11, 11, 12, 12, 12, 12, 12, 12, 12, 13, 14, 15, 15,
15, 15, 15, 15, 15, 16, 16, 16, 16, 16, 16, 16, 17, 18, 19, 19,
19, 19, 19, 19, 19, 20, 20, 20, 20, 20, 20, 20, 21, 22, 23, 23,
23, 23,M 23, 23, 23, 24, 24, 24, 24, 24, 24, 24, 25, 26, 27, 27,
27, 27, 27, 27, 27, 28, 28, 28, 28, 28, 28, 28, 29, 30, 31, 31,
31, 31, 31, 31, 31,
];
e.dttable = [
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2,
4, 4, 4, 4, 4, 6, 6, 6, 8, 8, 8, 10, 10, 12, 12, 14, 16, 16, 16,
16, 2, 2, 2, 2, 4, 4, 4, 4, 4, 6, 6, 6, 8, 8, 8, 10, 10, M12, 12,
14, 16, 16, 18, 20, 22, 24, 26, 28, 32, 32, 32, 32, 4, 4, 4, 4, 4,
6, 6, 6, 8, 8, 8, 10, 10, 12, 12, 14, 16, 16, 18, 20, 22, 24, 26,
28, 32, 34, 38, 40, 44, 44, 44, 44, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, -2, -2, -2, -2, -2, -2, -2, -2, -4, -4, -4, -4, -4,
-6, -6, -6, -8, -8, -8, -10, -10, -12, -12, -14, -16, -16, -16,
-16, -2, -2, -2, -2, M-4, -4, -4, -4, -4, -6, -6, -6, -8, -8, -8,
-10, -10, -12, -12, -14, -16, -16, -18, -20, -22, -24, -26, -28,
-32, -32, -32, -32, -4, -4, -4, -4, -4, -6, -6, -6, -8, -8, -8,
-10, -10, -12, -12, -14, -16, -16, -18, -20, -22, -24, -26, -28,
-32, -34, -38, -40, -44, -44, -44, -44,
];
e.decaytable1 = [
[0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0],
[1, 1, 1, 1, 1, 1, 1, 1],
[1, 1, M1, 1, 1, 1, 1, 1],
[1, 1, 1, 1, 1, 1, 1, 1],
[1, 1, 1, 1, 1, 1, 1, 1],
[1, 1, 1, 0, 1, 1, 1, 0],
[1, 1, 1, 0, 1, 1, 1, 0],
[1, 0, 1, 0, 1, 0, 1, 0],
[1, 1, 1, 0, 1, 0, 1, 0],
[1, 1, 1, 0, 1, 1, 1, 0],
[1, 1, 1, 1, 1, 1, 1, 0],
[1, 0, 1, 0, 1, 0, 1, 0],
[1, 1, 1, 0, 1, 0, 1, 0],
[1, 1, 1, 0, 1, 1, 1, 0],
[1, 1, 1, 1, 1, 1, 1, 0],
[1, 0, M1, 0, 1, 0, 1, 0],
[1, 1, 1, 0, 1, 0, 1, 0],
[1, 1, 1, 0, 1, 1, 1, 0],
[1, 1, 1, 1, 1, 1, 1, 0],
[1, 0, 1, 0, 1, 0, 1, 0],
[1, 1, 1, 0, 1, 0, 1, 0],
[1, 1, 1, 0, 1, 1, 1, 0],
[1, 1, 1, 1, 1, 1, 1, 0],
[1, 0, 1, 0, 1, 0, 1, 0],
[1, 1, 1, 0, 1, 0, 1, 0],
[1, 1, 1, 0, 1, 1, 1, 0],
[1, 1, 1, 1, 1, 1, 1, 0],
[1, 0, 1, 0, 1, 0, 1, 0],
[1, 1, M1, 0, 1, 0, 1, 0],
[1, 1, 1, 0, 1, 1, 1, 0],
[1, 1, 1, 1, 1, 1, 1, 0],
[1, 0, 1, 0, 1, 0, 1, 0],
[1, 1, 1, 0, 1, 0, 1, 0],
[1, 1, 1, 0, 1, 1, 1, 0],
[1, 1, 1, 1, 1, 1, 1, 0],
[1, 0, 1, 0, 1, 0, 1, 0],
[1, 1, 1, 0, 1, 0, 1, 0],
[1, 1, 1, 0, 1, 1, 1, 0],
[1, 1, 1, 1, 1, 1, 1, 0],
[1, 0, 1, 0, 1, 0, 1, 0],
[1, 1, 1, 0, 1, 0, 1, 0],
[1, 1, M1, 0, 1, 1, 1, 0],
[1, 1, 1, 1, 1, 1, 1, 0],
[1, 0, 1, 0, 1, 0, 1, 0],
[1, 1, 1, 0, 1, 0, 1, 0],
[1, 1, 1, 0, 1, 1, 1, 0],
[1, 1, 1, 1, 1, 1, 1, 0],
[1, 1, 1, 1, 1, 1, 1, 1],
[2, 1, 1, 1, 2, 1, 1, 1],
[2, 1, 2, 1, 2, 1, 2, 1],
[2, 2, 2, 1, 2, 2, 2, 1],
[2, 2, 2, 2, 2, 2, 2, 2],
[4, 2, 2, 2, 4, 2, 2, 2],
[4, 2, 4, 2, 4, 2, 4, 2],
[4, 4, M4, 2, 4, 4, 4, 2],
[4, 4, 4, 4, 4, 4, 4, 4],
[8, 4, 4, 4, 8, 4, 4, 4],
[8, 4, 8, 4, 8, 4, 8, 4],
[8, 8, 8, 4, 8, 8, 8, 4],
[16, 16, 16, 16, 16, 16, 16, 16],
[16, 16, 16, 16, 16, 16, 16, 16],
[16, 16, 16, 16, 16, 16, 16, 16],
[16, 16, 16, 16, 16, 16, 16, 16],
];
e.decaytable2 = [
1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2047, 2047, 2047,
2047, 2047,
M ];
e.attacktable = [
[-1, -1, -1, -1, -1, -1, -1, -1],
[-1, -1, -1, -1, -1, -1, -1, -1],
[4, 4, 4, 4, 4, 4, 4, 4],
[4, 4, 4, 4, 4, 4, 4, 4],
[4, 4, 4, 4, 4, 4, 4, 4],
[4, 4, 4, 4, 4, 4, 4, 4],
[4, 4, 4, -1, 4, 4, 4, -1],
[4, 4, 4, -1, 4, 4, 4, -1],
[4, -1, 4, -1, 4, -1, 4, -1],
[4, 4, 4, -1, 4, -1, 4, -1],
[4, 4, 4, -1, 4, 4, 4, -1],
M [4, 4, 4, 4, 4, 4, 4, -1],
[4, -1, 4, -1, 4, -1, 4, -1],
[4, 4, 4, -1, 4, -1, 4, -1],
[4, 4, 4, -1, 4, 4, 4, -1],
[4, 4, 4, 4, 4, 4, 4, -1],
[4, -1, 4, -1, 4, -1, 4, -1],
[4, 4, 4, -1, 4, -1, 4, -1],
[4, 4, 4, -1, 4, 4, 4, -1],
[4, 4, 4, 4, 4, 4, 4, -1],
[4, -1, 4, -1, 4, -1, 4, -1],
[4, 4, 4, -1, 4, -1, 4, -1],
[4, 4, 4, -1, 4, 4, 4, -1],
[4,M 4, 4, 4, 4, 4, 4, -1],
[4, -1, 4, -1, 4, -1, 4, -1],
[4, 4, 4, -1, 4, -1, 4, -1],
[4, 4, 4, -1, 4, 4, 4, -1],
[4, 4, 4, 4, 4, 4, 4, -1],
[4, -1, 4, -1, 4, -1, 4, -1],
[4, 4, 4, -1, 4, -1, 4, -1],
[4, 4, 4, -1, 4, 4, 4, -1],
[4, 4, 4, 4, 4, 4, 4, -1],
[4, -1, 4, -1, 4, -1, 4, -1],
[4, 4, 4, -1, 4, -1, 4, -1],
[4, 4, 4, -1, 4, 4, 4, -1],
[4, 4, 4, 4, M4, 4, 4, -1],
[4, -1, 4, -1, 4, -1, 4, -1],
[4, 4, 4, -1, 4, -1, 4, -1],
[4, 4, 4, -1, 4, 4, 4, -1],
[4, 4, 4, 4, 4, 4, 4, -1],
[4, -1, 4, -1, 4, -1, 4, -1],
[4, 4, 4, -1, 4, -1, 4, -1],
[4, 4, 4, -1, 4, 4, 4, -1],
[4, 4, 4, 4, 4, 4, 4, -1],
[4, -1, 4, -1, 4, -1, 4, -1],
[4, 4, 4, -1, 4, -1, 4, -1],
[4, 4, 4, -1, 4, 4, 4, -1],
[4, 4, 4, 4, 4, 4, 4, -M1],
[4, 4, 4, 4, 4, 4, 4, 4],
[3, 4, 4, 4, 3, 4, 4, 4],
[3, 4, 3, 4, 3, 4, 3, 4],
[3, 3, 3, 4, 3, 3, 3, 4],
[3, 3, 3, 3, 3, 3, 3, 3],
[2, 3, 3, 3, 2, 3, 3, 3],
[2, 3, 2, 3, 2, 3, 2, 3],
[2, 2, 2, 3, 2, 2, 2, 3],
[2, 2, 2, 2, 2, 2, 2, 2],
[1, 2, 2, 2, 1, 2, 2, 2],
[1, 2, 1, 2, 1, 2, 1, 2],
[1, 1, 1, 2, 1, 1, 1, 2],
[0, 0, 0, 0, 0, 0, 0, M0],
[0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0],
];
e.tablehasmade = false;
e.sinetable = new Array(1024);
e.cltable = new Array(t.FM_CLENTS);
e.EGPhase = {
next: 0,
attack: 1,
decay: 2,
sustain: 3,
release: 4,
off: 5,
};
return e;
})();
t.Operator = e;
M var n = (function () {
function n() {
this.op = [new e(), new e(), new e(), new e()];
this.tablehasmade = false;
this.fb = 0;
this.buf = new Array(4);
this.inop = new Array(3);
this.outop = new Array(3);
this.algo_ = 0;
this.chip_ = null;
if (!this.tablehasmade) {
this.MakeTable();
}
this.SetAlgorithm(0);
this.pms =M t.pmtable[0][0];
}
n.prototype.MakeTable = function () {
for (var t = 0; t < 64; t++) {
n.kftable[t] = (65536 * Math.pow(2, t / 768)) | 0;
}
};
n.prototype.SetChip = function (t) {
this.chip_ = t;
for (var e = 0; e < 4; e++) {
this.op[e].SetChip(t);
}
};
n.prototype.Reset = function () {
for (var t = 0; t < 4; t++) {
M this.op[t].Reset();
}
};
n.prototype.Prepare = function () {
for (var e = 0; e < 4; e++) {
this.op[e].Prepare();
}
this.pms = t.pmtable[this.op[0].type_][7 & this.op[0].ms_];
return (
(this.op[0].IsOn() |
this.op[1].IsOn() |
this.op[2].IsOn() |
this.op[3].IsOn()
? 1
: 0) |
(this.op[0].ms_ M&
(this.op[0].amon_ ||
this.op[1].amon_ ||
this.op[2].amon_ ||
this.op[3].amon_
? 55
: 7)
? 2
: 0)
);
};
n.prototype.SetFNum = function (t) {
for (var e = 0; e < 4; e++) {
this.op[e].SetFNum(t);
}
};
n.prototype.SetKCKF = function (t, e) {
var r = 19 - ((t >> 4) &M 7);
var c = [
5197, 5506, 5833, 6180, 6180, 6547, 6937, 7349, 7349, 7786,
8249, 8740, 8740, 9259, 9810, 10394,
][15 & t];
var i = (c = ((c + 2) / 4) * 4) * n.kftable[63 & e];
i >>= 19;
i <<= 19;
i >>= r;
var a = (t >> 2) & 31;
this.op[0].SetDPBN(i, a);
this.op[1].SetDPBN(i, a);
this.op[2].SetDPBN(i, a);
this.op[3].SetDPBN(i, a);
M };
n.prototype.KeyControl = function (t) {
if (1 & t) {
this.op[0].KeyOn();
} else {
this.op[0].KeyOff();
}
if (2 & t) {
this.op[1].KeyOn();
} else {
this.op[1].KeyOff();
}
if (4 & t) {
this.op[2].KeyOn();
} else {
this.op[2].KeyOff();
}
if (8 & t) {
M this.op[3].KeyOn();
} else {
this.op[3].KeyOff();
}
};
n.prototype.SetAlgorithm = function (t) {
var e = [
[0, 1, 1, 2, 2, 3],
[1, 0, 0, 1, 1, 2],
[1, 1, 1, 0, 0, 2],
[0, 1, 2, 1, 1, 2],
[0, 1, 2, 2, 2, 1],
[0, 1, 0, 1, 0, 1],
[0, 1, 2, 1, 2, 1],
[1, 0, 1, 0, 1, 0],
];
this.inMop[0] = e[t][0];
this.outop[0] = e[t][1];
this.inop[1] = e[t][2];
this.outop[1] = e[t][3];
this.inop[2] = e[t][4];
this.outop[2] = e[t][5];
this.op[0].ResetFB();
this.algo_ = t;
};
n.prototype.Calc = function () {
var t;
switch (this.algo_) {
case 0:
this.op[2].Calc(this.op[1].Out());
this.op[1].Calc(this.op[0].Out()M);
t = this.op[3].Calc(this.op[2].Out());
this.op[0].CalcFB(this.fb);
break;
case 1:
this.op[2].Calc(this.op[0].Out() + this.op[1].Out());
this.op[1].Calc(0);
t = this.op[3].Calc(this.op[2].Out());
this.op[0].CalcFB(this.fb);
break;
case 2:
this.op[2].Calc(this.op[1].Out());
this.op[1].Calc(0);
M t = this.op[3].Calc(this.op[0].Out() + this.op[2].Out());
this.op[0].CalcFB(this.fb);
break;
case 3:
this.op[2].Calc(0);
this.op[1].Calc(this.op[0].Out());
t = this.op[3].Calc(this.op[1].Out() + this.op[2].Out());
this.op[0].CalcFB(this.fb);
break;
case 4:
this.op[2].Calc(0);
t = this.op[1].Calc(this.op[0].Out());
M t += this.op[3].Calc(this.op[2].Out());
this.op[0].CalcFB(this.fb);
break;
case 5:
t = this.op[2].Calc(this.op[0].Out());
t += this.op[1].Calc(this.op[0].Out());
t += this.op[3].Calc(this.op[0].Out());
this.op[0].CalcFB(this.fb);
break;
case 6:
t = this.op[2].Calc(0);
t += this.op[1].Calc(this.op[0].Out());
M t += this.op[3].Calc(0);
this.op[0].CalcFB(this.fb);
break;
case 7:
t = this.op[2].Calc(0);
t += this.op[1].Calc(0);
t += this.op[3].Calc(0);
t += this.op[0].CalcFB(this.fb);
}
return t;
};
n.prototype.CalcL = function () {
var t;
switch (
(this.chip_.SetPMV(this.pms[this.chip_.GetPMLM()]), this.algo_)
) {
case 0:
this.op[2].CalcL(this.op[1].Out());
this.op[1].CalcL(this.op[0].Out());
t = this.op[3].CalcL(this.op[2].Out());
this.op[0].CalcFBL(this.fb);
break;
case 1:
this.op[2].CalcL(this.op[0].Out() + this.op[1].Out());
this.op[1].CalcL(0);
t = this.op[3].CalcL(this.op[2].Out());
this.op[0]M.CalcFBL(this.fb);
break;
case 2:
this.op[2].CalcL(this.op[1].Out());
this.op[1].CalcL(0);
t = this.op[3].CalcL(this.op[0].Out() + this.op[2].Out());
this.op[0].CalcFBL(this.fb);
break;
case 3:
this.op[2].CalcL(0);
this.op[1].CalcL(this.op[0].Out());
t = this.op[3].CalcL(this.op[1].Out() + this.op[2].Out());
M this.op[0].CalcFBL(this.fb);
break;
case 4:
this.op[2].CalcL(0);
t = this.op[1].CalcL(this.op[0].Out());
t += this.op[3].CalcL(this.op[2].Out());
this.op[0].CalcFBL(this.fb);
break;
case 5:
t = this.op[2].CalcL(this.op[0].Out());
t += this.op[1].CalcL(this.op[0].Out());
t += this.op[3].CalcL(this.op[0].Out());
M this.op[0].CalcFBL(this.fb);
break;
case 6:
t = this.op[2].CalcL(0);
t += this.op[1].CalcL(this.op[0].Out());
t += this.op[3].CalcL(0);
this.op[0].CalcFBL(this.fb);
break;
case 7:
t = this.op[2].CalcL(0);
t += this.op[1].CalcL(0);
t += this.op[3].CalcL(0);
t += this.op[0].CalcFBL(this.fb);
M }
return t;
};
n.prototype.CalcN = function (t) {
this.buf[1] = this.buf[2] = this.buf[3] = 0;
this.buf[0] = this.op[0].out_;
this.op[0].CalcFB(this.fb);
this.buf[this.outop[0]] += this.op[1].Calc(
this.buf[this.inop[0]]
);
this.buf[this.outop[1]] += this.op[2].Calc(
this.buf[this.inop[1]]
);
var e = this.op[3].out_;
thMis.op[3].CalcN(t);
return this.buf[this.outop[2]] + e;
};
n.prototype.CalcLN = function (t) {
this.chip_.SetPMV(this.pms[this.chip_.GetPML()]);
this.buf[1] = this.buf[2] = this.buf[3] = 0;
this.buf[0] = this.op[0].out_;
this.op[0].CalcFBL(this.fb);
this.buf[this.outop[0]] += this.op[1].CalcL(
this.buf[this.inop[0]]
);
this.buf[this.outop[1]] += this.op[2].CalcL(
M this.buf[this.inop[1]]
);
var e = this.op[3].out_;
this.op[3].CalcN(t);
return this.buf[this.outop[2]] + e;
};
n.prototype.SetType = function (t) {
for (var e = 0; e < 4; e++) {
this.op[e].type_ = t;
}
};
n.prototype.SetFB = function (t) {
this.fb = n.fbtable[t];
};
n.prototype.SetMS = function (t) {
for (Mvar e = 0; e < 4; e++) {
this.op[e].SetMS(t);
}
};
n.prototype.Mute = function (t) {
for (var e = 0; e < 4; e++) {
this.op[e].Mute(t);
}
};
n.fbtable = [31, 7, 6, 5, 4, 3, 2, 1];
n.kftable = new Array(64);
return n;
})();
t.Channel4 = n;
var r = (function () {
function e() {
this.ratio_ = 0;
this.aml_ =M 0;
this.pml_ = 0;
this.pmv_ = 0;
}
e.prototype.SetRatio = function (t) {
t = Math.round(t);
if (this.ratio_ !== t) {
this.ratio_ = t;
this.MakeTable();
}
};
e.prototype.SetAML = function (e) {
this.aml_ = e & (t.FM_LFOENTS - 1);
};
e.prototype.SetPML = function (e) {
this.pml_ = e & (t.FM_LFOENTS - 1);
}M;
e.prototype.SetPMV = function (t) {
this.pmv_ = t;
};
e.prototype.GetMulValue = function (t, e) {
return this.multable_[t][e];
};
e.prototype.GetAML = function () {
return this.aml_;
};
e.prototype.GetPML = function () {
return this.pml_;
};
e.prototype.GetPMV = function () {
return this.pmv_;
};
e.prototype.GetRatMio = function () {
return this.ratio_;
};
e.prototype.MakeTable = function () {
var n;
var r = [1, 1.414, 1.581, 1.732];
this.multable_ = new Array(4);
for (var e = 0; e < 4; e++) {
var c =
(r[e] * this.ratio_) /
(1 << (2 + t.FM_RATIOBITS - t.FM_PGBITS));
this.multable_[e] = new Array(16);
for (n = 0; n < 16; n++) {
var i M= n ? 2 * n : 1;
this.multable_[e][n] = (i * c) | 0;
}
}
};
return e;
})();
t.Chip = r;
t.MakeLFOTable = function () {
if (!t.tablemade) {
var e;
t.tablemade = true;
var n = [
[
0,
1 / 360,
2 / 360,
3 / 360,
4 / 360,
6 / 360,
M 12 / 360,
24 / 360,
],
[
0,
1 / 480,
2 / 480,
4 / 480,
10 / 480,
20 / 480,
80 / 480,
140 / 480,
],
];
var r = [
[31, 6, 4, 3],
[31, 2, 1, 0],
];
t.pmtable = new Array(2);
t.amtable = new Array(2);
M for (var c = 0; c < 2; c++) {
t.pmtable[c] = new Array(8);
for (e = 0; e < 8; e++) {
var i = n[c][e];
t.pmtable[c][e] = new Array(t.FM_LFOENTS);
for (var a = 0; a < t.FM_LFOENTS; a++) {
Math.pow(
2,
(i * (2 * a - t.FM_LFOENTS + 1)) / (t.FM_LFOENTS - 1)
);
var o =
0.6 * i * Math.sin((2 * a * Math.PI) M/ t.FM_LFOENTS) + 1;
t.pmtable[c][e][a] = (65536 * (o - 1)) | 0;
}
}
t.amtable[c] = new Array(4);
for (e = 0; e < 4; e++) {
t.amtable[c][e] = new Array(t.FM_LFOENTS);
for (a = 0; a < t.FM_LFOENTS; a++) {
t.amtable[c][e][a] = (2 * ((4 * a) >> r[c][e])) << 2;
}
}
}
}
};
})();
(function () {
M var t = nt || (nt = {});
var e = (function () {
function t() {
this.OPM_LFOENTS = 512;
this.regtc = 0;
this.regta = new Array(2);
this.timera = 0;
this.timera_count = 0;
this.timerb = 0;
this.timerb_count = 0;
this.timer_step = 0;
}
t.prototype.Reset = function () {
this.timera_count = 0;
this.timerb_count = 0;
}M;
t.prototype.SetTimerControl = function (t) {
var e = this.regtc ^ t;
this.regtc = t;
if (16 & t) {
this.ResetStatus(1);
}
if (32 & t) {
this.ResetStatus(2);
}
if (1 & e) {
this.timera_count = 1 & t ? this.timera : 0;
}
if (2 & e) {
this.timerb_count = 2 & t ? this.timerb : 0;
}
};
M t.prototype.SetTimerA = function (t, e) {
this.regta[1 & t] = e;
var n = (this.regta[0] << 2) + (3 & this.regta[1]);
this.timera = (1024 - n) * this.timer_step;
};
t.prototype.SetTimerB = function (t) {
this.timerb = (256 - t) * this.timer_step;
};
t.prototype.Count = function (t) {
var e = false;
if (this.timera_count) {
this.timera_count -= t << 16;
M if (this.timera_count <= 0) {
e = true;
for (this.TimerA(); this.timera_count <= 0; ) {
this.timera_count += this.timera;
}
if (4 & this.regtc) {
this.SetStatus(1);
}
}
}
if (this.timerb_count) {
this.timerb_count -= t << 12;
if (this.timerb_count <= 0) {
for (e = true; this.timerb_count <= 0;M ) {
this.timerb_count += this.timerb;
}
if (8 & this.regtc) {
this.SetStatus(2);
}
}
}
return e;
};
t.prototype.GetNextEvent = function () {
var t = ((this.timera_count + 65535) >> 16) - 1;
var e = ((this.timerb_count + 4095) >> 12) - 1;
return (t < e ? t : e) + 1;
};
t.prototype.SetTimerBaMse = function (t) {
this.timer_step = (65536e6 / t) | 0;
};
t.prototype.SetStatus = function (t) {};
t.prototype.ResetStatus = function (t) {};
t.prototype.TimerA = function () {};
return t;
})();
t.Timer = e;
})();
(function () {
var t = nt || (nt = {});
var e = (function () {
function n() {
e.call(this);
this.fmvolume = 0;
this.clocMk = 0;
this.rate = 0;
this.pcmrate = 0;
this.pmd = 0;
this.amd = 0;
this.lfocount = 0;
this.lfodcount = 0;
this.lfo_count_ = 0;
this.lfo_count_diff_ = 0;
this.lfo_step_ = 0;
this.lfo_count_prev_ = 0;
this.lfowaveform = 0;
this.rateratio = 0;
this.noise = 0;
this.noisecount = 0;
this.noisedelta = 0;
M this.interpolation = false;
this.lfofreq = 0;
this.status = 0;
this.reg01 = 0;
this.kc = new Array(8);
this.kf = new Array(8);
this.pan = new Array(8);
this.ch = [
new t.Channel4(),
new t.Channel4(),
new t.Channel4(),
new t.Channel4(),
new t.Channel4(),
new t.Channel4(),
new t.Channel4(),
Mnew t.Channel4(),
];
this.chip = new t.Chip();
this.lfo_count_ = 0;
this.lfo_count_prev_ = -1;
this.BuildLFOTable();
for (var n = 0; n < 8; n++) {
this.ch[n].SetChip(this.chip);
this.ch[n].SetType(1);
}
}
var e = t.Timer;
(function (t, e) {
function r() {
this.constructor = t;
}
for (var n in e)M {
if (e.hasOwnProperty(n)) {
t[n] = e[n];
}
}
r.prototype = e.prototype;
t.prototype = new r();
})(n, e);
n.prototype.Init = function (t, e) {
if (!this.SetRate(t, e)) {
return false;
}
this.Reset();
this.SetVolume(0);
this.SetChannelMask(0);
return true;
};
n.prototype.SetRate M= function (t, e) {
this.clock = t;
this.pcmrate = e;
this.rate = e;
this.RebuildTimeTable();
return true;
};
n.prototype.SetChannelMask = function (t) {
for (var e = 0; e < 8; e++) {
this.ch[e].Mute(!!(t & (1 << e)));
}
};
n.prototype.Reset = function () {
for (var t = 0; t < 256; t++) {
this.SetReg(t, 0);
}
M this.SetReg(25, 128);
e.prototype.Reset.call(this);
this.status = 0;
this.noise = 12345;
this.noisecount = 0;
for (t = 0; t < 8; t++) {
this.ch[t].Reset();
}
};
n.prototype.RebuildTimeTable = function () {
var e = this.clock / 64;
this.rateratio =
((e << t.FM_RATIOBITS) + this.rate / 2) / this.rate;
this.SetTimerBase(e);
M this.chip.SetRatio(this.rateratio);
};
n.prototype.SetVolume = function (t) {
t = Math.min(t, 20);
this.fmvolume = t > -192 ? (16384 * Math.pow(10, t / 40)) | 0 : 0;
};
n.prototype.SetStatus = function (t) {
if (!(this.status & t)) {
this.status |= t;
this.Intr(true);
}
};
n.prototype.GetStatus = function (t) {
return this.status;
M };
n.prototype.ResetStatus = function (t) {
if (this.status & t) {
this.status &= ~t;
if (!this.status) {
this.Intr(false);
}
}
};
n.prototype.SetReg = function (e, n) {
if (!(e >= 256)) {
var r = 7 & e;
switch (255 & e) {
case 1:
if (2 & n) {
this.lfo_count_ = 0;
M this.lfo_count_prev_ = -1;
}
this.reg01 = n;
break;
case 8:
if (128 & this.regtc) {
r = 7 & n;
if (!(8 & n)) {
this.ch[r].op[0].KeyOff();
}
if (!(16 & n)) {
this.ch[r].op[1].KeyOff();
}
if (!(32 & n)) {
thiMs.ch[r].op[2].KeyOff();
}
if (!(64 & n)) {
this.ch[r].op[3].KeyOff();
}
} else {
this.ch[7 & n].KeyControl(n >> 3);
}
break;
case 16:
case 17:
this.SetTimerA(e, n);
break;
case 18:
this.SetTimerB(n);
break;
M case 20:
this.SetTimerControl(n);
break;
case 24:
this.lfofreq = n;
this.lfo_count_diff_ =
(this.rateratio *
((16 + (15 & this.lfofreq)) << (12 - t.FM_RATIOBITS))) /
(1 << (15 - (this.lfofreq >> 4)));
break;
case 25:
if ((128 & n) == 0) {
this.amd = 127 & n;
M } else {
this.pmd = 127 & n;
}
break;
case 27:
this.lfowaveform = 3 & n;
break;
case 32:
case 33:
case 34:
case 35:
case 36:
case 37:
case 38:
case 39:
this.ch[r].SetFB((n >> 3) & 7);
this.ch[r].SetAlMgorithm(7 & n);
this.pan[r] = (n >> 6) & 3;
break;
case 40:
case 41:
case 42:
case 43:
case 44:
case 45:
case 46:
case 47:
this.kc[r] = n;
this.ch[r].SetKCKF(this.kc[r], this.kf[r]);
break;
case 48:
case 49:
case 50:
M case 51:
case 52:
case 53:
case 54:
case 55:
this.kf[r] = n >> 2;
this.ch[r].SetKCKF(this.kc[r], this.kf[r]);
break;
case 56:
case 57:
case 58:
case 59:
case 60:
case 61:
case 62:
case 63:
this.ch[r].SetMS((n <<M 4) | (n >> 4));
break;
case 15:
this.noisedelta = n;
this.noisecount = 0;
break;
default:
if (e >= 64) {
this.SetParameter(e, n);
}
}
}
};
n.prototype.SetParameter = function (t, e) {
var n = [0, 2, 1, 3][(t >> 3) & 3];
var r = this.ch[7 & t].op[n];
M switch ((t >> 5) & 7) {
case 2:
r.SetDT((e >> 4) & 7);
r.SetMULTI(15 & e);
break;
case 3:
r.SetTL(127 & e);
break;
case 4:
r.SetKS((e >> 6) & 3);
r.SetAR(2 * (31 & e));
break;
case 5:
r.SetDR(2 * (31 & e));
r.SetAMON((128 & e) != 0);
break;
M case 6:
r.SetSR(2 * (31 & e));
r.SetDT2((e >> 6) & 3);
break;
case 7:
r.SetSL(
[
0, 4, 8, 12, 16, 20, 24, 28, 32, 36, 40, 44, 48, 52, 56,
124,
][(e >> 4) & 15]
);
r.SetRR(4 * (15 & e) + 2);
}
};
n.prototype.BuildLFOTable = function () {
this.amtable = new MArray(4);
this.pmtable = new Array(4);
for (var t = 0; t < 4; t++) {
var e = 0;
this.amtable[t] = new Array(this.OPM_LFOENTS);
this.pmtable[t] = new Array(this.OPM_LFOENTS);
for (var n = 0; n < this.OPM_LFOENTS; n++) {
var r;
var c;
switch (t) {
case 0:
c = ((n + 256) & 511) / 2 - 128;
r = 255 - n / 2;
M break;
case 1:
r = n < 256 ? 255 : 0;
c = n < 256 ? 127 : -128;
break;
case 2:
c = (c = (n + 128) & 511) < 256 ? c - 128 : 383 - c;
r = n < 256 ? 255 - n : n - 256;
break;
case 3:
if (!(3 & n)) {
e = (((32768 * Math.random()) | 0) / 17) & 255;
M}
r = e;
c = e - 128;
}
this.amtable[t][n] = 0 | r;
this.pmtable[t][n] = (-c - 1) | 0;
}
}
};
n.prototype.LFO = function () {
var t;
if (this.lfowaveform === 3) {
if (-131072 & (this.lfo_count_ ^ this.lfo_count_prev_)) {
t = (((32768 * Math.random()) | 0) / 17) & 255;
this.chip.SetPML(((Mt - 128) * this.pmd) / 128 + 128);
this.chip.SetAML((t * this.amd) / 128);
}
} else {
t = (this.lfo_count_ >> 15) & 510;
this.chip.SetPML(
(this.pmtable[this.lfowaveform][t] * this.pmd) / 128 + 128
);
this.chip.SetAML(
(this.amtable[this.lfowaveform][t] * this.amd) / 128
);
}
this.lfo_count_prev_ = this.lfo_count_;
M this.lfo_step_++;
if ((7 & this.lfo_step_) == 0) {
this.lfo_count_ += this.lfo_count_diff_;
}
};
n.prototype.Noise = function () {
this.noisecount += 2 * this.rateratio;
if (this.noisecount >= 32 << t.FM_RATIOBITS) {
var e = 32 - (31 & this.noisedelta);
if (e === 1) {
e = 2;
}
this.noisecount = this.noisecount - (e << t.FM_RATIOBITS);
M if ((31 & this.noisedelta) == 31) {
this.noisecount -= t.FM_RATIOBITS;
}
this.noise = (this.noise >> 1) ^ (1 & this.noise ? 33800 : 0);
}
return this.noise;
};
n.prototype.MixSub = function (t, e) {
if (16384 & t) {
e[this.pan[0]] = this.ch[0].Calc();
}
if (4096 & t) {
e[this.pan[1]] += this.ch[1].Calc();
}
M if (1024 & t) {
e[this.pan[2]] += this.ch[2].Calc();
}
if (256 & t) {
e[this.pan[3]] += this.ch[3].Calc();
}
if (64 & t) {
e[this.pan[4]] += this.ch[4].Calc();
}
if (16 & t) {
e[this.pan[5]] += this.ch[5].Calc();
}
if (4 & t) {
e[this.pan[6]] += this.ch[6].Calc();
}
if (1 & t) {
M if (128 & this.noisedelta) {
e[this.pan[7]] += this.ch[7].CalcN(this.Noise());
} else {
e[this.pan[7]] += this.ch[7].Calc();
}
}
};
n.prototype.MixSubL = function (t, e) {
if (16384 & t) {
e[this.pan[0]] = this.ch[0].CalcL();
}
if (4096 & t) {
e[this.pan[1]] += this.ch[1].CalcL();
}
if (1024 & t) {
M e[this.pan[2]] += this.ch[2].CalcL();
}
if (256 & t) {
e[this.pan[3]] += this.ch[3].CalcL();
}
if (64 & t) {
e[this.pan[4]] += this.ch[4].CalcL();
}
if (16 & t) {
e[this.pan[5]] += this.ch[5].CalcL();
}
if (4 & t) {
e[this.pan[6]] += this.ch[6].CalcL();
}
if (1 & t) {
if (128 & this.noisedeltMa) {
e[this.pan[7]] += this.ch[7].CalcLN(this.Noise());
} else {
e[this.pan[7]] += this.ch[7].CalcL();
}
}
};
var r = new Array(4);
n.prototype.mixStereo = function (t, e, n) {
var c = 0;
for (var i = (this.attenuation, 0); i < 8; i++) {
c = (c << 2) | this.ch[i].Prepare();
}
if (2 & this.reg01) {
c &= 21845;
M }
var a = 0 | n;
for (i = 0; i < e; i++) {
r[1] = r[2] = r[3] = 0;
this.LFO();
if (43690 & c) {
this.MixSubL(c, r);
} else {
this.MixSub(c, r);
}
t[a++] = ((r[1] + r[3] + r[2] + r[3]) / 256) * 0.33;
}
};
n.prototype.Intr = function (t) {};
return n;
})();
t.OPM = e;
})()M;
var ct = new nt.OPM();
var it = ct.Init(3579545, 48e3);
console.log('YM Init: ' + it);
let at = new Array(256);
var st = V;
var ft = X;
var ut = new Array(131072);
var dt = false;
var lt = false;
var ht = false;
var At = false;
var pt = false;
var bt = false;
var gt = false;
var yt = false;
var wt = 0;
var mt = 0;
var Mt = 0;
var vt = 0;
var Lt = 0;
M var It = 0;
var Et = 0;
var St = 2;
var xt = -1;
var kt = {};
var Bt = null;
jt.prototype = {
getTopic: function () {
return this.topic;
},
onEvent: function (t) {},
};
var Ft = null;
var Gt = null;
var zt = false;
var Wt = 662;
var Ut = 0;
var Zt = 0;
var Qt = 0;
var Ht = 0;
var Yt = 0;
var Vt = 0;
var Jt = 0;
Rt(
M new jt('init', function () {
Ft = Ne;
Gt = Ye;
})
);
var te = new Array(2048);
var ee = [1, 1, 0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0];
var ne = [
0, 0, 1, 0, 1, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 0, 1, 1, 1, 0,
1, 0, 1, 0, 0, 0, 0, 1,
];
var re = [
0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 0,
1, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 1, 0, 1, 1, 1,
M 0, 1, 1, 0, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1,
0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 1, 1, 0, 1, 0, 1, 0, 0, 0,
0, 1, 1, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 1, 1, 0, 0, 1, 1,
0, 1, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 1, 0, 0,
0, 1, 1, 0, 0, 1, 1, 1, 1, 0, 0, 1, 0, 0, 0, 1, 1, 1, 0, 0, 1, 1, 0,
1, 0, 1, 1, 0, 1, 1, 0, 1, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1,
1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1M, 0, 0, 0, 1, 0, 0, 0, 0, 1,
0, 0, 0, 1, 0, 1, 0, 1, 1, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 0, 1, 0, 0,
0, 1, 1, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 1, 1, 0, 0, 1, 1,
0, 0, 1, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0,
1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 1,
1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 0, 1, 0, 1, 1, 1, 1, 0,
0, 1, 0M, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 1, 0,
1, 0, 1, 0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0,
0, 0, 1, 0, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 0,
0, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 1, 1, 0,
1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 1, 0, 0, 1, 0, 1, 1, 1, 1, 1, 1,
1, 0, 1, 0, 0, 1, 0, 0, 0, 1, 1, 0, 1, 1, 1, 0, 0, 0, 1, 0, 1, 0, 0,
1, 0, 1, 0, 1, 0, 1, 1, 1, 0, 0, 1, 0, 1, 1, 0, 0, 1,M 1, 1, 1, 1, 0,
0, 0, 1, 1, 0,
];
var ce = [
1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
];
var ie = [0, 0];
var ae = [0, 0];
var oe = [0, 0];
var se = [0, 0];
var fe = [0, 0];
var ue = [0, 0];
var de = [0, 0];
var le = [0, 0];
var he = [0, 0];
var Ae = 0;
var ge = X;
var ye = V;
var we = function (t, e) {
M var n = 0;
var r = 0;
switch (t) {
case 21:
se[0] = 15 & e;
n = 0;
break;
case 22:
se[1] = 15 & e;
n = 1;
break;
case 23:
fe[0] = 31 & e;
n = 0;
break;
case 24:
fe[1] = 31 & e;
n = 1;
break;
case 25:
ue[0] = (15 & e) << 2;
n = 0;
M break;
case 26:
ue[1] = (15 & e) << 2;
n = 1;
break;
default:
return;
}
if (se[n] == 0) {
r = 0;
ie[n] = ue[n];
} else {
r = (fe[n] + 1) & 255;
if (se[n] > 11) {
r = (3 * r) & 255;
}
}
if (r != ae[n]) {
ae[n] = r;
if (oe[n] == 0 || r == 0) {
oe[n] = r;
}
M }
};
var me = qt;
var Me = Xt;
var ve = function (t, e) {
switch (((Wt = t), (Ut = e), t)) {
case 663:
Zt = 1024;
zt = true;
break;
case 660:
Zt = 1;
zt = true;
break;
case 661:
Zt = 8;
zt = true;
break;
case 662:
Zt = 64;
zt = true;
}
if (zt) {
M Jt++;
Vt = Zt * e;
Yt = false;
}
};
var Le = Dt;
var Ie = Nt;
var Ce = _t;
var Ee = function (t) {
if (lt && t >= 1104 && t < 1120) {
var e = st(t - 1104 + 16384);
return e;
}
if (ht && t >= 1120 && t <= 1121) {
e = 1 & t ? ct.GetStatus() : 0;
if (xt != -1 && 1 & t) {
if (xt > 0) {
xt--;
} else if (xt == 0 && St > 0)M {
e = 2;
xt = Et;
if (--St === 0) {
xt = -1;
}
}
}
return e;
}
if (dt && t >= 16384 && t < 32768 && !gt) {
var n = t - 16384;
if (At) {
return m_ram[n];
}
if (pt && n < 8192) {
if (yt) {
return ut[((8191 & n) + 8192 * (15 & Mt)) | ((1 & wt) << 8)];
} else {
M return ut[((8191 & n) + 8192 * (15 & mt)) | ((1 & wt) << 8)];
}
}
if (bt && n >= 8192 && n < 16384) {
if (yt) {
return ut[
((8191 & n) + 8192 * ((Mt >> 4) & 15)) | ((2 & wt) << 7)
];
} else {
return ut[
((8191 & n) + 8192 * ((mt >> 4) & 15)) | ((2 & wt) << 7)
];
}
}
}
return 0;
};
var Se = Mfunction (t, e) {
if (lt && t >= 1104 && t < 1120) {
ft(t - 1104 + 16384, e);
} else if (ht && t >= 1120 && t <= 1121) {
if (1 & t) {
ot(It, e);
if (It === 18 && e === 252) {
xt = Et = 129;
}
} else {
It = e;
}
} else if (dt && t >= 16384 && t < 32768) {
var n = t - 16384;
if (At) {
m_ram[n] = e;
} else if (pt && n < 8M192) {
ut[(8191 & n) + 8192 * (15 & mt)] = e;
} else if (bt && n >= 8192 && n < 16384) {
ut[(8191 & n) + 8192 * ((mt >> 4) & 15)] = e;
}
} else if (t >= 1136 && t < 1152) {
if (t == 1136) {
lt = 16 & (wt = e);
pt = 32 & wt;
bt = 64 & wt;
ht = 128 & wt;
} else if (t == 1144) {
mt = e;
} else if (t == 1148) {
Mt = e;
} else ifM (t == 1137) {
vt = e;
} else if (t == 1138) {
At = 1 & (Lt = e);
gt = 2 & Lt;
}
dt = At || pt || bt;
}
};
var xe = false;
var De = null;
var Ne = new Array(65536);
var _e = new Array(65536);
var Te = new Array(65536);
var ke = false;
var Be = false;
var je = false;
var Re = false;
var Pe = false;
var Oe = false;
var Fe = falsMe;
var Ge = 0;
var ze = false;
var We = false;
Rt(
new jt('onCartridgeLoaded', function () {
ke = ar();
Be = or();
je = sr();
Fe = dr();
gr();
Re = fr();
Pe = lr();
Oe = hr();
Ge = Cr();
})
);
Rt(
new jt('onHighScoreCartLoaded', function (t) {
xe = t;
})
);
Rt(
new jt('highScoreCallbacMkChanged', function (t) {
De = t;
})
);
var rn = '0123456789abcdef'.split('');
if (an('hello') != '5d41402abc4b2a76b9719d911017c592') {
function on(t, e) {
var n = (65535 & t) + (65535 & e);
return (((t >> 16) + (e >> 16) + (n >> 16)) << 16) | (65535 & n);
}
}
var sn = null;
var fn = null;
var un = null;
var dn = null;
var ln = null;
var hn = 0;
var An = 1;
M var pn = 2;
var bn = 3;
var gn = 4;
var yn = 7;
var wn = '';
var mn = '';
var Mn = 0;
var vn = 0;
var Ln = false;
var In = false;
var Cn = [1, 1];
var En = 0;
var Sn = 0;
var xn = 0;
var Dn = 0;
var Nn = false;
var _n = false;
var Tn = 28;
var kn = 1;
var Bn = 0;
var jn = false;
var Rn = false;
var Pn = false;
var On = 0;
vaMr Fn = 0;
var Gn = false;
var zn = false;
var Wn = false;
var Un = 2;
var Zn = false;
var Qn = null;
var Hn = 0;
var Yn = false;
Rt(
new jt('init', function (t) {
ln = t.Region.REGION_NTSC;
sn = Ve;
fn = Je;
un = Ye;
})
);
Rt(
new jt('highScoreCallbackChanged', function (t) {
dn = t;
})
);
var nc = function () {
M this._w = 0;
this.wPlusPlus = function () {
var t = this._w;
this.setW(this._w + 1);
return t;
};
this.wMinusMinus = function () {
var t = this._w;
this.setW(this._w - 1);
return t;
};
this.wPlusEqual = function (t) {
this.setW(this._w + t);
};
this.wMinusEqual = function (t) {
this.setW(this._w - t);
};
this.setW = functionM (t) {
this._w = 65535 & t;
};
this.getW = function () {
return this._w;
};
this.getBL = function () {
return 255 & this._w;
};
this.getBLSigned = function () {
var t = this.getBL();
if ((128 & t) > 0) {
return t - 256;
} else {
return t;
}
};
this.setBL = function (t) {
this.setW((65280 & this._w) | (255 & t));
M };
this.blPlusEqual = function (t) {
this.setBL(this.getBL() + t);
};
this.getBH = function () {
return (65280 & this._w) >>> 8;
};
this.setBH = function (t) {
this.setW((255 & this._w) | ((t << 8) & 65280));
};
this.bhPlusEqual = function (t) {
this.setBH(this.getBH() + t);
};
this.copy = function (t) {
this._w = t._w;
};
};
var rc =M Qe;
var cc = Ye;
var ic = Ne;
var ac = 0;
var oc = 0;
var sc = 0;
var fc = 0;
var uc = 0;
var dc = new nc();
var lc = 0;
var hc = new nc();
var Ac = 0;
var pc = false;
var bc = 1;
var gc = 2;
var yc = 4;
var wc = 8;
var mc = 16;
var Mc = 32;
var vc = 64;
var Lc = 128;
var Ic = 65533;
var Cc = 65532;
var Ec = 65531;
var Sc = 6M5530;
var xc = 65535;
var Dc = 65534;
var Nc = [
7, 6, 0, 0, 2, 3, 5, 0, 3, 2, 2, 2, 0, 4, 6, 0, 2, 5, 0, 0, 0, 4, 6,
0, 2, 4, 0, 0, 0, 4, 7, 0, 6, 6, 0, 0, 3, 3, 5, 0, 4, 2, 2, 2, 4, 4,
6, 0, 2, 5, 0, 0, 0, 4, 6, 0, 2, 4, 0, 0, 0, 4, 7, 0, 6, 6, 0, 0, 0,
3, 5, 0, 3, 2, 2, 2, 3, 4, 6, 0, 2, 5, 0, 0, 0, 4, 6, 0, 2, 4, 0, 0,
0, 4, 7, 0, 6, 6, 0, 0, 0, 3, 5, 0, 4, 2, 2, 0, 5, 4, 6, 0, 2, 5, 0,
0, 0, 4, 6, 0, 2, 4, 0, 0, 0, 4, 7, 0, 2, M6, 0, 0, 3, 3, 3, 0, 2, 0,
2, 0, 4, 4, 4, 0, 2, 6, 0, 0, 4, 4, 4, 4, 2, 5, 2, 0, 0, 5, 0, 0, 2,
6, 2, 0, 3, 3, 3, 0, 2, 2, 2, 0, 4, 4, 4, 0, 2, 5, 0, 6, 4, 4, 4, 0,
2, 4, 2, 0, 4, 4, 4, 0, 2, 6, 0, 0, 3, 3, 5, 0, 2, 2, 2, 0, 4, 4, 6,
0, 2, 5, 0, 0, 0, 4, 6, 0, 2, 4, 0, 0, 0, 4, 7, 0, 2, 6, 0, 0, 3, 3,
5, 0, 2, 2, 2, 0, 4, 4, 6, 0, 2, 5, 0, 0, 0, 4, 6, 0, 2, 4, 0, 0, 0,
4, 7, 0,
];
var Bc = new nc();
var Rc = new nc();
var PcM = new nc();
var Li = 0;
var Si = Ne;
var xi = Qe;
var Di = new Ei(0, 17, 319, 258);
var Ni = new Ei(0, 26, 319, 248);
var _i = null;
var Ti = [new Array(160), new Array(160)];
var ki = 0;
var Bi = Ti[ki];
var ji = 0;
var Ri = false;
var Pi = new nc();
var Oi = new nc();
var Fi = new nc();
var Gi = 0;
var zi = 0;
var Wi = 0;
var Ui = 0;
var Zi = 0;
var Qi = M0;
var Hi = false;
var Yi = false;
var Vi = false;
var ea = new nc();
Rt(
new jt('onCartridgeLoaded', function (t) {
Hi = !t.IsXmEnabled() && !t.IsBanksets();
console.log('Maria RAM Direct: ' + Hi);
Vi = t.IsBanksets();
})
);
var ca = new Array(768);
var oa = b;
var sa = et;
var fa = te;
var ua = be;
var da = Dt;
var la = _t;
var ha = null;
vMar Aa = null;
var pa = 0;
var ba = 0;
var ga = 0;
var ya = false;
var wa = false;
var ma = new Array(8192);
var Ma = new Array(8192);
Rt(
new jt('init', function () {
ha = Yo;
})
);
Rt(
new jt('onCartridgeLoaded', function () {
ya = ar();
})
);
var La = 31440;
var Ia = null;
var Ca = null;
var Ea = new Array(16384);
var Sa = 0M;
var xa = 0;
Rt(new jt('init', Na));
var Ta = aa(
'data:;base64,AAAAAAAAEBAQIyMjNTU1R0dHWlpabGxsfn5+kZGRo6Ojtra2yMjI2tra7e3t////AQAAFAgAJhoAOSwASz8AXVEAcGMAgnYAlIgMp5ofua0xy79E3tJW8ORo//Z7//+NGQAALAAAPggAUBsAYy0AdUAAh1IAmmQFrHcYv4kq0Zs8465P9sBh/9J0/+WG//eYKAAAOwAATQAAXwsAch0AhDAAlkITqVQlu2c3zXlK4Itc8p5u/7CB/8OT/9Wl/+e4KwAAPQAAUAAAYgAJdRIbhyQumTdArElSvltl0G5344CK9ZOc/6Wu/7fB/8rT/9zlIQAFNAAXRgApWQA8aw5OfSBgkDJzokWFtFeXx2mq2Xy8647P/qHh/7Pz/8X//9j/DQAyIABFMgBXRABpVxF8aSOOezagjkizoFvFsMm3YxX/q15L86qT//Lb//8n//9v/AABSBQBkFwB3KQmJPBybTi6uYEDAc1PThWXlmHf3qor/vJz/z6//4cH/89P//+b/AABeAABwAAaCDRmVICunMj65RFDMV2LeaXXwe4f/jpn/oKz/sr7/xdD/1+P/6fX/AABTAAZlABh3ACqKCD2cGk+uLGHBP3TTUYbmY5j4dqv/iL3/mtD/reL/v/T/0v//AAMzABZGAChYADpqAE19C1+PHXGiMIS0QpbGVKjZZ7vrec39i+D/nvL/sP//w///AA8GACEYADMrAEY9AFhPCGpiGn10LY+GP6GZUbSrZMa+dtjQiOvim/31rf//v///ABMAACUAADgAAEoKAFwdEW8vJIFBNpNUSKZmW7h5bcuLgN2dku+wpP/Ct//Uyf/nABAAACIAADQAAUcAE1kAJmsBOH4USpAmXaM4b7VLgcddlNpvpuyCuP6Uy/+m3f+5AAUAABgACSoAHDwALk8AQGEAU3MAZYYGd5gYiqornL09rMs9PweJi0/R05v+G+P+ZAQAAEwgAJRoAOC0ASj8AXVIAb2QAgXYAlIkMppsfuK0xy8BE3dJW7+Ro//d7//+N'
);
var ka = aa(
'data:;base64,AAAAAAAAEBAQIyMjNTU1R0dHWlpabGxsfn5+kZGRo6Ojtra2yMjI2tra7e3t////AQAAFAgAJhoAOSwASz8AXVEAcGMAgnYAlIgMp5ofua0xy79E3tJW8ORo//Z7//+NGgAALQAAPwgAURoAZCwAdj8AiFEAm2QGrXYZv4gr0ps95K1Q9r9i/9J0/+SH//aZKQAAOwAATgAAYAoAchwAhS4El0EWqVMovGY7znhN4Ypf851y/6+E/8GW/9Sp/+a7KwAAPQAATwAAYgAPdBEihiM0mTZGq0hZvVtr0G194n+Q9ZKi/6S0/7bH/8nZ/9vsHwANMQAfQwAyVgBEaA5WeyBpjTJ7n0WNslegxGqy1nzE6Y7X+6Hp/7P7/8XM//9j/CAA6GgBNLQBfPwBxUROEZCWWdjeoiEq7m1zNrW/gwIHy0pP/5Kb/97j//8r//93/AABXAABpEAB8Ig2ONR+gRzGzWUTFbFbYfmnqkHv8o43/taD/x7L/2sT/7Nf//+n/AABdAABvAAuBBh6UGDCmKkO5PVXLT2fdYXrwdIz/hp7/mLH/q8P/vdX/z+j/4vr/AABKAAtdAB5vADCBAUKUFFWmJme4OHnLS4zdXZ7wcLD/gsP/lNX/p+j/ufr/y///AAgkABo2AC1IAD9bAFJtCGR/G3aSLYmkP5u2Uq3JZMDbdtLuieT/m/f/rv//wP//ABEAACQDADYWAEgoAFs6Cm1NHX9fL5JxQaSEVLeWZsmpedu7i+7Nnf/gsP/ywv//ABIAACUAADcAAEkAB1wHGW4ZLIErPpM+UaVQY7hidcp1iNyHmu+ZrP+sv/++0f/RAAsAAB4AADAADkIAIFUAMmcARXkBV4wUaZ4mfLA5jsNLodVds+hwxfqC2P+U6v+nAAAMABhAAGSIAKzQAPUcAUFkAYmsAdH4Ah5APmaMirLU0vsdG0NpZ4+xr9f59//+QEAAAIgAANBAARyMAWTUAa0cAfloAkGwAon4QtZEix6M12rZH7MhZ/tps/+1+//+R'
);
var Ba = aa(
'data:;base64,AAAAAAAAEBAQIyMjNTU1R0dHWlpabGxsfn5+kZGRo6Ojtra2yMjI2tra7e3t////AQAAFAgAJhoAOSwASz8AXVEAcGMAgnYAlIgMp5ofua0xy79E3tJW8ORo//Z7//+NGwAALQAAQAcAUhkAZCwAdz4AiVEAm2MHrnUawIgs05o+5axR979j/9F1/+OI//aaKgAAPAAATgAAYQkAcxsAhS0HmEAZqlIrvGU+z3dQ4Ylj85x1/66H/8Ca/9Os/+W+KgAAPAAATwADYQAVcxAohiM6mDVMqkdfvVpxz2yD4X6W9JGo/6O6/7bN/8jf/9rxHAAULgAnQQA5UwBLZMQ5eeCBwijOCnEWVr1enwWq61HzM5o7e+KHx/7P//8b//9j/AwBBFQBUKABmOgJ4TBWLXyedcTmvg0zCll7UqHDmuoP5zZX/36f/8rr//8z//9//AABaAABtCQB/HBCRLiOkQDW2U0fJZVrbd2ztin7/nJH/rqP/wbb/08j/5tr/+O3/AABaAABtABB/ACORETWkJEe2NlrISGzbW37tbZH/f6P/krb/pMj/ttr/ye3/2///AABBABBTACNlADV4AEeKD1qcIWyvNH7BRpHTWKPma7X4fcj/kNr/ou3/tP//x///AAwTAB4mADE4AENKAFVdB2hvGnqCLI2UP5+mUbG5Y8TLdtbdiOjwmvv/rf//v///ABMAACUAADcCAEoUAFwnD245IYFLM5NeRqZwWLiCasqVfd2nj++5of/MtP/exv/wABAAACMAADUAAEcAEFoAI2wGNX8YR5ErWqM9bLZPf8hikdp0o+2Gtv+ZyP+r2v++AAYAABgACCoAGz0ALU8AP2EAUMnQAZIYHdpkZiasrm70+rtBQwOJj0vR15f+H9/+aAgAAFAcAJxoAOSwASz4AXlEAcGMAg3UAlYgMp5ofuq0xzL9E3tFW8eRo//Z7//+NGwAALgAAQAcAUhkAZSsAdz4AiVAAnGMIrnUawYcs05o/5axR+L5k/9F2/+OI//Wb'
);
var ja = aa(
'data:;base64,AAAAAAAAEBAQIyMjNTU1R0dHWlpabGxsfn5+kZGRo6Ojtra2yMjI2tra7e3t////AAAABREAFyMAKTUAPEgATloAYGwAc38AhZEQmKMiqrY1vMhHz9tZ4e1s8/9+//+QDQAAIAAAMhIARCQAVzcAaUkAe1sAjm4AoIAPspMhxaU017dG6spY/Nxr/+59//+PIgAANAAARgEAWRMAayUAfTgAkEoAol0StG8kx4E22ZRJ66Zb/rht/8uA/92S/++lKwAAPQAAUAAAYgUAdRcChyoUmTwmrE45vmFL0HNMd44Vw9ZiC/6qV/72n/8+5/+HMKAAAOgAATQAOXwAhcg8zhCFFljRYqUZqu1h8zWuP4H2h8pCz/6LG/7TY/8fq/9n9GQAbKwAuPgBAUABSYw5ldSF3hzOJmkWcrFiuvmrA0XzT44/l9aH3/7T//8b//9j/AQBDEwBWJgBoOAN7SxWNXSifbzqygkzElF/WpnHpuYP7y5b/3aj/8Lv//83//9//AABaAABtCQB/HBCRLiOkQTW2U0fIZVrbeGztin7/nJH/r6P/wbX/08j/5tr/+Oz/AABbAABuAA+AASGSEzOlJka3OFjJSmvcXX3ub4//gaL/lLT/psb/udn/y+v/3f3/AABGAA5YACBrADJ9AEWPEVeiJGm0NnzGSI7ZW6DrbbP+gMX/ktj/pOr/t/z/yf//AAkfABwxAC5DAEBWAFNoCGV7GniNLYqfP5yyUa/EZMHWdtPpiOb7m/j/rf//v///ABIAACQAADYSAEklAFs3C21JHYBcMJJuQqSAVLeTZ8mledyM3i+7Knv/csP/vw///ABIAACUAADcAAEkACFwFGm4YLIAqP5M8UaVPY7hhdspziNyGm++Yrf+qv/+90v/PAAsAAB4AADAADUIAIFUAMmcARHkCV4wUaZ4mfLE5jsNLoNVes+hwxfqC1/+V6v+nAAAABRAAFyMAKjUAPEcATloAYWwAc38AhZEQmKMiqrY0vchHz9pZ4e1s9P9+//+Q'
);
var Ra = aa(
'data:;base64,AAAAAAAAEBAQIyMjNTU1R0dHWlpabGxsfn5+kZGRo6Ojtra2yMjI2tra7e3t////AAAABREAFyMAKTUAPEgATloAYGwAc38AhZEQmKMiqrY1vMhHz9tZ4e1s8/9+//+QDgAAIAAAMxEARSQAWDYAakgAfFsAj20AoYAPs5IixqQ02LdG6slZ/dtr/+59//+QIwAANQAARwAAWhIAbCQAfjcAkUkCo1sUtW4myIA52pJL7aVd/7dw/8qC/9yU/M+6nKwAAPgAAUAAAYgQAdRYHhygZmjsrrE0+vmBQ0XJi44R19ZeH/6ma/7us/86+/+DRJwAAOQADSwAWXgAocA46giFNlTNfp0ZxuViEzGqW3n2o8Y+7/6HN/7Tg/8by/9j/FQAjKAA2OgBITABbXw9tcSF/gzSSlkakqFi2u2vJzX3b35Dt8qL//7T//8f//9n/AABKDQBcIABvMgWBRRiUVyqmaTy4fE/LjmHdoHPvs4b/xZj/16v/6r3//M///+L/AABdAABvAgKBFRSUJyemOTm4TEvLXl7dcHDwg4L/lZX/qKf/urn/zMz/397/8fH/AABXAAFqABR8ACaODTmhH0uzMV3FRHDYVoLqaJT8e6f/jbn/n8v/st7/xPD/1v//AAA7ABNNACVgADdyAEqEDVyXH2+pMoG7RJPOVqbgabjye8r/jd3/oO//sv//xf//AA0OACAgADIyAERFAFdXCGlpGnt8LI6OP6CgUbKzY8XFdtfYiOnqmvz8rf//v///ABMAAMCUAADgAAEoQAFwjEG81IoFHNJNaR6ZsWbh+a8qRft2jkO+1o//Itf/ax//tABAAACMAADUAAEcAEVoAJGwENn4XSJEpW6M7bbVOf8hgktpzpOyFt/+Xyf+q2/+8AAYAABgACCoAGz0ALU8AP2IAUnQAZIYHdpkZiassm70+rdBQwOJj0vR15P+H9/+aAQAAEwgAJRoAOC0ASj8AXVIAb2QAgXYAlIkMppsfuK0xy8BE3dJW7+Ro//d7//+N'
);
var Pa = aa(
'data:;base64,AAAAAAAAEBAQIyMjNTU1R0dHWlpabGxsfn5+kZGRo6Ojtra2yMjI2tra7e3t////AAAABREAFyMAKTUAPEgATloAYGwAc38AhZEQmKMiqrY1vMhHz9tZ4e1s8/9+//+QDwAAIQAANBEARiMAWDUAa0gAfVoAkGwAon8QtJEix6Q02bZH68hZ/tts/+1+//+QJAAANgAASAAAWxEAbSMMAgDUAkkgEpFoXt20pyX8725FO7qRg/7Zy/8iF/9uX/+2pLAAAPgAAUAAAYwMAdRUMhycfmjoxrExDvl5W0XFo44N69pWN/6if/7qx/8zE/9/WJQAANwALSQAeXAAwbg5CgSBVkzNnpUV5uFeMymqe3Hyw74/D/6HV/7Pn/8b6/9j/EQAsIwA+NgBRSABjWhB1bSKIfzWakUespFq/tmzRyH7j25H27aP//7X//8j//9r/AABQBwBjGQB1LAiHPhuaUC2sYz++dVLRh2Tjmnb1rIn/vpv/0a3/48D/9tL//+X/AABeAABwAAaCDRmVICunMj65RFDMV2LeaXXwe4f/jpn/oKz/sr7/xdD/1+P/6fX/AABRAAdjABl2ACyIBj6aGFCtK2O/PXXRT4fkYpr2dKz/h7//mdH/q+P/vvb/0P//AAUtABg/ACpSADxkAE92CmGJHHObLoauQZjAU6vSZb3leM/3iuL/nfT/r///wf//ABAAACMNADUfAEcxAFpECWxWG35MoLpF7QKONUrWfZciyd9rEiu3WnP/prv/7wf//ABMAACUAADcAAEoABFwNF28gKYEyO5NFTqZXYLhpcsp8hd2Ol++gqv+zvP/Fzv/XAAwAAB8AADEAC0MAHVYAL2gAQnoFVI0XZ58qebI8i8ROntZhsOlzwvuG1f+Y5/+qAAAABBEAFyMAKTUAO0gATloAYG0Acn8AhZEQl6QiqrY1vMhHzttZ4e1s8/9+//+RDwAAIQAAMxEARiMAWDYAa0gAfVoAj20Aon8QtJEixqQ02bZH68lZ/dtr/+1+//+Q'
);
var Oa = aa(
'data:;base64,AAAAERERIiIiMzMzREREVVVVZmZmd3d3iIiImZmZqqqqu7u7zMzM3d3d7u7u////FgoAJxsAOCwAST0AWk4Aa18AfHAAjYEFnpIWr6MnwLQ40cVJ4tZa8+dr//h8//+NLgAAPwkAUBoAYSsAcjwAg00AlF4ApW8QtoAhx5Ey2MKJD6bNU+sRl/9V2/+aH//eYPQAATgAAXwoAcBsAgSwAkj0Oo04ftF8wxXBB1oFS55Jj+KN0/7SF/8WW/9an/+e4PwAAUAAAYQAJchAagyErlDI8pUNNtlRex2Vv2HaA6YeR+pii/6mz/7rE/8vV/9zmNgAZRwAqWAA7aQxMeh1diy5unD9/rVCQvmGhz3Ky4IPD8ZTU/6Xl/7b2/8f//9j/IQBHMgBYQwBpVA96ZSCLdjGch0KtmFO+qWTPunXgy4bx3Jf/7aj//rn//8r//9v/BgBnFwB4KAmJORqaSiurWzy8bE3NfV7ejm/vn4D/sJH/waL/0rP/48T/9NX//+b/AAByAAeDDBiUHSmlLjq2P0vHUFzYYW3pcn76g4//lKD/pbH/tsL/x9P/2OT/6fX/AAhnABl4ACqJBTuaFkyrJ128OG7NSX/eWpDva6H/fLL/jcP/ntT/r+X/wPb/0f//ABhHAClYADppAEt6B1yLGG2cKX6tOo++S6DPXLHgbcLxftP/jM+T/oPX/sf//wv//ACMZADQqAEU7AFZMBWddFnhuJ4l/OJqQSauhWryya83DfN7Uje/lnv/2r///wP//ACcAADgAAEkIAFoZDmsqH3w7MI1MQZ5dUq9uY8B/dNGQheKhlvOyp//DuP/Uyf/lACQAADUAAUYAElcAI2gANHkORYofVpswZ6xBeL1Sic5jmt90q/CFvP+Wzf+n3v+4ABkACyoAHDsALUwAPl0AT24AYH8AcZAQgqEhk7IypMNDtdRUxuVl1/Z26P+H+f+YFgkAJxoAOCsASTwAWk0Aa14AfG8AjYAFnpEWr6InwLM40cRJ4tVa8+Zr//d8//+N'
);
var Fa = aa(
'data:;base64,AAAAERERIiIiMzMzREREVVVVZmZmd3d3iIiImZmZqqqqu7u7zMzM3d3d7u7u////FgoAJxsAOCwAST0AWk4Aa18AfHAAjYEFnpIWr6MnwLQ40cVJ4tZa8+dr//h8//+MNLwAAQAgAURkAYioAczsAhEwAlV0Apm4Rt38iyJAz2aFE6rJV+8Nm/9R3/+WI//aZPQAATgAAXwkAcBoAgSsAkjwRo00itF4zxW9E1oBV55Fm+KJ3/7OI/8SZ/9Wq/+a7PwAAUAAAYQAPcg8ggyAxlDFCpUJTtlNkx2R12HWG6YaX+peo/6i5/7nK/8rb/9vsMwAhRAAyVQBDZgxUdx1liC52mT+HqlCYu2GpzHK63YPL7pTc/6Xt/7b+/8f//9j/HABPLQBgPgBxTxGCYCKTcTOkgkS1k1XGpGbXtXfoxoj515n/6Kr/+bv//8z//93/AABrEQB8IgyNMx2eRC6vVT/AZlDRd2HiiHLzmYP/qpT/u6X/zLb/3cf/7tj//+n/AABxAAyCBR2TFi6kJz+1OFDGSWHXWnLoa4P5fJT/jaX/nrb/r8f/wNj/0en/4vr/AA1fAB5wAC+BAECSEFGjIWK0MnPFQ4TWVJXnZab4drf/h8j/mNn/qer/uvv/y///AB04AC5MJAD9aAFBrBWF8FnKNJ4OeOJSvSaXAWrbRa8fifNjzjen/nvr/r///wP//ACYFADcWAEgnAFk4B2pJGHtaKYxrOp18S66NXL+ebdCvfuHAj/LRoP/isf/zwv//ACcAADgAAEkABVoFFmsWJ3wnOI04SZ5JWq9aa8BrfNF8jeKNnvOer/+vwP/A0f/RACAAADEADUIAHlMAL2QAQHUAUYYOYpcfc6gwhLlBlcpSpttjt+x0yP2F2f+W6v+nCBIAGSMAKjQAO0UATFYAXWcAbngAf4kIkJoZoasqsrw7w81M1N5d5e9u9v9///+QJAAANREARiIAVzMAaEQAeVUAimYAm3cJrIgavZkrzqo837tN8Mxe/91v/+6A//+R'
);
var Ga = aa(
'data:;base64,AAAAERERIiIiMzMzREREVVVVZmZmd3d3iIiImZmZqqqqu7u7zMzM3d3d7u7u////FgoAJxsAOCwAST0AWk4AaM18AfHAAjYEFnpIWr6MnwLQ40cVJ4tZa8+dr//h8//+NLwAAQAgAURkAYioAczsAhEwAlV0Bpm4St38jyJA02aFF6rJW+8Nn/9R4/+WJ//aaPgAATwAAYAgAcRkAgioDkzsUpEwltV02xm5H139Y6JBp+aF6/7KL/8Oc/9St/+W+PgAATwADYAAUcQ4lgh82kzBHpEFYtVJpxmN613SL6IWc+Zat/6e+/7jP/8ng/9rxMAApQQA6UgBLYwxcdB1thS5+lj+Pp1CguGGxyXLC2oPT65Tk/KX1/7b//8f//9j/FwBWKABnOQJ4ShOJWySabDWrfUa8jlfNn2jesHnvwYr/0pv/46z/9L3//87//9//AABvCgCAGxCRLCGiPTKzTkPEX1TVcGXmgXb3kof/o5j/tKn/xbr/1sv/59z/+O3/AABvABGAACKRDzOiIESzMVXEQmbVU3fmZIj3dZn/hqr/l7v/qMz/ud3/yu7/2///ABJVACNmADR3AEWIDFaZHWeqLni7PM4nMUJrdYavucrz/g83/lN7/pe//tv//x///ACAoADE5AEJKAFNbBGRsFXV9JoaON5efSKiwWbnBasrSe9vjjOz0nf3/rv//v///ACcAADgCAEkTAFokC2s1HHxGLY1XPp5oT695YMCKcdGbguKsk/O9pP/Otf/fxv/wACUAADYAAEcADlgAH2kDMHoUQYslUpw2Y61HdL5Yhc9pluB6p/GLuP+cyf+t2v++ABoACSsAGjwAK00APF4ATW8AXoABb5ESgKIjkbM0osRFs9VWxOZn1fd45v+J9/+aFgkAJxoAOCsASTwAWk0Aa14AfG8AjYAFnpEWr6InwLM40cRJ4tVa8+Zr//d8//+NMAAAQQcAUhgAYykAdDoAhUsAllwCp20TuH4kyY812qBG67FX/MJo/9N5/+SK//Wb'
);
var za = aa(
'data:;base64,AAAAERERIiIiMzMzREREVVVVZmZmd3d3iIiImZmZqqqMqu7u7zMzM3d3d7u7u////BxMAGCQAKTUAOkYAS1cAXGgAbXkAfooIj5sZoKwqsb07ws5M099d5PBu9f9///+QIgIAMxMARCQAVTUAZkYAd1cAiGgAmXkHqooYu5spzKw63b1L7s5c/99t//B+//+PNgAARwIAWBMAaSQAejUAi0YAnFcLrWgcvnktz4o+4JtP8axg/71x/86C/9+T//CkPwAAUAAAYQQAchUAgyYQlDchpUgytllDx2pU2Htl6Yx2+p2H/66Y/7+p/9C6/+HLPQAATgAOXwAfcA0wgR5Bki9So0BjtFF0xWKF1nOW54Sn+JW4/6bJ/7fa/8jr/9n8LgAvPwBAUABRYQxich1zgy6ElD+VpVCmtmG3x3LI2IPZ6ZTq+qX7/7b//8f//9j/FgBXJwBoOAJ5SROKWiSbazWsfEa9jVfOnmjfr3nwwIr/0Zv/4qz/873//87//9//AABuCwB/HA+QLSChPjGyT0LDYFPUcWTlgnX2k4b/pJf/taj/xrnM/18r/6Nv/+ez/AABwAA+BASCSEjGjI0K0NFPFRWTWVnXnZ4b4eJf/iaj/mrn/q8r/vNv/zez/3v3/AA9bACBsADF9AEKODlOfH2SwMHXBQYbSUpfjY6j0dLn/hcr/ltv/p+z/uP3/yf//AB00AC5FAD9WAFBnBWF4FnKJJ4OaOJSrSaW8WrbNa8fefNjvjen/nvr/r///wP//ACYDADcUAEglAFk2B2pHGHtYKYxpOp16S66LXL+cbdCtfuG+j/LPoP/gsf/xwv//ACcAADgAAEkABVoFFmsWJ3wnOI04SZ5JWq9aa8BrfNF8jeKNnvOer/+vwP/A0f/RACAAADEADEIAHVMALmQAP3UAUIYPYZcgcqgxg7lClMpTpdtktux1x/2G2P+X6f+oBhMAFyQAKDUAOUYASlcAW2gAbHkAfYoJjpsan6wrsL08wc5N0t9e4/Bv9P+A//+R'
);
var Wa = aa(
'data:;base64,AMAAAERERIiIiMzMzREREVVVVZmZmd3d3iIiImZmZqqqqu7u7zMzM3d3d7u7u////BxMAGCQAKTUAOkYAS1cAXGgAbXkAfooIj5sZoKwqsb07ws5M099d5PBu9f9///+QIwEANBIARSMAVjQAZ0UAeFYAiWcAmngIq4kZvJoqzas73rxM781d/95u/+9///+QNwAASAAAWREAaiIAezMAjEQAnVUOrmYfv3cw0IhB4ZlS8qpj/7t0/8yF/92W/+6nQAAAUQAAYgMAcxQFhCUWlTYnpkc4t1hJyGla2Xpr6ot8+5yN/62e/76v/8/A/+DROwAGTAAXXQAobgw5fx1KkC5boT9sslB9w2GO1HKf5YOw9pTB/6XS/7bj/8f0/9j/KQA4OgBJSwBaXA1rbR58fi+Nj0CeoFGvsWLAwnPR04Ti5JXz9ab//7f//8j//9n/DwBfIABwMQWBQhaSUyejZDi0dUnFhlrWl2vnqHz4uY3/yp7/26//7MD//dH//+L/AABxAgOCEMxSTJCWkNTa1RkfGV1jXaGnoeXr5iov/m5z/rK3/vb7/zs//3+D/8PH/AARrABV8ACaNCjeeG0ivLFnAPWrRTnviX4zzcJ3/ga7/kr//o9D/tOH/xfL/1v//ABVOACZfADdwAEiBCVmSGmqjK3u0PIzFTZ3WXq7nb7/4gND/keH/ovL/s///xP//ACIhADMyAERDAFVUBGZlFXd2JoiHN5mYSKqpWbu6aszLe93cjO7tnf/+rv//v///ACcAADgAAEkOAFofDWswHnxBL41SQJ5jUa90YsCFc9GWhOKnlfO4pv/Jt//ayP/rACQAADUAAEYAEFcAIWgAMnkRQ4oiVJszZaxEdr1Vh85mmN93qfCIuv+Zy/+q3P+7ABoACisAGzwALE0APV4ATm8AX4AAcJERgaIikrMzo8REtNVVxeZm1vd35/+I+P+ZFgkAJxoAOCsASTwAWk0Aa14AfG8AjYAFnpEWr6InwLM40cRJ4tVa8+Zr//d8//+N'
);
M var Ua = aa(
'data:;base64,AAAAERERIiIiMzMzREREVVVVZmZmd3d3iIiImZmZqqqqu7u7zMzM3d3d7u7u////BxMAGCQAKTUAOkYAS1cAXGgAbXkAfooIj5sZoKwqsb07ws5M099d5PBu9f9///+QJAAANREARiIAVzMAaEQAeVUAimYAm3cIrIgZvZkqzqo737tM8Mxd/91u/+5///+QOAAASQAAWhAAayEAfDIAjUMAnlQRr2UiwHYz0YdE4phV86lm/7p3/8uI/9yZ/+2qQAAAUQAAYgIAcxMLhCQclTUtpkY+t1dPyGhg2Xlx6oqC+5uT/6yk/721/87G/9/XOQAOSgAfWwAwbAxBfR1Sji5jnz90sFCFwWGW0nKn44O49JTJ/6Xa/7br/8f8/9j/JQBBNgBSRwBjWA50aR+FejCWi0GnnFK4rWPJvnTaz4Xr4Jb88af//7j//8n//9r/CABlGQB2KgiHOxmYTCqpXTu6bkzLf13MckG7toX/+spD/w6H/1LL/5cP/9tT//+X/AAByAAeDDBiUHSmlLjq2P0vHUFzYYW3pcn76g4//lKD/pbH/tsL/x9P/2OT/6fX/AAllABp2ACuHBDyYFU2pJl66N2/LSIDcWZHtaqL+e7P/jMT/ndX/rub/v/f/0P//ABpAACtRADxiAE1zBl6EF2+VKICmOZG3SqLIW7PZbMTqfdX7jub/n/f/sP//wf//ACUNADYeAEcvAFhABmlRF3piKItzOZyESq2VW76mbM+3feDIjvHZn//qsP/7wf//ACcAADgAAEkAA1oKFGsbJXwsNo09R55OWK9facBwetGBi+KSnPOjrf+0vv/Fz//WACAAADEAC0IAHFMALWQAPnUAT4YQYJchcagygrlDk8pUpNtltex2xv2H1/+Y6P+pBxIAGCMAKTQAOkUAS1YAXGcAbXgAfokIj5oZoKsqsbw7ws1M095d5O9u9f9///+QJAAANREARiIAVzMAaEQAeVUAimYAm3cJrIgavZkMrzqo837tN8Mxe/91v/+6A//+R'
);
var Za = 0;
var Qa = 1;
var Ha = 2;
var Ya = Ha;
var Va = new Ei(0, 16, 319, 258);
var Ja = new Ei(0, 27, 319, 250);
var Xa = new Ei(0, 16, 319, 308);
var qa = new Ei(0, 26, 319, 297);
var Ka = [
0, 0, 0, 37, 37, 37, 52, 52, 52, 79, 79, 79, 91, 91, 91, 105, 105,
105, 123, 123, 123, 138, 138, 138, 167, 167, 167, 185, 185, 185, 197,
197, 197, 208, 208, 208, 215, 215, 215, 225, 22M5, 225, 244, 244, 244,
255, 255, 255, 76, 50, 0, 98, 58, 0, 123, 74, 0, 154, 96, 0, 181, 116,
0, 204, 133, 0, 231, 158, 8, 247, 175, 16, 255, 195, 24, 255, 208, 32,
255, 216, 40, 255, 223, 48, 255, 230, 59, 255, 244, 64, 255, 250, 75,
255, 255, 80, 153, 37, 0, 170, 37, 0, 180, 37, 0, 211, 48, 0, 221, 72,
2, 226, 80, 9, 244, 103, 0, 244, 117, 16, 255, 158, 16, 255, 172, 32,
255, 186, 58, 255, 191, 80, 255, 198, 109, 255, 213, 128, 255, 228,
144, 2M55, 230, 153, 152, 12, 12, 153, 12, 12, 194, 19, 0, 211, 19, 0,
226, 53, 0, 227, 64, 0, 228, 64, 32, 229, 82, 48, 253, 120, 84, 255,
138, 106, 255, 152, 124, 255, 164, 139, 255, 179, 158, 255, 194, 178,
255, 208, 186, 255, 215, 192, 153, 0, 0, 169, 0, 0, 194, 4, 0, 211, 4,
0, 218, 4, 0, 219, 8, 0, 228, 32, 32, 246, 64, 64, 251, 112, 112, 251,
126, 126, 251, 143, 143, 255, 159, 159, 255, 171, 171, 255, 185, 185,
255, 201, 201, 255, 207, 207, 126, 0, 80, 128M, 0, 80, 128, 0, 95, 149,
11, 116, 170, 34, 136, 187, 47, 154, 206, 63, 173, 215, 90, 182, 228,
103, 195, 239, 114, 206, 251, 126, 218, 255, 141, 225, 255, 157, 229,
255, 165, 231, 255, 175, 234, 255, 184, 236, 72, 0, 108, 92, 4, 136,
101, 13, 144, 123, 35, 167, 147, 59, 191, 157, 69, 201, 167, 79, 211,
178, 90, 222, 189, 101, 233, 197, 109, 241, 206, 118, 250, 213, 131,
255, 218, 144, 255, 222, 156, 255, 226, 169, 255, 230, 182, 255, 27,
0, 112,M 34, 27, 141, 55, 48, 162, 72, 65, 179, 89, 82, 196, 99, 92,
206, 111, 104, 218, 125, 118, 232, 135, 128, 248, 147, 140, 255, 157,
151, 255, 168, 163, 255, 179, 175, 255, 188, 184, 255, 196, 193, 255,
218, 209, 255, 0, 13, 127, 0, 18, 167, 0, 24, 192, 10, 43, 209, 27,
74, 227, 47, 88, 240, 55, 104, 255, 73, 121, 255, 91, 133, 255, 109,
150, 255, 127, 163, 255, 140, 173, 255, 150, 180, 255, 168, 192, 255,
183, 203, 255, 198, 214, 255, 0, 41, 90, 0, 56, 118,M 0, 72, 146, 0,
92, 172, 0, 113, 198, 0, 134, 208, 10, 155, 223, 26, 168, 236, 43,
182, 255, 63, 194, 255, 69, 203, 255, 89, 211, 255, 127, 218, 255,
143, 222, 255, 160, 226, 255, 176, 235, 255, 0, 56, 57, 0, 60, 72, 0,
61, 91, 2, 102, 127, 3, 115, 131, 0, 156, 170, 0, 161, 187, 1, 164,
204, 3, 187, 255, 5, 218, 226, 24, 229, 255, 52, 234, 255, 73, 239,
255, 102, 242, 255, 132, 244, 255, 158, 249, 255, 0, 74, 0, 0, 93, 0,
0, 112, 0, 0, 139, 0, 0,M 169, 0, 0, 187, 5, 0, 189, 0, 2, 208, 5, 26,
213, 64, 90, 241, 119, 130, 239, 167, 132, 237, 209, 137, 255, 237,
125, 255, 255, 147, 255, 255, 155, 255, 255, 34, 74, 3, 39, 83, 4, 48,
100, 5, 60, 119, 12, 69, 140, 17, 90, 165, 19, 27, 210, 9, 31, 221, 0,
61, 205, 45, 61, 205, 48, 88, 204, 64, 96, 211, 80, 162, 236, 85, 179,
242, 74, 187, 246, 93, 196, 248, 112, 46, 63, 12, 54, 74, 15, 64, 86,
21, 70, 95, 23, 87, 119, 26, 101, 133, 28, 116, 147, 29, 143, 1M65, 37,
173, 183, 44, 188, 199, 48, 201, 213, 51, 212, 224, 59, 224, 236, 66,
234, 246, 69, 240, 253, 71, 244, 255, 111, 85, 36, 0, 90, 44, 0, 108,
59, 0, 121, 75, 0, 185, 117, 0, 187, 133, 0, 193, 161, 32, 208, 176,
47, 222, 190, 63, 230, 198, 69, 237, 205, 87, 245, 219, 98, 251, 229,
105, 252, 238, 111, 253, 243, 119, 253, 243, 127, 92, 39, 0, 92, 47,
0, 113, 59, 0, 123, 72, 0, 185, 104, 32, 187, 114, 32, 197, 134, 41,
215, 150, 51, 230, 164, 6M4, 244, 177, 75, 253, 193, 88, 255, 204, 85,
255, 212, 97, 255, 221, 105, 255, 230, 121, 255, 234, 152,
];
var $a = [
0, 0, 0, 28, 28, 28, 57, 57, 57, 89, 89, 89, 121, 121, 121, 146, 146,
146, 171, 171, 171, 188, 188, 188, 205, 205, 205, 217, 217, 217, 230,
230, 230, 236, 236, 236, 242, 242, 242, 248, 248, 248, 255, 255, 255,
255, 255, 255, 38, 48, 1, 36, 56, 3, 35, 64, 5, 81, 84, 27, 128, 105,
49, 151, 129, 53, 175, 153, 58, 194, 167, 62, M213, 181, 67, 219, 192,
61, 225, 203, 56, 226, 216, 54, 227, 229, 52, 239, 242, 88, 251, 255,
125, 251, 255, 125, 57, 23, 1, 94, 35, 4, 131, 48, 8, 165, 71, 22,
200, 95, 36, 227, 120, 32, 255, 145, 29, 255, 171, 29, 255, 197, 29,
255, 206, 52, 255, 216, 76, 255, 230, 81, 255, 244, 86, 255, 249, 119,
255, 255, 152, 255, 255, 152, 69, 25, 4, 114, 30, 17, 159, 36, 30,
179, 58, 32, 200, 81, 34, 227, 105, 32, 255, 129, 30, 255, 140, 37,
255, 152, 44, M255, 174, 56, 255, 197, 69, 255, 197, 89, 255, 198, 109,
255, 213, 135, 255, 228, 161, 255, 228, 161, 74, 23, 4, 126, 26, 13,
178, 29, 23, 200, 33, 25, 223, 37, 28, 236, 59, 56, 250, 82, 85, 252,
97, 97, 255, 112, 110, 255, 127, 126, 255, 143, 143, 255, 157, 158,
255, 171, 173, 255, 185, 189, 255, 199, 206, 255, 199, 206, 5, 5, 104,
59, 19, 109, 113, 34, 114, 139, 42, 140, 165, 50, 166, 185, 56, 186,
205, 62, 207, 219, 71, 221, 234, 81, 235, 244, 95, 245, M254, 109, 255,
254, 122, 253, 255, 135, 251, 255, 149, 253, 255, 164, 255, 255, 164,
255, 40, 4, 121, 64, 9, 132, 89, 15, 144, 112, 36, 157, 136, 57, 170,
164, 65, 195, 192, 74, 220, 208, 84, 237, 224, 94, 255, 233, 109, 255,
242, 124, 255, 248, 138, 255, 255, 152, 255, 254, 161, 255, 254, 171,
255, 254, 171, 255, 53, 8, 138, 66, 10, 173, 80, 12, 208, 100, 40,
208, 121, 69, 208, 141, 75, 212, 162, 81, 217, 176, 88, 236, 190, 96,
255, 197, 107, 25M5, 204, 119, 255, 209, 131, 255, 215, 144, 255, 219,
157, 255, 223, 170, 255, 223, 170, 255, 5, 30, 129, 6, 38, 165, 8, 47,
202, 38, 61, 212, 68, 76, 222, 79, 90, 238, 90, 104, 255, 101, 117,
255, 113, 131, 255, 128, 145, 255, 144, 160, 255, 151, 169, 255, 159,
178, 255, 175, 190, 255, 192, 203, 255, 192, 203, 255, 5, 30, 129, 6,
38, 165, 8, 47, 202, 38, 61, 212, 68, 76, 222, 79, 90, 238, 90, 104,
255, 101, 117, 255, 113, 131, 255, 128, 145, 255, 144, 160,M 255, 151,
169, 255, 159, 178, 255, 175, 190, 255, 192, 203, 255, 192, 203, 255,
12, 4, 139, 34, 24, 160, 56, 45, 181, 72, 62, 199, 88, 79, 218, 97,
89, 236, 107, 100, 255, 122, 116, 255, 138, 132, 255, 145, 142, 255,
153, 152, 255, 165, 163, 255, 177, 174, 255, 184, 184, 255, 192, 194,
255, 192, 194, 255, 29, 41, 90, 29, 56, 118, 29, 72, 146, 28, 92, 172,
28, 113, 198, 50, 134, 207, 72, 155, 217, 78, 168, 236, 85, 182, 255,
112, 199, 255, 140, 2M16, 255, 147, 219, 255, 155, 223, 255, 175, 228,
255, 195, 233, 255, 195, 233, 255, 47, 67, 2, 57, 82, 2, 68, 97, 3,
65, 122, 18, 62, 148, 33, 74, 159, 46, 87, 171, 59, 92, 189, 85, 97,
208, 112, 105, 226, 122, 114, 245, 132, 124, 250, 141, 135, 255, 151,
154, 255, 166, 173, 255, 182, 173, 255, 182, 10, 65, 8, 13, 84, 10,
16, 104, 13, 19, 125, 15, 22, 146, 18, 25, 165, 20, 28, 185, 23, 30,
201, 25, 33, 217, 27, 71, 228, 45, 110, 240, 64, 120, 247, 77, 131,M
255, 91, 154, 255, 122, 178, 255, 154, 178, 255, 154, 4, 65, 11, 5,
83, 14, 6, 102, 17, 7, 119, 20, 8, 136, 23, 9, 155, 26, 11, 175, 29,
72, 196, 31, 134, 217, 34, 143, 233, 36, 153, 249, 39, 168, 252, 65,
183, 255, 91, 201, 255, 110, 220, 255, 129, 220, 255, 129, 2, 53, 15,
7, 63, 21, 12, 74, 28, 45, 95, 30, 79, 116, 32, 89, 131, 36, 100, 146,
40, 130, 161, 46, 161, 176, 52, 169, 193, 58, 178, 210, 65, 196, 217,
69, 214, 225, 73, 228, 240, 78, M242, 255, 83, 242, 255, 83,
];
var to = { 0: Ka, 1: Ta, 2: ka, 3: Ba, 4: Oa, 5: Fa, 6: Ga };
var eo = { 0: $a, 1: ja, 2: Ra, 3: Pa, 4: za, 5: Wa, 6: Ua };
var no = 3;
new Array(131072);
var fo = function (t) {
for (var e = 0; e < t; e++) {
if (oe[0] > 1) {
oe[0]--;
} else if (oe[0] == 1) {
oe[0] = ae[0];
pe(0);
}
if (oe[1] > 1) {
oe[1]--;
} elsMe if (oe[1] == 1) {
oe[1] = ae[1];
pe(1);
}
te[Ae++] = (ie[0] + ie[1]) & 255;
if (Ae >= 2048) {
Ae = 0;
}
}
};
var uo = function () {};
var lo = function (t) {
var e;
var n = b;
var r = y;
var c = new Array(1, 28, 114);
for (var i = t; t; ) {
var a = 0;
for (e = 0; e < p / 8; e++) {
var o;
varM s = new Array(0, 0, 0);
var f = 1 & M ? 2 : 1;
if (3 & O) {
for (o = 0; o < 3; o++) {
A[o]++;
if (A[o] >= c[o]) {
A[o] = 0;
s[o] = 1;
}
}
S = (S + 1) % 15;
x = (x + 1) % 31;
D = (D + 1) % 511;
N = (N + 1) % 131071;
if (64 & M && s[0]) {
q(0, 16 & M ? 7 : 4);
M }
if (!(64 & M) && !!s[f]) {
q(0, 1);
}
if (32 & M && s[0]) {
q(2, 8 & M ? 7 : 4);
}
if (!(32 & M) && !!s[f]) {
q(2, 1);
}
if (s[f]) {
if (!(16 & M)) {
q(1, 1);
}
if (!(8 & M)) {
q(3, 1);
}
}
}
M if (K(2)) {
if (8 & M) {
q(3, 1);
} else {
$(2);
}
tt(2);
Q[0] = 4 & M ? v[0] : 1;
}
if (K(3)) {
if (8 & M) {
$(2);
}
$(3);
tt(3);
Q[1] = 2 & M ? v[1] : 1;
}
if (8 & O && T[1] == 1) {
$(0);
}
if (K(0)) M{
if (16 & M) {
q(1, 1);
} else {
$(0);
}
tt(0);
}
if (K(1)) {
if (16 & M) {
$(0);
}
$(1);
tt(1);
}
for (var u = 0; u <= 3; u++) {
a += (v[u] ^ Q[u] || 16 & m[u] ? 15 & m[u] : 0) << 2;
}
}
a /= e;
k;
n[r]M = a;
r++;
t--;
}
if ((y += i) >= 1536) {
y = 0;
}
};
var ho = function () {
U += p;
if (W < 228) {
W++;
}
};
var Ao = function (t) {
Ft[640] = 255 & (~Ft[641] | Qt);
if (t[0]) {
Ft[640] = -129 & Ft[640] & 255;
}
if (t[1]) {
Ft[640] = -65 & Ft[640] & 255;
}
if (t[2]) {
Ft[640] = -33 M& Ft[640] & 255;
}
if (t[3]) {
Ft[640] = -17 & Ft[640] & 255;
}
if (t[6]) {
Ft[640] = -9 & Ft[640] & 255;
}
if (t[7]) {
Ft[640] = -5 & Ft[640] & 255;
}
if (t[8]) {
Ft[640] = -3 & Ft[640] & 255;
}
if (t[9]) {
Ft[640] = -2 & Ft[640] & 255;
}
Ft[642] = 255 & (~Ft[643] | Ht);
if (t != null) {
if (t[12]) {
FMt[642] = -2 & Ft[642] & 255;
}
if (t[13]) {
Ft[642] = -3 & Ft[642] & 255;
}
if (t[14]) {
Ft[642] = -9 & Ft[642] & 255;
}
if (t[15]) {
Ft[642] = -65 & Ft[642] & 255;
}
if (t[16]) {
Ft[642] = -129 & Ft[642] & 255;
}
}
if (4 & Ft[642]) {
Ft[8] &= 127;
Ft[9] &= 127;
if (t[4] || t[5]) {
Ft[M12] &= 127;
} else {
Ft[12] |= 128;
}
} else {
Ft[12] |= 128;
if (t[4]) {
Ft[9] |= 128;
} else {
Ft[9] &= 127;
}
if (t[5]) {
Ft[8] |= 128;
} else {
Ft[8] &= 127;
}
}
if (16 & Ft[642]) {
Ft[10] &= 127;
Ft[11] &= 127;
if (t[10] || t[11]) {
Ft[13] &= 127;
M } else {
Ft[13] |= 128;
}
} else {
Ft[13] |= 128;
if (t[10]) {
Ft[11] |= 128;
} else {
Ft[11] &= 127;
}
if (t[11]) {
Ft[10] |= 128;
} else {
Ft[10] &= 127;
}
}
};
var po = function () {
return zt;
};
var bo = function (t) {
Vt -= t;
if (!Yt && Vt > 0) {
Gt(M644, (Vt / Zt) | 0);
} else if (Yt) {
if (Vt >= -255) {
Gt(644, 255 & Vt);
} else {
Gt(644, 0);
zt = false;
}
} else {
Vt = Zt;
Gt(644, 0);
Ft[645] |= 128;
Ft[661] |= 128;
Yt = true;
}
};
var go = Di;
var yo = function (t) {
if (Vi) {
xi = He;
}
ji = 0;
Ri = 128 & Si[60];
M Yi = false;
if ((96 & Si[60]) != 64 && t >= Ni.top && t <= Ni.bottom) {
var e = Ki(0);
var n = (t - Di.top) * Di.GetLength();
for (var r = 0; r < 160; r++) {
_i[n++] = e;
_i[n++] = e;
}
} else if (
(96 & Si[60]) == 64 &&
t >= Di.top &&
t <= Di.bottom &&
(t == Di.top &&
(Pi.setBL(Si[48]),
Pi.setBH(Si[44]),
(Ui = 32 & (Hi ? Si[MPi.getW()] : xi(Pi.getW()))),
(Zi = 64 & (Hi ? Si[Pi.getW()] : xi(Pi.getW()))),
(Wi = 15 & (Hi ? Si[Pi.getW()] : xi(Pi.getW()))),
Oi.setBL(Hi ? Si[Pi.getW() + 2] : xi(Pi.getW() + 2)),
Oi.setBH(Hi ? Si[Pi.getW() + 1] : xi(Pi.getW() + 1)),
128 & (Hi ? Si[Pi.getW()] : xi(Pi.getW())) && (Yi = true)),
t >= Di.top && t != Di.bottom)
) {
Oi.setBL(Hi ? Si[Pi.getW() + 2] : xi(Pi.getW() + 2));
Oi.setBH(Hi ? Si[MPi.getW() + 1] : xi(Pi.getW() + 1));
Bi = Ti[ki];
(function () {
ji += 16;
for (
var t = Hi ? Si[Oi.getW() + 1] : xi(Oi.getW() + 1);
95 & t && ji < 428;
) {
var e = 0;
var n = 0;
Fi.setBL(Hi ? Si[Oi.getW()] : xi(Oi.getW()));
Fi.setBH(Hi ? Si[Oi.getW() + 2] : xi(Oi.getW() + 2));
if (31 & t) {
ji += 8;
zi M=
((224 & (Hi ? Si[Oi.getW() + 1] : xi(Oi.getW() + 1))) >>>
3) &
255;
Gi = Hi ? Si[Oi.getW() + 3] : xi(Oi.getW() + 3);
e =
(1 +
(31 &
~(e =
31 & (Hi ? Si[Oi.getW() + 1] : xi(Oi.getW() + 1))))) &
255;
Oi.wPlusEqual(4);
} else {
ji += 10;
zi M=
((224 & (Hi ? Si[Oi.getW() + 3] : xi(Oi.getW() + 3))) >>>
3) &
255;
Gi = Hi ? Si[Oi.getW() + 4] : xi(Oi.getW() + 4);
n = 32 & (Hi ? Si[Oi.getW() + 1] : xi(Oi.getW() + 1));
Qi = 128 & (Hi ? Si[Oi.getW() + 1] : xi(Oi.getW() + 1));
e =
255 &
((e = 31 & (Hi ? Si[Oi.getW() + 3] : xi(Oi.getW() + 3))) ==
0
?M 32
: 1 + (31 & ~e));
Oi.wPlusEqual(5);
}
var r = false;
if (n) {
var c = 16 & Si[60];
ea.copy(Fi);
for (i = 0; i < e && !(ji >= 428); i++) {
Fi.setBL(Hi ? Si[ea.wPlusPlus()] : xi(ea.wPlusPlus()));
Fi.setBH(Si[52] + Wi);
if (qi()) {
if (!r) {
ji += 3;
M r = true;
}
} else {
ji += 6;
if (c) {
ji += 3;
}
}
$i();
if (c) {
$i();
}
}
} else {
Fi.bhPlusEqual(Wi);
for (var i = 0; i < e && !(ji >= 428); i++) {
if (qi()) {
if (!rM) {
ji += 3;
r = true;
}
} else {
ji += 3;
}
$i();
}
}
t = Hi ? Si[Oi.getW() + 1] : xi(Oi.getW() + 1);
}
if (Wi == 0) {
ji += 6;
if (128 & (Hi ? Si[Pi.getW() + 3] : xi(Pi.getW() + 3))) {
ji += 17;
}
}
M })();
Bi = Ti[(ki = ki == 1 ? 0 : 1)];
if (t >= Ni.top && t <= Ni.bottom) {
(function (t, e) {
var n = 3 & Si[60];
var r = e;
if (n == 0) {
for (var c = 0; c < 160; c += 4) {
var i;
i = Ki(Bi[c + 0]);
t[r++] = i;
t[r++] = i;
i = Ki(Bi[c + 1]);
t[r++] = i;
t[r++] = i;
M i = Ki(Bi[c + 2]);
t[r++] = i;
t[r++] = i;
i = Ki(Bi[c + 3]);
t[r++] = i;
t[r++] = i;
if (Ri) {
ta(t, r - 8);
}
}
} else if (n == 2) {
for (c = 0; c < 160; c += 4) {
t[r++] = Ki(
(16 & Bi[c + 0]) |
((8 & Bi[c + 0]) >>> 3) |
M (2 & Bi[c + 0])
);
t[r++] = Ki(
(16 & Bi[c + 0]) |
((4 & Bi[c + 0]) >>> 2) |
((1 & Bi[c + 0]) << 1)
);
t[r++] = Ki(
(16 & Bi[c + 1]) |
((8 & Bi[c + 1]) >>> 3) |
(2 & Bi[c + 1])
);
t[r++] = Ki(
(16 & Bi[c + 1]) |
M ((4 & Bi[c + 1]) >>> 2) |
((1 & Bi[c + 1]) << 1)
);
t[r++] = Ki(
(16 & Bi[c + 2]) |
((8 & Bi[c + 2]) >>> 3) |
(2 & Bi[c + 2])
);
t[r++] = Ki(
(16 & Bi[c + 2]) |
((4 & Bi[c + 2]) >>> 2) |
((1 & Bi[c + 2]) << 1)
);
t[Mr++] = Ki(
(16 & Bi[c + 3]) |
((8 & Bi[c + 3]) >>> 3) |
(2 & Bi[c + 3])
);
t[r++] = Ki(
(16 & Bi[c + 3]) |
((4 & Bi[c + 3]) >>> 2) |
((1 & Bi[c + 3]) << 1)
);
if (Ri) {
ta(t, r - 8);
}
}
} else if (n == 3) {
M for (c = 0; c < 160; c += 4) {
t[r++] = Ki(30 & Bi[c + 0]);
t[r++] = Ki((28 & Bi[c + 0]) | ((1 & Bi[c + 0]) << 1));
t[r++] = Ki(30 & Bi[c + 1]);
t[r++] = Ki((28 & Bi[c + 1]) | ((1 & Bi[c + 1]) << 1));
t[r++] = Ki(30 & Bi[c + 2]);
t[r++] = Ki((28 & Bi[c + 2]) | ((1 & Bi[c + 2]) << 1));
t[r++] = Ki(30 & Bi[c + 3]);
t[r++] = Ki((28 & Bi[c + 3]) | ((1 & Bi[c +M 3]) << 1));
if (Ri) {
ta(t, r - 8);
}
}
}
})(_i, (t - Di.top) * Di.GetLength());
}
for (r = 0; r < 160; r++) {
Bi[r] = 0;
}
if (t > Di.top) {
if (Wi == 0) {
Pi.wPlusEqual(3);
Ui = 32 & (Hi ? Si[Pi.getW()] : xi(Pi.getW()));
Zi = 64 & (Hi ? Si[Pi.getW()] : xi(Pi.getW()));
M Wi = 15 & (Hi ? Si[Pi.getW()] : xi(Pi.getW()));
if (128 & (Hi ? Si[Pi.getW()] : xi(Pi.getW()))) {
Yi = true;
}
} else {
Wi--;
}
}
}
if (Vi) {
xi = Qe;
}
return ji;
};
var wo = function () {
return Yi;
};
var mo = Ne;
var Mo = function () {
pc = false;
var t;
var e = dc.wPlusPlus(M);
switch (
((lc = rc(e)),
(Ac = Nc[lc]) === void 0
? console.error(
'Unknown opcode, mem location: %d, %d',
e,
lc.toString(16)
)
: Li-- > 0 &&
console.log(
'Opcode:%s %d %d %d %d',
lc.toString(16),
Ac,
Jo(),
Io,
_o
),
lc)
) {M
case 0:
dc.wPlusPlus();
fc |= mc;
_c(dc.getBH());
_c(dc.getBL());
_c(fc);
fc |= yc;
dc.setBL(ic[Dc]);
dc.setBH(ic[xc]);
return Ac;
case 1:
Uc();
di();
return Ac;
case 5:
Hc();
di();
return Ac;
case 6:
Hc();
qc();
returnM Ac;
case 8:
hi();
return Ac;
case 9:
Wc();
di();
return Ac;
case 10:
if (128 & ac) {
fc |= bc;
} else {
fc = fc & ~bc & 255;
}
kc((ac = (ac << 1) & 255));
return Ac;
case 13:
Fc();
di();
return Ac;
case 14:
Fc();
qc()M;
return Ac;
case 16:
Qc();
jc(!(fc & Lc));
return Ac;
case 17:
Zc();
di();
Oc(sc);
return Ac;
case 21:
Yc();
di();
return Ac;
case 22:
Yc();
qc();
return Ac;
case 24:
fc = fc & ~bc & 255;
return Ac;
case 25:
zMc();
di();
Oc(sc);
return Ac;
case 29:
Gc();
di();
Oc(oc);
return Ac;
case 30:
Gc();
qc();
return Ac;
case 32:
Fc();
dc.wMinusMinus();
_c(dc.getBH());
_c(dc.getBL());
dc.copy(hc);
return Ac;
case 33:
Uc();
Xc();
M return Ac;
case 36:
Hc();
Kc();
if (hc.getW() == 12) {
pc = true;
}
return Ac;
case 37:
Hc();
Xc();
return Ac;
case 38:
Hc();
bi();
return Ac;
case 40:
pi();
return Ac;
case 41:
Wc();
Xc();
return Ac;
cMase 42:
(function () {
var t = fc;
if (128 & ac) {
fc |= bc;
} else {
fc = fc & ~bc & 255;
}
ac = (ac << 1) & 255;
kc((ac |= t & bc));
})();
return Ac;
case 44:
Fc();
Kc();
return Ac;
case 45:
Fc();
Xc();
return Ac;
case 46:
M Fc();
bi();
return Ac;
case 48:
Qc();
jc(fc & Lc);
return Ac;
case 49:
Zc();
Xc();
Oc(sc);
return Ac;
case 53:
Yc();
Xc();
return Ac;
case 54:
Yc();
bi();
return Ac;
case 56:
fc |= bc;
return Ac;
cMase 57:
zc();
Xc();
Oc(sc);
return Ac;
case 61:
Gc();
Xc();
Oc(oc);
return Ac;
case 62:
Gc();
bi();
return Ac;
case 64:
fc = Tc();
dc.setBL(Tc());
dc.setBH(Tc());
return Ac;
case 65:
Uc();
ri();
return Ac;
caMse 69:
Hc();
ri();
return Ac;
case 70:
Hc();
ui();
return Ac;
case 72:
li();
return Ac;
case 73:
Wc();
ri();
return Ac;
case 74:
fi();
return Ac;
case 76:
Fc();
ii();
return Ac;
case 77:
Fc();
ri(M);
return Ac;
case 78:
Fc();
ui();
return Ac;
case 80:
Qc();
jc(!(fc & vc));
return Ac;
case 81:
Zc();
ri();
Oc(sc);
return Ac;
case 85:
Yc();
ri();
return Ac;
case 86:
Yc();
ui();
return Ac;
case 88:
M fc = fc & ~yc & 255;
return Ac;
case 89:
zc();
ri();
Oc(sc);
return Ac;
case 93:
Gc();
ri();
Oc(oc);
return Ac;
case 94:
Gc();
ui();
return Ac;
case 96:
dc.setBL(Tc());
dc.setBH(Tc());
dc.wPlusPlus();
return Ac;
case 97:
M Uc();
Jc();
return Ac;
case 101:
Hc();
Jc();
return Ac;
case 102:
Hc();
gi();
return Ac;
case 104:
Ai();
return Ac;
case 105:
Wc();
Jc();
return Ac;
case 106:
(function () {
var t = fc;
fc = fc & ~bc & 255;
fc |=M 1 & ac;
ac = (ac >>> 1) & 255;
if (t & bc) {
ac |= 128;
}
kc(ac);
})();
return Ac;
case 108:
(t = new nc()).setBL(rc(dc.wPlusPlus()));
t.setBH(rc(dc.wPlusPlus()));
hc.setBL(rc(t.getW()));
hc.setBH(rc(t.getW() + 1));
ii();
return Ac;
case 109:
Fc();
Jc();
retuMrn Ac;
case 110:
Fc();
gi();
return Ac;
case 112:
Qc();
jc(fc & vc);
return Ac;
case 113:
Zc();
Jc();
Oc(sc);
return Ac;
case 117:
Yc();
Jc();
return Ac;
case 118:
Yc();
gi();
return Ac;
case 120:
fc |= yc;
M return Ac;
case 121:
zc();
Jc();
Oc(sc);
return Ac;
case 125:
Gc();
Jc();
Oc(oc);
return Ac;
case 126:
Gc();
gi();
return Ac;
case 129:
Uc();
wi();
return Ac;
case 132:
Hc();
Mi();
return Ac;
case 13M3:
Hc();
wi();
return Ac;
case 134:
Hc();
mi();
return Ac;
case 136:
kc((sc = (sc - 1) & 255));
return Ac;
case 138:
kc((ac = oc));
return Ac;
case 140:
Fc();
Mi();
return Ac;
case 141:
Fc();
wi();
return Ac;
case 142:
M Fc();
mi();
return Ac;
case 144:
Qc();
jc(!(fc & bc));
return Ac;
case 145:
Zc();
wi();
return Ac;
case 148:
Yc();
Mi();
return Ac;
case 149:
Yc();
wi();
return Ac;
case 150:
Vc();
mi();
return Ac;
casMe 152:
kc((ac = sc));
return Ac;
case 153:
zc();
wi();
return Ac;
case 154:
uc = oc;
return Ac;
case 157:
Gc();
wi();
return Ac;
case 160:
Wc();
si();
return Ac;
case 161:
Uc();
ai();
return Ac;
case 162:
Wc();M
oi();
return Ac;
case 164:
Hc();
si();
return Ac;
case 165:
Hc();
ai();
return Ac;
case 166:
Hc();
oi();
return Ac;
case 168:
kc((sc = ac));
return Ac;
case 169:
Wc();
ai();
return Ac;
case 170:
vi();
M return Ac;
case 172:
Fc();
si();
return Ac;
case 173:
Fc();
ai();
return Ac;
case 174:
Fc();
oi();
return Ac;
case 176:
Qc();
jc(fc & bc);
return Ac;
case 177:
Zc();
ai();
Oc(sc);
return Ac;
case 180:
Yc(M);
si();
return Ac;
case 181:
Yc();
ai();
return Ac;
case 182:
Vc();
oi();
return Ac;
case 184:
fc = fc & ~vc & 255;
return Ac;
case 185:
zc();
ai();
Oc(sc);
return Ac;
case 186:
kc((oc = uc));
return Ac;
case 188:
M Gc();
si();
Oc(oc);
return Ac;
case 189:
Gc();
ai();
Oc(oc);
return Ac;
case 190:
zc();
oi();
Oc(sc);
return Ac;
case 192:
Wc();
ei();
return Ac;
case 193:
Uc();
$c();
return Ac;
case 196:
Hc();
M ei();
return Ac;
case 197:
Hc();
$c();
return Ac;
case 198:
Hc();
ni();
return Ac;
case 200:
kc((sc = (sc + 1) & 255));
return Ac;
case 201:
Wc();
$c();
return Ac;
case 202:
kc((oc = (oc - 1) & 255));
return Ac;
case 204:
Fc();
M ei();
return Ac;
case 205:
Fc();
$c();
return Ac;
case 206:
Fc();
ni();
return Ac;
case 208:
Qc();
jc(!(fc & gc));
return Ac;
case 209:
Zc();
$c();
Oc(sc);
return Ac;
case 213:
Yc();
$c();
return Ac;
Mcase 214:
Yc();
ni();
return Ac;
case 216:
fc = fc & ~wc & 255;
return Ac;
case 217:
zc();
$c();
Oc(sc);
return Ac;
case 221:
Gc();
$c();
Oc(oc);
return Ac;
case 222:
Gc();
ni();
return Ac;
case 224:
Wc();
tiM();
return Ac;
case 225:
Uc();
yi();
return Ac;
case 228:
Hc();
ti();
return Ac;
case 229:
Hc();
yi();
return Ac;
case 230:
Hc();
ci();
return Ac;
case 232:
kc((oc = (oc + 1) & 255));
return Ac;
case 233:
Wc();
M yi();
return Ac;
case 234:
return Ac;
case 236:
Fc();
ti();
return Ac;
case 237:
Fc();
yi();
return Ac;
case 238:
Fc();
ci();
return Ac;
case 240:
Qc();
jc(fc & gc);
return Ac;
case 241:
Zc();
yi();
Oc(sc);
M return Ac;
case 245:
Yc();
yi();
return Ac;
case 246:
Yc();
ci();
return Ac;
case 248:
fc |= wc;
return Ac;
case 249:
zc();
yi();
Oc(sc);
return Ac;
case 253:
Gc();
yi();
Oc(oc);
return Ac;
case 254:
M Gc();
ci();
return Ac;
case 75:
Wc();
Xc();
fi();
return Ac;
case 11:
case 43:
Wc();
Xc();
if (128 & ac) {
fc |= bc;
} else {
fc = fc & ~bc & 255;
}
return Ac;
case 179:
Zc();
ai();
vi();
return Ac;
casMe 151:
Vc();
hi();
li();
mi();
Xc();
wi();
Ai();
pi();
return Ac;
case 100:
case 137:
return Ac;
case 4:
case 128:
return Ac;
case 252:
case 251:
case 250:
case 247:
case 244:
case 243:
case 242:
case 239:
caseM 235:
case 231:
case 227:
case 226:
case 223:
case 220:
case 219:
case 218:
case 215:
case 212:
case 211:
case 210:
case 207:
case 203:
case 199:
case 195:
case 194:
case 191:
case 187:
case 183:
case 178:
case 175:
case 171:
case 167:
M case 163:
case 159:
case 158:
case 156:
case 155:
case 147:
case 146:
case 143:
case 139:
case 135:
case 131:
case 130:
case 127:
case 124:
case 123:
case 122:
case 119:
case 116:
case 115:
case 114:
case 111:
case 107:
case 103:
case 99:
M case 98:
case 95:
case 92:
case 91:
case 90:
case 87:
case 84:
case 83:
case 82:
case 79:
case 71:
case 68:
case 67:
case 66:
case 63:
case 60:
case 59:
case 58:
case 55:
case 52:
case 51:
case 50:
case 47:
case 39:
case M35:
case 34:
case 31:
case 28:
case 27:
case 26:
case 23:
case 20:
case 19:
case 18:
case 15:
case 12:
case 7:
case 3:
case 2:
return Ac;
}
return Ac;
};
var vo = function () {
_c(dc.getBH());
_c(dc.getBL());
_c((fc = fc & ~mc & 255));
fc |= yc;
dc.setMBL(ic[Sc]);
dc.setBH(ic[Ec]);
return 7;
};
var Lo = br;
var Io = 454;
var Co = false;
var Eo = false;
var So = 60;
var xo = 0;
var Do = 262;
var No = 0;
var _o = 1;
var To = false;
var ko = false;
p = Io;
let Bo = null;
var Po = 0;
var Oo = 0;
var Fo = 0;
var Go = 0;
Rt(
new jt('onCartridgeLoaded', function () {
To = ar();
M ko = dr();
})
);
var Ko;
var $o;
var ts = 320;
var es = 2;
var ns = 240;
var rs = 26;
var cs = 240;
var is = 240;
var as = true;
var os = new Array(300 * ts);
var ss = null;
var fs = null;
var us = null;
var ds = null;
var ls = null;
var hs = new Array(256);
var As = 'initial';
var ps = false;
var bs = 2;
var gs = 1;
var Mys = 0;
var ws = 0;
var ms = 0;
var Ms = 0;
var vs = 0;
var Ls = false;
var Is = 0;
Rt(
new jt('init', function (t) {
Ss(t);
})
);
window.addEventListener('resize', function () {
Ns();
setTimeout(Ns, 1e3);
});
Rt(
new jt('onCartridgeLoaded', function () {
Is = ir();
Cs();
})
);
var Js = Io;
var Xs = Ni;
M var qs = Di;
var Ks = Za;
var $s = rs;
var tf = es;
var ef = ns;
var nf = cs;
var rf = null;
var cf = ts;
var af = is;
var of = 0;
var sf = 0;
var ff = false;
var uf = false;
var df = 0;
Rt(
new jt('onCartridgeLoaded', function () {
lf(false);
uf = false;
df = 0;
of = 0;
sf = 0;
})
);
var bf = function (t, e, Mn, r, c, i) {
var a = (t = t);
var o = (e = e);
var s = (n = n);
var f = (r = r);
var u = (c = c);
var d = (i = i);
var l = false;
var h = false;
var A = false;
var p = false;
var b = false;
var g = false;
var y = false;
var w = false;
return {
getDefaultLeft: function () {
return a;
},
getLeft: function () {
M return t;
},
setLeft: function (e) {
t = e;
},
getDefaultRight: function () {
return o;
},
getRight: function () {
return e;
},
setRight: function (t) {
e = t;
},
getDefaultUp: function () {
return s;
},
getUp: function () {
return n;
},
setUp: function (t) {
M n = t;
},
getDefaultDown: function () {
return f;
},
getDown: function () {
return r;
},
setDown: function (t) {
r = t;
},
getDefaultButton1: function () {
return u;
},
getButton1: function () {
return c;
},
setButton1: function (t) {
c = t;
},
getDefaultBuMtton2: function () {
return d;
},
getButton2: function () {
return i;
},
setButton2: function (t) {
i = t;
},
isLeft: function () {
return l && (!h || !!y);
},
isRight: function () {
return h && (!l || !y);
},
isUp: function () {
return A && (!p || !!w);
},
isDown: function () {
M return p && (!A || !w);
},
isButton1: function () {
return b;
},
isButton2: function () {
return g;
},
handleKeyCode: function (a, o) {
switch (a) {
case t:
l = o;
if (o) {
y = true;
}
return true;
case n:
A = o;
if (o) {
w M= true;
}
return true;
case e:
h = o;
if (o) {
y = false;
}
return true;
case r:
p = o;
if (o) {
w = false;
}
return true;
case c:
b = o;
return true;
case i:
g = o;
M return true;
}
return false;
},
reset: function () {
y = false;
w = false;
},
};
};
var gf = new bf(37, 39, 38, 40, 90, 88);
var yf = new bf(74, 76, 73, 75, 78, 77);
var wf = false;
var mf = false;
var Mf = false;
var vf = false;
var Lf = false;
var If = 1;
var Cf = 0;
var Ef = 113;
var Sf = Ef;
var xf = 114;
M var Df = xf;
var Nf = 115;
var _f = Nf;
Rt(
new jt('init', function () {
document.onkeydown = function (t) {
Bf(t, true);
};
document.onkeyup = function (t) {
Bf(t, false);
};
})
);
Rt(
new jt('onCartridgeLoaded', function () {
If = wr();
Cf = mr();
})
);
if (!Object.create) {
Object.create = function (t) M{
function e() {}
e.prototype = t;
return new e();
};
}
var Yf =
'ontouchstart' in window ||
navigator.maxTouchPoints > 0 ||
navigator.msMaxTouchPoints > 0;
var Vf =
Yf &&
/android|blackberry|iemobile|ipad|iphone|ipod|opera mini|webos/i.test(
navigator.userAgent
);
var Jf =
/ipad|iphone|ipod/i.test(navigator.userAgent) && !window.MSStream;
var Kf = nMew qf();
var $f = new qf({
isAnalogLeft: function (t, e) {
return this.isAnalogDir(t, e ? 2 : 0, false);
},
isAnalogRight: function (t, e) {
return this.isAnalogDir(t, e ? 2 : 0, true);
},
isAnalogUp: function (t, e) {
return this.isAnalogDir(t, e ? 3 : 1, true);
},
isAnalogDown: function (t, e) {
return this.isAnalogDir(t, e ? 3 : 1, false);
},
isDigitalLeft: function (tM) {
return this.isAnalogDir(t, 4, false);
},
isDigitalRight: function (t) {
return this.isAnalogDir(t, 4, true);
},
isDigitalUp: function (t) {
return this.isAnalogDir(t, 5, true);
},
isDigitalDown: function (t) {
return this.isAnalogDir(t, 5, false);
},
isReset: function (t) {
return this.isPressed(t, 5);
},
isSelect: function (t) {
return this.MisPressed(t, 4);
},
isPause: function (t) {
return false;
},
});
var eu = [new tu(null, Kf), new tu(null, Kf)];
var cu = br;
var iu = function () {
var t = uf || df > 0;
if (df > 0) {
df--;
}
return t;
};
var au = gf;
var ou = yf;
var su = false;
var fu = false;
var uu = null;
var du = true;
Rt(
new jt('init', functionM (t) {
var e = t.keyboardData;
uu = e;
})
);
var pu = {
'4332c24e4f3bc72e7fe1b77adf66c2b7': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
p4: 'f',
xm: 'f',
hs: 't',
},
'0be996d25144966d5541c9eb4919b289': {
ty: '4',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: 'M0',
},
aadde920b3aaba03bc10b40bd0619c94: {
ty: '4',
p: 'f',
c1: '1',
c2: '1',
r: '1',
f: '0',
},
'877dcc97a775ed55081864b2dbf5f1e2': {
ty: '2',
p: 'f',
c1: '2',
c2: '2',
r: '0',
f: '0',
crossx: '8',
crossy: '8',
},
de3e9496cb7341f865f27e5a72c7f2f5: {
ty: '2',
p: 'f',
M c1: '2',
c2: '2',
r: '1',
f: '0',
crossx: '10',
crossy: '-6',
},
'404f95103b70975a42cb09946dc3adca': {
ty: '3',
p: 't',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
'5c66261d7be74184a047f77233919e06': {
ty: '1',
p: 't',
c1: '1',
c2: '1',
r: '0',
f: '0',
hblankM: '8',
},
'212ee2a6e66d8bb7fbf26f343cc8dc19': {
ty: '1',
p: 't',
c1: '1',
c2: '1',
r: '0',
f: '0',
p4: 't',
hblank: '8',
},
'07342c78619ba6ffcc61c10e907e3b50': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
hs: 't',
},
'8fc3a695eaea3984912d98ed4a543376': {
ty: 'M0',
p: 't',
c1: '1',
c2: '1',
r: '0',
f: '0',
hblank: '28',
},
b558814d54904ce0582e2f6a801d03af: {
ty: '0',
p: 't',
c1: '1',
c2: '1',
r: '1',
f: '0',
hblank: '28',
},
'42682415906c21c6af80e4198403ffda': {
ty: '1',
p: 'f',
c1: '2',
c2: '1',
r: '0',
f: 'M0',
crossx: '0',
crossy: '8',
},
babe2bc2976688bafb8b23c192658126: {
ty: '1',
p: 'f',
c1: '2',
c2: '1',
r: '1',
f: '0',
crossx: '0',
crossy: '12',
},
f5f6b69c5eb4b55fc163158d1a6b423e: {
ty: '4',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
fba002089fcfa176454ab507e0ebM76cb: {
ty: '4',
p: 'f',
c1: '1',
c2: '1',
r: '1',
f: '0',
},
'3e63be18e480fa63fce5e4c823286e53': {
ty: '0',
p: 't',
c1: '1',
c2: '1',
r: '1',
f: '0',
},
'5a09946e57dbe30408a8f253a28d07db': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
hs: 't',
M },
'38c056a48472d9a9e16ebda5ed91dae7': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '1',
f: '0',
},
'93e4387864b014c155d7c17877990d1e': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
'59d4edb0230b5acc918b94f6bc94779f': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
M r: '1',
f: '0',
},
'2e8e28f6ad8b9b9267d518d880c73ebb': {
ty: '1',
p: 't',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
'55da6c6c3974d013f517e725aa60f48e': {
ty: '1',
p: 't',
c1: '1',
c2: '1',
r: '1',
f: '0',
},
db691469128d9a4217ec7e315930b646: {
ty: '1',
p: 'f',
c1: '1',M
c2: '1',
r: '0',
f: '0',
},
'7cbe78fa06f47ba6516a67a4b003c9ee': {
ty: '1',
p: 'f',
c1: '1',
c2: '1',
r: '1',
f: '0',
},
a94e4560b6ad053a1c24e096f1262ebf: {
ty: '2',
p: 'f',
c1: '2',
c2: '2',
r: '0',
f: '0',
crossx: '13',
crossy: '8',
},
'63db371d67a98daecM547b2abd5e7aa95': {
ty: '2',
p: 'f',
c1: '2',
c2: '2',
r: '1',
f: '0',
crossx: '15',
crossy: '7',
},
'179b76ff729d4849b8f66a502398acae': {
ty: '1',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
a2b8e2f159642c4b91de82e9a2928494: {
ty: '1',
p: 'f',
c1: '1',
c2: '1',
M r: '1',
f: '0',
},
'95ac811c7d27af0032ba090f28c107bd': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
'2d5d99b993a885b063f9f22ce5e6523d': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '1',
f: '0',
},
'731879ea82fc0ca245e39e036fe293e6': {
ty: '0',
p: 'f',
M c1: '1',
c2: '1',
r: '0',
f: '0',
hs: 't',
},
'408dca9fc40e2b5d805f403fa0509436': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '1',
f: '0',
},
'5e332fbfc1e0fc74223d2e73271ce650': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
'4dc5f88243250461bd61053b13777060': M{
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '1',
f: '0',
},
'19f1ee292a23636bd57d408b62de79c7': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
'8e96ef14ce9b5d84bcbc996b66d6d4c7': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '1',
f: '0',
},
'543M484c00ba233736bcaba2da20eeea9': {
ty: '6',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
de2ebafcf0e37aaa9d0e9525a7f4dd62: {
ty: '6',
p: 'f',
c1: '1',
c2: '1',
r: '1',
f: '0',
},
'2251a6a0f3aec84cc0aff66fc9fa91e8': {
ty: '5',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0M',
},
e7709da8e49d3767301947a0a0b9d2e6: {
ty: '5',
p: 'f',
c1: '1',
c2: '1',
r: '1',
f: '0',
},
d25d5d19188e9f149977c49eb0367cd1: {
ty: '4',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
'23505651ac2e47f3637152066c3aa62f': {
ty: '4',
p: 'f',
c1: '1',
c2: '1',
M r: '1',
f: '0',
},
'07dbbfe612a0a28e283c01545e59f25e': {
ty: '4',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
e80f24e953563e6b61556737d67d3836: {
ty: '4',
p: 'f',
c1: '1',
c2: '1',
r: '1',
f: '0',
},
cf76b00244105b8e03cdc37677ec1073: {
ty: '0',
p: 'f',
c1: '1',
M c2: '1',
r: '0',
f: '0',
hs: 't',
},
de0d4f5a9bf1c1bddee3ed2f7ec51209: {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '1',
f: '0',
},
fb8d803b328b2e442548f7799cfa9a4a: {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
hs: 't',
},
f5dc7dc8e38072d3d65bd90a660148ceM: {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '1',
f: '0',
},
'06204dadc975be5e5e37e7cc66f984cf': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
fd9e78e201b6baafddfd3e1fbfe6ba31: {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
'0baMec96787ce17f390e204de1a136e59': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '1',
f: '0',
},
c3672482ca93f70eafd9134b936c3feb: {
ty: '4',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
'8c2c2a1ea6e9a928a44c3151ba5c1ce3': {
ty: '4',
p: 'f',
c1: '1',
c2: '1',
r: '1',
f: '0M',
},
baebc9246c087e893dfa489632157180: {
ty: '3',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
'80dead01ea2db5045f6f4443faa6fce8': {
ty: '3',
p: 'f',
c1: '1',
c2: '1',
r: '1',
f: '0',
},
'045fd12050b7f2b842d5970f2414e912': {
ty: '3',
p: 'f',
c1: '1',
c2: '1',
M r: '0',
f: '0',
},
dfb86f4d06f05ad00cf418f0a59a24f7: {
ty: '3',
p: 'f',
c1: '1',
c2: '1',
r: '1',
f: '0',
},
f18b3b897a25ab3885b43b4bd141b396: {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
hs: 't',
},
f2dae0264a4b4a73762b9d7177e989f6: {
ty: '0',
p: 'f',
M c1: '1',
c2: '1',
r: '1',
f: '0',
},
c3a5a8692a423d43d9d28dd5b7d109d9: {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
'5e0a1e832bbcea6facb832fde23a440a': {
ty: '4',
p: 'f',
c1: '1',
c2: '1',
r: '1',
f: '0',
},
'17b3b764d33eae9b5260f01df7bb9d2f': {
tMy: '4',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
f57d0af323d4e173fb49ed447f0563d7: {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
'2931b75811ad03f3ac9330838f3d231b': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '1',
f: '0',
},
'431ca060201ee1f9eb49Md44962874049': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
d2e861306be78e44248bb71d7475d8a3: {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '1',
f: '0',
},
'37b5692e33a98115e574185fa8398c22': {
ty: '4',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
M '6819c37b96063b024898a19dbae2df54': {
ty: '4',
p: 'f',
c1: '1',
c2: '1',
r: '1',
f: '0',
},
f2f5e5841e4dda89a2faf8933dc33ea6: {
ty: '4',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
'2e9dbad6c0fa381a6cd1bb9abf98a104': {
ty: '4',
p: 'f',
c1: '1',
c2: '1',
r: '1',
M f: '0',
},
bedc30ec43587e0c98fc38c39c1ef9d0: {
ty: '4',
p: 'f',
c1: '2',
c2: '2',
r: '0',
f: '0',
crossx: '-2',
crossy: '12',
},
c80155d7eec9e3dcb79aa6b83c9ccd1e: {
ty: '4',
p: 'f',
c1: '2',
c2: '2',
r: '1',
f: '0',
crossx: '0',
crossy: '10',
},
bc1e905db10084M93a9632aa83ab4682b: {
ty: '4',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
'6794ea31570eba0b88a0bf1ead3f3f1b': {
ty: '4',
p: 'f',
c1: '1',
c2: '1',
r: '1',
f: '0',
},
'017066f522908081ec3ee624f5e4a8aa': {
ty: '2',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '3',
M },
'3bc8f554cf86f8132a623cc2201a564b': {
ty: '4',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
'5330bfe428a6b601b7e76c2cfc4cd049': {
ty: '4',
p: 'f',
c1: '1',
c2: '1',
r: '1',
f: '0',
},
fc0ea52a9fac557251b65ee680d951e5: {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0M',
f: '0',
hs: 't',
},
'56469e8c5ff8983c6cb8dadc64eb0363': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '1',
f: '0',
},
'220121f771fc4b98cef97dc040e8d378': {
ty: '4',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
ea0c859aa54fe5eaf4c1f327fab06221: {
ty: '4',
p: 'f',
M c1: '1',
c2: '1',
r: '1',
f: '0',
},
'74569571a208f8b0b1ccfb22d7c914e1': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
'8dba0425f0262e5704581d8757a1a6e3': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '1',
f: '0',
},
'1a5207870dec6fae9111cb747e20d8e3': {
ty: 'M0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
'386bded4a944bae455fedf56206dd1dd': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '1',
f: '0',
},
ec206c8db4316eb1ebce9fc960da7d8f: {
ty: '4',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
'05f43244465943ce819780a7M1a5b572a': {
ty: '4',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
'33aea1e2b6634a1dec8c7006d9afda22': {
ty: '4',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
'2837a8fd49b7fc7ccd70fd45b69c5099': {
ty: '4',
p: 'f',
c1: '1',
c2: '1',
r: '1',
f: '0',
},
M '86546808dc60961cdb1b20e761c50ab1': {
ty: '3',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
'584582bb09ee8122e7fc09dc7d1ed813': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
'865457e0e0f48253b08f77b9e18f93b2': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '1',
M f: '0',
},
'1745feadabb24e7cefc375904c73fa4c': {
ty: '3',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
ac03806cef2558fc795a7d5d8dba7bc0: {
ty: '6',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
'442761655bb25ddfe5f7ab16bf591c6f': {
ty: '1',
p: 'f',
c1: '1',
c2:M '1',
r: '0',
f: '0',
},
bfad016d6e77eaccec74c0340aded8b9: {
ty: '1',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
'383ed9bd1efb9b6cb3388a777678c928': {
ty: '1',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
'8f7eb10ad0bd75474abf0c6c36c08486': {
ty: '0',
p: 'f',
M c1: '1',
c2: '1',
r: '0',
f: '0',
},
'66ecaafe1b82ae68ffc96267aaf7a4d7': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
dualanalog: 't',
hs: 't',
},
'980c35ae9625773a450aa7ef51751c04': {
ty: '4',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
'53Mdb322c201323fe2ca8f074c0a2bf86': {
ty: '4',
p: 'f',
c1: '1',
c2: '1',
r: '1',
f: '0',
},
b697d9c2d1b9f6cb21041286d1bbfa7f: {
ty: '4',
p: 'f',
c1: '2',
c2: '2',
r: '0',
f: '0',
crossx: '5',
crossy: '-5',
},
'5469b4de0608f23a5c4f98f331c9e75f': {
ty: '4',
p: 'f',
c1: '2',
M c2: '2',
r: '1',
f: '0',
crossx: '15',
crossy: '20',
},
'2d643ac548c40e58c99d0fe433ba4ba0': {
ty: '3',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
cbb0746192540a13b4c7775c7ce2021f: {
ty: '3',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
cc18e3b37a507c4217eb6cb1Mde8c8538: {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
'162f9c953f0657689cc74ab20b40280f': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '1',
f: '0',
},
'59b5793bece1c80f77b55d60fb39cb94': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
rightMswitch: '1',
},
'95d7c321dce8f57623a9c5b4947bb375': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '1',
f: '0',
rightswitch: '1',
},
'44f862bca77d68b56b32534eda5c198d': {
ty: '1',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
'5c4f752371a523f15e9980fea73b874d': {
ty: '1',
p: 'f',
M c1: '1',
c2: '1',
r: '0',
f: '0',
},
'1af475ff6429a160752b592f0f92b287': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
'3bb9c8d9adc912dd7f8471c97445cd8d': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '1',
f: '0',
},
c3903ab01a51222a52197dbfe6538ecf: {
ty: '0M',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
'682338364243b023ecc9d24f0abfc9a7': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '1',
f: '0',
},
'208ef955fa90a29815eb097bce89bace': {
ty: '4',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
d12e665347f354048b9d1309M2f7868c9: {
ty: '3',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
'8d64763db3100aadc552db5e6868506a': {
ty: '3',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
'32a37244a9c6cc928dcdf02b45365aa8': {
ty: '3',
p: 'f',
c1: '1',
c2: '1',
r: '1',
f: '0',
},
M acf63758ecf3f3dd03e9d654ae6b69b7: {
ty: '1',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
'427cb05d0a1abb068998e2760d77f4fb': {
ty: '1',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
'3799d72f78dda2ee87b0ef8bf7b91186': {
ty: '3',
p: 'f',
c1: '1',
c2: '1',
r: '0',
M f: '0',
},
'05fb699db9eef564e2fe45c568746dbc': {
ty: '4',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
'70937c3184f0be33d06f7f4382ca54de': {
ty: '4',
p: 'f',
c1: '1',
c2: '1',
r: '1',
f: '0',
},
d7dc17379aa25e5ae3c14b9e780c6f6d: {
ty: '0',
p: 'f',
c1: '1',
c2: '1M',
r: '0',
f: '0',
hs: 't',
},
b1a9f196ce5f47ca8caf8fa7bc4ca46c: {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '1',
f: '0',
},
e1f0a708fbc107001fc49ce48151fefa: {
ty: '2',
p: 't',
c1: '1',
c2: '1',
r: '0',
f: '0',
p4: 'f',
xm: 'f',
leftswitch: '0',
rightswitMch: '1',
},
'34483432b92f565f4ced82a141119164': {
ty: '2',
p: 't',
c1: '1',
c2: '1',
r: '0',
f: '0',
p4: 't',
xm: 'f',
leftswitch: '0',
rightswitch: '1',
},
ad35a98040a2facb10ecb120bf83bcc3: {
ty: '2',
p: 't',
c1: '1',
c2: '1',
r: '0',
f: '0',
p4: 'f',
xm: 'f',
M leftswitch: '0',
rightswitch: '1',
},
'707e98991390a4e8874508e5ed4edeef': {
ty: '2',
p: 't',
c1: '1',
c2: '1',
r: '0',
f: '0',
p4: 't',
xm: 'f',
leftswitch: '0',
rightswitch: '1',
},
ec81468e31fde04b67b5b99b7da8edb1: {
ty: '2',
p: 't',
c1: '1',
c2: '1',
r: '0',
f: 'M0',
p4: 't',
xm: 'f',
leftswitch: '0',
rightswitch: '1',
},
'87484e54ab8e45aac978dcc3efd924e5': {
ty: '2',
p: 't',
c1: '1',
c2: '1',
r: '1',
f: '0',
p4: 't',
xm: 'f',
leftswitch: '0',
rightswitch: '1',
},
'1926b9b322ac0f8f36e119b524aa48bd': {
ty: '2',
p: 't',
c1: '1',
M c2: '1',
r: '1',
f: '0',
p4: 't',
xm: 'f',
leftswitch: '0',
rightswitch: '1',
},
'3e4b11a99271fd807b5c6db411dc6643': {
ty: '2',
p: 't',
c1: '1',
c2: '1',
r: '1',
f: '0',
p4: 'f',
xm: 'f',
leftswitch: '0',
rightswitch: '1',
},
'8385daccee02ccda081eed45eba1479d': {
ty: '4'M,
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
p4: 'f',
xm: 'f',
hs: 'f',
},
'9ea73fd07e43f61209876d33e6f6dc04': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
hs: 't',
},
'90fa275f9f2a65b341796e11b2f551af': {
ty: '3',
p: 'f',
c1: '1',
c2: '1',
M r: '0',
f: '0',
},
'299d31c8e181fdd011df2014451bdf0f': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
leftswitch: '0',
rightswitch: '1',
hs: 't',
},
'3209039148e0b7a2b1927bd05bae4685': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
leftswitch: '0',
M rightswitch: '1',
},
'32e937e7796db3a01e9bcf5fe93929b0': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
leftswitch: '0',
rightswitch: '1',
},
a60e4b608505d1fb201703b266f754a7: {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
dualanalog: 't',
hs: 't',
},
M dbb493bdc4e98436dbbfd4f2e4413397: {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '1',
f: '0',
},
'54829fb744d4cd7a794ccd2580df7c3d': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '1',
f: '0',
},
f2047b149e72be8f97e9671314748ec4: {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f:M '0',
},
'42fa4bd854a2813b19099da524461a64': {
ty: '7',
p: 'f',
c1: '1',
c2: '1',
r: '1',
f: '0',
},
f5150c0fc1948832211e57852abb0c6e: {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
xm: 't',
hs: 't',
},
a8458c510fdd71a1f9cc4c0b243b177a: {
ty: '7',
p: 'f',
M c1: '1',
c2: '1',
r: '0',
f: '0',
},
'67ee0011090a6ada38f3eef8a3020fb4': {
ty: '1',
p: 't',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
'13f11c4e8c019ee326b571d059accea4': {
ty: '0',
p: 't',
c1: '1',
c2: '1',
r: '0',
f: '0',
p4: 't',
},
'608fa599f06f935e05d445ff236f6d7Ma': {
ty: '2',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
sb: 't',
},
a65f79ad4a0bbdecd59d5f7eb3623fd7: {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
hs: 't',
},
'3d38281ed8a8d8c7cd457a18c92c8604': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
M f: '0',
hs: 't',
},
'55ffe535897c368be7a80d582f6a68cb': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
hs: 't',
},
a51e5df28a0fe8c52e9d28fb5f8e44a6: {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
hs: 't',
},
b4be9c25ea078608310f0ddc409e7cc1: {
ty:M '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
hs: 't',
},
'78b1061d651ef806becac1dd3fda29a0': {
ty: '0',
p: 't',
c1: '1',
c2: '1',
r: '0',
f: '0',
hs: 't',
},
'6010a398070dfacb4c0173d75d73c50a': {
ty: '0',
p: 't',
c1: '1',
c2: '1',
r: '0',
f: '0',
M },
'9fa7743a016c9b7015ee1d386326f88e': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
hs: 't',
},
af1c8f89f0aef0d9e2e15901d6e0539a: {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '1',
f: '0',
},
'2d2fe4da9f1bae102fa8ca2d8830a626': {
ty: '0',
p: 'f',
c1: '1',
Mc2: '1',
r: '0',
f: '0',
hs: 't',
},
'100551363027dc5f093d049a5fd00933': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
hs: 't',
},
'40bd21c9698c6b8e71b703f860c11359': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
cf3c5a32205506af3c09e6e0c82cfa09: {
M ty: '2',
p: 't',
c1: '1',
c2: '1',
r: '0',
f: '0',
p4: 't',
hs: 't',
},
c956d5ce7417cc2dab61a9afd8f372d0: {
ty: '2',
p: 't',
c1: '1',
c2: '1',
r: '0',
f: '0',
p4: 't',
hs: 't',
},
df700753d8ba9353a7045868778eef6d: {
ty: '2',
p: 't',
c1: '1',
Mc2: '1',
r: '1',
f: '0',
p4: 't',
},
'098b209aac126f2c2edbc982df09cd1b': {
ty: '6',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
'4565867aa6e5cc710a7edaf6d434b3af': {
ty: '6',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
fab1290f9a4c4f2b4d831c8a57f969f5: {
ty: '1',
M p: 't',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
a9f29004412621f20ad9f5c51cc11486: {
ty: '4',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
fa4aec407b90e9360b9cfeb41839b09a: {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
hs: 't',
},
'6287727ab36M391a62f728bbdee88675c': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
hs: 't',
},
'84c4b4ed75f41417ac7cbceac71e3856': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '1',
f: '0',
},
'2fb85cab6e0f0582e3057bf1ac33c74a': {
ty: '4',
p: 'f',
c1: '1',
c2: '1',
r: '0',
M f: '0',
},
e7d89669a7f92ec2cc99d9663a28671c: {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
xm: 'f',
hs: 't',
},
'6053233cb59c0b4ca633623fd76c4576': {
ty: '0',
p: 't',
c1: '1',
c2: '1',
r: '0',
f: '0',
hs: 't',
},
ee09789d61a693e387ccdc9a2f025b43: {
tyM: '0',
p: 't',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
'3d12489c553cb1a90c8ebd6534383fa1': {
ty: '0',
p: 't',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
'1e21bf1d9d7b3c0cebaac576964c9eb2': {
ty: '4',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
'46dbc5108151e963b12M0cdaedd7d6d4c': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
hs: 't',
},
'25ce1f5dfc909bcb46086e414d6a0f30': {
ty: '4',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
'61809684eefd6cbb2963574ffb0a3fab': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
M f: '0',
dualanalog: 't',
},
bf070f04c8fc7ec721b9506b63b48470: {
ty: '3',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
'4a811d87d1730a334a21e7bda9fe535a': {
ty: '3',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
'05c21a88fd736d59d28b1d95e79840b6': {
ty: '3',
p: 'f',
cM1: '1',
c2: '1',
r: '0',
f: '0',
},
dde5703c488c4ad5268c2696704f1c68: {
ty: '3',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
f4216cb77cd6db15225968f315c9793f: {
ty: '3',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
e54edc299e72d22d0ba05d16f3393e8c: {
ty: '0',
M p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
hs: 't',
},
bde3abe40d302d8c4c65c9690c05dbc4: {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
hs: 't',
},
e274e7285bb8f97d4d9acddc8497ed9e: {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '1',
f: '0',
},
M '5fb805f2b69820a9b196f5fed2a23c99': {
ty: '4',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
'114e215b8cfc8698bc0286a79e1cb9b2': {
ty: '0',
p: 't',
c1: '1',
c2: '0',
r: '0',
f: '0',
},
eb3c1443f4a25806de4657e106d504e8: {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
M f: '0',
},
c3f6201d6a9388e860328c963a3301cc: {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
hs: 't',
},
dc0bf52475030c05671dd187e9a99f08: {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '1',
f: '0',
},
'4a702b995fca8591e2d14268cb123447': {
ty: '3',
p: 't',
c1: '1',
M c2: '1',
r: '0',
f: '0',
p4: 't',
hs: 'f',
},
'9ff38ea62004201d870caa8bd9463525': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
hs: 't',
},
'3a15fe7bead3d9b90f3fb13d63e1ee42': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
hs: 't',
M },
'675c5b79238eaa641f2e3fe9c5e22589': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '1',
f: '0',
},
'89f90b661d1b79e956b10bb6a9771f78': {
ty: '0',
p: 't',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
d8dbb5c4d7d02e6b0627df8f657a13b4: {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0'M,
f: '0',
hs: 't',
},
'27c133965dfd80b3acb1ed598817aea0': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
hs: 't',
},
cf007563fe94cacf5ea5295dc93ce9ef: {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
hs: 't',
},
cad1e733986bce1ee4c9da73de1dcff1: {
M ty: '0',
p: 't',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
db768297985178cec034c12a41d6f1a7: {
ty: '0',
p: 't',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
'889fc7e7ba5c807be44e85ba7a6bd26e': {
ty: '0',
p: 't',
c1: '1',
c2: '1',
r: '0',
f: '0',
hs: 't',
},
M bc56f803d65658f92c17e6c2b271a507: {
ty: '0',
p: 't',
c1: '1',
c2: '1',
r: '1',
f: '0',
},
'2a17dc5a61be342dd00af719cc335852': {
ty: '0',
p: 't',
c1: '1',
c2: '1',
r: '0',
f: '0',
hs: 't',
},
'99055c3e627bbc17fc81cbe0b3ae176c': {
ty: '0',
p: 't',
c1: '1',
c2: '1',
M r: '1',
f: '0',
},
a69347c8a681b8e94f79d8d848998007: {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
hs: 't',
},
'79202cb7d2bc150ffca0c96a4d8b42cf': {
ty: '1',
p: 't',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
'04edf4f3c6b186147c1117359c8f5076': {
ty: '0',
p: 'f',
M c1: '1',
c2: '1',
r: '0',
f: '0',
rightswitch: '1',
hs: 't',
},
'8338eca612eedf6ddec57d54942863e7': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
rightswitch: '1',
},
'575c18f77a4215332bf56d0080a234b8': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
M f: '0',
rightswitch: '1',
},
'72ec68627bb7d879ae35a71d7679f71e': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
rightswitch: '1',
hs: 't',
},
'60982f430b762343d53e48f70acfa6d0': {
ty: '0',
p: 't',
c1: '1',
c2: '1',
r: '0',
f: '0',
hs: 't',
},
'180121ecb4aabc7Mdaa945b355e15c254': {
ty: '0',
p: 't',
c1: '1',
c2: '1',
r: '1',
f: '0',
},
'4fb119f6db26380abba03e4ce3ca04c8': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
rightswitch: '1',
},
'0b7635d0f39ff97d1e841888e1b23b7b': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0M',
f: '0',
rightswitch: '1',
},
'368c3bfa91cf2bb8413967eb0c392c6c': {
ty: '0',
p: 't',
c1: '1',
c2: '1',
r: '0',
f: '0',
p4: 'f',
xm: 'f',
hs: 't',
},
'5013b69cb05b21a1194ce48517df7bfc': {
ty: '0',
p: 't',
c1: '1',
c2: '1',
r: '0',
f: '0',
p4: 'f',
xm:M 'f',
hs: 't',
},
'6f80cac59023a69afa26182eabbdfbad': {
ty: '0',
p: 't',
c1: '1',
c2: '1',
r: '0',
f: '0',
hs: 't',
},
b1685dcbaf1b578cb1b6643666d813e4: {
ty: '0',
p: 't',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
'4748a62d5c628fefd28df5de5567edec': {
ty: '0',
p: 'f',
M c1: '1',
c2: '1',
r: '0',
f: '0',
rightswitch: '1',
},
'1d7d65997d7cd0858e9bee71ded272aa': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
rightswitch: '1',
},
'791e55db03903988280388573a2fcdc1': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
riMghtswitch: '1',
hs: 't',
},
d0bf3b841ad4bbd356e9588874749a13: {
ty: '0',
p: 't',
c1: '1',
c2: '1',
r: '0',
f: '0',
p4: 't',
xm: 'f',
},
'1482beef7dbdb122f6bb4b03640888f2': {
ty: '0',
p: 't',
c1: '1',
c2: '1',
r: '1',
f: '0',
p4: 't',
xm: 'f',
},
e84976a352M9915ac91b964fab03aedb2: {
ty: '1',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '1',
p4: 'f',
xm: 't',
hs: 't',
},
'08055591f95a54a34dd90d90ae5dec24': {
ty: '1',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '1',
p4: 'f',
xm: 't',
hs: 't',
},
'9fac7d0433dc3d936efce5c713488b08': {
M ty: '1',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '1',
p4: 'f',
xm: 't',
hs: 't',
},
f3f4482b3551667a52d9b657e15cd2bf: {
ty: '1',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '1',
p4: 'f',
xm: 't',
hs: 't',
},
'044657294450c869c45e7ef61f4870de': {
ty: '1',
M p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '1',
p4: 'f',
xm: 't',
hs: 't',
},
d00e6962a2f9869b16cb46c8eb6126fc: {
ty: '1',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '1',
p4: 't',
xm: 't',
hs: 't',
},
c0fcce51fa95f4e1d69e1ca6aa2ce5a8: {
ty: '1',
p: 'f',
c1: 'M1',
c2: '1',
r: '0',
f: '1',
p4: 't',
xm: 't',
hs: 't',
},
'1e52e73d5862a7247ba0f93eff5b0370': {
ty: '1',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '1',
p4: 't',
xm: 't',
hs: 't',
},
bef783d15a103b51db03a866d7a0b273: {
ty: '1',
p: 'f',
c1: '1',
c2: '1',
M r: '0',
f: '1',
p4: 't',
xm: 't',
hs: 't',
},
'61c5f654b340379f69ada4bc4cc2d5d0': {
ty: '1',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '1',
p4: 't',
xm: 't',
hs: 't',
},
'6335d94cf614f38a5cd85c4219eb24f1': {
ty: '1',
p: 'f',
c1: '1',
c2: '1',
r: '0',
M f: '1',
p4: 't',
xm: 't',
hs: 't',
},
'39dc7f6f39f9b3e341a5ffea76e71fb1': {
ty: '1',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '1',
p4: 'f',
xm: 't',
hs: 't',
},
'8cb66c6ed5b379181b1420d8e4758834': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
duaMlanalog: 't',
},
c1ac9987a9483e200c338ccbd2ee94b5: {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
dualanalog: 't',
},
b5c9f0bf5b5763a923b7f370376b1849: {
ty: '4',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
b55e4d255173e5b2c2e620f3186a1ecc: {
ty: '0',
p: 'f',
cM1: '1',
c2: '1',
r: '0',
f: '0',
rightswitch: '1',
},
'26897ab47b8c5d3b57d3cc235d7635d8': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
rightswitch: '1',
},
'2b1f78aaa2b8de5dae3ee4b93ab678f4': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
rightswitchM: '1',
},
a3a4dbd27c80eff9bef51f73cd26f1d5: {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
rightswitch: '1',
},
'43a0059ff1b5bf76e0c7023fde7c33a5': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
rightswitch: '1',
},
a8e752d108efceff504ae4edc4766b75: {
ty: '0',
M p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
rightswitch: '1',
},
'04c985ebbd0bea4c557207e69b8cbd8f': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
rightswitch: '1',
},
bc1f56d7cc14f15ddfcba5e21e19937b: {
ty: '2',
p: 't',
c1: '1',
c2: '1',
r: '0',
f: '0',M
leftswitch: '0',
rightswitch: '1',
},
'8e0c5fc77b27422a39d86ac2e57dc73d': {
ty: '0',
p: 't',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
f9fa5107ed213e709858d8876359309e: {
ty: '0',
p: 't',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
'2370f7ce1b91fc775bce3e72454f908a': {
ty: '0',
Mp: 't',
c1: '1',
c2: '1',
r: '0',
f: '0',
p4: 't',
},
b4f137e85588ce42d302102ba7215437: {
ty: '0',
p: 't',
c1: '1',
c2: '1',
r: '0',
f: '0',
p4: 't',
},
e1b01dd7e842d2b682ef48f689d5a4eb: {
ty: '4',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
'M43525a0405184875c2ecfd0196886a34': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
xm: 'f',
hs: 't',
},
'803743fe18600f292456539906464421': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
xm: 'f',
hs: 't',
},
'106b409c6f4c219b1a3b3d099ead3b2b': {
ty: '0',
M p: 'f',
c1: '1',
c2: '1',
r: '1',
f: '0',
xm: 'f',
},
'03daa19b7aae2d27e61f2a4dbe3b9b79': {
ty: '0',
p: 't',
c1: '1',
c2: '1',
r: '1',
f: '0',
},
'03935b9a1f2561bada58fcd5d9fd27de': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
dualanalog: 't',
M},
d27ed8f883af9b4ee3b5570f30e9ff71: {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
dualanalog: 't',
},
'01c7bc3cd8375e353c8aa837fe1262ec': {
ty: '4',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
a3a85e507d6f718972b1464ce1aaf8a4: {
ty: '0',
p: 'f',
c1: '1',
c2M: '1',
r: '0',
f: '0',
xm: 'f',
hs: 't',
},
'31b20a4710e691300bb4aa62cf02284c': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
xm: 'f',
hs: 't',
},
'32f1a1b5a7e3b4493c3b7b637aeea7d8': {
ty: '4',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
M '6e27f73bd4a49b647bcd58bc5f8b739d': {
ty: '4',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
'0070751edb8bbf4dd4a685f58b5b72c5': {
ty: '4',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
'9bd70c06d3386f76f8162881699a777a': {
ty: '3',
p: 't',
c1: '1',
c2: '1',
r: '0',
M f: '0',
p4: 't',
hs: 'f',
},
'95c8a795e30640c9ec82609872c80517': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
rightswitch: '1',
},
'1c8139c584e1cf5c6afdd2f3455a2446': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '1',
f: '0',
},
ca1c27b53fcfb9fed83bc9e92920707c: {
M ty: '4',
p: 'f',
c1: '0',
c2: '0',
r: '0',
f: '0',
},
'771cb4609347657f63e6f0eb26036e35': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
hs: 't',
},
a84c1b2300fbfbf21b1c02387f613dad: {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '1',
f: '0',
},
M '6adf79558a3d7f5beca1bb8d34337417': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
hs: 't',
},
'783d09ad9542b0bb28aa4cc6ffcf8aa6': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
hs: 't',
},
'0f4bd5800359a62a5874b93dc92a47f1': {
ty: '2',
p: 'f',
c1: '1',
M c2: '1',
r: '0',
f: '0',
},
'02508e6df5e173b4063a7e6e63295817': {
ty: '0',
p: 't',
c1: '1',
c2: '1',
r: '0',
f: '0',
p4: 't',
xm: 'f',
hs: 't',
},
'81cee326b99d6831de10a566e338bd25': {
ty: '0',
p: 't',
c1: '1',
c2: '1',
r: '0',
f: '0',
hs: 't',
},
M '1c9b0bb028e63f83a2d1c1def675acc9': {
ty: '0',
p: 't',
c1: '1',
c2: '1',
r: '1',
f: '0',
xm: 'f',
},
f4ad1a1d732c2c8cdbd21dabaf38a46c: {
ty: '0',
p: 't',
c1: '1',
c2: '1',
r: '1',
f: '0',
p4: 'f',
xm: 'f',
hs: 'f',
},
f41f651417c234104d37296477fa29eb: {
ty: '0',
M p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
p4: 'f',
xm: 'f',
hs: 't',
},
'7ab539bb0e99e1e5a1c89230bde64610': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
p4: 'f',
xm: 'f',
hs: 't',
},
'88b9de0eba37ba516590fa8b860155f0': {
ty: '0',
p: 'f',
M c1: '1',
c2: '1',
r: '0',
f: '0',
p4: 'f',
xm: 'f',
hs: 't',
},
'61aa4a074ad08c524fbee88d15e369ea': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '1',
f: '0',
p4: 'f',
xm: 'f',
hs: 'f',
},
'3632fcc732a33591b91f0eea2c01e599': {
ty: '4',
p: 'f',
c1: '1',
c2:M '1',
r: '0',
f: '0',
p4: 'f',
xm: 'f',
hs: 'f',
},
d0b87d349d6d5e40920cc4ff95253339: {
ty: '4',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
p4: 'f',
xm: 'f',
hs: 'f',
},
'9cb3848416e39ebf642357dbee3e5970': {
ty: '3',
p: 'f',
c1: '1',
c2: '0',
r: '0',
M f: '0',
p4: 'f',
xm: 'f',
hs: 'f',
},
b1ec7bd809ab3deb746c5a5eb2efaecb: {
ty: '0',
p: 't',
c1: '1',
c2: '1',
r: '0',
f: '0',
p4: 'f',
xm: 'f',
hs: 'f',
},
'43f8e9cec3d9991017709f48a7aa22f6': {
ty: '0',
p: 't',
c1: '1',
c2: '1',
r: '0',
f: '0',
M p4: 'f',
xm: 'f',
hs: 'f',
},
f85d506f5933427c8de664be0c5510a3: {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
p4: 'f',
xm: 'f',
hs: 't',
},
f83849cf3f5ac95856e8f93ee90d5a8d: {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
p4: 'f',
xm: 'f'M,
hs: 'f',
rightswitch: '1',
},
c62632545c91823f72f6f14b19766804: {
ty: '0',
p: 't',
c1: '1',
c2: '1',
r: '0',
f: '0',
p4: 'f',
xm: 'f',
hs: 'f',
},
'40913dcf24a623c1dc2495a1c4931b48': {
ty: '4',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
p4: 'f',
xm: 'Mf',
hs: 'f',
},
'8b49549763f4f0e42a23942b8df6b248': {
ty: '4',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
p4: 'f',
xm: 'f',
hs: 'f',
},
'7db031f1c4dc957719812fe68ee42531': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '1',
f: '0',
p4: 'f',
xm: 'f',
hs: 'f',
M },
'5837c4ac8b481fb98381adfd2fe87969': {
ty: '0',
p: 't',
c1: '1',
c2: '1',
r: '0',
f: '0',
p4: 'f',
xm: 'f',
hs: 'f',
},
'05b04e9822a75ceeeaa2eb106ffe768e': {
ty: '4',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
p4: 'f',
xm: 'f',
hs: 'f',
},
'727Mb6d447e21af42b3767f9c2cff6012': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
p4: 'f',
xm: 'f',
hs: 't',
},
c3107d3e3e17d67e3a11d47a5946a4f3: {
ty: '2',
p: 't',
c1: '1',
c2: '1',
r: '0',
f: '0',
p4: 'f',
xm: 'f',
hs: 't',
},
'8caa29a8d9214ca02697b3357102309Ma': {
ty: '2',
p: 't',
c1: '1',
c2: '1',
r: '1',
f: '0',
p4: 'f',
xm: 'f',
hs: 'f',
},
b3143adbbb7d7d189e918e5b29d55a72: {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
p4: 'f',
xm: 'f',
hs: 't',
},
e547492ebd342e57c28bb235546da299: {
ty: '0',
M p: 'f',
c1: '1',
c2: '1',
r: '1',
f: '0',
p4: 'f',
xm: 'f',
hs: 'f',
},
'89b8b3df46733e0c4d57aeb9bb245e6f': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
p4: 'f',
xm: 'f',
hs: 't',
},
eea04359df6770d66b0d97c2cea1932f: {
ty: '0',
p: 'f',
M c1: '1',
c2: '1',
r: '0',
f: '0',
p4: 'f',
xm: 'f',
hs: 't',
},
'7cdfbe37634e7dcd4dc67db7edbcd3ba': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
p4: 'f',
xm: 'f',
hs: 'f',
},
'1ae0b27d47f19d59652168fad3966375': {
ty: '0',
p: 't',
c1: '1',
c2: M'1',
r: '1',
f: '0',
p4: 'f',
xm: 'f',
hs: 'f',
},
'35433868dfe383ae21fd77507e5a478d': {
ty: '0',
p: 't',
c1: '1',
c2: '1',
r: '0',
f: '0',
p4: 't',
xm: 'f',
hs: 'f',
},
'59f1c1e7f6653a4e66ea898ce6eab50f': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
M f: '0',
p4: 'f',
xm: 'f',
hs: 't',
},
c2b42639718d005a6d0aefa0809f77db: {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '1',
f: '0',
p4: 'f',
xm: 'f',
hs: 'f',
},
'80ffad3edb50f0970e780a727a4524dd': {
ty: '0',
p: 't',
c1: '1',
c2: '1',
r: '0',
f: '0',
M p4: 'f',
xm: 'f',
hs: 't',
},
d9a110d889c4d42089c61fade25af220: {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
p4: 'f',
xm: 'f',
hs: 't',
},
'79df20ee86a989e669158bcb9d113e8a': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
p4: 'f',
xm: M'f',
hs: 't',
},
f982c7dbf74c9c049cf7f875a46ed818: {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
p4: 'f',
xm: 'f',
hs: 't',
},
ff8d8283553af5d5dbdaddb5781b4896: {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
p4: 'f',
xm: 'f',
hs: 't',
M },
a466a699324d11e1a2594cc89a9f18e1: {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
p4: 'f',
xm: 't',
hs: 'f',
leftswitch: '0',
},
'0c097bc8c786af182935081ac5cd631f': {
ty: '0',
p: 't',
c1: '1',
c2: '1',
r: '0',
f: '0',
p4: 'f',
xm: 't',
hs: 't',
M },
a662862f20362fc5eb5c651065cbd51c: {
ty: '3',
p: 't',
c1: '1',
c2: '1',
r: '0',
f: '0',
p4: 'f',
xm: 't',
hs: 'f',
dualanalog: 't',
},
};
var bu = Xf;
gu.prototype = {
createElement: function () {
this.el = this.doCreateElement();
var t = this.getClass();
if (t) {
this.el.className = t;M
}
return this.el;
},
getClass: function () {
return null;
},
getElement: function () {
return this.el;
},
doCreateElement: function () {
return null;
},
};
yu.prototype = Object.create(gu.prototype);
bu(yu.prototype, {
getClass: function () {
return 'js7800__controls-button';
},
doCreateElement: function () {
Mvar t = document.createElement('button');
var e = this;
t.onclick = function (t) {
e.onClick(t);
};
t.onmousedown = function (t) {
e.onDown(t);
};
t.onmouseup = function (t) {
e.onUp(t);
};
var n = document.createTextNode(this.text);
t.appendChild(n);
if (this.title) {
t.setAttribute('title', this.title);
}
return t;
M },
onClick: function (t) {},
onDown: function (t) {},
onUp: function (t) {},
});
wu.prototype = Object.create(gu.prototype);
bu(wu.prototype, {
getClass: function () {
return 'js7800__controls-switch';
},
doCreateElement: function () {
var t = document.createElement('label');
t.setAttribute('title', this.title);
var e = document.createElement('input');
this.cb = e;M
e.setAttribute('type', 'checkbox');
var n = this;
e.onclick = function (t) {
n.onClick(t);
};
t.appendChild(e);
var r = document.createElement('span');
r.className = this.getClass() + '-slider';
t.appendChild(r);
return t;
},
setValue(t) {
this.cb.checked = t;
},
getValue() {
return this.cb.checked;
},
onClick: Mfunction (t) {},
});
var mu =
'data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4NCjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+DQo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHZlcnNpb249IjEuMSIgIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij4NCiAgIDxwYXRoIGZpbGw9IiNGRkZGRkYiIGQ9Ik0xNS45LDE4LjQ1QzE3LjI1LMDE4LjQ1IDE4LjM1LDE3LjM1IDE4LjM1LDE2QzE4LjM1LDE0LjY1IDE3LjI1LDEzLjU1IDE1LjksMTMuNTVDMTQuNTQsMTMuNTUgMTMuNDUsMTQuNjUgMTMuNDUsMTZDMTMuNDUsMTcuMzUgMTQuNTQsMTguNDUgMTUuOSwxOC40NU0yMS4xLDE2LjY4TDIyLjU4LDE3Ljg0QzIyLjcxLDE3Ljk1IDIyLjc1LDE4LjEzIDIyLjY2LDE4LjI5TDIxLjI2LDIwLjcxQzIxLjE3LDIwLjg2IDIxLDIwLjkyIDIwLjgzLDIwLjg2TDE5LjA5LDIwLjE2QzE4LjczLDIwLjQ0IDE4LjMzLDIwLjY3IDE3LjkxLDIwLjg1TDE3LjY0LDIyLjdDMTcuNjIsMjIuODcgMTcuNDcsMjMgMTcuMywyM0gxNC41QzE0LjMyLDIzIDE0LjE4LDIyLjg3IDE0LjE1LDIyLjdMMTMuODksMjAuODVDMTMuNDYsMjAuNjcgMTMuMDcsMMjAuNDQgMTIuNzEsMjAuMTZMMTAuOTYsMjAuODZDMTAuODEsMjAuOTIgMTAuNjIsMjAuODYgMTAuNTQsMjAuNzFMOS4xNCwxOC4yOUM5LjA1LDE4LjEzIDkuMDksMTcuOTUgOS4yMiwxNy44NEwxMC43LDE2LjY4TDEwLjY1LDE2TDEwLjcsMTUuMzFMOS4yMiwxNC4xNkM5LjA5LDE0LjA1IDkuMDUsMTMuODYgOS4xNCwxMy43MUwxMC41NCwxMS4yOUMxMC42MiwxMS4xMyAxMC44MSwxMS4wNyAxMC45NiwxMS4xM0wxMi43MSwxMS44NEMxMy4wNywxMS41NiAxMy40NiwxMS4zMiAxMy44OSwxMS4xNUwxNC4xNSw5LjI5QzE0LjE4LDkuMTMgMTQuMzIsOSAxNC41LDlIMTcuM0MxNy40Nyw5IDE3LjYyLDkuMTMgMTcuNjQsOS4yOUwxNy45MSwxMS4xNUMxOC4zMywxMS4zMiAxOC43MywxMS41NiAxOMS4wOSwxMS44NEwyMC44MywxMS4xM0MyMSwxMS4wNyAyMS4xNywxMS4xMyAyMS4yNiwxMS4yOUwyMi42NiwxMy43MUMyMi43NSwxMy44NiAyMi43MSwxNC4wNSAyMi41OCwxNC4xNkwyMS4xLDE1LjMxTDIxLjE1LDE2TDIxLjEsMTYuNjhNNi42OSw4LjA3QzcuNTYsOC4wNyA4LjI2LDcuMzcgOC4yNiw2LjVDOC4yNiw1LjYzIDcuNTYsNC45MiA2LjY5LDQuOTJBMS41OCwxLjU4IDAgMCwwIDUuMTEsNi41QzUuMTEsNy4zNyA1LjgyLDguMDcgNi42OSw4LjA3TTEwLjAzLDYuOTRMMTEsNy42OEMxMS4wNyw3Ljc1IDExLjA5LDcuODcgMTEuMDMsNy45N0wxMC4xMyw5LjUzQzEwLjA4LDkuNjMgOS45Niw5LjY3IDkuODYsOS42M0w4Ljc0LDkuMThMOCw5LjYyTDcuODEsMTAuODFDNy43OSwxMC45MMiA3LjcsMTEgNy41OSwxMUg1Ljc5QzUuNjcsMTEgNS41OCwxMC45MiA1LjU2LDEwLjgxTDUuNCw5LjYyTDQuNjQsOS4xOEwzLjUsOS42M0MzLjQxLDkuNjcgMy4zLDkuNjMgMy4yNCw5LjUzTDIuMzQsNy45N0MyLjI4LDcuODcgMi4zMSw3Ljc1IDIuMzksNy42OEwzLjM0LDYuOTRMMy4zMSw2LjVMMy4zNCw2LjA2TDIuMzksNS4zMkMyLjMxLDUuMjUgMi4yOCw1LjEzIDIuMzQsNS4wM0wzLjI0LDMuNDdDMy4zLDMuMzcgMy40MSwzLjMzIDMuNSwzLjM3TDQuNjMsMy44Mkw1LjQsMy4zOEw1LjU2LDIuMTlDNS41OCwyLjA4IDUuNjcsMiA1Ljc5LDJINy41OUM3LjcsMiA3Ljc5LDIuMDggNy44MSwyLjE5TDgsMy4zOEw4Ljc0LDMuODJMOS44NiwzLjM3QzkuOTYsMy4zMyAxMC4wOCwzLjM3IDEwLMjEzLDMuNDdMMTEuMDMsNS4wM0MxMS4wOSw1LjEzIDExLjA3LDUuMjUgMTEsNS4zMkwxMC4wMyw2LjA2TDEwLjA2LDYuNUwxMC4wMyw2Ljk0WiIgLz4NCjwvc3ZnPg==';
var Mu =
'data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4NCjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+DQo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHZlcnNpb249IjEuMSIgIHdpZHRoPSIyNCIgaGVpMZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij4NCiAgIDxwYXRoIGZpbGw9IiNmZmZmZmYiIGQ9Ik0xMSw5SDEzVjdIMTFNMTIsMjBDNy41OSwyMCA0LDE2LjQxIDQsMTJDNCw3LjU5IDcuNTksNCAxMiw0QzE2LjQxLDQgMjAsNy41OSAyMCwxMkMyMCwxNi40MSAxNi40MSwyMCAxMiwyME0xMiwyQTEwLDEwIDAgMCwwIDIsMTJBMTAsMTAgMCAwLDAgMTIsMjJBMTAsMTAgMCAwLDAgMjIsMTJBMTAsMTAgMCAwLDAgMTIsMk0xMSwxN0gxM1YxMUgxMVYxN1oiIC8+DQo8L3N2Zz4=';
var vu =
'data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4NCjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcMgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+DQo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHZlcnNpb249IjEuMSIgIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij4NCiAgIDxwYXRoIGZpbGw9IiNmZmZmZmYiIGQ9Ik0yMCwySDRWNEw5LjgxLDguMzZDNi4xNCw5LjU3IDQuMTQsMTMuNTMgNS4zNSwxNy4yQzYuNTYsMjAuODcgMTAuNSwyMi44NyAxNC4xOSwyMS42NkMxNy44NiwyMC40NSAxOS44NiwxNi41IDE4LjY1LDEyLjgyQzE3Ljk1LDEwLjcxIDE2LjMsOS4wNSAxNC4xOSw4LjM2TDIwLDRMWMk0xNC45NCwxOS41TDEyLDE3Ljc4TDkuMDYsMTkuNUw5Ljg0LDE2LjE3TDcuMjUsMTMuOTNMMTAuNjYsMTMuNjRMMTIsMTAuNUwxMy4zNCwxMy42NEwxNi43NSwxMy45M0wxNC4xNiwxNi4xN0wxNC45NCwxOS41WiIgLz4NCjwvc3ZnPg==';
var Lu = Xf;
var Iu = gu;
var Cu = yu;
var Eu = wu;
Su.prototype = Object.create(Iu.prototype);
Lu(Su.prototype, {
getClass: function () {
return 'js7800__controls-group';
},
doCreateElement: function () {
var t = document.createElemeMnt('div');
for (var e = 0; e < this.children.length; e++) {
t.appendChild(this.children[e].createElement());
}
return t;
},
addChild: function (t) {
this.children.push(t);
},
addChildAtIndex: function (t, e) {
this.children.splice(t, 0, e);
},
});
xu.prototype = Object.create(Su.prototype);
Lu(xu.prototype, {
getClass: function () {
return 'js7800_M_controls-group-start';
},
});
Du.prototype = Object.create(Su.prototype);
Lu(Du.prototype, {
getClass: function () {
return 'js7800__controls-group-end';
},
});
Nu.prototype = Object.create(Iu.prototype);
Lu(Nu.prototype, {
getClass: function () {
return 'js7800__controls-img-button';
},
doCreateElement: function () {
var t = this;
var e = document.createElemenMt('a');
this.anchor = e;
e.setAttribute('draggable', 'false');
e.setAttribute('role', 'button');
e.setAttribute('tabindex', '0');
e.onkeydown = function (e) {
var n = e.which;
if (n === 13 || n === 32) {
t.onClick(e);
}
};
e.onmousedown = function (t) {
t.preventDefault();
};
e.onclick = function (e) {
t.onClick(e);
M };
var n = document.createElement('img');
this.img = n;
n.setAttribute('draggable', 'false');
n.setAttribute('src', this.imageSrc);
n.setAttribute('title', this.title);
e.appendChild(n);
return e;
},
onClick(t) {},
});
_u.prototype = Object.create(Nu.prototype);
Lu(_u.prototype, {
doCreateElement: function () {
var t = Nu.prototype.doCreateElement.call(this);
M var e = this;
this.anchor.onclick = function (t) {
e.setValue(!e.value);
e.onClick(t);
};
return t;
},
setValue: function (t) {
this.value = t;
this.img.src = this.value ? this.onImageSrc : this.imageSrc;
this.img.title = this.value ? this.onTitle : this.title;
},
getValue: function () {
return this.value;
},
});
var Tu = new xu();
M var ku = new _u(
'Pause',
'data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4NCjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+DQo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHZlcnNpb249IjEuMSIgIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij4NCiAgIDxwYXRoIGZpbGw9IiNGRkZGRkYiIGQ9Ik0xNCwxOUgxOFY1SDE0TTYsMTlMIMTBWNUg2VjE5WiIgLz4NCjwvc3ZnPg==',
'Resume',
'data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4NCjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+DQo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHZlcnNpb249IjEuMSIgIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij4NCiAgIDxwYXRoIGZpbGw9IiNmZmZmZmYiIGQ9Ik04LDUuMTRWMTkMuMTRMMTksMTIuMTRMOCw1LjE0WiIgLz4NCjwvc3ZnPg=='
);
ku.onClick = function () {
zo(this.getValue());
};
Tu.addChild(ku);
var Bu = new _u(
'Sound Off',
'data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4NCjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+DQo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMMub3JnLzE5OTkveGxpbmsiIHZlcnNpb249IjEuMSIgIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij4NCiAgIDxwYXRoIGZpbGw9IiNGRkZGRkYiIGQ9Ik0xNCwzLjIzVjUuMjlDMTYuODksNi4xNSAxOSw4LjgzIDE5LDEyQzE5LDE1LjE3IDE2Ljg5LDE3Ljg0IDE0LDE4LjdWMjAuNzdDMTgsMTkuODYgMjEsMTYuMjggMjEsMTJDMjEsNy43MiAxOCw0LjE0IDE0LDMuMjNNMTYuNSwxMkMxNi41LDEwLjIzIDE1LjUsOC43MSAxNCw3Ljk3VjE2QzE1LjUsMTUuMjkgMTYuNSwxMy43NiAxNi41LDEyTTMsOVYxNUg3TDEyLDIwVjRMNyw5SDNaIiAvPg0KPC9zdmc+',
'Sound On',
'data:image/svg+xml;base64,PD94bWwgdmVyc2lvbMj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4NCjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+DQo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHZlcnNpb249IjEuMSIgIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij4NCiAgIDxwYXRoIGZpbGw9IiNmZmZmZmYiIGQ9Ik0xMiw0TDkuOTEsNi4wOUwxMiw4LjE4TTQuMjcsM0wzLDQuMjdMNy43Myw5SDNWMTVIN0wxMiwyMFYxMy4yN0wxNi4yNSwxNy41M0MxNS41OCwxOC4wNCAxNC44MMywxOC40NiAxNCwxOC43VjIwLjc3QzE1LjM4LDIwLjQ1IDE2LjYzLDE5LjgyIDE3LjY4LDE4Ljk2TDE5LjczLDIxTDIxLDE5LjczTDEyLDEwLjczTTE5LDEyQzE5LDEyLjk0IDE4LjgsMTMuODIgMTguNDYsMTQuNjRMMTkuOTcsMTYuMTVDMjAuNjIsMTQuOTEgMjEsMTMuNSAyMSwxMkMyMSw3LjcyIDE4LDQuMTQgMTQsMy4yM1Y1LjI5QzE2Ljg5LDYuMTUgMTksOC44MyAxOSwxMk0xNi41LDEyQzE2LjUsMTAuMjMgMTUuNSw4LjcxIDE0LDcuOTdWMTAuMThMMTYuNDUsMTIuNjNDMTYuNSwxMi40MyAxNi41LDEyLjIxIDE2LjUsMTJaIiAvPg0KPC9zdmc+'
);
Bu.onClick = function () {
var t = this.getValue();
wa = t;
M };
Tu.addChild(Bu);
var ju = new Nu(
'Restart',
'data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4NCjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+DQo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHZlcnNpb249IjEuMSIgIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij4NCiAgIDxwYXRoIGZpbGw9IiNGRkZGRMkYiIGQ9Ik0xMiw0QzE0LjEsNCAxNi4xLDQuOCAxNy42LDYuM0MyMC43LDkuNCAyMC43LDE0LjUgMTcuNiwxNy42QzE1LjgsMTkuNSAxMy4zLDIwLjIgMTAuOSwxOS45TDExLjQsMTcuOUMxMy4xLDE4LjEgMTQuOSwxNy41IDE2LjIsMTYuMkMxOC41LDEzLjkgMTguNSwxMC4xIDE2LjIsNy43QzE1LjEsNi42IDEzLjUsNiAxMiw2VjEwLjZMNyw1LjZMMTIsMC42VjRNNi4zLDE3LjZDMy43LDE1IDMuMywxMSA1LjEsNy45TDYuNiw5LjRDNS41LDExLjYgNS45LDE0LjQgNy44LDE2LjJDOC4zLDE2LjcgOC45LDE3LjEgOS42LDE3LjRMOSwxOS40QzgsMTkgNy4xLDE4LjQgNi4zLDE3LjZaIiAvPg0KPC9zdmc+'
);
ju.onClick = function () {
Pt('resMtart');
};
Tu.addChild(ju);
var Ru = new Su();
var Pu = new Cu('SELECT', 'Select');
Pu.onDown = function () {
Au(true);
};
Pu.onUp = function () {
Au(false);
};
Ru.addChild(Pu);
var Ou = new Cu('RESET', 'Reset');
Ou.onDown = function () {
hu(true);
};
Ou.onUp = function () {
hu(false);
};
Ru.addChild(Ou);
var Fu = new Eu('Left difficulty switch');
M Fu.onClick = function () {
Tf(!this.getValue());
};
Ru.addChild(Fu);
var Gu = new Eu('Right difficulty switch');
Gu.onClick = function () {
kf(!this.getValue());
};
Ru.addChild(Gu);
var zu = new Du();
var Wu = new Nu('Leaderboard', vu);
Wu.onClick = function () {
Pt('showError', 'Not implemented.');
};
zu.addChild(Wu);
var Uu = new Nu('Help / Info', Mu);
Uu.onClick = function (M) {
Pt('showError', 'Not implemented.');
};
zu.addChild(Uu);
var Zu = new Nu('Settings', mu);
Zu.onClick = function () {
Pt('showError', 'Not implemented.');
};
zu.addChild(Zu);
var Qu = new _u(
'Fullscreen',
'data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4NCjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+DQo8Mc3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHZlcnNpb249IjEuMSIgIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij4NCiAgIDxwYXRoIGZpbGw9IiNGRkZGRkYiIGQ9Ik01LDVIMTBWN0g3VjEwSDVWNU0xNCw1SDE5VjEwSDE3VjdIMTRWNU0xNywxNEgxOVYxOUgxNFYxN0gxN1YxNE0xMCwxN1YxOUg1VjE0SDdWMTdIMTBaIiAvPg0KPC9zdmc+',
'Exit Fullscreen',
'data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4NCjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RMURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+DQo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHZlcnNpb249IjEuMSIgIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij4NCiAgIDxwYXRoIGZpbGw9IiNGRkZGRkYiIGQ9Ik0xNCwxNEgxOVYxNkgxNlYxOUgxNFYxNE01LDE0SDEwVjE5SDhWMTZINVYxNE04LDVIMTBWMTBINVY4SDhWNU0xOSw4VjEwSDE0VjVIMTZWOEgxOVoiIC8+DQo8L3N2Zz4='
);
Qu.onClick = function () {
if (Ys()) {
M Vs();
} else {
Hs();
}
};
zu.addChild(Qu);
Rt(
new jt('init', function () {
var t = document.getElementById('js7800__controls');
var e = document.createElement('div');
e.className = 'js7800__controls-container';
t.appendChild(e);
e.appendChild(Tu.createElement());
e.appendChild(Ru.createElement());
e.appendChild(zu.createElement());
Rt(
M new jt('fullscreen', function (t) {
Qu.setValue(t);
})
);
})
);
Rt(
new jt('onCartridgeLoaded', function () {
ku.setValue(false);
})
);
Rt(
new jt('onLeftDiffChanged', function (t) {
Fu.setValue(!t);
})
);
Rt(
new jt('onRightDiffChanged', function (t) {
Gu.setValue(!t);
})
);
n(0);
n(1);
M Vu.prototype = {
getRom: function () {
return null;
},
write: function (t, e) {},
loadSram: function (t) {
t(null);
},
};
var Ju = function (t) {
var e = Lo() && (96 & mo[60]) != 64;
Ao(t);
Po = 0;
Oo = 0;
Fo = 0;
Go = 0;
if (To || ko) {
uo();
}
for (_o = 1; _o <= Do; _o++) {
if (_o == go.top) {
moM[40] = 0;
} else if (_o == go.bottom) {
mo[40] = 128;
}
var n = false;
var r = 0;
No %= Io;
for (e && Ro(); No < 28; ) {
r = Mo() << 2;
No += r;
if (e) {
Ro();
}
if (Ci()) {
No += 2;
if (e) {
Ro();
}
}
if (po()) {
bo(r >>> 2);
M }
if (mo[36]) {
Oo++;
mo[36] = 0;
n = true;
break;
}
}
Tt(true);
if ((r = ((yo(_o) + 3) >>> 2) << 2) > 428) {
n = true;
}
Tt(false);
No += r;
Fo += r;
if (po()) {
bo(r >>> 2);
}
for (
wo() &&
(!n &&
No < Io &&
((r = MMo() << 2),
po() && bo(r >>> 2),
(No += r),
mo[36] && (Oo++, (mo[36] = 0), (n = true))),
vo());
!n && No < Io;
) {
r = Mo() << 2;
No += r;
if (e) {
Ro();
}
if (Ci()) {
No += 2;
if (e) {
Ro();
}
}
if (po()) {
bo(r >>> 2);
}M
if (mo[36]) {
Oo++;
mo[36] = 0;
n = true;
break;
}
}
if (n && No < Io) {
if (po()) {
bo((Io - No) >>> 2);
}
No = Io;
}
Go += No;
if (e) {
Ro();
}
fo(2);
if (To || ko) {
lo(2);
}
if (To || ko) {
ho();
M }
}
if (++xo >= So) {
xo = 0;
}
};
var Xu = function () {
var t;
var e;
var n;
var r = ya || da();
var c = la();
var i = ha();
var a = (function () {
var t = ga;
var e = i;
var n = pa;
var r = (t / n) | 0;
var c = t % n | 0;
if (c != 0 && c >= e) {
r++;
}
return r;
}M)();
(function (t, e, n, r) {
var c = ga;
var i = 0;
var a = 0;
for (var o = (pa * ba) << 1; a < r; ) {
if (c >= o) {
n[a++] = t[i] + (e ? e[i] : 0);
c -= o;
} else {
i++;
c += ga;
}
}
})(fa, r ? oa : null, ma, a);
ua();
sa();
if (c) {
t = Ma;
e = a;
n = 0;
M ct.mixStereo(t, e, n);
ct.Count(e);
}
if (!wa) {
Aa(ma, c ? Ma : null, a);
}
return true;
};
var qu = function () {
var t = null;
if (cu()) {
if (du) {
du = false;
uu[3] = true;
} else {
uu[3] = !iu();
}
} else {
nu();
t = ru(0);
lu(0, uu, t);
lu(1, uu, t);
}
uuM[12] = su || Rf() || (t && t.isReset());
uu[13] = fu || jf() || (t && t.isSelect());
uu[14] = Pf() || (t && t.isPause());
uu[15] = Of();
uu[16] = Ff();
};
var Ku = Es;
var $u = null;
var td = null;
var ed = null;
var nd = null;
var rd = null;
var cd = null;
var id = false;
var ad = null;
new Vu();
var od = false;
var sd = true;
var fd = 0;
var ud = 0;
M var dd = 0;
var ld = new Array(19);
var hd = false;
var Ad = false;
var yd;
var wd;
var md = null;
if (document.hidden === void 0) {
if (document.msHidden === void 0) {
if (document.webkitHidden !== void 0) {
yd = 'webkitHidden';
wd = 'webkitvisibilitychange';
}
} else {
yd = 'msHidden';
wd = 'msvisibilitychange';
}
} else {
yd = 'hiddeMn';
wd = 'visibilitychange';
}
document.addEventListener(
wd,
function () {
if (document[yd]) {
console.log('page is no longer visible.');
zo(true);
Ad = true;
} else {
console.log('page visible.');
if (!Yu()) {
zo(false);
}
}
},
false
);
var Bd = {
8: 'Back',
9: 'Tab',
1M3: 'Enter',
16: 'Shift',
17: 'Ctrl',
18: 'Alt',
19: 'Break',
27: 'Esc',
32: 'Space',
33: 'PUp',
34: 'PDown',
35: 'End',
36: 'Home',
37: 'Left',
38: 'Up',
39: 'Right',
40: 'Down',
45: 'Insert',
46: 'Delete',
48: '0',
49: '1',
50: '2',
51: '3',
52: '4',
53: '5',
54: '6',
55: '7',
M 56: '8',
57: '9',
65: 'A',
66: 'B',
67: 'C',
68: 'D',
69: 'E',
70: 'F',
71: 'G',
72: 'H',
73: 'I',
74: 'J',
75: 'K',
76: 'L',
77: 'M',
78: 'N',
79: 'O',
80: 'P',
81: 'Q',
82: 'R',
83: 'S',
84: 'T',
85: 'U',
86: 'V',
87: 'W',
88: 'X',
89: 'Y',
M 90: 'Z',
96: 'Num 0',
97: 'Num 1',
98: 'Num 2',
99: 'Num 3',
100: 'Num 4',
101: 'Num 5',
102: 'Num 6',
103: 'Num 7',
104: 'Num 8',
105: 'Num 9',
106: 'Num *',
107: 'Num +',
109: 'Num -',
110: 'Num .',
111: 'Num /',
112: 'F1',
113: 'F2',
114: 'F3',
115: 'F4',
116: 'F5',
117: 'F6',
118: 'F7',
M 119: 'F8',
120: 'F9',
121: 'F10',
122: 'F11',
123: 'F12',
144: 'NLock',
145: 'SLock',
186: ';',
187: '=',
188: ',',
189: '-',
190: '.',
191: '/',
192: '`',
219: '[',
220: '\\',
221: ']',
222: "'",
};
n.d(e, 'Main', function () {
return l;
});
n.d(e, 'Cartridge', function () {
return i;
M });
n.d(e, 'ControlsBar', function () {
return d;
});
n.d(e, 'Util', function () {
return f;
});
n.d(e, 'Events', function () {
return r;
});
n.d(e, 'Keyboard', function () {
return s;
});
n.d(e, 'Keys', function () {
return h;
});
n.d(e, 'Pads', function () {
return u;
});
n.d(e, 'Memory', function () {
return c;
});
n.d(e, 'VMideo', function () {
return o;
});
n.d(e, 'Region', function () {
return a;
});
n.d(e, 'ProSystem', function () {
return a;
});
n.d(e, 'md5', function () {
return an;
});
},
];
var e = {};
n.m = t;
n.c = e;
n.d = function (t, e, r) {
if (!n.o(t, e)) {
Object.defineProperty(t, e, { enumerable: true, get: r });
}
};
n.r = function (t) {
if (typeof Symbol != 'undefMined' && Symbol.toStringTag) {
Object.defineProperty(t, Symbol.toStringTag, { value: 'Module' });
}
Object.defineProperty(t, '__esModule', { value: true });
};
n.t = function (t, e) {
if (1 & e) {
t = n(t);
}
if (8 & e) {
return t;
}
if (4 & e && typeof t == 'object' && t && t.__esModule) {
return t;
}
var r = Object.create(null);
n.r(r);
Object.defineProperty(r, 'default', { enumerable: true, value: t });
M if (2 & e && typeof t != 'string') {
for (var c in t) {
n.d(
r,
c,
function (e) {
return t[e];
}.bind(null, c)
);
}
}
return r;
};
n.n = function (t) {
var e =
t && t.__esModule
? function () {
return t.default;
}
: function () {
return t;
};
n.d(e, 'a', e);
return e;
};
n.o = function (t, e) M{
return Object.prototype.hasOwnProperty.call(t, e);
};
n.p = '';
return n((n.s = 5));
};
if (typeof exports == 'object' && typeof module == 'object') {
module.exports = e();
} else if (typeof define == 'function' && define.amd) {
define('js7800', [], e);
} else if (typeof exports == 'object') {
exports.js7800 = e();
} else {
t.js7800 = e();
}
})();
h eE"/w6Clo
}syHM\+}j_Hs, cordtext/javascript M(function () {
var t = window;
var e = function () {
function n(r) {
if (e[r]) {
return e[r].exports;
}
var c = (e[r] = { i: r, l: false, exports: {} });
t[r].call(c.exports, c, c.exports, n);
c.l = true;
return c.exports;
}
var t = [
function (t, e) {
function e(e, n) {
var r = t.createEvent('Event');
r.initEvent(e, true, false);
n.dispatchEvent(r);
}
function n(e) {
return function (n,M c) {
if (e !== a.exit || t[r.element]) {
t.addEventListener(
r.events.change,
function e() {
n();
t.removeEventListener(r.events.change, e, false);
},
false
);
t.addEventListener(
r.events.error,
function e() {
c(new TypeError());
t.removeEventListener(r.events.error, e, false);
}M,
false
);
return;
} else {
setTimeout(function () {
c(new TypeError());
}, 1);
return;
}
};
}
var t = document;
var r;
var c;
var i = {
w3: {
enabled: 'fullscreenEnabled',
element: 'fullscreenElement',
request: 'requestFullscreen',
exit: 'exitFullscreen',
events: { change:M 'fullscreenchange', error: 'fullscreenerror' },
},
webkit: {
enabled: 'webkitFullscreenEnabled',
element: 'webkitCurrentFullScreenElement',
request: 'webkitRequestFullscreen',
exit: 'webkitExitFullscreen',
events: {
change: 'webkitfullscreenchange',
error: 'webkitfullscreenerror',
},
},
moz: {
enabled: 'mozFullScreenEnabled',
element: 'mozFullScreenElemMent',
request: 'mozRequestFullScreen',
exit: 'mozCancelFullScreen',
events: {
change: 'mozfullscreenchange',
error: 'mozfullscreenerror',
},
},
ms: {
enabled: 'msFullscreenEnabled',
element: 'msFullscreenElement',
request: 'msRequestFullscreen',
exit: 'msExitFullscreen',
events: {
change: 'MSFullscreenChange',
error: 'MSFullscreenErroMr',
},
},
};
var a = i.w3;
for (c in i) {
if (i[c].enabled in t) {
r = i[c];
break;
}
}
if (!(a.enabled in t) && !!r) {
t.addEventListener(
r.events.change,
function (n) {
n.stopPropagation();
n.stopImmediatePropagation();
t[a.enabled] = t[r.enabled];
t[a.element] = t[r.element];
e(a.events.change, n.target);M
},
false
);
t.addEventListener(
r.events.error,
function (t) {
e(a.events.error, t.target);
},
false
);
t[a.enabled] = t[r.enabled];
t[a.element] = t[r.element];
t[a.exit] = function () {
var e = t[r.exit]();
if (!e && Promise) {
return new Promise(n(a.exit));
} else {
return e;
}
};
M Element.prototype[a.request] = function () {
var t = this[r.request].apply(this, arguments);
if (!t && Promise) {
return new Promise(n(a.request));
} else {
return t;
}
};
}
},
function (t, e, n) {
var r = n(2);
var c = n(3);
if (typeof (c = c.__esModule ? c.default : c) == 'string') {
c = [[t.i, c, '']];
}
var i = { insert: 'head', singleton: false };
M r(c, i);
var a = c.locals ? c.locals : {};
t.exports = a;
},
function (t, e, n) {
'use strict';
function o(t) {
var e = -1;
for (var n = 0; n < a.length; n++) {
if (a[n].identifier === t) {
e = n;
break;
}
}
return e;
}
function s(t, e) {
var n = {};
var r = [];
for (var c = 0; c < t.length; c++) {
var i = t[c];
M var s = e.base ? i[0] + e.base : i[0];
var f = n[s] || 0;
var u = ''.concat(s, ' ').concat(f);
n[s] = f + 1;
var d = o(u);
var l = { css: i[1], media: i[2], sourceMap: i[3] };
if (d === -1) {
a.push({ identifier: u, updater: b(l, e), references: 1 });
} else {
a[d].references++;
a[d].updater(l);
}
r.push(u);
}
return r;
}
funMction f(t) {
var e = document.createElement('style');
var r = t.attributes || {};
if (r.nonce === void 0) {
var c = n.nc;
if (c) {
r.nonce = c;
}
}
Object.keys(r).forEach(function (t) {
e.setAttribute(t, r[t]);
});
if (typeof t.insert == 'function') {
t.insert(e);
} else {
var a = i(t.insert || 'head');
if (!a) {
throw new ErrMor(
"Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid."
);
}
a.appendChild(e);
}
return e;
}
function l(t, e, n, r) {
var c = n
? ''
: r.media
? '@media '.concat(r.media, ' {').concat(r.css, '}')
: r.css;
if (t.styleSheet) {
t.styleSheet.cssText = d(e, c);
} else {
var i = Mdocument.createTextNode(c);
var a = t.childNodes;
if (a[e]) {
t.removeChild(a[e]);
}
if (a.length) {
t.insertBefore(i, a[e]);
} else {
t.appendChild(i);
}
}
}
function h(t, e, n) {
var r = n.css;
var c = n.media;
var i = n.sourceMap;
if (c) {
t.setAttribute('media', c);
} else {
t.removeAttribute('media')M;
}
if (i && btoa) {
r += '\n/*# sourceMappingURL=data:application/json;base64,'.concat(
btoa(unescape(encodeURIComponent(JSON.stringify(i)))),
' */'
);
}
if (t.styleSheet) {
t.styleSheet.cssText = r;
} else {
while (t.firstChild) {
t.removeChild(t.firstChild);
}
t.appendChild(document.createTextNode(r));
}
}
function b(t, e) {
M var n;
var r;
var c;
if (e.singleton) {
var i = p++;
n = A || (A = f(e));
r = l.bind(null, n, i, false);
c = l.bind(null, n, i, true);
} else {
n = f(e);
r = h.bind(null, n, e);
c = function () {
var t = n;
if (t.parentNode === null) {
return;
}
t.parentNode.removeChild(t);
};
}
r(Mt);
return function (e) {
if (e) {
if (
e.css === t.css &&
e.media === t.media &&
e.sourceMap === t.sourceMap
) {
return;
}
r((t = e));
} else {
c();
}
};
}
var r;
var c = function () {
if (r === void 0) {
r = Boolean(window && document && document.all && !window.atob);
}
M return r;
};
var i = (function () {
var t = {};
return function (e) {
if (t[e] === void 0) {
var n = document.querySelector(e);
if (
window.HTMLIFrameElement &&
n instanceof window.HTMLIFrameElement
) {
try {
n = n.contentDocument.head;
} catch (t) {
n = null;
}
}
t[e] = n;
M }
return t[e];
};
})();
var a = [];
var u = [];
var d = function (t, e) {
u[t] = e;
return u.filter(Boolean).join('\n');
};
var A = null;
var p = 0;
t.exports = function (t, e) {
if (!(e = e || {}).singleton && typeof e.singleton != 'boolean') {
e.singleton = c();
}
var n = s((t = t || []), e);
return function (t) {
t = t || [];
M if (Object.prototype.toString.call(t) === '[object Array]') {
for (var r = 0; r < n.length; r++) {
var c = o(n[r]);
a[c].references--;
}
var i = s(t, e);
for (var f = 0; f < n.length; f++) {
var u = o(n[f]);
if (a[u].references === 0) {
a[u].updater();
a.splice(u, 1);
}
}
n = i;
}
};
};M
},
function (t, e, n) {
(e = n(4)(false)).push([
t.i,
'/* All sizing currently done in pixels */\r\n\r\n.js7800_noselect {\r\n -webkit-touch-callout: none; /* iOS Safari */\r\n -webkit-user-select: none; /* Safari */\r\n -khtml-user-select: none; /* Konqueror HTML */\r\n -moz-user-select: none; /* Old versions of Firefox */\r\n -ms-user-select: none; /* Internet Explorer/Edge */\r\n user-select: none; /* Non-prefixed version, currently\rM\n supported by Chrome, Opera and Firefox */\r\n padding:0;\r\n margin:0;\r\n}\r\n\r\n.js7800 {\r\n margin-left: auto;\r\n margin-right: auto;\r\n box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.4), 0 6px 20px 0 rgba(0, 0, 0, 0.39);\r\n border-radius: 16px;\r\n background: #000;\r\n padding: 20px;\r\n}\r\n\r\n.js7800__inner-container {\r\n position: relative;\r\n text-align: center;\r\n}\r\n\r\n.js7800__screen {\r\n margin: auto;\r\n background: #000;\r\n /* cursor: none; */\rM\n image-rendering: optimizeSpeed; /* Older versions of FF */\r\n image-rendering: -moz-crisp-edges; /* FF 6.0+ */\r\n image-rendering: -webkit-optimize-contrast; /* Safari */\r\n image-rendering: -o-crisp-edges; /* OS X & Windows Opera (12.02+) */\r\n image-rendering: pixelated; /* Awesome future-browsers */\r\n /*-ms-interpolation-mode: nearest-neighbor;*/ /* IE */ \r\n}\r\n\r\n.js7800__logo {\r\Mn left: 50%;\r\n top: 50%;\r\n -webkit-transform: translate(-50%, -50%);\r\n -moz-transform: translate(-50%, -50%);\r\n transform: translate(-50%, -50%);\r\n position: absolute;\r\n visibility: hidden;\r\n opacity: 0;\r\n}\r\n\r\n.js7800__logo .atari7800 {\r\n margin-top: -40px;\r\n padding: 0 3em;\r\n}\r\n\r\n.js7800__logo--show {\r\n visibility: visible;\r\n opacity: 1;\r\n transition: visibility 0s linear 0s, opacity 1s;\r\n}\r\n\r\n.js7800__logo--hide {\r\n visibility: hidden;\r\n opacity: 0;\r\nM transition: visibility 1s linear 1s, opacity 1s; \r\n}\r\n\r\n.js7800__controls {\r\n border-top: 10px solid black;\r\n background-color: #151515;\r\n margin-left: auto;\r\n margin-right: auto;\r\n font-size: 12px;\r\n border-radius: 5px;\r\n}\r\n\r\n#js7800__fullscreen-container:-webkit-full-screen {\r\n position:fixed;\r\n width: 100%;\r\n background-color: black;\r\n}\r\n\r\n.js7800__controls-switch {\r\n position: relative;\r\n display: inline-block;\r\n width: 29px;\r\n height: 18px;\r\n margiMn: 0 5px 0 5px;\r\n}\r\n\r\n.js7800__controls-switch input {\r\n opacity: 0;\r\n width: 0;\r\n height: 0;\r\n}\r\n\r\n.js7800__controls-switch-slider {\r\n position: absolute;\r\n cursor: pointer;\r\n top: 0;\r\n left: 0;\r\n right: 0;\r\n bottom: 0;\r\n background-color: #666;\r\n -webkit-transition: .4s;\r\n transition: .4s;\r\n opacity: 0.6;\r\n border-radius: 3px;\r\n}\r\n\r\n.js7800__controls-switch-slider:hover {\r\n opacity: 1\r\n}\r\n\r\n.js7800__controls-switch-slider:before {\r\n position:M absolute;\r\n content: "";\r\n height: 12px;\r\n width: 11px;\r\n left: 3px;\r\n bottom: 3px;\r\n background-color: #DDD;\r\n border-radius: 3px;\r\n -webkit-transition: .4s;\r\n transition: .4s;\r\n}\r\n\r\ninput:checked+.js7800__controls-switch-slider:before {\r\n -webkit-transform: translateX(12x);\r\n -ms-transform: translateX(12px);\r\n transform: translateX(12px);\r\n}\r\n\r\n.js7800__controls-button {\r\n background-color: #ce2f37;\r\n border: none;\r\n color: white;\r\n text-align: center;\Mr\n font-size: 10px;\r\n margin: 0 5px 0 5px;\r\n opacity: .6;\r\n transition: .3s;\r\n display: inline-block;\r\n text-decoration: none;\r\n cursor: pointer;\r\n padding: 3px 2px 3px 2px;\r\n min-width: 48px;\r\n border-radius: 3px;\r\n}\r\n\r\n.js7800__controls-button:hover {\r\n opacity: 1\r\n}\r\n\r\n.js7800__controls-img-button {\r\n cursor: pointer;\r\n width: 24px;\r\n height: 24px;\r\n opacity: .6;\r\n margin: 0 4px 0 4px;\r\n border: 0px solid white;\r\n vertical-align: middle;\r\n}\r\n\rM\n.js7800__controls-img-button:hover {\r\n opacity: .9\r\n}\r\n\r\n.js7800__controls-container {\r\n display: flex;\r\n margin: 0 2px 0 2px;\r\n padding: 4px 0 4px 0;\r\n flex-wrap: nowrap;\r\n user-select: none;\r\n /* max-width: 800px; */\r\n}\r\n\r\n.js7800__controls-group {\r\n border: 0px solid white;\r\n flex: 1 0 150px;\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n}\r\n\r\n.js7800__controls-group-start {\r\n border: 0px solid white;\r\n flex: 1 0 1px;\r\n text-alMign: left;\r\n display: flex;\r\n align-items: center;\r\n justify-content: flex-start;\r\n}\r\n\r\n.js7800__controls-group-end {\r\n border: 0px solid white;\r\n flex: 1 0 1px;\r\n display: flex;\r\n align-items: center;\r\n justify-content: flex-end;\r\n}\r\n',
'',
]);
t.exports = e;
},
function (t, e, n) {
'use strict';
t.exports = function (t) {
var e = [];
e.toString = function () {
return this.map(function (e) {
M var n = (function (t, e) {
var n = t[1] || '';
var r = t[3];
if (!r) {
return n;
}
if (e && typeof btoa == 'function') {
a = r;
o = btoa(unescape(encodeURIComponent(JSON.stringify(a))));
s =
'sourceMappingURL=data:application/json;charset=utf-8;base64,'.concat(
o
);
var c = '/*M# '.concat(s, ' */');
var i = r.sources.map(function (t) {
return '/*# sourceURL='
.concat(r.sourceRoot || '')
.concat(t, ' */');
});
return [n].concat(i).concat([c]).join('\n');
}
var a;
var o;
var s;
return [n].join('\n');
})(e, t);
if (e[2]) {
return '@media '.concat(e[2], 'M {').concat(n, '}');
} else {
return n;
}
}).join('');
};
e.i = function (t, n, r) {
if (typeof t == 'string') {
t = [[null, t, '']];
}
var c = {};
if (r) {
for (var i = 0; i < this.length; i++) {
var a = this[i][0];
if (a != null) {
c[a] = true;
}
}
}
for (var o M= 0; o < t.length; o++) {
var s = [].concat(t[o]);
if (!r || !c[s[0]]) {
if (n) {
if (s[2]) {
s[2] = ''.concat(n, ' and ').concat(s[2]);
} else {
s[2] = n;
}
}
e.push(s);
}
}
};
return e;
};
},
function (t, e, n) {
'use strict';
function H(t, e, n, r, c) {
vMar i = (1 << e) - 1;
var a = 0;
var o = 0;
for (var s = 0; s < i; s++) {
t[o] = e == 17 ? a >>> 6 : a;
o++;
a = ((a << n) + (a >>> r) + c) & i;
}
}
function Y() {
G = 0;
W = 0;
y = 0;
for (let t = 0; t < 32; t++) {
J[t] = 0;
}
(function () {
var t = 511;
for (var e = 0; e < 511; e++) {
var n = ((t >> 0) & 1) ^ ((t >>M 5) & 1);
t >>= 1;
t |= n << 8;
C[e] = 1 & t;
}
})();
(function () {
var t = 131071;
for (var e = 0; e < 131071; e++) {
var n = ((t >> 8) & 1) ^ ((t >> 13) & 1);
var r = 1 & t;
t = (65407 & (t >>= 1)) | (n << 7);
t |= r << 16;
E[e] = 1 & t;
}
})();
S = 0;
x = 0;
D = 0;
N = 0;
k =M (457605120 / g) | 0;
for (var t = 0; t <= 3; t++) {
v[t] = 0;
_[t] = 0;
m[t] = 0;
w[t] = 0;
}
for (var e = 0; e < 8; e++) {
z[e] = 228;
}
H(B, 9, 8, 1, 384);
H(j, 17, 16, 1, 114688);
O = 0;
F = 0;
M = 0;
R = 0;
P = 0;
U = 0;
Z = 0;
Q[0] = 1;
Q[1] = 1;
Q[2] = 0;
Q[3] = 0;
et(trueM);
}
function V(t) {
if (G-- > 0) {
console.log('pokey_getRegister: %d', t);
}
var e = 0;
var n = 15 & t;
if (n < 8) {
if ((r = z[n]) <= W) {
return r;
} else {
return W;
}
}
switch (t) {
case 16392:
var r = 0;
for (var c = 0; c < 8; c++) {
if (z[n] <= W) {
r &= ~(1 << c);
M }
}
return r;
case 16394:
var i = U + Jo();
if (3 & O) {
var a = (i - Z) >>> 2;
R = (a + R) % 511 | 0;
P = (a + P) % 131071 | 0;
} else {
R = 0;
P = 0;
}
F = 128 & M ? B[R] : j[P];
Z = i;
e = F ^= 255;
}
return e;
}
function X(t, e) {
switch (
M (G-- > 0 && console.log('pokey_setRegister: %d %d', t - 16384, e),
(J[t - 16384] = e),
t)
) {
case 16395:
if (!(4 & O)) {
W = 0;
}
return;
case 16399:
O = e;
if (4 & e) {
W = 228;
}
return;
case 16384:
w[0] = e;
break;
case 16385:
m[0] = e;
breakM;
case 16386:
w[1] = e;
break;
case 16387:
m[1] = e;
break;
case 16388:
w[2] = e;
break;
case 16389:
m[2] = e;
break;
case 16390:
w[3] = e;
break;
case 16391:
m[3] = e;
break;
case 16392:
M = e;
}
}
function q(t, e) {
M_[t] = (_[t] + 1) & 255;
if (_[t] == 0 && T[t] == 0) {
T[t] = e;
}
}
function K(t) {
if (T[t] > 0) {
T[t]--;
return T[t] == 0;
} else {
return 0;
}
}
function $(t) {
_[t] = 255 ^ w[t];
T[t] = 0;
}
function tt(t) {
if (128 & m[t] || I[x]) {
if (32 & m[t]) {
v[t] ^= 1;
} else if (64 & m[t]) {
Mv[t] = L[S];
} else {
v[t] = 128 & M ? C[D] : E[N];
}
}
}
function et(t) {
y = 0;
if (t) {
for (var e = 0; e < 2048; e++) {
b[e] = 0;
}
}
}
function ot(t, e) {
at[t] = e;
ct.SetReg(t, e);
}
function Ct() {
for (var t = 0; t < 131072; t++) {
ut[t] = 0;
}
dt = false;
lt = false;
M ht = false;
At = false;
pt = false;
bt = false;
gt = false;
yt = false;
wt = 0;
mt = 0;
Mt = 0;
vt = 0;
Lt = 0;
It = 0;
(function () {
ct.Reset();
for (let t = 0; t < at.length; t++) {
at[t] = 0;
}
})();
Et = 0;
St = 2;
xt = -1;
}
function Dt() {
return lt;
}
funcMtion Nt() {
return dt;
}
function _t() {
return ht;
}
function Tt(t) {
yt = t;
}
function jt(t, e) {
this.topic = t;
if (e) {
this.onEvent = e;
}
}
function Rt(t) {
if (Bt) {
var e = new Bt.Listener();
e.getTopic = function () {
return t.getTopic();
};
e.onEvent = function (e) {
t.onEvent(e);
M };
Bt.addListener(e);
} else {
var n = t.getTopic();
var r = kt[n];
if (!r) {
r = [];
kt[n] = r;
}
r.push(t);
}
}
function Pt(t, e) {
if (Bt) {
Bt.fireEvent(t, e);
} else {
var n = kt[t];
if (n) {
for (var r = 0; r < n.length; r++) {
n[r].onEvent(e);
}
}
M }
}
function Ot(t) {
for (var e in ((Bt = t), kt)) {
var n = kt[e];
for (var r = 0; r < n.length; r++) {
Rt(n[r]);
}
}
}
function Xt(t) {
Qt = t;
}
function qt(t) {
Ht = t;
Ft[642] = -21 & Ft[642] & 255;
Ft[642] = 255 & (Ft[642] | (20 & (~Ft[643] | Ht)));
}
function Kt() {
return Wt;
}
function $t() {
returnM Zt;
}
function pe(t) {
le[t]++;
if (le[t] == 31) {
le[t] = 0;
}
if (
(2 & se[t]) == 0 ||
((1 & se[t]) == 0 && ce[le[t]]) ||
((1 & se[t]) == 1 && ne[le[t]])
) {
if (4 & se[t]) {
ie[t] = ie[t] ? 0 : ue[t];
} else if (8 & se[t]) {
if (se[t] == 8) {
he[t]++;
if (he[t] == 511) {
he[t] = 0;
}M
ie[t] = re[he[t]] ? ue[t] : 0;
} else {
ie[t] = ne[le[t]] ? ue[t] : 0;
}
} else {
de[t]++;
if (de[t] == 15) {
de[t] = 0;
}
ie[t] = ee[de[t]] ? ue[t] : 0;
}
}
}
function be(t) {
Ae = 0;
if (t) {
for (var e = 0; e < 2048; e++) {
te[e] = 0;
}
}
}
function MUe() {
for (var t = 0; t < 65536; t++) {
Ne[t] = 0;
Te[t] = 0;
_e[t] = 1;
}
for (t = 0; t < 16384; t++) {
_e[t] = 0;
}
ze = false;
}
function Ze(t) {
var e;
if (
Fe &&
((t >= 1136 && t < 1152) ||
(Le() && t >= 1104 && t < 1136) ||
(Ie() && t >= 16384 && t < 32768) ||
(Ce() && t >= 1120 && t <= 1121))
) {
M return Ee(t);
}
if (
!Re &&
ke &&
((!Be && !je && t >= 16384 && t <= 16399) ||
(je && t >= 2048 && t < 2080) ||
(Be && t >= 1104 && t < 1136))
) {
return ye(je ? t - 2048 + 16384 : Be ? t - 1104 + 16384 : t);
}
if (t >= 32 && t <= 63 && t != 40) {
return 0;
}
switch (t) {
case 644:
case 646:
Ne[645] &= 127;
M return Ne[644];
case 645:
case 647:
e = Ne[645];
Ne[645] &= 127;
return e;
default:
if (We) {
if (Oe && t >= 16384 && t <= 32767) {
return Te[t];
}
if (Ge === hn || Ge === yn) {
if (t >= Kr() && t <= tc()) {
return Te[t];
}
} else {
if (Ge == gn && t >= 16384 && t M<= 32767) {
return Te[t];
}
if (t >= 32768 && t <= 49151) {
return Te[t];
}
if (t >= 49152 && t <= 65535) {
return Te[t];
}
}
}
return Ne[t];
}
}
function Qe(t) {
var e = Ze(t);
if (e < 0) {
console.error('Less than zero memory read: %d %d', t, e);
}
M return e;
}
function He(t) {
We = true;
var e = Ze(t);
We = false;
if (e < 0) {
console.error('Less than zero memory read: %d %d', t, e);
}
return e;
}
function Ye(t, e) {
if (e < 0) {
console.error('Less than zero memory write: %d %d', t, e);
}
if (
Fe &&
((t >= 1136 && t < 1152) ||
(Le() && t >= 1104 && t < 1136) ||
M (Ie() && t >= 16384 && t < 32768) ||
(Ce() && t >= 1120 && t <= 1121))
) {
Se(t, e);
} else if (
ke &&
((!Be && !je && t >= 16384 && t <= 16399) ||
(je && t >= 2048 && t < 2080) ||
(Be && t >= 1104 && t < 1136))
) {
ge(je ? t - 2048 + 16384 : Be ? t - 1104 + 16384 : t, e);
} else if (!_e[t] || (Oe && t >= 49152 && t <= 65535)) {
if (xe && t >= 4096 && t <= 6143 && De) {
M De.write(t, e);
}
if (t >= 0 && t <= 15) {
if (!ze) {
if (1 & e) {
ze = true;
console.log('Lock: ' + e);
Ne[40] = 128;
}
if (4 & e && nr()) {
if (!Xr()) {
$n();
}
}
}
} else {
switch (t) {
case 36:
Ne[36] = 1;
M break;
case 8:
case 9:
case 10:
case 11:
case 12:
case 13:
case 40:
break;
case 21:
we(21, e);
break;
case 22:
we(22, e);
break;
case 23:
we(23, e);
break;
case 24:
we(24, e);
brMeak;
case 25:
we(25, e);
break;
case 26:
we(26, e);
break;
case 642:
me(e);
break;
case 640:
Me(e);
break;
case 660:
case 668:
ve(660, e);
break;
case 661:
case 669:
ve(661, e);
M break;
case 662:
case 670:
ve(662, e);
break;
case 663:
case 671:
ve(663, e);
break;
default:
if (Oe && t >= 49152 && t <= 65535) {
Te[t - 49152 + 16384] = e;
} else {
Ne[t] = e;
if (t >= 8256 && t <= 8447) {
Ne[t - 8192] = e;
}M else if (t >= 8512 && t <= 8703) {
Ne[t - 8192] = e;
} else if (t >= 64 && t <= 255) {
Ne[t + 8192] = e;
} else if (t >= 320 && t <= 511) {
Ne[t + 8192] = e;
} else if (t >= 10240 && t <= 12287) {
Ne[t - 2048] = e;
} else if (t >= 8192 && t <= 10239) {
Ne[t + 2048] = e;
}
}
}
M }
} else {
tr(t, e);
}
}
function Ve(t, e, n, r) {
var c = false;
var i = 0;
if (Pe) {
var a = Cr();
if (a === hn || a === yn) {
i = e;
qr(t);
$r(t + e - 1);
c = true;
} else if (
t === 32768 ||
t === 49152 ||
(a === gn && t === 16384)
) {
i = 131072;
c = Mtrue;
}
}
if (t + e <= 65536 && n != null) {
for (var o = 0; o < e; o++) {
Ne[t + o] = n[o + r];
_e[t + o] = 1;
if (c) {
Te[t + o] = n[o + r + i];
}
}
}
}
function Je(t, e) {
if (t + e <= 65536) {
for (var n = 0; n < e; n++) {
Ne[t + n] = 0;
_e[t + n] = 0;
if (Oe && t === 16384) {
Te[tM + n] = 0;
}
}
}
}
function Xe(t, e) {
var n = t[0];
var r = t[1];
var c = t[2];
var i = t[3];
n = Ke(n, r, c, i, e[0], 7, -680876936);
i = Ke(i, n, r, c, e[1], 12, -389564586);
c = Ke(c, i, n, r, e[2], 17, 606105819);
r = Ke(r, c, i, n, e[3], 22, -1044525330);
n = Ke(n, r, c, i, e[4], 7, -176418897);
i = Ke(i, n, r, c, e[5], 12, 1200080426);
c = Ke(c, i, Mn, r, e[6], 17, -1473231341);
r = Ke(r, c, i, n, e[7], 22, -45705983);
n = Ke(n, r, c, i, e[8], 7, 1770035416);
i = Ke(i, n, r, c, e[9], 12, -1958414417);
c = Ke(c, i, n, r, e[10], 17, -42063);
r = Ke(r, c, i, n, e[11], 22, -1990404162);
n = Ke(n, r, c, i, e[12], 7, 1804603682);
i = Ke(i, n, r, c, e[13], 12, -40341101);
c = Ke(c, i, n, r, e[14], 17, -1502002290);
n = $e(
n,
(r = Ke(r, c, i, n, e[15], 22M, 1236535329)),
c,
i,
e[1],
5,
-165796510
);
i = $e(i, n, r, c, e[6], 9, -1069501632);
c = $e(c, i, n, r, e[11], 14, 643717713);
r = $e(r, c, i, n, e[0], 20, -373897302);
n = $e(n, r, c, i, e[5], 5, -701558691);
i = $e(i, n, r, c, e[10], 9, 38016083);
c = $e(c, i, n, r, e[15], 14, -660478335);
r = $e(r, c, i, n, e[4], 20, -405537848);
n = $e(n, r, c, i, e[9], 5, 56844M6438);
i = $e(i, n, r, c, e[14], 9, -1019803690);
c = $e(c, i, n, r, e[3], 14, -187363961);
r = $e(r, c, i, n, e[8], 20, 1163531501);
n = $e(n, r, c, i, e[13], 5, -1444681467);
i = $e(i, n, r, c, e[2], 9, -51403784);
c = $e(c, i, n, r, e[7], 14, 1735328473);
n = tn(
n,
(r = $e(r, c, i, n, e[12], 20, -1926607734)),
c,
i,
e[5],
4,
-378558
);
i = Mtn(i, n, r, c, e[8], 11, -2022574463);
c = tn(c, i, n, r, e[11], 16, 1839030562);
r = tn(r, c, i, n, e[14], 23, -35309556);
n = tn(n, r, c, i, e[1], 4, -1530992060);
i = tn(i, n, r, c, e[4], 11, 1272893353);
c = tn(c, i, n, r, e[7], 16, -155497632);
r = tn(r, c, i, n, e[10], 23, -1094730640);
n = tn(n, r, c, i, e[13], 4, 681279174);
i = tn(i, n, r, c, e[0], 11, -358537222);
c = tn(c, i, n, r, e[3], 16, -722521979);
rM = tn(r, c, i, n, e[6], 23, 76029189);
n = tn(n, r, c, i, e[9], 4, -640364487);
i = tn(i, n, r, c, e[12], 11, -421815835);
c = tn(c, i, n, r, e[15], 16, 530742520);
n = en(
n,
(r = tn(r, c, i, n, e[2], 23, -995338651)),
c,
i,
e[0],
6,
-198630844
);
i = en(i, n, r, c, e[7], 10, 1126891415);
c = en(c, i, n, r, e[14], 15, -1416354905);
r = en(r, c, i, n, e[M5], 21, -57434055);
n = en(n, r, c, i, e[12], 6, 1700485571);
i = en(i, n, r, c, e[3], 10, -1894986606);
c = en(c, i, n, r, e[10], 15, -1051523);
r = en(r, c, i, n, e[1], 21, -2054922799);
n = en(n, r, c, i, e[8], 6, 1873313359);
i = en(i, n, r, c, e[15], 10, -30611744);
c = en(c, i, n, r, e[6], 15, -1560198380);
r = en(r, c, i, n, e[13], 21, 1309151649);
n = en(n, r, c, i, e[4], 6, -145523070);
i = en(i, n, r, c, e[M11], 10, -1120210379);
c = en(c, i, n, r, e[2], 15, 718787259);
r = en(r, c, i, n, e[9], 21, -343485551);
t[0] = on(n, t[0]);
t[1] = on(r, t[1]);
t[2] = on(c, t[2]);
t[3] = on(i, t[3]);
}
function qe(t, e, n, r, c, i) {
e = on(on(e, t), on(r, i));
return on((e << c) | (e >>> (32 - c)), n);
}
function Ke(t, e, n, r, c, i, a) {
return qe((e & n) | (~e & r), t, e, c, i, a);
}
functiMon $e(t, e, n, r, c, i, a) {
return qe((e & r) | (n & ~r), t, e, c, i, a);
}
function tn(t, e, n, r, c, i, a) {
return qe(e ^ n ^ r, t, e, c, i, a);
}
function en(t, e, n, r, c, i, a) {
return qe(n ^ (e | ~r), t, e, c, i, a);
}
function nn(t) {
var n = [];
for (var e = 0; e < 64; e += 4) {
n[e >> 2] =
t.charCodeAt(e) +
(t.charCodeAt(e + 1) << 8) +
(t.charCodeAt(e + M2) << 16) +
(t.charCodeAt(e + 3) << 24);
}
return n;
}
function cn(t) {
var e = '';
for (var n = 0; n < 4; n++) {
e += rn[(t >> (8 * n + 4)) & 15] + rn[(t >> (8 * n)) & 15];
}
return e;
}
function an(t) {
return (function (t) {
for (var e = 0; e < t.length; e++) {
t[e] = cn(t[e]);
}
return t.join('');
})(
(function (t)M {
var n = t.length;
var r = [1732584193, -271733879, -1732584194, 271733878];
for (var e = 64; e <= t.length; e += 64) {
Xe(r, nn(t.substring(e - 64, e)));
}
t = t.substring(e - 64);
var c = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];
for (e = 0; e < t.length; e++) {
c[e >> 2] |= t.charCodeAt(e) << (e % 4 << 3);
}
c[e >> 2] |= 128 << (e % 4 << 3);
M if (e > 55) {
Xe(r, c);
for (e = 0; e < 16; e++) {
c[e] = 0;
}
}
c[14] = 8 * n;
Xe(r, c);
return r;
})(t)
);
}
function on(t, e) {
return (t + e) & 4294967295;
}
function Vn(t) {
if ((Mn == An || Mn == gn || Mn == bn) && Hn <= 65536) {
return 3 & t;
} else {
return t;
}
M }
function Jn(t) {
return 16384 * Vn(t);
}
function Xn(t, e) {
var n = Hn;
if (Pn) {
n >>= 1;
}
var r = Jn(e);
if (r < n) {
sn(t, 16384, Qn, r);
En = e;
}
}
function qn(t) {
if (Pn) {
t >>= 1;
}
if (t <= 65536) {
var e = Mn;
Mn = hn;
console.log('Update: no bits and <= 64k: %d, %d', e, MMn);
} else if (t == 147456) {
e = Mn;
Mn = pn;
console.log('Update: size == 144k: %d, %d', e, Mn);
} else if (t == 131072) {
e = Mn;
Mn = gn;
console.log('Update: size == 128k: %d, %d', e, Mn);
} else {
e = Mn;
Mn = An;
console.log('Update: default for > 64k: %d, %d', e, Mn);
}
}
function Kn(t, e) {
if (e <= 128) {
console.log('CartMridge data is invalid.');
return false;
}
console.log('actual cartridge_size: %d', e);
rr();
var n = new Array();
for (var r = 0; r < 128; r++) {
n[r] = t[r];
}
if (
(function (t) {
var e = ['>', '>'];
for (var n = 0; n < 2; n++) {
if (e[n] != String.fromCharCode(t[n + 1])) {
return false;
}
}
return true;
M })(n)
) {
console.log("Prosystem doesn't support CC2 hacks.");
return false;
}
var c = 0;
if (
!(function (t) {
var e = ['A', 'T', 'A', 'R', 'I', '7', '8', '0', '0'];
for (var n = 0; n < 9; n++) {
if (e[n] != String.fromCharCode(t[n + 1])) {
return false;
}
}
return true;
})(n)
) {
console.lMog('Unable to find cartridge header');
Hn = e;
qn(e);
} else {
console.log('Found cartridge header');
(function (t) {
console.log('Reading cartridge header');
var e = new Array();
for (var n = 0; n < 32; n++) {
e[n] = t[n + 17];
}
wn = '';
for (var r = 0; r < e.length; r++) {
wn += String.fromCharCode(e[r]);
}
consolMe.log('Title: %s', wn);
Hn = t[49] << 24;
Hn |= t[50] << 16;
Hn |= t[51] << 8;
Hn |= t[52];
Mn =
t[53] == 0
? Hn > 131072
? pn
: t[54] == 2 || t[54] == 3
? An
: t[54] == 4 || t[54] == 5 || t[54] == 6 || t[54] == 7
? bn
: t[54] == 8 || t[54] == 9 || t[54] == 10 || t[54] == 11
M? gn
: hn
: t[53] == 2
? 5
: t[53] == 1
? 6
: hn;
Ln = !!(1 & t[54]);
In = !!(64 & t[54]);
Wn = !!(128 & t[53]);
if (In || Wn) {
Ln = true;
}
Cn[0] = t[55];
Cn[1] = t[56];
vn = 1 & t[57];
Sn = 0;
_n = !!(1 & t[63]) || (8 & t[53]) == 8;
Rn =M 3 & t[58];
if (!!(Pn = !!(32 & t[53])) && (Hn === 98304 || Hn === 106496)) {
zn = true;
}
Gn = !!(64 & t[53]);
var c = t[54];
var i = t[53];
if ((10 & c) == 10) {
var a = Mn;
Mn = pn;
console.log('Update: (0x10) bit1 & bit3: %d, %d', a, Mn);
} else if ((18 & c) == 18) {
var a = Mn;
Mn = gn;
console.log('UpdaMte: (0x12) bit1 & bit4: %d, %d', a, Mn);
} else if ((6 & c) == 6) {
a = Mn;
Mn = bn;
console.log('Update: (0x06) bit1 & bit2: %d, %d', a, Mn);
} else if ((2 & c) == 2) {
a = Mn;
Mn = An;
console.log('Update: (0x01) bit1: %d, %d', a, Mn);
} else if (Hn <= 65536 && (4 & c) == 4) {
a = Mn;
Mn = yn;
console.log('Update: (0x04) bit2: %d,M %d', a, Mn);
} else {
qn(Hn);
}
if (Pn) {
if (Mn === hn || Mn === yn) {
if (Mn === hn && Gn) {
a = Mn;
Mn = yn;
console.log(
'Normal cart with halt based ram, switching type: %d, %d',
a,
Mn
);
}
} else if (
(a = Mn) !== (Mn = Gn M? bn : (16 & c) == 16 ? gn : An)
) {
console.log(
'Bank switched banksets, switching type: %d, %d',
a,
Mn
);
}
}
console.log('Header info:');
if (1 & c) {
console.log(' bit0: pokey at $4000');
}
if (2 & c) {
console.log(' bit1: supergame bank switched');
}
if M(4 & c) {
console.log(' bit2: supergame ram at $4000');
}
if (8 & c) {
console.log(' bit3: rom at $4000');
}
if (16 & c) {
console.log(' bit4: bank 6 at $4000');
}
if (32 & c) {
console.log(' bit5: supergame banked ram');
}
if (64 & c) {
console.log(' bit6: pokey at $450');
}
if (128 & c) {
M console.log(' bit7: mirror ram at $4000');
}
if (1 & i) {
console.log(' bit8: activision banking');
}
if (2 & i) {
console.log(' bit9: absolute banking');
}
if (4 & i) {
console.log(' bit10: pokey at $440');
}
if (8 & i) {
console.log(' bit11: ym2151 at $460/$461');
}
if (16 & i) {
M console.log(' bit12: souper');
}
if (32 & i) {
console.log(' bit13: banksets');
}
if (64 & i) {
console.log(' bit14: halt banked ram');
}
if (128 & i) {
console.log(' bit15: pokey@800');
}
console.log(' xm: %s', _n ? '1' : '0');
console.log(' banksets: %s', Pn ? '1' : '0');
console.log(' pokey: %s', Ln ? '1' : '0');
M console.log(' pokey450: %s', In ? '1' : '0');
console.log(' pokey800: %s', Wn ? '1' : '0');
console.log(' pokey write only: %s', zn ? '1' : '0');
console.log(' halt banked ram: %s', Gn ? '1' : '0');
console.log(' tv type: %s', vn ? 'PAL' : 'NTSC');
console.log(
' Save device: [%d]%s%s',
t[58],
2 & t[58] ? ' SaveKey/AtariVox' : '',
1 & t[58] ? ' HSC' : ''
)M;
console.log(' controller1: %d', Cn[0]);
console.log(' controller2: %d', Cn[1]);
console.log(' cartridge_type 53: %d', t[53]);
console.log(' cartridge_type 54: %d', t[54]);
console.log(' cartridge_size: %d', Hn);
console.log('cartridge_type (from header): %d', Mn);
})(n);
c = 128;
if (Hn != (e -= 128)) {
console.log(
'!!! CARTRIDGE SIZE IN HEADER DOES NOT MATCH M!!! : %d %d',
Hn,
e
);
if (e % 1024 == 0) {
console.log(
'!!! ROM size is 1k multiple, using ROM size !!! : %d',
e
);
Hn = e;
} else {
console.log(
'!!! ROM size is not 1k multiple, using header size !!! : %d',
Hn
);
}
}
}
console.log('cartridge_tyMpe: %d', Mn);
console.log('cartridge_size: %d', Hn);
Qn = new Array(Hn);
var i = '';
for (r = 0; r < Hn; r++) {
Qn[r] = t[r + c];
i += String.fromCharCode(Qn[r]);
}
mn = an(i);
console.log('cartridge_digest: %s', mn);
if (mn === '91041aadd1700a7a4076f4005f2c362f') {
console.log('Patching diagnostic cartridge...');
var a = [223, 230];
for (let t = 0; t < a.length; t++) {
M Qn[26348 - c + t] = a[t];
}
}
return true;
}
function $n() {
Yn = true;
var t = Hn;
switch ((Pn && (t >>= 1), Mn)) {
case hn:
sn(65536 - t, t, Qn, 0);
break;
case yn:
sn(65536 - t, t, Qn, 0);
fn(16384, 16384);
break;
case An:
if ((e = t - 16384) < t) {
sn(49152, 16384, Qn, e);
er(0)M;
}
break;
case pn:
if ((e = t - 16384) < t) {
sn(49152, 16384, Qn, e);
sn(16384, 16384, Qn, Jn(0));
er(0);
}
break;
case bn:
if ((e = t - 16384) < t) {
sn(49152, 16384, Qn, e);
fn(16384, 16384);
er(0);
}
break;
case gn:
var e;
if ((e = t - 16384) M< t && Jn(6) < t) {
sn(49152, 16384, Qn, e);
sn(16384, 16384, Qn, Jn(6));
er(0);
}
break;
case 5:
sn(16384, 16384, Qn, 0);
sn(32768, 32768, Qn, Jn(2));
break;
case 6:
if (122880 < t) {
sn(40960, 16384, Qn, 0);
sn(16384, 8192, Qn, 106496);
sn(24576, 8192, Qn, 98304);
sn(32768, 8192, Qn, 122880);
M sn(57344, 8192, Qn, 114688);
}
}
}
function tr(t, e) {
var n = Hn;
switch ((Pn && (n >>= 1), Mn)) {
case An:
case bn:
case gn:
var r = n / 16384;
if (t >= 32768 && t < 49152 && Vn(e) < r) {
er(e);
}
break;
case pn:
r = n / 16384;
if (t >= 32768 && t < 49152 && Vn(e) < r) {
er(e + 1);M
}
break;
case 5:
if (t == 32768 && (e == 1 || e == 2)) {
er(e - 1);
}
break;
case 6:
if (t >= 65408) {
er(7 & t);
}
}
}
function er(t) {
switch (Mn) {
case An:
case bn:
case gn:
case pn:
Xn(32768, t);
break;
case 5:
Xn(16384, tM);
break;
case 6:
Xn(40960, t);
}
}
function nr() {
return Qn != null;
}
function rr() {
Yn = false;
Zn = false;
if (Qn != null) {
Hn = 0;
Qn = null;
wn = '';
Mn = 0;
vn = 0;
Ln = 0;
In = 0;
Wn = 0;
_n = false;
Cn = [1, 1];
En = 0;
Sn = 0;
xnM = 0;
Dn = 0;
Tn = 28;
Nn = false;
kn = 1;
Bn = 0;
jn = false;
Rn = false;
Pn = false;
zn = false;
Gn = false;
}
}
function cr(t) {
if (!Rn || vn != ln) {
console.log(
Rn
? 'Not loading high score cartridge, PAL region.'
: 'High score cartridge is disabled (via db and cart header).'
);
M t(false);
return;
}
var e = dn.getRom();
if (e == null) {
console.log('Unable to locate high score cartridge.');
t(false);
return;
}
console.log('Found high score cartridge.');
if (an(e) != 'c8a73288ab97226c52602204ab894286') {
console.log('High score cartridge hash is invalid.');
t(false);
return;
}
dn.loadSram(function (n) {
if (n) {
M for (var r = 0; r < n.length && r < 2048; r++) {
un(4096 + r, n[r]);
}
for (r = 0; r < e.length; r++) {
un(12288 + r, e.charCodeAt(r));
}
Zn = true;
}
console.log('High score cart loaded: ' + Zn);
t(Zn);
});
}
function ir() {
return vn;
}
function ar() {
return Ln;
}
function or() {
return In;
M }
function sr() {
return Wn;
}
function fr() {
return zn;
}
function ur() {
return _n;
}
function dr() {
if (Un == 2) {
return _n;
} else {
return Un;
}
}
function lr() {
return Pn;
}
function hr() {
return Gn;
}
function Ar() {
return jn;
}
function pr() {
return Nn;M
}
function br() {
return Cn[0] == 2;
}
function gr() {
return Sn;
}
function yr() {
return Tn;
}
function wr() {
return kn;
}
function mr() {
return Bn;
}
function Mr() {
return mn;
}
function vr(t) {
wn = t;
}
function Lr() {
return wn;
}
function Ir() {
return Hn;
}
Mfunction Cr() {
return Mn;
}
function Er(t) {
Mn = t;
}
function Sr(t) {
Ln = t;
}
function xr(t) {
In = t;
}
function Dr(t) {
Cn[0] = t;
}
function Nr(t) {
Cn[1] = t;
}
function _r() {
return Cn[0];
}
function Tr() {
return Cn[1];
}
function kr(t) {
vn = t;
}
function Br(t) {
M Sn = t;
}
function jr(t) {
_n = t;
}
function Rr(t) {
Tn = t;
}
function Pr(t) {
xn = t;
}
function Or(t) {
Dn = t;
}
function Fr() {
return xn;
}
function Gr() {
return Dn;
}
function zr(t) {
Nn = t;
}
function Wr(t) {
kn = t;
}
function Ur(t) {
Bn = t;
}
function ZrM(t) {
jn = t;
}
function Qr(t) {
Rn = t;
}
function Hr() {
return Rn;
}
function Yr(t) {
Un = t;
}
function Vr() {
return Un;
}
function Jr() {
return 2;
}
function Xr() {
return Yn;
}
function qr(t) {
On = t;
}
function Kr() {
return On;
}
function $r(t) {
Fn = t;
}
M function tc() {
return Fn;
}
function ec() {
return En;
}
function _c(t) {
cc((uc + 256) & 65535, t);
uc = (uc - 1) & 255;
}
function Tc() {
return rc(((uc = (uc + 1) & 255) + 256) & 65535);
}
function kc(t) {
if (t) {
fc = fc & ~gc & 255;
} else {
fc |= gc;
}
if (128 & t) {
fc |= Lc;
} else {
fc = Mfc & ~Lc & 255;
}
}
function jc(t) {
if (t) {
Bc.copy(dc);
dc.wPlusEqual(hc.getBLSigned());
if (Bc.getBH() == dc.getBH()) {
Ac++;
} else {
Ac += 2;
}
}
}
function Oc(t) {
Rc.copy(hc);
Pc.copy(hc);
Rc.wMinusEqual(t);
if (Rc.getBH() != Pc.getBH()) {
Ac++;
}
}
function Fc() {
hc.setBLM(rc(dc.wPlusPlus()));
hc.setBH(rc(dc.wPlusPlus()));
}
function Gc() {
hc.setBL(rc(dc.wPlusPlus()));
hc.setBH(rc(dc.wPlusPlus()));
hc.wPlusEqual(oc);
}
function zc() {
hc.setBL(rc(dc.wPlusPlus()));
hc.setBH(rc(dc.wPlusPlus()));
hc.wPlusEqual(sc);
}
function Wc() {
hc.setW(dc.wPlusPlus());
}
function Uc() {
hc.setBL(rc(dc.wPlusPlus()) + oc);
hc.setBH(rc(hcM.getBL() + 1));
hc.setBL(rc(hc.getBL()));
}
function Zc() {
hc.setBL(rc(dc.wPlusPlus()));
hc.setBH(rc(hc.getBL() + 1));
hc.setBL(rc(hc.getBL()));
hc.wPlusEqual(sc);
}
function Qc() {
hc.setW(rc(dc.wPlusPlus()));
}
function Hc() {
hc.setW(rc(dc.wPlusPlus()));
}
function Yc() {
hc.setW(rc(dc.wPlusPlus()));
hc.blPlusEqual(oc);
}
function Vc() {
M hc.setW(rc(dc.wPlusPlus()));
hc.blPlusEqual(sc);
}
function Jc() {
var t = rc(hc.getW());
if (fc & wc) {
var e = ((15 & ac) + (15 & t) + (fc & bc)) & 65535;
var n = ((ac >>> 4) + (t >>> 4)) & 65535;
if (e > 9) {
e = (e + 6) & 65535;
n = (n + 1) & 65535;
}
var r = new nc();
r.setW(ac + t + (fc & bc));
if (r.getBL()) {
fc = fc & ~gc & 255;
M } else {
fc |= gc;
}
if ((8 & n) == 0) {
fc = fc & ~Lc & 255;
} else {
fc |= Lc;
}
if (~(ac ^ t) & ((n << 4) ^ ac) & 128) {
fc |= vc;
} else {
fc = fc & ~vc & 255;
}
if (n > 9) {
n = (n + 6) & 65535;
}
if (n > 15) {
fc |= bc;
} else {
fc = fc & ~bc & 255;
M}
ac = 255 & ((n << 4) | (15 & e));
} else {
var c = new nc();
c.setW(ac + t + (fc & bc));
if (c.getBH()) {
fc |= bc;
} else {
fc = fc & ~bc & 255;
}
if (~(ac ^ t) & (ac ^ c.getBL()) & 128) {
fc |= vc;
} else {
fc = fc & ~vc & 255;
}
kc(c.getBL());
ac = c.getBL();
}
}
function Xc() {
kMc((ac &= rc(hc.getW())));
}
function qc() {
var t = rc(hc.getW());
if (128 & t) {
fc |= bc;
} else {
fc = fc & ~bc & 255;
}
t = (t << 1) & 255;
cc(hc.getW(), t);
kc(t);
}
function Kc() {
var t = rc(hc.getW());
if (t & ac) {
fc = fc & ~gc & 255;
} else {
fc |= gc;
}
fc = (fc = fc & ~vc & 255) & ~Lc & 255;
fc |M= 64 & t;
fc |= 128 & t;
}
function $c() {
var t = rc(hc.getW());
if (ac >= t) {
fc |= bc;
} else {
fc = fc & ~bc & 255;
}
kc((ac - t) & 255);
}
function ti() {
var t = rc(hc.getW());
if (oc >= t) {
fc |= bc;
} else {
fc = fc & ~bc & 255;
}
kc((oc - t) & 255);
}
function ei() {
var t = rc(hc.getW());
M if (sc >= t) {
fc |= bc;
} else {
fc = fc & ~bc & 255;
}
kc((sc - t) & 255);
}
function ni() {
var t = rc(hc.getW());
t = (t - 1) & 255;
cc(hc.getW(), t);
kc(t);
}
function ri() {
kc((ac ^= rc(hc.getW())));
}
function ci() {
var t = rc(hc.getW());
t = (t + 1) & 255;
cc(hc.getW(), t);
kc(t);
}
function iMi() {
dc.copy(hc);
}
function ai() {
kc((ac = rc(hc.getW())));
}
function oi() {
kc((oc = rc(hc.getW())));
}
function si() {
kc((sc = rc(hc.getW())));
}
function fi() {
fc = fc & ~bc & 255;
fc |= 1 & ac;
kc((ac = (ac >>> 1) & 255));
}
function ui() {
var t = rc(hc.getW());
fc = fc & ~bc & 255;
fc |= 1 & t;
t = (t >>> 1) & 255;
M cc(hc.getW(), t);
kc(t);
}
function di() {
kc((ac |= rc(hc.getW())));
}
function li() {
_c(ac);
}
function hi() {
_c((fc |= mc));
}
function Ai() {
kc((ac = Tc()));
}
function pi() {
fc = Tc();
}
function bi() {
var t = rc(hc.getW());
var e = fc;
if (128 & t) {
fc |= bc;
} else {
fc = fc & M~bc & 255;
}
t = (t << 1) & 255;
t |= 1 & e;
cc(hc.getW(), t);
kc(t);
}
function gi() {
var t = rc(hc.getW());
var e = fc;
fc = fc & ~bc & 255;
fc |= 1 & t;
t = (t >>> 1) & 255;
if (1 & e) {
t |= 128;
}
cc(hc.getW(), t);
kc(t);
}
function yi() {
var t = rc(hc.getW());
if (fc & wc) {
var e = new nc();
M e.setW(ac - t - !(fc & bc));
var n = ((15 & ac) - (15 & t) - !(fc & bc)) & 65535;
var r = ((ac >>> 4) - (t >>> 4)) & 65535;
if (n > 9) {
n = (n - 6) & 65535;
r = (r - 1) & 65535;
}
if (r > 9) {
r = (r - 6) & 65535;
}
(c = new nc()).setW(ac - t - !(fc & bc));
if (c.getBH()) {
fc = fc & ~bc & 255;
} else {
fc |= bc;
}
M if ((ac ^ t) & (ac ^ c.getBL()) & 128) {
fc |= vc;
} else {
fc = fc & ~vc & 255;
}
kc(c.getBL());
if (e.getBL()) {
fc = fc & ~gc & 255;
} else {
fc |= gc;
}
ac = 255 & ((r << 4) | (15 & n));
} else {
var c;
(c = new nc()).setW(ac - t - !(fc & bc));
if (c.getBH()) {
fc = fc & ~bc & 255;
} else {
M fc |= bc;
}
if ((ac ^ t) & (ac ^ c.getBL()) & 128) {
fc |= vc;
} else {
fc = fc & ~vc & 255;
}
kc(c.getBL());
ac = c.getBL();
}
}
function wi() {
cc(hc.getW(), ac);
if (hc.getW() < 0) {
console.error('sally_STA: %d, %d', hc.getW(), ac);
HALT = true;
}
}
function mi() {
cc(hc.getW(), oc);
}
M function Mi() {
cc(hc.getW(), sc);
}
function vi() {
kc((oc = ac));
}
function Ii() {
return dc;
}
function Ci() {
return pc;
}
function Ei(t, e, n, r) {
this.Update = function (t, e, n, r) {
this.left = t;
this.top = e;
this.right = n;
this.bottom = r;
this.length = this.right - this.left + 1;
this.height = this.bottom - this.Mtop + 1;
this.area = this.length * this.height;
};
this.Copy = function (t) {
this.Update(t.left, t.top, t.right, t.bottom);
};
this.GetArea = function () {
return this.area;
};
this.GetLength = function () {
return this.length;
};
this.GetHeight = function () {
return this.height;
};
this.Update(t, e, n, r);
}
function Ji(t) {
if (MGi < 160) {
if (t) {
Bi[Gi] = zi | t;
} else if (4 & Si[60]) {
Bi[Gi] = 0;
}
}
Gi = (Gi + 1) & 255;
}
function Xi(t, e) {
var n = 4 & Si[60];
var r = (16 & zi) | t | e;
if ((3 & r || n) && Gi < 160) {
Bi[Gi] = r;
}
Gi = (Gi + 1) & 255;
}
function qi() {
if (Fi.getW() > 32767) {
if (Zi && 4096 & Fi.getW()) {
M return true;
}
if (Ui && 2048 & Fi.getW()) {
return true;
}
}
return false;
}
function Ki(t) {
if (3 & (t &= 255)) {
return Si[32 + t];
} else {
return Si[32];
}
}
function $i() {
var t = Hi ? Si[Fi.getW()] : xi(Fi.getW());
if (Qi) {
if (qi()) {
Gi = (Gi + 2) & 255;
} else {
Xi(12 & t, (1M92 & t) >>> 6);
Xi((48 & t) >>> 4, (3 & t) << 2);
}
} else if (qi()) {
Gi = (Gi + 4) & 255;
} else {
Ji((192 & t) >>> 6);
Ji((48 & t) >>> 4);
Ji((12 & t) >>> 2);
Ji(3 & t);
}
Fi.wPlusPlus();
}
function ta(t, e) {
for (var n = 0; n < 8; n++) {
t[e + n] = 15 & t[e + n];
}
}
function na() {
if (!_i) {
_i = js_Mget_blit_addr();
}
for (var t = 0; t < 77440; t++) {
_i[t] = 0;
}
for (t = 0; t < 160; t++) {
Ti[0][t] = 0;
Ti[1][t] = 0;
}
ji = 0;
Ri = false;
Pi.setW(0);
Oi.setW(0);
Fi.setW(0);
Gi = 0;
zi = 0;
Wi = 0;
Ui = 0;
Zi = 0;
Qi = 0;
Yi = false;
}
function ra() {
for (var t = 0; t < 77440; t++M) {
_i[t] = 0;
}
}
function ia(t) {
for (var e = 0; e < 768; e++) {
ca[e] = t[e];
}
}
function aa(t) {
var e = atob(t.split(',')[1]);
var n = new Array();
for (var r = 0; r < e.length; r++) {
n.push(e.charCodeAt(r));
}
return n;
}
function va(t) {
console.log('Set sample rate: %d', t);
g = 31440;
console.log('set pokey samplMe rate: %d', g);
(function (t) {
console.log('Set YM sample rate: ' + t);
ct.SetRate(3579545, t);
})(t);
ga = t;
}
function Da(t, e, n) {
for (var r = 0; r < n; r++) {
Ea[Sa++] = e ? (t[r] / 255 + e[r] / 128) / 2 : t[r] / 255;
if (Sa == 16384) {
Sa = 0;
}
}
}
function Na() {
Aa = Da;
if (Ia && (window.AudioContext || window.webkitAudioContextM)) {
Ia.close();
Ia = null;
Ca = null;
}
if (!Ia && (window.AudioContext || window.webkitAudioContext)) {
console.log('init audio');
var t = La;
if (
(Ia = window.AudioContext
? new window.AudioContext({ sampleRate: t })
: new window.webkitAudioContext()).sampleRate
) {
t = Ia.sampleRate;
}
va(t);
(Ca = Ia.createScriptMProcessor(2048, 0, 1)).onaudioprocess =
function (t) {
var e = t.outputBuffer.getChannelData(0);
var n = 0;
for (var r = e.length; xa != Sa && n < r; ) {
e[n++] = Ea[xa++];
if (xa == 16384) {
xa = 0;
}
}
while (n < r) {
e[n++] = 0;
}
};
Ca.connect(Ia.destination);
var e = functioMn () {
if (Ia.state !== 'running') {
Ia.resume();
}
};
var n = document.documentElement;
n.addEventListener('keydown', e);
n.addEventListener('click', e);
n.addEventListener('drop', e);
n.addEventListener('dragdrop', e);
window.addEventListener('gamepadconnected', e);
}
}
function _a(t) {
La = t;
Na();
}
function ro() {
M if (Ya == Qa || (Ya == Ha && ir() == Qa)) {
Di.Copy(Xa);
Ni.Copy(qa);
ia(eo[no]);
Ho(50);
Vo(313);
_a(31300);
} else {
Di.Copy(Va);
Ni.Copy(Ja);
ia(to[no]);
Ho(60);
Vo(263);
_a(31560);
}
}
function co() {
return to[no];
}
function io() {
return eo[no];
}
function ao() {
returMn no;
}
function oo(t) {
no = t;
}
function so() {
return 3;
}
function jo(t) {
Bo = t;
if (nr()) {
_o = 1;
Eo = false;
xo = 0;
ac = 0;
oc = 0;
sc = 0;
fc = Mc;
uc = 0;
dc.setW(0);
Li = 0;
ro();
be();
Y();
Ct();
Ue();
ra();
na()M;
Xt(0);
qt(0);
zt = false;
Wt = 662;
Ut = 0;
Zt = 0;
Yt = false;
Vt = 0;
Jt = 0;
$n();
if (t) {
cr(function (e) {
Pt('onHighScoreCartLoaded', e);
fc = yc | Mc | gc;
dc.setBL(ic[Cc]);
dc.setBH(ic[Ic]);
No = 24;
Co = true;
t();
});
}
M }
}
function Ro() {
if (_o >= of && _o <= of + 3 && No >= (0 | sf) - 1) {
mo[12] &= 127;
} else {
mo[12] |= 128;
}
}
function zo(t) {
if (Co) {
Eo = t;
}
}
function Wo() {
Co = false;
Eo = false;
rr();
na();
ra();
Ue();
(function () {
Ae = 0;
for (var t = 0; t < 2; t++) {
M ie[t] = 0;
ae[t] = 0;
oe[t] = 0;
se[t] = 0;
fe[t] = 0;
ue[t] = 0;
de[t] = 0;
le[t] = 0;
he[t] = 0;
}
be(true);
})();
be(true);
Y();
et(true);
}
function Uo() {
return Co;
}
function Zo() {
return Eo;
}
function Qo() {
return So;
}
function Ho(t) {
M So = t;
(function (t) {
pa = t;
})(t);
}
function Yo() {
return xo;
}
function Vo(t) {
Do = t;
(function (t) {
ba = t;
})(t);
}
function Jo() {
return No;
}
function Xo() {
const t = new Array(172036);
console.log('Saving game state.');
let e;
let n = 0;
for (e = 0; e < 16; e++) {
t[n + e]M = 'PRO-SYSTEM STATE'.charCodeAt(e);
}
n += 16;
t[n++] = 1;
for (e = 0; e < 4; e++) {
t[n + e] = 0;
}
n += 4;
for (e = 0; e < 32; e++) {
t[n + e] = Mr().charCodeAt(e);
}
n += 32;
t[n++] = ac;
t[n++] = oc;
t[n++] = sc;
t[n++] = fc;
t[n++] = uc;
t[n++] = Ii().getBL();
t[n++] = Ii().getBH();
t[n++] = ec();
for (e = 0;M e < 16384; e++) {
t[n + e] = Ne[e];
}
n += 16384;
if (Cr() == bn) {
for (e = 0; e < 16384; e++) {
t[n + e] = Ne[16384 + e];
}
n += 16384;
}
if (hr()) {
for (e = 0; e < 16384; e++) {
t[n + e] = Te[16384 + e];
}
n += 16384;
}
t[n++] = Qt;
t[n++] = Ht;
t[n++] = zt ? 1 : 0;
t[n++] = 255 & (Kt() >>> 8);
M t[n++] = 255 & Kt();
t[n++] = Ut;
t[n++] = 255 & ($t() >>> 8);
t[n++] = 255 & $t();
if (ur()) {
t[n++] = Nt() ? 1 : 0;
t[n++] = Dt() ? 1 : 0;
t[n++] = _t() ? 1 : 0;
t[n++] = At ? 1 : 0;
t[n++] = pt ? 1 : 0;
t[n++] = bt ? 1 : 0;
t[n++] = gt ? 1 : 0;
t[n++] = yt ? 1 : 0;
t[n++] = wt;
t[n++] = mt;
t[n++] = Mt;
t[n++] = vt;
M t[n++] = Lt;
t[n++] = It;
for (e = 0; e < 131072; e++) {
t[n + e] = ut[e];
}
n += 131072;
}
let r = J;
for (let e = 0; e < r.length; e++) {
t[n++] = r[e];
}
r = at;
for (let e = 0; e < r.length; e++) {
t[n++] = r[e];
}
t.length = n;
return t;
}
function qo(t) {
const e = t.length;
console.log('Loading gameM state.');
let n = 0;
if (hr()) {
n = 16384;
}
if (
e != 16741 + n &&
e != 33125 + n &&
e != 147827 + n &&
e != 164211 + n
) {
console.log('Save buffer has an invalid size.');
return false;
}
var r = 0;
for (let e = 0; e < 16; e++) {
if (String.fromCharCode(t[r + e]) != 'PRO-SYSTEM STATE'[e]) {
console.log('Buffer is not a validM ProSystem save state.');
return false;
}
}
r += 16;
t[r++];
for (let t = 0; t < 4; t++) {}
r += 4;
jo(null);
let c = '';
for (let e = 0; e < 32; e++) {
c += String.fromCharCode(t[r + e]);
}
r += 32;
if (Mr() != c) {
console.log(
'Load state digest [' +
c +
'] does not match loaded cartridge digest [' +
M cartridge_digest +
'].'
);
return false;
}
var i = t[r++];
ac = i;
var a = t[r++];
oc = a;
var o = t[r++];
sc = o;
var s = t[r++];
fc = s;
var f = t[r++];
uc = f;
Ii().setBL(t[r++]);
Ii().setBH(t[r++]);
er(t[r++]);
for (let e = 0; e < 16384; e++) {
Ne[e] = t[r + e];
}
r += 16384;
Mif (Cr() == bn) {
for (let e = 0; e < 16384; e++) {
Ne[16384 + e] = t[r + e];
}
r += 16384;
}
if (hr()) {
for (let e = 0; e < 16384; e++) {
Te[16384 + e] = t[r + e];
}
r += 16384;
}
Xt(t[r++]);
qt(t[r++]);
(function (t) {
zt = t;
})(t[r++] === 1);
let u = t[r++];
let d = t[r++];
var h;
(function (M) {
var t = ((u << 8) & 255) | (255 & d);
Wt = t;
})();
var l = t[r++];
Ut = l;
u = t[r++];
d = t[r++];
Zt = ((u << 8) & 255) | (255 & d);
if (ur()) {
h = t[r++] === 1;
dt = h;
(function (t) {
lt = t;
})(t[r++] === 1);
(function (t) {
ht = t;
})(t[r++] === 1);
(function (t) {
At = t;
})(Mt[r++] === 1);
(function (t) {
pt = t;
})(t[r++] === 1);
(function (t) {
bt = t;
})(t[r++] === 1);
(function (t) {
gt = t;
})(t[r++] === 1);
Tt(t[r++] === 1);
(function (t) {
wt = t;
})(t[r++]);
(function (t) {
mt = t;
})(t[r++]);
(function (t) {
Mt = t;
})(t[r++]);
(Mfunction (t) {
vt = t;
})(t[r++]);
(function (t) {
Lt = t;
})(t[r++]);
(function (t) {
It = t;
})(t[r++]);
for (let e = 0; e < 131072; e++) {
ut[e] = t[r++];
}
}
for (let e = 0; e < 32; e++) {
X(16384 + e, t[r++]);
}
for (let e = 0; e < 256; e++) {
ot(e, t[r++]);
}
console.log(t.length + ', ' + Mr);
return true;
}
function Cs() {
var t = null;
t = Is == Qa ? io() : co();
for (var e = 0; e < 256; e++) {
var n = t[3 * e + 0];
var r = t[3 * e + 1];
var c = t[3 * e + 2];
hs[e] = [n, r, c];
}
}
function Es() {
var t = Is == Qa ? cs : ns;
var e = ((is - t) / 2) | 0;
var n = 0;
var r = 0;
var c = 0;
var i = 0;
var a M= 0;
var o = $o;
var s = os;
var f = (Is == Qa ? rs : es) * ts;
for (a = 0; a < t; a++) {
c = f + a * ts;
n = 0;
r = 0 + (((a + e) * ts) << 2);
for (i = 0; i < ts; i++) {
var u = s[c + n];
var d = hs[u];
o[r++] = d[0];
o[r++] = d[1];
o[r++] = d[2];
r++;
n++;
}
}
fs.putImageData(Ko, 0, 0);
}
M function Ss(t) {
_i = os;
if (!ss) {
ss = t.canvas;
us = t.controlsDiv;
ds = t.mainContainer;
ls = t.innerContainer;
Ls = t.debug;
fs = ss.getContext('2d');
Ko = fs.getImageData(0, 0, ts, is);
$o = Ko.data;
}
xs();
Rs();
As = getComputedStyle(ss)['image-rendering'];
ks(ps);
}
function xs() {
for (var t = 3; t < $o.lengthM; t += 4) {
$o[t - 3] = 0;
$o[t - 2] = 0;
$o[t - 1] = 0;
$o[t] = 255;
}
fs.putImageData(Ko, 0, 0);
}
function Ds() {
if (as) {
(function t() {
if (as) {
(function () {
var t = fs;
for (var e = 3; e < $o.length; e += 4) {
var n = Math.random() < 0.5 ? 0 : 255;
$o[e - 3] = n;
$o[e - 2] = nM;
$o[e - 1] = n;
$o[e] = 37;
}
t.putImageData(Ko, 0, 0);
})();
requestAnimationFrame(t);
} else {
xs();
}
})();
}
}
function Ns() {
if (ss) {
var t = document.fullscreenElement;
if (t) {
var e = window.innerHeight - us.offsetHeight;
var n = window.innerWidth;
M ls.style.height = e + 'px';
var r = e;
var c = r * ms;
if (c > n) {
r = (c = n) * Ms;
}
var i = 0;
var a = (r / is) | 0;
if (vs == 1) {
i = a;
}
if (a < 2) {
i = 2;
}
if (i > 0) {
c = (r = is * i) * ms;
}
ss.style.width = c + 'px';
ss.style.height = r + M'px';
ss.style.paddingTop = (((e - r) / 2) | 0) + 'px';
} else {
ls.style.removeProperty('height');
ss.style.removeProperty('padding-top');
ss.style.width = ys + 'px';
ss.style.height = ws + 'px';
}
if (Ls) {
console.log(
'Canvas size: ' + ss.style.width + ' by ' + ss.style.height
);
}
Pt('fullscreen', !!t);
}
}
functiMon _s() {
return ss;
}
function Ts() {
as = false;
}
function ks(t) {
ps = t;
ss.style.imageRendering = t ? 'initial' : As;
}
function Bs() {
return ps;
}
function js() {
return false;
}
function Rs() {
ms = (ys = (ts * bs * gs) | 0) / (ws = is * bs);
Ms = ws / ys;
ds.style.width = ys + 'px';
Ns();
}
function Ps(t) {
M bs = t;
Rs();
}
function Os() {
return bs;
}
function Fs() {
return 2;
}
function Gs(t) {
gs = t;
Rs();
}
function zs() {
return gs;
}
function Ws() {
return 1;
}
function Us() {
return 0;
}
function Zs(t) {
vs = t;
Ns();
}
function Qs() {
return vs;
}
functionM Hs() {
var t = document.getElementById('js7800__fullscreen-container');
if (!Ys()) {
t.requestFullscreen();
Ns();
setTimeout(Ns, 1e3);
}
}
function Ys() {
return document.fullscreenElement;
}
function Vs() {
document.exitFullscreen();
}
function lf(t) {
if (ff != t) {
ff = t;
if ((rf = _s())) {
if (ff) {
rf.addEventListMener('mousemove', hf);
rf.addEventListener('mousedown', Af);
document.addEventListener('mouseup', pf);
rf.style.cursor = 'crosshair';
} else {
rf.removeEventListener('mousemove', hf);
rf.removeEventListener('mousedown', Af);
document.removeEventListener('mouseup', pf);
rf.style.cursor = 'auto';
}
}
}
}
function hf(t) {
var e = rf.MgetBoundingClientRect();
var n = ((t.clientX - e.left) / (rf.scrollWidth / cf)) | 0;
var r = ((t.clientY - e.top) / (rf.scrollHeight / af)) | 0;
n -= Fr();
r -= Gr();
var c = ir();
var i = c == Ks ? tf : $s;
var a = 318 / cf;
of = (r * ((c == Ks ? ef : nf) / af) + (Xs.top - qs.top + 1) + i) | 0;
if ((sf = (188 + n * a) | 0) > Js) {
of++;
sf -= Js;
}
}
function Af(t) {
M hf(t);
if (t.which == 1) {
uf = true;
df = 5;
}
t.preventDefault();
}
function pf(t) {
hf(t);
if (t.which == 1) {
uf = false;
}
t.preventDefault();
}
function Tf(t) {
vf = t;
Pt('onLeftDiffChanged', t);
}
function kf(t) {
Lf = t;
Pt('onRightDiffChanged', t);
}
function Bf(t, e) {
var n = t.keyCode;M
var r = gf.handleKeyCode(n, e) || yf.handleKeyCode(n, e);
if (!r) {
switch (n) {
case xf:
wf = e;
r = true;
break;
case Ef:
mf = e;
r = true;
break;
case Nf:
Mf = e;
r = true;
break;
case 116:
if (!e) {
Tf((vf ^= 1));
}
rM = true;
break;
case 117:
if (!e) {
kf((Lf ^= 1));
}
r = true;
break;
case 112:
r = true;
break;
case 120:
case 122:
if (e) {
Hs();
}
r = true;
}
}
if (r && t.preventDefault) {
t.preventDefault();
}
}
M function jf() {
return mf;
}
function Rf() {
return wf;
}
function Pf() {
return Mf;
}
function Of() {
return vf;
}
function Ff() {
return Lf;
}
function Gf() {
gf.reset();
yf.reset();
Tf(If);
kf(Cf);
}
function zf(t) {
Nf = t;
}
function Wf() {
return Nf;
}
function Uf(t) {
M Ef = t;
}
function Zf() {
return Ef;
}
function Qf(t) {
xf = t;
}
function Hf() {
return xf;
}
function Xf(t, e) {
for (var n in e) {
t[n] = e[n];
}
}
function qf(t) {
Xf(this, {
isAnalogDir: function (t, e, n) {
if (t && t.axes) {
var r = t.axes;
if (r.length > e) {
if (n) {
M return r[e] > 0.5;
} else {
return r[e] < -0.5;
}
}
}
return false;
},
isPressed: function (t, e) {
if (t && t.buttons) {
var n = t.buttons;
if (n.length > e) {
var r = n[e];
return r.pressed || r.value == 1;
}
}
return false;
},
isAnMalogLeft: function (t, e) {
return this.isAnalogDir(t, e << 1, false);
},
isAnalogRight: function (t, e) {
return this.isAnalogDir(t, e << 1, true);
},
isAnalogUp: function (t, e) {
return this.isAnalogDir(t, 1 + (e << 1), false);
},
isAnalogDown: function (t, e) {
return this.isAnalogDir(t, 1 + (e << 1), true);
},
isDigitalLeft: function (t) {
return Mthis.isPressed(t, 14);
},
isDigitalRight: function (t) {
return this.isPressed(t, 15);
},
isDigitalUp: function (t) {
return this.isPressed(t, 12);
},
isDigitalDown: function (t) {
return this.isPressed(t, 13);
},
isButton1: function (t) {
return this.isPressed(t, 0);
},
isButton2: function (t) {
return this.isPressed(t, 1);
M },
isReset: function (t) {
return this.isPressed(t, 9);
},
isSelect: function (t) {
return this.isPressed(t, 8);
},
isPause: function (t) {
return this.isPressed(t, 4) || this.isPressed(t, 5);
},
});
if (t) {
Xf(this, t);
}
}
function tu(t, e) {
var n = t;
var r = e;
return {
setPad: function (t)M {
n = t;
},
getPad: function () {
return n;
},
setMapping: function (t) {
r = t;
},
isLeft: function (t) {
return (
!!n &&
(r.isDigitalLeft(n) || (t !== void 0 && r.isAnalogLeft(n, t)))
);
},
isRight: function (t) {
return (
!!n &&
(r.isDigitalRight(n) || (t !== void 0 && r.MisAnalogRight(n, t)))
);
},
isUp: function (t) {
return (
!!n &&
(r.isDigitalUp(n) || (t !== void 0 && r.isAnalogUp(n, t)))
);
},
isDown: function (t) {
return (
!!n &&
(r.isDigitalDown(n) || (t !== void 0 && r.isAnalogDown(n, t)))
);
},
isAnalogLeft: function (t) {
return !!n && t !== void 0 && r.iMsAnalogLeft(n, t);
},
isAnalogRight: function (t) {
return !!n && t !== void 0 && r.isAnalogRight(n, t);
},
isAnalogUp: function (t) {
return !!n && t !== void 0 && r.isAnalogUp(n, t);
},
isAnalogDown: function (t) {
return !!n && t !== void 0 && r.isAnalogDown(n, t);
},
isButton1: function () {
return !!n && r.isButton1(n);
},
isButton2: funMction () {
return !!n && r.isButton2(n);
},
isReset: function () {
return !!n && r.isReset(n);
},
isSelect: function () {
return !!n && r.isSelect(n);
},
isPause: function () {
return !!n && r.isPause(n);
},
};
}
function nu() {
var t = navigator.getGamepads
? navigator.getGamepads()
: navigator.webkitGetGamepads
M ? navigator.webkitGetGamepads()
: [];
var e = 0;
for (var n = 0; e < 2 && n < t.length; n++) {
var r = t[n];
if (r) {
eu[e].setPad(r);
eu[e].setMapping(Kf);
if ((!r.mapping || r.mapping != 'standard') && Jf) {
eu[e].setMapping($f);
}
e++;
}
}
}
function ru(t) {
return eu[t];
}
function lu(t, e, n) {
M var r = t == 0 ? 0 : 6;
var c = Ar();
var i = pr();
var a = t ? ru(t) : n;
e[0 + r] =
(t ? ou.isRight() : au.isRight()) ||
a.isRight(0) ||
(i && t && n.isAnalogRight(1));
e[1 + r] =
(t ? ou.isLeft() : au.isLeft()) ||
a.isLeft(0) ||
(i && t && n.isAnalogLeft(1));
e[2 + r] =
(t ? ou.isDown() : au.isDown()) ||
a.isDown(0) ||
(i && t && n.isAnalogDowMn(1));
e[3 + r] =
(t ? ou.isUp() : au.isUp()) ||
a.isUp(0) ||
(i && t && n.isAnalogUp(1));
e[(c ? 5 : 4) + r] =
(t ? ou.isButton1() : au.isButton1()) || a.isButton1();
e[(c ? 4 : 5) + r] =
(t ? ou.isButton2() : au.isButton2()) || a.isButton2();
}
function hu(t) {
su = t;
}
function Au(t) {
fu = t;
}
function gu() {
this.el = null;
}
fMunction yu(t, e) {
gu.call(this);
this.title = e;
this.text = t;
}
function wu(t) {
gu.call(this);
this.title = t;
this.cb = null;
}
function Su() {
Iu.call(this);
this.children = [];
}
function xu() {
Su.call(this);
}
function Du() {
Su.call(this);
}
function Nu(t, e) {
Iu.call(this);
this.title = t;
this.imMageSrc = e;
this.img = null;
this.anchor = null;
}
function _u(t, e, n, r) {
Nu.call(this, t, e);
this.onTitle = n;
this.onImageSrc = r;
this.value = false;
}
function Hu(t) {
switch (t) {
case 0:
return Tu;
case 1:
return Ru;
case 2:
return zu;
default:
throw 'Unknown group: ' + t;
}
}
Mfunction Yu() {
return ku && ku.getValue();
}
function Vu() {}
function pd(t, e) {
if (sd) {
requestAnimationFrame(t);
} else if (e) {
t();
} else {
setTimeout(t, 0);
}
}
function bd(t, e) {
ad = t;
var n = 0;
var r = 0;
if (e) {
n = Of();
r = Ff();
}
Kn(t, t.length);
var c = Mr();
(functiMon (t) {
var e = pu[t];
if (e) {
console.log(e);
var n = e.t;
if (n !== void 0) {
vr(n);
}
var r = e.ty;
if (r !== void 0) {
Er(parseInt(r));
}
var c = e.p;
if (c !== void 0) {
Sr(c == 't');
}
var i = e.c1;
if (i !== void 0) {
Dr(parseInt(i));
}
M var a = e.c2;
if (a !== void 0) {
Nr(parseInt(a));
}
var o = e.r;
if (o !== void 0) {
kr(parseInt(o));
}
var s = e.xm;
if (s !== void 0) {
jr(s == 't');
}
var f = e.crossx;
if (f !== void 0) {
Pr(parseInt(f));
}
var u = e.crossy;
if (u !== void 0) {
M Or(parseInt(u));
}
var d = e.dualanalog;
if (d !== void 0) {
zr(d == 't');
}
var l = e.p4;
if (l !== void 0) {
var h = l == 't';
xr(h);
if (h) {
Sr(true);
}
}
var A = e.leftswitch;
if (A !== void 0) {
Wr(parseInt(A));
}
var p = e.rightswitch;
M if (p !== void 0) {
Ur(parseInt(p));
}
var b = e.sb;
if (b !== void 0) {
Zr(b == 't');
}
var g = e.hs;
if (g !== void 0) {
Qr(g == 't');
}
}
})(c);
if (e) {
Wr(n);
Ur(r);
}
console.log('Final values:');
console.log(' Title: %s', Lr());
console.log(' Size: %d', Ir());
M console.log(' Digest: %s', c);
console.log(' Type: %d', Cr());
console.log(' Pokey: %s', ar() ? 'true' : 'false');
console.log(' Pokey450: %s', or() ? 'true' : 'false');
console.log(' Controller 1: %d', _r());
console.log(' Controller 2: %d', Tr());
console.log(' Region: %s', ir() == 1 ? 'PAL' : 'NTSC');
console.log(' Flags: %d', gr());
console.log(
' XM: %s, mode: %s',
dr() ? 'true' : 'false',
M Vr() == 2 ? 'Automatic' : Vr() ? 'Enabled' : 'Disabled'
);
console.log(' Right switch: %d', mr());
console.log(' Left switch: %d', wr());
console.log(' Swap buttons: %s', Ar() ? 'true' : 'false');
console.log(' Dual analog: %s', pr() ? 'true' : 'false');
console.log(' Hblank: %d', yr());
console.log(' Crosshair X: %d', Fr());
console.log(' Crosshair Y: %d', Gr());
console.log(' High score cart enabled: %s',M Hr() ? 'true' : 'false');
Pt('onCartridgeLoaded', i);
(function () {
for (var t = 0; t < uu.length; t++) {
uu[t] = 0;
}
Gf();
du = true;
su = false;
fu = false;
})();
vd();
jo(function () {
Pt('onEmulationStarted', null);
id = false;
xd();
var t = Date.now();
var e = 0;
var n = Qo();
var r = 10 * nM;
var c = 1e3 / n;
var i = c * n * 2;
var a = Uo;
var o = Zo;
var s = 0;
var f = 0;
lf(br());
console.log('Frame ticks: ' + c);
console.log('Frequency: ' + n);
var u = function () {
if (a()) {
if (o()) {
setTimeout(function () {
Ad = true;
pd(u, true);
}, 100);
} else {
M qu();
Ju(ld);
if (ud == 0 || s >= ud) {
Ku();
}
if (++s >= dd) {
s = 0;
}
Xu();
d += c;
var l = Date.now();
if (d + i < l || Ad) {
Ad = false;
d = l;
e = 0;
t = l;
f = 0;
console.log('adjMusted next timestamp.');
}
var h = d - l;
f += h;
if (h > 0) {
setTimeout(function () {
pd(u, true);
}, h);
} else {
pd(u, false);
}
if (++e % r == 0) {
var A = Date.now() - t;
if (od) {
console.log(
'v:%s, vsync: %d, %stimer:M %d, wsync: %d, %d, stl: %d, mar: %d, cpu: %d, ext: %d',
(1e3 / (A / e)).toFixed(2),
sd ? 1 : 0,
sd ? '' : 'wait: ' + ((f / e) * n).toFixed(2) + ', ',
Jt % 1e3,
0,
Oo,
0,
Fo,
Go,
Po
);
}
t = Date.now();
M e = 0;
f = 0;
}
}
}
};
var d = Date.now() + c;
setTimeout(function () {
pd(u, true);
}, c);
});
}
function gd() {
if (ad) {
Md(ad, true);
}
}
function Md(t, e) {
if (!id) {
id = true;
if (Uo()) {
Wo();
}
if (!md) {
Rt(
M (md = new jt('onEmulationStarted', function () {
Ts();
if (!cd.classList.contains('js7800__logo--hide')) {
cd.classList.add('js7800__logo--hide');
cd.classList.remove('js7800__logo--show');
setTimeout(function () {
cd.style.display = 'none';
}, 1e3);
}
}))
);
}
setTimeout(function () {
M bd(t, e);
}, 200);
}
}
function vd(t, e) {
if (!hd) {
hd = true;
(function (t) {
var e = document.getElementById(t);
if (!e) {
throw 'Unable to find element with id: ' + t;
}
($u = document.createElement('div')).className = $u.id = 'js7800';
e.appendChild($u);
var n = document.createElement('div');
n.id = 'js7800__fullscreen-contaiMner';
$u.appendChild(n);
(td = document.createElement('div')).id = td.className =
'js7800__inner-container';
n.appendChild(td);
var r = document.createElement('div');
r.className = 'js7800_noselect';
td.appendChild(r);
(nd = document.createElement('canvas')).id = nd.className =
'js7800__screen';
nd.width = ts;
nd.height = is;
r.appendChild(nd);
M (cd = document.createElement('div')).id = cd.className =
'js7800__logo';
td.appendChild(cd);
var c = document.createElement('img');
c.src =
'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAZAAAACvCAMAAADkOngyAAAAA3NCSVQICAjb4U/gAAABDlBMVEX////////////////////////////////////////////////////////////////89/f69fb58/T47+/26uv05uby5eXx4eLv3d7t19jq09Tq0dPozs7mycvkxcbhv8HgvL3eubvdtbbbsLPYrK3Xp6rVpKbTn6LTnqDQm53PlpnNk5XLjpHJi43Ki43HhonGg4MXEfoLCen3AeHu/dXm9cXS8bXG7a263ZGi2YWS1XWGzWl2xVFmvU1iuUVSsS1CrSEypRUqoREimQESlO0CjOTyiNDmgMjieMTOdKi+bJyuaIymZISWYISaXHyOVGiCTFhqSEhiQDxOPDRKNCA+MBgqLAgiJAAOEAAB7AABKnaFbAAAAWnRSTlMAESIzRFVmd4iZqrvM3e7///////////////////////////////////////////////////////////////////////////////////////////////////+oxBYeAAAACXBIWXMAAC4YAAAuGAEqqicgAAAAIHRFWHRTb2Z0d2FyZQBNYWNyb21lZGlhIEZpcmV3b3JrcyBNWLuRKiQAABgeSURBVHic7V3ZWts61ybz7JVCKFBCmGe6W2iZCgVaoCU4nuKx938jv5xYsiaHwH66v/9A71mDvSzr1Rq1rM7MKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCMgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCj8P0C+WKk1mi0NodVs1CrF/BT3lCq1er1eq5YLuemfEt9RKxenvCN5ULlcYm4oVKZBabIQKQqlcnI3ulw+CXn6GeVsSVONUUAR3VqsNgGgs7y2tbO3t725ujQLoDUqhYkDH90zt7C42GkDtOqlSRcn79FAd8y+X1ycb8fyy1NyUoxvQ6hT46nCNGgKQrT65JeqtVgJ6L3EURaZSzKF1aYaI4c2FHIVNLPdw/P7Z9sNQoTAtfp3p3tL6IUy56yE3q97dHHfH5im/uv78WYHWtWJE1ysAywdnP94MtAdT7enOwug1aZQQzT3s/uXd3cXOwAV8mMFzh9vJ+PHz4U6NTlz+9+QkG1aiGwKN46viISbi4/rs9Cq8O9VhE9PySW/V1vZA29fPrwwRh73PzqtigYrJw9OGHqObZkDBNOyHS8MrbujJdCE0YxG1ID3H+M+HYeg6jm07wyDyn8976OLMwRXq0N67tdFThqM7/Cgwv20C1F7Ukjps6lHo+2H0tAo1/GsF+pE/GWG0XE+FbA/GQn73oJrxpFwLtn+j9UgkBEHo989WoMVpfxGu/iSX/NmeRIj+0hg5eH/ukJJs3riRN6aChmkHkX3ZE0YzM1puJ1bkW/TVw8i/WYVmUT62CsBhPwxs6ikmWgP3W6C9YOoqsBf5AyO+Iwg3oUx+/unxI+Zg2UuYkCocRr4xEhIG65DxyCacRT43D+i93Iv36UJICDkPk7+Hm5MIeXBfGCM/52EXVm6RLhgZF9ihd7EAdXYVF5qw/RwNDe4mwwr981mpQcg1YPUx8vinGGYQ3ixyL8shDyvhUB9fr3veEuTeQEgeViMHC/GHC5pULatwHElmwrAjaxsa9C1/jZDgEj772XSMR2PvQyvPjKZ9EXo8HcnF/Z5kfgst9JhAKt6KnB32ZYVZugt1fLkeXWHCX0VIDR5oIRcgi4xy0AttqSDdi47p+OCvEWMI6R+eRrU++SHfRC2hpaFKC94+yhRTD0AMfzS/PB7SvMx+DxJ9AM5uR1rJHWUbbWWi+gZBWj7ZEttXhhziW+D3MGqQdfaVf668R0n/2zAnqMQZaxbdtDetICZbMUKYeydCH0T8cIwWYvY+yH4PU6gJaWYzkkfGnLw73Epv1GkIK8IkWMgi3QfK85oItV5DxHHykYoG/50Osl69BoxlEN1hji7BoZa2jEdBiOmKsVl5rP0TZDMajQIw0pW80M1OGq4C+N/yWmJvXEFKBG8ZghhcSt57TdsIsSaNlswYkYPlrhEwJw0Q2tDoe9Zw+kY/R0Ldpz96E28l8xIycQF3+TvW5Z4e+1Hmew5M8PSGNjsms/eFTW+Lo4HOIh2kmoO7RvcEcmfr/NSFxtNWD/Gh2f0Qv+BxktYIVID6nBl+jwUtm0Yp2pX52ZkZbD5g41Aw2tISQ5z8hgYsHpdvpjxHOQ7TNkBXir2rCk4pwhtVId4MElEXXoy9kjP8dIYbp+L4jGnw9vI1VpIMICw5eF6IE+2yJD38yKAOjHDv0lkCXtBThm7YgRno4tRwWOzr/GOD07PT29wRrg3B+fYHz5Ot8Yj+ErZ4yQwgsFlCJcJISYw88bI2wd//R9HY/ecRbSt/qPCNGdsH9z8xw6ghZYflebEBhyYpBTSGyC1rHdF/mICX8QgrPxtN/57JXu41h0hSkAbWA9QnzRGMmswj1n3bx7MVunCAm60IqhoaT5d4j120A0Fv9bQnTPOpgHmD+yPZ4RI/oMuRr8Cl4yWKOLrXB1vOCrcPmiiUvkH8ny58aixa0Ay10ZzUCuWEAojqFt47A2PIdygWBcsW5+cLjgxXI+CFEERYi3kUxysQbvvmPPYri/sev5jwgxhtYHaJTLDVhxHP6PwTXUtcMpDNZIUvA4Wpx5pFJTBXKxQeiIb5aDnZAv6aD4UzA3LZoQ3vTlYV8In6JD4TIZIchmanCPF6Hp9TBR/w0hJi4VVWBXmAek5TBrTi0/2omnrQY/wikMVgw9OhVVpJS+OIF/J1ZnGEML4aloJLgUhwY0gRE4IitoXhlhJw6OExr9BiG5bvC1xH3DwWYenIffHmJB/oilnF13+G8nKwZpAbCbs1GcSIBtJ3ggLsu0FwdxMJKTW7uOXIYGsbQrJegYhKBMiIQHJX/4CIYb99MQbk/AsdVrCovJvAfrT+OcE0Sagd/k+rYIwPjOd6K6bDFK3ce3FJMn6lIS0Vn2JECFZzyJkptXzTDIH5b9FyCDYPvO5yQq/YutcFE0FCl+2JJmsYbmB50gSjdgoNJZc0YMYpuv7Q4niDJ/fcdkhVTexHx8Sw2GEl0LOMomQuG5iiELOeQOZSUhtrp94VPc+MXRTE5KxHxKIlT3HgH3eQ/vX2LBW4Y4LFE0UN10Ly90YBO791a00TnYWAT4LQYChe/7j1fenwBWDL+TC2FUb103w3z6SwgZJ1qcjpAI3OHIOD/ewEDFZzySkAniduw/t6usIubiXbQveXN8L2QNyoQuOw06wNVwY1xDzGlNijeE/wRwfgSI+wrseivY7kjh5gOMJYeBCqG3rwtNlG4cF2Xwyg0dJnVy1VNwnXZrG2kWR9OkIa87huYoYrHWx9xGR9GkJeqSHZe+qX/GaE5S0DfOVSBCO4hVYplyujUI8zZyaKmsTamx7egFYtoTi56wx57UHCRIuF+OhArVyuQ+fJ5xlx+rPs0tc28Dxb9jxhlyTrUxGS07bwy9vWLPzGRj064S7MJKTewcsCmeFX+ZBCWYoK9Hx+YpDoamP2mVulRni9AJoGi7eccdKjG4ALwWJ5/WTrqoL8C+8VbFOk0LCHi+N5KMKSxyuc6a0xL1eAE2zy4hjvC/4HTtanIqQIp3gUcVxyFqYSq9yFGYRoq4LwKQnJQBluhKkMtyDeHA14SxPqZ3v752bAemk9HHSgLdofJCWJAurwkytxIKPQ/SwQgtZl4pArkhQj/MSka1RBNzwBWMPlEctb4SZhAiHV1G5GnwFImdEacsl6FiHpQI3wIHFy/4qQuADFrV7DfWrX40dt8IwYThCGAetbDD20lkBbsnk1c3+TonMmcDfNb7P7xFR/0oRyCDF8j0SRBcMU4kcaCnbqNZuMdDnYMIVmfQEhzCddNkNtoNuYMIoRL1jMIKcAH7E8td5nsCv0LQqoSBUFrJR52DdacCZsyycitqL8I5cYG348RL1vy8k2RL+tXX5jx72mCXGv/5pNPZIsoM5JLTZ4zmKsWUpuJbA+bZ2cTQtVNkIuqFOEK/zO4ZqNnOSEl7R12doZPrNy/IQQpSMBPFUmKq7B4L7aPMHQM/OjbLFq42iGvZ6ZPRTtVeOTVwbCEJCT8J12VJfjGhxr2YJ7y6nHdJBkZcnmlGdgm5sbikvVsQkoooEmEhFfoTyk/tjnPJOsSQvKlOsyn7RGpTv0bQmQKQvZBkX+Bj1YkZhFkUt2ovwOtItLcL3xOYVuL6RuhlIF3IgMh+TP9ddoWCC7GclaoiUYqlHBshB/RVKTx64BP1rMJqc32SeR8gIQ0F20SBLPJukBIqaHB3P6ANBC4+myDXPtmQmIF4SfGDFbJUPI1mD98sDMqTubg51MFbi5sLS8hgcH90H9v0tv/pi8YPrewPDWpkQhEW6Rz1dq0VlxjvuMxahu8kTfzGmptsQlqrHvHi3WbsN29JmsjurPOEIOXYu3hK9yIH0T7xXP+CEImCGN4DFTZWAOa/yyoZMYaPKN0ezXoJrnkN8O6oWSlMs5foPHeoeFXbFoxguJ0awTwcYYnD0UYEVUjhk3WKEDZHKaTFgrGDKsBHIpVN1hlCmjMNOLDCMPVyevQj3fd/OyEyD2JEBynVTehdu0JSR2bIejrpaHHjYjldWRj+d4qQfPqi2Rg+zVJOu7UhpEfhbkpIGa6TCTKStUwFTFyynklIqhA4nWx1vTTqooUwhDRqiEnaKeq+s5BauLcTIvMgjjmHLXUF3p1P6lw0jGFkHIBWjAnh0xCfDlLRen7ZZA1/tWlC1vn6zCDcT6eoPqcT6787mot0K5ZP1jMJacyTeg9KmmIhtTT6YHfWGUIANiKbmhbd93vU276ZkBzK/UQFOcOiq9DtM88VYRhedNOBYvEvELMIhErKXEqKRfXLLWRytIMoscsl6FiE5jVQQbOs97nig0n9qOCwh7d9UOxjKxNxVOtJ+MyFVyYaE5XU1/Nd1LxBiXpPPIs1o0IUGfBdM1g1jsj692mRtCuEG5UMKcCJUOVq9NEdjkvUsQuJQA+cueKMxbSxid9ZZQtaoscUty8tMoeWthMg8SFz0G8suwaqQqA+GYRAgV8ZWToJhD8SswftBLRoUFr+sIc7zfLquc9quEGUF6dvRdZMvSfxfSQNhNlnPIqRKCrWxfRq7gGoaCDPJOk3IOnwkYzOs0Dt7xyeRbyNE5kEG0fZ4FHlYcDg+dCvsnx0cnj9zbkX3h0tpWQ5j+Ita75I0T4RlL6dhb556afz3YY8s2cYiqZsg812LUW2kXVpssp5FSNpvguwCEUIC9IAOS1hCvpCmOWd41YMWW6p5IyEyDzJw++3xpNThli+/28GXubha3znlGQmfYI8PUpnEsAL3wm6lxTfcMXlGOgG0xDoZO+mzsPXlzvz8fAdhlkw8u7MOeQUgeDtK6yRIRsofNEbOzzhJCktbh0zIA38X1RkKqsj0+vHNdgK1ISAMOoFnK50tNtHhN7raDrvBtEV06abwXtq/MZ+6HJOMmoxPKx1RmQCWi5vPTU7/ff0L49Zuk/0nkNZGQMnybKMRMIi+BkA3YJKp4h4LMvLD//hZCpAqCIpaxgBrcBxxbwRVOfRpwy/7RsAe7YlNEWlzMiRvuhntxy3d30cVFsX2NDhNq7bTvxXRGGCIQ0g0mWc8gpE4KxKwQgwihdtZZQmafE4U3gx1NaHJ9GyEyBYmLDkmw0eNXvOWt4BWfSzdlEujelTC97hNp/6xwXw2M3mTji7BRSbfHimEZ8t7YVrdWhJiYhfNMbS9mENLi34IHnaxzechB0hlhuOasMOVvIkSqIGa4PlZSSWmPzhLSTgsM+9dPYWM+3E7ePq99EObPctqSjsEvWEVabYOvvpvBFv74j6qbZIBJ1uWExHWTF76DoJJ1tnTSgIdkhcUdfGJT3RsIkSqIhxMqqlKHQbMqOZkY+mm87eb4XMnrX7IxuKbbI8KlHPYCghAbSQoi/s8430to6Ac7dZui6SRaYZF1OSEUs9/CgknW2dDJqgh0NEIU6XbGH6/WE5DSJgsSR93gAkh4u9yFdCdV3v7j1a1rXghPRg8cFaDWaMHslCa+/wLs+rwS6Z6IYstEAlPbx/BpUf2e9owvdxfxwf6XJupwQSaDBg0rWuWpvBc6TIFQPf/Kd+W8hRKogjtVJgkXRJiEbs0Rkpy2DBMHJpfBdsx4MPveWu4dpzz5BnD1Its11b3i2vry8dydW0OKiJ3afad0kE3SyLiUkp22/mBpZwyUcPfPld61j4+UU7QidE68mJAddUUGMiEQVtc4zT4iBoqYqZvNM3NU63BLNuu6EQ9sJXF2YXWQc601Ja69uhy66wxe3KW37fTo56XaYaZk0yAEHdLLOEJLaoDSXzRLC7AKyhBTTTkLXmmNn/Q2ESBXE8kkcVZ0VdrRRmLUK8eEj+RpsiGyi95dZANOyhARwMP7eI1eBR0MGp4udY4rERbIso9YmN4Xnc6RNYIpWsSwmhd5UFIVij0511YceQ9utnrF9/PSFSD2IEd8Riyhye7jrbAM0mwO5wKPYVHiGrOnXr9Mg4okx5yg9KEKygRw5YaC6SnY/h541NBsd4N81Kk3UpIc3lIRbifGJlbJ5gqtKddYGQ+AyJsQDDClaAPTvhtYRIFSS2hVhsbBTELwmH/vf9Xu/gJhB32U1/XdLbloW4AQsZx0b7edr2byO8IaslrpskPzsmjD8vwwAwuG2SDEKo1eA8g8YKaVtEyLaGe634Jodq6teDe8avv5qQnNYVduNQotF/l0rVxL320eEjgTMMAokNGj7PAhngixhao++himJHdxascIUEl6W044fO7UcowyX+W5qsywgpw7fE4hj8Fvwoj02eS33zIXSdaB2L+PV9tqz/SkKqIIlDB8wHGJLSyXg0UgM//sCpMW9n7vYyiLvQRq/ZgEfpUyTyL9MKXtpvMqCrX+O1RmkPSdZlhNSZfpMcJwQn4mmyLiMGklK4ntMKo/d7XEiJXEGu4SN2bh41oys//4hm2vSVt6gWvh4+Jhk/7kaHh2vNU4t1j+00YNBZwbJEm6zJCtDXSb+Is899cMf2MWhYhI7+eGC0UoL76aA0CuQcJrxntr8HVtAYoXvJfY61vCCV76cWOv4zXdRVOpogEDCvaSrU3n9kZEoPuW/ia3CQhhKoNsQ2RybDI9hdO1mWExO3PSb4Um1Siq68kBCmIJEk3ww1GceNTMqb6yHkQL/n+qMKW0+Yt4SsCyezup9S34GEKDtH6Sye+TI4mMSSnklCNPGRnXUJI+oW7kX6qRwk55nfWpa2kqV83AupL+lcSUpF5kFGmxlxWhCVnOkZ0z/uAl1EvFCNi9kHx7NIbg/PWS0/Ro3ugXqveGYiBVIq0ikCSdQkhVN1EdvhP+uEg3lmX9/bSfv2ALI7XESL3IHGmxn3fXYauNeGkpXS+ApQxkq8Itid0ng6So4PoMZag607WKj18nqNdN91vsiQeE0R/YJAk6yIhubQTmKMpZpqDihiRZlxMSu03s/m3i119HiDzESstYKSqw+OvFA8wMM7JWqAgIdiPJ94HU1bfA7uiUoTecoCOGEfXfszEl6ZeQHYFB/x0n6yIhxbT4I/uwHS0TUldJIuuMzxHofP3iTd3vOW1ZoiCjMyckw2qfBeGkM8zivqzbefqNarDlZc6vbkffgN9hq0DXzPTsyOM8dBgbT9VNiNdmkDby4J11kZBqVj8cmSWySZvsrGcdHEDydeTXe687OAC/vkxBqDIWjUIT1n6GkhAgmS3TjfQD7uDQGqzo8hN+jEEQHLMHNCZDWriXGzpDd6PLtsbMevqpiRlsyo6rpDOMcRu8SEizS+om/rrszdNPd5I2+KwvqGi/jqP51xAi9yAD/0fGabVVgO07L5J+UO6EYf/THNSFFT93GUqyecOJntalJ1qWNDh2JS2r8YGf3BGbcVd8lBRlHe4TDiwNJevJFUkO3toJ8A9nI0Lixuzkl6H4FXWMMkoNkiuiUSiHCEl+sHz24IA5y8VXJvMkuIgSLf5EQpCD4WhrRrvQ8qplRbRdWT397YeDaVlKltqz4jOtAv9qZhYZ4SE+xBZv3IdJkaoZjZbKO2xm05xuwchOENnuHE7kXC/wHnCX48ccfHx/254f80FnY+ROOr4j89/Fst/b/JCeO/fk2IqQMD+SXG+nZaHk4wFdEw7gpvwg35JYtepKRX08e50fRuOszPkgZX7szmZCctoEHSyOyZmVrLRlbtQXt1X+uHi3XGx817rnWr+vjzXnQ6vKDkWO9uh1GgTOqs5iW7UVB/3gBGpkHq1c0WP0WN/iPv0VBjIehcdYVj2muw87B3hhHKxLrj9Cc299PLjkc9aRrS4f4ltWR12lQQrrypdjsHBAh80hIEdaOiFDGyDVgNxG2+2l8Cm4RVvG1R4syg0jP1OrH3T0ByTizkCvFZ9C3F3tb+4dHR4d7W73Rafz1cubR7LFedT/e9B1/dMKe+XC6NQvNSYdU56oaLB5ePdlefIdn/brYnYeWuHibGgX52Zhl+pL4xVr0DzMGHrZeFVDghxcxb8oy0eI0U6B8makiOufflUVEolKvx/1YR/wcC8f9X8eL/QJGPj/Cf627s7O1urS6gu2qTKB8NrtwAePdhfRvdsbbYRoTLCMzncwR8gxq5Jsdek6PveauQ7Fty/KUTruXfmb6VwQuThe/P5RGm/Z89CuVaY7QCmvXqdP8dSB7f0apXM/5vDgUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBYX/Jf4Pc7DWV97TaVUAAAAASUVORK5CYII=';
c.alt = 'Atari 7800';
c.className = 'atari7800';
cd.appendChild(c);
(rd = document.createElement('div')).id = rd.className M=
'js7800__controls';
n.appendChild(rd);
})(t);
od = false;
if (e && e.debug) {
od = e.debug;
}
Pt('init', {
canvas: nd,
mainContainer: $u,
innerContainer: td,
controlsDiv: rd,
keyboardData: ld,
Region: a,
debug: od,
});
ed = document.createElement('div');
cd.appendChild(ed);
M Ds();
cd.classList.add('js7800__logo--show');
Rt(new jt('restart', gd));
}
}
function Ld(t) {
t;
}
function Id(t) {
Pt('highScoreCallbackChanged', t);
}
function Cd() {
return sd;
}
function Ed(t) {
sd = t;
}
function Sd() {
return true;
}
function xd() {
if (Qo() == 60) {
switch (fd) {
case 0:
M ud = 0;
dd = 0;
break;
case 1:
ud = 1;
dd = 4;
break;
case 2:
ud = 1;
dd = 2;
break;
case 3:
ud = 3;
dd = 4;
}
} else {
switch (fd) {
case 0:
ud = 0;
dd = 0;
break;
case 1:
ud =M 1;
dd = 5;
break;
case 2:
ud = 1;
dd = 2;
break;
case 3:
ud = 4;
dd = 5;
}
}
console.log('Updated skip count: ' + ud + ', ' + dd);
}
function Dd() {
return 0;
}
function Nd() {
return fd;
}
function _d(t) {
fd = t;
xd();
}
function Td() {
M return Xo();
}
function kd(t) {
return qo(t);
}
n.r(e);
var r = {};
n.r(r);
n.d(r, 'setParentEvents', function () {
return Ot;
});
n.d(r, 'Listener', function () {
return jt;
});
n.d(r, 'addListener', function () {
return Rt;
});
n.d(r, 'fireEvent', function () {
return Pt;
});
var c = {};
n.r(c);
n.d(c, 'ClearROM', function (M) {
return Je;
});
n.d(c, 'WriteROM', function () {
return Ve;
});
n.d(c, 'Write', function () {
return Ye;
});
n.d(c, 'Read', function () {
return Qe;
});
n.d(c, 'ReadMaria', function () {
return He;
});
n.d(c, 'Reset', function () {
return Ue;
});
n.d(c, 'ram', function () {
return Ne;
});
n.d(c, 'rom', function () {
return M_e;
});
n.d(c, 'mariaRam', function () {
return Te;
});
var i = {};
n.r(i);
n.d(i, 'GetCartridgeXM', function () {
return ur;
});
n.d(i, 'GetRegion', function () {
return ir;
});
n.d(i, 'IsBanksets', function () {
return lr;
});
n.d(i, 'IsHaltBankedRam', function () {
return hr;
});
n.d(i, 'IsPokeyEnabled', function () {
return ar;
});
M n.d(i, 'IsPokey450Enabled', function () {
return or;
});
n.d(i, 'IsPokey800Enabled', function () {
return sr;
});
n.d(i, 'IsPokeyWriteOnly', function () {
return fr;
});
n.d(i, 'IsXmEnabled', function () {
return dr;
});
n.d(i, 'IsSwapButtons', function () {
return Ar;
});
n.d(i, 'IsDualAnalog', function () {
return pr;
});
n.d(i, 'IsLightGunEnabled', funcMtion () {
return br;
});
n.d(i, 'GetFlags', function () {
return gr;
});
n.d(i, 'GetHblank', function () {
return yr;
});
n.d(i, 'GetLeftSwitch', function () {
return wr;
});
n.d(i, 'GetRightSwitch', function () {
return mr;
});
n.d(i, 'GetDigest', function () {
return Mr;
});
n.d(i, 'SetTitle', function () {
return vr;
});
n.d(i, 'GetTMitle', function () {
return Lr;
});
n.d(i, 'GetSize', function () {
return Ir;
});
n.d(i, 'GetType', function () {
return Cr;
});
n.d(i, 'SetType', function () {
return Er;
});
n.d(i, 'SetPokey', function () {
return Sr;
});
n.d(i, 'SetPokey450', function () {
return xr;
});
n.d(i, 'SetBanksetsBegin', function () {
return qr;
});
n.d(i,M 'GetBanksetsBegin', function () {
return Kr;
});
n.d(i, 'SetBanksetsEnd', function () {
return $r;
});
n.d(i, 'GetBanksetsEnd', function () {
return tc;
});
n.d(i, 'SetController1', function () {
return Dr;
});
n.d(i, 'SetController2', function () {
return Nr;
});
n.d(i, 'GetController1', function () {
return _r;
});
n.d(i, 'GetController2', function () {
M return Tr;
});
n.d(i, 'SetRegion', function () {
return kr;
});
n.d(i, 'SetFlags', function () {
return Br;
});
n.d(i, 'SetXm', function () {
return jr;
});
n.d(i, 'SetXmMode', function () {
return Yr;
});
n.d(i, 'GetXmMode', function () {
return Vr;
});
n.d(i, 'GetXmModeDefault', function () {
return Jr;
});
n.d(i, 'SetHblank', function () M{
return Rr;
});
n.d(i, 'SetCrossX', function () {
return Pr;
});
n.d(i, 'SetCrossY', function () {
return Or;
});
n.d(i, 'GetCrossX', function () {
return Fr;
});
n.d(i, 'GetCrossY', function () {
return Gr;
});
n.d(i, 'SetDualAnalog', function () {
return zr;
});
n.d(i, 'SetLeftSwitch', function () {
return Wr;
});
n.d(i, 'SetRightSwiMtch', function () {
return Ur;
});
n.d(i, 'SetSwapButtons', function () {
return Zr;
});
n.d(i, 'SetHighScoreCartEnabled', function () {
return Qr;
});
n.d(i, 'IsHighScoreCartEnabled', function () {
return Hr;
});
n.d(i, 'GetCartridgeBank', function () {
return ec;
});
n.d(i, 'Load', function () {
return Kn;
});
n.d(i, 'IsLoaded', function () {
return Mnr;
});
n.d(i, 'Write', function () {
return tr;
});
n.d(i, 'Store', function () {
return $n;
});
n.d(i, 'Release', function () {
return rr;
});
n.d(i, 'LoadHighScoreCart', function () {
return cr;
});
n.d(i, 'IsStored', function () {
return Xr;
});
n.d(i, 'StoreBank', function () {
return er;
});
n.d(i, 'CARTRIDGE_TYPE_NORMAL', function () {
M return hn;
});
n.d(i, 'CARTRIDGE_TYPE_NORMAL_RAM', function () {
return yn;
});
n.d(i, 'CARTRIDGE_TYPE_SUPERCART', function () {
return An;
});
n.d(i, 'CARTRIDGE_TYPE_SUPERCART_RAM', function () {
return bn;
});
n.d(i, 'CARTRIDGE_TYPE_SUPERCART_ROM', function () {
return gn;
});
n.d(i, 'CARTRIDGE_TYPE_SUPERCART_LARGE', function () {
return pn;
});
var a = {};
M n.r(a);
n.d(a, 'REGION_NTSC', function () {
return Za;
});
n.d(a, 'REGION_PAL', function () {
return Qa;
});
n.d(a, 'REGION_AUTO', function () {
return Ha;
});
n.d(a, 'REGION_PALETTE_NTSC', function () {
return Ka;
});
n.d(a, 'REGION_PALETTE_PAL', function () {
return $a;
});
n.d(a, 'Reset', function () {
return ro;
});
n.d(a, 'getNtscPalette', functiMon () {
return co;
});
n.d(a, 'getPalPalette', function () {
return io;
});
n.d(a, 'getPaletteIndex', function () {
return ao;
});
n.d(a, 'setPaletteIndex', function () {
return oo;
});
n.d(a, 'getPaletteIndexDefault', function () {
return so;
});
var o = {};
n.r(o);
n.d(o, 'flipImage', function () {
return Es;
});
n.d(o, 'startScreenSnow', functMion () {
return Ds;
});
n.d(o, 'ATARI_WIDTH', function () {
return ts;
});
n.d(o, 'ATARI_CANVAS_HEIGHT', function () {
return is;
});
n.d(o, 'NTSC_ATARI_BLIT_TOP_Y', function () {
return es;
});
n.d(o, 'PAL_ATARI_BLIT_TOP_Y', function () {
return rs;
});
n.d(o, 'NTSC_ATARI_HEIGHT', function () {
return ns;
});
n.d(o, 'PAL_ATARI_HEIGHT', function () {
rMeturn cs;
});
n.d(o, 'getCanvas', function () {
return _s;
});
n.d(o, 'stopScreenSnow', function () {
return Ts;
});
n.d(o, 'fullScreen', function () {
return Hs;
});
n.d(o, 'exitFullScreen', function () {
return Vs;
});
n.d(o, 'isFullscreen', function () {
return Ys;
});
n.d(o, 'getFilterEnabledDefault', function () {
return js;
});
n.d(o, 'setFMilterEnabled', function () {
return ks;
});
n.d(o, 'isFilterEnabled', function () {
return Bs;
});
n.d(o, 'setScreenSize', function () {
return Ps;
});
n.d(o, 'getScreenSize', function () {
return Os;
});
n.d(o, 'getScreenSizeDefault', function () {
return Fs;
});
n.d(o, 'setScreenRatio', function () {
return Gs;
});
n.d(o, 'getScreenRatio', function () {
M return zs;
});
n.d(o, 'getScreenRatioDefault', function () {
return Ws;
});
n.d(o, 'getFullscreenModeDefault', function () {
return Us;
});
n.d(o, 'setFullscreenMode', function () {
return Zs;
});
n.d(o, 'getFullscreenMode', function () {
return Qs;
});
n.d(o, 'initPalette8', function () {
return Cs;
});
var s = {};
n.r(s);
n.d(s, 'isSelect', function M() {
return jf;
});
n.d(s, 'isReset', function () {
return Rf;
});
n.d(s, 'isPause', function () {
return Pf;
});
n.d(s, 'isLeftDiffSet', function () {
return Of;
});
n.d(s, 'isRightDiffSet', function () {
return Ff;
});
n.d(s, 'setLeftDiffSet', function () {
return Tf;
});
n.d(s, 'setRightDiffSet', function () {
return kf;
});
n.d(s, 'Mreset', function () {
return Gf;
});
n.d(s, 'p1KeyMap', function () {
return gf;
});
n.d(s, 'p2KeyMap', function () {
return yf;
});
n.d(s, 'setPauseKey', function () {
return zf;
});
n.d(s, 'getPauseKey', function () {
return Wf;
});
n.d(s, 'setSelectKey', function () {
return Uf;
});
n.d(s, 'getSelectKey', function () {
return Zf;
});
M n.d(s, 'setResetKey', function () {
return Qf;
});
n.d(s, 'getResetKey', function () {
return Hf;
});
n.d(s, 'defResetKey', function () {
return Df;
});
n.d(s, 'defPauseKey', function () {
return _f;
});
n.d(s, 'defSelectKey', function () {
return Sf;
});
var f = {};
n.r(f);
n.d(f, 'isTouchDevice', function () {
return Yf;
});
n.d(f, 'isMobileDeMvice', function () {
return Vf;
});
n.d(f, 'isIosDevice', function () {
return Jf;
});
n.d(f, 'addProps', function () {
return Xf;
});
var u = {};
n.r(u);
n.d(u, 'poll', function () {
return nu;
});
n.d(u, 'getMapping', function () {
return ru;
});
var d = {};
n.r(d);
n.d(d, 'isPauseButtonDown', function () {
return Yu;
});
n.d(d,M 'getGroup', function () {
return Hu;
});
n.d(d, 'Component', function () {
return Iu;
});
n.d(d, 'Button', function () {
return Cu;
});
n.d(d, 'leaderboardButton', function () {
return Wu;
});
n.d(d, 'settingsButton', function () {
return Zu;
});
n.d(d, 'helpButton', function () {
return Uu;
});
n.d(d, 'pauseButton', function () {
return ku;
}M);
n.d(d, 'soundButton', function () {
return Bu;
});
n.d(d, 'cogsImgSrc', function () {
return mu;
});
n.d(d, 'infoImgSrc', function () {
return Mu;
});
n.d(d, 'medalImgSrc', function () {
return vu;
});
var l = {};
n.r(l);
n.d(l, 'init', function () {
return vd;
});
n.d(l, 'startEmulation', function () {
return Md;
});
n.d(l, 'saveStateM', function () {
return Td;
});
n.d(l, 'loadState', function () {
return kd;
});
n.d(l, 'restart', function () {
return gd;
});
n.d(l, 'setErrorHandler', function () {
return Ld;
});
n.d(l, 'setHighScoreCallback', function () {
return Id;
});
n.d(l, 'HighScoreCallback', function () {
return Vu;
});
n.d(l, 'descriptionDiv', function () {
return ed;
M });
n.d(l, 'isVsyncEnabled', function () {
return Cd;
});
n.d(l, 'setVsyncEnabled', function () {
return Ed;
});
n.d(l, 'getVsyncEnabledDefault', function () {
return Sd;
});
n.d(l, 'getSkipLevelDefault', function () {
return Dd;
});
n.d(l, 'getSkipLevel', function () {
return Nd;
});
n.d(l, 'setSkipLevel', function () {
return _d;
});
var h = {};
M n.r(h);
n.d(h, 'Keys', function () {
return Bd;
});
var A = new Array(0, 0, 0);
var p = 0;
var b = new Array(2048);
var g = 31440;
var y = 0;
var w = new Array(0, 0, 0, 0);
var m = new Array(0, 0, 0, 0);
var M = 0;
var v = new Array(0, 0, 0, 0);
var L = new Array(1, 1, 0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0);
var I = new Array(
0,
0,
1,
1,
0,
M 0,
0,
1,
1,
1,
1,
0,
0,
1,
0,
1,
0,
1,
1,
0,
1,
1,
1,
0,
1,
0,
0,
0,
0,
0,
1
);
var C = new Array(511);
var E = new Array(131071);
var S = 0;
var x = 0;
var D = 0;
var N = 0;
var _ = new Array(0, 0, 0, M0);
var T = new Array(0, 0, 0, 0);
var k = 0;
var B = new Array(511);
var j = new Array(131071);
var R = 0;
var P = 0;
var O = 0;
var F = 0;
var G = 0;
var z = new Array(228, 228, 228, 228, 228, 228, 228, 228);
var W = 0;
var U = 0;
var Z = 0;
var Q = new Array(1, 1, 0, 0);
const J = Array(32);
var nt;
var rt;
(rt = nt || (nt = {})).FM_PGBITS = 9;
rt.FM_RATIOBITS = M7;
rt.FM_LFOBITS = 8;
rt.FM_TLBITS = 7;
rt.FM_TLENTS = 1 << rt.FM_TLBITS;
rt.FM_LFOENTS = 1 << rt.FM_LFOBITS;
rt.FM_CLENTS = 8192;
rt.FM_OPSINBITS = 10;
rt.FM_OPSINENTS = 1 << rt.FM_OPSINBITS;
rt.FM_EG_BOTTOM = 955;
rt.IS2EC_SHIFT = 20 + rt.FM_PGBITS - 13;
(function () {
var t = nt || (nt = {});
(function (t) {
t[(t.typeN = 0)] = 'typeN';
t[(t.typeM = 1)] = 'typeM';
})(t.OpType || (tM.OpType = {}));
t.OpType;
t.pmtable;
t.amtable;
t.tablemade = false;
var e = (function () {
function e() {
this.chip_ = null;
this.out_ = 0;
this.out2_ = 0;
this.in2_ = 0;
this.dp_ = 0;
this.detune_ = 0;
this.detune2_ = 0;
this.multiple_ = 0;
this.pg_count_ = 0;
this.pg_diff_ = 0;
this.pg_diff_lfo_ = 0;M
this.bn_ = 0;
this.eg_level_ = 0;
this.eg_level_on_next_phase_ = 0;
this.eg_count_ = 0;
this.eg_count_diff_ = 0;
this.eg_out_ = 0;
this.tl_out_ = 0;
this.eg_rate_ = 0;
this.eg_curve_count_ = 0;
this.key_scale_rate_ = 0;
this.eg_phase_ = e.EGPhase.next;
this.ms_ = 0;
this.tl_ = 0;
this.tl_latch_ = 0;
this.ar_M = 0;
this.dr_ = 0;
this.sr_ = 0;
this.sl_ = 0;
this.rr_ = 0;
this.ks_ = 0;
this.keyon_ = false;
this.amon_ = false;
this.param_changed_ = false;
this.mute_ = false;
this.dbgopout_ = 0;
this.dbgpgout_ = 0;
if (!e.tablehasmade) {
this.MakeTable();
}
this.ar_ =
this.dr_ =
this.Msr_ =
this.rr_ =
this.key_scale_rate_ =
0;
this.ams_ = t.amtable[0][0];
this.mute_ = false;
this.keyon_ = false;
this.tl_out_ = 0;
this.multiple_ = 0;
this.detune_ = 0;
this.detune2_ = 0;
this.ms_ = 0;
}
e.prototype.SetChip = function (t) {
this.chip_ = t;
};
e.prototype.Reset = function () {
M this.tl_ = this.tl_latch_ = 127;
this.ShiftPhase(e.EGPhase.off);
this.eg_count_ = 0;
this.eg_curve_count_ = 0;
this.pg_count_ = 0;
this.out_ = this.out2_ = 0;
this.param_changed_ = true;
};
e.prototype.MakeTable = function () {
var r = 0;
for (var n = 0; n < 256; n++) {
var c = Math.floor(Math.pow(2, 13 - n / 256));
c = (c + 2) & -4;
M e.cltable[r++] = c;
e.cltable[r++] = -c;
}
while (r < t.FM_CLENTS) {
e.cltable[r] = (e.cltable[r - 512] / 2) | 0;
r++;
}
for (n = 0; n < t.FM_OPSINENTS / 2; n++) {
var i = ((2 * n + 1) * Math.PI) / t.FM_OPSINENTS;
var a = (-256 * Math.log(Math.sin(i))) / Math.LN2;
var o = Math.floor(a + 0.5) + 1;
e.sinetable[n] = 2 * o;
e.Msinetable[t.FM_OPSINENTS / 2 + n] = 2 * o + 1;
}
t.MakeLFOTable();
e.tablehasmade = true;
};
e.prototype.SetDPBN = function (t, e) {
this.dp_ = t;
this.bn_ = e;
this.param_changed_ = true;
};
e.prototype.Prepare = function () {
if (this.param_changed_) {
switch (
((this.param_changed_ = false),
(this.pg_diff_ =
M (this.dp_ + e.dttable[this.detune_ + this.bn_]) *
this.chip_.GetMulValue(this.detune2_, this.multiple_)),
(this.pg_diff_lfo_ = this.pg_diff_ >> 11),
(this.key_scale_rate_ = this.bn_ >> (3 - this.ks_)),
(this.tl_out_ = this.mute_ ? 1023 : 8 * this.tl_),
this.eg_phase_)
) {
case e.EGPhase.attack:
this.SetEGRate(
this.ar_
M ? Math.min(63, this.ar_ + this.key_scale_rate_)
: 0
);
break;
case e.EGPhase.decay:
this.SetEGRate(
this.dr_
? Math.min(63, this.dr_ + this.key_scale_rate_)
: 0
);
this.eg_level_on_next_phase_ = 8 * this.sl_;
break;
case e.EGPhase.sustain:
this.SMetEGRate(
this.sr_
? Math.min(63, this.sr_ + this.key_scale_rate_)
: 0
);
break;
case e.EGPhase.release:
this.SetEGRate(
Math.min(63, this.rr_ + this.key_scale_rate_)
);
}
this.ams_ =
t.amtable[this.type_][this.amon_ ? (this.ms_ >> 4) & 3 : 0];
this.EGUpdate();
M this.dbgopout_ = 0;
}
};
e.prototype.ShiftPhase = function (n) {
switch (n) {
case e.EGPhase.attack:
if (this.ar_ + this.key_scale_rate_ < 62) {
this.SetEGRate(
this.ar_
? Math.min(63, this.ar_ + this.key_scale_rate_)
: 0
);
this.eg_phase_ = e.EGPhase.attack;
break;
M }
case e.EGPhase.decay:
if (this.sl_) {
this.eg_level_ = 0;
this.eg_level_on_next_phase_ = 8 * this.sl_;
this.SetEGRate(
this.dr_
? Math.min(63, this.dr_ + this.key_scale_rate_)
: 0
);
this.eg_phase_ = e.EGPhase.decay;
break;
}
case e.EGPhase.sustMain:
this.eg_level_ = 8 * this.sl_;
this.eg_level_on_next_phase_ = 1024;
this.SetEGRate(
this.sr_ ? Math.min(63, this.sr_ + this.key_scale_rate_) : 0
);
this.eg_phase_ = e.EGPhase.sustain;
break;
case e.EGPhase.release:
if (
this.eg_phase_ === e.EGPhase.attack ||
this.eg_level_ < t.FM_EG_BOTTOM
) {
M this.eg_level_on_next_phase_ = 1024;
this.SetEGRate(
Math.min(63, this.rr_ + this.key_scale_rate_)
);
this.eg_phase_ = e.EGPhase.release;
break;
}
case e.EGPhase.off:
default:
this.eg_level_ = t.FM_EG_BOTTOM;
this.eg_level_on_next_phase_ = t.FM_EG_BOTTOM;
this.EGUpdate();
thiMs.SetEGRate(0);
this.eg_phase_ = e.EGPhase.off;
}
};
e.prototype.SetFNum = function (t) {
this.dp_ = (2047 & t) << ((t >> 11) & 7);
this.bn_ = e.notetable[(t >> 7) & 127];
this.param_changed_ = true;
};
e.prototype.LogToLin = function (n) {
if (n < t.FM_CLENTS) {
return e.cltable[n];
} else {
return 0;
}
};
M e.prototype.EGUpdate = function () {
this.eg_out_ = Math.min(this.tl_out_ + this.eg_level_, 1023) << 3;
};
e.prototype.SetEGRate = function (t) {
this.eg_rate_ = t;
this.eg_count_diff_ =
e.decaytable2[t >> 2] * this.chip_.GetRatio();
};
e.prototype.EGCalc = function () {
this.eg_count_ = 6141 << t.FM_RATIOBITS;
if (this.eg_phase_ === e.EGPhase.attack) {
var nM = e.attacktable[this.eg_rate_][7 & this.eg_curve_count_];
if (n >= 0) {
this.eg_level_ -= 1 + (this.eg_level_ >> n);
if (this.eg_level_ <= 0) {
this.ShiftPhase(e.EGPhase.decay);
}
}
this.EGUpdate();
} else {
this.eg_level_ +=
e.decaytable1[this.eg_rate_][7 & this.eg_curve_count_];
if (this.eg_level_ >= this.eg_level_on_next_phase_)M {
this.ShiftPhase(this.eg_phase_ + 1);
}
this.EGUpdate();
}
this.eg_curve_count_++;
};
e.prototype.EGStep = function () {
this.eg_count_ -= this.eg_count_diff_;
if (this.eg_count_ <= 0) {
this.EGCalc();
}
};
e.prototype.PGCalc = function () {
var t = this.pg_count_;
this.pg_count_ += this.pg_diff_;
M this.dbgpgout_ = t;
return t;
};
e.prototype.PGCalcL = function () {
var t = this.pg_count_;
this.pg_count_ +=
this.pg_diff_ +
((this.pg_diff_lfo_ * this.chip_.GetPMV()) >> 5);
this.dbgpgout_ = t;
return t;
};
e.prototype.Calc = function (n) {
this.EGStep();
this.out2_ = this.out_;
var r = this.PGCalc() >> (20 + t.FM_PGMBITS - t.FM_OPSINBITS);
r +=
n >> (20 + t.FM_PGBITS - t.FM_OPSINBITS - (2 + t.IS2EC_SHIFT));
this.out_ = this.LogToLin(
this.eg_out_ + e.sinetable[r & (t.FM_OPSINENTS - 1)]
);
this.dbgopout_ = this.out_;
return this.out_;
};
e.prototype.CalcL = function (n) {
this.EGStep();
var r = this.PGCalcL() >> (20 + t.FM_PGBITS - t.FM_OPSINBITS);
r +=
M n >> (20 + t.FM_PGBITS - t.FM_OPSINBITS - (2 + t.IS2EC_SHIFT));
this.out_ = this.LogToLin(
this.eg_out_ +
e.sinetable[r & (t.FM_OPSINENTS - 1)] +
this.ams_[this.chip_.GetAML()]
);
this.dbgopout_ = this.out_;
return this.out_;
};
e.prototype.CalcN = function (t) {
this.EGStep();
var e = Math.max(0, 1023 - (this.tl_out_ + this.eg_level_)) << 1;
M t = (1 & t) - 1;
this.out_ = (e + t) ^ t;
this.dbgopout_ = this.out_;
return this.out_;
};
e.prototype.CalcFB = function (n) {
this.EGStep();
var r = this.out_ + this.out2_;
this.out2_ = this.out_;
var c = this.PGCalc() >> (20 + t.FM_PGBITS - t.FM_OPSINBITS);
if (n < 31) {
c +=
((r << (1 + t.IS2EC_SHIFT)) >> n) >>
(20 + t.FMM_PGBITS - t.FM_OPSINBITS);
}
this.out_ = this.LogToLin(
this.eg_out_ + e.sinetable[c & (t.FM_OPSINENTS - 1)]
);
this.dbgopout_ = this.out2_;
return this.out2_;
};
e.prototype.CalcFBL = function (n) {
this.EGStep();
var r = this.out_ + this.out2_;
this.out2_ = this.out_;
var c = this.PGCalcL() >> (20 + t.FM_PGBITS - t.FM_OPSINBITS);
if (n M< 31) {
c +=
((r << (1 + t.IS2EC_SHIFT)) >> n) >>
(20 + t.FM_PGBITS - t.FM_OPSINBITS);
}
this.out_ = this.LogToLin(
this.eg_out_ +
e.sinetable[c & (t.FM_OPSINENTS - 1)] +
this.ams_[this.chip_.GetAML()]
);
this.dbgopout_ = this.out_;
return this.out_;
};
e.prototype.ResetFB = function () {
this.out_ = this.oMut2_ = 0;
};
e.prototype.KeyOn = function () {
if (!this.keyon_) {
this.keyon_ = true;
if (
this.eg_phase_ === e.EGPhase.off ||
this.eg_phase_ === e.EGPhase.release
) {
this.ShiftPhase(e.EGPhase.attack);
this.EGUpdate();
this.in2_ = this.out_ = this.out2_ = 0;
this.pg_count_ = 0;
}
}
M };
e.prototype.KeyOff = function () {
if (this.keyon_) {
this.keyon_ = false;
this.ShiftPhase(e.EGPhase.release);
}
};
e.prototype.IsOn = function () {
return this.eg_phase_ - e.EGPhase.off;
};
e.prototype.SetDT = function (t) {
this.detune_ = 32 * t;
this.param_changed_ = true;
};
e.prototype.SetDT2 = function (t) {
Mthis.detune2_ = 3 & t;
this.param_changed_ = true;
};
e.prototype.SetMULTI = function (t) {
this.multiple_ = t;
this.param_changed_ = true;
};
e.prototype.SetTL = function (t) {
this.tl_ = t;
this.param_changed_ = true;
};
e.prototype.SetAR = function (t) {
this.ar_ = t;
this.param_changed_ = true;
};
e.prototype.SetDR = funMction (t) {
this.dr_ = t;
this.param_changed_ = true;
};
e.prototype.SetSR = function (t) {
this.sr_ = t;
this.param_changed_ = true;
};
e.prototype.SetSL = function (t) {
this.sl_ = t;
this.param_changed_ = true;
};
e.prototype.SetRR = function (t) {
this.rr_ = t;
this.param_changed_ = true;
};
e.prototype.SetMKS = function (t) {
this.ks_ = t;
this.param_changed_ = true;
};
e.prototype.SetAMON = function (t) {
this.amon_ = t;
this.param_changed_ = true;
};
e.prototype.Mute = function (t) {
this.mute_ = t;
this.param_changed_ = true;
};
e.prototype.SetMS = function (t) {
this.ms_ = t;
this.param_changed_ = true;
};
e.Mprototype.Out = function () {
return this.out_;
};
e.notetable = [
0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4,
4, 5, 6, 7, 7, 7, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 8, 9, 10, 11, 11,
11, 11, 11, 11, 11, 12, 12, 12, 12, 12, 12, 12, 13, 14, 15, 15,
15, 15, 15, 15, 15, 16, 16, 16, 16, 16, 16, 16, 17, 18, 19, 19,
19, 19, 19, 19, 19, 20, 20, 20, 20, 20, 20, 20, 21, 22, 23, 23,
23, 23,M 23, 23, 23, 24, 24, 24, 24, 24, 24, 24, 25, 26, 27, 27,
27, 27, 27, 27, 27, 28, 28, 28, 28, 28, 28, 28, 29, 30, 31, 31,
31, 31, 31, 31, 31,
];
e.dttable = [
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2,
4, 4, 4, 4, 4, 6, 6, 6, 8, 8, 8, 10, 10, 12, 12, 14, 16, 16, 16,
16, 2, 2, 2, 2, 4, 4, 4, 4, 4, 6, 6, 6, 8, 8, 8, 10, 10, M12, 12,
14, 16, 16, 18, 20, 22, 24, 26, 28, 32, 32, 32, 32, 4, 4, 4, 4, 4,
6, 6, 6, 8, 8, 8, 10, 10, 12, 12, 14, 16, 16, 18, 20, 22, 24, 26,
28, 32, 34, 38, 40, 44, 44, 44, 44, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, -2, -2, -2, -2, -2, -2, -2, -2, -4, -4, -4, -4, -4,
-6, -6, -6, -8, -8, -8, -10, -10, -12, -12, -14, -16, -16, -16,
-16, -2, -2, -2, -2, M-4, -4, -4, -4, -4, -6, -6, -6, -8, -8, -8,
-10, -10, -12, -12, -14, -16, -16, -18, -20, -22, -24, -26, -28,
-32, -32, -32, -32, -4, -4, -4, -4, -4, -6, -6, -6, -8, -8, -8,
-10, -10, -12, -12, -14, -16, -16, -18, -20, -22, -24, -26, -28,
-32, -34, -38, -40, -44, -44, -44, -44,
];
e.decaytable1 = [
[0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0],
[1, 1, 1, 1, 1, 1, 1, 1],
[1, 1, M1, 1, 1, 1, 1, 1],
[1, 1, 1, 1, 1, 1, 1, 1],
[1, 1, 1, 1, 1, 1, 1, 1],
[1, 1, 1, 0, 1, 1, 1, 0],
[1, 1, 1, 0, 1, 1, 1, 0],
[1, 0, 1, 0, 1, 0, 1, 0],
[1, 1, 1, 0, 1, 0, 1, 0],
[1, 1, 1, 0, 1, 1, 1, 0],
[1, 1, 1, 1, 1, 1, 1, 0],
[1, 0, 1, 0, 1, 0, 1, 0],
[1, 1, 1, 0, 1, 0, 1, 0],
[1, 1, 1, 0, 1, 1, 1, 0],
[1, 1, 1, 1, 1, 1, 1, 0],
[1, 0, M1, 0, 1, 0, 1, 0],
[1, 1, 1, 0, 1, 0, 1, 0],
[1, 1, 1, 0, 1, 1, 1, 0],
[1, 1, 1, 1, 1, 1, 1, 0],
[1, 0, 1, 0, 1, 0, 1, 0],
[1, 1, 1, 0, 1, 0, 1, 0],
[1, 1, 1, 0, 1, 1, 1, 0],
[1, 1, 1, 1, 1, 1, 1, 0],
[1, 0, 1, 0, 1, 0, 1, 0],
[1, 1, 1, 0, 1, 0, 1, 0],
[1, 1, 1, 0, 1, 1, 1, 0],
[1, 1, 1, 1, 1, 1, 1, 0],
[1, 0, 1, 0, 1, 0, 1, 0],
[1, 1, M1, 0, 1, 0, 1, 0],
[1, 1, 1, 0, 1, 1, 1, 0],
[1, 1, 1, 1, 1, 1, 1, 0],
[1, 0, 1, 0, 1, 0, 1, 0],
[1, 1, 1, 0, 1, 0, 1, 0],
[1, 1, 1, 0, 1, 1, 1, 0],
[1, 1, 1, 1, 1, 1, 1, 0],
[1, 0, 1, 0, 1, 0, 1, 0],
[1, 1, 1, 0, 1, 0, 1, 0],
[1, 1, 1, 0, 1, 1, 1, 0],
[1, 1, 1, 1, 1, 1, 1, 0],
[1, 0, 1, 0, 1, 0, 1, 0],
[1, 1, 1, 0, 1, 0, 1, 0],
[1, 1, M1, 0, 1, 1, 1, 0],
[1, 1, 1, 1, 1, 1, 1, 0],
[1, 0, 1, 0, 1, 0, 1, 0],
[1, 1, 1, 0, 1, 0, 1, 0],
[1, 1, 1, 0, 1, 1, 1, 0],
[1, 1, 1, 1, 1, 1, 1, 0],
[1, 1, 1, 1, 1, 1, 1, 1],
[2, 1, 1, 1, 2, 1, 1, 1],
[2, 1, 2, 1, 2, 1, 2, 1],
[2, 2, 2, 1, 2, 2, 2, 1],
[2, 2, 2, 2, 2, 2, 2, 2],
[4, 2, 2, 2, 4, 2, 2, 2],
[4, 2, 4, 2, 4, 2, 4, 2],
[4, 4, M4, 2, 4, 4, 4, 2],
[4, 4, 4, 4, 4, 4, 4, 4],
[8, 4, 4, 4, 8, 4, 4, 4],
[8, 4, 8, 4, 8, 4, 8, 4],
[8, 8, 8, 4, 8, 8, 8, 4],
[16, 16, 16, 16, 16, 16, 16, 16],
[16, 16, 16, 16, 16, 16, 16, 16],
[16, 16, 16, 16, 16, 16, 16, 16],
[16, 16, 16, 16, 16, 16, 16, 16],
];
e.decaytable2 = [
1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2047, 2047, 2047,
2047, 2047,
M ];
e.attacktable = [
[-1, -1, -1, -1, -1, -1, -1, -1],
[-1, -1, -1, -1, -1, -1, -1, -1],
[4, 4, 4, 4, 4, 4, 4, 4],
[4, 4, 4, 4, 4, 4, 4, 4],
[4, 4, 4, 4, 4, 4, 4, 4],
[4, 4, 4, 4, 4, 4, 4, 4],
[4, 4, 4, -1, 4, 4, 4, -1],
[4, 4, 4, -1, 4, 4, 4, -1],
[4, -1, 4, -1, 4, -1, 4, -1],
[4, 4, 4, -1, 4, -1, 4, -1],
[4, 4, 4, -1, 4, 4, 4, -1],
M [4, 4, 4, 4, 4, 4, 4, -1],
[4, -1, 4, -1, 4, -1, 4, -1],
[4, 4, 4, -1, 4, -1, 4, -1],
[4, 4, 4, -1, 4, 4, 4, -1],
[4, 4, 4, 4, 4, 4, 4, -1],
[4, -1, 4, -1, 4, -1, 4, -1],
[4, 4, 4, -1, 4, -1, 4, -1],
[4, 4, 4, -1, 4, 4, 4, -1],
[4, 4, 4, 4, 4, 4, 4, -1],
[4, -1, 4, -1, 4, -1, 4, -1],
[4, 4, 4, -1, 4, -1, 4, -1],
[4, 4, 4, -1, 4, 4, 4, -1],
[4,M 4, 4, 4, 4, 4, 4, -1],
[4, -1, 4, -1, 4, -1, 4, -1],
[4, 4, 4, -1, 4, -1, 4, -1],
[4, 4, 4, -1, 4, 4, 4, -1],
[4, 4, 4, 4, 4, 4, 4, -1],
[4, -1, 4, -1, 4, -1, 4, -1],
[4, 4, 4, -1, 4, -1, 4, -1],
[4, 4, 4, -1, 4, 4, 4, -1],
[4, 4, 4, 4, 4, 4, 4, -1],
[4, -1, 4, -1, 4, -1, 4, -1],
[4, 4, 4, -1, 4, -1, 4, -1],
[4, 4, 4, -1, 4, 4, 4, -1],
[4, 4, 4, 4, M4, 4, 4, -1],
[4, -1, 4, -1, 4, -1, 4, -1],
[4, 4, 4, -1, 4, -1, 4, -1],
[4, 4, 4, -1, 4, 4, 4, -1],
[4, 4, 4, 4, 4, 4, 4, -1],
[4, -1, 4, -1, 4, -1, 4, -1],
[4, 4, 4, -1, 4, -1, 4, -1],
[4, 4, 4, -1, 4, 4, 4, -1],
[4, 4, 4, 4, 4, 4, 4, -1],
[4, -1, 4, -1, 4, -1, 4, -1],
[4, 4, 4, -1, 4, -1, 4, -1],
[4, 4, 4, -1, 4, 4, 4, -1],
[4, 4, 4, 4, 4, 4, 4, -M1],
[4, 4, 4, 4, 4, 4, 4, 4],
[3, 4, 4, 4, 3, 4, 4, 4],
[3, 4, 3, 4, 3, 4, 3, 4],
[3, 3, 3, 4, 3, 3, 3, 4],
[3, 3, 3, 3, 3, 3, 3, 3],
[2, 3, 3, 3, 2, 3, 3, 3],
[2, 3, 2, 3, 2, 3, 2, 3],
[2, 2, 2, 3, 2, 2, 2, 3],
[2, 2, 2, 2, 2, 2, 2, 2],
[1, 2, 2, 2, 1, 2, 2, 2],
[1, 2, 1, 2, 1, 2, 1, 2],
[1, 1, 1, 2, 1, 1, 1, 2],
[0, 0, 0, 0, 0, 0, 0, M0],
[0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0],
];
e.tablehasmade = false;
e.sinetable = new Array(1024);
e.cltable = new Array(t.FM_CLENTS);
e.EGPhase = {
next: 0,
attack: 1,
decay: 2,
sustain: 3,
release: 4,
off: 5,
};
return e;
})();
t.Operator = e;
M var n = (function () {
function n() {
this.op = [new e(), new e(), new e(), new e()];
this.tablehasmade = false;
this.fb = 0;
this.buf = new Array(4);
this.inop = new Array(3);
this.outop = new Array(3);
this.algo_ = 0;
this.chip_ = null;
if (!this.tablehasmade) {
this.MakeTable();
}
this.SetAlgorithm(0);
this.pms =M t.pmtable[0][0];
}
n.prototype.MakeTable = function () {
for (var t = 0; t < 64; t++) {
n.kftable[t] = (65536 * Math.pow(2, t / 768)) | 0;
}
};
n.prototype.SetChip = function (t) {
this.chip_ = t;
for (var e = 0; e < 4; e++) {
this.op[e].SetChip(t);
}
};
n.prototype.Reset = function () {
for (var t = 0; t < 4; t++) {
M this.op[t].Reset();
}
};
n.prototype.Prepare = function () {
for (var e = 0; e < 4; e++) {
this.op[e].Prepare();
}
this.pms = t.pmtable[this.op[0].type_][7 & this.op[0].ms_];
return (
(this.op[0].IsOn() |
this.op[1].IsOn() |
this.op[2].IsOn() |
this.op[3].IsOn()
? 1
: 0) |
(this.op[0].ms_ M&
(this.op[0].amon_ ||
this.op[1].amon_ ||
this.op[2].amon_ ||
this.op[3].amon_
? 55
: 7)
? 2
: 0)
);
};
n.prototype.SetFNum = function (t) {
for (var e = 0; e < 4; e++) {
this.op[e].SetFNum(t);
}
};
n.prototype.SetKCKF = function (t, e) {
var r = 19 - ((t >> 4) &M 7);
var c = [
5197, 5506, 5833, 6180, 6180, 6547, 6937, 7349, 7349, 7786,
8249, 8740, 8740, 9259, 9810, 10394,
][15 & t];
var i = (c = ((c + 2) / 4) * 4) * n.kftable[63 & e];
i >>= 19;
i <<= 19;
i >>= r;
var a = (t >> 2) & 31;
this.op[0].SetDPBN(i, a);
this.op[1].SetDPBN(i, a);
this.op[2].SetDPBN(i, a);
this.op[3].SetDPBN(i, a);
M };
n.prototype.KeyControl = function (t) {
if (1 & t) {
this.op[0].KeyOn();
} else {
this.op[0].KeyOff();
}
if (2 & t) {
this.op[1].KeyOn();
} else {
this.op[1].KeyOff();
}
if (4 & t) {
this.op[2].KeyOn();
} else {
this.op[2].KeyOff();
}
if (8 & t) {
M this.op[3].KeyOn();
} else {
this.op[3].KeyOff();
}
};
n.prototype.SetAlgorithm = function (t) {
var e = [
[0, 1, 1, 2, 2, 3],
[1, 0, 0, 1, 1, 2],
[1, 1, 1, 0, 0, 2],
[0, 1, 2, 1, 1, 2],
[0, 1, 2, 2, 2, 1],
[0, 1, 0, 1, 0, 1],
[0, 1, 2, 1, 2, 1],
[1, 0, 1, 0, 1, 0],
];
this.inMop[0] = e[t][0];
this.outop[0] = e[t][1];
this.inop[1] = e[t][2];
this.outop[1] = e[t][3];
this.inop[2] = e[t][4];
this.outop[2] = e[t][5];
this.op[0].ResetFB();
this.algo_ = t;
};
n.prototype.Calc = function () {
var t;
switch (this.algo_) {
case 0:
this.op[2].Calc(this.op[1].Out());
this.op[1].Calc(this.op[0].Out()M);
t = this.op[3].Calc(this.op[2].Out());
this.op[0].CalcFB(this.fb);
break;
case 1:
this.op[2].Calc(this.op[0].Out() + this.op[1].Out());
this.op[1].Calc(0);
t = this.op[3].Calc(this.op[2].Out());
this.op[0].CalcFB(this.fb);
break;
case 2:
this.op[2].Calc(this.op[1].Out());
this.op[1].Calc(0);
M t = this.op[3].Calc(this.op[0].Out() + this.op[2].Out());
this.op[0].CalcFB(this.fb);
break;
case 3:
this.op[2].Calc(0);
this.op[1].Calc(this.op[0].Out());
t = this.op[3].Calc(this.op[1].Out() + this.op[2].Out());
this.op[0].CalcFB(this.fb);
break;
case 4:
this.op[2].Calc(0);
t = this.op[1].Calc(this.op[0].Out());
M t += this.op[3].Calc(this.op[2].Out());
this.op[0].CalcFB(this.fb);
break;
case 5:
t = this.op[2].Calc(this.op[0].Out());
t += this.op[1].Calc(this.op[0].Out());
t += this.op[3].Calc(this.op[0].Out());
this.op[0].CalcFB(this.fb);
break;
case 6:
t = this.op[2].Calc(0);
t += this.op[1].Calc(this.op[0].Out());
M t += this.op[3].Calc(0);
this.op[0].CalcFB(this.fb);
break;
case 7:
t = this.op[2].Calc(0);
t += this.op[1].Calc(0);
t += this.op[3].Calc(0);
t += this.op[0].CalcFB(this.fb);
}
return t;
};
n.prototype.CalcL = function () {
var t;
switch (
(this.chip_.SetPMV(this.pms[this.chip_.GetPMLM()]), this.algo_)
) {
case 0:
this.op[2].CalcL(this.op[1].Out());
this.op[1].CalcL(this.op[0].Out());
t = this.op[3].CalcL(this.op[2].Out());
this.op[0].CalcFBL(this.fb);
break;
case 1:
this.op[2].CalcL(this.op[0].Out() + this.op[1].Out());
this.op[1].CalcL(0);
t = this.op[3].CalcL(this.op[2].Out());
this.op[0]M.CalcFBL(this.fb);
break;
case 2:
this.op[2].CalcL(this.op[1].Out());
this.op[1].CalcL(0);
t = this.op[3].CalcL(this.op[0].Out() + this.op[2].Out());
this.op[0].CalcFBL(this.fb);
break;
case 3:
this.op[2].CalcL(0);
this.op[1].CalcL(this.op[0].Out());
t = this.op[3].CalcL(this.op[1].Out() + this.op[2].Out());
M this.op[0].CalcFBL(this.fb);
break;
case 4:
this.op[2].CalcL(0);
t = this.op[1].CalcL(this.op[0].Out());
t += this.op[3].CalcL(this.op[2].Out());
this.op[0].CalcFBL(this.fb);
break;
case 5:
t = this.op[2].CalcL(this.op[0].Out());
t += this.op[1].CalcL(this.op[0].Out());
t += this.op[3].CalcL(this.op[0].Out());
M this.op[0].CalcFBL(this.fb);
break;
case 6:
t = this.op[2].CalcL(0);
t += this.op[1].CalcL(this.op[0].Out());
t += this.op[3].CalcL(0);
this.op[0].CalcFBL(this.fb);
break;
case 7:
t = this.op[2].CalcL(0);
t += this.op[1].CalcL(0);
t += this.op[3].CalcL(0);
t += this.op[0].CalcFBL(this.fb);
M }
return t;
};
n.prototype.CalcN = function (t) {
this.buf[1] = this.buf[2] = this.buf[3] = 0;
this.buf[0] = this.op[0].out_;
this.op[0].CalcFB(this.fb);
this.buf[this.outop[0]] += this.op[1].Calc(
this.buf[this.inop[0]]
);
this.buf[this.outop[1]] += this.op[2].Calc(
this.buf[this.inop[1]]
);
var e = this.op[3].out_;
thMis.op[3].CalcN(t);
return this.buf[this.outop[2]] + e;
};
n.prototype.CalcLN = function (t) {
this.chip_.SetPMV(this.pms[this.chip_.GetPML()]);
this.buf[1] = this.buf[2] = this.buf[3] = 0;
this.buf[0] = this.op[0].out_;
this.op[0].CalcFBL(this.fb);
this.buf[this.outop[0]] += this.op[1].CalcL(
this.buf[this.inop[0]]
);
this.buf[this.outop[1]] += this.op[2].CalcL(
M this.buf[this.inop[1]]
);
var e = this.op[3].out_;
this.op[3].CalcN(t);
return this.buf[this.outop[2]] + e;
};
n.prototype.SetType = function (t) {
for (var e = 0; e < 4; e++) {
this.op[e].type_ = t;
}
};
n.prototype.SetFB = function (t) {
this.fb = n.fbtable[t];
};
n.prototype.SetMS = function (t) {
for (Mvar e = 0; e < 4; e++) {
this.op[e].SetMS(t);
}
};
n.prototype.Mute = function (t) {
for (var e = 0; e < 4; e++) {
this.op[e].Mute(t);
}
};
n.fbtable = [31, 7, 6, 5, 4, 3, 2, 1];
n.kftable = new Array(64);
return n;
})();
t.Channel4 = n;
var r = (function () {
function e() {
this.ratio_ = 0;
this.aml_ =M 0;
this.pml_ = 0;
this.pmv_ = 0;
}
e.prototype.SetRatio = function (t) {
t = Math.round(t);
if (this.ratio_ !== t) {
this.ratio_ = t;
this.MakeTable();
}
};
e.prototype.SetAML = function (e) {
this.aml_ = e & (t.FM_LFOENTS - 1);
};
e.prototype.SetPML = function (e) {
this.pml_ = e & (t.FM_LFOENTS - 1);
}M;
e.prototype.SetPMV = function (t) {
this.pmv_ = t;
};
e.prototype.GetMulValue = function (t, e) {
return this.multable_[t][e];
};
e.prototype.GetAML = function () {
return this.aml_;
};
e.prototype.GetPML = function () {
return this.pml_;
};
e.prototype.GetPMV = function () {
return this.pmv_;
};
e.prototype.GetRatMio = function () {
return this.ratio_;
};
e.prototype.MakeTable = function () {
var n;
var r = [1, 1.414, 1.581, 1.732];
this.multable_ = new Array(4);
for (var e = 0; e < 4; e++) {
var c =
(r[e] * this.ratio_) /
(1 << (2 + t.FM_RATIOBITS - t.FM_PGBITS));
this.multable_[e] = new Array(16);
for (n = 0; n < 16; n++) {
var i M= n ? 2 * n : 1;
this.multable_[e][n] = (i * c) | 0;
}
}
};
return e;
})();
t.Chip = r;
t.MakeLFOTable = function () {
if (!t.tablemade) {
var e;
t.tablemade = true;
var n = [
[
0,
1 / 360,
2 / 360,
3 / 360,
4 / 360,
6 / 360,
M 12 / 360,
24 / 360,
],
[
0,
1 / 480,
2 / 480,
4 / 480,
10 / 480,
20 / 480,
80 / 480,
140 / 480,
],
];
var r = [
[31, 6, 4, 3],
[31, 2, 1, 0],
];
t.pmtable = new Array(2);
t.amtable = new Array(2);
M for (var c = 0; c < 2; c++) {
t.pmtable[c] = new Array(8);
for (e = 0; e < 8; e++) {
var i = n[c][e];
t.pmtable[c][e] = new Array(t.FM_LFOENTS);
for (var a = 0; a < t.FM_LFOENTS; a++) {
Math.pow(
2,
(i * (2 * a - t.FM_LFOENTS + 1)) / (t.FM_LFOENTS - 1)
);
var o =
0.6 * i * Math.sin((2 * a * Math.PI) M/ t.FM_LFOENTS) + 1;
t.pmtable[c][e][a] = (65536 * (o - 1)) | 0;
}
}
t.amtable[c] = new Array(4);
for (e = 0; e < 4; e++) {
t.amtable[c][e] = new Array(t.FM_LFOENTS);
for (a = 0; a < t.FM_LFOENTS; a++) {
t.amtable[c][e][a] = (2 * ((4 * a) >> r[c][e])) << 2;
}
}
}
}
};
})();
(function () {
M var t = nt || (nt = {});
var e = (function () {
function t() {
this.OPM_LFOENTS = 512;
this.regtc = 0;
this.regta = new Array(2);
this.timera = 0;
this.timera_count = 0;
this.timerb = 0;
this.timerb_count = 0;
this.timer_step = 0;
}
t.prototype.Reset = function () {
this.timera_count = 0;
this.timerb_count = 0;
}M;
t.prototype.SetTimerControl = function (t) {
var e = this.regtc ^ t;
this.regtc = t;
if (16 & t) {
this.ResetStatus(1);
}
if (32 & t) {
this.ResetStatus(2);
}
if (1 & e) {
this.timera_count = 1 & t ? this.timera : 0;
}
if (2 & e) {
this.timerb_count = 2 & t ? this.timerb : 0;
}
};
M t.prototype.SetTimerA = function (t, e) {
this.regta[1 & t] = e;
var n = (this.regta[0] << 2) + (3 & this.regta[1]);
this.timera = (1024 - n) * this.timer_step;
};
t.prototype.SetTimerB = function (t) {
this.timerb = (256 - t) * this.timer_step;
};
t.prototype.Count = function (t) {
var e = false;
if (this.timera_count) {
this.timera_count -= t << 16;
M if (this.timera_count <= 0) {
e = true;
for (this.TimerA(); this.timera_count <= 0; ) {
this.timera_count += this.timera;
}
if (4 & this.regtc) {
this.SetStatus(1);
}
}
}
if (this.timerb_count) {
this.timerb_count -= t << 12;
if (this.timerb_count <= 0) {
for (e = true; this.timerb_count <= 0;M ) {
this.timerb_count += this.timerb;
}
if (8 & this.regtc) {
this.SetStatus(2);
}
}
}
return e;
};
t.prototype.GetNextEvent = function () {
var t = ((this.timera_count + 65535) >> 16) - 1;
var e = ((this.timerb_count + 4095) >> 12) - 1;
return (t < e ? t : e) + 1;
};
t.prototype.SetTimerBaMse = function (t) {
this.timer_step = (65536e6 / t) | 0;
};
t.prototype.SetStatus = function (t) {};
t.prototype.ResetStatus = function (t) {};
t.prototype.TimerA = function () {};
return t;
})();
t.Timer = e;
})();
(function () {
var t = nt || (nt = {});
var e = (function () {
function n() {
e.call(this);
this.fmvolume = 0;
this.clocMk = 0;
this.rate = 0;
this.pcmrate = 0;
this.pmd = 0;
this.amd = 0;
this.lfocount = 0;
this.lfodcount = 0;
this.lfo_count_ = 0;
this.lfo_count_diff_ = 0;
this.lfo_step_ = 0;
this.lfo_count_prev_ = 0;
this.lfowaveform = 0;
this.rateratio = 0;
this.noise = 0;
this.noisecount = 0;
this.noisedelta = 0;
M this.interpolation = false;
this.lfofreq = 0;
this.status = 0;
this.reg01 = 0;
this.kc = new Array(8);
this.kf = new Array(8);
this.pan = new Array(8);
this.ch = [
new t.Channel4(),
new t.Channel4(),
new t.Channel4(),
new t.Channel4(),
new t.Channel4(),
new t.Channel4(),
new t.Channel4(),
Mnew t.Channel4(),
];
this.chip = new t.Chip();
this.lfo_count_ = 0;
this.lfo_count_prev_ = -1;
this.BuildLFOTable();
for (var n = 0; n < 8; n++) {
this.ch[n].SetChip(this.chip);
this.ch[n].SetType(1);
}
}
var e = t.Timer;
(function (t, e) {
function r() {
this.constructor = t;
}
for (var n in e)M {
if (e.hasOwnProperty(n)) {
t[n] = e[n];
}
}
r.prototype = e.prototype;
t.prototype = new r();
})(n, e);
n.prototype.Init = function (t, e) {
if (!this.SetRate(t, e)) {
return false;
}
this.Reset();
this.SetVolume(0);
this.SetChannelMask(0);
return true;
};
n.prototype.SetRate M= function (t, e) {
this.clock = t;
this.pcmrate = e;
this.rate = e;
this.RebuildTimeTable();
return true;
};
n.prototype.SetChannelMask = function (t) {
for (var e = 0; e < 8; e++) {
this.ch[e].Mute(!!(t & (1 << e)));
}
};
n.prototype.Reset = function () {
for (var t = 0; t < 256; t++) {
this.SetReg(t, 0);
}
M this.SetReg(25, 128);
e.prototype.Reset.call(this);
this.status = 0;
this.noise = 12345;
this.noisecount = 0;
for (t = 0; t < 8; t++) {
this.ch[t].Reset();
}
};
n.prototype.RebuildTimeTable = function () {
var e = this.clock / 64;
this.rateratio =
((e << t.FM_RATIOBITS) + this.rate / 2) / this.rate;
this.SetTimerBase(e);
M this.chip.SetRatio(this.rateratio);
};
n.prototype.SetVolume = function (t) {
t = Math.min(t, 20);
this.fmvolume = t > -192 ? (16384 * Math.pow(10, t / 40)) | 0 : 0;
};
n.prototype.SetStatus = function (t) {
if (!(this.status & t)) {
this.status |= t;
this.Intr(true);
}
};
n.prototype.GetStatus = function (t) {
return this.status;
M };
n.prototype.ResetStatus = function (t) {
if (this.status & t) {
this.status &= ~t;
if (!this.status) {
this.Intr(false);
}
}
};
n.prototype.SetReg = function (e, n) {
if (!(e >= 256)) {
var r = 7 & e;
switch (255 & e) {
case 1:
if (2 & n) {
this.lfo_count_ = 0;
M this.lfo_count_prev_ = -1;
}
this.reg01 = n;
break;
case 8:
if (128 & this.regtc) {
r = 7 & n;
if (!(8 & n)) {
this.ch[r].op[0].KeyOff();
}
if (!(16 & n)) {
this.ch[r].op[1].KeyOff();
}
if (!(32 & n)) {
thiMs.ch[r].op[2].KeyOff();
}
if (!(64 & n)) {
this.ch[r].op[3].KeyOff();
}
} else {
this.ch[7 & n].KeyControl(n >> 3);
}
break;
case 16:
case 17:
this.SetTimerA(e, n);
break;
case 18:
this.SetTimerB(n);
break;
M case 20:
this.SetTimerControl(n);
break;
case 24:
this.lfofreq = n;
this.lfo_count_diff_ =
(this.rateratio *
((16 + (15 & this.lfofreq)) << (12 - t.FM_RATIOBITS))) /
(1 << (15 - (this.lfofreq >> 4)));
break;
case 25:
if ((128 & n) == 0) {
this.amd = 127 & n;
M } else {
this.pmd = 127 & n;
}
break;
case 27:
this.lfowaveform = 3 & n;
break;
case 32:
case 33:
case 34:
case 35:
case 36:
case 37:
case 38:
case 39:
this.ch[r].SetFB((n >> 3) & 7);
this.ch[r].SetAlMgorithm(7 & n);
this.pan[r] = (n >> 6) & 3;
break;
case 40:
case 41:
case 42:
case 43:
case 44:
case 45:
case 46:
case 47:
this.kc[r] = n;
this.ch[r].SetKCKF(this.kc[r], this.kf[r]);
break;
case 48:
case 49:
case 50:
M case 51:
case 52:
case 53:
case 54:
case 55:
this.kf[r] = n >> 2;
this.ch[r].SetKCKF(this.kc[r], this.kf[r]);
break;
case 56:
case 57:
case 58:
case 59:
case 60:
case 61:
case 62:
case 63:
this.ch[r].SetMS((n <<M 4) | (n >> 4));
break;
case 15:
this.noisedelta = n;
this.noisecount = 0;
break;
default:
if (e >= 64) {
this.SetParameter(e, n);
}
}
}
};
n.prototype.SetParameter = function (t, e) {
var n = [0, 2, 1, 3][(t >> 3) & 3];
var r = this.ch[7 & t].op[n];
M switch ((t >> 5) & 7) {
case 2:
r.SetDT((e >> 4) & 7);
r.SetMULTI(15 & e);
break;
case 3:
r.SetTL(127 & e);
break;
case 4:
r.SetKS((e >> 6) & 3);
r.SetAR(2 * (31 & e));
break;
case 5:
r.SetDR(2 * (31 & e));
r.SetAMON((128 & e) != 0);
break;
M case 6:
r.SetSR(2 * (31 & e));
r.SetDT2((e >> 6) & 3);
break;
case 7:
r.SetSL(
[
0, 4, 8, 12, 16, 20, 24, 28, 32, 36, 40, 44, 48, 52, 56,
124,
][(e >> 4) & 15]
);
r.SetRR(4 * (15 & e) + 2);
}
};
n.prototype.BuildLFOTable = function () {
this.amtable = new MArray(4);
this.pmtable = new Array(4);
for (var t = 0; t < 4; t++) {
var e = 0;
this.amtable[t] = new Array(this.OPM_LFOENTS);
this.pmtable[t] = new Array(this.OPM_LFOENTS);
for (var n = 0; n < this.OPM_LFOENTS; n++) {
var r;
var c;
switch (t) {
case 0:
c = ((n + 256) & 511) / 2 - 128;
r = 255 - n / 2;
M break;
case 1:
r = n < 256 ? 255 : 0;
c = n < 256 ? 127 : -128;
break;
case 2:
c = (c = (n + 128) & 511) < 256 ? c - 128 : 383 - c;
r = n < 256 ? 255 - n : n - 256;
break;
case 3:
if (!(3 & n)) {
e = (((32768 * Math.random()) | 0) / 17) & 255;
M}
r = e;
c = e - 128;
}
this.amtable[t][n] = 0 | r;
this.pmtable[t][n] = (-c - 1) | 0;
}
}
};
n.prototype.LFO = function () {
var t;
if (this.lfowaveform === 3) {
if (-131072 & (this.lfo_count_ ^ this.lfo_count_prev_)) {
t = (((32768 * Math.random()) | 0) / 17) & 255;
this.chip.SetPML(((Mt - 128) * this.pmd) / 128 + 128);
this.chip.SetAML((t * this.amd) / 128);
}
} else {
t = (this.lfo_count_ >> 15) & 510;
this.chip.SetPML(
(this.pmtable[this.lfowaveform][t] * this.pmd) / 128 + 128
);
this.chip.SetAML(
(this.amtable[this.lfowaveform][t] * this.amd) / 128
);
}
this.lfo_count_prev_ = this.lfo_count_;
M this.lfo_step_++;
if ((7 & this.lfo_step_) == 0) {
this.lfo_count_ += this.lfo_count_diff_;
}
};
n.prototype.Noise = function () {
this.noisecount += 2 * this.rateratio;
if (this.noisecount >= 32 << t.FM_RATIOBITS) {
var e = 32 - (31 & this.noisedelta);
if (e === 1) {
e = 2;
}
this.noisecount = this.noisecount - (e << t.FM_RATIOBITS);
M if ((31 & this.noisedelta) == 31) {
this.noisecount -= t.FM_RATIOBITS;
}
this.noise = (this.noise >> 1) ^ (1 & this.noise ? 33800 : 0);
}
return this.noise;
};
n.prototype.MixSub = function (t, e) {
if (16384 & t) {
e[this.pan[0]] = this.ch[0].Calc();
}
if (4096 & t) {
e[this.pan[1]] += this.ch[1].Calc();
}
M if (1024 & t) {
e[this.pan[2]] += this.ch[2].Calc();
}
if (256 & t) {
e[this.pan[3]] += this.ch[3].Calc();
}
if (64 & t) {
e[this.pan[4]] += this.ch[4].Calc();
}
if (16 & t) {
e[this.pan[5]] += this.ch[5].Calc();
}
if (4 & t) {
e[this.pan[6]] += this.ch[6].Calc();
}
if (1 & t) {
M if (128 & this.noisedelta) {
e[this.pan[7]] += this.ch[7].CalcN(this.Noise());
} else {
e[this.pan[7]] += this.ch[7].Calc();
}
}
};
n.prototype.MixSubL = function (t, e) {
if (16384 & t) {
e[this.pan[0]] = this.ch[0].CalcL();
}
if (4096 & t) {
e[this.pan[1]] += this.ch[1].CalcL();
}
if (1024 & t) {
M e[this.pan[2]] += this.ch[2].CalcL();
}
if (256 & t) {
e[this.pan[3]] += this.ch[3].CalcL();
}
if (64 & t) {
e[this.pan[4]] += this.ch[4].CalcL();
}
if (16 & t) {
e[this.pan[5]] += this.ch[5].CalcL();
}
if (4 & t) {
e[this.pan[6]] += this.ch[6].CalcL();
}
if (1 & t) {
if (128 & this.noisedeltMa) {
e[this.pan[7]] += this.ch[7].CalcLN(this.Noise());
} else {
e[this.pan[7]] += this.ch[7].CalcL();
}
}
};
var r = new Array(4);
n.prototype.mixStereo = function (t, e, n) {
var c = 0;
for (var i = (this.attenuation, 0); i < 8; i++) {
c = (c << 2) | this.ch[i].Prepare();
}
if (2 & this.reg01) {
c &= 21845;
M }
var a = 0 | n;
for (i = 0; i < e; i++) {
r[1] = r[2] = r[3] = 0;
this.LFO();
if (43690 & c) {
this.MixSubL(c, r);
} else {
this.MixSub(c, r);
}
t[a++] = ((r[1] + r[3] + r[2] + r[3]) / 256) * 0.33;
}
};
n.prototype.Intr = function (t) {};
return n;
})();
t.OPM = e;
})()M;
var ct = new nt.OPM();
var it = ct.Init(3579545, 48e3);
console.log('YM Init: ' + it);
let at = new Array(256);
var st = V;
var ft = X;
var ut = new Array(131072);
var dt = false;
var lt = false;
var ht = false;
var At = false;
var pt = false;
var bt = false;
var gt = false;
var yt = false;
var wt = 0;
var mt = 0;
var Mt = 0;
var vt = 0;
var Lt = 0;
M var It = 0;
var Et = 0;
var St = 2;
var xt = -1;
var kt = {};
var Bt = null;
jt.prototype = {
getTopic: function () {
return this.topic;
},
onEvent: function (t) {},
};
var Ft = null;
var Gt = null;
var zt = false;
var Wt = 662;
var Ut = 0;
var Zt = 0;
var Qt = 0;
var Ht = 0;
var Yt = 0;
var Vt = 0;
var Jt = 0;
Rt(
M new jt('init', function () {
Ft = Ne;
Gt = Ye;
})
);
var te = new Array(2048);
var ee = [1, 1, 0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0];
var ne = [
0, 0, 1, 0, 1, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 0, 1, 1, 1, 0,
1, 0, 1, 0, 0, 0, 0, 1,
];
var re = [
0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 0,
1, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 1, 0, 1, 1, 1,
M 0, 1, 1, 0, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1,
0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 1, 1, 0, 1, 0, 1, 0, 0, 0,
0, 1, 1, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 1, 1, 0, 0, 1, 1,
0, 1, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 1, 0, 0,
0, 1, 1, 0, 0, 1, 1, 1, 1, 0, 0, 1, 0, 0, 0, 1, 1, 1, 0, 0, 1, 1, 0,
1, 0, 1, 1, 0, 1, 1, 0, 1, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1,
1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1M, 0, 0, 0, 1, 0, 0, 0, 0, 1,
0, 0, 0, 1, 0, 1, 0, 1, 1, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 0, 1, 0, 0,
0, 1, 1, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 1, 1, 0, 0, 1, 1,
0, 0, 1, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0,
1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 1,
1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 0, 1, 0, 1, 1, 1, 1, 0,
0, 1, 0M, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 1, 0,
1, 0, 1, 0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0,
0, 0, 1, 0, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 0,
0, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 1, 1, 0,
1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 1, 0, 0, 1, 0, 1, 1, 1, 1, 1, 1,
1, 0, 1, 0, 0, 1, 0, 0, 0, 1, 1, 0, 1, 1, 1, 0, 0, 0, 1, 0, 1, 0, 0,
1, 0, 1, 0, 1, 0, 1, 1, 1, 0, 0, 1, 0, 1, 1, 0, 0, 1,M 1, 1, 1, 1, 0,
0, 0, 1, 1, 0,
];
var ce = [
1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
];
var ie = [0, 0];
var ae = [0, 0];
var oe = [0, 0];
var se = [0, 0];
var fe = [0, 0];
var ue = [0, 0];
var de = [0, 0];
var le = [0, 0];
var he = [0, 0];
var Ae = 0;
var ge = X;
var ye = V;
var we = function (t, e) {
M var n = 0;
var r = 0;
switch (t) {
case 21:
se[0] = 15 & e;
n = 0;
break;
case 22:
se[1] = 15 & e;
n = 1;
break;
case 23:
fe[0] = 31 & e;
n = 0;
break;
case 24:
fe[1] = 31 & e;
n = 1;
break;
case 25:
ue[0] = (15 & e) << 2;
n = 0;
M break;
case 26:
ue[1] = (15 & e) << 2;
n = 1;
break;
default:
return;
}
if (se[n] == 0) {
r = 0;
ie[n] = ue[n];
} else {
r = (fe[n] + 1) & 255;
if (se[n] > 11) {
r = (3 * r) & 255;
}
}
if (r != ae[n]) {
ae[n] = r;
if (oe[n] == 0 || r == 0) {
oe[n] = r;
}
M }
};
var me = qt;
var Me = Xt;
var ve = function (t, e) {
switch (((Wt = t), (Ut = e), t)) {
case 663:
Zt = 1024;
zt = true;
break;
case 660:
Zt = 1;
zt = true;
break;
case 661:
Zt = 8;
zt = true;
break;
case 662:
Zt = 64;
zt = true;
}
if (zt) {
M Jt++;
Vt = Zt * e;
Yt = false;
}
};
var Le = Dt;
var Ie = Nt;
var Ce = _t;
var Ee = function (t) {
if (lt && t >= 1104 && t < 1120) {
var e = st(t - 1104 + 16384);
return e;
}
if (ht && t >= 1120 && t <= 1121) {
e = 1 & t ? ct.GetStatus() : 0;
if (xt != -1 && 1 & t) {
if (xt > 0) {
xt--;
} else if (xt == 0 && St > 0)M {
e = 2;
xt = Et;
if (--St === 0) {
xt = -1;
}
}
}
return e;
}
if (dt && t >= 16384 && t < 32768 && !gt) {
var n = t - 16384;
if (At) {
return m_ram[n];
}
if (pt && n < 8192) {
if (yt) {
return ut[((8191 & n) + 8192 * (15 & Mt)) | ((1 & wt) << 8)];
} else {
M return ut[((8191 & n) + 8192 * (15 & mt)) | ((1 & wt) << 8)];
}
}
if (bt && n >= 8192 && n < 16384) {
if (yt) {
return ut[
((8191 & n) + 8192 * ((Mt >> 4) & 15)) | ((2 & wt) << 7)
];
} else {
return ut[
((8191 & n) + 8192 * ((mt >> 4) & 15)) | ((2 & wt) << 7)
];
}
}
}
return 0;
};
var Se = Mfunction (t, e) {
if (lt && t >= 1104 && t < 1120) {
ft(t - 1104 + 16384, e);
} else if (ht && t >= 1120 && t <= 1121) {
if (1 & t) {
ot(It, e);
if (It === 18 && e === 252) {
xt = Et = 129;
}
} else {
It = e;
}
} else if (dt && t >= 16384 && t < 32768) {
var n = t - 16384;
if (At) {
m_ram[n] = e;
} else if (pt && n < 8M192) {
ut[(8191 & n) + 8192 * (15 & mt)] = e;
} else if (bt && n >= 8192 && n < 16384) {
ut[(8191 & n) + 8192 * ((mt >> 4) & 15)] = e;
}
} else if (t >= 1136 && t < 1152) {
if (t == 1136) {
lt = 16 & (wt = e);
pt = 32 & wt;
bt = 64 & wt;
ht = 128 & wt;
} else if (t == 1144) {
mt = e;
} else if (t == 1148) {
Mt = e;
} else ifM (t == 1137) {
vt = e;
} else if (t == 1138) {
At = 1 & (Lt = e);
gt = 2 & Lt;
}
dt = At || pt || bt;
}
};
var xe = false;
var De = null;
var Ne = new Array(65536);
var _e = new Array(65536);
var Te = new Array(65536);
var ke = false;
var Be = false;
var je = false;
var Re = false;
var Pe = false;
var Oe = false;
var Fe = falsMe;
var Ge = 0;
var ze = false;
var We = false;
Rt(
new jt('onCartridgeLoaded', function () {
ke = ar();
Be = or();
je = sr();
Fe = dr();
gr();
Re = fr();
Pe = lr();
Oe = hr();
Ge = Cr();
})
);
Rt(
new jt('onHighScoreCartLoaded', function (t) {
xe = t;
})
);
Rt(
new jt('highScoreCallbacMkChanged', function (t) {
De = t;
})
);
var rn = '0123456789abcdef'.split('');
if (an('hello') != '5d41402abc4b2a76b9719d911017c592') {
function on(t, e) {
var n = (65535 & t) + (65535 & e);
return (((t >> 16) + (e >> 16) + (n >> 16)) << 16) | (65535 & n);
}
}
var sn = null;
var fn = null;
var un = null;
var dn = null;
var ln = null;
var hn = 0;
var An = 1;
M var pn = 2;
var bn = 3;
var gn = 4;
var yn = 7;
var wn = '';
var mn = '';
var Mn = 0;
var vn = 0;
var Ln = false;
var In = false;
var Cn = [1, 1];
var En = 0;
var Sn = 0;
var xn = 0;
var Dn = 0;
var Nn = false;
var _n = false;
var Tn = 28;
var kn = 1;
var Bn = 0;
var jn = false;
var Rn = false;
var Pn = false;
var On = 0;
vaMr Fn = 0;
var Gn = false;
var zn = false;
var Wn = false;
var Un = 2;
var Zn = false;
var Qn = null;
var Hn = 0;
var Yn = false;
Rt(
new jt('init', function (t) {
ln = t.Region.REGION_NTSC;
sn = Ve;
fn = Je;
un = Ye;
})
);
Rt(
new jt('highScoreCallbackChanged', function (t) {
dn = t;
})
);
var nc = function () {
M this._w = 0;
this.wPlusPlus = function () {
var t = this._w;
this.setW(this._w + 1);
return t;
};
this.wMinusMinus = function () {
var t = this._w;
this.setW(this._w - 1);
return t;
};
this.wPlusEqual = function (t) {
this.setW(this._w + t);
};
this.wMinusEqual = function (t) {
this.setW(this._w - t);
};
this.setW = functionM (t) {
this._w = 65535 & t;
};
this.getW = function () {
return this._w;
};
this.getBL = function () {
return 255 & this._w;
};
this.getBLSigned = function () {
var t = this.getBL();
if ((128 & t) > 0) {
return t - 256;
} else {
return t;
}
};
this.setBL = function (t) {
this.setW((65280 & this._w) | (255 & t));
M };
this.blPlusEqual = function (t) {
this.setBL(this.getBL() + t);
};
this.getBH = function () {
return (65280 & this._w) >>> 8;
};
this.setBH = function (t) {
this.setW((255 & this._w) | ((t << 8) & 65280));
};
this.bhPlusEqual = function (t) {
this.setBH(this.getBH() + t);
};
this.copy = function (t) {
this._w = t._w;
};
};
var rc =M Qe;
var cc = Ye;
var ic = Ne;
var ac = 0;
var oc = 0;
var sc = 0;
var fc = 0;
var uc = 0;
var dc = new nc();
var lc = 0;
var hc = new nc();
var Ac = 0;
var pc = false;
var bc = 1;
var gc = 2;
var yc = 4;
var wc = 8;
var mc = 16;
var Mc = 32;
var vc = 64;
var Lc = 128;
var Ic = 65533;
var Cc = 65532;
var Ec = 65531;
var Sc = 6M5530;
var xc = 65535;
var Dc = 65534;
var Nc = [
7, 6, 0, 0, 2, 3, 5, 0, 3, 2, 2, 2, 0, 4, 6, 0, 2, 5, 0, 0, 0, 4, 6,
0, 2, 4, 0, 0, 0, 4, 7, 0, 6, 6, 0, 0, 3, 3, 5, 0, 4, 2, 2, 2, 4, 4,
6, 0, 2, 5, 0, 0, 0, 4, 6, 0, 2, 4, 0, 0, 0, 4, 7, 0, 6, 6, 0, 0, 0,
3, 5, 0, 3, 2, 2, 2, 3, 4, 6, 0, 2, 5, 0, 0, 0, 4, 6, 0, 2, 4, 0, 0,
0, 4, 7, 0, 6, 6, 0, 0, 0, 3, 5, 0, 4, 2, 2, 0, 5, 4, 6, 0, 2, 5, 0,
0, 0, 4, 6, 0, 2, 4, 0, 0, 0, 4, 7, 0, 2, M6, 0, 0, 3, 3, 3, 0, 2, 0,
2, 0, 4, 4, 4, 0, 2, 6, 0, 0, 4, 4, 4, 4, 2, 5, 2, 0, 0, 5, 0, 0, 2,
6, 2, 0, 3, 3, 3, 0, 2, 2, 2, 0, 4, 4, 4, 0, 2, 5, 0, 6, 4, 4, 4, 0,
2, 4, 2, 0, 4, 4, 4, 0, 2, 6, 0, 0, 3, 3, 5, 0, 2, 2, 2, 0, 4, 4, 6,
0, 2, 5, 0, 0, 0, 4, 6, 0, 2, 4, 0, 0, 0, 4, 7, 0, 2, 6, 0, 0, 3, 3,
5, 0, 2, 2, 2, 0, 4, 4, 6, 0, 2, 5, 0, 0, 0, 4, 6, 0, 2, 4, 0, 0, 0,
4, 7, 0,
];
var Bc = new nc();
var Rc = new nc();
var PcM = new nc();
var Li = 0;
var Si = Ne;
var xi = Qe;
var Di = new Ei(0, 17, 319, 258);
var Ni = new Ei(0, 26, 319, 248);
var _i = null;
var Ti = [new Array(160), new Array(160)];
var ki = 0;
var Bi = Ti[ki];
var ji = 0;
var Ri = false;
var Pi = new nc();
var Oi = new nc();
var Fi = new nc();
var Gi = 0;
var zi = 0;
var Wi = 0;
var Ui = 0;
var Zi = 0;
var Qi = M0;
var Hi = false;
var Yi = false;
var Vi = false;
var ea = new nc();
Rt(
new jt('onCartridgeLoaded', function (t) {
Hi = !t.IsXmEnabled() && !t.IsBanksets();
console.log('Maria RAM Direct: ' + Hi);
Vi = t.IsBanksets();
})
);
var ca = new Array(768);
var oa = b;
var sa = et;
var fa = te;
var ua = be;
var da = Dt;
var la = _t;
var ha = null;
vMar Aa = null;
var pa = 0;
var ba = 0;
var ga = 0;
var ya = false;
var wa = false;
var ma = new Array(8192);
var Ma = new Array(8192);
Rt(
new jt('init', function () {
ha = Yo;
})
);
Rt(
new jt('onCartridgeLoaded', function () {
ya = ar();
})
);
var La = 31440;
var Ia = null;
var Ca = null;
var Ea = new Array(16384);
var Sa = 0M;
var xa = 0;
Rt(new jt('init', Na));
var Ta = aa(
'data:;base64,AAAAAAAAEBAQIyMjNTU1R0dHWlpabGxsfn5+kZGRo6Ojtra2yMjI2tra7e3t////AQAAFAgAJhoAOSwASz8AXVEAcGMAgnYAlIgMp5ofua0xy79E3tJW8ORo//Z7//+NGQAALAAAPggAUBsAYy0AdUAAh1IAmmQFrHcYv4kq0Zs8465P9sBh/9J0/+WG//eYKAAAOwAATQAAXwsAch0AhDAAlkITqVQlu2c3zXlK4Itc8p5u/7CB/8OT/9Wl/+e4KwAAPQAAUAAAYgAJdRIbhyQumTdArElSvltl0G5344CK9ZOc/6Wu/7fB/8rT/9zlIQAFNAAXRgApWQA8aw5OfSBgkDJzokWFtFeXx2mq2Xy8647P/qHh/7Pz/8X//9j/DQAyIABFMgBXRABpVxF8aSOOezagjkizoFvFsMm3YxX/q15L86qT//Lb//8n//9v/AABSBQBkFwB3KQmJPBybTi6uYEDAc1PThWXlmHf3qor/vJz/z6//4cH/89P//+b/AABeAABwAAaCDRmVICunMj65RFDMV2LeaXXwe4f/jpn/oKz/sr7/xdD/1+P/6fX/AABTAAZlABh3ACqKCD2cGk+uLGHBP3TTUYbmY5j4dqv/iL3/mtD/reL/v/T/0v//AAMzABZGAChYADpqAE19C1+PHXGiMIS0QpbGVKjZZ7vrec39i+D/nvL/sP//w///AA8GACEYADMrAEY9AFhPCGpiGn10LY+GP6GZUbSrZMa+dtjQiOvim/31rf//v///ABMAACUAADgAAEoKAFwdEW8vJIFBNpNUSKZmW7h5bcuLgN2dku+wpP/Ct//Uyf/nABAAACIAADQAAUcAE1kAJmsBOH4USpAmXaM4b7VLgcddlNpvpuyCuP6Uy/+m3f+5AAUAABgACSoAHDwALk8AQGEAU3MAZYYGd5gYiqornL09rMs9PweJi0/R05v+G+P+ZAQAAEwgAJRoAOC0ASj8AXVIAb2QAgXYAlIkMppsfuK0xy8BE3dJW7+Ro//d7//+N'
);
var ka = aa(
'data:;base64,AAAAAAAAEBAQIyMjNTU1R0dHWlpabGxsfn5+kZGRo6Ojtra2yMjI2tra7e3t////AQAAFAgAJhoAOSwASz8AXVEAcGMAgnYAlIgMp5ofua0xy79E3tJW8ORo//Z7//+NGgAALQAAPwgAURoAZCwAdj8AiFEAm2QGrXYZv4gr0ps95K1Q9r9i/9J0/+SH//aZKQAAOwAATgAAYAoAchwAhS4El0EWqVMovGY7znhN4Ypf851y/6+E/8GW/9Sp/+a7KwAAPQAATwAAYgAPdBEihiM0mTZGq0hZvVtr0G194n+Q9ZKi/6S0/7bH/8nZ/9vsHwANMQAfQwAyVgBEaA5WeyBpjTJ7n0WNslegxGqy1nzE6Y7X+6Hp/7P7/8XM//9j/CAA6GgBNLQBfPwBxUROEZCWWdjeoiEq7m1zNrW/gwIHy0pP/5Kb/97j//8r//93/AABXAABpEAB8Ig2ONR+gRzGzWUTFbFbYfmnqkHv8o43/taD/x7L/2sT/7Nf//+n/AABdAABvAAuBBh6UGDCmKkO5PVXLT2fdYXrwdIz/hp7/mLH/q8P/vdX/z+j/4vr/AABKAAtdAB5vADCBAUKUFFWmJme4OHnLS4zdXZ7wcLD/gsP/lNX/p+j/ufr/y///AAgkABo2AC1IAD9bAFJtCGR/G3aSLYmkP5u2Uq3JZMDbdtLuieT/m/f/rv//wP//ABEAACQDADYWAEgoAFs6Cm1NHX9fL5JxQaSEVLeWZsmpedu7i+7Nnf/gsP/ywv//ABIAACUAADcAAEkAB1wHGW4ZLIErPpM+UaVQY7hidcp1iNyHmu+ZrP+sv/++0f/RAAsAAB4AADAADkIAIFUAMmcARXkBV4wUaZ4mfLA5jsNLodVds+hwxfqC2P+U6v+nAAAMABhAAGSIAKzQAPUcAUFkAYmsAdH4Ah5APmaMirLU0vsdG0NpZ4+xr9f59//+QEAAAIgAANBAARyMAWTUAa0cAfloAkGwAon4QtZEix6M12rZH7MhZ/tps/+1+//+R'
);
var Ba = aa(
'data:;base64,AAAAAAAAEBAQIyMjNTU1R0dHWlpabGxsfn5+kZGRo6Ojtra2yMjI2tra7e3t////AQAAFAgAJhoAOSwASz8AXVEAcGMAgnYAlIgMp5ofua0xy79E3tJW8ORo//Z7//+NGwAALQAAQAcAUhkAZCwAdz4AiVEAm2MHrnUawIgs05o+5axR979j/9F1/+OI//aaKgAAPAAATgAAYQkAcxsAhS0HmEAZqlIrvGU+z3dQ4Ylj85x1/66H/8Ca/9Os/+W+KgAAPAAATwADYQAVcxAohiM6mDVMqkdfvVpxz2yD4X6W9JGo/6O6/7bN/8jf/9rxHAAULgAnQQA5UwBLZMQ5eeCBwijOCnEWVr1enwWq61HzM5o7e+KHx/7P//8b//9j/AwBBFQBUKABmOgJ4TBWLXyedcTmvg0zCll7UqHDmuoP5zZX/36f/8rr//8z//9//AABaAABtCQB/HBCRLiOkQDW2U0fJZVrbd2ztin7/nJH/rqP/wbb/08j/5tr/+O3/AABaAABtABB/ACORETWkJEe2NlrISGzbW37tbZH/f6P/krb/pMj/ttr/ye3/2///AABBABBTACNlADV4AEeKD1qcIWyvNH7BRpHTWKPma7X4fcj/kNr/ou3/tP//x///AAwTAB4mADE4AENKAFVdB2hvGnqCLI2UP5+mUbG5Y8TLdtbdiOjwmvv/rf//v///ABMAACUAADcCAEoUAFwnD245IYFLM5NeRqZwWLiCasqVfd2nj++5of/MtP/exv/wABAAACMAADUAAEcAEFoAI2wGNX8YR5ErWqM9bLZPf8hikdp0o+2Gtv+ZyP+r2v++AAYAABgACCoAGz0ALU8AP2EAUMnQAZIYHdpkZiasrm70+rtBQwOJj0vR15f+H9/+aAgAAFAcAJxoAOSwASz4AXlEAcGMAg3UAlYgMp5ofuq0xzL9E3tFW8eRo//Z7//+NGwAALgAAQAcAUhkAZSsAdz4AiVAAnGMIrnUawYcs05o/5axR+L5k/9F2/+OI//Wb'
);
var ja = aa(
'data:;base64,AAAAAAAAEBAQIyMjNTU1R0dHWlpabGxsfn5+kZGRo6Ojtra2yMjI2tra7e3t////AAAABREAFyMAKTUAPEgATloAYGwAc38AhZEQmKMiqrY1vMhHz9tZ4e1s8/9+//+QDQAAIAAAMhIARCQAVzcAaUkAe1sAjm4AoIAPspMhxaU017dG6spY/Nxr/+59//+PIgAANAAARgEAWRMAayUAfTgAkEoAol0StG8kx4E22ZRJ66Zb/rht/8uA/92S/++lKwAAPQAAUAAAYgUAdRcChyoUmTwmrE45vmFL0HNMd44Vw9ZiC/6qV/72n/8+5/+HMKAAAOgAATQAOXwAhcg8zhCFFljRYqUZqu1h8zWuP4H2h8pCz/6LG/7TY/8fq/9n9GQAbKwAuPgBAUABSYw5ldSF3hzOJmkWcrFiuvmrA0XzT44/l9aH3/7T//8b//9j/AQBDEwBWJgBoOAN7SxWNXSifbzqygkzElF/WpnHpuYP7y5b/3aj/8Lv//83//9//AABaAABtCQB/HBCRLiOkQTW2U0fIZVrbeGztin7/nJH/r6P/wbX/08j/5tr/+Oz/AABbAABuAA+AASGSEzOlJka3OFjJSmvcXX3ub4//gaL/lLT/psb/udn/y+v/3f3/AABGAA5YACBrADJ9AEWPEVeiJGm0NnzGSI7ZW6DrbbP+gMX/ktj/pOr/t/z/yf//AAkfABwxAC5DAEBWAFNoCGV7GniNLYqfP5yyUa/EZMHWdtPpiOb7m/j/rf//v///ABIAACQAADYSAEklAFs3C21JHYBcMJJuQqSAVLeTZ8mledyM3i+7Knv/csP/vw///ABIAACUAADcAAEkACFwFGm4YLIAqP5M8UaVPY7hhdspziNyGm++Yrf+qv/+90v/PAAsAAB4AADAADUIAIFUAMmcARHkCV4wUaZ4mfLE5jsNLoNVes+hwxfqC1/+V6v+nAAAABRAAFyMAKjUAPEcATloAYWwAc38AhZEQmKMiqrY0vchHz9pZ4e1s9P9+//+Q'
);
var Ra = aa(
'data:;base64,AAAAAAAAEBAQIyMjNTU1R0dHWlpabGxsfn5+kZGRo6Ojtra2yMjI2tra7e3t////AAAABREAFyMAKTUAPEgATloAYGwAc38AhZEQmKMiqrY1vMhHz9tZ4e1s8/9+//+QDgAAIAAAMxEARSQAWDYAakgAfFsAj20AoYAPs5IixqQ02LdG6slZ/dtr/+59//+QIwAANQAARwAAWhIAbCQAfjcAkUkCo1sUtW4myIA52pJL7aVd/7dw/8qC/9yU/M+6nKwAAPgAAUAAAYgQAdRYHhygZmjsrrE0+vmBQ0XJi44R19ZeH/6ma/7us/86+/+DRJwAAOQADSwAWXgAocA46giFNlTNfp0ZxuViEzGqW3n2o8Y+7/6HN/7Tg/8by/9j/FQAjKAA2OgBITABbXw9tcSF/gzSSlkakqFi2u2vJzX3b35Dt8qL//7T//8f//9n/AABKDQBcIABvMgWBRRiUVyqmaTy4fE/LjmHdoHPvs4b/xZj/16v/6r3//M///+L/AABdAABvAgKBFRSUJyemOTm4TEvLXl7dcHDwg4L/lZX/qKf/urn/zMz/397/8fH/AABXAAFqABR8ACaODTmhH0uzMV3FRHDYVoLqaJT8e6f/jbn/n8v/st7/xPD/1v//AAA7ABNNACVgADdyAEqEDVyXH2+pMoG7RJPOVqbgabjye8r/jd3/oO//sv//xf//AA0OACAgADIyAERFAFdXCGlpGnt8LI6OP6CgUbKzY8XFdtfYiOnqmvz8rf//v///ABMAAMCUAADgAAEoQAFwjEG81IoFHNJNaR6ZsWbh+a8qRft2jkO+1o//Itf/ax//tABAAACMAADUAAEcAEVoAJGwENn4XSJEpW6M7bbVOf8hgktpzpOyFt/+Xyf+q2/+8AAYAABgACCoAGz0ALU8AP2IAUnQAZIYHdpkZiassm70+rdBQwOJj0vR15P+H9/+aAQAAEwgAJRoAOC0ASj8AXVIAb2QAgXYAlIkMppsfuK0xy8BE3dJW7+Ro//d7//+N'
);
var Pa = aa(
'data:;base64,AAAAAAAAEBAQIyMjNTU1R0dHWlpabGxsfn5+kZGRo6Ojtra2yMjI2tra7e3t////AAAABREAFyMAKTUAPEgATloAYGwAc38AhZEQmKMiqrY1vMhHz9tZ4e1s8/9+//+QDwAAIQAANBEARiMAWDUAa0gAfVoAkGwAon8QtJEix6Q02bZH68hZ/tts/+1+//+QJAAANgAASAAAWxEAbSMMAgDUAkkgEpFoXt20pyX8725FO7qRg/7Zy/8iF/9uX/+2pLAAAPgAAUAAAYwMAdRUMhycfmjoxrExDvl5W0XFo44N69pWN/6if/7qx/8zE/9/WJQAANwALSQAeXAAwbg5CgSBVkzNnpUV5uFeMymqe3Hyw74/D/6HV/7Pn/8b6/9j/EQAsIwA+NgBRSABjWhB1bSKIfzWakUespFq/tmzRyH7j25H27aP//7X//8j//9r/AABQBwBjGQB1LAiHPhuaUC2sYz++dVLRh2Tjmnb1rIn/vpv/0a3/48D/9tL//+X/AABeAABwAAaCDRmVICunMj65RFDMV2LeaXXwe4f/jpn/oKz/sr7/xdD/1+P/6fX/AABRAAdjABl2ACyIBj6aGFCtK2O/PXXRT4fkYpr2dKz/h7//mdH/q+P/vvb/0P//AAUtABg/ACpSADxkAE92CmGJHHObLoauQZjAU6vSZb3leM/3iuL/nfT/r///wf//ABAAACMNADUfAEcxAFpECWxWG35MoLpF7QKONUrWfZciyd9rEiu3WnP/prv/7wf//ABMAACUAADcAAEoABFwNF28gKYEyO5NFTqZXYLhpcsp8hd2Ol++gqv+zvP/Fzv/XAAwAAB8AADEAC0MAHVYAL2gAQnoFVI0XZ58qebI8i8ROntZhsOlzwvuG1f+Y5/+qAAAABBEAFyMAKTUAO0gATloAYG0Acn8AhZEQl6QiqrY1vMhHzttZ4e1s8/9+//+RDwAAIQAAMxEARiMAWDYAa0gAfVoAj20Aon8QtJEixqQ02bZH68lZ/dtr/+1+//+Q'
);
var Oa = aa(
'data:;base64,AAAAERERIiIiMzMzREREVVVVZmZmd3d3iIiImZmZqqqqu7u7zMzM3d3d7u7u////FgoAJxsAOCwAST0AWk4Aa18AfHAAjYEFnpIWr6MnwLQ40cVJ4tZa8+dr//h8//+NLgAAPwkAUBoAYSsAcjwAg00AlF4ApW8QtoAhx5Ey2MKJD6bNU+sRl/9V2/+aH//eYPQAATgAAXwoAcBsAgSwAkj0Oo04ftF8wxXBB1oFS55Jj+KN0/7SF/8WW/9an/+e4PwAAUAAAYQAJchAagyErlDI8pUNNtlRex2Vv2HaA6YeR+pii/6mz/7rE/8vV/9zmNgAZRwAqWAA7aQxMeh1diy5unD9/rVCQvmGhz3Ky4IPD8ZTU/6Xl/7b2/8f//9j/IQBHMgBYQwBpVA96ZSCLdjGch0KtmFO+qWTPunXgy4bx3Jf/7aj//rn//8r//9v/BgBnFwB4KAmJORqaSiurWzy8bE3NfV7ejm/vn4D/sJH/waL/0rP/48T/9NX//+b/AAByAAeDDBiUHSmlLjq2P0vHUFzYYW3pcn76g4//lKD/pbH/tsL/x9P/2OT/6fX/AAhnABl4ACqJBTuaFkyrJ128OG7NSX/eWpDva6H/fLL/jcP/ntT/r+X/wPb/0f//ABhHAClYADppAEt6B1yLGG2cKX6tOo++S6DPXLHgbcLxftP/jM+T/oPX/sf//wv//ACMZADQqAEU7AFZMBWddFnhuJ4l/OJqQSauhWryya83DfN7Uje/lnv/2r///wP//ACcAADgAAEkIAFoZDmsqH3w7MI1MQZ5dUq9uY8B/dNGQheKhlvOyp//DuP/Uyf/lACQAADUAAUYAElcAI2gANHkORYofVpswZ6xBeL1Sic5jmt90q/CFvP+Wzf+n3v+4ABkACyoAHDsALUwAPl0AT24AYH8AcZAQgqEhk7IypMNDtdRUxuVl1/Z26P+H+f+YFgkAJxoAOCsASTwAWk0Aa14AfG8AjYAFnpEWr6InwLM40cRJ4tVa8+Zr//d8//+N'
);
var Fa = aa(
'data:;base64,AAAAERERIiIiMzMzREREVVVVZmZmd3d3iIiImZmZqqqqu7u7zMzM3d3d7u7u////FgoAJxsAOCwAST0AWk4Aa18AfHAAjYEFnpIWr6MnwLQ40cVJ4tZa8+dr//h8//+MNLwAAQAgAURkAYioAczsAhEwAlV0Apm4Rt38iyJAz2aFE6rJV+8Nm/9R3/+WI//aZPQAATgAAXwkAcBoAgSsAkjwRo00itF4zxW9E1oBV55Fm+KJ3/7OI/8SZ/9Wq/+a7PwAAUAAAYQAPcg8ggyAxlDFCpUJTtlNkx2R12HWG6YaX+peo/6i5/7nK/8rb/9vsMwAhRAAyVQBDZgxUdx1liC52mT+HqlCYu2GpzHK63YPL7pTc/6Xt/7b+/8f//9j/HABPLQBgPgBxTxGCYCKTcTOkgkS1k1XGpGbXtXfoxoj515n/6Kr/+bv//8z//93/AABrEQB8IgyNMx2eRC6vVT/AZlDRd2HiiHLzmYP/qpT/u6X/zLb/3cf/7tj//+n/AABxAAyCBR2TFi6kJz+1OFDGSWHXWnLoa4P5fJT/jaX/nrb/r8f/wNj/0en/4vr/AA1fAB5wAC+BAECSEFGjIWK0MnPFQ4TWVJXnZab4drf/h8j/mNn/qer/uvv/y///AB04AC5MJAD9aAFBrBWF8FnKNJ4OeOJSvSaXAWrbRa8fifNjzjen/nvr/r///wP//ACYFADcWAEgnAFk4B2pJGHtaKYxrOp18S66NXL+ebdCvfuHAj/LRoP/isf/zwv//ACcAADgAAEkABVoFFmsWJ3wnOI04SZ5JWq9aa8BrfNF8jeKNnvOer/+vwP/A0f/RACAAADEADUIAHlMAL2QAQHUAUYYOYpcfc6gwhLlBlcpSpttjt+x0yP2F2f+W6v+nCBIAGSMAKjQAO0UATFYAXWcAbngAf4kIkJoZoasqsrw7w81M1N5d5e9u9v9///+QJAAANREARiIAVzMAaEQAeVUAimYAm3cJrIgavZkrzqo837tN8Mxe/91v/+6A//+R'
);
var Ga = aa(
'data:;base64,AAAAERERIiIiMzMzREREVVVVZmZmd3d3iIiImZmZqqqqu7u7zMzM3d3d7u7u////FgoAJxsAOCwAST0AWk4AaM18AfHAAjYEFnpIWr6MnwLQ40cVJ4tZa8+dr//h8//+NLwAAQAgAURkAYioAczsAhEwAlV0Bpm4St38jyJA02aFF6rJW+8Nn/9R4/+WJ//aaPgAATwAAYAgAcRkAgioDkzsUpEwltV02xm5H139Y6JBp+aF6/7KL/8Oc/9St/+W+PgAATwADYAAUcQ4lgh82kzBHpEFYtVJpxmN613SL6IWc+Zat/6e+/7jP/8ng/9rxMAApQQA6UgBLYwxcdB1thS5+lj+Pp1CguGGxyXLC2oPT65Tk/KX1/7b//8f//9j/FwBWKABnOQJ4ShOJWySabDWrfUa8jlfNn2jesHnvwYr/0pv/46z/9L3//87//9//AABvCgCAGxCRLCGiPTKzTkPEX1TVcGXmgXb3kof/o5j/tKn/xbr/1sv/59z/+O3/AABvABGAACKRDzOiIESzMVXEQmbVU3fmZIj3dZn/hqr/l7v/qMz/ud3/yu7/2///ABJVACNmADR3AEWIDFaZHWeqLni7PM4nMUJrdYavucrz/g83/lN7/pe//tv//x///ACAoADE5AEJKAFNbBGRsFXV9JoaON5efSKiwWbnBasrSe9vjjOz0nf3/rv//v///ACcAADgCAEkTAFokC2s1HHxGLY1XPp5oT695YMCKcdGbguKsk/O9pP/Otf/fxv/wACUAADYAAEcADlgAH2kDMHoUQYslUpw2Y61HdL5Yhc9pluB6p/GLuP+cyf+t2v++ABoACSsAGjwAK00APF4ATW8AXoABb5ESgKIjkbM0osRFs9VWxOZn1fd45v+J9/+aFgkAJxoAOCsASTwAWk0Aa14AfG8AjYAFnpEWr6InwLM40cRJ4tVa8+Zr//d8//+NMAAAQQcAUhgAYykAdDoAhUsAllwCp20TuH4kyY812qBG67FX/MJo/9N5/+SK//Wb'
);
var za = aa(
'data:;base64,AAAAERERIiIiMzMzREREVVVVZmZmd3d3iIiImZmZqqqMqu7u7zMzM3d3d7u7u////BxMAGCQAKTUAOkYAS1cAXGgAbXkAfooIj5sZoKwqsb07ws5M099d5PBu9f9///+QIgIAMxMARCQAVTUAZkYAd1cAiGgAmXkHqooYu5spzKw63b1L7s5c/99t//B+//+PNgAARwIAWBMAaSQAejUAi0YAnFcLrWgcvnktz4o+4JtP8axg/71x/86C/9+T//CkPwAAUAAAYQQAchUAgyYQlDchpUgytllDx2pU2Htl6Yx2+p2H/66Y/7+p/9C6/+HLPQAATgAOXwAfcA0wgR5Bki9So0BjtFF0xWKF1nOW54Sn+JW4/6bJ/7fa/8jr/9n8LgAvPwBAUABRYQxich1zgy6ElD+VpVCmtmG3x3LI2IPZ6ZTq+qX7/7b//8f//9j/FgBXJwBoOAJ5SROKWiSbazWsfEa9jVfOnmjfr3nwwIr/0Zv/4qz/873//87//9//AABuCwB/HA+QLSChPjGyT0LDYFPUcWTlgnX2k4b/pJf/taj/xrnM/18r/6Nv/+ez/AABwAA+BASCSEjGjI0K0NFPFRWTWVnXnZ4b4eJf/iaj/mrn/q8r/vNv/zez/3v3/AA9bACBsADF9AEKODlOfH2SwMHXBQYbSUpfjY6j0dLn/hcr/ltv/p+z/uP3/yf//AB00AC5FAD9WAFBnBWF4FnKJJ4OaOJSrSaW8WrbNa8fefNjvjen/nvr/r///wP//ACYDADcUAEglAFk2B2pHGHtYKYxpOp16S66LXL+cbdCtfuG+j/LPoP/gsf/xwv//ACcAADgAAEkABVoFFmsWJ3wnOI04SZ5JWq9aa8BrfNF8jeKNnvOer/+vwP/A0f/RACAAADEADEIAHVMALmQAP3UAUIYPYZcgcqgxg7lClMpTpdtktux1x/2G2P+X6f+oBhMAFyQAKDUAOUYASlcAW2gAbHkAfYoJjpsan6wrsL08wc5N0t9e4/Bv9P+A//+R'
);
var Wa = aa(
'data:;base64,AMAAAERERIiIiMzMzREREVVVVZmZmd3d3iIiImZmZqqqqu7u7zMzM3d3d7u7u////BxMAGCQAKTUAOkYAS1cAXGgAbXkAfooIj5sZoKwqsb07ws5M099d5PBu9f9///+QIwEANBIARSMAVjQAZ0UAeFYAiWcAmngIq4kZvJoqzas73rxM781d/95u/+9///+QNwAASAAAWREAaiIAezMAjEQAnVUOrmYfv3cw0IhB4ZlS8qpj/7t0/8yF/92W/+6nQAAAUQAAYgMAcxQFhCUWlTYnpkc4t1hJyGla2Xpr6ot8+5yN/62e/76v/8/A/+DROwAGTAAXXQAobgw5fx1KkC5boT9sslB9w2GO1HKf5YOw9pTB/6XS/7bj/8f0/9j/KQA4OgBJSwBaXA1rbR58fi+Nj0CeoFGvsWLAwnPR04Ti5JXz9ab//7f//8j//9n/DwBfIABwMQWBQhaSUyejZDi0dUnFhlrWl2vnqHz4uY3/yp7/26//7MD//dH//+L/AABxAgOCEMxSTJCWkNTa1RkfGV1jXaGnoeXr5iov/m5z/rK3/vb7/zs//3+D/8PH/AARrABV8ACaNCjeeG0ivLFnAPWrRTnviX4zzcJ3/ga7/kr//o9D/tOH/xfL/1v//ABVOACZfADdwAEiBCVmSGmqjK3u0PIzFTZ3WXq7nb7/4gND/keH/ovL/s///xP//ACIhADMyAERDAFVUBGZlFXd2JoiHN5mYSKqpWbu6aszLe93cjO7tnf/+rv//v///ACcAADgAAEkOAFofDWswHnxBL41SQJ5jUa90YsCFc9GWhOKnlfO4pv/Jt//ayP/rACQAADUAAEYAEFcAIWgAMnkRQ4oiVJszZaxEdr1Vh85mmN93qfCIuv+Zy/+q3P+7ABoACisAGzwALE0APV4ATm8AX4AAcJERgaIikrMzo8REtNVVxeZm1vd35/+I+P+ZFgkAJxoAOCsASTwAWk0Aa14AfG8AjYAFnpEWr6InwLM40cRJ4tVa8+Zr//d8//+N'
);
M var Ua = aa(
'data:;base64,AAAAERERIiIiMzMzREREVVVVZmZmd3d3iIiImZmZqqqqu7u7zMzM3d3d7u7u////BxMAGCQAKTUAOkYAS1cAXGgAbXkAfooIj5sZoKwqsb07ws5M099d5PBu9f9///+QJAAANREARiIAVzMAaEQAeVUAimYAm3cIrIgZvZkqzqo737tM8Mxd/91u/+5///+QOAAASQAAWhAAayEAfDIAjUMAnlQRr2UiwHYz0YdE4phV86lm/7p3/8uI/9yZ/+2qQAAAUQAAYgIAcxMLhCQclTUtpkY+t1dPyGhg2Xlx6oqC+5uT/6yk/721/87G/9/XOQAOSgAfWwAwbAxBfR1Sji5jnz90sFCFwWGW0nKn44O49JTJ/6Xa/7br/8f8/9j/JQBBNgBSRwBjWA50aR+FejCWi0GnnFK4rWPJvnTaz4Xr4Jb88af//7j//8n//9r/CABlGQB2KgiHOxmYTCqpXTu6bkzLf13MckG7toX/+spD/w6H/1LL/5cP/9tT//+X/AAByAAeDDBiUHSmlLjq2P0vHUFzYYW3pcn76g4//lKD/pbH/tsL/x9P/2OT/6fX/AAllABp2ACuHBDyYFU2pJl66N2/LSIDcWZHtaqL+e7P/jMT/ndX/rub/v/f/0P//ABpAACtRADxiAE1zBl6EF2+VKICmOZG3SqLIW7PZbMTqfdX7jub/n/f/sP//wf//ACUNADYeAEcvAFhABmlRF3piKItzOZyESq2VW76mbM+3feDIjvHZn//qsP/7wf//ACcAADgAAEkAA1oKFGsbJXwsNo09R55OWK9facBwetGBi+KSnPOjrf+0vv/Fz//WACAAADEAC0IAHFMALWQAPnUAT4YQYJchcagygrlDk8pUpNtltex2xv2H1/+Y6P+pBxIAGCMAKTQAOkUAS1YAXGcAbXgAfokIj5oZoKsqsbw7ws1M095d5O9u9f9///+QJAAANREARiIAVzMAaEQAeVUAimYAm3cJrIgavZkMrzqo837tN8Mxe/91v/+6A//+R'
);
var Za = 0;
var Qa = 1;
var Ha = 2;
var Ya = Ha;
var Va = new Ei(0, 16, 319, 258);
var Ja = new Ei(0, 27, 319, 250);
var Xa = new Ei(0, 16, 319, 308);
var qa = new Ei(0, 26, 319, 297);
var Ka = [
0, 0, 0, 37, 37, 37, 52, 52, 52, 79, 79, 79, 91, 91, 91, 105, 105,
105, 123, 123, 123, 138, 138, 138, 167, 167, 167, 185, 185, 185, 197,
197, 197, 208, 208, 208, 215, 215, 215, 225, 22M5, 225, 244, 244, 244,
255, 255, 255, 76, 50, 0, 98, 58, 0, 123, 74, 0, 154, 96, 0, 181, 116,
0, 204, 133, 0, 231, 158, 8, 247, 175, 16, 255, 195, 24, 255, 208, 32,
255, 216, 40, 255, 223, 48, 255, 230, 59, 255, 244, 64, 255, 250, 75,
255, 255, 80, 153, 37, 0, 170, 37, 0, 180, 37, 0, 211, 48, 0, 221, 72,
2, 226, 80, 9, 244, 103, 0, 244, 117, 16, 255, 158, 16, 255, 172, 32,
255, 186, 58, 255, 191, 80, 255, 198, 109, 255, 213, 128, 255, 228,
144, 2M55, 230, 153, 152, 12, 12, 153, 12, 12, 194, 19, 0, 211, 19, 0,
226, 53, 0, 227, 64, 0, 228, 64, 32, 229, 82, 48, 253, 120, 84, 255,
138, 106, 255, 152, 124, 255, 164, 139, 255, 179, 158, 255, 194, 178,
255, 208, 186, 255, 215, 192, 153, 0, 0, 169, 0, 0, 194, 4, 0, 211, 4,
0, 218, 4, 0, 219, 8, 0, 228, 32, 32, 246, 64, 64, 251, 112, 112, 251,
126, 126, 251, 143, 143, 255, 159, 159, 255, 171, 171, 255, 185, 185,
255, 201, 201, 255, 207, 207, 126, 0, 80, 128M, 0, 80, 128, 0, 95, 149,
11, 116, 170, 34, 136, 187, 47, 154, 206, 63, 173, 215, 90, 182, 228,
103, 195, 239, 114, 206, 251, 126, 218, 255, 141, 225, 255, 157, 229,
255, 165, 231, 255, 175, 234, 255, 184, 236, 72, 0, 108, 92, 4, 136,
101, 13, 144, 123, 35, 167, 147, 59, 191, 157, 69, 201, 167, 79, 211,
178, 90, 222, 189, 101, 233, 197, 109, 241, 206, 118, 250, 213, 131,
255, 218, 144, 255, 222, 156, 255, 226, 169, 255, 230, 182, 255, 27,
0, 112,M 34, 27, 141, 55, 48, 162, 72, 65, 179, 89, 82, 196, 99, 92,
206, 111, 104, 218, 125, 118, 232, 135, 128, 248, 147, 140, 255, 157,
151, 255, 168, 163, 255, 179, 175, 255, 188, 184, 255, 196, 193, 255,
218, 209, 255, 0, 13, 127, 0, 18, 167, 0, 24, 192, 10, 43, 209, 27,
74, 227, 47, 88, 240, 55, 104, 255, 73, 121, 255, 91, 133, 255, 109,
150, 255, 127, 163, 255, 140, 173, 255, 150, 180, 255, 168, 192, 255,
183, 203, 255, 198, 214, 255, 0, 41, 90, 0, 56, 118,M 0, 72, 146, 0,
92, 172, 0, 113, 198, 0, 134, 208, 10, 155, 223, 26, 168, 236, 43,
182, 255, 63, 194, 255, 69, 203, 255, 89, 211, 255, 127, 218, 255,
143, 222, 255, 160, 226, 255, 176, 235, 255, 0, 56, 57, 0, 60, 72, 0,
61, 91, 2, 102, 127, 3, 115, 131, 0, 156, 170, 0, 161, 187, 1, 164,
204, 3, 187, 255, 5, 218, 226, 24, 229, 255, 52, 234, 255, 73, 239,
255, 102, 242, 255, 132, 244, 255, 158, 249, 255, 0, 74, 0, 0, 93, 0,
0, 112, 0, 0, 139, 0, 0,M 169, 0, 0, 187, 5, 0, 189, 0, 2, 208, 5, 26,
213, 64, 90, 241, 119, 130, 239, 167, 132, 237, 209, 137, 255, 237,
125, 255, 255, 147, 255, 255, 155, 255, 255, 34, 74, 3, 39, 83, 4, 48,
100, 5, 60, 119, 12, 69, 140, 17, 90, 165, 19, 27, 210, 9, 31, 221, 0,
61, 205, 45, 61, 205, 48, 88, 204, 64, 96, 211, 80, 162, 236, 85, 179,
242, 74, 187, 246, 93, 196, 248, 112, 46, 63, 12, 54, 74, 15, 64, 86,
21, 70, 95, 23, 87, 119, 26, 101, 133, 28, 116, 147, 29, 143, 1M65, 37,
173, 183, 44, 188, 199, 48, 201, 213, 51, 212, 224, 59, 224, 236, 66,
234, 246, 69, 240, 253, 71, 244, 255, 111, 85, 36, 0, 90, 44, 0, 108,
59, 0, 121, 75, 0, 185, 117, 0, 187, 133, 0, 193, 161, 32, 208, 176,
47, 222, 190, 63, 230, 198, 69, 237, 205, 87, 245, 219, 98, 251, 229,
105, 252, 238, 111, 253, 243, 119, 253, 243, 127, 92, 39, 0, 92, 47,
0, 113, 59, 0, 123, 72, 0, 185, 104, 32, 187, 114, 32, 197, 134, 41,
215, 150, 51, 230, 164, 6M4, 244, 177, 75, 253, 193, 88, 255, 204, 85,
255, 212, 97, 255, 221, 105, 255, 230, 121, 255, 234, 152,
];
var $a = [
0, 0, 0, 28, 28, 28, 57, 57, 57, 89, 89, 89, 121, 121, 121, 146, 146,
146, 171, 171, 171, 188, 188, 188, 205, 205, 205, 217, 217, 217, 230,
230, 230, 236, 236, 236, 242, 242, 242, 248, 248, 248, 255, 255, 255,
255, 255, 255, 38, 48, 1, 36, 56, 3, 35, 64, 5, 81, 84, 27, 128, 105,
49, 151, 129, 53, 175, 153, 58, 194, 167, 62, M213, 181, 67, 219, 192,
61, 225, 203, 56, 226, 216, 54, 227, 229, 52, 239, 242, 88, 251, 255,
125, 251, 255, 125, 57, 23, 1, 94, 35, 4, 131, 48, 8, 165, 71, 22,
200, 95, 36, 227, 120, 32, 255, 145, 29, 255, 171, 29, 255, 197, 29,
255, 206, 52, 255, 216, 76, 255, 230, 81, 255, 244, 86, 255, 249, 119,
255, 255, 152, 255, 255, 152, 69, 25, 4, 114, 30, 17, 159, 36, 30,
179, 58, 32, 200, 81, 34, 227, 105, 32, 255, 129, 30, 255, 140, 37,
255, 152, 44, M255, 174, 56, 255, 197, 69, 255, 197, 89, 255, 198, 109,
255, 213, 135, 255, 228, 161, 255, 228, 161, 74, 23, 4, 126, 26, 13,
178, 29, 23, 200, 33, 25, 223, 37, 28, 236, 59, 56, 250, 82, 85, 252,
97, 97, 255, 112, 110, 255, 127, 126, 255, 143, 143, 255, 157, 158,
255, 171, 173, 255, 185, 189, 255, 199, 206, 255, 199, 206, 5, 5, 104,
59, 19, 109, 113, 34, 114, 139, 42, 140, 165, 50, 166, 185, 56, 186,
205, 62, 207, 219, 71, 221, 234, 81, 235, 244, 95, 245, M254, 109, 255,
254, 122, 253, 255, 135, 251, 255, 149, 253, 255, 164, 255, 255, 164,
255, 40, 4, 121, 64, 9, 132, 89, 15, 144, 112, 36, 157, 136, 57, 170,
164, 65, 195, 192, 74, 220, 208, 84, 237, 224, 94, 255, 233, 109, 255,
242, 124, 255, 248, 138, 255, 255, 152, 255, 254, 161, 255, 254, 171,
255, 254, 171, 255, 53, 8, 138, 66, 10, 173, 80, 12, 208, 100, 40,
208, 121, 69, 208, 141, 75, 212, 162, 81, 217, 176, 88, 236, 190, 96,
255, 197, 107, 25M5, 204, 119, 255, 209, 131, 255, 215, 144, 255, 219,
157, 255, 223, 170, 255, 223, 170, 255, 5, 30, 129, 6, 38, 165, 8, 47,
202, 38, 61, 212, 68, 76, 222, 79, 90, 238, 90, 104, 255, 101, 117,
255, 113, 131, 255, 128, 145, 255, 144, 160, 255, 151, 169, 255, 159,
178, 255, 175, 190, 255, 192, 203, 255, 192, 203, 255, 5, 30, 129, 6,
38, 165, 8, 47, 202, 38, 61, 212, 68, 76, 222, 79, 90, 238, 90, 104,
255, 101, 117, 255, 113, 131, 255, 128, 145, 255, 144, 160,M 255, 151,
169, 255, 159, 178, 255, 175, 190, 255, 192, 203, 255, 192, 203, 255,
12, 4, 139, 34, 24, 160, 56, 45, 181, 72, 62, 199, 88, 79, 218, 97,
89, 236, 107, 100, 255, 122, 116, 255, 138, 132, 255, 145, 142, 255,
153, 152, 255, 165, 163, 255, 177, 174, 255, 184, 184, 255, 192, 194,
255, 192, 194, 255, 29, 41, 90, 29, 56, 118, 29, 72, 146, 28, 92, 172,
28, 113, 198, 50, 134, 207, 72, 155, 217, 78, 168, 236, 85, 182, 255,
112, 199, 255, 140, 2M16, 255, 147, 219, 255, 155, 223, 255, 175, 228,
255, 195, 233, 255, 195, 233, 255, 47, 67, 2, 57, 82, 2, 68, 97, 3,
65, 122, 18, 62, 148, 33, 74, 159, 46, 87, 171, 59, 92, 189, 85, 97,
208, 112, 105, 226, 122, 114, 245, 132, 124, 250, 141, 135, 255, 151,
154, 255, 166, 173, 255, 182, 173, 255, 182, 10, 65, 8, 13, 84, 10,
16, 104, 13, 19, 125, 15, 22, 146, 18, 25, 165, 20, 28, 185, 23, 30,
201, 25, 33, 217, 27, 71, 228, 45, 110, 240, 64, 120, 247, 77, 131,M
255, 91, 154, 255, 122, 178, 255, 154, 178, 255, 154, 4, 65, 11, 5,
83, 14, 6, 102, 17, 7, 119, 20, 8, 136, 23, 9, 155, 26, 11, 175, 29,
72, 196, 31, 134, 217, 34, 143, 233, 36, 153, 249, 39, 168, 252, 65,
183, 255, 91, 201, 255, 110, 220, 255, 129, 220, 255, 129, 2, 53, 15,
7, 63, 21, 12, 74, 28, 45, 95, 30, 79, 116, 32, 89, 131, 36, 100, 146,
40, 130, 161, 46, 161, 176, 52, 169, 193, 58, 178, 210, 65, 196, 217,
69, 214, 225, 73, 228, 240, 78, M242, 255, 83, 242, 255, 83,
];
var to = { 0: Ka, 1: Ta, 2: ka, 3: Ba, 4: Oa, 5: Fa, 6: Ga };
var eo = { 0: $a, 1: ja, 2: Ra, 3: Pa, 4: za, 5: Wa, 6: Ua };
var no = 3;
new Array(131072);
var fo = function (t) {
for (var e = 0; e < t; e++) {
if (oe[0] > 1) {
oe[0]--;
} else if (oe[0] == 1) {
oe[0] = ae[0];
pe(0);
}
if (oe[1] > 1) {
oe[1]--;
} elsMe if (oe[1] == 1) {
oe[1] = ae[1];
pe(1);
}
te[Ae++] = (ie[0] + ie[1]) & 255;
if (Ae >= 2048) {
Ae = 0;
}
}
};
var uo = function () {};
var lo = function (t) {
var e;
var n = b;
var r = y;
var c = new Array(1, 28, 114);
for (var i = t; t; ) {
var a = 0;
for (e = 0; e < p / 8; e++) {
var o;
varM s = new Array(0, 0, 0);
var f = 1 & M ? 2 : 1;
if (3 & O) {
for (o = 0; o < 3; o++) {
A[o]++;
if (A[o] >= c[o]) {
A[o] = 0;
s[o] = 1;
}
}
S = (S + 1) % 15;
x = (x + 1) % 31;
D = (D + 1) % 511;
N = (N + 1) % 131071;
if (64 & M && s[0]) {
q(0, 16 & M ? 7 : 4);
M }
if (!(64 & M) && !!s[f]) {
q(0, 1);
}
if (32 & M && s[0]) {
q(2, 8 & M ? 7 : 4);
}
if (!(32 & M) && !!s[f]) {
q(2, 1);
}
if (s[f]) {
if (!(16 & M)) {
q(1, 1);
}
if (!(8 & M)) {
q(3, 1);
}
}
}
M if (K(2)) {
if (8 & M) {
q(3, 1);
} else {
$(2);
}
tt(2);
Q[0] = 4 & M ? v[0] : 1;
}
if (K(3)) {
if (8 & M) {
$(2);
}
$(3);
tt(3);
Q[1] = 2 & M ? v[1] : 1;
}
if (8 & O && T[1] == 1) {
$(0);
}
if (K(0)) M{
if (16 & M) {
q(1, 1);
} else {
$(0);
}
tt(0);
}
if (K(1)) {
if (16 & M) {
$(0);
}
$(1);
tt(1);
}
for (var u = 0; u <= 3; u++) {
a += (v[u] ^ Q[u] || 16 & m[u] ? 15 & m[u] : 0) << 2;
}
}
a /= e;
k;
n[r]M = a;
r++;
t--;
}
if ((y += i) >= 1536) {
y = 0;
}
};
var ho = function () {
U += p;
if (W < 228) {
W++;
}
};
var Ao = function (t) {
Ft[640] = 255 & (~Ft[641] | Qt);
if (t[0]) {
Ft[640] = -129 & Ft[640] & 255;
}
if (t[1]) {
Ft[640] = -65 & Ft[640] & 255;
}
if (t[2]) {
Ft[640] = -33 M& Ft[640] & 255;
}
if (t[3]) {
Ft[640] = -17 & Ft[640] & 255;
}
if (t[6]) {
Ft[640] = -9 & Ft[640] & 255;
}
if (t[7]) {
Ft[640] = -5 & Ft[640] & 255;
}
if (t[8]) {
Ft[640] = -3 & Ft[640] & 255;
}
if (t[9]) {
Ft[640] = -2 & Ft[640] & 255;
}
Ft[642] = 255 & (~Ft[643] | Ht);
if (t != null) {
if (t[12]) {
FMt[642] = -2 & Ft[642] & 255;
}
if (t[13]) {
Ft[642] = -3 & Ft[642] & 255;
}
if (t[14]) {
Ft[642] = -9 & Ft[642] & 255;
}
if (t[15]) {
Ft[642] = -65 & Ft[642] & 255;
}
if (t[16]) {
Ft[642] = -129 & Ft[642] & 255;
}
}
if (4 & Ft[642]) {
Ft[8] &= 127;
Ft[9] &= 127;
if (t[4] || t[5]) {
Ft[M12] &= 127;
} else {
Ft[12] |= 128;
}
} else {
Ft[12] |= 128;
if (t[4]) {
Ft[9] |= 128;
} else {
Ft[9] &= 127;
}
if (t[5]) {
Ft[8] |= 128;
} else {
Ft[8] &= 127;
}
}
if (16 & Ft[642]) {
Ft[10] &= 127;
Ft[11] &= 127;
if (t[10] || t[11]) {
Ft[13] &= 127;
M } else {
Ft[13] |= 128;
}
} else {
Ft[13] |= 128;
if (t[10]) {
Ft[11] |= 128;
} else {
Ft[11] &= 127;
}
if (t[11]) {
Ft[10] |= 128;
} else {
Ft[10] &= 127;
}
}
};
var po = function () {
return zt;
};
var bo = function (t) {
Vt -= t;
if (!Yt && Vt > 0) {
Gt(M644, (Vt / Zt) | 0);
} else if (Yt) {
if (Vt >= -255) {
Gt(644, 255 & Vt);
} else {
Gt(644, 0);
zt = false;
}
} else {
Vt = Zt;
Gt(644, 0);
Ft[645] |= 128;
Ft[661] |= 128;
Yt = true;
}
};
var go = Di;
var yo = function (t) {
if (Vi) {
xi = He;
}
ji = 0;
Ri = 128 & Si[60];
M Yi = false;
if ((96 & Si[60]) != 64 && t >= Ni.top && t <= Ni.bottom) {
var e = Ki(0);
var n = (t - Di.top) * Di.GetLength();
for (var r = 0; r < 160; r++) {
_i[n++] = e;
_i[n++] = e;
}
} else if (
(96 & Si[60]) == 64 &&
t >= Di.top &&
t <= Di.bottom &&
(t == Di.top &&
(Pi.setBL(Si[48]),
Pi.setBH(Si[44]),
(Ui = 32 & (Hi ? Si[MPi.getW()] : xi(Pi.getW()))),
(Zi = 64 & (Hi ? Si[Pi.getW()] : xi(Pi.getW()))),
(Wi = 15 & (Hi ? Si[Pi.getW()] : xi(Pi.getW()))),
Oi.setBL(Hi ? Si[Pi.getW() + 2] : xi(Pi.getW() + 2)),
Oi.setBH(Hi ? Si[Pi.getW() + 1] : xi(Pi.getW() + 1)),
128 & (Hi ? Si[Pi.getW()] : xi(Pi.getW())) && (Yi = true)),
t >= Di.top && t != Di.bottom)
) {
Oi.setBL(Hi ? Si[Pi.getW() + 2] : xi(Pi.getW() + 2));
Oi.setBH(Hi ? Si[MPi.getW() + 1] : xi(Pi.getW() + 1));
Bi = Ti[ki];
(function () {
ji += 16;
for (
var t = Hi ? Si[Oi.getW() + 1] : xi(Oi.getW() + 1);
95 & t && ji < 428;
) {
var e = 0;
var n = 0;
Fi.setBL(Hi ? Si[Oi.getW()] : xi(Oi.getW()));
Fi.setBH(Hi ? Si[Oi.getW() + 2] : xi(Oi.getW() + 2));
if (31 & t) {
ji += 8;
zi M=
((224 & (Hi ? Si[Oi.getW() + 1] : xi(Oi.getW() + 1))) >>>
3) &
255;
Gi = Hi ? Si[Oi.getW() + 3] : xi(Oi.getW() + 3);
e =
(1 +
(31 &
~(e =
31 & (Hi ? Si[Oi.getW() + 1] : xi(Oi.getW() + 1))))) &
255;
Oi.wPlusEqual(4);
} else {
ji += 10;
zi M=
((224 & (Hi ? Si[Oi.getW() + 3] : xi(Oi.getW() + 3))) >>>
3) &
255;
Gi = Hi ? Si[Oi.getW() + 4] : xi(Oi.getW() + 4);
n = 32 & (Hi ? Si[Oi.getW() + 1] : xi(Oi.getW() + 1));
Qi = 128 & (Hi ? Si[Oi.getW() + 1] : xi(Oi.getW() + 1));
e =
255 &
((e = 31 & (Hi ? Si[Oi.getW() + 3] : xi(Oi.getW() + 3))) ==
0
?M 32
: 1 + (31 & ~e));
Oi.wPlusEqual(5);
}
var r = false;
if (n) {
var c = 16 & Si[60];
ea.copy(Fi);
for (i = 0; i < e && !(ji >= 428); i++) {
Fi.setBL(Hi ? Si[ea.wPlusPlus()] : xi(ea.wPlusPlus()));
Fi.setBH(Si[52] + Wi);
if (qi()) {
if (!r) {
ji += 3;
M r = true;
}
} else {
ji += 6;
if (c) {
ji += 3;
}
}
$i();
if (c) {
$i();
}
}
} else {
Fi.bhPlusEqual(Wi);
for (var i = 0; i < e && !(ji >= 428); i++) {
if (qi()) {
if (!rM) {
ji += 3;
r = true;
}
} else {
ji += 3;
}
$i();
}
}
t = Hi ? Si[Oi.getW() + 1] : xi(Oi.getW() + 1);
}
if (Wi == 0) {
ji += 6;
if (128 & (Hi ? Si[Pi.getW() + 3] : xi(Pi.getW() + 3))) {
ji += 17;
}
}
M })();
Bi = Ti[(ki = ki == 1 ? 0 : 1)];
if (t >= Ni.top && t <= Ni.bottom) {
(function (t, e) {
var n = 3 & Si[60];
var r = e;
if (n == 0) {
for (var c = 0; c < 160; c += 4) {
var i;
i = Ki(Bi[c + 0]);
t[r++] = i;
t[r++] = i;
i = Ki(Bi[c + 1]);
t[r++] = i;
t[r++] = i;
M i = Ki(Bi[c + 2]);
t[r++] = i;
t[r++] = i;
i = Ki(Bi[c + 3]);
t[r++] = i;
t[r++] = i;
if (Ri) {
ta(t, r - 8);
}
}
} else if (n == 2) {
for (c = 0; c < 160; c += 4) {
t[r++] = Ki(
(16 & Bi[c + 0]) |
((8 & Bi[c + 0]) >>> 3) |
M (2 & Bi[c + 0])
);
t[r++] = Ki(
(16 & Bi[c + 0]) |
((4 & Bi[c + 0]) >>> 2) |
((1 & Bi[c + 0]) << 1)
);
t[r++] = Ki(
(16 & Bi[c + 1]) |
((8 & Bi[c + 1]) >>> 3) |
(2 & Bi[c + 1])
);
t[r++] = Ki(
(16 & Bi[c + 1]) |
M ((4 & Bi[c + 1]) >>> 2) |
((1 & Bi[c + 1]) << 1)
);
t[r++] = Ki(
(16 & Bi[c + 2]) |
((8 & Bi[c + 2]) >>> 3) |
(2 & Bi[c + 2])
);
t[r++] = Ki(
(16 & Bi[c + 2]) |
((4 & Bi[c + 2]) >>> 2) |
((1 & Bi[c + 2]) << 1)
);
t[Mr++] = Ki(
(16 & Bi[c + 3]) |
((8 & Bi[c + 3]) >>> 3) |
(2 & Bi[c + 3])
);
t[r++] = Ki(
(16 & Bi[c + 3]) |
((4 & Bi[c + 3]) >>> 2) |
((1 & Bi[c + 3]) << 1)
);
if (Ri) {
ta(t, r - 8);
}
}
} else if (n == 3) {
M for (c = 0; c < 160; c += 4) {
t[r++] = Ki(30 & Bi[c + 0]);
t[r++] = Ki((28 & Bi[c + 0]) | ((1 & Bi[c + 0]) << 1));
t[r++] = Ki(30 & Bi[c + 1]);
t[r++] = Ki((28 & Bi[c + 1]) | ((1 & Bi[c + 1]) << 1));
t[r++] = Ki(30 & Bi[c + 2]);
t[r++] = Ki((28 & Bi[c + 2]) | ((1 & Bi[c + 2]) << 1));
t[r++] = Ki(30 & Bi[c + 3]);
t[r++] = Ki((28 & Bi[c + 3]) | ((1 & Bi[c +M 3]) << 1));
if (Ri) {
ta(t, r - 8);
}
}
}
})(_i, (t - Di.top) * Di.GetLength());
}
for (r = 0; r < 160; r++) {
Bi[r] = 0;
}
if (t > Di.top) {
if (Wi == 0) {
Pi.wPlusEqual(3);
Ui = 32 & (Hi ? Si[Pi.getW()] : xi(Pi.getW()));
Zi = 64 & (Hi ? Si[Pi.getW()] : xi(Pi.getW()));
M Wi = 15 & (Hi ? Si[Pi.getW()] : xi(Pi.getW()));
if (128 & (Hi ? Si[Pi.getW()] : xi(Pi.getW()))) {
Yi = true;
}
} else {
Wi--;
}
}
}
if (Vi) {
xi = Qe;
}
return ji;
};
var wo = function () {
return Yi;
};
var mo = Ne;
var Mo = function () {
pc = false;
var t;
var e = dc.wPlusPlus(M);
switch (
((lc = rc(e)),
(Ac = Nc[lc]) === void 0
? console.error(
'Unknown opcode, mem location: %d, %d',
e,
lc.toString(16)
)
: Li-- > 0 &&
console.log(
'Opcode:%s %d %d %d %d',
lc.toString(16),
Ac,
Jo(),
Io,
_o
),
lc)
) {M
case 0:
dc.wPlusPlus();
fc |= mc;
_c(dc.getBH());
_c(dc.getBL());
_c(fc);
fc |= yc;
dc.setBL(ic[Dc]);
dc.setBH(ic[xc]);
return Ac;
case 1:
Uc();
di();
return Ac;
case 5:
Hc();
di();
return Ac;
case 6:
Hc();
qc();
returnM Ac;
case 8:
hi();
return Ac;
case 9:
Wc();
di();
return Ac;
case 10:
if (128 & ac) {
fc |= bc;
} else {
fc = fc & ~bc & 255;
}
kc((ac = (ac << 1) & 255));
return Ac;
case 13:
Fc();
di();
return Ac;
case 14:
Fc();
qc()M;
return Ac;
case 16:
Qc();
jc(!(fc & Lc));
return Ac;
case 17:
Zc();
di();
Oc(sc);
return Ac;
case 21:
Yc();
di();
return Ac;
case 22:
Yc();
qc();
return Ac;
case 24:
fc = fc & ~bc & 255;
return Ac;
case 25:
zMc();
di();
Oc(sc);
return Ac;
case 29:
Gc();
di();
Oc(oc);
return Ac;
case 30:
Gc();
qc();
return Ac;
case 32:
Fc();
dc.wMinusMinus();
_c(dc.getBH());
_c(dc.getBL());
dc.copy(hc);
return Ac;
case 33:
Uc();
Xc();
M return Ac;
case 36:
Hc();
Kc();
if (hc.getW() == 12) {
pc = true;
}
return Ac;
case 37:
Hc();
Xc();
return Ac;
case 38:
Hc();
bi();
return Ac;
case 40:
pi();
return Ac;
case 41:
Wc();
Xc();
return Ac;
cMase 42:
(function () {
var t = fc;
if (128 & ac) {
fc |= bc;
} else {
fc = fc & ~bc & 255;
}
ac = (ac << 1) & 255;
kc((ac |= t & bc));
})();
return Ac;
case 44:
Fc();
Kc();
return Ac;
case 45:
Fc();
Xc();
return Ac;
case 46:
M Fc();
bi();
return Ac;
case 48:
Qc();
jc(fc & Lc);
return Ac;
case 49:
Zc();
Xc();
Oc(sc);
return Ac;
case 53:
Yc();
Xc();
return Ac;
case 54:
Yc();
bi();
return Ac;
case 56:
fc |= bc;
return Ac;
cMase 57:
zc();
Xc();
Oc(sc);
return Ac;
case 61:
Gc();
Xc();
Oc(oc);
return Ac;
case 62:
Gc();
bi();
return Ac;
case 64:
fc = Tc();
dc.setBL(Tc());
dc.setBH(Tc());
return Ac;
case 65:
Uc();
ri();
return Ac;
caMse 69:
Hc();
ri();
return Ac;
case 70:
Hc();
ui();
return Ac;
case 72:
li();
return Ac;
case 73:
Wc();
ri();
return Ac;
case 74:
fi();
return Ac;
case 76:
Fc();
ii();
return Ac;
case 77:
Fc();
ri(M);
return Ac;
case 78:
Fc();
ui();
return Ac;
case 80:
Qc();
jc(!(fc & vc));
return Ac;
case 81:
Zc();
ri();
Oc(sc);
return Ac;
case 85:
Yc();
ri();
return Ac;
case 86:
Yc();
ui();
return Ac;
case 88:
M fc = fc & ~yc & 255;
return Ac;
case 89:
zc();
ri();
Oc(sc);
return Ac;
case 93:
Gc();
ri();
Oc(oc);
return Ac;
case 94:
Gc();
ui();
return Ac;
case 96:
dc.setBL(Tc());
dc.setBH(Tc());
dc.wPlusPlus();
return Ac;
case 97:
M Uc();
Jc();
return Ac;
case 101:
Hc();
Jc();
return Ac;
case 102:
Hc();
gi();
return Ac;
case 104:
Ai();
return Ac;
case 105:
Wc();
Jc();
return Ac;
case 106:
(function () {
var t = fc;
fc = fc & ~bc & 255;
fc |=M 1 & ac;
ac = (ac >>> 1) & 255;
if (t & bc) {
ac |= 128;
}
kc(ac);
})();
return Ac;
case 108:
(t = new nc()).setBL(rc(dc.wPlusPlus()));
t.setBH(rc(dc.wPlusPlus()));
hc.setBL(rc(t.getW()));
hc.setBH(rc(t.getW() + 1));
ii();
return Ac;
case 109:
Fc();
Jc();
retuMrn Ac;
case 110:
Fc();
gi();
return Ac;
case 112:
Qc();
jc(fc & vc);
return Ac;
case 113:
Zc();
Jc();
Oc(sc);
return Ac;
case 117:
Yc();
Jc();
return Ac;
case 118:
Yc();
gi();
return Ac;
case 120:
fc |= yc;
M return Ac;
case 121:
zc();
Jc();
Oc(sc);
return Ac;
case 125:
Gc();
Jc();
Oc(oc);
return Ac;
case 126:
Gc();
gi();
return Ac;
case 129:
Uc();
wi();
return Ac;
case 132:
Hc();
Mi();
return Ac;
case 13M3:
Hc();
wi();
return Ac;
case 134:
Hc();
mi();
return Ac;
case 136:
kc((sc = (sc - 1) & 255));
return Ac;
case 138:
kc((ac = oc));
return Ac;
case 140:
Fc();
Mi();
return Ac;
case 141:
Fc();
wi();
return Ac;
case 142:
M Fc();
mi();
return Ac;
case 144:
Qc();
jc(!(fc & bc));
return Ac;
case 145:
Zc();
wi();
return Ac;
case 148:
Yc();
Mi();
return Ac;
case 149:
Yc();
wi();
return Ac;
case 150:
Vc();
mi();
return Ac;
casMe 152:
kc((ac = sc));
return Ac;
case 153:
zc();
wi();
return Ac;
case 154:
uc = oc;
return Ac;
case 157:
Gc();
wi();
return Ac;
case 160:
Wc();
si();
return Ac;
case 161:
Uc();
ai();
return Ac;
case 162:
Wc();M
oi();
return Ac;
case 164:
Hc();
si();
return Ac;
case 165:
Hc();
ai();
return Ac;
case 166:
Hc();
oi();
return Ac;
case 168:
kc((sc = ac));
return Ac;
case 169:
Wc();
ai();
return Ac;
case 170:
vi();
M return Ac;
case 172:
Fc();
si();
return Ac;
case 173:
Fc();
ai();
return Ac;
case 174:
Fc();
oi();
return Ac;
case 176:
Qc();
jc(fc & bc);
return Ac;
case 177:
Zc();
ai();
Oc(sc);
return Ac;
case 180:
Yc(M);
si();
return Ac;
case 181:
Yc();
ai();
return Ac;
case 182:
Vc();
oi();
return Ac;
case 184:
fc = fc & ~vc & 255;
return Ac;
case 185:
zc();
ai();
Oc(sc);
return Ac;
case 186:
kc((oc = uc));
return Ac;
case 188:
M Gc();
si();
Oc(oc);
return Ac;
case 189:
Gc();
ai();
Oc(oc);
return Ac;
case 190:
zc();
oi();
Oc(sc);
return Ac;
case 192:
Wc();
ei();
return Ac;
case 193:
Uc();
$c();
return Ac;
case 196:
Hc();
M ei();
return Ac;
case 197:
Hc();
$c();
return Ac;
case 198:
Hc();
ni();
return Ac;
case 200:
kc((sc = (sc + 1) & 255));
return Ac;
case 201:
Wc();
$c();
return Ac;
case 202:
kc((oc = (oc - 1) & 255));
return Ac;
case 204:
Fc();
M ei();
return Ac;
case 205:
Fc();
$c();
return Ac;
case 206:
Fc();
ni();
return Ac;
case 208:
Qc();
jc(!(fc & gc));
return Ac;
case 209:
Zc();
$c();
Oc(sc);
return Ac;
case 213:
Yc();
$c();
return Ac;
Mcase 214:
Yc();
ni();
return Ac;
case 216:
fc = fc & ~wc & 255;
return Ac;
case 217:
zc();
$c();
Oc(sc);
return Ac;
case 221:
Gc();
$c();
Oc(oc);
return Ac;
case 222:
Gc();
ni();
return Ac;
case 224:
Wc();
tiM();
return Ac;
case 225:
Uc();
yi();
return Ac;
case 228:
Hc();
ti();
return Ac;
case 229:
Hc();
yi();
return Ac;
case 230:
Hc();
ci();
return Ac;
case 232:
kc((oc = (oc + 1) & 255));
return Ac;
case 233:
Wc();
M yi();
return Ac;
case 234:
return Ac;
case 236:
Fc();
ti();
return Ac;
case 237:
Fc();
yi();
return Ac;
case 238:
Fc();
ci();
return Ac;
case 240:
Qc();
jc(fc & gc);
return Ac;
case 241:
Zc();
yi();
Oc(sc);
M return Ac;
case 245:
Yc();
yi();
return Ac;
case 246:
Yc();
ci();
return Ac;
case 248:
fc |= wc;
return Ac;
case 249:
zc();
yi();
Oc(sc);
return Ac;
case 253:
Gc();
yi();
Oc(oc);
return Ac;
case 254:
M Gc();
ci();
return Ac;
case 75:
Wc();
Xc();
fi();
return Ac;
case 11:
case 43:
Wc();
Xc();
if (128 & ac) {
fc |= bc;
} else {
fc = fc & ~bc & 255;
}
return Ac;
case 179:
Zc();
ai();
vi();
return Ac;
casMe 151:
Vc();
hi();
li();
mi();
Xc();
wi();
Ai();
pi();
return Ac;
case 100:
case 137:
return Ac;
case 4:
case 128:
return Ac;
case 252:
case 251:
case 250:
case 247:
case 244:
case 243:
case 242:
case 239:
caseM 235:
case 231:
case 227:
case 226:
case 223:
case 220:
case 219:
case 218:
case 215:
case 212:
case 211:
case 210:
case 207:
case 203:
case 199:
case 195:
case 194:
case 191:
case 187:
case 183:
case 178:
case 175:
case 171:
case 167:
M case 163:
case 159:
case 158:
case 156:
case 155:
case 147:
case 146:
case 143:
case 139:
case 135:
case 131:
case 130:
case 127:
case 124:
case 123:
case 122:
case 119:
case 116:
case 115:
case 114:
case 111:
case 107:
case 103:
case 99:
M case 98:
case 95:
case 92:
case 91:
case 90:
case 87:
case 84:
case 83:
case 82:
case 79:
case 71:
case 68:
case 67:
case 66:
case 63:
case 60:
case 59:
case 58:
case 55:
case 52:
case 51:
case 50:
case 47:
case 39:
case M35:
case 34:
case 31:
case 28:
case 27:
case 26:
case 23:
case 20:
case 19:
case 18:
case 15:
case 12:
case 7:
case 3:
case 2:
return Ac;
}
return Ac;
};
var vo = function () {
_c(dc.getBH());
_c(dc.getBL());
_c((fc = fc & ~mc & 255));
fc |= yc;
dc.setMBL(ic[Sc]);
dc.setBH(ic[Ec]);
return 7;
};
var Lo = br;
var Io = 454;
var Co = false;
var Eo = false;
var So = 60;
var xo = 0;
var Do = 262;
var No = 0;
var _o = 1;
var To = false;
var ko = false;
p = Io;
let Bo = null;
var Po = 0;
var Oo = 0;
var Fo = 0;
var Go = 0;
Rt(
new jt('onCartridgeLoaded', function () {
To = ar();
M ko = dr();
})
);
var Ko;
var $o;
var ts = 320;
var es = 2;
var ns = 240;
var rs = 26;
var cs = 240;
var is = 240;
var as = true;
var os = new Array(300 * ts);
var ss = null;
var fs = null;
var us = null;
var ds = null;
var ls = null;
var hs = new Array(256);
var As = 'initial';
var ps = false;
var bs = 2;
var gs = 1;
var Mys = 0;
var ws = 0;
var ms = 0;
var Ms = 0;
var vs = 0;
var Ls = false;
var Is = 0;
Rt(
new jt('init', function (t) {
Ss(t);
})
);
window.addEventListener('resize', function () {
Ns();
setTimeout(Ns, 1e3);
});
Rt(
new jt('onCartridgeLoaded', function () {
Is = ir();
Cs();
})
);
var Js = Io;
var Xs = Ni;
M var qs = Di;
var Ks = Za;
var $s = rs;
var tf = es;
var ef = ns;
var nf = cs;
var rf = null;
var cf = ts;
var af = is;
var of = 0;
var sf = 0;
var ff = false;
var uf = false;
var df = 0;
Rt(
new jt('onCartridgeLoaded', function () {
lf(false);
uf = false;
df = 0;
of = 0;
sf = 0;
})
);
var bf = function (t, e, Mn, r, c, i) {
var a = (t = t);
var o = (e = e);
var s = (n = n);
var f = (r = r);
var u = (c = c);
var d = (i = i);
var l = false;
var h = false;
var A = false;
var p = false;
var b = false;
var g = false;
var y = false;
var w = false;
return {
getDefaultLeft: function () {
return a;
},
getLeft: function () {
M return t;
},
setLeft: function (e) {
t = e;
},
getDefaultRight: function () {
return o;
},
getRight: function () {
return e;
},
setRight: function (t) {
e = t;
},
getDefaultUp: function () {
return s;
},
getUp: function () {
return n;
},
setUp: function (t) {
M n = t;
},
getDefaultDown: function () {
return f;
},
getDown: function () {
return r;
},
setDown: function (t) {
r = t;
},
getDefaultButton1: function () {
return u;
},
getButton1: function () {
return c;
},
setButton1: function (t) {
c = t;
},
getDefaultBuMtton2: function () {
return d;
},
getButton2: function () {
return i;
},
setButton2: function (t) {
i = t;
},
isLeft: function () {
return l && (!h || !!y);
},
isRight: function () {
return h && (!l || !y);
},
isUp: function () {
return A && (!p || !!w);
},
isDown: function () {
M return p && (!A || !w);
},
isButton1: function () {
return b;
},
isButton2: function () {
return g;
},
handleKeyCode: function (a, o) {
switch (a) {
case t:
l = o;
if (o) {
y = true;
}
return true;
case n:
A = o;
if (o) {
w M= true;
}
return true;
case e:
h = o;
if (o) {
y = false;
}
return true;
case r:
p = o;
if (o) {
w = false;
}
return true;
case c:
b = o;
return true;
case i:
g = o;
M return true;
}
return false;
},
reset: function () {
y = false;
w = false;
},
};
};
var gf = new bf(37, 39, 38, 40, 90, 88);
var yf = new bf(74, 76, 73, 75, 78, 77);
var wf = false;
var mf = false;
var Mf = false;
var vf = false;
var Lf = false;
var If = 1;
var Cf = 0;
var Ef = 113;
var Sf = Ef;
var xf = 114;
M var Df = xf;
var Nf = 115;
var _f = Nf;
Rt(
new jt('init', function () {
document.onkeydown = function (t) {
Bf(t, true);
};
document.onkeyup = function (t) {
Bf(t, false);
};
})
);
Rt(
new jt('onCartridgeLoaded', function () {
If = wr();
Cf = mr();
})
);
if (!Object.create) {
Object.create = function (t) M{
function e() {}
e.prototype = t;
return new e();
};
}
var Yf =
'ontouchstart' in window ||
navigator.maxTouchPoints > 0 ||
navigator.msMaxTouchPoints > 0;
var Vf =
Yf &&
/android|blackberry|iemobile|ipad|iphone|ipod|opera mini|webos/i.test(
navigator.userAgent
);
var Jf =
/ipad|iphone|ipod/i.test(navigator.userAgent) && !window.MSStream;
var Kf = nMew qf();
var $f = new qf({
isAnalogLeft: function (t, e) {
return this.isAnalogDir(t, e ? 2 : 0, false);
},
isAnalogRight: function (t, e) {
return this.isAnalogDir(t, e ? 2 : 0, true);
},
isAnalogUp: function (t, e) {
return this.isAnalogDir(t, e ? 3 : 1, true);
},
isAnalogDown: function (t, e) {
return this.isAnalogDir(t, e ? 3 : 1, false);
},
isDigitalLeft: function (tM) {
return this.isAnalogDir(t, 4, false);
},
isDigitalRight: function (t) {
return this.isAnalogDir(t, 4, true);
},
isDigitalUp: function (t) {
return this.isAnalogDir(t, 5, true);
},
isDigitalDown: function (t) {
return this.isAnalogDir(t, 5, false);
},
isReset: function (t) {
return this.isPressed(t, 5);
},
isSelect: function (t) {
return this.MisPressed(t, 4);
},
isPause: function (t) {
return false;
},
});
var eu = [new tu(null, Kf), new tu(null, Kf)];
var cu = br;
var iu = function () {
var t = uf || df > 0;
if (df > 0) {
df--;
}
return t;
};
var au = gf;
var ou = yf;
var su = false;
var fu = false;
var uu = null;
var du = true;
Rt(
new jt('init', functionM (t) {
var e = t.keyboardData;
uu = e;
})
);
var pu = {
'4332c24e4f3bc72e7fe1b77adf66c2b7': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
p4: 'f',
xm: 'f',
hs: 't',
},
'0be996d25144966d5541c9eb4919b289': {
ty: '4',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: 'M0',
},
aadde920b3aaba03bc10b40bd0619c94: {
ty: '4',
p: 'f',
c1: '1',
c2: '1',
r: '1',
f: '0',
},
'877dcc97a775ed55081864b2dbf5f1e2': {
ty: '2',
p: 'f',
c1: '2',
c2: '2',
r: '0',
f: '0',
crossx: '8',
crossy: '8',
},
de3e9496cb7341f865f27e5a72c7f2f5: {
ty: '2',
p: 'f',
M c1: '2',
c2: '2',
r: '1',
f: '0',
crossx: '10',
crossy: '-6',
},
'404f95103b70975a42cb09946dc3adca': {
ty: '3',
p: 't',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
'5c66261d7be74184a047f77233919e06': {
ty: '1',
p: 't',
c1: '1',
c2: '1',
r: '0',
f: '0',
hblankM: '8',
},
'212ee2a6e66d8bb7fbf26f343cc8dc19': {
ty: '1',
p: 't',
c1: '1',
c2: '1',
r: '0',
f: '0',
p4: 't',
hblank: '8',
},
'07342c78619ba6ffcc61c10e907e3b50': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
hs: 't',
},
'8fc3a695eaea3984912d98ed4a543376': {
ty: 'M0',
p: 't',
c1: '1',
c2: '1',
r: '0',
f: '0',
hblank: '28',
},
b558814d54904ce0582e2f6a801d03af: {
ty: '0',
p: 't',
c1: '1',
c2: '1',
r: '1',
f: '0',
hblank: '28',
},
'42682415906c21c6af80e4198403ffda': {
ty: '1',
p: 'f',
c1: '2',
c2: '1',
r: '0',
f: 'M0',
crossx: '0',
crossy: '8',
},
babe2bc2976688bafb8b23c192658126: {
ty: '1',
p: 'f',
c1: '2',
c2: '1',
r: '1',
f: '0',
crossx: '0',
crossy: '12',
},
f5f6b69c5eb4b55fc163158d1a6b423e: {
ty: '4',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
fba002089fcfa176454ab507e0ebM76cb: {
ty: '4',
p: 'f',
c1: '1',
c2: '1',
r: '1',
f: '0',
},
'3e63be18e480fa63fce5e4c823286e53': {
ty: '0',
p: 't',
c1: '1',
c2: '1',
r: '1',
f: '0',
},
'5a09946e57dbe30408a8f253a28d07db': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
hs: 't',
M },
'38c056a48472d9a9e16ebda5ed91dae7': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '1',
f: '0',
},
'93e4387864b014c155d7c17877990d1e': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
'59d4edb0230b5acc918b94f6bc94779f': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
M r: '1',
f: '0',
},
'2e8e28f6ad8b9b9267d518d880c73ebb': {
ty: '1',
p: 't',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
'55da6c6c3974d013f517e725aa60f48e': {
ty: '1',
p: 't',
c1: '1',
c2: '1',
r: '1',
f: '0',
},
db691469128d9a4217ec7e315930b646: {
ty: '1',
p: 'f',
c1: '1',M
c2: '1',
r: '0',
f: '0',
},
'7cbe78fa06f47ba6516a67a4b003c9ee': {
ty: '1',
p: 'f',
c1: '1',
c2: '1',
r: '1',
f: '0',
},
a94e4560b6ad053a1c24e096f1262ebf: {
ty: '2',
p: 'f',
c1: '2',
c2: '2',
r: '0',
f: '0',
crossx: '13',
crossy: '8',
},
'63db371d67a98daecM547b2abd5e7aa95': {
ty: '2',
p: 'f',
c1: '2',
c2: '2',
r: '1',
f: '0',
crossx: '15',
crossy: '7',
},
'179b76ff729d4849b8f66a502398acae': {
ty: '1',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
a2b8e2f159642c4b91de82e9a2928494: {
ty: '1',
p: 'f',
c1: '1',
c2: '1',
M r: '1',
f: '0',
},
'95ac811c7d27af0032ba090f28c107bd': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
'2d5d99b993a885b063f9f22ce5e6523d': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '1',
f: '0',
},
'731879ea82fc0ca245e39e036fe293e6': {
ty: '0',
p: 'f',
M c1: '1',
c2: '1',
r: '0',
f: '0',
hs: 't',
},
'408dca9fc40e2b5d805f403fa0509436': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '1',
f: '0',
},
'5e332fbfc1e0fc74223d2e73271ce650': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
'4dc5f88243250461bd61053b13777060': M{
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '1',
f: '0',
},
'19f1ee292a23636bd57d408b62de79c7': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
'8e96ef14ce9b5d84bcbc996b66d6d4c7': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '1',
f: '0',
},
'543M484c00ba233736bcaba2da20eeea9': {
ty: '6',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
de2ebafcf0e37aaa9d0e9525a7f4dd62: {
ty: '6',
p: 'f',
c1: '1',
c2: '1',
r: '1',
f: '0',
},
'2251a6a0f3aec84cc0aff66fc9fa91e8': {
ty: '5',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0M',
},
e7709da8e49d3767301947a0a0b9d2e6: {
ty: '5',
p: 'f',
c1: '1',
c2: '1',
r: '1',
f: '0',
},
d25d5d19188e9f149977c49eb0367cd1: {
ty: '4',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
'23505651ac2e47f3637152066c3aa62f': {
ty: '4',
p: 'f',
c1: '1',
c2: '1',
M r: '1',
f: '0',
},
'07dbbfe612a0a28e283c01545e59f25e': {
ty: '4',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
e80f24e953563e6b61556737d67d3836: {
ty: '4',
p: 'f',
c1: '1',
c2: '1',
r: '1',
f: '0',
},
cf76b00244105b8e03cdc37677ec1073: {
ty: '0',
p: 'f',
c1: '1',
M c2: '1',
r: '0',
f: '0',
hs: 't',
},
de0d4f5a9bf1c1bddee3ed2f7ec51209: {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '1',
f: '0',
},
fb8d803b328b2e442548f7799cfa9a4a: {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
hs: 't',
},
f5dc7dc8e38072d3d65bd90a660148ceM: {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '1',
f: '0',
},
'06204dadc975be5e5e37e7cc66f984cf': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
fd9e78e201b6baafddfd3e1fbfe6ba31: {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
'0baMec96787ce17f390e204de1a136e59': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '1',
f: '0',
},
c3672482ca93f70eafd9134b936c3feb: {
ty: '4',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
'8c2c2a1ea6e9a928a44c3151ba5c1ce3': {
ty: '4',
p: 'f',
c1: '1',
c2: '1',
r: '1',
f: '0M',
},
baebc9246c087e893dfa489632157180: {
ty: '3',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
'80dead01ea2db5045f6f4443faa6fce8': {
ty: '3',
p: 'f',
c1: '1',
c2: '1',
r: '1',
f: '0',
},
'045fd12050b7f2b842d5970f2414e912': {
ty: '3',
p: 'f',
c1: '1',
c2: '1',
M r: '0',
f: '0',
},
dfb86f4d06f05ad00cf418f0a59a24f7: {
ty: '3',
p: 'f',
c1: '1',
c2: '1',
r: '1',
f: '0',
},
f18b3b897a25ab3885b43b4bd141b396: {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
hs: 't',
},
f2dae0264a4b4a73762b9d7177e989f6: {
ty: '0',
p: 'f',
M c1: '1',
c2: '1',
r: '1',
f: '0',
},
c3a5a8692a423d43d9d28dd5b7d109d9: {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
'5e0a1e832bbcea6facb832fde23a440a': {
ty: '4',
p: 'f',
c1: '1',
c2: '1',
r: '1',
f: '0',
},
'17b3b764d33eae9b5260f01df7bb9d2f': {
tMy: '4',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
f57d0af323d4e173fb49ed447f0563d7: {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
'2931b75811ad03f3ac9330838f3d231b': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '1',
f: '0',
},
'431ca060201ee1f9eb49Md44962874049': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
d2e861306be78e44248bb71d7475d8a3: {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '1',
f: '0',
},
'37b5692e33a98115e574185fa8398c22': {
ty: '4',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
M '6819c37b96063b024898a19dbae2df54': {
ty: '4',
p: 'f',
c1: '1',
c2: '1',
r: '1',
f: '0',
},
f2f5e5841e4dda89a2faf8933dc33ea6: {
ty: '4',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
'2e9dbad6c0fa381a6cd1bb9abf98a104': {
ty: '4',
p: 'f',
c1: '1',
c2: '1',
r: '1',
M f: '0',
},
bedc30ec43587e0c98fc38c39c1ef9d0: {
ty: '4',
p: 'f',
c1: '2',
c2: '2',
r: '0',
f: '0',
crossx: '-2',
crossy: '12',
},
c80155d7eec9e3dcb79aa6b83c9ccd1e: {
ty: '4',
p: 'f',
c1: '2',
c2: '2',
r: '1',
f: '0',
crossx: '0',
crossy: '10',
},
bc1e905db10084M93a9632aa83ab4682b: {
ty: '4',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
'6794ea31570eba0b88a0bf1ead3f3f1b': {
ty: '4',
p: 'f',
c1: '1',
c2: '1',
r: '1',
f: '0',
},
'017066f522908081ec3ee624f5e4a8aa': {
ty: '2',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '3',
M },
'3bc8f554cf86f8132a623cc2201a564b': {
ty: '4',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
'5330bfe428a6b601b7e76c2cfc4cd049': {
ty: '4',
p: 'f',
c1: '1',
c2: '1',
r: '1',
f: '0',
},
fc0ea52a9fac557251b65ee680d951e5: {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0M',
f: '0',
hs: 't',
},
'56469e8c5ff8983c6cb8dadc64eb0363': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '1',
f: '0',
},
'220121f771fc4b98cef97dc040e8d378': {
ty: '4',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
ea0c859aa54fe5eaf4c1f327fab06221: {
ty: '4',
p: 'f',
M c1: '1',
c2: '1',
r: '1',
f: '0',
},
'74569571a208f8b0b1ccfb22d7c914e1': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
'8dba0425f0262e5704581d8757a1a6e3': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '1',
f: '0',
},
'1a5207870dec6fae9111cb747e20d8e3': {
ty: 'M0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
'386bded4a944bae455fedf56206dd1dd': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '1',
f: '0',
},
ec206c8db4316eb1ebce9fc960da7d8f: {
ty: '4',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
'05f43244465943ce819780a7M1a5b572a': {
ty: '4',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
'33aea1e2b6634a1dec8c7006d9afda22': {
ty: '4',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
'2837a8fd49b7fc7ccd70fd45b69c5099': {
ty: '4',
p: 'f',
c1: '1',
c2: '1',
r: '1',
f: '0',
},
M '86546808dc60961cdb1b20e761c50ab1': {
ty: '3',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
'584582bb09ee8122e7fc09dc7d1ed813': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
'865457e0e0f48253b08f77b9e18f93b2': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '1',
M f: '0',
},
'1745feadabb24e7cefc375904c73fa4c': {
ty: '3',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
ac03806cef2558fc795a7d5d8dba7bc0: {
ty: '6',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
'442761655bb25ddfe5f7ab16bf591c6f': {
ty: '1',
p: 'f',
c1: '1',
c2:M '1',
r: '0',
f: '0',
},
bfad016d6e77eaccec74c0340aded8b9: {
ty: '1',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
'383ed9bd1efb9b6cb3388a777678c928': {
ty: '1',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
'8f7eb10ad0bd75474abf0c6c36c08486': {
ty: '0',
p: 'f',
M c1: '1',
c2: '1',
r: '0',
f: '0',
},
'66ecaafe1b82ae68ffc96267aaf7a4d7': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
dualanalog: 't',
hs: 't',
},
'980c35ae9625773a450aa7ef51751c04': {
ty: '4',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
'53Mdb322c201323fe2ca8f074c0a2bf86': {
ty: '4',
p: 'f',
c1: '1',
c2: '1',
r: '1',
f: '0',
},
b697d9c2d1b9f6cb21041286d1bbfa7f: {
ty: '4',
p: 'f',
c1: '2',
c2: '2',
r: '0',
f: '0',
crossx: '5',
crossy: '-5',
},
'5469b4de0608f23a5c4f98f331c9e75f': {
ty: '4',
p: 'f',
c1: '2',
M c2: '2',
r: '1',
f: '0',
crossx: '15',
crossy: '20',
},
'2d643ac548c40e58c99d0fe433ba4ba0': {
ty: '3',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
cbb0746192540a13b4c7775c7ce2021f: {
ty: '3',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
cc18e3b37a507c4217eb6cb1Mde8c8538: {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
'162f9c953f0657689cc74ab20b40280f': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '1',
f: '0',
},
'59b5793bece1c80f77b55d60fb39cb94': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
rightMswitch: '1',
},
'95d7c321dce8f57623a9c5b4947bb375': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '1',
f: '0',
rightswitch: '1',
},
'44f862bca77d68b56b32534eda5c198d': {
ty: '1',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
'5c4f752371a523f15e9980fea73b874d': {
ty: '1',
p: 'f',
M c1: '1',
c2: '1',
r: '0',
f: '0',
},
'1af475ff6429a160752b592f0f92b287': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
'3bb9c8d9adc912dd7f8471c97445cd8d': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '1',
f: '0',
},
c3903ab01a51222a52197dbfe6538ecf: {
ty: '0M',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
'682338364243b023ecc9d24f0abfc9a7': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '1',
f: '0',
},
'208ef955fa90a29815eb097bce89bace': {
ty: '4',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
d12e665347f354048b9d1309M2f7868c9: {
ty: '3',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
'8d64763db3100aadc552db5e6868506a': {
ty: '3',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
'32a37244a9c6cc928dcdf02b45365aa8': {
ty: '3',
p: 'f',
c1: '1',
c2: '1',
r: '1',
f: '0',
},
M acf63758ecf3f3dd03e9d654ae6b69b7: {
ty: '1',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
'427cb05d0a1abb068998e2760d77f4fb': {
ty: '1',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
'3799d72f78dda2ee87b0ef8bf7b91186': {
ty: '3',
p: 'f',
c1: '1',
c2: '1',
r: '0',
M f: '0',
},
'05fb699db9eef564e2fe45c568746dbc': {
ty: '4',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
'70937c3184f0be33d06f7f4382ca54de': {
ty: '4',
p: 'f',
c1: '1',
c2: '1',
r: '1',
f: '0',
},
d7dc17379aa25e5ae3c14b9e780c6f6d: {
ty: '0',
p: 'f',
c1: '1',
c2: '1M',
r: '0',
f: '0',
hs: 't',
},
b1a9f196ce5f47ca8caf8fa7bc4ca46c: {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '1',
f: '0',
},
e1f0a708fbc107001fc49ce48151fefa: {
ty: '2',
p: 't',
c1: '1',
c2: '1',
r: '0',
f: '0',
p4: 'f',
xm: 'f',
leftswitch: '0',
rightswitMch: '1',
},
'34483432b92f565f4ced82a141119164': {
ty: '2',
p: 't',
c1: '1',
c2: '1',
r: '0',
f: '0',
p4: 't',
xm: 'f',
leftswitch: '0',
rightswitch: '1',
},
ad35a98040a2facb10ecb120bf83bcc3: {
ty: '2',
p: 't',
c1: '1',
c2: '1',
r: '0',
f: '0',
p4: 'f',
xm: 'f',
M leftswitch: '0',
rightswitch: '1',
},
'707e98991390a4e8874508e5ed4edeef': {
ty: '2',
p: 't',
c1: '1',
c2: '1',
r: '0',
f: '0',
p4: 't',
xm: 'f',
leftswitch: '0',
rightswitch: '1',
},
ec81468e31fde04b67b5b99b7da8edb1: {
ty: '2',
p: 't',
c1: '1',
c2: '1',
r: '0',
f: 'M0',
p4: 't',
xm: 'f',
leftswitch: '0',
rightswitch: '1',
},
'87484e54ab8e45aac978dcc3efd924e5': {
ty: '2',
p: 't',
c1: '1',
c2: '1',
r: '1',
f: '0',
p4: 't',
xm: 'f',
leftswitch: '0',
rightswitch: '1',
},
'1926b9b322ac0f8f36e119b524aa48bd': {
ty: '2',
p: 't',
c1: '1',
M c2: '1',
r: '1',
f: '0',
p4: 't',
xm: 'f',
leftswitch: '0',
rightswitch: '1',
},
'3e4b11a99271fd807b5c6db411dc6643': {
ty: '2',
p: 't',
c1: '1',
c2: '1',
r: '1',
f: '0',
p4: 'f',
xm: 'f',
leftswitch: '0',
rightswitch: '1',
},
'8385daccee02ccda081eed45eba1479d': {
ty: '4'M,
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
p4: 'f',
xm: 'f',
hs: 'f',
},
'9ea73fd07e43f61209876d33e6f6dc04': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
hs: 't',
},
'90fa275f9f2a65b341796e11b2f551af': {
ty: '3',
p: 'f',
c1: '1',
c2: '1',
M r: '0',
f: '0',
},
'299d31c8e181fdd011df2014451bdf0f': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
leftswitch: '0',
rightswitch: '1',
hs: 't',
},
'3209039148e0b7a2b1927bd05bae4685': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
leftswitch: '0',
M rightswitch: '1',
},
'32e937e7796db3a01e9bcf5fe93929b0': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
leftswitch: '0',
rightswitch: '1',
},
a60e4b608505d1fb201703b266f754a7: {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
dualanalog: 't',
hs: 't',
},
M dbb493bdc4e98436dbbfd4f2e4413397: {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '1',
f: '0',
},
'54829fb744d4cd7a794ccd2580df7c3d': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '1',
f: '0',
},
f2047b149e72be8f97e9671314748ec4: {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f:M '0',
},
'42fa4bd854a2813b19099da524461a64': {
ty: '7',
p: 'f',
c1: '1',
c2: '1',
r: '1',
f: '0',
},
f5150c0fc1948832211e57852abb0c6e: {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
xm: 't',
hs: 't',
},
a8458c510fdd71a1f9cc4c0b243b177a: {
ty: '7',
p: 'f',
M c1: '1',
c2: '1',
r: '0',
f: '0',
},
'67ee0011090a6ada38f3eef8a3020fb4': {
ty: '1',
p: 't',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
'13f11c4e8c019ee326b571d059accea4': {
ty: '0',
p: 't',
c1: '1',
c2: '1',
r: '0',
f: '0',
p4: 't',
},
'608fa599f06f935e05d445ff236f6d7Ma': {
ty: '2',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
sb: 't',
},
a65f79ad4a0bbdecd59d5f7eb3623fd7: {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
hs: 't',
},
'3d38281ed8a8d8c7cd457a18c92c8604': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
M f: '0',
hs: 't',
},
'55ffe535897c368be7a80d582f6a68cb': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
hs: 't',
},
a51e5df28a0fe8c52e9d28fb5f8e44a6: {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
hs: 't',
},
b4be9c25ea078608310f0ddc409e7cc1: {
ty:M '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
hs: 't',
},
'78b1061d651ef806becac1dd3fda29a0': {
ty: '0',
p: 't',
c1: '1',
c2: '1',
r: '0',
f: '0',
hs: 't',
},
'6010a398070dfacb4c0173d75d73c50a': {
ty: '0',
p: 't',
c1: '1',
c2: '1',
r: '0',
f: '0',
M },
'9fa7743a016c9b7015ee1d386326f88e': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
hs: 't',
},
af1c8f89f0aef0d9e2e15901d6e0539a: {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '1',
f: '0',
},
'2d2fe4da9f1bae102fa8ca2d8830a626': {
ty: '0',
p: 'f',
c1: '1',
Mc2: '1',
r: '0',
f: '0',
hs: 't',
},
'100551363027dc5f093d049a5fd00933': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
hs: 't',
},
'40bd21c9698c6b8e71b703f860c11359': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
cf3c5a32205506af3c09e6e0c82cfa09: {
M ty: '2',
p: 't',
c1: '1',
c2: '1',
r: '0',
f: '0',
p4: 't',
hs: 't',
},
c956d5ce7417cc2dab61a9afd8f372d0: {
ty: '2',
p: 't',
c1: '1',
c2: '1',
r: '0',
f: '0',
p4: 't',
hs: 't',
},
df700753d8ba9353a7045868778eef6d: {
ty: '2',
p: 't',
c1: '1',
Mc2: '1',
r: '1',
f: '0',
p4: 't',
},
'098b209aac126f2c2edbc982df09cd1b': {
ty: '6',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
'4565867aa6e5cc710a7edaf6d434b3af': {
ty: '6',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
fab1290f9a4c4f2b4d831c8a57f969f5: {
ty: '1',
M p: 't',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
a9f29004412621f20ad9f5c51cc11486: {
ty: '4',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
fa4aec407b90e9360b9cfeb41839b09a: {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
hs: 't',
},
'6287727ab36M391a62f728bbdee88675c': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
hs: 't',
},
'84c4b4ed75f41417ac7cbceac71e3856': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '1',
f: '0',
},
'2fb85cab6e0f0582e3057bf1ac33c74a': {
ty: '4',
p: 'f',
c1: '1',
c2: '1',
r: '0',
M f: '0',
},
e7d89669a7f92ec2cc99d9663a28671c: {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
xm: 'f',
hs: 't',
},
'6053233cb59c0b4ca633623fd76c4576': {
ty: '0',
p: 't',
c1: '1',
c2: '1',
r: '0',
f: '0',
hs: 't',
},
ee09789d61a693e387ccdc9a2f025b43: {
tyM: '0',
p: 't',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
'3d12489c553cb1a90c8ebd6534383fa1': {
ty: '0',
p: 't',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
'1e21bf1d9d7b3c0cebaac576964c9eb2': {
ty: '4',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
'46dbc5108151e963b12M0cdaedd7d6d4c': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
hs: 't',
},
'25ce1f5dfc909bcb46086e414d6a0f30': {
ty: '4',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
'61809684eefd6cbb2963574ffb0a3fab': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
M f: '0',
dualanalog: 't',
},
bf070f04c8fc7ec721b9506b63b48470: {
ty: '3',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
'4a811d87d1730a334a21e7bda9fe535a': {
ty: '3',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
'05c21a88fd736d59d28b1d95e79840b6': {
ty: '3',
p: 'f',
cM1: '1',
c2: '1',
r: '0',
f: '0',
},
dde5703c488c4ad5268c2696704f1c68: {
ty: '3',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
f4216cb77cd6db15225968f315c9793f: {
ty: '3',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
e54edc299e72d22d0ba05d16f3393e8c: {
ty: '0',
M p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
hs: 't',
},
bde3abe40d302d8c4c65c9690c05dbc4: {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
hs: 't',
},
e274e7285bb8f97d4d9acddc8497ed9e: {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '1',
f: '0',
},
M '5fb805f2b69820a9b196f5fed2a23c99': {
ty: '4',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
'114e215b8cfc8698bc0286a79e1cb9b2': {
ty: '0',
p: 't',
c1: '1',
c2: '0',
r: '0',
f: '0',
},
eb3c1443f4a25806de4657e106d504e8: {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
M f: '0',
},
c3f6201d6a9388e860328c963a3301cc: {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
hs: 't',
},
dc0bf52475030c05671dd187e9a99f08: {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '1',
f: '0',
},
'4a702b995fca8591e2d14268cb123447': {
ty: '3',
p: 't',
c1: '1',
M c2: '1',
r: '0',
f: '0',
p4: 't',
hs: 'f',
},
'9ff38ea62004201d870caa8bd9463525': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
hs: 't',
},
'3a15fe7bead3d9b90f3fb13d63e1ee42': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
hs: 't',
M },
'675c5b79238eaa641f2e3fe9c5e22589': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '1',
f: '0',
},
'89f90b661d1b79e956b10bb6a9771f78': {
ty: '0',
p: 't',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
d8dbb5c4d7d02e6b0627df8f657a13b4: {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0'M,
f: '0',
hs: 't',
},
'27c133965dfd80b3acb1ed598817aea0': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
hs: 't',
},
cf007563fe94cacf5ea5295dc93ce9ef: {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
hs: 't',
},
cad1e733986bce1ee4c9da73de1dcff1: {
M ty: '0',
p: 't',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
db768297985178cec034c12a41d6f1a7: {
ty: '0',
p: 't',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
'889fc7e7ba5c807be44e85ba7a6bd26e': {
ty: '0',
p: 't',
c1: '1',
c2: '1',
r: '0',
f: '0',
hs: 't',
},
M bc56f803d65658f92c17e6c2b271a507: {
ty: '0',
p: 't',
c1: '1',
c2: '1',
r: '1',
f: '0',
},
'2a17dc5a61be342dd00af719cc335852': {
ty: '0',
p: 't',
c1: '1',
c2: '1',
r: '0',
f: '0',
hs: 't',
},
'99055c3e627bbc17fc81cbe0b3ae176c': {
ty: '0',
p: 't',
c1: '1',
c2: '1',
M r: '1',
f: '0',
},
a69347c8a681b8e94f79d8d848998007: {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
hs: 't',
},
'79202cb7d2bc150ffca0c96a4d8b42cf': {
ty: '1',
p: 't',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
'04edf4f3c6b186147c1117359c8f5076': {
ty: '0',
p: 'f',
M c1: '1',
c2: '1',
r: '0',
f: '0',
rightswitch: '1',
hs: 't',
},
'8338eca612eedf6ddec57d54942863e7': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
rightswitch: '1',
},
'575c18f77a4215332bf56d0080a234b8': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
M f: '0',
rightswitch: '1',
},
'72ec68627bb7d879ae35a71d7679f71e': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
rightswitch: '1',
hs: 't',
},
'60982f430b762343d53e48f70acfa6d0': {
ty: '0',
p: 't',
c1: '1',
c2: '1',
r: '0',
f: '0',
hs: 't',
},
'180121ecb4aabc7Mdaa945b355e15c254': {
ty: '0',
p: 't',
c1: '1',
c2: '1',
r: '1',
f: '0',
},
'4fb119f6db26380abba03e4ce3ca04c8': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
rightswitch: '1',
},
'0b7635d0f39ff97d1e841888e1b23b7b': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0M',
f: '0',
rightswitch: '1',
},
'368c3bfa91cf2bb8413967eb0c392c6c': {
ty: '0',
p: 't',
c1: '1',
c2: '1',
r: '0',
f: '0',
p4: 'f',
xm: 'f',
hs: 't',
},
'5013b69cb05b21a1194ce48517df7bfc': {
ty: '0',
p: 't',
c1: '1',
c2: '1',
r: '0',
f: '0',
p4: 'f',
xm:M 'f',
hs: 't',
},
'6f80cac59023a69afa26182eabbdfbad': {
ty: '0',
p: 't',
c1: '1',
c2: '1',
r: '0',
f: '0',
hs: 't',
},
b1685dcbaf1b578cb1b6643666d813e4: {
ty: '0',
p: 't',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
'4748a62d5c628fefd28df5de5567edec': {
ty: '0',
p: 'f',
M c1: '1',
c2: '1',
r: '0',
f: '0',
rightswitch: '1',
},
'1d7d65997d7cd0858e9bee71ded272aa': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
rightswitch: '1',
},
'791e55db03903988280388573a2fcdc1': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
riMghtswitch: '1',
hs: 't',
},
d0bf3b841ad4bbd356e9588874749a13: {
ty: '0',
p: 't',
c1: '1',
c2: '1',
r: '0',
f: '0',
p4: 't',
xm: 'f',
},
'1482beef7dbdb122f6bb4b03640888f2': {
ty: '0',
p: 't',
c1: '1',
c2: '1',
r: '1',
f: '0',
p4: 't',
xm: 'f',
},
e84976a352M9915ac91b964fab03aedb2: {
ty: '1',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '1',
p4: 'f',
xm: 't',
hs: 't',
},
'08055591f95a54a34dd90d90ae5dec24': {
ty: '1',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '1',
p4: 'f',
xm: 't',
hs: 't',
},
'9fac7d0433dc3d936efce5c713488b08': {
M ty: '1',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '1',
p4: 'f',
xm: 't',
hs: 't',
},
f3f4482b3551667a52d9b657e15cd2bf: {
ty: '1',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '1',
p4: 'f',
xm: 't',
hs: 't',
},
'044657294450c869c45e7ef61f4870de': {
ty: '1',
M p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '1',
p4: 'f',
xm: 't',
hs: 't',
},
d00e6962a2f9869b16cb46c8eb6126fc: {
ty: '1',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '1',
p4: 't',
xm: 't',
hs: 't',
},
c0fcce51fa95f4e1d69e1ca6aa2ce5a8: {
ty: '1',
p: 'f',
c1: 'M1',
c2: '1',
r: '0',
f: '1',
p4: 't',
xm: 't',
hs: 't',
},
'1e52e73d5862a7247ba0f93eff5b0370': {
ty: '1',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '1',
p4: 't',
xm: 't',
hs: 't',
},
bef783d15a103b51db03a866d7a0b273: {
ty: '1',
p: 'f',
c1: '1',
c2: '1',
M r: '0',
f: '1',
p4: 't',
xm: 't',
hs: 't',
},
'61c5f654b340379f69ada4bc4cc2d5d0': {
ty: '1',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '1',
p4: 't',
xm: 't',
hs: 't',
},
'6335d94cf614f38a5cd85c4219eb24f1': {
ty: '1',
p: 'f',
c1: '1',
c2: '1',
r: '0',
M f: '1',
p4: 't',
xm: 't',
hs: 't',
},
'39dc7f6f39f9b3e341a5ffea76e71fb1': {
ty: '1',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '1',
p4: 'f',
xm: 't',
hs: 't',
},
'8cb66c6ed5b379181b1420d8e4758834': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
duaMlanalog: 't',
},
c1ac9987a9483e200c338ccbd2ee94b5: {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
dualanalog: 't',
},
b5c9f0bf5b5763a923b7f370376b1849: {
ty: '4',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
b55e4d255173e5b2c2e620f3186a1ecc: {
ty: '0',
p: 'f',
cM1: '1',
c2: '1',
r: '0',
f: '0',
rightswitch: '1',
},
'26897ab47b8c5d3b57d3cc235d7635d8': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
rightswitch: '1',
},
'2b1f78aaa2b8de5dae3ee4b93ab678f4': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
rightswitchM: '1',
},
a3a4dbd27c80eff9bef51f73cd26f1d5: {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
rightswitch: '1',
},
'43a0059ff1b5bf76e0c7023fde7c33a5': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
rightswitch: '1',
},
a8e752d108efceff504ae4edc4766b75: {
ty: '0',
M p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
rightswitch: '1',
},
'04c985ebbd0bea4c557207e69b8cbd8f': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
rightswitch: '1',
},
bc1f56d7cc14f15ddfcba5e21e19937b: {
ty: '2',
p: 't',
c1: '1',
c2: '1',
r: '0',
f: '0',M
leftswitch: '0',
rightswitch: '1',
},
'8e0c5fc77b27422a39d86ac2e57dc73d': {
ty: '0',
p: 't',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
f9fa5107ed213e709858d8876359309e: {
ty: '0',
p: 't',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
'2370f7ce1b91fc775bce3e72454f908a': {
ty: '0',
Mp: 't',
c1: '1',
c2: '1',
r: '0',
f: '0',
p4: 't',
},
b4f137e85588ce42d302102ba7215437: {
ty: '0',
p: 't',
c1: '1',
c2: '1',
r: '0',
f: '0',
p4: 't',
},
e1b01dd7e842d2b682ef48f689d5a4eb: {
ty: '4',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
'M43525a0405184875c2ecfd0196886a34': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
xm: 'f',
hs: 't',
},
'803743fe18600f292456539906464421': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
xm: 'f',
hs: 't',
},
'106b409c6f4c219b1a3b3d099ead3b2b': {
ty: '0',
M p: 'f',
c1: '1',
c2: '1',
r: '1',
f: '0',
xm: 'f',
},
'03daa19b7aae2d27e61f2a4dbe3b9b79': {
ty: '0',
p: 't',
c1: '1',
c2: '1',
r: '1',
f: '0',
},
'03935b9a1f2561bada58fcd5d9fd27de': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
dualanalog: 't',
M},
d27ed8f883af9b4ee3b5570f30e9ff71: {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
dualanalog: 't',
},
'01c7bc3cd8375e353c8aa837fe1262ec': {
ty: '4',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
a3a85e507d6f718972b1464ce1aaf8a4: {
ty: '0',
p: 'f',
c1: '1',
c2M: '1',
r: '0',
f: '0',
xm: 'f',
hs: 't',
},
'31b20a4710e691300bb4aa62cf02284c': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
xm: 'f',
hs: 't',
},
'32f1a1b5a7e3b4493c3b7b637aeea7d8': {
ty: '4',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
M '6e27f73bd4a49b647bcd58bc5f8b739d': {
ty: '4',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
'0070751edb8bbf4dd4a685f58b5b72c5': {
ty: '4',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
},
'9bd70c06d3386f76f8162881699a777a': {
ty: '3',
p: 't',
c1: '1',
c2: '1',
r: '0',
M f: '0',
p4: 't',
hs: 'f',
},
'95c8a795e30640c9ec82609872c80517': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
rightswitch: '1',
},
'1c8139c584e1cf5c6afdd2f3455a2446': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '1',
f: '0',
},
ca1c27b53fcfb9fed83bc9e92920707c: {
M ty: '4',
p: 'f',
c1: '0',
c2: '0',
r: '0',
f: '0',
},
'771cb4609347657f63e6f0eb26036e35': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
hs: 't',
},
a84c1b2300fbfbf21b1c02387f613dad: {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '1',
f: '0',
},
M '6adf79558a3d7f5beca1bb8d34337417': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
hs: 't',
},
'783d09ad9542b0bb28aa4cc6ffcf8aa6': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
hs: 't',
},
'0f4bd5800359a62a5874b93dc92a47f1': {
ty: '2',
p: 'f',
c1: '1',
M c2: '1',
r: '0',
f: '0',
},
'02508e6df5e173b4063a7e6e63295817': {
ty: '0',
p: 't',
c1: '1',
c2: '1',
r: '0',
f: '0',
p4: 't',
xm: 'f',
hs: 't',
},
'81cee326b99d6831de10a566e338bd25': {
ty: '0',
p: 't',
c1: '1',
c2: '1',
r: '0',
f: '0',
hs: 't',
},
M '1c9b0bb028e63f83a2d1c1def675acc9': {
ty: '0',
p: 't',
c1: '1',
c2: '1',
r: '1',
f: '0',
xm: 'f',
},
f4ad1a1d732c2c8cdbd21dabaf38a46c: {
ty: '0',
p: 't',
c1: '1',
c2: '1',
r: '1',
f: '0',
p4: 'f',
xm: 'f',
hs: 'f',
},
f41f651417c234104d37296477fa29eb: {
ty: '0',
M p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
p4: 'f',
xm: 'f',
hs: 't',
},
'7ab539bb0e99e1e5a1c89230bde64610': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
p4: 'f',
xm: 'f',
hs: 't',
},
'88b9de0eba37ba516590fa8b860155f0': {
ty: '0',
p: 'f',
M c1: '1',
c2: '1',
r: '0',
f: '0',
p4: 'f',
xm: 'f',
hs: 't',
},
'61aa4a074ad08c524fbee88d15e369ea': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '1',
f: '0',
p4: 'f',
xm: 'f',
hs: 'f',
},
'3632fcc732a33591b91f0eea2c01e599': {
ty: '4',
p: 'f',
c1: '1',
c2:M '1',
r: '0',
f: '0',
p4: 'f',
xm: 'f',
hs: 'f',
},
d0b87d349d6d5e40920cc4ff95253339: {
ty: '4',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
p4: 'f',
xm: 'f',
hs: 'f',
},
'9cb3848416e39ebf642357dbee3e5970': {
ty: '3',
p: 'f',
c1: '1',
c2: '0',
r: '0',
M f: '0',
p4: 'f',
xm: 'f',
hs: 'f',
},
b1ec7bd809ab3deb746c5a5eb2efaecb: {
ty: '0',
p: 't',
c1: '1',
c2: '1',
r: '0',
f: '0',
p4: 'f',
xm: 'f',
hs: 'f',
},
'43f8e9cec3d9991017709f48a7aa22f6': {
ty: '0',
p: 't',
c1: '1',
c2: '1',
r: '0',
f: '0',
M p4: 'f',
xm: 'f',
hs: 'f',
},
f85d506f5933427c8de664be0c5510a3: {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
p4: 'f',
xm: 'f',
hs: 't',
},
f83849cf3f5ac95856e8f93ee90d5a8d: {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
p4: 'f',
xm: 'f'M,
hs: 'f',
rightswitch: '1',
},
c62632545c91823f72f6f14b19766804: {
ty: '0',
p: 't',
c1: '1',
c2: '1',
r: '0',
f: '0',
p4: 'f',
xm: 'f',
hs: 'f',
},
'40913dcf24a623c1dc2495a1c4931b48': {
ty: '4',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
p4: 'f',
xm: 'Mf',
hs: 'f',
},
'8b49549763f4f0e42a23942b8df6b248': {
ty: '4',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
p4: 'f',
xm: 'f',
hs: 'f',
},
'7db031f1c4dc957719812fe68ee42531': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '1',
f: '0',
p4: 'f',
xm: 'f',
hs: 'f',
M },
'5837c4ac8b481fb98381adfd2fe87969': {
ty: '0',
p: 't',
c1: '1',
c2: '1',
r: '0',
f: '0',
p4: 'f',
xm: 'f',
hs: 'f',
},
'05b04e9822a75ceeeaa2eb106ffe768e': {
ty: '4',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
p4: 'f',
xm: 'f',
hs: 'f',
},
'727Mb6d447e21af42b3767f9c2cff6012': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
p4: 'f',
xm: 'f',
hs: 't',
},
c3107d3e3e17d67e3a11d47a5946a4f3: {
ty: '2',
p: 't',
c1: '1',
c2: '1',
r: '0',
f: '0',
p4: 'f',
xm: 'f',
hs: 't',
},
'8caa29a8d9214ca02697b3357102309Ma': {
ty: '2',
p: 't',
c1: '1',
c2: '1',
r: '1',
f: '0',
p4: 'f',
xm: 'f',
hs: 'f',
},
b3143adbbb7d7d189e918e5b29d55a72: {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
p4: 'f',
xm: 'f',
hs: 't',
},
e547492ebd342e57c28bb235546da299: {
ty: '0',
M p: 'f',
c1: '1',
c2: '1',
r: '1',
f: '0',
p4: 'f',
xm: 'f',
hs: 'f',
},
'89b8b3df46733e0c4d57aeb9bb245e6f': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
p4: 'f',
xm: 'f',
hs: 't',
},
eea04359df6770d66b0d97c2cea1932f: {
ty: '0',
p: 'f',
M c1: '1',
c2: '1',
r: '0',
f: '0',
p4: 'f',
xm: 'f',
hs: 't',
},
'7cdfbe37634e7dcd4dc67db7edbcd3ba': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
p4: 'f',
xm: 'f',
hs: 'f',
},
'1ae0b27d47f19d59652168fad3966375': {
ty: '0',
p: 't',
c1: '1',
c2: M'1',
r: '1',
f: '0',
p4: 'f',
xm: 'f',
hs: 'f',
},
'35433868dfe383ae21fd77507e5a478d': {
ty: '0',
p: 't',
c1: '1',
c2: '1',
r: '0',
f: '0',
p4: 't',
xm: 'f',
hs: 'f',
},
'59f1c1e7f6653a4e66ea898ce6eab50f': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
M f: '0',
p4: 'f',
xm: 'f',
hs: 't',
},
c2b42639718d005a6d0aefa0809f77db: {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '1',
f: '0',
p4: 'f',
xm: 'f',
hs: 'f',
},
'80ffad3edb50f0970e780a727a4524dd': {
ty: '0',
p: 't',
c1: '1',
c2: '1',
r: '0',
f: '0',
M p4: 'f',
xm: 'f',
hs: 't',
},
d9a110d889c4d42089c61fade25af220: {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
p4: 'f',
xm: 'f',
hs: 't',
},
'79df20ee86a989e669158bcb9d113e8a': {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
p4: 'f',
xm: M'f',
hs: 't',
},
f982c7dbf74c9c049cf7f875a46ed818: {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
p4: 'f',
xm: 'f',
hs: 't',
},
ff8d8283553af5d5dbdaddb5781b4896: {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
p4: 'f',
xm: 'f',
hs: 't',
M },
a466a699324d11e1a2594cc89a9f18e1: {
ty: '0',
p: 'f',
c1: '1',
c2: '1',
r: '0',
f: '0',
p4: 'f',
xm: 't',
hs: 'f',
leftswitch: '0',
},
'0c097bc8c786af182935081ac5cd631f': {
ty: '0',
p: 't',
c1: '1',
c2: '1',
r: '0',
f: '0',
p4: 'f',
xm: 't',
hs: 't',
M },
a662862f20362fc5eb5c651065cbd51c: {
ty: '3',
p: 't',
c1: '1',
c2: '1',
r: '0',
f: '0',
p4: 'f',
xm: 't',
hs: 'f',
dualanalog: 't',
},
};
var bu = Xf;
gu.prototype = {
createElement: function () {
this.el = this.doCreateElement();
var t = this.getClass();
if (t) {
this.el.className = t;M
}
return this.el;
},
getClass: function () {
return null;
},
getElement: function () {
return this.el;
},
doCreateElement: function () {
return null;
},
};
yu.prototype = Object.create(gu.prototype);
bu(yu.prototype, {
getClass: function () {
return 'js7800__controls-button';
},
doCreateElement: function () {
Mvar t = document.createElement('button');
var e = this;
t.onclick = function (t) {
e.onClick(t);
};
t.onmousedown = function (t) {
e.onDown(t);
};
t.onmouseup = function (t) {
e.onUp(t);
};
var n = document.createTextNode(this.text);
t.appendChild(n);
if (this.title) {
t.setAttribute('title', this.title);
}
return t;
M },
onClick: function (t) {},
onDown: function (t) {},
onUp: function (t) {},
});
wu.prototype = Object.create(gu.prototype);
bu(wu.prototype, {
getClass: function () {
return 'js7800__controls-switch';
},
doCreateElement: function () {
var t = document.createElement('label');
t.setAttribute('title', this.title);
var e = document.createElement('input');
this.cb = e;M
e.setAttribute('type', 'checkbox');
var n = this;
e.onclick = function (t) {
n.onClick(t);
};
t.appendChild(e);
var r = document.createElement('span');
r.className = this.getClass() + '-slider';
t.appendChild(r);
return t;
},
setValue(t) {
this.cb.checked = t;
},
getValue() {
return this.cb.checked;
},
onClick: Mfunction (t) {},
});
var mu =
'data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4NCjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+DQo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHZlcnNpb249IjEuMSIgIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij4NCiAgIDxwYXRoIGZpbGw9IiNGRkZGRkYiIGQ9Ik0xNS45LDE4LjQ1QzE3LjI1LMDE4LjQ1IDE4LjM1LDE3LjM1IDE4LjM1LDE2QzE4LjM1LDE0LjY1IDE3LjI1LDEzLjU1IDE1LjksMTMuNTVDMTQuNTQsMTMuNTUgMTMuNDUsMTQuNjUgMTMuNDUsMTZDMTMuNDUsMTcuMzUgMTQuNTQsMTguNDUgMTUuOSwxOC40NU0yMS4xLDE2LjY4TDIyLjU4LDE3Ljg0QzIyLjcxLDE3Ljk1IDIyLjc1LDE4LjEzIDIyLjY2LDE4LjI5TDIxLjI2LDIwLjcxQzIxLjE3LDIwLjg2IDIxLDIwLjkyIDIwLjgzLDIwLjg2TDE5LjA5LDIwLjE2QzE4LjczLDIwLjQ0IDE4LjMzLDIwLjY3IDE3LjkxLDIwLjg1TDE3LjY0LDIyLjdDMTcuNjIsMjIuODcgMTcuNDcsMjMgMTcuMywyM0gxNC41QzE0LjMyLDIzIDE0LjE4LDIyLjg3IDE0LjE1LDIyLjdMMTMuODksMjAuODVDMTMuNDYsMjAuNjcgMTMuMDcsMMjAuNDQgMTIuNzEsMjAuMTZMMTAuOTYsMjAuODZDMTAuODEsMjAuOTIgMTAuNjIsMjAuODYgMTAuNTQsMjAuNzFMOS4xNCwxOC4yOUM5LjA1LDE4LjEzIDkuMDksMTcuOTUgOS4yMiwxNy44NEwxMC43LDE2LjY4TDEwLjY1LDE2TDEwLjcsMTUuMzFMOS4yMiwxNC4xNkM5LjA5LDE0LjA1IDkuMDUsMTMuODYgOS4xNCwxMy43MUwxMC41NCwxMS4yOUMxMC42MiwxMS4xMyAxMC44MSwxMS4wNyAxMC45NiwxMS4xM0wxMi43MSwxMS44NEMxMy4wNywxMS41NiAxMy40NiwxMS4zMiAxMy44OSwxMS4xNUwxNC4xNSw5LjI5QzE0LjE4LDkuMTMgMTQuMzIsOSAxNC41LDlIMTcuM0MxNy40Nyw5IDE3LjYyLDkuMTMgMTcuNjQsOS4yOUwxNy45MSwxMS4xNUMxOC4zMywxMS4zMiAxOC43MywxMS41NiAxOMS4wOSwxMS44NEwyMC44MywxMS4xM0MyMSwxMS4wNyAyMS4xNywxMS4xMyAyMS4yNiwxMS4yOUwyMi42NiwxMy43MUMyMi43NSwxMy44NiAyMi43MSwxNC4wNSAyMi41OCwxNC4xNkwyMS4xLDE1LjMxTDIxLjE1LDE2TDIxLjEsMTYuNjhNNi42OSw4LjA3QzcuNTYsOC4wNyA4LjI2LDcuMzcgOC4yNiw2LjVDOC4yNiw1LjYzIDcuNTYsNC45MiA2LjY5LDQuOTJBMS41OCwxLjU4IDAgMCwwIDUuMTEsNi41QzUuMTEsNy4zNyA1LjgyLDguMDcgNi42OSw4LjA3TTEwLjAzLDYuOTRMMTEsNy42OEMxMS4wNyw3Ljc1IDExLjA5LDcuODcgMTEuMDMsNy45N0wxMC4xMyw5LjUzQzEwLjA4LDkuNjMgOS45Niw5LjY3IDkuODYsOS42M0w4Ljc0LDkuMThMOCw5LjYyTDcuODEsMTAuODFDNy43OSwxMC45MMiA3LjcsMTEgNy41OSwxMUg1Ljc5QzUuNjcsMTEgNS41OCwxMC45MiA1LjU2LDEwLjgxTDUuNCw5LjYyTDQuNjQsOS4xOEwzLjUsOS42M0MzLjQxLDkuNjcgMy4zLDkuNjMgMy4yNCw5LjUzTDIuMzQsNy45N0MyLjI4LDcuODcgMi4zMSw3Ljc1IDIuMzksNy42OEwzLjM0LDYuOTRMMy4zMSw2LjVMMy4zNCw2LjA2TDIuMzksNS4zMkMyLjMxLDUuMjUgMi4yOCw1LjEzIDIuMzQsNS4wM0wzLjI0LDMuNDdDMy4zLDMuMzcgMy40MSwzLjMzIDMuNSwzLjM3TDQuNjMsMy44Mkw1LjQsMy4zOEw1LjU2LDIuMTlDNS41OCwyLjA4IDUuNjcsMiA1Ljc5LDJINy41OUM3LjcsMiA3Ljc5LDIuMDggNy44MSwyLjE5TDgsMy4zOEw4Ljc0LDMuODJMOS44NiwzLjM3QzkuOTYsMy4zMyAxMC4wOCwzLjM3IDEwLMjEzLDMuNDdMMTEuMDMsNS4wM0MxMS4wOSw1LjEzIDExLjA3LDUuMjUgMTEsNS4zMkwxMC4wMyw2LjA2TDEwLjA2LDYuNUwxMC4wMyw2Ljk0WiIgLz4NCjwvc3ZnPg==';
var Mu =
'data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4NCjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+DQo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHZlcnNpb249IjEuMSIgIHdpZHRoPSIyNCIgaGVpMZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij4NCiAgIDxwYXRoIGZpbGw9IiNmZmZmZmYiIGQ9Ik0xMSw5SDEzVjdIMTFNMTIsMjBDNy41OSwyMCA0LDE2LjQxIDQsMTJDNCw3LjU5IDcuNTksNCAxMiw0QzE2LjQxLDQgMjAsNy41OSAyMCwxMkMyMCwxNi40MSAxNi40MSwyMCAxMiwyME0xMiwyQTEwLDEwIDAgMCwwIDIsMTJBMTAsMTAgMCAwLDAgMTIsMjJBMTAsMTAgMCAwLDAgMjIsMTJBMTAsMTAgMCAwLDAgMTIsMk0xMSwxN0gxM1YxMUgxMVYxN1oiIC8+DQo8L3N2Zz4=';
var vu =
'data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4NCjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcMgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+DQo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHZlcnNpb249IjEuMSIgIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij4NCiAgIDxwYXRoIGZpbGw9IiNmZmZmZmYiIGQ9Ik0yMCwySDRWNEw5LjgxLDguMzZDNi4xNCw5LjU3IDQuMTQsMTMuNTMgNS4zNSwxNy4yQzYuNTYsMjAuODcgMTAuNSwyMi44NyAxNC4xOSwyMS42NkMxNy44NiwyMC40NSAxOS44NiwxNi41IDE4LjY1LDEyLjgyQzE3Ljk1LDEwLjcxIDE2LjMsOS4wNSAxNC4xOSw4LjM2TDIwLDRMWMk0xNC45NCwxOS41TDEyLDE3Ljc4TDkuMDYsMTkuNUw5Ljg0LDE2LjE3TDcuMjUsMTMuOTNMMTAuNjYsMTMuNjRMMTIsMTAuNUwxMy4zNCwxMy42NEwxNi43NSwxMy45M0wxNC4xNiwxNi4xN0wxNC45NCwxOS41WiIgLz4NCjwvc3ZnPg==';
var Lu = Xf;
var Iu = gu;
var Cu = yu;
var Eu = wu;
Su.prototype = Object.create(Iu.prototype);
Lu(Su.prototype, {
getClass: function () {
return 'js7800__controls-group';
},
doCreateElement: function () {
var t = document.createElemeMnt('div');
for (var e = 0; e < this.children.length; e++) {
t.appendChild(this.children[e].createElement());
}
return t;
},
addChild: function (t) {
this.children.push(t);
},
addChildAtIndex: function (t, e) {
this.children.splice(t, 0, e);
},
});
xu.prototype = Object.create(Su.prototype);
Lu(xu.prototype, {
getClass: function () {
return 'js7800_M_controls-group-start';
},
});
Du.prototype = Object.create(Su.prototype);
Lu(Du.prototype, {
getClass: function () {
return 'js7800__controls-group-end';
},
});
Nu.prototype = Object.create(Iu.prototype);
Lu(Nu.prototype, {
getClass: function () {
return 'js7800__controls-img-button';
},
doCreateElement: function () {
var t = this;
var e = document.createElemenMt('a');
this.anchor = e;
e.setAttribute('draggable', 'false');
e.setAttribute('role', 'button');
e.setAttribute('tabindex', '0');
e.onkeydown = function (e) {
var n = e.which;
if (n === 13 || n === 32) {
t.onClick(e);
}
};
e.onmousedown = function (t) {
t.preventDefault();
};
e.onclick = function (e) {
t.onClick(e);
M };
var n = document.createElement('img');
this.img = n;
n.setAttribute('draggable', 'false');
n.setAttribute('src', this.imageSrc);
n.setAttribute('title', this.title);
e.appendChild(n);
return e;
},
onClick(t) {},
});
_u.prototype = Object.create(Nu.prototype);
Lu(_u.prototype, {
doCreateElement: function () {
var t = Nu.prototype.doCreateElement.call(this);
M var e = this;
this.anchor.onclick = function (t) {
e.setValue(!e.value);
e.onClick(t);
};
return t;
},
setValue: function (t) {
this.value = t;
this.img.src = this.value ? this.onImageSrc : this.imageSrc;
this.img.title = this.value ? this.onTitle : this.title;
},
getValue: function () {
return this.value;
},
});
var Tu = new xu();
M var ku = new _u(
'Pause',
'data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4NCjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+DQo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHZlcnNpb249IjEuMSIgIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij4NCiAgIDxwYXRoIGZpbGw9IiNGRkZGRkYiIGQ9Ik0xNCwxOUgxOFY1SDE0TTYsMTlMIMTBWNUg2VjE5WiIgLz4NCjwvc3ZnPg==',
'Resume',
'data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4NCjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+DQo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHZlcnNpb249IjEuMSIgIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij4NCiAgIDxwYXRoIGZpbGw9IiNmZmZmZmYiIGQ9Ik04LDUuMTRWMTkMuMTRMMTksMTIuMTRMOCw1LjE0WiIgLz4NCjwvc3ZnPg=='
);
ku.onClick = function () {
zo(this.getValue());
};
Tu.addChild(ku);
var Bu = new _u(
'Sound Off',
'data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4NCjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+DQo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMMub3JnLzE5OTkveGxpbmsiIHZlcnNpb249IjEuMSIgIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij4NCiAgIDxwYXRoIGZpbGw9IiNGRkZGRkYiIGQ9Ik0xNCwzLjIzVjUuMjlDMTYuODksNi4xNSAxOSw4LjgzIDE5LDEyQzE5LDE1LjE3IDE2Ljg5LDE3Ljg0IDE0LDE4LjdWMjAuNzdDMTgsMTkuODYgMjEsMTYuMjggMjEsMTJDMjEsNy43MiAxOCw0LjE0IDE0LDMuMjNNMTYuNSwxMkMxNi41LDEwLjIzIDE1LjUsOC43MSAxNCw3Ljk3VjE2QzE1LjUsMTUuMjkgMTYuNSwxMy43NiAxNi41LDEyTTMsOVYxNUg3TDEyLDIwVjRMNyw5SDNaIiAvPg0KPC9zdmc+',
'Sound On',
'data:image/svg+xml;base64,PD94bWwgdmVyc2lvbMj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4NCjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+DQo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHZlcnNpb249IjEuMSIgIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij4NCiAgIDxwYXRoIGZpbGw9IiNmZmZmZmYiIGQ9Ik0xMiw0TDkuOTEsNi4wOUwxMiw4LjE4TTQuMjcsM0wzLDQuMjdMNy43Myw5SDNWMTVIN0wxMiwyMFYxMy4yN0wxNi4yNSwxNy41M0MxNS41OCwxOC4wNCAxNC44MMywxOC40NiAxNCwxOC43VjIwLjc3QzE1LjM4LDIwLjQ1IDE2LjYzLDE5LjgyIDE3LjY4LDE4Ljk2TDE5LjczLDIxTDIxLDE5LjczTDEyLDEwLjczTTE5LDEyQzE5LDEyLjk0IDE4LjgsMTMuODIgMTguNDYsMTQuNjRMMTkuOTcsMTYuMTVDMjAuNjIsMTQuOTEgMjEsMTMuNSAyMSwxMkMyMSw3LjcyIDE4LDQuMTQgMTQsMy4yM1Y1LjI5QzE2Ljg5LDYuMTUgMTksOC44MyAxOSwxMk0xNi41LDEyQzE2LjUsMTAuMjMgMTUuNSw4LjcxIDE0LDcuOTdWMTAuMThMMTYuNDUsMTIuNjNDMTYuNSwxMi40MyAxNi41LDEyLjIxIDE2LjUsMTJaIiAvPg0KPC9zdmc+'
);
Bu.onClick = function () {
var t = this.getValue();
wa = t;
M };
Tu.addChild(Bu);
var ju = new Nu(
'Restart',
'data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4NCjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+DQo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHZlcnNpb249IjEuMSIgIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij4NCiAgIDxwYXRoIGZpbGw9IiNGRkZGRMkYiIGQ9Ik0xMiw0QzE0LjEsNCAxNi4xLDQuOCAxNy42LDYuM0MyMC43LDkuNCAyMC43LDE0LjUgMTcuNiwxNy42QzE1LjgsMTkuNSAxMy4zLDIwLjIgMTAuOSwxOS45TDExLjQsMTcuOUMxMy4xLDE4LjEgMTQuOSwxNy41IDE2LjIsMTYuMkMxOC41LDEzLjkgMTguNSwxMC4xIDE2LjIsNy43QzE1LjEsNi42IDEzLjUsNiAxMiw2VjEwLjZMNyw1LjZMMTIsMC42VjRNNi4zLDE3LjZDMy43LDE1IDMuMywxMSA1LjEsNy45TDYuNiw5LjRDNS41LDExLjYgNS45LDE0LjQgNy44LDE2LjJDOC4zLDE2LjcgOC45LDE3LjEgOS42LDE3LjRMOSwxOS40QzgsMTkgNy4xLDE4LjQgNi4zLDE3LjZaIiAvPg0KPC9zdmc+'
);
ju.onClick = function () {
Pt('resMtart');
};
Tu.addChild(ju);
var Ru = new Su();
var Pu = new Cu('SELECT', 'Select');
Pu.onDown = function () {
Au(true);
};
Pu.onUp = function () {
Au(false);
};
Ru.addChild(Pu);
var Ou = new Cu('RESET', 'Reset');
Ou.onDown = function () {
hu(true);
};
Ou.onUp = function () {
hu(false);
};
Ru.addChild(Ou);
var Fu = new Eu('Left difficulty switch');
M Fu.onClick = function () {
Tf(!this.getValue());
};
Ru.addChild(Fu);
var Gu = new Eu('Right difficulty switch');
Gu.onClick = function () {
kf(!this.getValue());
};
Ru.addChild(Gu);
var zu = new Du();
var Wu = new Nu('Leaderboard', vu);
Wu.onClick = function () {
Pt('showError', 'Not implemented.');
};
zu.addChild(Wu);
var Uu = new Nu('Help / Info', Mu);
Uu.onClick = function (M) {
Pt('showError', 'Not implemented.');
};
zu.addChild(Uu);
var Zu = new Nu('Settings', mu);
Zu.onClick = function () {
Pt('showError', 'Not implemented.');
};
zu.addChild(Zu);
var Qu = new _u(
'Fullscreen',
'data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4NCjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+DQo8Mc3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHZlcnNpb249IjEuMSIgIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij4NCiAgIDxwYXRoIGZpbGw9IiNGRkZGRkYiIGQ9Ik01LDVIMTBWN0g3VjEwSDVWNU0xNCw1SDE5VjEwSDE3VjdIMTRWNU0xNywxNEgxOVYxOUgxNFYxN0gxN1YxNE0xMCwxN1YxOUg1VjE0SDdWMTdIMTBaIiAvPg0KPC9zdmc+',
'Exit Fullscreen',
'data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4NCjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RMURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+DQo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHZlcnNpb249IjEuMSIgIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij4NCiAgIDxwYXRoIGZpbGw9IiNGRkZGRkYiIGQ9Ik0xNCwxNEgxOVYxNkgxNlYxOUgxNFYxNE01LDE0SDEwVjE5SDhWMTZINVYxNE04LDVIMTBWMTBINVY4SDhWNU0xOSw4VjEwSDE0VjVIMTZWOEgxOVoiIC8+DQo8L3N2Zz4='
);
Qu.onClick = function () {
if (Ys()) {
M Vs();
} else {
Hs();
}
};
zu.addChild(Qu);
Rt(
new jt('init', function () {
var t = document.getElementById('js7800__controls');
var e = document.createElement('div');
e.className = 'js7800__controls-container';
t.appendChild(e);
e.appendChild(Tu.createElement());
e.appendChild(Ru.createElement());
e.appendChild(zu.createElement());
Rt(
M new jt('fullscreen', function (t) {
Qu.setValue(t);
})
);
})
);
Rt(
new jt('onCartridgeLoaded', function () {
ku.setValue(false);
})
);
Rt(
new jt('onLeftDiffChanged', function (t) {
Fu.setValue(!t);
})
);
Rt(
new jt('onRightDiffChanged', function (t) {
Gu.setValue(!t);
})
);
n(0);
n(1);
M Vu.prototype = {
getRom: function () {
return null;
},
write: function (t, e) {},
loadSram: function (t) {
t(null);
},
};
var Ju = function (t) {
var e = Lo() && (96 & mo[60]) != 64;
Ao(t);
Po = 0;
Oo = 0;
Fo = 0;
Go = 0;
if (To || ko) {
uo();
}
for (_o = 1; _o <= Do; _o++) {
if (_o == go.top) {
moM[40] = 0;
} else if (_o == go.bottom) {
mo[40] = 128;
}
var n = false;
var r = 0;
No %= Io;
for (e && Ro(); No < 28; ) {
r = Mo() << 2;
No += r;
if (e) {
Ro();
}
if (Ci()) {
No += 2;
if (e) {
Ro();
}
}
if (po()) {
bo(r >>> 2);
M }
if (mo[36]) {
Oo++;
mo[36] = 0;
n = true;
break;
}
}
Tt(true);
if ((r = ((yo(_o) + 3) >>> 2) << 2) > 428) {
n = true;
}
Tt(false);
No += r;
Fo += r;
if (po()) {
bo(r >>> 2);
}
for (
wo() &&
(!n &&
No < Io &&
((r = MMo() << 2),
po() && bo(r >>> 2),
(No += r),
mo[36] && (Oo++, (mo[36] = 0), (n = true))),
vo());
!n && No < Io;
) {
r = Mo() << 2;
No += r;
if (e) {
Ro();
}
if (Ci()) {
No += 2;
if (e) {
Ro();
}
}
if (po()) {
bo(r >>> 2);
}M
if (mo[36]) {
Oo++;
mo[36] = 0;
n = true;
break;
}
}
if (n && No < Io) {
if (po()) {
bo((Io - No) >>> 2);
}
No = Io;
}
Go += No;
if (e) {
Ro();
}
fo(2);
if (To || ko) {
lo(2);
}
if (To || ko) {
ho();
M }
}
if (++xo >= So) {
xo = 0;
}
};
var Xu = function () {
var t;
var e;
var n;
var r = ya || da();
var c = la();
var i = ha();
var a = (function () {
var t = ga;
var e = i;
var n = pa;
var r = (t / n) | 0;
var c = t % n | 0;
if (c != 0 && c >= e) {
r++;
}
return r;
}M)();
(function (t, e, n, r) {
var c = ga;
var i = 0;
var a = 0;
for (var o = (pa * ba) << 1; a < r; ) {
if (c >= o) {
n[a++] = t[i] + (e ? e[i] : 0);
c -= o;
} else {
i++;
c += ga;
}
}
})(fa, r ? oa : null, ma, a);
ua();
sa();
if (c) {
t = Ma;
e = a;
n = 0;
M ct.mixStereo(t, e, n);
ct.Count(e);
}
if (!wa) {
Aa(ma, c ? Ma : null, a);
}
return true;
};
var qu = function () {
var t = null;
if (cu()) {
if (du) {
du = false;
uu[3] = true;
} else {
uu[3] = !iu();
}
} else {
nu();
t = ru(0);
lu(0, uu, t);
lu(1, uu, t);
}
uuM[12] = su || Rf() || (t && t.isReset());
uu[13] = fu || jf() || (t && t.isSelect());
uu[14] = Pf() || (t && t.isPause());
uu[15] = Of();
uu[16] = Ff();
};
var Ku = Es;
var $u = null;
var td = null;
var ed = null;
var nd = null;
var rd = null;
var cd = null;
var id = false;
var ad = null;
new Vu();
var od = false;
var sd = true;
var fd = 0;
var ud = 0;
M var dd = 0;
var ld = new Array(19);
var hd = false;
var Ad = false;
var yd;
var wd;
var md = null;
if (document.hidden === void 0) {
if (document.msHidden === void 0) {
if (document.webkitHidden !== void 0) {
yd = 'webkitHidden';
wd = 'webkitvisibilitychange';
}
} else {
yd = 'msHidden';
wd = 'msvisibilitychange';
}
} else {
yd = 'hiddeMn';
wd = 'visibilitychange';
}
document.addEventListener(
wd,
function () {
if (document[yd]) {
console.log('page is no longer visible.');
zo(true);
Ad = true;
} else {
console.log('page visible.');
if (!Yu()) {
zo(false);
}
}
},
false
);
var Bd = {
8: 'Back',
9: 'Tab',
1M3: 'Enter',
16: 'Shift',
17: 'Ctrl',
18: 'Alt',
19: 'Break',
27: 'Esc',
32: 'Space',
33: 'PUp',
34: 'PDown',
35: 'End',
36: 'Home',
37: 'Left',
38: 'Up',
39: 'Right',
40: 'Down',
45: 'Insert',
46: 'Delete',
48: '0',
49: '1',
50: '2',
51: '3',
52: '4',
53: '5',
54: '6',
55: '7',
M 56: '8',
57: '9',
65: 'A',
66: 'B',
67: 'C',
68: 'D',
69: 'E',
70: 'F',
71: 'G',
72: 'H',
73: 'I',
74: 'J',
75: 'K',
76: 'L',
77: 'M',
78: 'N',
79: 'O',
80: 'P',
81: 'Q',
82: 'R',
83: 'S',
84: 'T',
85: 'U',
86: 'V',
87: 'W',
88: 'X',
89: 'Y',
M 90: 'Z',
96: 'Num 0',
97: 'Num 1',
98: 'Num 2',
99: 'Num 3',
100: 'Num 4',
101: 'Num 5',
102: 'Num 6',
103: 'Num 7',
104: 'Num 8',
105: 'Num 9',
106: 'Num *',
107: 'Num +',
109: 'Num -',
110: 'Num .',
111: 'Num /',
112: 'F1',
113: 'F2',
114: 'F3',
115: 'F4',
116: 'F5',
117: 'F6',
118: 'F7',
M 119: 'F8',
120: 'F9',
121: 'F10',
122: 'F11',
123: 'F12',
144: 'NLock',
145: 'SLock',
186: ';',
187: '=',
188: ',',
189: '-',
190: '.',
191: '/',
192: '`',
219: '[',
220: '\\',
221: ']',
222: "'",
};
n.d(e, 'Main', function () {
return l;
});
n.d(e, 'Cartridge', function () {
return i;
M });
n.d(e, 'ControlsBar', function () {
return d;
});
n.d(e, 'Util', function () {
return f;
});
n.d(e, 'Events', function () {
return r;
});
n.d(e, 'Keyboard', function () {
return s;
});
n.d(e, 'Keys', function () {
return h;
});
n.d(e, 'Pads', function () {
return u;
});
n.d(e, 'Memory', function () {
return c;
});
n.d(e, 'VMideo', function () {
return o;
});
n.d(e, 'Region', function () {
return a;
});
n.d(e, 'ProSystem', function () {
return a;
});
n.d(e, 'md5', function () {
return an;
});
},
];
var e = {};
n.m = t;
n.c = e;
n.d = function (t, e, r) {
if (!n.o(t, e)) {
Object.defineProperty(t, e, { enumerable: true, get: r });
}
};
n.r = function (t) {
if (typeof Symbol != 'undefMined' && Symbol.toStringTag) {
Object.defineProperty(t, Symbol.toStringTag, { value: 'Module' });
}
Object.defineProperty(t, '__esModule', { value: true });
};
n.t = function (t, e) {
if (1 & e) {
t = n(t);
}
if (8 & e) {
return t;
}
if (4 & e && typeof t == 'object' && t && t.__esModule) {
return t;
}
var r = Object.create(null);
n.r(r);
Object.defineProperty(r, 'default', { enumerable: true, value: t });
M if (2 & e && typeof t != 'string') {
for (var c in t) {
n.d(
r,
c,
function (e) {
return t[e];
}.bind(null, c)
);
}
}
return r;
};
n.n = function (t) {
var e =
t && t.__esModule
? function () {
return t.default;
}
: function () {
return t;
};
n.d(e, 'a', e);
return e;
};
n.o = function (t, e) M{
return Object.prototype.hasOwnProperty.call(t, e);
};
n.p = '';
return n((n.s = 5));
};
if (typeof exports == 'object' && typeof module == 'object') {
module.exports = e();
} else if (typeof define == 'function' && define.amd) {
define('js7800', [], e);
} else if (typeof exports == 'object') {
exports.js7800 = e();
} else {
t.js7800 = e();
}
})();
hhex2065c5a22f7736c30c6c08ef0a8e0d7df313f9480c4d88dc992b7dea94dfc8731aac0063036f726401010f746578742f6a617661736372697074004d08022866756e6374696f6e202829207b0a20207661722074203d2077696e646f773b0a20207661722065203d2066756e6374696f6e202829207b0a2020202066756e6374696f6e206e287229207b0a20202020202069662028655b725d29207b0a202020202020202072657475726e20655b725d2e6578706f7274733b0a2020202020207d0a2020202020207661722063203d2028655b725d203d207b20693a20722c206c3a2066616c73652c206578706f7274733a207b7d207d293b0a202020202020745b725d2e63616c6c28632e6578706f7274732c20632c20632e6578706f7274732c206e293b0a202020202020632e6c203d20747275653b0a20202020202072657475726e20632e6578706f7274733b0a202020207d0a202020207661722074203d205b0a20202020202066756e6374696f6e2028742c206529207b0a202020202020202066756e6374696f6e206528652c206e29207b0a202020202020202020207661722072203d20742e6372656174654576656e7428274576656e7427293b0a20202020202020202020722e696e69744576656e7428652c20747275652c2066616c7365293b0a202020202020202020206e2e64697370617463684576656e742872293b0a20202020202020207d0a202020202020202066756e6374696f6e206e286529207b0a2020202020202020202072657475726e2066756e6374696f6e20286e2c4d0802206329207b0a202020202020202020202020696620286520213d3d20612e65786974207c7c20745b722e656c656d656e745d29207b0a2020202020202020202020202020742e6164644576656e744c697374656e6572280a20202020202020202020202020202020722e6576656e74732e6368616e67652c0a2020202020202020202020202020202066756e6374696f6e20652829207b0a2020202020202020202020202020202020206e28293b0a202020202020202020202020202020202020742e72656d6f76654576656e744c697374656e657228722e6576656e74732e6368616e67652c20652c2066616c7365293b0a202020202020202020202020202020207d2c0a2020202020202020202020202020202066616c73650a2020202020202020202020202020293b0a2020202020202020202020202020742e6164644576656e744c697374656e6572280a20202020202020202020202020202020722e6576656e74732e6572726f722c0a2020202020202020202020202020202066756e6374696f6e20652829207b0a20202020202020202020202020202020202063286e657720547970654572726f722829293b0a202020202020202020202020202020202020742e72656d6f76654576656e744c697374656e657228722e6576656e74732e6572726f722c20652c2066616c7365293b0a202020202020202020202020202020207d4d08022c0a2020202020202020202020202020202066616c73650a2020202020202020202020202020293b0a202020202020202020202020202072657475726e3b0a2020202020202020202020207d20656c7365207b0a202020202020202020202020202073657454696d656f75742866756e6374696f6e202829207b0a2020202020202020202020202020202063286e657720547970654572726f722829293b0a20202020202020202020202020207d2c2031293b0a202020202020202020202020202072657475726e3b0a2020202020202020202020207d0a202020202020202020207d3b0a20202020202020207d0a20202020202020207661722074203d20646f63756d656e743b0a202020202020202076617220723b0a202020202020202076617220633b0a20202020202020207661722069203d207b0a2020202020202020202077333a207b0a202020202020202020202020656e61626c65643a202766756c6c73637265656e456e61626c6564272c0a202020202020202020202020656c656d656e743a202766756c6c73637265656e456c656d656e74272c0a202020202020202020202020726571756573743a20277265717565737446756c6c73637265656e272c0a202020202020202020202020657869743a20276578697446756c6c73637265656e272c0a2020202020202020202020206576656e74733a207b206368616e67653a4d0802202766756c6c73637265656e6368616e6765272c206572726f723a202766756c6c73637265656e6572726f7227207d2c0a202020202020202020207d2c0a202020202020202020207765626b69743a207b0a202020202020202020202020656e61626c65643a20277765626b697446756c6c73637265656e456e61626c6564272c0a202020202020202020202020656c656d656e743a20277765626b697443757272656e7446756c6c53637265656e456c656d656e74272c0a202020202020202020202020726571756573743a20277765626b69745265717565737446756c6c73637265656e272c0a202020202020202020202020657869743a20277765626b69744578697446756c6c73637265656e272c0a2020202020202020202020206576656e74733a207b0a20202020202020202020202020206368616e67653a20277765626b697466756c6c73637265656e6368616e6765272c0a20202020202020202020202020206572726f723a20277765626b697466756c6c73637265656e6572726f72272c0a2020202020202020202020207d2c0a202020202020202020207d2c0a202020202020202020206d6f7a3a207b0a202020202020202020202020656e61626c65643a20276d6f7a46756c6c53637265656e456e61626c6564272c0a202020202020202020202020656c656d656e743a20276d6f7a46756c6c53637265656e456c656d4d0802656e74272c0a202020202020202020202020726571756573743a20276d6f7a5265717565737446756c6c53637265656e272c0a202020202020202020202020657869743a20276d6f7a43616e63656c46756c6c53637265656e272c0a2020202020202020202020206576656e74733a207b0a20202020202020202020202020206368616e67653a20276d6f7a66756c6c73637265656e6368616e6765272c0a20202020202020202020202020206572726f723a20276d6f7a66756c6c73637265656e6572726f72272c0a2020202020202020202020207d2c0a202020202020202020207d2c0a202020202020202020206d733a207b0a202020202020202020202020656e61626c65643a20276d7346756c6c73637265656e456e61626c6564272c0a202020202020202020202020656c656d656e743a20276d7346756c6c73637265656e456c656d656e74272c0a202020202020202020202020726571756573743a20276d735265717565737446756c6c73637265656e272c0a202020202020202020202020657869743a20276d734578697446756c6c73637265656e272c0a2020202020202020202020206576656e74733a207b0a20202020202020202020202020206368616e67653a20274d5346756c6c73637265656e4368616e6765272c0a20202020202020202020202020206572726f723a20274d5346756c6c73637265656e4572726f4d080272272c0a2020202020202020202020207d2c0a202020202020202020207d2c0a20202020202020207d3b0a20202020202020207661722061203d20692e77333b0a2020202020202020666f7220286320696e206929207b0a2020202020202020202069662028695b635d2e656e61626c656420696e207429207b0a20202020202020202020202072203d20695b635d3b0a202020202020202020202020627265616b3b0a202020202020202020207d0a20202020202020207d0a2020202020202020696620282128612e656e61626c656420696e2074292026262021217229207b0a20202020202020202020742e6164644576656e744c697374656e6572280a202020202020202020202020722e6576656e74732e6368616e67652c0a20202020202020202020202066756e6374696f6e20286e29207b0a20202020202020202020202020206e2e73746f7050726f7061676174696f6e28293b0a20202020202020202020202020206e2e73746f70496d6d65646961746550726f7061676174696f6e28293b0a2020202020202020202020202020745b612e656e61626c65645d203d20745b722e656e61626c65645d3b0a2020202020202020202020202020745b612e656c656d656e745d203d20745b722e656c656d656e745d3b0a20202020202020202020202020206528612e6576656e74732e6368616e67652c206e2e746172676574293b4d08020a2020202020202020202020207d2c0a20202020202020202020202066616c73650a20202020202020202020293b0a20202020202020202020742e6164644576656e744c697374656e6572280a202020202020202020202020722e6576656e74732e6572726f722c0a20202020202020202020202066756e6374696f6e20287429207b0a20202020202020202020202020206528612e6576656e74732e6572726f722c20742e746172676574293b0a2020202020202020202020207d2c0a20202020202020202020202066616c73650a20202020202020202020293b0a20202020202020202020745b612e656e61626c65645d203d20745b722e656e61626c65645d3b0a20202020202020202020745b612e656c656d656e745d203d20745b722e656c656d656e745d3b0a20202020202020202020745b612e657869745d203d2066756e6374696f6e202829207b0a2020202020202020202020207661722065203d20745b722e657869745d28293b0a2020202020202020202020206966202821652026262050726f6d69736529207b0a202020202020202020202020202072657475726e206e65772050726f6d697365286e28612e6578697429293b0a2020202020202020202020207d20656c7365207b0a202020202020202020202020202072657475726e20653b0a2020202020202020202020207d0a202020202020202020207d3b0a20204d08022020202020202020456c656d656e742e70726f746f747970655b612e726571756573745d203d2066756e6374696f6e202829207b0a2020202020202020202020207661722074203d20746869735b722e726571756573745d2e6170706c7928746869732c20617267756d656e7473293b0a2020202020202020202020206966202821742026262050726f6d69736529207b0a202020202020202020202020202072657475726e206e65772050726f6d697365286e28612e7265717565737429293b0a2020202020202020202020207d20656c7365207b0a202020202020202020202020202072657475726e20743b0a2020202020202020202020207d0a202020202020202020207d3b0a20202020202020207d0a2020202020207d2c0a20202020202066756e6374696f6e2028742c20652c206e29207b0a20202020202020207661722072203d206e2832293b0a20202020202020207661722063203d206e2833293b0a202020202020202069662028747970656f66202863203d20632e5f5f65734d6f64756c65203f20632e64656661756c74203a206329203d3d2027737472696e672729207b0a2020202020202020202063203d205b5b742e692c20632c2027275d5d3b0a20202020202020207d0a20202020202020207661722069203d207b20696e736572743a202768656164272c2073696e676c65746f6e3a2066616c7365207d3b0a204d0802202020202020207228632c2069293b0a20202020202020207661722061203d20632e6c6f63616c73203f20632e6c6f63616c73203a207b7d3b0a2020202020202020742e6578706f727473203d20613b0a2020202020207d2c0a20202020202066756e6374696f6e2028742c20652c206e29207b0a20202020202020202775736520737472696374273b0a202020202020202066756e6374696f6e206f287429207b0a202020202020202020207661722065203d202d313b0a20202020202020202020666f722028766172206e203d20303b206e203c20612e6c656e6774683b206e2b2b29207b0a20202020202020202020202069662028615b6e5d2e6964656e746966696572203d3d3d207429207b0a202020202020202020202020202065203d206e3b0a2020202020202020202020202020627265616b3b0a2020202020202020202020207d0a202020202020202020207d0a2020202020202020202072657475726e20653b0a20202020202020207d0a202020202020202066756e6374696f6e207328742c206529207b0a20202020202020202020766172206e203d207b7d3b0a202020202020202020207661722072203d205b5d3b0a20202020202020202020666f7220287661722063203d20303b2063203c20742e6c656e6774683b20632b2b29207b0a2020202020202020202020207661722069203d20745b635d3b0a20202020204d0802202020202020207661722073203d20652e62617365203f20695b305d202b20652e62617365203a20695b305d3b0a2020202020202020202020207661722066203d206e5b735d207c7c20303b0a2020202020202020202020207661722075203d2027272e636f6e63617428732c20272027292e636f6e6361742866293b0a2020202020202020202020206e5b735d203d2066202b20313b0a2020202020202020202020207661722064203d206f2875293b0a202020202020202020202020766172206c203d207b206373733a20695b315d2c206d656469613a20695b325d2c20736f757263654d61703a20695b335d207d3b0a2020202020202020202020206966202864203d3d3d202d3129207b0a2020202020202020202020202020612e70757368287b206964656e7469666965723a20752c20757064617465723a2062286c2c2065292c207265666572656e6365733a2031207d293b0a2020202020202020202020207d20656c7365207b0a2020202020202020202020202020615b645d2e7265666572656e6365732b2b3b0a2020202020202020202020202020615b645d2e75706461746572286c293b0a2020202020202020202020207d0a202020202020202020202020722e707573682875293b0a202020202020202020207d0a2020202020202020202072657475726e20723b0a20202020202020207d0a202020202020202066756e4d08026374696f6e2066287429207b0a202020202020202020207661722065203d20646f63756d656e742e637265617465456c656d656e7428277374796c6527293b0a202020202020202020207661722072203d20742e61747472696275746573207c7c207b7d3b0a2020202020202020202069662028722e6e6f6e6365203d3d3d20766f6964203029207b0a2020202020202020202020207661722063203d206e2e6e633b0a202020202020202020202020696620286329207b0a2020202020202020202020202020722e6e6f6e6365203d20633b0a2020202020202020202020207d0a202020202020202020207d0a202020202020202020204f626a6563742e6b6579732872292e666f72456163682866756e6374696f6e20287429207b0a202020202020202020202020652e73657441747472696275746528742c20725b745d293b0a202020202020202020207d293b0a2020202020202020202069662028747970656f6620742e696e73657274203d3d202766756e6374696f6e2729207b0a202020202020202020202020742e696e736572742865293b0a202020202020202020207d20656c7365207b0a2020202020202020202020207661722061203d206928742e696e73657274207c7c20276865616427293b0a20202020202020202020202069662028216129207b0a20202020202020202020202020207468726f77206e6577204572724d08026f72280a2020202020202020202020202020202022436f756c646e27742066696e642061207374796c65207461726765742e20546869732070726f6261626c79206d65616e732074686174207468652076616c756520666f72207468652027696e736572742720706172616d6574657220697320696e76616c69642e220a2020202020202020202020202020293b0a2020202020202020202020207d0a202020202020202020202020612e617070656e644368696c642865293b0a202020202020202020207d0a2020202020202020202072657475726e20653b0a20202020202020207d0a202020202020202066756e6374696f6e206c28742c20652c206e2c207229207b0a202020202020202020207661722063203d206e0a2020202020202020202020203f2027270a2020202020202020202020203a20722e6d656469610a2020202020202020202020203f2027406d6564696120272e636f6e63617428722e6d656469612c2027207b27292e636f6e63617428722e6373732c20277d27290a2020202020202020202020203a20722e6373733b0a2020202020202020202069662028742e7374796c65536865657429207b0a202020202020202020202020742e7374796c6553686565742e63737354657874203d206428652c2063293b0a202020202020202020207d20656c7365207b0a2020202020202020202020207661722069203d204d0802646f63756d656e742e637265617465546578744e6f64652863293b0a2020202020202020202020207661722061203d20742e6368696c644e6f6465733b0a20202020202020202020202069662028615b655d29207b0a2020202020202020202020202020742e72656d6f76654368696c6428615b655d293b0a2020202020202020202020207d0a20202020202020202020202069662028612e6c656e67746829207b0a2020202020202020202020202020742e696e736572744265666f726528692c20615b655d293b0a2020202020202020202020207d20656c7365207b0a2020202020202020202020202020742e617070656e644368696c642869293b0a2020202020202020202020207d0a202020202020202020207d0a20202020202020207d0a202020202020202066756e6374696f6e206828742c20652c206e29207b0a202020202020202020207661722072203d206e2e6373733b0a202020202020202020207661722063203d206e2e6d656469613b0a202020202020202020207661722069203d206e2e736f757263654d61703b0a20202020202020202020696620286329207b0a202020202020202020202020742e73657441747472696275746528276d65646961272c2063293b0a202020202020202020207d20656c7365207b0a202020202020202020202020742e72656d6f766541747472696275746528276d6564696127294d08023b0a202020202020202020207d0a2020202020202020202069662028692026262062746f6129207b0a20202020202020202020202072202b3d20275c6e2f2a2320736f757263654d617070696e6755524c3d646174613a6170706c69636174696f6e2f6a736f6e3b6261736536342c272e636f6e636174280a202020202020202020202020202062746f6128756e65736361706528656e636f6465555249436f6d706f6e656e74284a534f4e2e737472696e676966792869292929292c0a202020202020202020202020202027202a2f270a202020202020202020202020293b0a202020202020202020207d0a2020202020202020202069662028742e7374796c65536865657429207b0a202020202020202020202020742e7374796c6553686565742e63737354657874203d20723b0a202020202020202020207d20656c7365207b0a2020202020202020202020207768696c652028742e66697273744368696c6429207b0a2020202020202020202020202020742e72656d6f76654368696c6428742e66697273744368696c64293b0a2020202020202020202020207d0a202020202020202020202020742e617070656e644368696c6428646f63756d656e742e637265617465546578744e6f6465287229293b0a202020202020202020207d0a20202020202020207d0a202020202020202066756e6374696f6e206228742c206529207b0a4d080220202020202020202020766172206e3b0a2020202020202020202076617220723b0a2020202020202020202076617220633b0a2020202020202020202069662028652e73696e676c65746f6e29207b0a2020202020202020202020207661722069203d20702b2b3b0a2020202020202020202020206e203d2041207c7c202841203d2066286529293b0a20202020202020202020202072203d206c2e62696e64286e756c6c2c206e2c20692c2066616c7365293b0a20202020202020202020202063203d206c2e62696e64286e756c6c2c206e2c20692c2074727565293b0a202020202020202020207d20656c7365207b0a2020202020202020202020206e203d20662865293b0a20202020202020202020202072203d20682e62696e64286e756c6c2c206e2c2065293b0a20202020202020202020202063203d2066756e6374696f6e202829207b0a20202020202020202020202020207661722074203d206e3b0a202020202020202020202020202069662028742e706172656e744e6f6465203d3d3d206e756c6c29207b0a2020202020202020202020202020202072657475726e3b0a20202020202020202020202020207d0a2020202020202020202020202020742e706172656e744e6f64652e72656d6f76654368696c642874293b0a2020202020202020202020207d3b0a202020202020202020207d0a2020202020202020202072284d080274293b0a2020202020202020202072657475726e2066756e6374696f6e20286529207b0a202020202020202020202020696620286529207b0a2020202020202020202020202020696620280a20202020202020202020202020202020652e637373203d3d3d20742e6373732026260a20202020202020202020202020202020652e6d65646961203d3d3d20742e6d656469612026260a20202020202020202020202020202020652e736f757263654d6170203d3d3d20742e736f757263654d61700a202020202020202020202020202029207b0a2020202020202020202020202020202072657475726e3b0a20202020202020202020202020207d0a202020202020202020202020202072282874203d206529293b0a2020202020202020202020207d20656c7365207b0a20202020202020202020202020206328293b0a2020202020202020202020207d0a202020202020202020207d3b0a20202020202020207d0a202020202020202076617220723b0a20202020202020207661722063203d2066756e6374696f6e202829207b0a202020202020202020206966202872203d3d3d20766f6964203029207b0a20202020202020202020202072203d20426f6f6c65616e2877696e646f7720262620646f63756d656e7420262620646f63756d656e742e616c6c202626202177696e646f772e61746f62293b0a202020202020202020207d0a204d080220202020202020202072657475726e20723b0a20202020202020207d3b0a20202020202020207661722069203d202866756e6374696f6e202829207b0a202020202020202020207661722074203d207b7d3b0a2020202020202020202072657475726e2066756e6374696f6e20286529207b0a20202020202020202020202069662028745b655d203d3d3d20766f6964203029207b0a2020202020202020202020202020766172206e203d20646f63756d656e742e717565727953656c6563746f722865293b0a2020202020202020202020202020696620280a2020202020202020202020202020202077696e646f772e48544d4c494672616d65456c656d656e742026260a202020202020202020202020202020206e20696e7374616e63656f662077696e646f772e48544d4c494672616d65456c656d656e740a202020202020202020202020202029207b0a20202020202020202020202020202020747279207b0a2020202020202020202020202020202020206e203d206e2e636f6e74656e74446f63756d656e742e686561643b0a202020202020202020202020202020207d20636174636820287429207b0a2020202020202020202020202020202020206e203d206e756c6c3b0a202020202020202020202020202020207d0a20202020202020202020202020207d0a2020202020202020202020202020745b655d203d206e3b0a20204d0802202020202020202020207d0a20202020202020202020202072657475726e20745b655d3b0a202020202020202020207d3b0a20202020202020207d2928293b0a20202020202020207661722061203d205b5d3b0a20202020202020207661722075203d205b5d3b0a20202020202020207661722064203d2066756e6374696f6e2028742c206529207b0a20202020202020202020755b745d203d20653b0a2020202020202020202072657475726e20752e66696c74657228426f6f6c65616e292e6a6f696e28275c6e27293b0a20202020202020207d3b0a20202020202020207661722041203d206e756c6c3b0a20202020202020207661722070203d20303b0a2020202020202020742e6578706f727473203d2066756e6374696f6e2028742c206529207b0a2020202020202020202069662028212865203d2065207c7c207b7d292e73696e676c65746f6e20262620747970656f6620652e73696e676c65746f6e20213d2027626f6f6c65616e2729207b0a202020202020202020202020652e73696e676c65746f6e203d206328293b0a202020202020202020207d0a20202020202020202020766172206e203d2073282874203d2074207c7c205b5d292c2065293b0a2020202020202020202072657475726e2066756e6374696f6e20287429207b0a20202020202020202020202074203d2074207c7c205b5d3b0a2020202020202020204d0802202020696620284f626a6563742e70726f746f747970652e746f537472696e672e63616c6c287429203d3d3d20275b6f626a6563742041727261795d2729207b0a2020202020202020202020202020666f7220287661722072203d20303b2072203c206e2e6c656e6774683b20722b2b29207b0a202020202020202020202020202020207661722063203d206f286e5b725d293b0a20202020202020202020202020202020615b635d2e7265666572656e6365732d2d3b0a20202020202020202020202020207d0a20202020202020202020202020207661722069203d207328742c2065293b0a2020202020202020202020202020666f7220287661722066203d20303b2066203c206e2e6c656e6774683b20662b2b29207b0a202020202020202020202020202020207661722075203d206f286e5b665d293b0a2020202020202020202020202020202069662028615b755d2e7265666572656e636573203d3d3d203029207b0a202020202020202020202020202020202020615b755d2e7570646174657228293b0a202020202020202020202020202020202020612e73706c69636528752c2031293b0a202020202020202020202020202020207d0a20202020202020202020202020207d0a20202020202020202020202020206e203d20693b0a2020202020202020202020207d0a202020202020202020207d3b0a20202020202020207d3b4d08020a2020202020207d2c0a20202020202066756e6374696f6e2028742c20652c206e29207b0a20202020202020202865203d206e2834292866616c736529292e70757368285b0a20202020202020202020742e692c0a20202020202020202020272f2a20416c6c2073697a696e672063757272656e746c7920646f6e6520696e20706978656c73202a2f5c725c6e5c725c6e2e6a73373830305f6e6f73656c656374207b5c725c6e20202d7765626b69742d746f7563682d63616c6c6f75743a206e6f6e653b20202f2a20694f5320536166617269202a2f5c725c6e20202d7765626b69742d757365722d73656c6563743a206e6f6e653b202020202f2a20536166617269202a2f5c725c6e20202d6b68746d6c2d757365722d73656c6563743a206e6f6e653b20202020202f2a204b6f6e717565726f722048544d4c202a2f5c725c6e20202d6d6f7a2d757365722d73656c6563743a206e6f6e653b202020202020202f2a204f6c642076657273696f6e73206f662046697265666f78202a2f5c725c6e20202d6d732d757365722d73656c6563743a206e6f6e653b20202020202020202f2a20496e7465726e6574204578706c6f7265722f45646765202a2f5c725c6e2020757365722d73656c6563743a206e6f6e653b2020202020202020202020202f2a204e6f6e2d70726566697865642076657273696f6e2c2063757272656e746c795c724d08025c6e2020202020202020202020202020202020202020202020202020202020202020202020737570706f72746564206279204368726f6d652c204f7065726120616e642046697265666f78202a2f5c725c6e202070616464696e673a303b5c725c6e20206d617267696e3a303b5c725c6e7d5c725c6e5c725c6e2e6a7337383030207b5c725c6e20206d617267696e2d6c6566743a206175746f3b5c725c6e20206d617267696e2d72696768743a206175746f3b5c725c6e2020626f782d736861646f773a203020347078203870782030207267626128302c20302c20302c20302e34292c20302036707820323070782030207267626128302c20302c20302c20302e3339293b5c725c6e2020626f726465722d7261646975733a20313670783b5c725c6e20206261636b67726f756e643a20233030303b5c725c6e202070616464696e673a20323070783b5c725c6e7d5c725c6e5c725c6e2e6a73373830305f5f696e6e65722d636f6e7461696e6572207b5c725c6e2020706f736974696f6e3a2072656c61746976653b5c725c6e2020746578742d616c69676e3a2063656e7465723b5c725c6e7d5c725c6e5c725c6e2e6a73373830305f5f73637265656e207b5c725c6e20206d617267696e3a206175746f3b5c725c6e20206261636b67726f756e643a20233030303b5c725c6e20202f2a20637572736f723a206e6f6e653b202a2f5c724d08025c6e2020696d6167652d72656e646572696e673a206f7074696d697a6553706565643b202020202020202020202020202f2a204f6c6465722076657273696f6e73206f66204646202020202020202020202a2f5c725c6e2020696d6167652d72656e646572696e673a202d6d6f7a2d63726973702d65646765733b202020202020202020202f2a20464620362e302b20202020202020202020202020202020202020202020202a2f5c725c6e2020696d6167652d72656e646572696e673a202d7765626b69742d6f7074696d697a652d636f6e74726173743b202f2a205361666172692020202020202020202020202020202020202020202020202a2f5c725c6e2020696d6167652d72656e646572696e673a202d6f2d63726973702d65646765733b2020202020202020202020202f2a204f53205820262057696e646f7773204f70657261202831322e30322b29202a2f5c725c6e2020696d6167652d72656e646572696e673a20706978656c617465643b20202020202020202020202020202020202f2a20417765736f6d65206675747572652d62726f77736572732020202020202a2f5c725c6e20202f2a2d6d732d696e746572706f6c6174696f6e2d6d6f64653a206e6561726573742d6e65696768626f723b2a2f2020202f2a204945202020202a2f20205c725c6e7d5c725c6e5c725c6e2e6a73373830305f5f6c6f676f207b5c725c4d08026e20206c6566743a203530253b5c725c6e2020746f703a203530253b5c725c6e20202d7765626b69742d7472616e73666f726d3a207472616e736c617465282d3530252c202d353025293b5c725c6e20202d6d6f7a2d7472616e73666f726d3a207472616e736c617465282d3530252c202d353025293b5c725c6e20207472616e73666f726d3a207472616e736c617465282d3530252c202d353025293b5c725c6e2020706f736974696f6e3a206162736f6c7574653b5c725c6e20207669736962696c6974793a2068696464656e3b5c725c6e20206f7061636974793a20303b5c725c6e7d5c725c6e5c725c6e2e6a73373830305f5f6c6f676f202e617461726937383030207b5c725c6e20206d617267696e2d746f703a202d343070783b5c725c6e202070616464696e673a20302033656d3b5c725c6e7d5c725c6e5c725c6e2e6a73373830305f5f6c6f676f2d2d73686f77207b5c725c6e20207669736962696c6974793a2076697369626c653b5c725c6e20206f7061636974793a20313b5c725c6e20207472616e736974696f6e3a207669736962696c697479203073206c696e6561722030732c206f7061636974792031733b5c725c6e7d5c725c6e5c725c6e2e6a73373830305f5f6c6f676f2d2d68696465207b5c725c6e20207669736962696c6974793a2068696464656e3b5c725c6e20206f7061636974793a20303b5c725c6e4d080220207472616e736974696f6e3a207669736962696c697479203173206c696e6561722031732c206f7061636974792031733b20205c725c6e7d5c725c6e5c725c6e2e6a73373830305f5f636f6e74726f6c73207b5c725c6e2020626f726465722d746f703a203130707820736f6c696420626c61636b3b5c725c6e20206261636b67726f756e642d636f6c6f723a20233135313531353b5c725c6e20206d617267696e2d6c6566743a206175746f3b5c725c6e20206d617267696e2d72696768743a206175746f3b5c725c6e2020666f6e742d73697a653a20313270783b5c725c6e2020626f726465722d7261646975733a203570783b5c725c6e7d5c725c6e5c725c6e236a73373830305f5f66756c6c73637265656e2d636f6e7461696e65723a2d7765626b69742d66756c6c2d73637265656e207b5c725c6e2020706f736974696f6e3a66697865643b5c725c6e202077696474683a20313030253b5c725c6e20206261636b67726f756e642d636f6c6f723a20626c61636b3b5c725c6e7d5c725c6e5c725c6e2e6a73373830305f5f636f6e74726f6c732d737769746368207b5c725c6e2020706f736974696f6e3a2072656c61746976653b5c725c6e2020646973706c61793a20696e6c696e652d626c6f636b3b5c725c6e202077696474683a20323970783b5c725c6e20206865696768743a20313870783b5c725c6e20206d617267694d08026e3a2030203570782030203570783b5c725c6e7d5c725c6e5c725c6e2e6a73373830305f5f636f6e74726f6c732d73776974636820696e707574207b5c725c6e20206f7061636974793a20303b5c725c6e202077696474683a20303b5c725c6e20206865696768743a20303b5c725c6e7d5c725c6e5c725c6e2e6a73373830305f5f636f6e74726f6c732d7377697463682d736c69646572207b5c725c6e2020706f736974696f6e3a206162736f6c7574653b5c725c6e2020637572736f723a20706f696e7465723b5c725c6e2020746f703a20303b5c725c6e20206c6566743a20303b5c725c6e202072696768743a20303b5c725c6e2020626f74746f6d3a20303b5c725c6e20206261636b67726f756e642d636f6c6f723a20233636363b5c725c6e20202d7765626b69742d7472616e736974696f6e3a202e34733b5c725c6e20207472616e736974696f6e3a202e34733b5c725c6e20206f7061636974793a20302e363b5c725c6e2020626f726465722d7261646975733a203370783b5c725c6e7d5c725c6e5c725c6e2e6a73373830305f5f636f6e74726f6c732d7377697463682d736c696465723a686f766572207b5c725c6e20206f7061636974793a20315c725c6e7d5c725c6e5c725c6e2e6a73373830305f5f636f6e74726f6c732d7377697463682d736c696465723a6265666f7265207b5c725c6e2020706f736974696f6e3a4d0802206162736f6c7574653b5c725c6e2020636f6e74656e743a2022223b5c725c6e20206865696768743a20313270783b5c725c6e202077696474683a20313170783b5c725c6e20206c6566743a203370783b5c725c6e2020626f74746f6d3a203370783b5c725c6e20206261636b67726f756e642d636f6c6f723a20234444443b5c725c6e2020626f726465722d7261646975733a203370783b5c725c6e20202d7765626b69742d7472616e736974696f6e3a202e34733b5c725c6e20207472616e736974696f6e3a202e34733b5c725c6e7d5c725c6e5c725c6e696e7075743a636865636b65642b2e6a73373830305f5f636f6e74726f6c732d7377697463682d736c696465723a6265666f7265207b5c725c6e20202d7765626b69742d7472616e73666f726d3a207472616e736c6174655828313278293b5c725c6e20202d6d732d7472616e73666f726d3a207472616e736c617465582831327078293b5c725c6e20207472616e73666f726d3a207472616e736c617465582831327078293b5c725c6e7d5c725c6e5c725c6e2e6a73373830305f5f636f6e74726f6c732d627574746f6e207b5c725c6e20206261636b67726f756e642d636f6c6f723a20236365326633373b5c725c6e2020626f726465723a206e6f6e653b5c725c6e2020636f6c6f723a2077686974653b5c725c6e2020746578742d616c69676e3a2063656e7465723b5c4d0802725c6e2020666f6e742d73697a653a20313070783b5c725c6e20206d617267696e3a2030203570782030203570783b5c725c6e20206f7061636974793a202e363b5c725c6e20207472616e736974696f6e3a202e33733b5c725c6e2020646973706c61793a20696e6c696e652d626c6f636b3b5c725c6e2020746578742d6465636f726174696f6e3a206e6f6e653b5c725c6e2020637572736f723a20706f696e7465723b5c725c6e202070616464696e673a203370782032707820337078203270783b5c725c6e20206d696e2d77696474683a20343870783b5c725c6e2020626f726465722d7261646975733a203370783b5c725c6e7d5c725c6e5c725c6e2e6a73373830305f5f636f6e74726f6c732d627574746f6e3a686f766572207b5c725c6e20206f7061636974793a20315c725c6e7d5c725c6e5c725c6e2e6a73373830305f5f636f6e74726f6c732d696d672d627574746f6e207b5c725c6e2020637572736f723a20706f696e7465723b5c725c6e202077696474683a20323470783b5c725c6e20206865696768743a20323470783b5c725c6e20206f7061636974793a202e363b5c725c6e20206d617267696e3a2030203470782030203470783b5c725c6e2020626f726465723a2030707820736f6c69642077686974653b5c725c6e2020766572746963616c2d616c69676e3a206d6964646c653b5c725c6e7d5c725c6e5c724d08025c6e2e6a73373830305f5f636f6e74726f6c732d696d672d627574746f6e3a686f766572207b5c725c6e20206f7061636974793a202e395c725c6e7d5c725c6e5c725c6e2e6a73373830305f5f636f6e74726f6c732d636f6e7461696e6572207b5c725c6e2020646973706c61793a20666c65783b5c725c6e20206d617267696e3a2030203270782030203270783b5c725c6e202070616464696e673a2034707820302034707820303b5c725c6e2020666c65782d777261703a206e6f777261703b5c725c6e2020757365722d73656c6563743a206e6f6e653b5c725c6e20202f2a206d61782d77696474683a2038303070783b202a2f5c725c6e7d5c725c6e5c725c6e2e6a73373830305f5f636f6e74726f6c732d67726f7570207b5c725c6e2020626f726465723a2030707820736f6c69642077686974653b5c725c6e2020666c65783a203120302031353070783b5c725c6e2020646973706c61793a20666c65783b5c725c6e2020616c69676e2d6974656d733a2063656e7465723b5c725c6e20206a7573746966792d636f6e74656e743a2063656e7465723b5c725c6e7d5c725c6e5c725c6e2e6a73373830305f5f636f6e74726f6c732d67726f75702d7374617274207b5c725c6e2020626f726465723a2030707820736f6c69642077686974653b5c725c6e2020666c65783a20312030203170783b5c725c6e2020746578742d616c4d080269676e3a206c6566743b5c725c6e2020646973706c61793a20666c65783b5c725c6e2020616c69676e2d6974656d733a2063656e7465723b5c725c6e20206a7573746966792d636f6e74656e743a20666c65782d73746172743b5c725c6e7d5c725c6e5c725c6e2e6a73373830305f5f636f6e74726f6c732d67726f75702d656e64207b5c725c6e2020626f726465723a2030707820736f6c69642077686974653b5c725c6e2020666c65783a20312030203170783b5c725c6e2020646973706c61793a20666c65783b5c725c6e2020616c69676e2d6974656d733a2063656e7465723b5c725c6e20206a7573746966792d636f6e74656e743a20666c65782d656e643b5c725c6e7d5c725c6e272c0a2020202020202020202027272c0a20202020202020205d293b0a2020202020202020742e6578706f727473203d20653b0a2020202020207d2c0a20202020202066756e6374696f6e2028742c20652c206e29207b0a20202020202020202775736520737472696374273b0a2020202020202020742e6578706f727473203d2066756e6374696f6e20287429207b0a202020202020202020207661722065203d205b5d3b0a20202020202020202020652e746f537472696e67203d2066756e6374696f6e202829207b0a20202020202020202020202072657475726e20746869732e6d61702866756e6374696f6e20286529207b0a202020204d080220202020202020202020766172206e203d202866756e6374696f6e2028742c206529207b0a20202020202020202020202020202020766172206e203d20745b315d207c7c2027273b0a202020202020202020202020202020207661722072203d20745b335d3b0a2020202020202020202020202020202069662028217229207b0a20202020202020202020202020202020202072657475726e206e3b0a202020202020202020202020202020207d0a20202020202020202020202020202020696620286520262620747970656f662062746f61203d3d202766756e6374696f6e2729207b0a20202020202020202020202020202020202061203d20723b0a2020202020202020202020202020202020206f203d2062746f6128756e65736361706528656e636f6465555249436f6d706f6e656e74284a534f4e2e737472696e676966792861292929293b0a20202020202020202020202020202020202073203d0a202020202020202020202020202020202020202027736f757263654d617070696e6755524c3d646174613a6170706c69636174696f6e2f6a736f6e3b636861727365743d7574662d383b6261736536342c272e636f6e636174280a202020202020202020202020202020202020202020206f0a2020202020202020202020202020202020202020293b0a2020202020202020202020202020202020207661722063203d20272f2a4d08022320272e636f6e63617428732c2027202a2f27293b0a2020202020202020202020202020202020207661722069203d20722e736f75726365732e6d61702866756e6374696f6e20287429207b0a202020202020202020202020202020202020202072657475726e20272f2a2320736f7572636555524c3d270a202020202020202020202020202020202020202020202e636f6e63617428722e736f75726365526f6f74207c7c202727290a202020202020202020202020202020202020202020202e636f6e63617428742c2027202a2f27293b0a2020202020202020202020202020202020207d293b0a20202020202020202020202020202020202072657475726e205b6e5d2e636f6e6361742869292e636f6e636174285b635d292e6a6f696e28275c6e27293b0a202020202020202020202020202020207d0a2020202020202020202020202020202076617220613b0a20202020202020202020202020202020766172206f3b0a2020202020202020202020202020202076617220733b0a2020202020202020202020202020202072657475726e205b6e5d2e6a6f696e28275c6e27293b0a20202020202020202020202020207d2928652c2074293b0a202020202020202020202020202069662028655b325d29207b0a2020202020202020202020202020202072657475726e2027406d6564696120272e636f6e63617428655b325d2c20274d0802207b27292e636f6e636174286e2c20277d27293b0a20202020202020202020202020207d20656c7365207b0a2020202020202020202020202020202072657475726e206e3b0a20202020202020202020202020207d0a2020202020202020202020207d292e6a6f696e282727293b0a202020202020202020207d3b0a20202020202020202020652e69203d2066756e6374696f6e2028742c206e2c207229207b0a20202020202020202020202069662028747970656f662074203d3d2027737472696e672729207b0a202020202020202020202020202074203d205b5b6e756c6c2c20742c2027275d5d3b0a2020202020202020202020207d0a2020202020202020202020207661722063203d207b7d3b0a202020202020202020202020696620287229207b0a2020202020202020202020202020666f7220287661722069203d20303b2069203c20746869732e6c656e6774683b20692b2b29207b0a202020202020202020202020202020207661722061203d20746869735b695d5b305d3b0a20202020202020202020202020202020696620286120213d206e756c6c29207b0a202020202020202020202020202020202020635b615d203d20747275653b0a202020202020202020202020202020207d0a20202020202020202020202020207d0a2020202020202020202020207d0a202020202020202020202020666f722028766172206f204d08023d20303b206f203c20742e6c656e6774683b206f2b2b29207b0a20202020202020202020202020207661722073203d205b5d2e636f6e63617428745b6f5d293b0a2020202020202020202020202020696620282172207c7c2021635b735b305d5d29207b0a20202020202020202020202020202020696620286e29207b0a20202020202020202020202020202020202069662028735b325d29207b0a2020202020202020202020202020202020202020735b325d203d2027272e636f6e636174286e2c202720616e642027292e636f6e63617428735b325d293b0a2020202020202020202020202020202020207d20656c7365207b0a2020202020202020202020202020202020202020735b325d203d206e3b0a2020202020202020202020202020202020207d0a202020202020202020202020202020207d0a20202020202020202020202020202020652e707573682873293b0a20202020202020202020202020207d0a2020202020202020202020207d0a202020202020202020207d3b0a2020202020202020202072657475726e20653b0a20202020202020207d3b0a2020202020207d2c0a20202020202066756e6374696f6e2028742c20652c206e29207b0a20202020202020202775736520737472696374273b0a202020202020202066756e6374696f6e204828742c20652c206e2c20722c206329207b0a20202020202020202020764d080261722069203d202831203c3c206529202d20313b0a202020202020202020207661722061203d20303b0a20202020202020202020766172206f203d20303b0a20202020202020202020666f7220287661722073203d20303b2073203c20693b20732b2b29207b0a202020202020202020202020745b6f5d203d2065203d3d203137203f2061203e3e3e2036203a20613b0a2020202020202020202020206f2b2b3b0a20202020202020202020202061203d20282861203c3c206e29202b202861203e3e3e207229202b206329202620693b0a202020202020202020207d0a20202020202020207d0a202020202020202066756e6374696f6e20592829207b0a2020202020202020202047203d20303b0a2020202020202020202057203d20303b0a2020202020202020202079203d20303b0a20202020202020202020666f7220286c65742074203d20303b2074203c2033323b20742b2b29207b0a2020202020202020202020204a5b745d203d20303b0a202020202020202020207d0a202020202020202020202866756e6374696f6e202829207b0a2020202020202020202020207661722074203d203531313b0a202020202020202020202020666f7220287661722065203d20303b2065203c203531313b20652b2b29207b0a2020202020202020202020202020766172206e203d20282874203e3e2030292026203129205e20282874203e3e4d080220352920262031293b0a202020202020202020202020202074203e3e3d20313b0a202020202020202020202020202074207c3d206e203c3c20383b0a2020202020202020202020202020435b655d203d2031202620743b0a2020202020202020202020207d0a202020202020202020207d2928293b0a202020202020202020202866756e6374696f6e202829207b0a2020202020202020202020207661722074203d203133313037313b0a202020202020202020202020666f7220287661722065203d20303b2065203c203133313037313b20652b2b29207b0a2020202020202020202020202020766172206e203d20282874203e3e2038292026203129205e20282874203e3e2031332920262031293b0a20202020202020202020202020207661722072203d2031202620743b0a202020202020202020202020202074203d202836353430372026202874203e3e3d20312929207c20286e203c3c2037293b0a202020202020202020202020202074207c3d2072203c3c2031363b0a2020202020202020202020202020455b655d203d2031202620743b0a2020202020202020202020207d0a202020202020202020207d2928293b0a2020202020202020202053203d20303b0a2020202020202020202078203d20303b0a2020202020202020202044203d20303b0a202020202020202020204e203d20303b0a202020202020202020206b203d4d08022028343537363035313230202f206729207c20303b0a20202020202020202020666f7220287661722074203d20303b2074203c3d20333b20742b2b29207b0a202020202020202020202020765b745d203d20303b0a2020202020202020202020205f5b745d203d20303b0a2020202020202020202020206d5b745d203d20303b0a202020202020202020202020775b745d203d20303b0a202020202020202020207d0a20202020202020202020666f7220287661722065203d20303b2065203c20383b20652b2b29207b0a2020202020202020202020207a5b655d203d203232383b0a202020202020202020207d0a202020202020202020204828422c20392c20382c20312c20333834293b0a2020202020202020202048286a2c2031372c2031362c20312c20313134363838293b0a202020202020202020204f203d20303b0a2020202020202020202046203d20303b0a202020202020202020204d203d20303b0a2020202020202020202052203d20303b0a2020202020202020202050203d20303b0a2020202020202020202055203d20303b0a202020202020202020205a203d20303b0a20202020202020202020515b305d203d20313b0a20202020202020202020515b315d203d20313b0a20202020202020202020515b325d203d20303b0a20202020202020202020515b335d203d20303b0a20202020202020202020657428747275654d0802293b0a20202020202020207d0a202020202020202066756e6374696f6e2056287429207b0a2020202020202020202069662028472d2d203e203029207b0a202020202020202020202020636f6e736f6c652e6c6f672827706f6b65795f67657452656769737465723a202564272c2074293b0a202020202020202020207d0a202020202020202020207661722065203d20303b0a20202020202020202020766172206e203d203135202620743b0a20202020202020202020696620286e203c203829207b0a202020202020202020202020696620282872203d207a5b6e5d29203c3d205729207b0a202020202020202020202020202072657475726e20723b0a2020202020202020202020207d20656c7365207b0a202020202020202020202020202072657475726e20573b0a2020202020202020202020207d0a202020202020202020207d0a2020202020202020202073776974636820287429207b0a202020202020202020202020636173652031363339323a0a20202020202020202020202020207661722072203d20303b0a2020202020202020202020202020666f7220287661722063203d20303b2063203c20383b20632b2b29207b0a20202020202020202020202020202020696620287a5b6e5d203c3d205729207b0a2020202020202020202020202020202020207220263d207e2831203c3c2063293b0a202020202020202020204d08022020202020207d0a20202020202020202020202020207d0a202020202020202020202020202072657475726e20723b0a202020202020202020202020636173652031363339343a0a20202020202020202020202020207661722069203d2055202b204a6f28293b0a202020202020202020202020202069662028332026204f29207b0a202020202020202020202020202020207661722061203d202869202d205a29203e3e3e20323b0a2020202020202020202020202020202052203d202861202b205229202520353131207c20303b0a2020202020202020202020202020202050203d202861202b205029202520313331303731207c20303b0a20202020202020202020202020207d20656c7365207b0a2020202020202020202020202020202052203d20303b0a2020202020202020202020202020202050203d20303b0a20202020202020202020202020207d0a202020202020202020202020202046203d203132382026204d203f20425b525d203a206a5b505d3b0a20202020202020202020202020205a203d20693b0a202020202020202020202020202065203d2046205e3d203235353b0a202020202020202020207d0a2020202020202020202072657475726e20653b0a20202020202020207d0a202020202020202066756e6374696f6e205828742c206529207b0a2020202020202020202073776974636820280a2020202020204d080220202020202028472d2d203e203020262620636f6e736f6c652e6c6f672827706f6b65795f73657452656769737465723a202564202564272c2074202d2031363338342c2065292c0a202020202020202020202020284a5b74202d2031363338345d203d2065292c0a20202020202020202020202074290a2020202020202020202029207b0a202020202020202020202020636173652031363339353a0a2020202020202020202020202020696620282128342026204f2929207b0a2020202020202020202020202020202057203d20303b0a20202020202020202020202020207d0a202020202020202020202020202072657475726e3b0a202020202020202020202020636173652031363339393a0a20202020202020202020202020204f203d20653b0a202020202020202020202020202069662028342026206529207b0a2020202020202020202020202020202057203d203232383b0a20202020202020202020202020207d0a202020202020202020202020202072657475726e3b0a202020202020202020202020636173652031363338343a0a2020202020202020202020202020775b305d203d20653b0a2020202020202020202020202020627265616b3b0a202020202020202020202020636173652031363338353a0a20202020202020202020202020206d5b305d203d20653b0a2020202020202020202020202020627265616b4d08023b0a202020202020202020202020636173652031363338363a0a2020202020202020202020202020775b315d203d20653b0a2020202020202020202020202020627265616b3b0a202020202020202020202020636173652031363338373a0a20202020202020202020202020206d5b315d203d20653b0a2020202020202020202020202020627265616b3b0a202020202020202020202020636173652031363338383a0a2020202020202020202020202020775b325d203d20653b0a2020202020202020202020202020627265616b3b0a202020202020202020202020636173652031363338393a0a20202020202020202020202020206d5b325d203d20653b0a2020202020202020202020202020627265616b3b0a202020202020202020202020636173652031363339303a0a2020202020202020202020202020775b335d203d20653b0a2020202020202020202020202020627265616b3b0a202020202020202020202020636173652031363339313a0a20202020202020202020202020206d5b335d203d20653b0a2020202020202020202020202020627265616b3b0a202020202020202020202020636173652031363339323a0a20202020202020202020202020204d203d20653b0a202020202020202020207d0a20202020202020207d0a202020202020202066756e6374696f6e207128742c206529207b0a202020202020202020204d08025f5b745d203d20285f5b745d202b2031292026203235353b0a20202020202020202020696620285f5b745d203d3d203020262620545b745d203d3d203029207b0a202020202020202020202020545b745d203d20653b0a202020202020202020207d0a20202020202020207d0a202020202020202066756e6374696f6e204b287429207b0a2020202020202020202069662028545b745d203e203029207b0a202020202020202020202020545b745d2d2d3b0a20202020202020202020202072657475726e20545b745d203d3d20303b0a202020202020202020207d20656c7365207b0a20202020202020202020202072657475726e20303b0a202020202020202020207d0a20202020202020207d0a202020202020202066756e6374696f6e2024287429207b0a202020202020202020205f5b745d203d20323535205e20775b745d3b0a20202020202020202020545b745d203d20303b0a20202020202020207d0a202020202020202066756e6374696f6e207474287429207b0a20202020202020202020696620283132382026206d5b745d207c7c20495b785d29207b0a2020202020202020202020206966202833322026206d5b745d29207b0a2020202020202020202020202020765b745d205e3d20313b0a2020202020202020202020207d20656c7365206966202836342026206d5b745d29207b0a20202020202020202020202020204d0802765b745d203d204c5b535d3b0a2020202020202020202020207d20656c7365207b0a2020202020202020202020202020765b745d203d203132382026204d203f20435b445d203a20455b4e5d3b0a2020202020202020202020207d0a202020202020202020207d0a20202020202020207d0a202020202020202066756e6374696f6e206574287429207b0a2020202020202020202079203d20303b0a20202020202020202020696620287429207b0a202020202020202020202020666f7220287661722065203d20303b2065203c20323034383b20652b2b29207b0a2020202020202020202020202020625b655d203d20303b0a2020202020202020202020207d0a202020202020202020207d0a20202020202020207d0a202020202020202066756e6374696f6e206f7428742c206529207b0a2020202020202020202061745b745d203d20653b0a2020202020202020202063742e53657452656728742c2065293b0a20202020202020207d0a202020202020202066756e6374696f6e2043742829207b0a20202020202020202020666f7220287661722074203d20303b2074203c203133313037323b20742b2b29207b0a20202020202020202020202075745b745d203d20303b0a202020202020202020207d0a202020202020202020206474203d2066616c73653b0a202020202020202020206c74203d2066616c73653b0a2020202020204d0802202020206874203d2066616c73653b0a202020202020202020204174203d2066616c73653b0a202020202020202020207074203d2066616c73653b0a202020202020202020206274203d2066616c73653b0a202020202020202020206774203d2066616c73653b0a202020202020202020207974203d2066616c73653b0a202020202020202020207774203d20303b0a202020202020202020206d74203d20303b0a202020202020202020204d74203d20303b0a202020202020202020207674203d20303b0a202020202020202020204c74203d20303b0a202020202020202020204974203d20303b0a202020202020202020202866756e6374696f6e202829207b0a20202020202020202020202063742e526573657428293b0a202020202020202020202020666f7220286c65742074203d20303b2074203c2061742e6c656e6774683b20742b2b29207b0a202020202020202020202020202061745b745d203d20303b0a2020202020202020202020207d0a202020202020202020207d2928293b0a202020202020202020204574203d20303b0a202020202020202020205374203d20323b0a202020202020202020207874203d202d313b0a20202020202020207d0a202020202020202066756e6374696f6e2044742829207b0a2020202020202020202072657475726e206c743b0a20202020202020207d0a202020202020202066756e634d080274696f6e204e742829207b0a2020202020202020202072657475726e2064743b0a20202020202020207d0a202020202020202066756e6374696f6e205f742829207b0a2020202020202020202072657475726e2068743b0a20202020202020207d0a202020202020202066756e6374696f6e205474287429207b0a202020202020202020207974203d20743b0a20202020202020207d0a202020202020202066756e6374696f6e206a7428742c206529207b0a20202020202020202020746869732e746f706963203d20743b0a20202020202020202020696620286529207b0a202020202020202020202020746869732e6f6e4576656e74203d20653b0a202020202020202020207d0a20202020202020207d0a202020202020202066756e6374696f6e205274287429207b0a2020202020202020202069662028427429207b0a2020202020202020202020207661722065203d206e65772042742e4c697374656e657228293b0a202020202020202020202020652e676574546f706963203d2066756e6374696f6e202829207b0a202020202020202020202020202072657475726e20742e676574546f70696328293b0a2020202020202020202020207d3b0a202020202020202020202020652e6f6e4576656e74203d2066756e6374696f6e20286529207b0a2020202020202020202020202020742e6f6e4576656e742865293b0a202020204d080220202020202020207d3b0a20202020202020202020202042742e6164644c697374656e65722865293b0a202020202020202020207d20656c7365207b0a202020202020202020202020766172206e203d20742e676574546f70696328293b0a2020202020202020202020207661722072203d206b745b6e5d3b0a20202020202020202020202069662028217229207b0a202020202020202020202020202072203d205b5d3b0a20202020202020202020202020206b745b6e5d203d20723b0a2020202020202020202020207d0a202020202020202020202020722e707573682874293b0a202020202020202020207d0a20202020202020207d0a202020202020202066756e6374696f6e20507428742c206529207b0a2020202020202020202069662028427429207b0a20202020202020202020202042742e666972654576656e7428742c2065293b0a202020202020202020207d20656c7365207b0a202020202020202020202020766172206e203d206b745b745d3b0a202020202020202020202020696620286e29207b0a2020202020202020202020202020666f7220287661722072203d20303b2072203c206e2e6c656e6774683b20722b2b29207b0a202020202020202020202020202020206e5b725d2e6f6e4576656e742865293b0a20202020202020202020202020207d0a2020202020202020202020207d0a2020202020202020204d0802207d0a20202020202020207d0a202020202020202066756e6374696f6e204f74287429207b0a20202020202020202020666f722028766172206520696e2028284274203d2074292c206b742929207b0a202020202020202020202020766172206e203d206b745b655d3b0a202020202020202020202020666f7220287661722072203d20303b2072203c206e2e6c656e6774683b20722b2b29207b0a20202020202020202020202020205274286e5b725d293b0a2020202020202020202020207d0a202020202020202020207d0a20202020202020207d0a202020202020202066756e6374696f6e205874287429207b0a202020202020202020205174203d20743b0a20202020202020207d0a202020202020202066756e6374696f6e207174287429207b0a202020202020202020204874203d20743b0a2020202020202020202046745b3634325d203d202d323120262046745b3634325d2026203235353b0a2020202020202020202046745b3634325d203d203235352026202846745b3634325d207c20283230202620287e46745b3634335d207c2048742929293b0a20202020202020207d0a202020202020202066756e6374696f6e204b742829207b0a2020202020202020202072657475726e2057743b0a20202020202020207d0a202020202020202066756e6374696f6e2024742829207b0a2020202020202020202072657475726e4d0802205a743b0a20202020202020207d0a202020202020202066756e6374696f6e207065287429207b0a202020202020202020206c655b745d2b2b3b0a20202020202020202020696620286c655b745d203d3d20333129207b0a2020202020202020202020206c655b745d203d20303b0a202020202020202020207d0a20202020202020202020696620280a202020202020202020202020283220262073655b745d29203d3d2030207c7c0a20202020202020202020202028283120262073655b745d29203d3d20302026262063655b6c655b745d5d29207c7c0a20202020202020202020202028283120262073655b745d29203d3d2031202626206e655b6c655b745d5d290a2020202020202020202029207b0a202020202020202020202020696620283420262073655b745d29207b0a202020202020202020202020202069655b745d203d2069655b745d203f2030203a2075655b745d3b0a2020202020202020202020207d20656c736520696620283820262073655b745d29207b0a20202020202020202020202020206966202873655b745d203d3d203829207b0a2020202020202020202020202020202068655b745d2b2b3b0a202020202020202020202020202020206966202868655b745d203d3d2035313129207b0a20202020202020202020202020202020202068655b745d203d20303b0a202020202020202020202020202020207d4d08020a2020202020202020202020202020202069655b745d203d2072655b68655b745d5d203f2075655b745d203a20303b0a20202020202020202020202020207d20656c7365207b0a2020202020202020202020202020202069655b745d203d206e655b6c655b745d5d203f2075655b745d203a20303b0a20202020202020202020202020207d0a2020202020202020202020207d20656c7365207b0a202020202020202020202020202064655b745d2b2b3b0a20202020202020202020202020206966202864655b745d203d3d20313529207b0a2020202020202020202020202020202064655b745d203d20303b0a20202020202020202020202020207d0a202020202020202020202020202069655b745d203d2065655b64655b745d5d203f2075655b745d203a20303b0a2020202020202020202020207d0a202020202020202020207d0a20202020202020207d0a202020202020202066756e6374696f6e206265287429207b0a202020202020202020204165203d20303b0a20202020202020202020696620287429207b0a202020202020202020202020666f7220287661722065203d20303b2065203c20323034383b20652b2b29207b0a202020202020202020202020202074655b655d203d20303b0a2020202020202020202020207d0a202020202020202020207d0a20202020202020207d0a202020202020202066756e6374696f6e204d080255652829207b0a20202020202020202020666f7220287661722074203d20303b2074203c2036353533363b20742b2b29207b0a2020202020202020202020204e655b745d203d20303b0a20202020202020202020202054655b745d203d20303b0a2020202020202020202020205f655b745d203d20313b0a202020202020202020207d0a20202020202020202020666f72202874203d20303b2074203c2031363338343b20742b2b29207b0a2020202020202020202020205f655b745d203d20303b0a202020202020202020207d0a202020202020202020207a65203d2066616c73653b0a20202020202020207d0a202020202020202066756e6374696f6e205a65287429207b0a2020202020202020202076617220653b0a20202020202020202020696620280a20202020202020202020202046652026260a202020202020202020202020282874203e3d20313133362026262074203c203131353229207c7c0a2020202020202020202020202020284c6528292026262074203e3d20313130342026262074203c203131333629207c7c0a202020202020202020202020202028496528292026262074203e3d2031363338342026262074203c20333237363829207c7c0a202020202020202020202020202028436528292026262074203e3d20313132302026262074203c3d203131323129290a2020202020202020202029207b0a202020204d0802202020202020202072657475726e2045652874293b0a202020202020202020207d0a20202020202020202020696620280a2020202020202020202020202152652026260a2020202020202020202020206b652026260a202020202020202020202020282821426520262620216a652026262074203e3d2031363338342026262074203c3d20313633393929207c7c0a2020202020202020202020202020286a652026262074203e3d20323034382026262074203c203230383029207c7c0a20202020202020202020202020202842652026262074203e3d20313130342026262074203c203131333629290a2020202020202020202029207b0a20202020202020202020202072657475726e207965286a65203f2074202d2032303438202b203136333834203a204265203f2074202d2031313034202b203136333834203a2074293b0a202020202020202020207d0a202020202020202020206966202874203e3d2033322026262074203c3d203633202626207420213d20343029207b0a20202020202020202020202072657475726e20303b0a202020202020202020207d0a2020202020202020202073776974636820287429207b0a20202020202020202020202063617365203634343a0a20202020202020202020202063617365203634363a0a20202020202020202020202020204e655b3634355d20263d203132373b0a202020202020204d08022020202020202072657475726e204e655b3634345d3b0a20202020202020202020202063617365203634353a0a20202020202020202020202063617365203634373a0a202020202020202020202020202065203d204e655b3634355d3b0a20202020202020202020202020204e655b3634355d20263d203132373b0a202020202020202020202020202072657475726e20653b0a20202020202020202020202064656661756c743a0a202020202020202020202020202069662028576529207b0a20202020202020202020202020202020696620284f652026262074203e3d2031363338342026262074203c3d20333237363729207b0a20202020202020202020202020202020202072657475726e2054655b745d3b0a202020202020202020202020202020207d0a20202020202020202020202020202020696620284765203d3d3d20686e207c7c204765203d3d3d20796e29207b0a2020202020202020202020202020202020206966202874203e3d204b7228292026262074203c3d207463282929207b0a202020202020202020202020202020202020202072657475726e2054655b745d3b0a2020202020202020202020202020202020207d0a202020202020202020202020202020207d20656c7365207b0a202020202020202020202020202020202020696620284765203d3d20676e2026262074203e3d2031363338342026262074204d08023c3d20333237363729207b0a202020202020202020202020202020202020202072657475726e2054655b745d3b0a2020202020202020202020202020202020207d0a2020202020202020202020202020202020206966202874203e3d2033323736382026262074203c3d20343931353129207b0a202020202020202020202020202020202020202072657475726e2054655b745d3b0a2020202020202020202020202020202020207d0a2020202020202020202020202020202020206966202874203e3d2034393135322026262074203c3d20363535333529207b0a202020202020202020202020202020202020202072657475726e2054655b745d3b0a2020202020202020202020202020202020207d0a202020202020202020202020202020207d0a20202020202020202020202020207d0a202020202020202020202020202072657475726e204e655b745d3b0a202020202020202020207d0a20202020202020207d0a202020202020202066756e6374696f6e205165287429207b0a202020202020202020207661722065203d205a652874293b0a202020202020202020206966202865203c203029207b0a202020202020202020202020636f6e736f6c652e6572726f7228274c657373207468616e207a65726f206d656d6f727920726561643a202564202564272c20742c2065293b0a202020202020202020207d0a202020202020204d080220202072657475726e20653b0a20202020202020207d0a202020202020202066756e6374696f6e204865287429207b0a202020202020202020205765203d20747275653b0a202020202020202020207661722065203d205a652874293b0a202020202020202020205765203d2066616c73653b0a202020202020202020206966202865203c203029207b0a202020202020202020202020636f6e736f6c652e6572726f7228274c657373207468616e207a65726f206d656d6f727920726561643a202564202564272c20742c2065293b0a202020202020202020207d0a2020202020202020202072657475726e20653b0a20202020202020207d0a202020202020202066756e6374696f6e20596528742c206529207b0a202020202020202020206966202865203c203029207b0a202020202020202020202020636f6e736f6c652e6572726f7228274c657373207468616e207a65726f206d656d6f72792077726974653a202564202564272c20742c2065293b0a202020202020202020207d0a20202020202020202020696620280a20202020202020202020202046652026260a202020202020202020202020282874203e3d20313133362026262074203c203131353229207c7c0a2020202020202020202020202020284c6528292026262074203e3d20313130342026262074203c203131333629207c7c0a202020202020202020202020204d08022028496528292026262074203e3d2031363338342026262074203c20333237363829207c7c0a202020202020202020202020202028436528292026262074203e3d20313132302026262074203c3d203131323129290a2020202020202020202029207b0a202020202020202020202020536528742c2065293b0a202020202020202020207d20656c736520696620280a2020202020202020202020206b652026260a202020202020202020202020282821426520262620216a652026262074203e3d2031363338342026262074203c3d20313633393929207c7c0a2020202020202020202020202020286a652026262074203e3d20323034382026262074203c203230383029207c7c0a20202020202020202020202020202842652026262074203e3d20313130342026262074203c203131333629290a2020202020202020202029207b0a2020202020202020202020206765286a65203f2074202d2032303438202b203136333834203a204265203f2074202d2031313034202b203136333834203a20742c2065293b0a202020202020202020207d20656c73652069662028215f655b745d207c7c20284f652026262074203e3d2034393135322026262074203c3d2036353533352929207b0a2020202020202020202020206966202878652026262074203e3d20343039362026262074203c3d203631343320262620446529207b0a202020204d08022020202020202020202044652e777269746528742c2065293b0a2020202020202020202020207d0a2020202020202020202020206966202874203e3d20302026262074203c3d20313529207b0a202020202020202020202020202069662028217a6529207b0a2020202020202020202020202020202069662028312026206529207b0a2020202020202020202020202020202020207a65203d20747275653b0a202020202020202020202020202020202020636f6e736f6c652e6c6f6728274c6f636b3a2027202b2065293b0a2020202020202020202020202020202020204e655b34305d203d203132383b0a202020202020202020202020202020207d0a20202020202020202020202020202020696620283420262065202626206e72282929207b0a20202020202020202020202020202020202069662028215872282929207b0a2020202020202020202020202020202020202020246e28293b0a2020202020202020202020202020202020207d0a202020202020202020202020202020207d0a20202020202020202020202020207d0a2020202020202020202020207d20656c7365207b0a202020202020202020202020202073776974636820287429207b0a20202020202020202020202020202020636173652033363a0a2020202020202020202020202020202020204e655b33365d203d20313b0a20202020202020202020202020204d080220202020627265616b3b0a202020202020202020202020202020206361736520383a0a202020202020202020202020202020206361736520393a0a20202020202020202020202020202020636173652031303a0a20202020202020202020202020202020636173652031313a0a20202020202020202020202020202020636173652031323a0a20202020202020202020202020202020636173652031333a0a20202020202020202020202020202020636173652034303a0a202020202020202020202020202020202020627265616b3b0a20202020202020202020202020202020636173652032313a0a20202020202020202020202020202020202077652832312c2065293b0a202020202020202020202020202020202020627265616b3b0a20202020202020202020202020202020636173652032323a0a20202020202020202020202020202020202077652832322c2065293b0a202020202020202020202020202020202020627265616b3b0a20202020202020202020202020202020636173652032333a0a20202020202020202020202020202020202077652832332c2065293b0a202020202020202020202020202020202020627265616b3b0a20202020202020202020202020202020636173652032343a0a20202020202020202020202020202020202077652832342c2065293b0a20202020202020202020202020202020202062724d080265616b3b0a20202020202020202020202020202020636173652032353a0a20202020202020202020202020202020202077652832352c2065293b0a202020202020202020202020202020202020627265616b3b0a20202020202020202020202020202020636173652032363a0a20202020202020202020202020202020202077652832362c2065293b0a202020202020202020202020202020202020627265616b3b0a2020202020202020202020202020202063617365203634323a0a2020202020202020202020202020202020206d652865293b0a202020202020202020202020202020202020627265616b3b0a2020202020202020202020202020202063617365203634303a0a2020202020202020202020202020202020204d652865293b0a202020202020202020202020202020202020627265616b3b0a2020202020202020202020202020202063617365203636303a0a2020202020202020202020202020202063617365203636383a0a2020202020202020202020202020202020207665283636302c2065293b0a202020202020202020202020202020202020627265616b3b0a2020202020202020202020202020202063617365203636313a0a2020202020202020202020202020202063617365203636393a0a2020202020202020202020202020202020207665283636312c2065293b0a202020202020202020202020202020204d08022020627265616b3b0a2020202020202020202020202020202063617365203636323a0a2020202020202020202020202020202063617365203637303a0a2020202020202020202020202020202020207665283636322c2065293b0a202020202020202020202020202020202020627265616b3b0a2020202020202020202020202020202063617365203636333a0a2020202020202020202020202020202063617365203637313a0a2020202020202020202020202020202020207665283636332c2065293b0a202020202020202020202020202020202020627265616b3b0a2020202020202020202020202020202064656661756c743a0a202020202020202020202020202020202020696620284f652026262074203e3d2034393135322026262074203c3d20363535333529207b0a202020202020202020202020202020202020202054655b74202d203439313532202b2031363338345d203d20653b0a2020202020202020202020202020202020207d20656c7365207b0a20202020202020202020202020202020202020204e655b745d203d20653b0a20202020202020202020202020202020202020206966202874203e3d20383235362026262074203c3d203834343729207b0a202020202020202020202020202020202020202020204e655b74202d20383139325d203d20653b0a20202020202020202020202020202020202020207d4d080220656c7365206966202874203e3d20383531322026262074203c3d203837303329207b0a202020202020202020202020202020202020202020204e655b74202d20383139325d203d20653b0a20202020202020202020202020202020202020207d20656c7365206966202874203e3d2036342026262074203c3d2032353529207b0a202020202020202020202020202020202020202020204e655b74202b20383139325d203d20653b0a20202020202020202020202020202020202020207d20656c7365206966202874203e3d203332302026262074203c3d2035313129207b0a202020202020202020202020202020202020202020204e655b74202b20383139325d203d20653b0a20202020202020202020202020202020202020207d20656c7365206966202874203e3d2031303234302026262074203c3d20313232383729207b0a202020202020202020202020202020202020202020204e655b74202d20323034385d203d20653b0a20202020202020202020202020202020202020207d20656c7365206966202874203e3d20383139322026262074203c3d20313032333929207b0a202020202020202020202020202020202020202020204e655b74202b20323034385d203d20653b0a20202020202020202020202020202020202020207d0a2020202020202020202020202020202020207d0a20202020202020202020202020207d0a4d08022020202020202020202020207d0a202020202020202020207d20656c7365207b0a202020202020202020202020747228742c2065293b0a202020202020202020207d0a20202020202020207d0a202020202020202066756e6374696f6e20566528742c20652c206e2c207229207b0a202020202020202020207661722063203d2066616c73653b0a202020202020202020207661722069203d20303b0a2020202020202020202069662028506529207b0a2020202020202020202020207661722061203d20437228293b0a2020202020202020202020206966202861203d3d3d20686e207c7c2061203d3d3d20796e29207b0a202020202020202020202020202069203d20653b0a202020202020202020202020202071722874293b0a202020202020202020202020202024722874202b2065202d2031293b0a202020202020202020202020202063203d20747275653b0a2020202020202020202020207d20656c736520696620280a202020202020202020202020202074203d3d3d203332373638207c7c0a202020202020202020202020202074203d3d3d203439313532207c7c0a20202020202020202020202020202861203d3d3d20676e2026262074203d3d3d203136333834290a20202020202020202020202029207b0a202020202020202020202020202069203d203133313037323b0a202020202020202020202020202063203d204d0802747275653b0a2020202020202020202020207d0a202020202020202020207d0a202020202020202020206966202874202b2065203c3d203635353336202626206e20213d206e756c6c29207b0a202020202020202020202020666f722028766172206f203d20303b206f203c20653b206f2b2b29207b0a20202020202020202020202020204e655b74202b206f5d203d206e5b6f202b20725d3b0a20202020202020202020202020205f655b74202b206f5d203d20313b0a2020202020202020202020202020696620286329207b0a2020202020202020202020202020202054655b74202b206f5d203d206e5b6f202b2072202b20695d3b0a20202020202020202020202020207d0a2020202020202020202020207d0a202020202020202020207d0a20202020202020207d0a202020202020202066756e6374696f6e204a6528742c206529207b0a202020202020202020206966202874202b2065203c3d20363535333629207b0a202020202020202020202020666f722028766172206e203d20303b206e203c20653b206e2b2b29207b0a20202020202020202020202020204e655b74202b206e5d203d20303b0a20202020202020202020202020205f655b74202b206e5d203d20303b0a2020202020202020202020202020696620284f652026262074203d3d3d20313633383429207b0a2020202020202020202020202020202054655b744d0802202b206e5d203d20303b0a20202020202020202020202020207d0a2020202020202020202020207d0a202020202020202020207d0a20202020202020207d0a202020202020202066756e6374696f6e20586528742c206529207b0a20202020202020202020766172206e203d20745b305d3b0a202020202020202020207661722072203d20745b315d3b0a202020202020202020207661722063203d20745b325d3b0a202020202020202020207661722069203d20745b335d3b0a202020202020202020206e203d204b65286e2c20722c20632c20692c20655b305d2c20372c202d363830383736393336293b0a2020202020202020202069203d204b6528692c206e2c20722c20632c20655b315d2c2031322c202d333839353634353836293b0a2020202020202020202063203d204b6528632c20692c206e2c20722c20655b325d2c2031372c20363036313035383139293b0a2020202020202020202072203d204b6528722c20632c20692c206e2c20655b335d2c2032322c202d31303434353235333330293b0a202020202020202020206e203d204b65286e2c20722c20632c20692c20655b345d2c20372c202d313736343138383937293b0a2020202020202020202069203d204b6528692c206e2c20722c20632c20655b355d2c2031322c2031323030303830343236293b0a2020202020202020202063203d204b6528632c20692c204d08026e2c20722c20655b365d2c2031372c202d31343733323331333431293b0a2020202020202020202072203d204b6528722c20632c20692c206e2c20655b375d2c2032322c202d3435373035393833293b0a202020202020202020206e203d204b65286e2c20722c20632c20692c20655b385d2c20372c2031373730303335343136293b0a2020202020202020202069203d204b6528692c206e2c20722c20632c20655b395d2c2031322c202d31393538343134343137293b0a2020202020202020202063203d204b6528632c20692c206e2c20722c20655b31305d2c2031372c202d3432303633293b0a2020202020202020202072203d204b6528722c20632c20692c206e2c20655b31315d2c2032322c202d31393930343034313632293b0a202020202020202020206e203d204b65286e2c20722c20632c20692c20655b31325d2c20372c2031383034363033363832293b0a2020202020202020202069203d204b6528692c206e2c20722c20632c20655b31335d2c2031322c202d3430333431313031293b0a2020202020202020202063203d204b6528632c20692c206e2c20722c20655b31345d2c2031372c202d31353032303032323930293b0a202020202020202020206e203d202465280a2020202020202020202020206e2c0a2020202020202020202020202872203d204b6528722c20632c20692c206e2c20655b31355d2c2032324d08022c203132333635333533323929292c0a202020202020202020202020632c0a202020202020202020202020692c0a202020202020202020202020655b315d2c0a202020202020202020202020352c0a2020202020202020202020202d3136353739363531300a20202020202020202020293b0a2020202020202020202069203d20246528692c206e2c20722c20632c20655b365d2c20392c202d31303639353031363332293b0a2020202020202020202063203d20246528632c20692c206e2c20722c20655b31315d2c2031342c20363433373137373133293b0a2020202020202020202072203d20246528722c20632c20692c206e2c20655b305d2c2032302c202d333733383937333032293b0a202020202020202020206e203d202465286e2c20722c20632c20692c20655b355d2c20352c202d373031353538363931293b0a2020202020202020202069203d20246528692c206e2c20722c20632c20655b31305d2c20392c203338303136303833293b0a2020202020202020202063203d20246528632c20692c206e2c20722c20655b31355d2c2031342c202d363630343738333335293b0a2020202020202020202072203d20246528722c20632c20692c206e2c20655b345d2c2032302c202d343035353337383438293b0a202020202020202020206e203d202465286e2c20722c20632c20692c20655b395d2c20352c2035363834344d080236343338293b0a2020202020202020202069203d20246528692c206e2c20722c20632c20655b31345d2c20392c202d31303139383033363930293b0a2020202020202020202063203d20246528632c20692c206e2c20722c20655b335d2c2031342c202d313837333633393631293b0a2020202020202020202072203d20246528722c20632c20692c206e2c20655b385d2c2032302c2031313633353331353031293b0a202020202020202020206e203d202465286e2c20722c20632c20692c20655b31335d2c20352c202d31343434363831343637293b0a2020202020202020202069203d20246528692c206e2c20722c20632c20655b325d2c20392c202d3531343033373834293b0a2020202020202020202063203d20246528632c20692c206e2c20722c20655b375d2c2031342c2031373335333238343733293b0a202020202020202020206e203d20746e280a2020202020202020202020206e2c0a2020202020202020202020202872203d20246528722c20632c20692c206e2c20655b31325d2c2032302c202d3139323636303737333429292c0a202020202020202020202020632c0a202020202020202020202020692c0a202020202020202020202020655b355d2c0a202020202020202020202020342c0a2020202020202020202020202d3337383535380a20202020202020202020293b0a2020202020202020202069203d204d0802746e28692c206e2c20722c20632c20655b385d2c2031312c202d32303232353734343633293b0a2020202020202020202063203d20746e28632c20692c206e2c20722c20655b31315d2c2031362c2031383339303330353632293b0a2020202020202020202072203d20746e28722c20632c20692c206e2c20655b31345d2c2032332c202d3335333039353536293b0a202020202020202020206e203d20746e286e2c20722c20632c20692c20655b315d2c20342c202d31353330393932303630293b0a2020202020202020202069203d20746e28692c206e2c20722c20632c20655b345d2c2031312c2031323732383933333533293b0a2020202020202020202063203d20746e28632c20692c206e2c20722c20655b375d2c2031362c202d313535343937363332293b0a2020202020202020202072203d20746e28722c20632c20692c206e2c20655b31305d2c2032332c202d31303934373330363430293b0a202020202020202020206e203d20746e286e2c20722c20632c20692c20655b31335d2c20342c20363831323739313734293b0a2020202020202020202069203d20746e28692c206e2c20722c20632c20655b305d2c2031312c202d333538353337323232293b0a2020202020202020202063203d20746e28632c20692c206e2c20722c20655b335d2c2031362c202d373232353231393739293b0a20202020202020202020724d0802203d20746e28722c20632c20692c206e2c20655b365d2c2032332c203736303239313839293b0a202020202020202020206e203d20746e286e2c20722c20632c20692c20655b395d2c20342c202d363430333634343837293b0a2020202020202020202069203d20746e28692c206e2c20722c20632c20655b31325d2c2031312c202d343231383135383335293b0a2020202020202020202063203d20746e28632c20692c206e2c20722c20655b31355d2c2031362c20353330373432353230293b0a202020202020202020206e203d20656e280a2020202020202020202020206e2c0a2020202020202020202020202872203d20746e28722c20632c20692c206e2c20655b325d2c2032332c202d39393533333836353129292c0a202020202020202020202020632c0a202020202020202020202020692c0a202020202020202020202020655b305d2c0a202020202020202020202020362c0a2020202020202020202020202d3139383633303834340a20202020202020202020293b0a2020202020202020202069203d20656e28692c206e2c20722c20632c20655b375d2c2031302c2031313236383931343135293b0a2020202020202020202063203d20656e28632c20692c206e2c20722c20655b31345d2c2031352c202d31343136333534393035293b0a2020202020202020202072203d20656e28722c20632c20692c206e2c20655b4d0802355d2c2032312c202d3537343334303535293b0a202020202020202020206e203d20656e286e2c20722c20632c20692c20655b31325d2c20362c2031373030343835353731293b0a2020202020202020202069203d20656e28692c206e2c20722c20632c20655b335d2c2031302c202d31383934393836363036293b0a2020202020202020202063203d20656e28632c20692c206e2c20722c20655b31305d2c2031352c202d31303531353233293b0a2020202020202020202072203d20656e28722c20632c20692c206e2c20655b315d2c2032312c202d32303534393232373939293b0a202020202020202020206e203d20656e286e2c20722c20632c20692c20655b385d2c20362c2031383733333133333539293b0a2020202020202020202069203d20656e28692c206e2c20722c20632c20655b31355d2c2031302c202d3330363131373434293b0a2020202020202020202063203d20656e28632c20692c206e2c20722c20655b365d2c2031352c202d31353630313938333830293b0a2020202020202020202072203d20656e28722c20632c20692c206e2c20655b31335d2c2032312c2031333039313531363439293b0a202020202020202020206e203d20656e286e2c20722c20632c20692c20655b345d2c20362c202d313435353233303730293b0a2020202020202020202069203d20656e28692c206e2c20722c20632c20655b4d080231315d2c2031302c202d31313230323130333739293b0a2020202020202020202063203d20656e28632c20692c206e2c20722c20655b325d2c2031352c20373138373837323539293b0a2020202020202020202072203d20656e28722c20632c20692c206e2c20655b395d2c2032312c202d333433343835353531293b0a20202020202020202020745b305d203d206f6e286e2c20745b305d293b0a20202020202020202020745b315d203d206f6e28722c20745b315d293b0a20202020202020202020745b325d203d206f6e28632c20745b325d293b0a20202020202020202020745b335d203d206f6e28692c20745b335d293b0a20202020202020207d0a202020202020202066756e6374696f6e20716528742c20652c206e2c20722c20632c206929207b0a2020202020202020202065203d206f6e286f6e28652c2074292c206f6e28722c206929293b0a2020202020202020202072657475726e206f6e282865203c3c206329207c202865203e3e3e20283332202d206329292c206e293b0a20202020202020207d0a202020202020202066756e6374696f6e204b6528742c20652c206e2c20722c20632c20692c206129207b0a2020202020202020202072657475726e2071652828652026206e29207c20287e6520262072292c20742c20652c20632c20692c2061293b0a20202020202020207d0a202020202020202066756e6374694d08026f6e20246528742c20652c206e2c20722c20632c20692c206129207b0a2020202020202020202072657475726e2071652828652026207229207c20286e2026207e72292c20742c20652c20632c20692c2061293b0a20202020202020207d0a202020202020202066756e6374696f6e20746e28742c20652c206e2c20722c20632c20692c206129207b0a2020202020202020202072657475726e2071652865205e206e205e20722c20742c20652c20632c20692c2061293b0a20202020202020207d0a202020202020202066756e6374696f6e20656e28742c20652c206e2c20722c20632c20692c206129207b0a2020202020202020202072657475726e207165286e205e202865207c207e72292c20742c20652c20632c20692c2061293b0a20202020202020207d0a202020202020202066756e6374696f6e206e6e287429207b0a20202020202020202020766172206e203d205b5d3b0a20202020202020202020666f7220287661722065203d20303b2065203c2036343b2065202b3d203429207b0a2020202020202020202020206e5b65203e3e20325d203d0a2020202020202020202020202020742e63686172436f64654174286529202b0a202020202020202020202020202028742e63686172436f646541742865202b203129203c3c203829202b0a202020202020202020202020202028742e63686172436f646541742865202b204d08023229203c3c20313629202b0a202020202020202020202020202028742e63686172436f646541742865202b203329203c3c203234293b0a202020202020202020207d0a2020202020202020202072657475726e206e3b0a20202020202020207d0a202020202020202066756e6374696f6e20636e287429207b0a202020202020202020207661722065203d2027273b0a20202020202020202020666f722028766172206e203d20303b206e203c20343b206e2b2b29207b0a20202020202020202020202065202b3d20726e5b2874203e3e202838202a206e202b2034292920262031355d202b20726e5b2874203e3e202838202a206e292920262031355d3b0a202020202020202020207d0a2020202020202020202072657475726e20653b0a20202020202020207d0a202020202020202066756e6374696f6e20616e287429207b0a2020202020202020202072657475726e202866756e6374696f6e20287429207b0a202020202020202020202020666f7220287661722065203d20303b2065203c20742e6c656e6774683b20652b2b29207b0a2020202020202020202020202020745b655d203d20636e28745b655d293b0a2020202020202020202020207d0a20202020202020202020202072657475726e20742e6a6f696e282727293b0a202020202020202020207d29280a2020202020202020202020202866756e6374696f6e202874294d0802207b0a2020202020202020202020202020766172206e203d20742e6c656e6774683b0a20202020202020202020202020207661722072203d205b313733323538343139332c202d3237313733333837392c202d313733323538343139342c203237313733333837385d3b0a2020202020202020202020202020666f7220287661722065203d2036343b2065203c3d20742e6c656e6774683b2065202b3d20363429207b0a20202020202020202020202020202020586528722c206e6e28742e737562737472696e672865202d2036342c20652929293b0a20202020202020202020202020207d0a202020202020202020202020202074203d20742e737562737472696e672865202d203634293b0a20202020202020202020202020207661722063203d205b302c20302c20302c20302c20302c20302c20302c20302c20302c20302c20302c20302c20302c20302c20302c20305d3b0a2020202020202020202020202020666f72202865203d20303b2065203c20742e6c656e6774683b20652b2b29207b0a20202020202020202020202020202020635b65203e3e20325d207c3d20742e63686172436f64654174286529203c3c20286520252034203c3c2033293b0a20202020202020202020202020207d0a2020202020202020202020202020635b65203e3e20325d207c3d20313238203c3c20286520252034203c3c2033293b0a20202020204d08022020202020202020206966202865203e20353529207b0a20202020202020202020202020202020586528722c2063293b0a20202020202020202020202020202020666f72202865203d20303b2065203c2031363b20652b2b29207b0a202020202020202020202020202020202020635b655d203d20303b0a202020202020202020202020202020207d0a20202020202020202020202020207d0a2020202020202020202020202020635b31345d203d2038202a206e3b0a2020202020202020202020202020586528722c2063293b0a202020202020202020202020202072657475726e20723b0a2020202020202020202020207d292874290a20202020202020202020293b0a20202020202020207d0a202020202020202066756e6374696f6e206f6e28742c206529207b0a2020202020202020202072657475726e202874202b206529202620343239343936373239353b0a20202020202020207d0a202020202020202066756e6374696f6e20566e287429207b0a2020202020202020202069662028284d6e203d3d20416e207c7c204d6e203d3d20676e207c7c204d6e203d3d20626e2920262620486e203c3d20363535333629207b0a20202020202020202020202072657475726e2033202620743b0a202020202020202020207d20656c7365207b0a20202020202020202020202072657475726e20743b0a202020202020202020207d0a4d080220202020202020207d0a202020202020202066756e6374696f6e204a6e287429207b0a2020202020202020202072657475726e203136333834202a20566e2874293b0a20202020202020207d0a202020202020202066756e6374696f6e20586e28742c206529207b0a20202020202020202020766172206e203d20486e3b0a2020202020202020202069662028506e29207b0a2020202020202020202020206e203e3e3d20313b0a202020202020202020207d0a202020202020202020207661722072203d204a6e2865293b0a202020202020202020206966202872203c206e29207b0a202020202020202020202020736e28742c2031363338342c20516e2c2072293b0a202020202020202020202020456e203d20653b0a202020202020202020207d0a20202020202020207d0a202020202020202066756e6374696f6e20716e287429207b0a2020202020202020202069662028506e29207b0a20202020202020202020202074203e3e3d20313b0a202020202020202020207d0a202020202020202020206966202874203c3d20363535333629207b0a2020202020202020202020207661722065203d204d6e3b0a2020202020202020202020204d6e203d20686e3b0a202020202020202020202020636f6e736f6c652e6c6f6728275570646174653a206e6f206269747320616e64203c3d2036346b3a2025642c202564272c20652c204d4d08026e293b0a202020202020202020207d20656c7365206966202874203d3d2031343734353629207b0a20202020202020202020202065203d204d6e3b0a2020202020202020202020204d6e203d20706e3b0a202020202020202020202020636f6e736f6c652e6c6f6728275570646174653a2073697a65203d3d203134346b3a2025642c202564272c20652c204d6e293b0a202020202020202020207d20656c7365206966202874203d3d2031333130373229207b0a20202020202020202020202065203d204d6e3b0a2020202020202020202020204d6e203d20676e3b0a202020202020202020202020636f6e736f6c652e6c6f6728275570646174653a2073697a65203d3d203132386b3a2025642c202564272c20652c204d6e293b0a202020202020202020207d20656c7365207b0a20202020202020202020202065203d204d6e3b0a2020202020202020202020204d6e203d20416e3b0a202020202020202020202020636f6e736f6c652e6c6f6728275570646174653a2064656661756c7420666f72203e2036346b3a2025642c202564272c20652c204d6e293b0a202020202020202020207d0a20202020202020207d0a202020202020202066756e6374696f6e204b6e28742c206529207b0a202020202020202020206966202865203c3d2031323829207b0a202020202020202020202020636f6e736f6c652e6c6f672827436172744d08027269646765206461746120697320696e76616c69642e27293b0a20202020202020202020202072657475726e2066616c73653b0a202020202020202020207d0a20202020202020202020636f6e736f6c652e6c6f67282761637475616c206361727472696467655f73697a653a202564272c2065293b0a20202020202020202020727228293b0a20202020202020202020766172206e203d206e657720417272617928293b0a20202020202020202020666f7220287661722072203d20303b2072203c203132383b20722b2b29207b0a2020202020202020202020206e5b725d203d20745b725d3b0a202020202020202020207d0a20202020202020202020696620280a2020202020202020202020202866756e6374696f6e20287429207b0a20202020202020202020202020207661722065203d205b273e272c20273e275d3b0a2020202020202020202020202020666f722028766172206e203d20303b206e203c20323b206e2b2b29207b0a2020202020202020202020202020202069662028655b6e5d20213d20537472696e672e66726f6d43686172436f646528745b6e202b20315d2929207b0a20202020202020202020202020202020202072657475726e2066616c73653b0a202020202020202020202020202020207d0a20202020202020202020202020207d0a202020202020202020202020202072657475726e20747275653b0a4d08022020202020202020202020207d29286e290a2020202020202020202029207b0a202020202020202020202020636f6e736f6c652e6c6f67282250726f73797374656d20646f65736e277420737570706f727420434332206861636b732e22293b0a20202020202020202020202072657475726e2066616c73653b0a202020202020202020207d0a202020202020202020207661722063203d20303b0a20202020202020202020696620280a202020202020202020202020212866756e6374696f6e20287429207b0a20202020202020202020202020207661722065203d205b2741272c202754272c202741272c202752272c202749272c202737272c202738272c202730272c202730275d3b0a2020202020202020202020202020666f722028766172206e203d20303b206e203c20393b206e2b2b29207b0a2020202020202020202020202020202069662028655b6e5d20213d20537472696e672e66726f6d43686172436f646528745b6e202b20315d2929207b0a20202020202020202020202020202020202072657475726e2066616c73653b0a202020202020202020202020202020207d0a20202020202020202020202020207d0a202020202020202020202020202072657475726e20747275653b0a2020202020202020202020207d29286e290a2020202020202020202029207b0a202020202020202020202020636f6e736f6c652e6c4d08026f672827556e61626c6520746f2066696e64206361727472696467652068656164657227293b0a202020202020202020202020486e203d20653b0a202020202020202020202020716e2865293b0a202020202020202020207d20656c7365207b0a202020202020202020202020636f6e736f6c652e6c6f672827466f756e64206361727472696467652068656164657227293b0a2020202020202020202020202866756e6374696f6e20287429207b0a2020202020202020202020202020636f6e736f6c652e6c6f67282752656164696e67206361727472696467652068656164657227293b0a20202020202020202020202020207661722065203d206e657720417272617928293b0a2020202020202020202020202020666f722028766172206e203d20303b206e203c2033323b206e2b2b29207b0a20202020202020202020202020202020655b6e5d203d20745b6e202b2031375d3b0a20202020202020202020202020207d0a2020202020202020202020202020776e203d2027273b0a2020202020202020202020202020666f7220287661722072203d20303b2072203c20652e6c656e6774683b20722b2b29207b0a20202020202020202020202020202020776e202b3d20537472696e672e66726f6d43686172436f646528655b725d293b0a20202020202020202020202020207d0a2020202020202020202020202020636f6e736f6c4d0802652e6c6f6728275469746c653a202573272c20776e293b0a2020202020202020202020202020486e203d20745b34395d203c3c2032343b0a2020202020202020202020202020486e207c3d20745b35305d203c3c2031363b0a2020202020202020202020202020486e207c3d20745b35315d203c3c20383b0a2020202020202020202020202020486e207c3d20745b35325d3b0a20202020202020202020202020204d6e203d0a20202020202020202020202020202020745b35335d203d3d20300a2020202020202020202020202020202020203f20486e203e203133313037320a20202020202020202020202020202020202020203f20706e0a20202020202020202020202020202020202020203a20745b35345d203d3d2032207c7c20745b35345d203d3d20330a20202020202020202020202020202020202020203f20416e0a20202020202020202020202020202020202020203a20745b35345d203d3d2034207c7c20745b35345d203d3d2035207c7c20745b35345d203d3d2036207c7c20745b35345d203d3d20370a20202020202020202020202020202020202020203f20626e0a20202020202020202020202020202020202020203a20745b35345d203d3d2038207c7c20745b35345d203d3d2039207c7c20745b35345d203d3d203130207c7c20745b35345d203d3d2031310a20202020202020202020202020202020202020204d08023f20676e0a20202020202020202020202020202020202020203a20686e0a2020202020202020202020202020202020203a20745b35335d203d3d20320a2020202020202020202020202020202020203f20350a2020202020202020202020202020202020203a20745b35335d203d3d20310a2020202020202020202020202020202020203f20360a2020202020202020202020202020202020203a20686e3b0a20202020202020202020202020204c6e203d2021212831202620745b35345d293b0a2020202020202020202020202020496e203d202121283634202620745b35345d293b0a2020202020202020202020202020576e203d20212128313238202620745b35335d293b0a202020202020202020202020202069662028496e207c7c20576e29207b0a202020202020202020202020202020204c6e203d20747275653b0a20202020202020202020202020207d0a2020202020202020202020202020436e5b305d203d20745b35355d3b0a2020202020202020202020202020436e5b315d203d20745b35365d3b0a2020202020202020202020202020766e203d2031202620745b35375d3b0a2020202020202020202020202020536e203d20303b0a20202020202020202020202020205f6e203d2021212831202620745b36335d29207c7c202838202620745b35335d29203d3d20383b0a2020202020202020202020202020526e203d4d08022033202620745b35385d3b0a202020202020202020202020202069662028212128506e203d202121283332202620745b35335d29292026262028486e203d3d3d203938333034207c7c20486e203d3d3d203130363439362929207b0a202020202020202020202020202020207a6e203d20747275653b0a20202020202020202020202020207d0a2020202020202020202020202020476e203d202121283634202620745b35335d293b0a20202020202020202020202020207661722063203d20745b35345d3b0a20202020202020202020202020207661722069203d20745b35335d3b0a2020202020202020202020202020696620282831302026206329203d3d20313029207b0a202020202020202020202020202020207661722061203d204d6e3b0a202020202020202020202020202020204d6e203d20706e3b0a20202020202020202020202020202020636f6e736f6c652e6c6f6728275570646174653a202830783130292062697431202620626974333a2025642c202564272c20612c204d6e293b0a20202020202020202020202020207d20656c736520696620282831382026206329203d3d20313829207b0a202020202020202020202020202020207661722061203d204d6e3b0a202020202020202020202020202020204d6e203d20676e3b0a20202020202020202020202020202020636f6e736f6c652e6c6f672827557064614d080274653a202830783132292062697431202620626974343a2025642c202564272c20612c204d6e293b0a20202020202020202020202020207d20656c7365206966202828362026206329203d3d203629207b0a2020202020202020202020202020202061203d204d6e3b0a202020202020202020202020202020204d6e203d20626e3b0a20202020202020202020202020202020636f6e736f6c652e6c6f6728275570646174653a202830783036292062697431202620626974323a2025642c202564272c20612c204d6e293b0a20202020202020202020202020207d20656c7365206966202828322026206329203d3d203229207b0a2020202020202020202020202020202061203d204d6e3b0a202020202020202020202020202020204d6e203d20416e3b0a20202020202020202020202020202020636f6e736f6c652e6c6f6728275570646174653a2028307830312920626974313a2025642c202564272c20612c204d6e293b0a20202020202020202020202020207d20656c73652069662028486e203c3d2036353533362026262028342026206329203d3d203429207b0a2020202020202020202020202020202061203d204d6e3b0a202020202020202020202020202020204d6e203d20796e3b0a20202020202020202020202020202020636f6e736f6c652e6c6f6728275570646174653a2028307830342920626974323a2025642c4d0802202564272c20612c204d6e293b0a20202020202020202020202020207d20656c7365207b0a20202020202020202020202020202020716e28486e293b0a20202020202020202020202020207d0a202020202020202020202020202069662028506e29207b0a20202020202020202020202020202020696620284d6e203d3d3d20686e207c7c204d6e203d3d3d20796e29207b0a202020202020202020202020202020202020696620284d6e203d3d3d20686e20262620476e29207b0a202020202020202020202020202020202020202061203d204d6e3b0a20202020202020202020202020202020202020204d6e203d20796e3b0a2020202020202020202020202020202020202020636f6e736f6c652e6c6f67280a20202020202020202020202020202020202020202020274e6f726d616c206361727420776974682068616c742062617365642072616d2c20737769746368696e6720747970653a2025642c202564272c0a20202020202020202020202020202020202020202020612c0a202020202020202020202020202020202020202020204d6e0a2020202020202020202020202020202020202020293b0a2020202020202020202020202020202020207d0a202020202020202020202020202020207d20656c736520696620280a2020202020202020202020202020202020202861203d204d6e2920213d3d20284d6e203d20476e204d08023f20626e203a202831362026206329203d3d203136203f20676e203a20416e290a2020202020202020202020202020202029207b0a202020202020202020202020202020202020636f6e736f6c652e6c6f67280a20202020202020202020202020202020202020202742616e6b2073776974636865642062616e6b736574732c20737769746368696e6720747970653a2025642c202564272c0a2020202020202020202020202020202020202020612c0a20202020202020202020202020202020202020204d6e0a202020202020202020202020202020202020293b0a202020202020202020202020202020207d0a20202020202020202020202020207d0a2020202020202020202020202020636f6e736f6c652e6c6f67282748656164657220696e666f3a27293b0a202020202020202020202020202069662028312026206329207b0a20202020202020202020202020202020636f6e736f6c652e6c6f6728272020626974303a20706f6b657920617420243430303027293b0a20202020202020202020202020207d0a202020202020202020202020202069662028322026206329207b0a20202020202020202020202020202020636f6e736f6c652e6c6f6728272020626974313a20737570657267616d652062616e6b20737769746368656427293b0a20202020202020202020202020207d0a20202020202020202020202020206966204d080228342026206329207b0a20202020202020202020202020202020636f6e736f6c652e6c6f6728272020626974323a20737570657267616d652072616d20617420243430303027293b0a20202020202020202020202020207d0a202020202020202020202020202069662028382026206329207b0a20202020202020202020202020202020636f6e736f6c652e6c6f6728272020626974333a20726f6d20617420243430303027293b0a20202020202020202020202020207d0a20202020202020202020202020206966202831362026206329207b0a20202020202020202020202020202020636f6e736f6c652e6c6f6728272020626974343a2062616e6b203620617420243430303027293b0a20202020202020202020202020207d0a20202020202020202020202020206966202833322026206329207b0a20202020202020202020202020202020636f6e736f6c652e6c6f6728272020626974353a20737570657267616d652062616e6b65642072616d27293b0a20202020202020202020202020207d0a20202020202020202020202020206966202836342026206329207b0a20202020202020202020202020202020636f6e736f6c652e6c6f6728272020626974363a20706f6b6579206174202434353027293b0a20202020202020202020202020207d0a2020202020202020202020202020696620283132382026206329207b0a2020204d080220202020202020202020202020636f6e736f6c652e6c6f6728272020626974373a206d6972726f722072616d20617420243430303027293b0a20202020202020202020202020207d0a202020202020202020202020202069662028312026206929207b0a20202020202020202020202020202020636f6e736f6c652e6c6f6728272020626974383a2061637469766973696f6e2062616e6b696e6727293b0a20202020202020202020202020207d0a202020202020202020202020202069662028322026206929207b0a20202020202020202020202020202020636f6e736f6c652e6c6f6728272020626974393a206162736f6c7574652062616e6b696e6727293b0a20202020202020202020202020207d0a202020202020202020202020202069662028342026206929207b0a20202020202020202020202020202020636f6e736f6c652e6c6f672827202062697431303a20706f6b6579206174202434343027293b0a20202020202020202020202020207d0a202020202020202020202020202069662028382026206929207b0a20202020202020202020202020202020636f6e736f6c652e6c6f672827202062697431313a20796d3231353120617420243436302f2434363127293b0a20202020202020202020202020207d0a20202020202020202020202020206966202831362026206929207b0a2020202020202020202020202020204d080220636f6e736f6c652e6c6f672827202062697431323a20736f7570657227293b0a20202020202020202020202020207d0a20202020202020202020202020206966202833322026206929207b0a20202020202020202020202020202020636f6e736f6c652e6c6f672827202062697431333a2062616e6b7365747327293b0a20202020202020202020202020207d0a20202020202020202020202020206966202836342026206929207b0a20202020202020202020202020202020636f6e736f6c652e6c6f672827202062697431343a2068616c742062616e6b65642072616d27293b0a20202020202020202020202020207d0a2020202020202020202020202020696620283132382026206929207b0a20202020202020202020202020202020636f6e736f6c652e6c6f672827202062697431353a20706f6b65794038303027293b0a20202020202020202020202020207d0a2020202020202020202020202020636f6e736f6c652e6c6f6728272020786d3a202573272c205f6e203f20273127203a20273027293b0a2020202020202020202020202020636f6e736f6c652e6c6f672827202062616e6b736574733a202573272c20506e203f20273127203a20273027293b0a2020202020202020202020202020636f6e736f6c652e6c6f6728272020706f6b65793a202573272c204c6e203f20273127203a20273027293b0a2020202020204d08022020202020202020636f6e736f6c652e6c6f6728272020706f6b65793435303a202573272c20496e203f20273127203a20273027293b0a2020202020202020202020202020636f6e736f6c652e6c6f6728272020706f6b65793830303a202573272c20576e203f20273127203a20273027293b0a2020202020202020202020202020636f6e736f6c652e6c6f6728272020706f6b6579207772697465206f6e6c793a202573272c207a6e203f20273127203a20273027293b0a2020202020202020202020202020636f6e736f6c652e6c6f672827202068616c742062616e6b65642072616d3a202573272c20476e203f20273127203a20273027293b0a2020202020202020202020202020636f6e736f6c652e6c6f6728272020747620747970653a202573272c20766e203f202750414c27203a20274e54534327293b0a2020202020202020202020202020636f6e736f6c652e6c6f67280a2020202020202020202020202020202027202053617665206465766963653a205b25645d25732573272c0a20202020202020202020202020202020745b35385d2c0a2020202020202020202020202020202032202620745b35385d203f202720536176654b65792f4174617269566f7827203a2027272c0a2020202020202020202020202020202031202620745b35385d203f20272048534327203a2027270a2020202020202020202020202020294d08023b0a2020202020202020202020202020636f6e736f6c652e6c6f6728272020636f6e74726f6c6c6572313a202564272c20436e5b305d293b0a2020202020202020202020202020636f6e736f6c652e6c6f6728272020636f6e74726f6c6c6572323a202564272c20436e5b315d293b0a2020202020202020202020202020636f6e736f6c652e6c6f67282720206361727472696467655f747970652035333a202564272c20745b35335d293b0a2020202020202020202020202020636f6e736f6c652e6c6f67282720206361727472696467655f747970652035343a202564272c20745b35345d293b0a2020202020202020202020202020636f6e736f6c652e6c6f67282720206361727472696467655f73697a653a202564272c20486e293b0a2020202020202020202020202020636f6e736f6c652e6c6f6728276361727472696467655f74797065202866726f6d20686561646572293a202564272c204d6e293b0a2020202020202020202020207d29286e293b0a20202020202020202020202063203d203132383b0a20202020202020202020202069662028486e20213d202865202d3d203132382929207b0a2020202020202020202020202020636f6e736f6c652e6c6f67280a2020202020202020202020202020202027212121204341525452494447452053495a4520494e2048454144455220444f4553204e4f54204d41544348204d0802212121203a202564202564272c0a20202020202020202020202020202020486e2c0a20202020202020202020202020202020650a2020202020202020202020202020293b0a2020202020202020202020202020696620286520252031303234203d3d203029207b0a20202020202020202020202020202020636f6e736f6c652e6c6f67280a2020202020202020202020202020202020202721212120524f4d2073697a6520697320316b206d756c7469706c652c207573696e6720524f4d2073697a6520212121203a202564272c0a202020202020202020202020202020202020650a20202020202020202020202020202020293b0a20202020202020202020202020202020486e203d20653b0a20202020202020202020202020207d20656c7365207b0a20202020202020202020202020202020636f6e736f6c652e6c6f67280a2020202020202020202020202020202020202721212120524f4d2073697a65206973206e6f7420316b206d756c7469706c652c207573696e67206865616465722073697a6520212121203a202564272c0a202020202020202020202020202020202020486e0a20202020202020202020202020202020293b0a20202020202020202020202020207d0a2020202020202020202020207d0a202020202020202020207d0a20202020202020202020636f6e736f6c652e6c6f6728276361727472696467655f74794d080270653a202564272c204d6e293b0a20202020202020202020636f6e736f6c652e6c6f6728276361727472696467655f73697a653a202564272c20486e293b0a20202020202020202020516e203d206e657720417272617928486e293b0a202020202020202020207661722069203d2027273b0a20202020202020202020666f72202872203d20303b2072203c20486e3b20722b2b29207b0a202020202020202020202020516e5b725d203d20745b72202b20635d3b0a20202020202020202020202069202b3d20537472696e672e66726f6d43686172436f646528516e5b725d293b0a202020202020202020207d0a202020202020202020206d6e203d20616e2869293b0a20202020202020202020636f6e736f6c652e6c6f6728276361727472696467655f6469676573743a202573272c206d6e293b0a20202020202020202020696620286d6e203d3d3d202739313034316161646431373030613761343037366634303035663263333632662729207b0a202020202020202020202020636f6e736f6c652e6c6f6728275061746368696e6720646961676e6f73746963206361727472696467652e2e2e27293b0a2020202020202020202020207661722061203d205b3232332c203233305d3b0a202020202020202020202020666f7220286c65742074203d20303b2074203c20612e6c656e6774683b20742b2b29207b0a202020202020204d080220202020202020516e5b3236333438202d2063202b20745d203d20615b745d3b0a2020202020202020202020207d0a202020202020202020207d0a2020202020202020202072657475726e20747275653b0a20202020202020207d0a202020202020202066756e6374696f6e20246e2829207b0a20202020202020202020596e203d20747275653b0a202020202020202020207661722074203d20486e3b0a20202020202020202020737769746368202828506e202626202874203e3e3d2031292c204d6e2929207b0a2020202020202020202020206361736520686e3a0a2020202020202020202020202020736e283635353336202d20742c20742c20516e2c2030293b0a2020202020202020202020202020627265616b3b0a2020202020202020202020206361736520796e3a0a2020202020202020202020202020736e283635353336202d20742c20742c20516e2c2030293b0a2020202020202020202020202020666e2831363338342c203136333834293b0a2020202020202020202020202020627265616b3b0a2020202020202020202020206361736520416e3a0a2020202020202020202020202020696620282865203d2074202d20313633383429203c207429207b0a20202020202020202020202020202020736e2834393135322c2031363338342c20516e2c2065293b0a2020202020202020202020202020202065722830294d08023b0a20202020202020202020202020207d0a2020202020202020202020202020627265616b3b0a2020202020202020202020206361736520706e3a0a2020202020202020202020202020696620282865203d2074202d20313633383429203c207429207b0a20202020202020202020202020202020736e2834393135322c2031363338342c20516e2c2065293b0a20202020202020202020202020202020736e2831363338342c2031363338342c20516e2c204a6e283029293b0a2020202020202020202020202020202065722830293b0a20202020202020202020202020207d0a2020202020202020202020202020627265616b3b0a2020202020202020202020206361736520626e3a0a2020202020202020202020202020696620282865203d2074202d20313633383429203c207429207b0a20202020202020202020202020202020736e2834393135322c2031363338342c20516e2c2065293b0a20202020202020202020202020202020666e2831363338342c203136333834293b0a2020202020202020202020202020202065722830293b0a20202020202020202020202020207d0a2020202020202020202020202020627265616b3b0a2020202020202020202020206361736520676e3a0a202020202020202020202020202076617220653b0a2020202020202020202020202020696620282865203d2074202d20313633383429204d08023c2074202626204a6e283629203c207429207b0a20202020202020202020202020202020736e2834393135322c2031363338342c20516e2c2065293b0a20202020202020202020202020202020736e2831363338342c2031363338342c20516e2c204a6e283629293b0a2020202020202020202020202020202065722830293b0a20202020202020202020202020207d0a2020202020202020202020202020627265616b3b0a2020202020202020202020206361736520353a0a2020202020202020202020202020736e2831363338342c2031363338342c20516e2c2030293b0a2020202020202020202020202020736e2833323736382c2033323736382c20516e2c204a6e283229293b0a2020202020202020202020202020627265616b3b0a2020202020202020202020206361736520363a0a202020202020202020202020202069662028313232383830203c207429207b0a20202020202020202020202020202020736e2834303936302c2031363338342c20516e2c2030293b0a20202020202020202020202020202020736e2831363338342c20383139322c20516e2c20313036343936293b0a20202020202020202020202020202020736e2832343537362c20383139322c20516e2c203938333034293b0a20202020202020202020202020202020736e2833323736382c20383139322c20516e2c20313232383830293b0a202020204d0802202020202020202020202020736e2835373334342c20383139322c20516e2c20313134363838293b0a20202020202020202020202020207d0a202020202020202020207d0a20202020202020207d0a202020202020202066756e6374696f6e20747228742c206529207b0a20202020202020202020766172206e203d20486e3b0a20202020202020202020737769746368202828506e20262620286e203e3e3d2031292c204d6e2929207b0a2020202020202020202020206361736520416e3a0a2020202020202020202020206361736520626e3a0a2020202020202020202020206361736520676e3a0a20202020202020202020202020207661722072203d206e202f2031363338343b0a20202020202020202020202020206966202874203e3d2033323736382026262074203c20343931353220262620566e286529203c207229207b0a2020202020202020202020202020202065722865293b0a20202020202020202020202020207d0a2020202020202020202020202020627265616b3b0a2020202020202020202020206361736520706e3a0a202020202020202020202020202072203d206e202f2031363338343b0a20202020202020202020202020206966202874203e3d2033323736382026262074203c20343931353220262620566e286529203c207229207b0a2020202020202020202020202020202065722865202b2031293b4d08020a20202020202020202020202020207d0a2020202020202020202020202020627265616b3b0a2020202020202020202020206361736520353a0a20202020202020202020202020206966202874203d3d203332373638202626202865203d3d2031207c7c2065203d3d20322929207b0a2020202020202020202020202020202065722865202d2031293b0a20202020202020202020202020207d0a2020202020202020202020202020627265616b3b0a2020202020202020202020206361736520363a0a20202020202020202020202020206966202874203e3d20363534303829207b0a202020202020202020202020202020206572283720262074293b0a20202020202020202020202020207d0a202020202020202020207d0a20202020202020207d0a202020202020202066756e6374696f6e206572287429207b0a2020202020202020202073776974636820284d6e29207b0a2020202020202020202020206361736520416e3a0a2020202020202020202020206361736520626e3a0a2020202020202020202020206361736520676e3a0a2020202020202020202020206361736520706e3a0a2020202020202020202020202020586e2833323736382c2074293b0a2020202020202020202020202020627265616b3b0a2020202020202020202020206361736520353a0a2020202020202020202020202020586e2831363338342c20744d0802293b0a2020202020202020202020202020627265616b3b0a2020202020202020202020206361736520363a0a2020202020202020202020202020586e2834303936302c2074293b0a202020202020202020207d0a20202020202020207d0a202020202020202066756e6374696f6e206e722829207b0a2020202020202020202072657475726e20516e20213d206e756c6c3b0a20202020202020207d0a202020202020202066756e6374696f6e2072722829207b0a20202020202020202020596e203d2066616c73653b0a202020202020202020205a6e203d2066616c73653b0a2020202020202020202069662028516e20213d206e756c6c29207b0a202020202020202020202020486e203d20303b0a202020202020202020202020516e203d206e756c6c3b0a202020202020202020202020776e203d2027273b0a2020202020202020202020204d6e203d20303b0a202020202020202020202020766e203d20303b0a2020202020202020202020204c6e203d20303b0a202020202020202020202020496e203d20303b0a202020202020202020202020576e203d20303b0a2020202020202020202020205f6e203d2066616c73653b0a202020202020202020202020436e203d205b312c20315d3b0a202020202020202020202020456e203d20303b0a202020202020202020202020536e203d20303b0a202020202020202020202020786e4d0802203d20303b0a202020202020202020202020446e203d20303b0a202020202020202020202020546e203d2032383b0a2020202020202020202020204e6e203d2066616c73653b0a2020202020202020202020206b6e203d20313b0a202020202020202020202020426e203d20303b0a2020202020202020202020206a6e203d2066616c73653b0a202020202020202020202020526e203d2066616c73653b0a202020202020202020202020506e203d2066616c73653b0a2020202020202020202020207a6e203d2066616c73653b0a202020202020202020202020476e203d2066616c73653b0a202020202020202020207d0a20202020202020207d0a202020202020202066756e6374696f6e206372287429207b0a202020202020202020206966202821526e207c7c20766e20213d206c6e29207b0a202020202020202020202020636f6e736f6c652e6c6f67280a2020202020202020202020202020526e0a202020202020202020202020202020203f20274e6f74206c6f6164696e6720686967682073636f7265206361727472696467652c2050414c20726567696f6e2e270a202020202020202020202020202020203a2027486967682073636f7265206361727472696467652069732064697361626c6564202876696120646220616e64206361727420686561646572292e270a202020202020202020202020293b0a202020202020204d08022020202020742866616c7365293b0a20202020202020202020202072657475726e3b0a202020202020202020207d0a202020202020202020207661722065203d20646e2e676574526f6d28293b0a202020202020202020206966202865203d3d206e756c6c29207b0a202020202020202020202020636f6e736f6c652e6c6f672827556e61626c6520746f206c6f6361746520686967682073636f7265206361727472696467652e27293b0a202020202020202020202020742866616c7365293b0a20202020202020202020202072657475726e3b0a202020202020202020207d0a20202020202020202020636f6e736f6c652e6c6f672827466f756e6420686967682073636f7265206361727472696467652e27293b0a2020202020202020202069662028616e28652920213d202763386137333238386162393732323663353236303232303461623839343238362729207b0a202020202020202020202020636f6e736f6c652e6c6f672827486967682073636f726520636172747269646765206861736820697320696e76616c69642e27293b0a202020202020202020202020742866616c7365293b0a20202020202020202020202072657475726e3b0a202020202020202020207d0a20202020202020202020646e2e6c6f61645372616d2866756e6374696f6e20286e29207b0a202020202020202020202020696620286e29207b0a204d080220202020202020202020202020666f7220287661722072203d20303b2072203c206e2e6c656e6774682026262072203c20323034383b20722b2b29207b0a20202020202020202020202020202020756e2834303936202b20722c206e5b725d293b0a20202020202020202020202020207d0a2020202020202020202020202020666f72202872203d20303b2072203c20652e6c656e6774683b20722b2b29207b0a20202020202020202020202020202020756e283132323838202b20722c20652e63686172436f64654174287229293b0a20202020202020202020202020207d0a20202020202020202020202020205a6e203d20747275653b0a2020202020202020202020207d0a202020202020202020202020636f6e736f6c652e6c6f672827486967682073636f72652063617274206c6f616465643a2027202b205a6e293b0a20202020202020202020202074285a6e293b0a202020202020202020207d293b0a20202020202020207d0a202020202020202066756e6374696f6e2069722829207b0a2020202020202020202072657475726e20766e3b0a20202020202020207d0a202020202020202066756e6374696f6e2061722829207b0a2020202020202020202072657475726e204c6e3b0a20202020202020207d0a202020202020202066756e6374696f6e206f722829207b0a2020202020202020202072657475726e20496e3b0a4d080220202020202020207d0a202020202020202066756e6374696f6e2073722829207b0a2020202020202020202072657475726e20576e3b0a20202020202020207d0a202020202020202066756e6374696f6e2066722829207b0a2020202020202020202072657475726e207a6e3b0a20202020202020207d0a202020202020202066756e6374696f6e2075722829207b0a2020202020202020202072657475726e205f6e3b0a20202020202020207d0a202020202020202066756e6374696f6e2064722829207b0a2020202020202020202069662028556e203d3d203229207b0a20202020202020202020202072657475726e205f6e3b0a202020202020202020207d20656c7365207b0a20202020202020202020202072657475726e20556e3b0a202020202020202020207d0a20202020202020207d0a202020202020202066756e6374696f6e206c722829207b0a2020202020202020202072657475726e20506e3b0a20202020202020207d0a202020202020202066756e6374696f6e2068722829207b0a2020202020202020202072657475726e20476e3b0a20202020202020207d0a202020202020202066756e6374696f6e2041722829207b0a2020202020202020202072657475726e206a6e3b0a20202020202020207d0a202020202020202066756e6374696f6e2070722829207b0a2020202020202020202072657475726e204e6e3b4d08020a20202020202020207d0a202020202020202066756e6374696f6e2062722829207b0a2020202020202020202072657475726e20436e5b305d203d3d20323b0a20202020202020207d0a202020202020202066756e6374696f6e2067722829207b0a2020202020202020202072657475726e20536e3b0a20202020202020207d0a202020202020202066756e6374696f6e2079722829207b0a2020202020202020202072657475726e20546e3b0a20202020202020207d0a202020202020202066756e6374696f6e2077722829207b0a2020202020202020202072657475726e206b6e3b0a20202020202020207d0a202020202020202066756e6374696f6e206d722829207b0a2020202020202020202072657475726e20426e3b0a20202020202020207d0a202020202020202066756e6374696f6e204d722829207b0a2020202020202020202072657475726e206d6e3b0a20202020202020207d0a202020202020202066756e6374696f6e207672287429207b0a20202020202020202020776e203d20743b0a20202020202020207d0a202020202020202066756e6374696f6e204c722829207b0a2020202020202020202072657475726e20776e3b0a20202020202020207d0a202020202020202066756e6374696f6e2049722829207b0a2020202020202020202072657475726e20486e3b0a20202020202020207d0a20202020202020204d080266756e6374696f6e2043722829207b0a2020202020202020202072657475726e204d6e3b0a20202020202020207d0a202020202020202066756e6374696f6e204572287429207b0a202020202020202020204d6e203d20743b0a20202020202020207d0a202020202020202066756e6374696f6e205372287429207b0a202020202020202020204c6e203d20743b0a20202020202020207d0a202020202020202066756e6374696f6e207872287429207b0a20202020202020202020496e203d20743b0a20202020202020207d0a202020202020202066756e6374696f6e204472287429207b0a20202020202020202020436e5b305d203d20743b0a20202020202020207d0a202020202020202066756e6374696f6e204e72287429207b0a20202020202020202020436e5b315d203d20743b0a20202020202020207d0a202020202020202066756e6374696f6e205f722829207b0a2020202020202020202072657475726e20436e5b305d3b0a20202020202020207d0a202020202020202066756e6374696f6e2054722829207b0a2020202020202020202072657475726e20436e5b315d3b0a20202020202020207d0a202020202020202066756e6374696f6e206b72287429207b0a20202020202020202020766e203d20743b0a20202020202020207d0a202020202020202066756e6374696f6e204272287429207b0a20202020202020204d08022020536e203d20743b0a20202020202020207d0a202020202020202066756e6374696f6e206a72287429207b0a202020202020202020205f6e203d20743b0a20202020202020207d0a202020202020202066756e6374696f6e205272287429207b0a20202020202020202020546e203d20743b0a20202020202020207d0a202020202020202066756e6374696f6e205072287429207b0a20202020202020202020786e203d20743b0a20202020202020207d0a202020202020202066756e6374696f6e204f72287429207b0a20202020202020202020446e203d20743b0a20202020202020207d0a202020202020202066756e6374696f6e2046722829207b0a2020202020202020202072657475726e20786e3b0a20202020202020207d0a202020202020202066756e6374696f6e2047722829207b0a2020202020202020202072657475726e20446e3b0a20202020202020207d0a202020202020202066756e6374696f6e207a72287429207b0a202020202020202020204e6e203d20743b0a20202020202020207d0a202020202020202066756e6374696f6e205772287429207b0a202020202020202020206b6e203d20743b0a20202020202020207d0a202020202020202066756e6374696f6e205572287429207b0a20202020202020202020426e203d20743b0a20202020202020207d0a202020202020202066756e6374696f6e205a724d0802287429207b0a202020202020202020206a6e203d20743b0a20202020202020207d0a202020202020202066756e6374696f6e205172287429207b0a20202020202020202020526e203d20743b0a20202020202020207d0a202020202020202066756e6374696f6e2048722829207b0a2020202020202020202072657475726e20526e3b0a20202020202020207d0a202020202020202066756e6374696f6e205972287429207b0a20202020202020202020556e203d20743b0a20202020202020207d0a202020202020202066756e6374696f6e2056722829207b0a2020202020202020202072657475726e20556e3b0a20202020202020207d0a202020202020202066756e6374696f6e204a722829207b0a2020202020202020202072657475726e20323b0a20202020202020207d0a202020202020202066756e6374696f6e2058722829207b0a2020202020202020202072657475726e20596e3b0a20202020202020207d0a202020202020202066756e6374696f6e207172287429207b0a202020202020202020204f6e203d20743b0a20202020202020207d0a202020202020202066756e6374696f6e204b722829207b0a2020202020202020202072657475726e204f6e3b0a20202020202020207d0a202020202020202066756e6374696f6e202472287429207b0a20202020202020202020466e203d20743b0a20202020202020207d0a4d0802202020202020202066756e6374696f6e2074632829207b0a2020202020202020202072657475726e20466e3b0a20202020202020207d0a202020202020202066756e6374696f6e2065632829207b0a2020202020202020202072657475726e20456e3b0a20202020202020207d0a202020202020202066756e6374696f6e205f63287429207b0a20202020202020202020636328287563202b203235362920262036353533352c2074293b0a202020202020202020207563203d20287563202d2031292026203235353b0a20202020202020207d0a202020202020202066756e6374696f6e2054632829207b0a2020202020202020202072657475726e2072632828287563203d20287563202b20312920262032353529202b20323536292026203635353335293b0a20202020202020207d0a202020202020202066756e6374696f6e206b63287429207b0a20202020202020202020696620287429207b0a2020202020202020202020206663203d2066632026207e67632026203235353b0a202020202020202020207d20656c7365207b0a2020202020202020202020206663207c3d2067633b0a202020202020202020207d0a20202020202020202020696620283132382026207429207b0a2020202020202020202020206663207c3d204c633b0a202020202020202020207d20656c7365207b0a2020202020202020202020206663203d204d080266632026207e4c632026203235353b0a202020202020202020207d0a20202020202020207d0a202020202020202066756e6374696f6e206a63287429207b0a20202020202020202020696620287429207b0a20202020202020202020202042632e636f7079286463293b0a20202020202020202020202064632e77506c7573457175616c2868632e676574424c5369676e65642829293b0a2020202020202020202020206966202842632e67657442482829203d3d2064632e6765744248282929207b0a202020202020202020202020202041632b2b3b0a2020202020202020202020207d20656c7365207b0a20202020202020202020202020204163202b3d20323b0a2020202020202020202020207d0a202020202020202020207d0a20202020202020207d0a202020202020202066756e6374696f6e204f63287429207b0a2020202020202020202052632e636f7079286863293b0a2020202020202020202050632e636f7079286863293b0a2020202020202020202052632e774d696e7573457175616c2874293b0a202020202020202020206966202852632e6765744248282920213d2050632e6765744248282929207b0a20202020202020202020202041632b2b3b0a202020202020202020207d0a20202020202020207d0a202020202020202066756e6374696f6e2046632829207b0a2020202020202020202068632e736574424c4d08022872632864632e77506c7573506c7573282929293b0a2020202020202020202068632e73657442482872632864632e77506c7573506c7573282929293b0a20202020202020207d0a202020202020202066756e6374696f6e2047632829207b0a2020202020202020202068632e736574424c2872632864632e77506c7573506c7573282929293b0a2020202020202020202068632e73657442482872632864632e77506c7573506c7573282929293b0a2020202020202020202068632e77506c7573457175616c286f63293b0a20202020202020207d0a202020202020202066756e6374696f6e207a632829207b0a2020202020202020202068632e736574424c2872632864632e77506c7573506c7573282929293b0a2020202020202020202068632e73657442482872632864632e77506c7573506c7573282929293b0a2020202020202020202068632e77506c7573457175616c287363293b0a20202020202020207d0a202020202020202066756e6374696f6e2057632829207b0a2020202020202020202068632e736574572864632e77506c7573506c75732829293b0a20202020202020207d0a202020202020202066756e6374696f6e2055632829207b0a2020202020202020202068632e736574424c2872632864632e77506c7573506c7573282929202b206f63293b0a2020202020202020202068632e73657442482872632868634d08022e676574424c2829202b203129293b0a2020202020202020202068632e736574424c2872632868632e676574424c282929293b0a20202020202020207d0a202020202020202066756e6374696f6e205a632829207b0a2020202020202020202068632e736574424c2872632864632e77506c7573506c7573282929293b0a2020202020202020202068632e73657442482872632868632e676574424c2829202b203129293b0a2020202020202020202068632e736574424c2872632868632e676574424c282929293b0a2020202020202020202068632e77506c7573457175616c287363293b0a20202020202020207d0a202020202020202066756e6374696f6e2051632829207b0a2020202020202020202068632e736574572872632864632e77506c7573506c7573282929293b0a20202020202020207d0a202020202020202066756e6374696f6e2048632829207b0a2020202020202020202068632e736574572872632864632e77506c7573506c7573282929293b0a20202020202020207d0a202020202020202066756e6374696f6e2059632829207b0a2020202020202020202068632e736574572872632864632e77506c7573506c7573282929293b0a2020202020202020202068632e626c506c7573457175616c286f63293b0a20202020202020207d0a202020202020202066756e6374696f6e2056632829207b0a2020202020204d08022020202068632e736574572872632864632e77506c7573506c7573282929293b0a2020202020202020202068632e626c506c7573457175616c287363293b0a20202020202020207d0a202020202020202066756e6374696f6e204a632829207b0a202020202020202020207661722074203d2072632868632e676574572829293b0a20202020202020202020696620286663202620776329207b0a2020202020202020202020207661722065203d2028283135202620616329202b202831352026207429202b202866632026206263292920262036353533353b0a202020202020202020202020766172206e203d2028286163203e3e3e203429202b202874203e3e3e2034292920262036353533353b0a2020202020202020202020206966202865203e203929207b0a202020202020202020202020202065203d202865202b20362920262036353533353b0a20202020202020202020202020206e203d20286e202b20312920262036353533353b0a2020202020202020202020207d0a2020202020202020202020207661722072203d206e6577206e6328293b0a202020202020202020202020722e73657457286163202b2074202b20286663202620626329293b0a20202020202020202020202069662028722e676574424c282929207b0a20202020202020202020202020206663203d2066632026207e67632026203235353b0a202020204d080220202020202020207d20656c7365207b0a20202020202020202020202020206663207c3d2067633b0a2020202020202020202020207d0a2020202020202020202020206966202828382026206e29203d3d203029207b0a20202020202020202020202020206663203d2066632026207e4c632026203235353b0a2020202020202020202020207d20656c7365207b0a20202020202020202020202020206663207c3d204c633b0a2020202020202020202020207d0a202020202020202020202020696620287e286163205e20742920262028286e203c3c203429205e2061632920262031323829207b0a20202020202020202020202020206663207c3d2076633b0a2020202020202020202020207d20656c7365207b0a20202020202020202020202020206663203d2066632026207e76632026203235353b0a2020202020202020202020207d0a202020202020202020202020696620286e203e203929207b0a20202020202020202020202020206e203d20286e202b20362920262036353533353b0a2020202020202020202020207d0a202020202020202020202020696620286e203e20313529207b0a20202020202020202020202020206663207c3d2062633b0a2020202020202020202020207d20656c7365207b0a20202020202020202020202020206663203d2066632026207e62632026203235353b0a2020202020202020202020204d08027d0a2020202020202020202020206163203d2032353520262028286e203c3c203429207c202831352026206529293b0a202020202020202020207d20656c7365207b0a2020202020202020202020207661722063203d206e6577206e6328293b0a202020202020202020202020632e73657457286163202b2074202b20286663202620626329293b0a20202020202020202020202069662028632e6765744248282929207b0a20202020202020202020202020206663207c3d2062633b0a2020202020202020202020207d20656c7365207b0a20202020202020202020202020206663203d2066632026207e62632026203235353b0a2020202020202020202020207d0a202020202020202020202020696620287e286163205e207429202620286163205e20632e676574424c28292920262031323829207b0a20202020202020202020202020206663207c3d2076633b0a2020202020202020202020207d20656c7365207b0a20202020202020202020202020206663203d2066632026207e76632026203235353b0a2020202020202020202020207d0a2020202020202020202020206b6328632e676574424c2829293b0a2020202020202020202020206163203d20632e676574424c28293b0a202020202020202020207d0a20202020202020207d0a202020202020202066756e6374696f6e2058632829207b0a202020202020202020206b4d0802632828616320263d2072632868632e6765745728292929293b0a20202020202020207d0a202020202020202066756e6374696f6e2071632829207b0a202020202020202020207661722074203d2072632868632e676574572829293b0a20202020202020202020696620283132382026207429207b0a2020202020202020202020206663207c3d2062633b0a202020202020202020207d20656c7365207b0a2020202020202020202020206663203d2066632026207e62632026203235353b0a202020202020202020207d0a2020202020202020202074203d202874203c3c2031292026203235353b0a2020202020202020202063632868632e6765745728292c2074293b0a202020202020202020206b632874293b0a20202020202020207d0a202020202020202066756e6374696f6e204b632829207b0a202020202020202020207661722074203d2072632868632e676574572829293b0a202020202020202020206966202874202620616329207b0a2020202020202020202020206663203d2066632026207e67632026203235353b0a202020202020202020207d20656c7365207b0a2020202020202020202020206663207c3d2067633b0a202020202020202020207d0a202020202020202020206663203d20286663203d2066632026207e7663202620323535292026207e4c632026203235353b0a202020202020202020206663207c4d08023d203634202620743b0a202020202020202020206663207c3d20313238202620743b0a20202020202020207d0a202020202020202066756e6374696f6e2024632829207b0a202020202020202020207661722074203d2072632868632e676574572829293b0a20202020202020202020696620286163203e3d207429207b0a2020202020202020202020206663207c3d2062633b0a202020202020202020207d20656c7365207b0a2020202020202020202020206663203d2066632026207e62632026203235353b0a202020202020202020207d0a202020202020202020206b6328286163202d207429202620323535293b0a20202020202020207d0a202020202020202066756e6374696f6e2074692829207b0a202020202020202020207661722074203d2072632868632e676574572829293b0a20202020202020202020696620286f63203e3d207429207b0a2020202020202020202020206663207c3d2062633b0a202020202020202020207d20656c7365207b0a2020202020202020202020206663203d2066632026207e62632026203235353b0a202020202020202020207d0a202020202020202020206b6328286f63202d207429202620323535293b0a20202020202020207d0a202020202020202066756e6374696f6e2065692829207b0a202020202020202020207661722074203d2072632868632e676574572829293b0a20204d08022020202020202020696620287363203e3d207429207b0a2020202020202020202020206663207c3d2062633b0a202020202020202020207d20656c7365207b0a2020202020202020202020206663203d2066632026207e62632026203235353b0a202020202020202020207d0a202020202020202020206b6328287363202d207429202620323535293b0a20202020202020207d0a202020202020202066756e6374696f6e206e692829207b0a202020202020202020207661722074203d2072632868632e676574572829293b0a2020202020202020202074203d202874202d2031292026203235353b0a2020202020202020202063632868632e6765745728292c2074293b0a202020202020202020206b632874293b0a20202020202020207d0a202020202020202066756e6374696f6e2072692829207b0a202020202020202020206b6328286163205e3d2072632868632e6765745728292929293b0a20202020202020207d0a202020202020202066756e6374696f6e2063692829207b0a202020202020202020207661722074203d2072632868632e676574572829293b0a2020202020202020202074203d202874202b2031292026203235353b0a2020202020202020202063632868632e6765745728292c2074293b0a202020202020202020206b632874293b0a20202020202020207d0a202020202020202066756e6374696f6e20694d0802692829207b0a2020202020202020202064632e636f7079286863293b0a20202020202020207d0a202020202020202066756e6374696f6e2061692829207b0a202020202020202020206b6328286163203d2072632868632e6765745728292929293b0a20202020202020207d0a202020202020202066756e6374696f6e206f692829207b0a202020202020202020206b6328286f63203d2072632868632e6765745728292929293b0a20202020202020207d0a202020202020202066756e6374696f6e2073692829207b0a202020202020202020206b6328287363203d2072632868632e6765745728292929293b0a20202020202020207d0a202020202020202066756e6374696f6e2066692829207b0a202020202020202020206663203d2066632026207e62632026203235353b0a202020202020202020206663207c3d203120262061633b0a202020202020202020206b6328286163203d20286163203e3e3e20312920262032353529293b0a20202020202020207d0a202020202020202066756e6374696f6e2075692829207b0a202020202020202020207661722074203d2072632868632e676574572829293b0a202020202020202020206663203d2066632026207e62632026203235353b0a202020202020202020206663207c3d2031202620743b0a2020202020202020202074203d202874203e3e3e2031292026203235353b0a204d080220202020202020202063632868632e6765745728292c2074293b0a202020202020202020206b632874293b0a20202020202020207d0a202020202020202066756e6374696f6e2064692829207b0a202020202020202020206b6328286163207c3d2072632868632e6765745728292929293b0a20202020202020207d0a202020202020202066756e6374696f6e206c692829207b0a202020202020202020205f63286163293b0a20202020202020207d0a202020202020202066756e6374696f6e2068692829207b0a202020202020202020205f6328286663207c3d206d6329293b0a20202020202020207d0a202020202020202066756e6374696f6e2041692829207b0a202020202020202020206b6328286163203d205463282929293b0a20202020202020207d0a202020202020202066756e6374696f6e2070692829207b0a202020202020202020206663203d20546328293b0a20202020202020207d0a202020202020202066756e6374696f6e2062692829207b0a202020202020202020207661722074203d2072632868632e676574572829293b0a202020202020202020207661722065203d2066633b0a20202020202020202020696620283132382026207429207b0a2020202020202020202020206663207c3d2062633b0a202020202020202020207d20656c7365207b0a2020202020202020202020206663203d2066632026204d08027e62632026203235353b0a202020202020202020207d0a2020202020202020202074203d202874203c3c2031292026203235353b0a2020202020202020202074207c3d2031202620653b0a2020202020202020202063632868632e6765745728292c2074293b0a202020202020202020206b632874293b0a20202020202020207d0a202020202020202066756e6374696f6e2067692829207b0a202020202020202020207661722074203d2072632868632e676574572829293b0a202020202020202020207661722065203d2066633b0a202020202020202020206663203d2066632026207e62632026203235353b0a202020202020202020206663207c3d2031202620743b0a2020202020202020202074203d202874203e3e3e2031292026203235353b0a2020202020202020202069662028312026206529207b0a20202020202020202020202074207c3d203132383b0a202020202020202020207d0a2020202020202020202063632868632e6765745728292c2074293b0a202020202020202020206b632874293b0a20202020202020207d0a202020202020202066756e6374696f6e2079692829207b0a202020202020202020207661722074203d2072632868632e676574572829293b0a20202020202020202020696620286663202620776329207b0a2020202020202020202020207661722065203d206e6577206e6328293b0a20204d080220202020202020202020652e73657457286163202d2074202d2021286663202620626329293b0a202020202020202020202020766172206e203d2028283135202620616329202d202831352026207429202d20212866632026206263292920262036353533353b0a2020202020202020202020207661722072203d2028286163203e3e3e203429202d202874203e3e3e2034292920262036353533353b0a202020202020202020202020696620286e203e203929207b0a20202020202020202020202020206e203d20286e202d20362920262036353533353b0a202020202020202020202020202072203d202872202d20312920262036353533353b0a2020202020202020202020207d0a2020202020202020202020206966202872203e203929207b0a202020202020202020202020202072203d202872202d20362920262036353533353b0a2020202020202020202020207d0a2020202020202020202020202863203d206e6577206e632829292e73657457286163202d2074202d2021286663202620626329293b0a20202020202020202020202069662028632e6765744248282929207b0a20202020202020202020202020206663203d2066632026207e62632026203235353b0a2020202020202020202020207d20656c7365207b0a20202020202020202020202020206663207c3d2062633b0a2020202020202020202020207d0a20204d08022020202020202020202069662028286163205e207429202620286163205e20632e676574424c28292920262031323829207b0a20202020202020202020202020206663207c3d2076633b0a2020202020202020202020207d20656c7365207b0a20202020202020202020202020206663203d2066632026207e76632026203235353b0a2020202020202020202020207d0a2020202020202020202020206b6328632e676574424c2829293b0a20202020202020202020202069662028652e676574424c282929207b0a20202020202020202020202020206663203d2066632026207e67632026203235353b0a2020202020202020202020207d20656c7365207b0a20202020202020202020202020206663207c3d2067633b0a2020202020202020202020207d0a2020202020202020202020206163203d20323535202620282872203c3c203429207c202831352026206e29293b0a202020202020202020207d20656c7365207b0a20202020202020202020202076617220633b0a2020202020202020202020202863203d206e6577206e632829292e73657457286163202d2074202d2021286663202620626329293b0a20202020202020202020202069662028632e6765744248282929207b0a20202020202020202020202020206663203d2066632026207e62632026203235353b0a2020202020202020202020207d20656c7365207b0a20204d08022020202020202020202020206663207c3d2062633b0a2020202020202020202020207d0a20202020202020202020202069662028286163205e207429202620286163205e20632e676574424c28292920262031323829207b0a20202020202020202020202020206663207c3d2076633b0a2020202020202020202020207d20656c7365207b0a20202020202020202020202020206663203d2066632026207e76632026203235353b0a2020202020202020202020207d0a2020202020202020202020206b6328632e676574424c2829293b0a2020202020202020202020206163203d20632e676574424c28293b0a202020202020202020207d0a20202020202020207d0a202020202020202066756e6374696f6e2077692829207b0a2020202020202020202063632868632e6765745728292c206163293b0a202020202020202020206966202868632e676574572829203c203029207b0a202020202020202020202020636f6e736f6c652e6572726f72282773616c6c795f5354413a2025642c202564272c2068632e6765745728292c206163293b0a20202020202020202020202048414c54203d20747275653b0a202020202020202020207d0a20202020202020207d0a202020202020202066756e6374696f6e206d692829207b0a2020202020202020202063632868632e6765745728292c206f63293b0a20202020202020207d0a2020204d0802202020202066756e6374696f6e204d692829207b0a2020202020202020202063632868632e6765745728292c207363293b0a20202020202020207d0a202020202020202066756e6374696f6e2076692829207b0a202020202020202020206b6328286f63203d20616329293b0a20202020202020207d0a202020202020202066756e6374696f6e2049692829207b0a2020202020202020202072657475726e2064633b0a20202020202020207d0a202020202020202066756e6374696f6e2043692829207b0a2020202020202020202072657475726e2070633b0a20202020202020207d0a202020202020202066756e6374696f6e20456928742c20652c206e2c207229207b0a20202020202020202020746869732e557064617465203d2066756e6374696f6e2028742c20652c206e2c207229207b0a202020202020202020202020746869732e6c656674203d20743b0a202020202020202020202020746869732e746f70203d20653b0a202020202020202020202020746869732e7269676874203d206e3b0a202020202020202020202020746869732e626f74746f6d203d20723b0a202020202020202020202020746869732e6c656e677468203d20746869732e7269676874202d20746869732e6c656674202b20313b0a202020202020202020202020746869732e686569676874203d20746869732e626f74746f6d202d20746869732e4d0802746f70202b20313b0a202020202020202020202020746869732e61726561203d20746869732e6c656e677468202a20746869732e6865696768743b0a202020202020202020207d3b0a20202020202020202020746869732e436f7079203d2066756e6374696f6e20287429207b0a202020202020202020202020746869732e55706461746528742e6c6566742c20742e746f702c20742e72696768742c20742e626f74746f6d293b0a202020202020202020207d3b0a20202020202020202020746869732e47657441726561203d2066756e6374696f6e202829207b0a20202020202020202020202072657475726e20746869732e617265613b0a202020202020202020207d3b0a20202020202020202020746869732e4765744c656e677468203d2066756e6374696f6e202829207b0a20202020202020202020202072657475726e20746869732e6c656e6774683b0a202020202020202020207d3b0a20202020202020202020746869732e476574486569676874203d2066756e6374696f6e202829207b0a20202020202020202020202072657475726e20746869732e6865696768743b0a202020202020202020207d3b0a20202020202020202020746869732e55706461746528742c20652c206e2c2072293b0a20202020202020207d0a202020202020202066756e6374696f6e204a69287429207b0a20202020202020202020696620284d08024769203c2031363029207b0a202020202020202020202020696620287429207b0a202020202020202020202020202042695b47695d203d207a69207c20743b0a2020202020202020202020207d20656c736520696620283420262053695b36305d29207b0a202020202020202020202020202042695b47695d203d20303b0a2020202020202020202020207d0a202020202020202020207d0a202020202020202020204769203d20284769202b2031292026203235353b0a20202020202020207d0a202020202020202066756e6374696f6e20586928742c206529207b0a20202020202020202020766172206e203d203420262053695b36305d3b0a202020202020202020207661722072203d202831362026207a6929207c2074207c20653b0a2020202020202020202069662028283320262072207c7c206e29202626204769203c2031363029207b0a20202020202020202020202042695b47695d203d20723b0a202020202020202020207d0a202020202020202020204769203d20284769202b2031292026203235353b0a20202020202020207d0a202020202020202066756e6374696f6e2071692829207b0a202020202020202020206966202846692e676574572829203e20333237363729207b0a202020202020202020202020696620285a69202626203430393620262046692e67657457282929207b0a20202020202020202020204d080220202072657475726e20747275653b0a2020202020202020202020207d0a202020202020202020202020696620285569202626203230343820262046692e67657457282929207b0a202020202020202020202020202072657475726e20747275653b0a2020202020202020202020207d0a202020202020202020207d0a2020202020202020202072657475726e2066616c73653b0a20202020202020207d0a202020202020202066756e6374696f6e204b69287429207b0a202020202020202020206966202833202620287420263d203235352929207b0a20202020202020202020202072657475726e2053695b3332202b20745d3b0a202020202020202020207d20656c7365207b0a20202020202020202020202072657475726e2053695b33325d3b0a202020202020202020207d0a20202020202020207d0a202020202020202066756e6374696f6e2024692829207b0a202020202020202020207661722074203d204869203f2053695b46692e6765745728295d203a2078692846692e676574572829293b0a2020202020202020202069662028516929207b0a202020202020202020202020696620287169282929207b0a20202020202020202020202020204769203d20284769202b2032292026203235353b0a2020202020202020202020207d20656c7365207b0a20202020202020202020202020205869283132202620742c2028314d080239322026207429203e3e3e2036293b0a20202020202020202020202020205869282834382026207429203e3e3e20342c2028332026207429203c3c2032293b0a2020202020202020202020207d0a202020202020202020207d20656c736520696620287169282929207b0a2020202020202020202020204769203d20284769202b2034292026203235353b0a202020202020202020207d20656c7365207b0a2020202020202020202020204a6928283139322026207429203e3e3e2036293b0a2020202020202020202020204a69282834382026207429203e3e3e2034293b0a2020202020202020202020204a69282831322026207429203e3e3e2032293b0a2020202020202020202020204a69283320262074293b0a202020202020202020207d0a2020202020202020202046692e77506c7573506c757328293b0a20202020202020207d0a202020202020202066756e6374696f6e20746128742c206529207b0a20202020202020202020666f722028766172206e203d20303b206e203c20383b206e2b2b29207b0a202020202020202020202020745b65202b206e5d203d203135202620745b65202b206e5d3b0a202020202020202020207d0a20202020202020207d0a202020202020202066756e6374696f6e206e612829207b0a2020202020202020202069662028215f6929207b0a2020202020202020202020205f69203d206a735f4d08026765745f626c69745f6164647228293b0a202020202020202020207d0a20202020202020202020666f7220287661722074203d20303b2074203c2037373434303b20742b2b29207b0a2020202020202020202020205f695b745d203d20303b0a202020202020202020207d0a20202020202020202020666f72202874203d20303b2074203c203136303b20742b2b29207b0a20202020202020202020202054695b305d5b745d203d20303b0a20202020202020202020202054695b315d5b745d203d20303b0a202020202020202020207d0a202020202020202020206a69203d20303b0a202020202020202020205269203d2066616c73653b0a2020202020202020202050692e736574572830293b0a202020202020202020204f692e736574572830293b0a2020202020202020202046692e736574572830293b0a202020202020202020204769203d20303b0a202020202020202020207a69203d20303b0a202020202020202020205769203d20303b0a202020202020202020205569203d20303b0a202020202020202020205a69203d20303b0a202020202020202020205169203d20303b0a202020202020202020205969203d2066616c73653b0a20202020202020207d0a202020202020202066756e6374696f6e2072612829207b0a20202020202020202020666f7220287661722074203d20303b2074203c2037373434303b20742b2b4d080229207b0a2020202020202020202020205f695b745d203d20303b0a202020202020202020207d0a20202020202020207d0a202020202020202066756e6374696f6e206961287429207b0a20202020202020202020666f7220287661722065203d20303b2065203c203736383b20652b2b29207b0a20202020202020202020202063615b655d203d20745b655d3b0a202020202020202020207d0a20202020202020207d0a202020202020202066756e6374696f6e206161287429207b0a202020202020202020207661722065203d2061746f6228742e73706c697428272c27295b315d293b0a20202020202020202020766172206e203d206e657720417272617928293b0a20202020202020202020666f7220287661722072203d20303b2072203c20652e6c656e6774683b20722b2b29207b0a2020202020202020202020206e2e7075736828652e63686172436f64654174287229293b0a202020202020202020207d0a2020202020202020202072657475726e206e3b0a20202020202020207d0a202020202020202066756e6374696f6e207661287429207b0a20202020202020202020636f6e736f6c652e6c6f6728275365742073616d706c6520726174653a202564272c2074293b0a2020202020202020202067203d2033313434303b0a20202020202020202020636f6e736f6c652e6c6f67282773657420706f6b65792073616d706c4d08026520726174653a202564272c2067293b0a202020202020202020202866756e6374696f6e20287429207b0a202020202020202020202020636f6e736f6c652e6c6f67282753657420594d2073616d706c6520726174653a2027202b2074293b0a20202020202020202020202063742e5365745261746528333537393534352c2074293b0a202020202020202020207d292874293b0a202020202020202020206761203d20743b0a20202020202020207d0a202020202020202066756e6374696f6e20446128742c20652c206e29207b0a20202020202020202020666f7220287661722072203d20303b2072203c206e3b20722b2b29207b0a20202020202020202020202045615b53612b2b5d203d2065203f2028745b725d202f20323535202b20655b725d202f2031323829202f2032203a20745b725d202f203235353b0a202020202020202020202020696620285361203d3d20313633383429207b0a20202020202020202020202020205361203d20303b0a2020202020202020202020207d0a202020202020202020207d0a20202020202020207d0a202020202020202066756e6374696f6e204e612829207b0a202020202020202020204161203d2044613b0a20202020202020202020696620284961202626202877696e646f772e417564696f436f6e74657874207c7c2077696e646f772e7765626b6974417564696f436f6e746578744d08022929207b0a20202020202020202020202049612e636c6f736528293b0a2020202020202020202020204961203d206e756c6c3b0a2020202020202020202020204361203d206e756c6c3b0a202020202020202020207d0a2020202020202020202069662028214961202626202877696e646f772e417564696f436f6e74657874207c7c2077696e646f772e7765626b6974417564696f436f6e746578742929207b0a202020202020202020202020636f6e736f6c652e6c6f672827696e697420617564696f27293b0a2020202020202020202020207661722074203d204c613b0a202020202020202020202020696620280a2020202020202020202020202020284961203d2077696e646f772e417564696f436f6e746578740a202020202020202020202020202020203f206e65772077696e646f772e417564696f436f6e74657874287b2073616d706c65526174653a2074207d290a202020202020202020202020202020203a206e65772077696e646f772e7765626b6974417564696f436f6e746578742829292e73616d706c65526174650a20202020202020202020202029207b0a202020202020202020202020202074203d2049612e73616d706c65526174653b0a2020202020202020202020207d0a20202020202020202020202076612874293b0a202020202020202020202020284361203d2049612e6372656174655363726970744d080250726f636573736f7228323034382c20302c203129292e6f6e617564696f70726f63657373203d0a202020202020202020202020202066756e6374696f6e20287429207b0a202020202020202020202020202020207661722065203d20742e6f75747075744275666665722e6765744368616e6e656c446174612830293b0a20202020202020202020202020202020766172206e203d20303b0a20202020202020202020202020202020666f7220287661722072203d20652e6c656e6774683b20786120213d205361202626206e203c20723b2029207b0a202020202020202020202020202020202020655b6e2b2b5d203d2045615b78612b2b5d3b0a202020202020202020202020202020202020696620287861203d3d20313633383429207b0a20202020202020202020202020202020202020207861203d20303b0a2020202020202020202020202020202020207d0a202020202020202020202020202020207d0a202020202020202020202020202020207768696c6520286e203c207229207b0a202020202020202020202020202020202020655b6e2b2b5d203d20303b0a202020202020202020202020202020207d0a20202020202020202020202020207d3b0a20202020202020202020202043612e636f6e6e6563742849612e64657374696e6174696f6e293b0a2020202020202020202020207661722065203d2066756e6374696f4d08026e202829207b0a20202020202020202020202020206966202849612e737461746520213d3d202772756e6e696e672729207b0a2020202020202020202020202020202049612e726573756d6528293b0a20202020202020202020202020207d0a2020202020202020202020207d3b0a202020202020202020202020766172206e203d20646f63756d656e742e646f63756d656e74456c656d656e743b0a2020202020202020202020206e2e6164644576656e744c697374656e657228276b6579646f776e272c2065293b0a2020202020202020202020206e2e6164644576656e744c697374656e65722827636c69636b272c2065293b0a2020202020202020202020206e2e6164644576656e744c697374656e6572282764726f70272c2065293b0a2020202020202020202020206e2e6164644576656e744c697374656e657228276472616764726f70272c2065293b0a20202020202020202020202077696e646f772e6164644576656e744c697374656e6572282767616d65706164636f6e6e6563746564272c2065293b0a202020202020202020207d0a20202020202020207d0a202020202020202066756e6374696f6e205f61287429207b0a202020202020202020204c61203d20743b0a202020202020202020204e6128293b0a20202020202020207d0a202020202020202066756e6374696f6e20726f2829207b0a20202020202020204d08022020696620285961203d3d205161207c7c20285961203d3d2048612026262069722829203d3d2051612929207b0a20202020202020202020202044692e436f7079285861293b0a2020202020202020202020204e692e436f7079287161293b0a202020202020202020202020696128656f5b6e6f5d293b0a202020202020202020202020486f283530293b0a202020202020202020202020566f28333133293b0a2020202020202020202020205f61283331333030293b0a202020202020202020207d20656c7365207b0a20202020202020202020202044692e436f7079285661293b0a2020202020202020202020204e692e436f7079284a61293b0a202020202020202020202020696128746f5b6e6f5d293b0a202020202020202020202020486f283630293b0a202020202020202020202020566f28323633293b0a2020202020202020202020205f61283331353630293b0a202020202020202020207d0a20202020202020207d0a202020202020202066756e6374696f6e20636f2829207b0a2020202020202020202072657475726e20746f5b6e6f5d3b0a20202020202020207d0a202020202020202066756e6374696f6e20696f2829207b0a2020202020202020202072657475726e20656f5b6e6f5d3b0a20202020202020207d0a202020202020202066756e6374696f6e20616f2829207b0a2020202020202020202072657475724d08026e206e6f3b0a20202020202020207d0a202020202020202066756e6374696f6e206f6f287429207b0a202020202020202020206e6f203d20743b0a20202020202020207d0a202020202020202066756e6374696f6e20736f2829207b0a2020202020202020202072657475726e20333b0a20202020202020207d0a202020202020202066756e6374696f6e206a6f287429207b0a20202020202020202020426f203d20743b0a20202020202020202020696620286e72282929207b0a2020202020202020202020205f6f203d20313b0a202020202020202020202020456f203d2066616c73653b0a202020202020202020202020786f203d20303b0a2020202020202020202020206163203d20303b0a2020202020202020202020206f63203d20303b0a2020202020202020202020207363203d20303b0a2020202020202020202020206663203d204d633b0a2020202020202020202020207563203d20303b0a20202020202020202020202064632e736574572830293b0a2020202020202020202020204c69203d20303b0a202020202020202020202020726f28293b0a202020202020202020202020626528293b0a2020202020202020202020205928293b0a202020202020202020202020437428293b0a202020202020202020202020556528293b0a202020202020202020202020726128293b0a2020202020202020202020206e6128294d08023b0a20202020202020202020202058742830293b0a20202020202020202020202071742830293b0a2020202020202020202020207a74203d2066616c73653b0a2020202020202020202020205774203d203636323b0a2020202020202020202020205574203d20303b0a2020202020202020202020205a74203d20303b0a2020202020202020202020205974203d2066616c73653b0a2020202020202020202020205674203d20303b0a2020202020202020202020204a74203d20303b0a202020202020202020202020246e28293b0a202020202020202020202020696620287429207b0a202020202020202020202020202063722866756e6374696f6e20286529207b0a20202020202020202020202020202020507428276f6e4869676853636f7265436172744c6f61646564272c2065293b0a202020202020202020202020202020206663203d207963207c204d63207c2067633b0a2020202020202020202020202020202064632e736574424c2869635b43635d293b0a2020202020202020202020202020202064632e73657442482869635b49635d293b0a202020202020202020202020202020204e6f203d2032343b0a20202020202020202020202020202020436f203d20747275653b0a202020202020202020202020202020207428293b0a20202020202020202020202020207d293b0a2020202020202020202020207d0a2020204d0802202020202020207d0a20202020202020207d0a202020202020202066756e6374696f6e20526f2829207b0a20202020202020202020696620285f6f203e3d206f66202626205f6f203c3d206f66202b2033202626204e6f203e3d202830207c20736629202d203129207b0a2020202020202020202020206d6f5b31325d20263d203132373b0a202020202020202020207d20656c7365207b0a2020202020202020202020206d6f5b31325d207c3d203132383b0a202020202020202020207d0a20202020202020207d0a202020202020202066756e6374696f6e207a6f287429207b0a2020202020202020202069662028436f29207b0a202020202020202020202020456f203d20743b0a202020202020202020207d0a20202020202020207d0a202020202020202066756e6374696f6e20576f2829207b0a20202020202020202020436f203d2066616c73653b0a20202020202020202020456f203d2066616c73653b0a20202020202020202020727228293b0a202020202020202020206e6128293b0a20202020202020202020726128293b0a20202020202020202020556528293b0a202020202020202020202866756e6374696f6e202829207b0a2020202020202020202020204165203d20303b0a202020202020202020202020666f7220287661722074203d20303b2074203c20323b20742b2b29207b0a2020202020202020202020204d0802202069655b745d203d20303b0a202020202020202020202020202061655b745d203d20303b0a20202020202020202020202020206f655b745d203d20303b0a202020202020202020202020202073655b745d203d20303b0a202020202020202020202020202066655b745d203d20303b0a202020202020202020202020202075655b745d203d20303b0a202020202020202020202020202064655b745d203d20303b0a20202020202020202020202020206c655b745d203d20303b0a202020202020202020202020202068655b745d203d20303b0a2020202020202020202020207d0a20202020202020202020202062652874727565293b0a202020202020202020207d2928293b0a2020202020202020202062652874727565293b0a202020202020202020205928293b0a2020202020202020202065742874727565293b0a20202020202020207d0a202020202020202066756e6374696f6e20556f2829207b0a2020202020202020202072657475726e20436f3b0a20202020202020207d0a202020202020202066756e6374696f6e205a6f2829207b0a2020202020202020202072657475726e20456f3b0a20202020202020207d0a202020202020202066756e6374696f6e20516f2829207b0a2020202020202020202072657475726e20536f3b0a20202020202020207d0a202020202020202066756e6374696f6e20486f287429207b0a4d080220202020202020202020536f203d20743b0a202020202020202020202866756e6374696f6e20287429207b0a2020202020202020202020207061203d20743b0a202020202020202020207d292874293b0a20202020202020207d0a202020202020202066756e6374696f6e20596f2829207b0a2020202020202020202072657475726e20786f3b0a20202020202020207d0a202020202020202066756e6374696f6e20566f287429207b0a20202020202020202020446f203d20743b0a202020202020202020202866756e6374696f6e20287429207b0a2020202020202020202020206261203d20743b0a202020202020202020207d292874293b0a20202020202020207d0a202020202020202066756e6374696f6e204a6f2829207b0a2020202020202020202072657475726e204e6f3b0a20202020202020207d0a202020202020202066756e6374696f6e20586f2829207b0a20202020202020202020636f6e73742074203d206e657720417272617928313732303336293b0a20202020202020202020636f6e736f6c652e6c6f672827536176696e672067616d652073746174652e27293b0a202020202020202020206c657420653b0a202020202020202020206c6574206e203d20303b0a20202020202020202020666f72202865203d20303b2065203c2031363b20652b2b29207b0a202020202020202020202020745b6e202b20655d4d0802203d202750524f2d53595354454d205354415445272e63686172436f646541742865293b0a202020202020202020207d0a202020202020202020206e202b3d2031363b0a20202020202020202020745b6e2b2b5d203d20313b0a20202020202020202020666f72202865203d20303b2065203c20343b20652b2b29207b0a202020202020202020202020745b6e202b20655d203d20303b0a202020202020202020207d0a202020202020202020206e202b3d20343b0a20202020202020202020666f72202865203d20303b2065203c2033323b20652b2b29207b0a202020202020202020202020745b6e202b20655d203d204d7228292e63686172436f646541742865293b0a202020202020202020207d0a202020202020202020206e202b3d2033323b0a20202020202020202020745b6e2b2b5d203d2061633b0a20202020202020202020745b6e2b2b5d203d206f633b0a20202020202020202020745b6e2b2b5d203d2073633b0a20202020202020202020745b6e2b2b5d203d2066633b0a20202020202020202020745b6e2b2b5d203d2075633b0a20202020202020202020745b6e2b2b5d203d20496928292e676574424c28293b0a20202020202020202020745b6e2b2b5d203d20496928292e676574424828293b0a20202020202020202020745b6e2b2b5d203d20656328293b0a20202020202020202020666f72202865203d20303b4d08022065203c2031363338343b20652b2b29207b0a202020202020202020202020745b6e202b20655d203d204e655b655d3b0a202020202020202020207d0a202020202020202020206e202b3d2031363338343b0a202020202020202020206966202843722829203d3d20626e29207b0a202020202020202020202020666f72202865203d20303b2065203c2031363338343b20652b2b29207b0a2020202020202020202020202020745b6e202b20655d203d204e655b3136333834202b20655d3b0a2020202020202020202020207d0a2020202020202020202020206e202b3d2031363338343b0a202020202020202020207d0a20202020202020202020696620286872282929207b0a202020202020202020202020666f72202865203d20303b2065203c2031363338343b20652b2b29207b0a2020202020202020202020202020745b6e202b20655d203d2054655b3136333834202b20655d3b0a2020202020202020202020207d0a2020202020202020202020206e202b3d2031363338343b0a202020202020202020207d0a20202020202020202020745b6e2b2b5d203d2051743b0a20202020202020202020745b6e2b2b5d203d2048743b0a20202020202020202020745b6e2b2b5d203d207a74203f2031203a20303b0a20202020202020202020745b6e2b2b5d203d20323535202620284b742829203e3e3e2038293b0a202020202020204d0802202020745b6e2b2b5d203d203235352026204b7428293b0a20202020202020202020745b6e2b2b5d203d2055743b0a20202020202020202020745b6e2b2b5d203d203235352026202824742829203e3e3e2038293b0a20202020202020202020745b6e2b2b5d203d20323535202620247428293b0a20202020202020202020696620287572282929207b0a202020202020202020202020745b6e2b2b5d203d204e742829203f2031203a20303b0a202020202020202020202020745b6e2b2b5d203d2044742829203f2031203a20303b0a202020202020202020202020745b6e2b2b5d203d205f742829203f2031203a20303b0a202020202020202020202020745b6e2b2b5d203d204174203f2031203a20303b0a202020202020202020202020745b6e2b2b5d203d207074203f2031203a20303b0a202020202020202020202020745b6e2b2b5d203d206274203f2031203a20303b0a202020202020202020202020745b6e2b2b5d203d206774203f2031203a20303b0a202020202020202020202020745b6e2b2b5d203d207974203f2031203a20303b0a202020202020202020202020745b6e2b2b5d203d2077743b0a202020202020202020202020745b6e2b2b5d203d206d743b0a202020202020202020202020745b6e2b2b5d203d204d743b0a202020202020202020202020745b6e2b2b5d203d2076743b0a20202020202020202020204d080220745b6e2b2b5d203d204c743b0a202020202020202020202020745b6e2b2b5d203d2049743b0a202020202020202020202020666f72202865203d20303b2065203c203133313037323b20652b2b29207b0a2020202020202020202020202020745b6e202b20655d203d2075745b655d3b0a2020202020202020202020207d0a2020202020202020202020206e202b3d203133313037323b0a202020202020202020207d0a202020202020202020206c65742072203d204a3b0a20202020202020202020666f7220286c65742065203d20303b2065203c20722e6c656e6774683b20652b2b29207b0a202020202020202020202020745b6e2b2b5d203d20725b655d3b0a202020202020202020207d0a2020202020202020202072203d2061743b0a20202020202020202020666f7220286c65742065203d20303b2065203c20722e6c656e6774683b20652b2b29207b0a202020202020202020202020745b6e2b2b5d203d20725b655d3b0a202020202020202020207d0a20202020202020202020742e6c656e677468203d206e3b0a2020202020202020202072657475726e20743b0a20202020202020207d0a202020202020202066756e6374696f6e20716f287429207b0a20202020202020202020636f6e73742065203d20742e6c656e6774683b0a20202020202020202020636f6e736f6c652e6c6f6728274c6f6164696e672067616d654d08022073746174652e27293b0a202020202020202020206c6574206e203d20303b0a20202020202020202020696620286872282929207b0a2020202020202020202020206e203d2031363338343b0a202020202020202020207d0a20202020202020202020696620280a2020202020202020202020206520213d203136373431202b206e2026260a2020202020202020202020206520213d203333313235202b206e2026260a2020202020202020202020206520213d20313437383237202b206e2026260a2020202020202020202020206520213d20313634323131202b206e0a2020202020202020202029207b0a202020202020202020202020636f6e736f6c652e6c6f67282753617665206275666665722068617320616e20696e76616c69642073697a652e27293b0a20202020202020202020202072657475726e2066616c73653b0a202020202020202020207d0a202020202020202020207661722072203d20303b0a20202020202020202020666f7220286c65742065203d20303b2065203c2031363b20652b2b29207b0a20202020202020202020202069662028537472696e672e66726f6d43686172436f646528745b72202b20655d2920213d202750524f2d53595354454d205354415445275b655d29207b0a2020202020202020202020202020636f6e736f6c652e6c6f672827427566666572206973206e6f7420612076616c69644d08022050726f53797374656d20736176652073746174652e27293b0a202020202020202020202020202072657475726e2066616c73653b0a2020202020202020202020207d0a202020202020202020207d0a2020202020202020202072202b3d2031363b0a20202020202020202020745b722b2b5d3b0a20202020202020202020666f7220286c65742074203d20303b2074203c20343b20742b2b29207b7d0a2020202020202020202072202b3d20343b0a202020202020202020206a6f286e756c6c293b0a202020202020202020206c65742063203d2027273b0a20202020202020202020666f7220286c65742065203d20303b2065203c2033323b20652b2b29207b0a20202020202020202020202063202b3d20537472696e672e66726f6d43686172436f646528745b72202b20655d293b0a202020202020202020207d0a2020202020202020202072202b3d2033323b0a20202020202020202020696620284d72282920213d206329207b0a202020202020202020202020636f6e736f6c652e6c6f67280a2020202020202020202020202020274c6f616420737461746520646967657374205b27202b0a2020202020202020202020202020202063202b0a20202020202020202020202020202020275d20646f6573206e6f74206d61746368206c6f616465642063617274726964676520646967657374205b27202b0a2020202020202020204d0802202020202020206361727472696467655f646967657374202b0a20202020202020202020202020202020275d2e270a202020202020202020202020293b0a20202020202020202020202072657475726e2066616c73653b0a202020202020202020207d0a202020202020202020207661722069203d20745b722b2b5d3b0a202020202020202020206163203d20693b0a202020202020202020207661722061203d20745b722b2b5d3b0a202020202020202020206f63203d20613b0a20202020202020202020766172206f203d20745b722b2b5d3b0a202020202020202020207363203d206f3b0a202020202020202020207661722073203d20745b722b2b5d3b0a202020202020202020206663203d20733b0a202020202020202020207661722066203d20745b722b2b5d3b0a202020202020202020207563203d20663b0a20202020202020202020496928292e736574424c28745b722b2b5d293b0a20202020202020202020496928292e736574424828745b722b2b5d293b0a20202020202020202020657228745b722b2b5d293b0a20202020202020202020666f7220286c65742065203d20303b2065203c2031363338343b20652b2b29207b0a2020202020202020202020204e655b655d203d20745b72202b20655d3b0a202020202020202020207d0a2020202020202020202072202b3d2031363338343b0a202020202020202020204d08026966202843722829203d3d20626e29207b0a202020202020202020202020666f7220286c65742065203d20303b2065203c2031363338343b20652b2b29207b0a20202020202020202020202020204e655b3136333834202b20655d203d20745b72202b20655d3b0a2020202020202020202020207d0a20202020202020202020202072202b3d2031363338343b0a202020202020202020207d0a20202020202020202020696620286872282929207b0a202020202020202020202020666f7220286c65742065203d20303b2065203c2031363338343b20652b2b29207b0a202020202020202020202020202054655b3136333834202b20655d203d20745b72202b20655d3b0a2020202020202020202020207d0a20202020202020202020202072202b3d2031363338343b0a202020202020202020207d0a20202020202020202020587428745b722b2b5d293b0a20202020202020202020717428745b722b2b5d293b0a202020202020202020202866756e6374696f6e20287429207b0a2020202020202020202020207a74203d20743b0a202020202020202020207d2928745b722b2b5d203d3d3d2031293b0a202020202020202020206c65742075203d20745b722b2b5d3b0a202020202020202020206c65742064203d20745b722b2b5d3b0a2020202020202020202076617220683b0a202020202020202020202866756e6374696f6e20284d080229207b0a2020202020202020202020207661722074203d20282875203c3c20382920262032353529207c202832353520262064293b0a2020202020202020202020205774203d20743b0a202020202020202020207d2928293b0a20202020202020202020766172206c203d20745b722b2b5d3b0a202020202020202020205574203d206c3b0a2020202020202020202075203d20745b722b2b5d3b0a2020202020202020202064203d20745b722b2b5d3b0a202020202020202020205a74203d20282875203c3c20382920262032353529207c202832353520262064293b0a20202020202020202020696620287572282929207b0a20202020202020202020202068203d20745b722b2b5d203d3d3d20313b0a2020202020202020202020206474203d20683b0a2020202020202020202020202866756e6374696f6e20287429207b0a20202020202020202020202020206c74203d20743b0a2020202020202020202020207d2928745b722b2b5d203d3d3d2031293b0a2020202020202020202020202866756e6374696f6e20287429207b0a20202020202020202020202020206874203d20743b0a2020202020202020202020207d2928745b722b2b5d203d3d3d2031293b0a2020202020202020202020202866756e6374696f6e20287429207b0a20202020202020202020202020204174203d20743b0a2020202020202020202020207d29284d0802745b722b2b5d203d3d3d2031293b0a2020202020202020202020202866756e6374696f6e20287429207b0a20202020202020202020202020207074203d20743b0a2020202020202020202020207d2928745b722b2b5d203d3d3d2031293b0a2020202020202020202020202866756e6374696f6e20287429207b0a20202020202020202020202020206274203d20743b0a2020202020202020202020207d2928745b722b2b5d203d3d3d2031293b0a2020202020202020202020202866756e6374696f6e20287429207b0a20202020202020202020202020206774203d20743b0a2020202020202020202020207d2928745b722b2b5d203d3d3d2031293b0a202020202020202020202020547428745b722b2b5d203d3d3d2031293b0a2020202020202020202020202866756e6374696f6e20287429207b0a20202020202020202020202020207774203d20743b0a2020202020202020202020207d2928745b722b2b5d293b0a2020202020202020202020202866756e6374696f6e20287429207b0a20202020202020202020202020206d74203d20743b0a2020202020202020202020207d2928745b722b2b5d293b0a2020202020202020202020202866756e6374696f6e20287429207b0a20202020202020202020202020204d74203d20743b0a2020202020202020202020207d2928745b722b2b5d293b0a202020202020202020202020284d080266756e6374696f6e20287429207b0a20202020202020202020202020207674203d20743b0a2020202020202020202020207d2928745b722b2b5d293b0a2020202020202020202020202866756e6374696f6e20287429207b0a20202020202020202020202020204c74203d20743b0a2020202020202020202020207d2928745b722b2b5d293b0a2020202020202020202020202866756e6374696f6e20287429207b0a20202020202020202020202020204974203d20743b0a2020202020202020202020207d2928745b722b2b5d293b0a202020202020202020202020666f7220286c65742065203d20303b2065203c203133313037323b20652b2b29207b0a202020202020202020202020202075745b655d203d20745b722b2b5d3b0a2020202020202020202020207d0a202020202020202020207d0a20202020202020202020666f7220286c65742065203d20303b2065203c2033323b20652b2b29207b0a20202020202020202020202058283136333834202b20652c20745b722b2b5d293b0a202020202020202020207d0a20202020202020202020666f7220286c65742065203d20303b2065203c203235363b20652b2b29207b0a2020202020202020202020206f7428652c20745b722b2b5d293b0a202020202020202020207d0a20202020202020202020636f6e736f6c652e6c6f6728742e6c656e677468202b20272c2027202b204d080272293b0a2020202020202020202072657475726e20747275653b0a20202020202020207d0a202020202020202066756e6374696f6e2043732829207b0a202020202020202020207661722074203d206e756c6c3b0a2020202020202020202074203d204973203d3d205161203f20696f2829203a20636f28293b0a20202020202020202020666f7220287661722065203d20303b2065203c203235363b20652b2b29207b0a202020202020202020202020766172206e203d20745b33202a2065202b20305d3b0a2020202020202020202020207661722072203d20745b33202a2065202b20315d3b0a2020202020202020202020207661722063203d20745b33202a2065202b20325d3b0a20202020202020202020202068735b655d203d205b6e2c20722c20635d3b0a202020202020202020207d0a20202020202020207d0a202020202020202066756e6374696f6e2045732829207b0a202020202020202020207661722074203d204973203d3d205161203f206373203a206e733b0a202020202020202020207661722065203d2028286973202d207429202f203229207c20303b0a20202020202020202020766172206e203d20303b0a202020202020202020207661722072203d20303b0a202020202020202020207661722063203d20303b0a202020202020202020207661722069203d20303b0a202020202020202020207661722061204d08023d20303b0a20202020202020202020766172206f203d20246f3b0a202020202020202020207661722073203d206f733b0a202020202020202020207661722066203d20284973203d3d205161203f207273203a20657329202a2074733b0a20202020202020202020666f72202861203d20303b2061203c20743b20612b2b29207b0a20202020202020202020202063203d2066202b2061202a2074733b0a2020202020202020202020206e203d20303b0a20202020202020202020202072203d2030202b2028282861202b206529202a20747329203c3c2032293b0a202020202020202020202020666f72202869203d20303b2069203c2074733b20692b2b29207b0a20202020202020202020202020207661722075203d20735b63202b206e5d3b0a20202020202020202020202020207661722064203d2068735b755d3b0a20202020202020202020202020206f5b722b2b5d203d20645b305d3b0a20202020202020202020202020206f5b722b2b5d203d20645b315d3b0a20202020202020202020202020206f5b722b2b5d203d20645b325d3b0a2020202020202020202020202020722b2b3b0a20202020202020202020202020206e2b2b3b0a2020202020202020202020207d0a202020202020202020207d0a2020202020202020202066732e707574496d61676544617461284b6f2c20302c2030293b0a20202020202020207d0a20204d080220202020202066756e6374696f6e205373287429207b0a202020202020202020205f69203d206f733b0a202020202020202020206966202821737329207b0a2020202020202020202020207373203d20742e63616e7661733b0a2020202020202020202020207573203d20742e636f6e74726f6c734469763b0a2020202020202020202020206473203d20742e6d61696e436f6e7461696e65723b0a2020202020202020202020206c73203d20742e696e6e6572436f6e7461696e65723b0a2020202020202020202020204c73203d20742e64656275673b0a2020202020202020202020206673203d2073732e676574436f6e746578742827326427293b0a2020202020202020202020204b6f203d2066732e676574496d6167654461746128302c20302c2074732c206973293b0a202020202020202020202020246f203d204b6f2e646174613b0a202020202020202020207d0a20202020202020202020787328293b0a20202020202020202020527328293b0a202020202020202020204173203d20676574436f6d70757465645374796c65287373295b27696d6167652d72656e646572696e67275d3b0a202020202020202020206b73287073293b0a20202020202020207d0a202020202020202066756e6374696f6e2078732829207b0a20202020202020202020666f7220287661722074203d20333b2074203c20246f2e6c656e6774684d08023b2074202b3d203429207b0a202020202020202020202020246f5b74202d20335d203d20303b0a202020202020202020202020246f5b74202d20325d203d20303b0a202020202020202020202020246f5b74202d20315d203d20303b0a202020202020202020202020246f5b745d203d203235353b0a202020202020202020207d0a2020202020202020202066732e707574496d61676544617461284b6f2c20302c2030293b0a20202020202020207d0a202020202020202066756e6374696f6e2044732829207b0a2020202020202020202069662028617329207b0a2020202020202020202020202866756e6374696f6e20742829207b0a202020202020202020202020202069662028617329207b0a202020202020202020202020202020202866756e6374696f6e202829207b0a2020202020202020202020202020202020207661722074203d2066733b0a202020202020202020202020202020202020666f7220287661722065203d20333b2065203c20246f2e6c656e6774683b2065202b3d203429207b0a2020202020202020202020202020202020202020766172206e203d204d6174682e72616e646f6d2829203c20302e35203f2030203a203235353b0a2020202020202020202020202020202020202020246f5b65202d20335d203d206e3b0a2020202020202020202020202020202020202020246f5b65202d20325d203d206e4d08023b0a2020202020202020202020202020202020202020246f5b65202d20315d203d206e3b0a2020202020202020202020202020202020202020246f5b655d203d2033373b0a2020202020202020202020202020202020207d0a202020202020202020202020202020202020742e707574496d61676544617461284b6f2c20302c2030293b0a202020202020202020202020202020207d2928293b0a2020202020202020202020202020202072657175657374416e696d6174696f6e4672616d652874293b0a20202020202020202020202020207d20656c7365207b0a20202020202020202020202020202020787328293b0a20202020202020202020202020207d0a2020202020202020202020207d2928293b0a202020202020202020207d0a20202020202020207d0a202020202020202066756e6374696f6e204e732829207b0a2020202020202020202069662028737329207b0a2020202020202020202020207661722074203d20646f63756d656e742e66756c6c73637265656e456c656d656e743b0a202020202020202020202020696620287429207b0a20202020202020202020202020207661722065203d2077696e646f772e696e6e6572486569676874202d2075732e6f66667365744865696768743b0a2020202020202020202020202020766172206e203d2077696e646f772e696e6e657257696474683b0a20202020202020204d08022020202020206c732e7374796c652e686569676874203d2065202b20277078273b0a20202020202020202020202020207661722072203d20653b0a20202020202020202020202020207661722063203d2072202a206d733b0a20202020202020202020202020206966202863203e206e29207b0a2020202020202020202020202020202072203d202863203d206e29202a204d733b0a20202020202020202020202020207d0a20202020202020202020202020207661722069203d20303b0a20202020202020202020202020207661722061203d202872202f20697329207c20303b0a2020202020202020202020202020696620287673203d3d203129207b0a2020202020202020202020202020202069203d20613b0a20202020202020202020202020207d0a20202020202020202020202020206966202861203c203229207b0a2020202020202020202020202020202069203d20323b0a20202020202020202020202020207d0a20202020202020202020202020206966202869203e203029207b0a2020202020202020202020202020202063203d202872203d206973202a206929202a206d733b0a20202020202020202020202020207d0a202020202020202020202020202073732e7374796c652e7769647468203d2063202b20277078273b0a202020202020202020202020202073732e7374796c652e686569676874203d2072202b204d0802277078273b0a202020202020202020202020202073732e7374796c652e70616464696e67546f70203d2028282865202d207229202f203229207c203029202b20277078273b0a2020202020202020202020207d20656c7365207b0a20202020202020202020202020206c732e7374796c652e72656d6f766550726f7065727479282768656967687427293b0a202020202020202020202020202073732e7374796c652e72656d6f766550726f7065727479282770616464696e672d746f7027293b0a202020202020202020202020202073732e7374796c652e7769647468203d207973202b20277078273b0a202020202020202020202020202073732e7374796c652e686569676874203d207773202b20277078273b0a2020202020202020202020207d0a202020202020202020202020696620284c7329207b0a2020202020202020202020202020636f6e736f6c652e6c6f67280a202020202020202020202020202020202743616e7661732073697a653a2027202b2073732e7374796c652e7769647468202b20272062792027202b2073732e7374796c652e6865696768740a2020202020202020202020202020293b0a2020202020202020202020207d0a2020202020202020202020205074282766756c6c73637265656e272c20212174293b0a202020202020202020207d0a20202020202020207d0a202020202020202066756e6374694d08026f6e205f732829207b0a2020202020202020202072657475726e2073733b0a20202020202020207d0a202020202020202066756e6374696f6e2054732829207b0a202020202020202020206173203d2066616c73653b0a20202020202020207d0a202020202020202066756e6374696f6e206b73287429207b0a202020202020202020207073203d20743b0a2020202020202020202073732e7374796c652e696d61676552656e646572696e67203d2074203f2027696e697469616c27203a2041733b0a20202020202020207d0a202020202020202066756e6374696f6e2042732829207b0a2020202020202020202072657475726e2070733b0a20202020202020207d0a202020202020202066756e6374696f6e206a732829207b0a2020202020202020202072657475726e2066616c73653b0a20202020202020207d0a202020202020202066756e6374696f6e2052732829207b0a202020202020202020206d73203d20287973203d20287473202a206273202a20677329207c203029202f20287773203d206973202a206273293b0a202020202020202020204d73203d207773202f2079733b0a2020202020202020202064732e7374796c652e7769647468203d207973202b20277078273b0a202020202020202020204e7328293b0a20202020202020207d0a202020202020202066756e6374696f6e205073287429207b0a20202020204d080220202020206273203d20743b0a20202020202020202020527328293b0a20202020202020207d0a202020202020202066756e6374696f6e204f732829207b0a2020202020202020202072657475726e2062733b0a20202020202020207d0a202020202020202066756e6374696f6e2046732829207b0a2020202020202020202072657475726e20323b0a20202020202020207d0a202020202020202066756e6374696f6e204773287429207b0a202020202020202020206773203d20743b0a20202020202020202020527328293b0a20202020202020207d0a202020202020202066756e6374696f6e207a732829207b0a2020202020202020202072657475726e2067733b0a20202020202020207d0a202020202020202066756e6374696f6e2057732829207b0a2020202020202020202072657475726e20313b0a20202020202020207d0a202020202020202066756e6374696f6e2055732829207b0a2020202020202020202072657475726e20303b0a20202020202020207d0a202020202020202066756e6374696f6e205a73287429207b0a202020202020202020207673203d20743b0a202020202020202020204e7328293b0a20202020202020207d0a202020202020202066756e6374696f6e2051732829207b0a2020202020202020202072657475726e2076733b0a20202020202020207d0a202020202020202066756e6374696f6e4d08022048732829207b0a202020202020202020207661722074203d20646f63756d656e742e676574456c656d656e744279496428276a73373830305f5f66756c6c73637265656e2d636f6e7461696e657227293b0a2020202020202020202069662028215973282929207b0a202020202020202020202020742e7265717565737446756c6c73637265656e28293b0a2020202020202020202020204e7328293b0a20202020202020202020202073657454696d656f7574284e732c20316533293b0a202020202020202020207d0a20202020202020207d0a202020202020202066756e6374696f6e2059732829207b0a2020202020202020202072657475726e20646f63756d656e742e66756c6c73637265656e456c656d656e743b0a20202020202020207d0a202020202020202066756e6374696f6e2056732829207b0a20202020202020202020646f63756d656e742e6578697446756c6c73637265656e28293b0a20202020202020207d0a202020202020202066756e6374696f6e206c66287429207b0a2020202020202020202069662028666620213d207429207b0a2020202020202020202020206666203d20743b0a20202020202020202020202069662028287266203d205f7328292929207b0a202020202020202020202020202069662028666629207b0a2020202020202020202020202020202072662e6164644576656e744c6973744d0802656e657228276d6f7573656d6f7665272c206866293b0a2020202020202020202020202020202072662e6164644576656e744c697374656e657228276d6f757365646f776e272c204166293b0a20202020202020202020202020202020646f63756d656e742e6164644576656e744c697374656e657228276d6f7573657570272c207066293b0a2020202020202020202020202020202072662e7374796c652e637572736f72203d202763726f737368616972273b0a20202020202020202020202020207d20656c7365207b0a2020202020202020202020202020202072662e72656d6f76654576656e744c697374656e657228276d6f7573656d6f7665272c206866293b0a2020202020202020202020202020202072662e72656d6f76654576656e744c697374656e657228276d6f757365646f776e272c204166293b0a20202020202020202020202020202020646f63756d656e742e72656d6f76654576656e744c697374656e657228276d6f7573657570272c207066293b0a2020202020202020202020202020202072662e7374796c652e637572736f72203d20276175746f273b0a20202020202020202020202020207d0a2020202020202020202020207d0a202020202020202020207d0a20202020202020207d0a202020202020202066756e6374696f6e206866287429207b0a202020202020202020207661722065203d2072662e4d0802676574426f756e64696e67436c69656e745265637428293b0a20202020202020202020766172206e203d202828742e636c69656e7458202d20652e6c65667429202f202872662e7363726f6c6c5769647468202f2063662929207c20303b0a202020202020202020207661722072203d202828742e636c69656e7459202d20652e746f7029202f202872662e7363726f6c6c486569676874202f2061662929207c20303b0a202020202020202020206e202d3d20467228293b0a2020202020202020202072202d3d20477228293b0a202020202020202020207661722063203d20697228293b0a202020202020202020207661722069203d2063203d3d204b73203f207466203a2024733b0a202020202020202020207661722061203d20333138202f2063663b0a202020202020202020206f66203d202872202a20282863203d3d204b73203f206566203a206e6629202f20616629202b202858732e746f70202d2071732e746f70202b203129202b206929207c20303b0a2020202020202020202069662028287366203d2028313838202b206e202a206129207c203029203e204a7329207b0a2020202020202020202020206f662b2b3b0a2020202020202020202020207366202d3d204a733b0a202020202020202020207d0a20202020202020207d0a202020202020202066756e6374696f6e204166287429207b0a2020202020202020204d08022068662874293b0a2020202020202020202069662028742e7768696368203d3d203129207b0a2020202020202020202020207566203d20747275653b0a2020202020202020202020206466203d20353b0a202020202020202020207d0a20202020202020202020742e70726576656e7444656661756c7428293b0a20202020202020207d0a202020202020202066756e6374696f6e207066287429207b0a2020202020202020202068662874293b0a2020202020202020202069662028742e7768696368203d3d203129207b0a2020202020202020202020207566203d2066616c73653b0a202020202020202020207d0a20202020202020202020742e70726576656e7444656661756c7428293b0a20202020202020207d0a202020202020202066756e6374696f6e205466287429207b0a202020202020202020207666203d20743b0a20202020202020202020507428276f6e4c656674446966664368616e676564272c2074293b0a20202020202020207d0a202020202020202066756e6374696f6e206b66287429207b0a202020202020202020204c66203d20743b0a20202020202020202020507428276f6e5269676874446966664368616e676564272c2074293b0a20202020202020207d0a202020202020202066756e6374696f6e20426628742c206529207b0a20202020202020202020766172206e203d20742e6b6579436f64653b4d08020a202020202020202020207661722072203d2067662e68616e646c654b6579436f6465286e2c206529207c7c2079662e68616e646c654b6579436f6465286e2c2065293b0a2020202020202020202069662028217229207b0a20202020202020202020202073776974636820286e29207b0a2020202020202020202020202020636173652078663a0a202020202020202020202020202020207766203d20653b0a2020202020202020202020202020202072203d20747275653b0a20202020202020202020202020202020627265616b3b0a2020202020202020202020202020636173652045663a0a202020202020202020202020202020206d66203d20653b0a2020202020202020202020202020202072203d20747275653b0a20202020202020202020202020202020627265616b3b0a202020202020202020202020202063617365204e663a0a202020202020202020202020202020204d66203d20653b0a2020202020202020202020202020202072203d20747275653b0a20202020202020202020202020202020627265616b3b0a202020202020202020202020202063617365203131363a0a2020202020202020202020202020202069662028216529207b0a202020202020202020202020202020202020546628287666205e3d203129293b0a202020202020202020202020202020207d0a20202020202020202020202020202020724d0802203d20747275653b0a20202020202020202020202020202020627265616b3b0a202020202020202020202020202063617365203131373a0a2020202020202020202020202020202069662028216529207b0a2020202020202020202020202020202020206b6628284c66205e3d203129293b0a202020202020202020202020202020207d0a2020202020202020202020202020202072203d20747275653b0a20202020202020202020202020202020627265616b3b0a202020202020202020202020202063617365203131323a0a2020202020202020202020202020202072203d20747275653b0a20202020202020202020202020202020627265616b3b0a202020202020202020202020202063617365203132303a0a202020202020202020202020202063617365203132323a0a20202020202020202020202020202020696620286529207b0a202020202020202020202020202020202020487328293b0a202020202020202020202020202020207d0a2020202020202020202020202020202072203d20747275653b0a2020202020202020202020207d0a202020202020202020207d0a20202020202020202020696620287220262620742e70726576656e7444656661756c7429207b0a202020202020202020202020742e70726576656e7444656661756c7428293b0a202020202020202020207d0a20202020202020207d0a20202020204d080220202066756e6374696f6e206a662829207b0a2020202020202020202072657475726e206d663b0a20202020202020207d0a202020202020202066756e6374696f6e2052662829207b0a2020202020202020202072657475726e2077663b0a20202020202020207d0a202020202020202066756e6374696f6e2050662829207b0a2020202020202020202072657475726e204d663b0a20202020202020207d0a202020202020202066756e6374696f6e204f662829207b0a2020202020202020202072657475726e2076663b0a20202020202020207d0a202020202020202066756e6374696f6e2046662829207b0a2020202020202020202072657475726e204c663b0a20202020202020207d0a202020202020202066756e6374696f6e2047662829207b0a2020202020202020202067662e726573657428293b0a2020202020202020202079662e726573657428293b0a202020202020202020205466284966293b0a202020202020202020206b66284366293b0a20202020202020207d0a202020202020202066756e6374696f6e207a66287429207b0a202020202020202020204e66203d20743b0a20202020202020207d0a202020202020202066756e6374696f6e2057662829207b0a2020202020202020202072657475726e204e663b0a20202020202020207d0a202020202020202066756e6374696f6e205566287429207b0a2020204d0802202020202020204566203d20743b0a20202020202020207d0a202020202020202066756e6374696f6e205a662829207b0a2020202020202020202072657475726e2045663b0a20202020202020207d0a202020202020202066756e6374696f6e205166287429207b0a202020202020202020207866203d20743b0a20202020202020207d0a202020202020202066756e6374696f6e2048662829207b0a2020202020202020202072657475726e2078663b0a20202020202020207d0a202020202020202066756e6374696f6e20586628742c206529207b0a20202020202020202020666f722028766172206e20696e206529207b0a202020202020202020202020745b6e5d203d20655b6e5d3b0a202020202020202020207d0a20202020202020207d0a202020202020202066756e6374696f6e207166287429207b0a20202020202020202020586628746869732c207b0a2020202020202020202020206973416e616c6f674469723a2066756e6374696f6e2028742c20652c206e29207b0a2020202020202020202020202020696620287420262620742e6178657329207b0a202020202020202020202020202020207661722072203d20742e617865733b0a2020202020202020202020202020202069662028722e6c656e677468203e206529207b0a202020202020202020202020202020202020696620286e29207b0a20202020202020204d080220202020202020202020202072657475726e20725b655d203e20302e353b0a2020202020202020202020202020202020207d20656c7365207b0a202020202020202020202020202020202020202072657475726e20725b655d203c202d302e353b0a2020202020202020202020202020202020207d0a202020202020202020202020202020207d0a20202020202020202020202020207d0a202020202020202020202020202072657475726e2066616c73653b0a2020202020202020202020207d2c0a2020202020202020202020206973507265737365643a2066756e6374696f6e2028742c206529207b0a2020202020202020202020202020696620287420262620742e627574746f6e7329207b0a20202020202020202020202020202020766172206e203d20742e627574746f6e733b0a20202020202020202020202020202020696620286e2e6c656e677468203e206529207b0a2020202020202020202020202020202020207661722072203d206e5b655d3b0a20202020202020202020202020202020202072657475726e20722e70726573736564207c7c20722e76616c7565203d3d20313b0a202020202020202020202020202020207d0a20202020202020202020202020207d0a202020202020202020202020202072657475726e2066616c73653b0a2020202020202020202020207d2c0a2020202020202020202020206973416e4d0802616c6f674c6566743a2066756e6374696f6e2028742c206529207b0a202020202020202020202020202072657475726e20746869732e6973416e616c6f6744697228742c2065203c3c20312c2066616c7365293b0a2020202020202020202020207d2c0a2020202020202020202020206973416e616c6f6752696768743a2066756e6374696f6e2028742c206529207b0a202020202020202020202020202072657475726e20746869732e6973416e616c6f6744697228742c2065203c3c20312c2074727565293b0a2020202020202020202020207d2c0a2020202020202020202020206973416e616c6f6755703a2066756e6374696f6e2028742c206529207b0a202020202020202020202020202072657475726e20746869732e6973416e616c6f6744697228742c2031202b202865203c3c2031292c2066616c7365293b0a2020202020202020202020207d2c0a2020202020202020202020206973416e616c6f67446f776e3a2066756e6374696f6e2028742c206529207b0a202020202020202020202020202072657475726e20746869732e6973416e616c6f6744697228742c2031202b202865203c3c2031292c2074727565293b0a2020202020202020202020207d2c0a20202020202020202020202069734469676974616c4c6566743a2066756e6374696f6e20287429207b0a202020202020202020202020202072657475726e204d0802746869732e69735072657373656428742c203134293b0a2020202020202020202020207d2c0a20202020202020202020202069734469676974616c52696768743a2066756e6374696f6e20287429207b0a202020202020202020202020202072657475726e20746869732e69735072657373656428742c203135293b0a2020202020202020202020207d2c0a20202020202020202020202069734469676974616c55703a2066756e6374696f6e20287429207b0a202020202020202020202020202072657475726e20746869732e69735072657373656428742c203132293b0a2020202020202020202020207d2c0a20202020202020202020202069734469676974616c446f776e3a2066756e6374696f6e20287429207b0a202020202020202020202020202072657475726e20746869732e69735072657373656428742c203133293b0a2020202020202020202020207d2c0a2020202020202020202020206973427574746f6e313a2066756e6374696f6e20287429207b0a202020202020202020202020202072657475726e20746869732e69735072657373656428742c2030293b0a2020202020202020202020207d2c0a2020202020202020202020206973427574746f6e323a2066756e6374696f6e20287429207b0a202020202020202020202020202072657475726e20746869732e69735072657373656428742c2031293b0a2020204d08022020202020202020207d2c0a202020202020202020202020697352657365743a2066756e6374696f6e20287429207b0a202020202020202020202020202072657475726e20746869732e69735072657373656428742c2039293b0a2020202020202020202020207d2c0a202020202020202020202020697353656c6563743a2066756e6374696f6e20287429207b0a202020202020202020202020202072657475726e20746869732e69735072657373656428742c2038293b0a2020202020202020202020207d2c0a202020202020202020202020697350617573653a2066756e6374696f6e20287429207b0a202020202020202020202020202072657475726e20746869732e69735072657373656428742c203429207c7c20746869732e69735072657373656428742c2035293b0a2020202020202020202020207d2c0a202020202020202020207d293b0a20202020202020202020696620287429207b0a202020202020202020202020586628746869732c2074293b0a202020202020202020207d0a20202020202020207d0a202020202020202066756e6374696f6e20747528742c206529207b0a20202020202020202020766172206e203d20743b0a202020202020202020207661722072203d20653b0a2020202020202020202072657475726e207b0a2020202020202020202020207365745061643a2066756e6374696f6e202874294d0802207b0a20202020202020202020202020206e203d20743b0a2020202020202020202020207d2c0a2020202020202020202020206765745061643a2066756e6374696f6e202829207b0a202020202020202020202020202072657475726e206e3b0a2020202020202020202020207d2c0a2020202020202020202020207365744d617070696e673a2066756e6374696f6e20287429207b0a202020202020202020202020202072203d20743b0a2020202020202020202020207d2c0a20202020202020202020202069734c6566743a2066756e6374696f6e20287429207b0a202020202020202020202020202072657475726e20280a2020202020202020202020202020202021216e2026260a2020202020202020202020202020202028722e69734469676974616c4c656674286e29207c7c20287420213d3d20766f6964203020262620722e6973416e616c6f674c656674286e2c20742929290a2020202020202020202020202020293b0a2020202020202020202020207d2c0a202020202020202020202020697352696768743a2066756e6374696f6e20287429207b0a202020202020202020202020202072657475726e20280a2020202020202020202020202020202021216e2026260a2020202020202020202020202020202028722e69734469676974616c5269676874286e29207c7c20287420213d3d20766f6964203020262620722e4d08026973416e616c6f675269676874286e2c20742929290a2020202020202020202020202020293b0a2020202020202020202020207d2c0a202020202020202020202020697355703a2066756e6374696f6e20287429207b0a202020202020202020202020202072657475726e20280a2020202020202020202020202020202021216e2026260a2020202020202020202020202020202028722e69734469676974616c5570286e29207c7c20287420213d3d20766f6964203020262620722e6973416e616c6f675570286e2c20742929290a2020202020202020202020202020293b0a2020202020202020202020207d2c0a2020202020202020202020206973446f776e3a2066756e6374696f6e20287429207b0a202020202020202020202020202072657475726e20280a2020202020202020202020202020202021216e2026260a2020202020202020202020202020202028722e69734469676974616c446f776e286e29207c7c20287420213d3d20766f6964203020262620722e6973416e616c6f67446f776e286e2c20742929290a2020202020202020202020202020293b0a2020202020202020202020207d2c0a2020202020202020202020206973416e616c6f674c6566743a2066756e6374696f6e20287429207b0a202020202020202020202020202072657475726e2021216e202626207420213d3d20766f6964203020262620722e694d080273416e616c6f674c656674286e2c2074293b0a2020202020202020202020207d2c0a2020202020202020202020206973416e616c6f6752696768743a2066756e6374696f6e20287429207b0a202020202020202020202020202072657475726e2021216e202626207420213d3d20766f6964203020262620722e6973416e616c6f675269676874286e2c2074293b0a2020202020202020202020207d2c0a2020202020202020202020206973416e616c6f6755703a2066756e6374696f6e20287429207b0a202020202020202020202020202072657475726e2021216e202626207420213d3d20766f6964203020262620722e6973416e616c6f675570286e2c2074293b0a2020202020202020202020207d2c0a2020202020202020202020206973416e616c6f67446f776e3a2066756e6374696f6e20287429207b0a202020202020202020202020202072657475726e2021216e202626207420213d3d20766f6964203020262620722e6973416e616c6f67446f776e286e2c2074293b0a2020202020202020202020207d2c0a2020202020202020202020206973427574746f6e313a2066756e6374696f6e202829207b0a202020202020202020202020202072657475726e2021216e20262620722e6973427574746f6e31286e293b0a2020202020202020202020207d2c0a2020202020202020202020206973427574746f6e323a2066756e4d08026374696f6e202829207b0a202020202020202020202020202072657475726e2021216e20262620722e6973427574746f6e32286e293b0a2020202020202020202020207d2c0a202020202020202020202020697352657365743a2066756e6374696f6e202829207b0a202020202020202020202020202072657475726e2021216e20262620722e69735265736574286e293b0a2020202020202020202020207d2c0a202020202020202020202020697353656c6563743a2066756e6374696f6e202829207b0a202020202020202020202020202072657475726e2021216e20262620722e697353656c656374286e293b0a2020202020202020202020207d2c0a202020202020202020202020697350617573653a2066756e6374696f6e202829207b0a202020202020202020202020202072657475726e2021216e20262620722e69735061757365286e293b0a2020202020202020202020207d2c0a202020202020202020207d3b0a20202020202020207d0a202020202020202066756e6374696f6e206e752829207b0a202020202020202020207661722074203d206e6176696761746f722e67657447616d65706164730a2020202020202020202020203f206e6176696761746f722e67657447616d657061647328290a2020202020202020202020203a206e6176696761746f722e7765626b697447657447616d65706164730a20202020204d0802202020202020203f206e6176696761746f722e7765626b697447657447616d657061647328290a2020202020202020202020203a205b5d3b0a202020202020202020207661722065203d20303b0a20202020202020202020666f722028766172206e203d20303b2065203c2032202626206e203c20742e6c656e6774683b206e2b2b29207b0a2020202020202020202020207661722072203d20745b6e5d3b0a202020202020202020202020696620287229207b0a202020202020202020202020202065755b655d2e7365745061642872293b0a202020202020202020202020202065755b655d2e7365744d617070696e67284b66293b0a2020202020202020202020202020696620282821722e6d617070696e67207c7c20722e6d617070696e6720213d20277374616e646172642729202626204a6629207b0a2020202020202020202020202020202065755b655d2e7365744d617070696e67282466293b0a20202020202020202020202020207d0a2020202020202020202020202020652b2b3b0a2020202020202020202020207d0a202020202020202020207d0a20202020202020207d0a202020202020202066756e6374696f6e207275287429207b0a2020202020202020202072657475726e2065755b745d3b0a20202020202020207d0a202020202020202066756e6374696f6e206c7528742c20652c206e29207b0a2020202020204d0802202020207661722072203d2074203d3d2030203f2030203a20363b0a202020202020202020207661722063203d20417228293b0a202020202020202020207661722069203d20707228293b0a202020202020202020207661722061203d2074203f207275287429203a206e3b0a20202020202020202020655b30202b20725d203d0a2020202020202020202020202874203f206f752e697352696768742829203a2061752e69735269676874282929207c7c0a202020202020202020202020612e69735269676874283029207c7c0a20202020202020202020202028692026262074202626206e2e6973416e616c6f675269676874283129293b0a20202020202020202020655b31202b20725d203d0a2020202020202020202020202874203f206f752e69734c6566742829203a2061752e69734c656674282929207c7c0a202020202020202020202020612e69734c656674283029207c7c0a20202020202020202020202028692026262074202626206e2e6973416e616c6f674c656674283129293b0a20202020202020202020655b32202b20725d203d0a2020202020202020202020202874203f206f752e6973446f776e2829203a2061752e6973446f776e282929207c7c0a202020202020202020202020612e6973446f776e283029207c7c0a20202020202020202020202028692026262074202626206e2e6973416e616c6f67446f774d08026e283129293b0a20202020202020202020655b33202b20725d203d0a2020202020202020202020202874203f206f752e697355702829203a2061752e69735570282929207c7c0a202020202020202020202020612e69735570283029207c7c0a20202020202020202020202028692026262074202626206e2e6973416e616c6f675570283129293b0a20202020202020202020655b2863203f2035203a203429202b20725d203d0a2020202020202020202020202874203f206f752e6973427574746f6e312829203a2061752e6973427574746f6e31282929207c7c20612e6973427574746f6e3128293b0a20202020202020202020655b2863203f2034203a203529202b20725d203d0a2020202020202020202020202874203f206f752e6973427574746f6e322829203a2061752e6973427574746f6e32282929207c7c20612e6973427574746f6e3228293b0a20202020202020207d0a202020202020202066756e6374696f6e206875287429207b0a202020202020202020207375203d20743b0a20202020202020207d0a202020202020202066756e6374696f6e204175287429207b0a202020202020202020206675203d20743b0a20202020202020207d0a202020202020202066756e6374696f6e2067752829207b0a20202020202020202020746869732e656c203d206e756c6c3b0a20202020202020207d0a2020202020202020664d0802756e6374696f6e20797528742c206529207b0a2020202020202020202067752e63616c6c2874686973293b0a20202020202020202020746869732e7469746c65203d20653b0a20202020202020202020746869732e74657874203d20743b0a20202020202020207d0a202020202020202066756e6374696f6e207775287429207b0a2020202020202020202067752e63616c6c2874686973293b0a20202020202020202020746869732e7469746c65203d20743b0a20202020202020202020746869732e6362203d206e756c6c3b0a20202020202020207d0a202020202020202066756e6374696f6e2053752829207b0a2020202020202020202049752e63616c6c2874686973293b0a20202020202020202020746869732e6368696c6472656e203d205b5d3b0a20202020202020207d0a202020202020202066756e6374696f6e2078752829207b0a2020202020202020202053752e63616c6c2874686973293b0a20202020202020207d0a202020202020202066756e6374696f6e2044752829207b0a2020202020202020202053752e63616c6c2874686973293b0a20202020202020207d0a202020202020202066756e6374696f6e204e7528742c206529207b0a2020202020202020202049752e63616c6c2874686973293b0a20202020202020202020746869732e7469746c65203d20743b0a20202020202020202020746869732e696d4d0802616765537263203d20653b0a20202020202020202020746869732e696d67203d206e756c6c3b0a20202020202020202020746869732e616e63686f72203d206e756c6c3b0a20202020202020207d0a202020202020202066756e6374696f6e205f7528742c20652c206e2c207229207b0a202020202020202020204e752e63616c6c28746869732c20742c2065293b0a20202020202020202020746869732e6f6e5469746c65203d206e3b0a20202020202020202020746869732e6f6e496d616765537263203d20723b0a20202020202020202020746869732e76616c7565203d2066616c73653b0a20202020202020207d0a202020202020202066756e6374696f6e204875287429207b0a2020202020202020202073776974636820287429207b0a2020202020202020202020206361736520303a0a202020202020202020202020202072657475726e2054753b0a2020202020202020202020206361736520313a0a202020202020202020202020202072657475726e2052753b0a2020202020202020202020206361736520323a0a202020202020202020202020202072657475726e207a753b0a20202020202020202020202064656661756c743a0a20202020202020202020202020207468726f772027556e6b6e6f776e2067726f75703a2027202b20743b0a202020202020202020207d0a20202020202020207d0a20202020202020204d080266756e6374696f6e2059752829207b0a2020202020202020202072657475726e206b75202626206b752e67657456616c756528293b0a20202020202020207d0a202020202020202066756e6374696f6e2056752829207b7d0a202020202020202066756e6374696f6e20706428742c206529207b0a2020202020202020202069662028736429207b0a20202020202020202020202072657175657374416e696d6174696f6e4672616d652874293b0a202020202020202020207d20656c736520696620286529207b0a2020202020202020202020207428293b0a202020202020202020207d20656c7365207b0a20202020202020202020202073657454696d656f757428742c2030293b0a202020202020202020207d0a20202020202020207d0a202020202020202066756e6374696f6e20626428742c206529207b0a202020202020202020206164203d20743b0a20202020202020202020766172206e203d20303b0a202020202020202020207661722072203d20303b0a20202020202020202020696620286529207b0a2020202020202020202020206e203d204f6628293b0a20202020202020202020202072203d20466628293b0a202020202020202020207d0a202020202020202020204b6e28742c20742e6c656e677468293b0a202020202020202020207661722063203d204d7228293b0a202020202020202020202866756e6374694d08026f6e20287429207b0a2020202020202020202020207661722065203d2070755b745d3b0a202020202020202020202020696620286529207b0a2020202020202020202020202020636f6e736f6c652e6c6f672865293b0a2020202020202020202020202020766172206e203d20652e743b0a2020202020202020202020202020696620286e20213d3d20766f6964203029207b0a202020202020202020202020202020207672286e293b0a20202020202020202020202020207d0a20202020202020202020202020207661722072203d20652e74793b0a2020202020202020202020202020696620287220213d3d20766f6964203029207b0a202020202020202020202020202020204572287061727365496e74287229293b0a20202020202020202020202020207d0a20202020202020202020202020207661722063203d20652e703b0a2020202020202020202020202020696620286320213d3d20766f6964203029207b0a2020202020202020202020202020202053722863203d3d20277427293b0a20202020202020202020202020207d0a20202020202020202020202020207661722069203d20652e63313b0a2020202020202020202020202020696620286920213d3d20766f6964203029207b0a202020202020202020202020202020204472287061727365496e74286929293b0a20202020202020202020202020207d0a202020204d0802202020202020202020207661722061203d20652e63323b0a2020202020202020202020202020696620286120213d3d20766f6964203029207b0a202020202020202020202020202020204e72287061727365496e74286129293b0a20202020202020202020202020207d0a2020202020202020202020202020766172206f203d20652e723b0a2020202020202020202020202020696620286f20213d3d20766f6964203029207b0a202020202020202020202020202020206b72287061727365496e74286f29293b0a20202020202020202020202020207d0a20202020202020202020202020207661722073203d20652e786d3b0a2020202020202020202020202020696620287320213d3d20766f6964203029207b0a202020202020202020202020202020206a722873203d3d20277427293b0a20202020202020202020202020207d0a20202020202020202020202020207661722066203d20652e63726f7373783b0a2020202020202020202020202020696620286620213d3d20766f6964203029207b0a202020202020202020202020202020205072287061727365496e74286629293b0a20202020202020202020202020207d0a20202020202020202020202020207661722075203d20652e63726f7373793b0a2020202020202020202020202020696620287520213d3d20766f6964203029207b0a20202020202020202020202020204d080220204f72287061727365496e74287529293b0a20202020202020202020202020207d0a20202020202020202020202020207661722064203d20652e6475616c616e616c6f673b0a2020202020202020202020202020696620286420213d3d20766f6964203029207b0a202020202020202020202020202020207a722864203d3d20277427293b0a20202020202020202020202020207d0a2020202020202020202020202020766172206c203d20652e70343b0a2020202020202020202020202020696620286c20213d3d20766f6964203029207b0a202020202020202020202020202020207661722068203d206c203d3d202774273b0a2020202020202020202020202020202078722868293b0a20202020202020202020202020202020696620286829207b0a20202020202020202020202020202020202053722874727565293b0a202020202020202020202020202020207d0a20202020202020202020202020207d0a20202020202020202020202020207661722041203d20652e6c6566747377697463683b0a2020202020202020202020202020696620284120213d3d20766f6964203029207b0a202020202020202020202020202020205772287061727365496e74284129293b0a20202020202020202020202020207d0a20202020202020202020202020207661722070203d20652e72696768747377697463683b0a202020202020204d080220202020202020696620287020213d3d20766f6964203029207b0a202020202020202020202020202020205572287061727365496e74287029293b0a20202020202020202020202020207d0a20202020202020202020202020207661722062203d20652e73623b0a2020202020202020202020202020696620286220213d3d20766f6964203029207b0a202020202020202020202020202020205a722862203d3d20277427293b0a20202020202020202020202020207d0a20202020202020202020202020207661722067203d20652e68733b0a2020202020202020202020202020696620286720213d3d20766f6964203029207b0a2020202020202020202020202020202051722867203d3d20277427293b0a20202020202020202020202020207d0a2020202020202020202020207d0a202020202020202020207d292863293b0a20202020202020202020696620286529207b0a2020202020202020202020205772286e293b0a20202020202020202020202055722872293b0a202020202020202020207d0a20202020202020202020636f6e736f6c652e6c6f67282746696e616c2076616c7565733a27293b0a20202020202020202020636f6e736f6c652e6c6f67282720205469746c653a202573272c204c722829293b0a20202020202020202020636f6e736f6c652e6c6f672827202053697a653a202564272c2049722829293b0a204d0802202020202020202020636f6e736f6c652e6c6f67282720204469676573743a202573272c2063293b0a20202020202020202020636f6e736f6c652e6c6f6728272020547970653a202564272c2043722829293b0a20202020202020202020636f6e736f6c652e6c6f6728272020506f6b65793a202573272c2061722829203f20277472756527203a202766616c736527293b0a20202020202020202020636f6e736f6c652e6c6f6728272020506f6b65793435303a202573272c206f722829203f20277472756527203a202766616c736527293b0a20202020202020202020636f6e736f6c652e6c6f6728272020436f6e74726f6c6c657220313a202564272c205f722829293b0a20202020202020202020636f6e736f6c652e6c6f6728272020436f6e74726f6c6c657220323a202564272c2054722829293b0a20202020202020202020636f6e736f6c652e6c6f6728272020526567696f6e3a202573272c2069722829203d3d2031203f202750414c27203a20274e54534327293b0a20202020202020202020636f6e736f6c652e6c6f6728272020466c6167733a202564272c2067722829293b0a20202020202020202020636f6e736f6c652e6c6f67280a202020202020202020202020272020584d3a2025732c206d6f64653a202573272c0a20202020202020202020202064722829203f20277472756527203a202766616c7365272c0a4d080220202020202020202020202056722829203d3d2032203f20274175746f6d6174696327203a2056722829203f2027456e61626c656427203a202744697361626c6564270a20202020202020202020293b0a20202020202020202020636f6e736f6c652e6c6f67282720205269676874207377697463683a202564272c206d722829293b0a20202020202020202020636f6e736f6c652e6c6f67282720204c656674207377697463683a202564272c2077722829293b0a20202020202020202020636f6e736f6c652e6c6f67282720205377617020627574746f6e733a202573272c2041722829203f20277472756527203a202766616c736527293b0a20202020202020202020636f6e736f6c652e6c6f67282720204475616c20616e616c6f673a202573272c2070722829203f20277472756527203a202766616c736527293b0a20202020202020202020636f6e736f6c652e6c6f672827202048626c616e6b3a202564272c2079722829293b0a20202020202020202020636f6e736f6c652e6c6f672827202043726f73736861697220583a202564272c2046722829293b0a20202020202020202020636f6e736f6c652e6c6f672827202043726f73736861697220593a202564272c2047722829293b0a20202020202020202020636f6e736f6c652e6c6f6728272020486967682073636f7265206361727420656e61626c65643a202573272c4d08022048722829203f20277472756527203a202766616c736527293b0a20202020202020202020507428276f6e4361727472696467654c6f61646564272c2069293b0a202020202020202020202866756e6374696f6e202829207b0a202020202020202020202020666f7220287661722074203d20303b2074203c2075752e6c656e6774683b20742b2b29207b0a202020202020202020202020202075755b745d203d20303b0a2020202020202020202020207d0a202020202020202020202020476628293b0a2020202020202020202020206475203d20747275653b0a2020202020202020202020207375203d2066616c73653b0a2020202020202020202020206675203d2066616c73653b0a202020202020202020207d2928293b0a20202020202020202020766428293b0a202020202020202020206a6f2866756e6374696f6e202829207b0a202020202020202020202020507428276f6e456d756c6174696f6e53746172746564272c206e756c6c293b0a2020202020202020202020206964203d2066616c73653b0a202020202020202020202020786428293b0a2020202020202020202020207661722074203d20446174652e6e6f7728293b0a2020202020202020202020207661722065203d20303b0a202020202020202020202020766172206e203d20516f28293b0a2020202020202020202020207661722072203d203130202a206e4d08023b0a2020202020202020202020207661722063203d20316533202f206e3b0a2020202020202020202020207661722069203d2063202a206e202a20323b0a2020202020202020202020207661722061203d20556f3b0a202020202020202020202020766172206f203d205a6f3b0a2020202020202020202020207661722073203d20303b0a2020202020202020202020207661722066203d20303b0a2020202020202020202020206c662862722829293b0a202020202020202020202020636f6e736f6c652e6c6f6728274672616d65207469636b733a2027202b2063293b0a202020202020202020202020636f6e736f6c652e6c6f6728274672657175656e63793a2027202b206e293b0a2020202020202020202020207661722075203d2066756e6374696f6e202829207b0a20202020202020202020202020206966202861282929207b0a20202020202020202020202020202020696620286f282929207b0a20202020202020202020202020202020202073657454696d656f75742866756e6374696f6e202829207b0a20202020202020202020202020202020202020204164203d20747275653b0a2020202020202020202020202020202020202020706428752c2074727565293b0a2020202020202020202020202020202020207d2c20313030293b0a202020202020202020202020202020207d20656c7365207b0a202020202020204d08022020202020202020202020717528293b0a2020202020202020202020202020202020204a75286c64293b0a202020202020202020202020202020202020696620287564203d3d2030207c7c2073203e3d20756429207b0a20202020202020202020202020202020202020204b7528293b0a2020202020202020202020202020202020207d0a202020202020202020202020202020202020696620282b2b73203e3d20646429207b0a202020202020202020202020202020202020202073203d20303b0a2020202020202020202020202020202020207d0a202020202020202020202020202020202020587528293b0a20202020202020202020202020202020202064202b3d20633b0a202020202020202020202020202020202020766172206c203d20446174652e6e6f7728293b0a2020202020202020202020202020202020206966202864202b2069203c206c207c7c20416429207b0a20202020202020202020202020202020202020204164203d2066616c73653b0a202020202020202020202020202020202020202064203d206c3b0a202020202020202020202020202020202020202065203d20303b0a202020202020202020202020202020202020202074203d206c3b0a202020202020202020202020202020202020202066203d20303b0a2020202020202020202020202020202020202020636f6e736f6c652e6c6f67282761646a4d08027573746564206e6578742074696d657374616d702e27293b0a2020202020202020202020202020202020207d0a2020202020202020202020202020202020207661722068203d2064202d206c3b0a20202020202020202020202020202020202066202b3d20683b0a2020202020202020202020202020202020206966202868203e203029207b0a202020202020202020202020202020202020202073657454696d656f75742866756e6374696f6e202829207b0a20202020202020202020202020202020202020202020706428752c2074727565293b0a20202020202020202020202020202020202020207d2c2068293b0a2020202020202020202020202020202020207d20656c7365207b0a2020202020202020202020202020202020202020706428752c2066616c7365293b0a2020202020202020202020202020202020207d0a202020202020202020202020202020202020696620282b2b6520252072203d3d203029207b0a20202020202020202020202020202020202020207661722041203d20446174652e6e6f772829202d20743b0a2020202020202020202020202020202020202020696620286f6429207b0a20202020202020202020202020202020202020202020636f6e736f6c652e6c6f67280a20202020202020202020202020202020202020202020202027763a25732c207673796e633a2025642c20257374696d65723a4d08022025642c207773796e633a2025642c2025642c2073746c3a2025642c206d61723a2025642c206370753a2025642c206578743a202564272c0a20202020202020202020202020202020202020202020202028316533202f202841202f206529292e746f46697865642832292c0a2020202020202020202020202020202020202020202020207364203f2031203a20302c0a2020202020202020202020202020202020202020202020207364203f202727203a2027776169743a2027202b20282866202f206529202a206e292e746f4669786564283229202b20272c20272c0a2020202020202020202020202020202020202020202020204a742025203165332c0a202020202020202020202020202020202020202020202020302c0a2020202020202020202020202020202020202020202020204f6f2c0a202020202020202020202020202020202020202020202020302c0a202020202020202020202020202020202020202020202020466f2c0a202020202020202020202020202020202020202020202020476f2c0a202020202020202020202020202020202020202020202020506f0a20202020202020202020202020202020202020202020293b0a20202020202020202020202020202020202020207d0a202020202020202020202020202020202020202074203d20446174652e6e6f7728293b0a2020202020202020202020202020204d0802202020202065203d20303b0a202020202020202020202020202020202020202066203d20303b0a2020202020202020202020202020202020207d0a202020202020202020202020202020207d0a20202020202020202020202020207d0a2020202020202020202020207d3b0a2020202020202020202020207661722064203d20446174652e6e6f772829202b20633b0a20202020202020202020202073657454696d656f75742866756e6374696f6e202829207b0a2020202020202020202020202020706428752c2074727565293b0a2020202020202020202020207d2c2063293b0a202020202020202020207d293b0a20202020202020207d0a202020202020202066756e6374696f6e2067642829207b0a2020202020202020202069662028616429207b0a2020202020202020202020204d642861642c2074727565293b0a202020202020202020207d0a20202020202020207d0a202020202020202066756e6374696f6e204d6428742c206529207b0a202020202020202020206966202821696429207b0a2020202020202020202020206964203d20747275653b0a20202020202020202020202069662028556f282929207b0a2020202020202020202020202020576f28293b0a2020202020202020202020207d0a20202020202020202020202069662028216d6429207b0a20202020202020202020202020205274280a2020202020204d080220202020202020202020286d64203d206e6577206a7428276f6e456d756c6174696f6e53746172746564272c2066756e6374696f6e202829207b0a202020202020202020202020202020202020547328293b0a202020202020202020202020202020202020696620282163642e636c6173734c6973742e636f6e7461696e7328276a73373830305f5f6c6f676f2d2d68696465272929207b0a202020202020202020202020202020202020202063642e636c6173734c6973742e61646428276a73373830305f5f6c6f676f2d2d6869646527293b0a202020202020202020202020202020202020202063642e636c6173734c6973742e72656d6f766528276a73373830305f5f6c6f676f2d2d73686f7727293b0a202020202020202020202020202020202020202073657454696d656f75742866756e6374696f6e202829207b0a2020202020202020202020202020202020202020202063642e7374796c652e646973706c6179203d20276e6f6e65273b0a20202020202020202020202020202020202020207d2c20316533293b0a2020202020202020202020202020202020207d0a202020202020202020202020202020207d29290a2020202020202020202020202020293b0a2020202020202020202020207d0a20202020202020202020202073657454696d656f75742866756e6374696f6e202829207b0a202020202020202020202020204d080220626428742c2065293b0a2020202020202020202020207d2c20323030293b0a202020202020202020207d0a20202020202020207d0a202020202020202066756e6374696f6e20766428742c206529207b0a202020202020202020206966202821686429207b0a2020202020202020202020206864203d20747275653b0a2020202020202020202020202866756e6374696f6e20287429207b0a20202020202020202020202020207661722065203d20646f63756d656e742e676574456c656d656e74427949642874293b0a202020202020202020202020202069662028216529207b0a202020202020202020202020202020207468726f772027556e61626c6520746f2066696e6420656c656d656e7420776974682069643a2027202b20743b0a20202020202020202020202020207d0a2020202020202020202020202020282475203d20646f63756d656e742e637265617465456c656d656e7428276469762729292e636c6173734e616d65203d2024752e6964203d20276a7337383030273b0a2020202020202020202020202020652e617070656e644368696c64282475293b0a2020202020202020202020202020766172206e203d20646f63756d656e742e637265617465456c656d656e74282764697627293b0a20202020202020202020202020206e2e6964203d20276a73373830305f5f66756c6c73637265656e2d636f6e7461694d08026e6572273b0a202020202020202020202020202024752e617070656e644368696c64286e293b0a2020202020202020202020202020287464203d20646f63756d656e742e637265617465456c656d656e7428276469762729292e6964203d2074642e636c6173734e616d65203d0a20202020202020202020202020202020276a73373830305f5f696e6e65722d636f6e7461696e6572273b0a20202020202020202020202020206e2e617070656e644368696c64287464293b0a20202020202020202020202020207661722072203d20646f63756d656e742e637265617465456c656d656e74282764697627293b0a2020202020202020202020202020722e636c6173734e616d65203d20276a73373830305f6e6f73656c656374273b0a202020202020202020202020202074642e617070656e644368696c642872293b0a2020202020202020202020202020286e64203d20646f63756d656e742e637265617465456c656d656e74282763616e7661732729292e6964203d206e642e636c6173734e616d65203d0a20202020202020202020202020202020276a73373830305f5f73637265656e273b0a20202020202020202020202020206e642e7769647468203d2074733b0a20202020202020202020202020206e642e686569676874203d2069733b0a2020202020202020202020202020722e617070656e644368696c64286e64293b0a204d080220202020202020202020202020286364203d20646f63756d656e742e637265617465456c656d656e7428276469762729292e6964203d2063642e636c6173734e616d65203d0a20202020202020202020202020202020276a73373830305f5f6c6f676f273b0a202020202020202020202020202074642e617070656e644368696c64286364293b0a20202020202020202020202020207661722063203d20646f63756d656e742e637265617465456c656d656e742827696d6727293b0a2020202020202020202020202020632e737263203d0a2020202020202020202020202020202027646174613a696d6167652f706e673b6261736536342c6956424f5277304b47676f414141414e5355684555674141415a41414141437643414d414141446b4f6e67794141414141334e435356514943416a6234552f6741414142446c424d5645582f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f38392f663639666235382f5434372b2f3236757630357562793565587834654c763364377431396a71303954713064506f7a73376d7963766b7863626876384867764c33657562766474626262734c5059724b335870367256704b62546e364c546e7144516d3533506c706e4e6b35584c6a70484a6934334b69343348686f6e4767344d08025845666f4c43656e33416548752f64586d396358533862584737613236335a476932595753315857477a576c327856466d76553169755556537353314372534579705255716f5245696d5145536c4f30436a4f5479694e446d674d6a69654d544f644b692b624a79756149796d5a495357594953615848794f5647694354466871534568695144784f5044524b4e43412b4d4267714c4167694a41414f45414142374141424b6e61466241414141576e5253546c4d414553497a5246566d6434695a7172764d3365372f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2b6f78425965414141414358424957584d414143345941414175474145717169636741414141494852465748525462325a30643246795a51424e59574e796232316c5a476c6849455a70636d563362334a726379424e574c75524b6951414142676553555242564869633756335a577473363179627a374a56434b4642436d4765365732695a436756616f4355346e754b783933386a763578597369614877483636762f394137316d4476537a7231527131724d374d4b43676f4b43676f4b43676f4b43676f4b43676f4b43676f4b43676f4b43676f4b43676f4b434d0802676f4b43676f4b43676f4b43676f4b43676f4b43676f4b43676f4b43676f4b43676f4b43676f4b43676f4b43676f4b43676f4b43676f4b43676f4b43676f4b43676f4b43676f4b43676f4b436a385030432b574b6b316d69304e6f645673314372462f4254336c437131657231657135594c75656d66457439524b78656e76434e35554c6c63596d346f564b5a42616249514b51716c636e4933756c772b43586e364765567353564f4e55554152335671734e6747677337793274624f3374373235756a514c6f44557168596b444839307a7437433432476b44744f716c5352636e373946416438792b583179636238667979314e79556f78765136685434366e434e47674b51725436354a65717456674a364c33455552615a537a4b463161596149346332464849564e4c5064772f50375a39734e516f5441746670337033744c364955793536794533713937644848664835696d2f757637385759485774574a45317973417977646e5039344d7441645437656e4f77756731615a51517a5433732f7558643363584f774156386d4d467a6839764a2b50487a3455364e546c7a2b392b516b4731616947774b4e3436766949536269342f7273394371384f3956684539507953572f5631765a413239665072777752683733507a7174696759724a77394f4748714f625a6b44424e4f794853384d7262756a4a6443453059784731494433482b4d08022b48596567366a6d3037777944796e383937364f4c4d77525871304e36377464465468714d372f43677776323043314637556b6a7073366c486f2b32483074416f312f4773462b70452f4757473058452b4662412f47516e37336f4a72787046774c746e2b6a3955676b4245486f393839576f4d5670667847752f6953582f4e6d6552496a2b3068673565482f756b4a4a73337269524e366143686d6b486b58335a4530597a4d3170754a31626b572f54567738692f5759566d55543632437342685077787336696b6d5767503357364339594f6f717342663541794f2b497767336f55782b2f756e78492b5a67325575596b436f635272347845684947363544787943616352543433442b69393349763336554a4943446b506b372b486d354d496558426647434d2f35324558566d36524c68675a463969686437454164585956463571772f52774e4465346d7777723938316d7051636731595055783876696e47475951336978794c387368447976685542396672337665457554655145676556694d48432f4748433570554c61747748456c6d7772416a617873613943312f6a5a4467456a37373258534d52325076517976506a4b5a3945586f3848636e462f5a356b66677374394a68414b74364b6e4233325a59565a75677431664c6b6558574843583056494452356f49526367693478793041747471534464693437702b4f437645574d08024936522b655272552b2b534866524332687061464b4339342b796852544430414d667a532f50423753764d782b44784a39414d35755231724a48575562625757692b675a42576a375a4574745868687a69572b44334d477151646661566636363852306e2f327a416e714d515a617862647444657449435a624d554b596579644348305438634977575976592b794834505536674a6157597a6b6b66476e4c77373345707631476b494b38496b574d67693351664b38356f4974563544784848796b596f472f35304f736c3639426f786c454e31686a6937426f5a61326a456442694f6d4b73566c35725030545a444d616a51497730705738304d314f477134432b4e2f79576d4a765845464b4247385a6768686353743537546473497353614e6c7377596b59506c726845774a7730513274446f65395a772b6b592f52304c64707a39364532386c38784979635146332b547657355a34652b31486d6577354d385053474e6a736d732f654654572b4c6f34484f4968326b6d6f4f3752766345636d66722f4e534678744e57442f476832663051762b42786b745949564944366e426c2b6a7755746d30597032705835325a6b5a62443567343141773274495351357a386867597348706476706a78484f5137544e6b425869723272436b3470776874564964344d456c4558586f79396b6a503864495962702b4c346a476e77397649315670494d08024943773565463649452b32794a443338794b414f6a484476306c6b4358744254686d375967526e6f34745277574f7a722f474f443037505432397752726733422b6659487a354f7438596a2b45725a347951776773466c434a634a49535977383862493277642f2f523948592f6563526253742f7150434e47647348397a3878773667685a59666c656245426879597042545347794331724864462f6d494358385167725078744e2f35374a58753431683068536b4162574139516e7a52474d6d73776a316e336278374d56756e43416d36304971686f61543564346a313230413046763962516e54504f7067486d442b79505a3452492f6f4d75527238436c3479574b4f4c72584231764f437263506d696955766b48386e7935386169786130417931305a7a5543755745416f6a7146743437413250496479675742637357352b634c6a677858492b43464545525969336b55787973516276766d50505972692f736576356a77677868745948614a544c44566878485036507754585574634d70444e5a49557641345770783570464a5442584b7851656949623561446e5a417636614434557a41334c5a6f513376546c595638496e364a443454495a4963686d616e435046364870395442522f7730684a693456565742586d41656b355442725469302f326f6d6e7251592f77696b4d566777394f685656704a532b4f49462f4a315a6e47454d08024c34616c6f4a4c675568775930675245344969746f58686c684a77364f45787239426947356276433178483344775759656e496666486d4a422f6f696c6e4631332b47386e4b775a704162436273314763534942744a3367674c737530467764784d4a4b545737754f58495947736251724a656759684b424d694951484a582f344349596239394d51626b2f4173645672436f764a76416672542b4f634530536167642f6b2b72594977506a4f64364b366244464b33636533464a4d6e366c495330566e324a4543465a7a794a6b7074587a54444948356239467943445950764f357951712f5975746346453046436c2b324a4a6d7359626d42353067536a64676f4e4a5a6330594d597075763751346e69444a2f6663646b685654657848783853773247456c304c4f4d6f6d517547356969454c4f65514f5a53556874727039345650632b4d58525445354b7848784b496c54334867483365512f7658324c42573459344c464530554e31304c79393059424f373931613030546e59574154344c51594368652f376a3166656e774257444c2b54433246556231303377337a365377675a4a3171636a704149334f48494f442f65774544465a7a79536b416e696475772f74367573497562695862517665584e384c32514e796f51754f773036774e5677593178447a476c4e696a65452f775277666753492b77727365697659376b6a6835674f4d08024a596542437147337277744e6c47346346325877796730644a6e567931564e776e585a7247326b5752394f6b496138376875596f59724857783978475239476b4a657153485a652b71582f47614535533044664f565342434f34685659706c79756a5549387a5a79614b6d7354616d783765674659746f5469353677783537554843524975462b4f684172567975512b664a35786c782b7250733074633238447862396a78686c7954725578475330376277793976574c507a47526a30363453374d4a4b5465776373436d6546582b5a424357596f4b3948782b5970446f616d50326d56756c526e6939414a6f476937656363644b6a4734414c77574a352f575472716f4c38432b385662464f6b304c4348692b4e354b4d4b5378797563366130784c31654145327a7934686a76432f34485474616e49715149703367556356787946715953713979464759526f71344c774b516e4a51426c75684b6b4d7479446548413134537850715a33763735326241656d6b39484853674c646f664a43574a417572776b797478494b50512f53775167745a6c347041726b68516a2f4d536b613152424e7a7742574d506c4563746234535a6841694856314735476e7746496d64456163736c364669487051493377494846792f34715175414446725637446657725834306474384977595468434741657462444432306c6b4262736e6b3163332b546f6e4d08026d6344664e623750377846522f306f5279434446386a30535242634d55346b6361436e62714e5a754d64446e594d49566d665145687a4364644e6b4e746f4e75594d496f524c316a4d494b6341483745387464356e734376304c51716f53425546724a52353244646163435a737979636974714c384935635947333438524c317679386b32524c2b745858356a7837326d435847762f35704e505a49736f4d354a4c545a347a6d4b73575570754a62412b625a3263545174564e6b497571464f454b2f7a4f345a714e6e4f53456c37523132646f5a50724e792f49515170534d425046556d4b713742344c3761504d48514d2f4f6a624c467134326947765a365a5052547456654f5456776243454a4354384a3132564a666a4768787232594a3779366e48644a426b5a636e6d6c4764676d357362696b765673516b6f6f6f456d456846666f54796b2f746a6e504a4f735351764b6c4f73796e3752477054763062516d514b51765a426b582b426a31596b5a68466b5574326f76774f7449744c634c33784f5956754c365275686c49463349674d682b54503964646f5743433747636c616f695559716c48427368422f52564b54783634425031724d4a71633332536552386749513046323053424c504a756b424971614842335036414e4243342b6d79445850746d516d4946345366474446624a555049316d44393873444d715475626735314d080246626935734c53386867634839304839763074762f7069385950726577504457706b5168455736527a31647130566c786a76754d78616875386b54667a476d707473516c717248764869335762734e32394a6d736a7572504f45494f58597533684b397949483054377858502b4345496d43474e344446545a57414f612f79796f5a4d5961504b4e30657a586f4a726e6b4e384f366f57536c4d7335666f5048656f65465862466f7867754a30617754776359596e443055594556556a686b33574b45445a484b615446677247444b7342484970564e31686c436d6a4d4e4f4c44434d5056796576516a3366642f4f79457944324a4542796e565465686475304a5352326249656a72706148486a596a6c6457526a2b64347151665071693252672b7a564a4f7537556870456668626b70494761365443544b5374557746544679796e6b6c49716841346e577831765454716f6f55776844527169456e614b65712b73354261754c635449764d676a6a6d484c58554633703150366c77306a47466b484942576a416e6830784366446c4c52656e375a5a41312f74576c4331766e367a4344635436656f50716354363738376d6f74304b355a50316a4d4a616379546567394b6d6d49687454543659486657475549414e694b626d686264393376553237365a6b427a4b2f5551464f634f69713944744d38385659526865644e4f4259764576454c4d0802496845724b5845714b5266584c4c57527974494d6f7363736c36466945356a565151624f7339376e6967306e39714f437768376439554f786a4b784e78564f744a2b4d79465679596145355855312f4e64314c784269587050504973316f304955476642644d3167316a736a3639326d52744375454735554d4b63434a554f5671394e45646a6b76557351754a51412b6375654b4d786253786964395a5a5174616f736355747938744d6f655774684d673853467a30473873757761715171412b475952416756385a57546f4a6844385373776674424c526f5546722b734963377a664c7175633971754547554636647652645a4d765366786653514e684e6c6e504971524b437257786652713767476f614344504a4f6b33494f6e776b597a4f73304474377879655262794e45356b454730665a3446486c596344672b644376736e7830636e6a397a626b5833683074705751356a2b497461373549305434526c4c3664686235353661667a335959387332635969715a73673831324c5557326b5856707373703546534e707667757743455549433949414f533168437670436d4f57643431594d575736703549794579447a4a772b2b3378704e54686c692b2f3238475875626861337a6e6c47516d665949385055706e4573414c33776d366c785466634d586c474f67473078446f5a4f2b6d7a7350586c7a767a38664164686c6b773875374d08024f655155676544744b3679524952736f664e45624f7a7a684a436b746268307a494133385831526b4b71736a302b76484e64674b314953414d4f6f466e4b3530744e7448684e3772614472764274455630366162775874712f4d5a2b36484a4f4d6d6f78504b7831526d514357693576505455372f6666304c34395a756b2f306e6b4e5a47514d6e79624b4d524d49692b426b4133594a4b703468344c4d764c442f2f685a43704171434970617867427263427878627752564f66527077792f375273416537596c4e45576c7a4d69527675686e747879336433306356467358324e44684e713762547678585247474349513067306d576338677045344b784b77516777696864745a5a516d6166453455336778314e61484a394779457942596d4c446b6d7730654e58764f577434425766537a646c45756a656c54433937684e702f3678775877324d336d546a6937425253626648696d455a3874375956726457684a695968664e4d6253396d454e4c69333449486e61787a6563684230686c68754f61734d4f5676496b537149476134506c5a5353576d507a684c535467734d2b39645059574d2b3345376550713939454f6250637471536a7345765745566162594f7676707642467637346a3671625a49424a3175574578485754463736446f4a4a31746e54536749646b6863556466474a54335273496b53714968784d71716c4b4851624d0802714f5a6b592b6d6d3837656234584d6e7258374978754b626249384b6c485059436768416253516f692f7338343330746f36416337645a756936535261595a46314f53455573392f43676b6e573264444a716768304e4549553658624748362f57453544534a67735352393367416b683475397946644364563376376a31613172586768505267386346614457614d48736c43612b2f774c732b727753365a364959737445416c5062782f427055663265396f777664786678776636584a757077515361444267307257755770764263365449465150662f4b642b573868524b6f676a74564a676b58524a6945627330526b70793244424d484a706642647378344d50766557753464707a7a35426e44314974733131623369327672793864796457304f4b694a3361666164306b453353794c69556b7032322f6d42705a777955635066506c6436316a342b5555375169644536386d4a4164645555474d694551567463347a543469426f7159715a764e4d334e553633424c4e757536455139734a58463259585751633630314a6136397568793636777865334b57333766546f3536586159615a6b3079414548644c4c4f454a4c616f4453587a524c4337414b7968425454546b4c586d6d4e6e2f51324553425845386b6b63565a3056647252526d4c554b3865456a2b527073694779693935645a414e4f79684152774d5037654931654252304d0802477034756459347245526249736f39596d4e34586e6336524e594970577353776d68643555464956696a30353131596365513975746e7246392f50534653443249456438526979687965376a7262414d306d774f35774b505956486947724f6e5872394d67346f6b78357967394b454b796752773559614336536e592f683534314e427364344e38314b6b3355704963336c4952626966474a6c624a356771744b64645947512b41794a73514444436c614150547668745952494653533268566873624254454c776d482f76663958752f674a6842333255312f58644c626c6f57344151735a783062376564723262794f384961736c7270736b507a736d6a443876777741777547325344454b6f316541386738594b61567445794c6147653633344a6f64713674654465386176763571516e4e595664754e516f74462f6c307256784c33323065456a67544d4d416f6b4e476a375041686e67697868616f2b2b68696d4a4864786173634955456c3657303434664f3755636f7779582b57357173797767707737664534686a384676776f6a3032655333337a495853646142324c2b50563974717a2f536b4b7149496c4442387748474a4c537958673055674d2f2f7343704d57396e37765979694c765152712f5a67456670557954794c394d4b587470764d714372582b4f31526d6b5053645a6c684e535a66704d634a77516e346d6d794c694d0802476b6c4b346e744d4b6f2f64375845694a5845477534534e32626834316f79732f2f34686d32765356743667577668342b4a686b2f376b61486832764e553474316a2b3030594e425a77624a456d367a4a4374445853622b4973383939634d66324d5768596849372b65474330556f4c3736614130437551634a72786e74723848567441596f58764a6659363176434356373663574f76347a586452564f706f674544437661537255336e396b5a456f5075572f696133435168684b6f4e73513252796244493968644f316d5745784f3350536234556d3153697136386b42436d494a456b337777314763654e544d71623679486b514c2f6e2b714d4b57302b59743453734379657a75703953333447454b447448365379652b5449346d4d53536e6b6c434e5047526e58554a492b6f57376b58367152776b35356e66577061326b715638334175704c2b6c6353557046356b46476d786c78576843566e4f6b5a307a2f75416c31457646434e69396b4878374e4962672f505753302f526f337567587176654759694256497130696b435364516b68564e3145647668502b754567336c6d58392f6253667632414c49375845534c334948476d786e3366585961754e65476b7058532b417051786b713849746964306e6736536f34506f4d5a6167363037574b6a31386e714e644e393176736951654530522f594a416b36794968756251546d4b4d0802705a707144696869525a6c784d53753033732f6d33693131394869447a45537374594b5371772b4f76464138774d4d374a57714167496469504a3934485531626641377569556f5465636f434f4745665866737a456c365a6551485946422f78306e3679496878625434492f757748533054556c644a4975754d7a78486f66503369546433764f57315a6f69436a4d79636b773271664265476b4d387a6976717a626566714e6172446c5a633676626b6666674e3968713044587a505473794f4d38644267625439564e694e646d6b446279344a31316b5a4271566a38636d535779535a7673724763644845447964655458653638374f41432f766b7842714449576a554954316e36476b6841676d5333546a6651443775445147717a6f38684e2b6a454551484c4d484e435a4457726958477a70446436504c7473624d6576717069526c73796f367270444f4d635275385345697a532b6f6d2f7272737a644e50643549322b4b77767147692f6a71503531784169397941442f30664761625656674f30374c354a2b554f364559662f54484e5346465439334755717965634f4a6e74616c4a3171574e4468324a5332723859476633424762635664386c42526c486534544469774e4a65764a46556b4f33746f4a3841396e49304c6978757a6b6c3648344658574d4d6b6f4e6b6975695553694843456c2b73487a3234494135793856584a764d08026b754967534c6635455170434434576872527276513871706c52625264575433393759654461566c4b6c74717a346a4f74417639715a68595a3453452b78425a763349644a6b616f5a6a5a624b4f32786d303578757763684f454e6e754845376b58432f77486e4358343863636648782f323534663830466e592b524f4f72346a38392f4673742f622f4a43654f2f666b324971514d442b5358472b6e5a61486b34774664457737677076776733354a597465704b525830386535306652754f737a506b675a5837737a6d5a4363746f454853794f795a6d56724c526c627451587431582b75486933584778383137726e57722b766a7a586e5136764b446b574f397568314767544f7173356957375556422f33674247706b4871316330575030574e2f6950763056426a496568636459566a326d7577383742336868484b784c726a394363323939504c6a6b6339615272533466346c74575231326c515172727970646a7348424168383068494564614f69464447794456674e7847322b326c38436d3452567647315234737967306a50314f7248335430427954697a6b4376465a394333463374622b346448523464375737335261667a3163756252374c466564542f653942312f644d4b652b5843364e51764e5359645535366f614c42356550646c656649646e2f6272596e5965577548696247675835325a686c2b704c3478567230447a4d08024748725a65465644676878637862386f7930654930553642386d616b694f7566666c5556456f6c4b76782f3159522f7763433866395838654c2f514a47506a2f436636323773374f317572533667753271544b42384e72747741655064686652766473626259526f544c434d7a6e63775238677871354a7364656b36507665617551374674792f4b5554727558666d6236567751755468652f503552476d2f5a383943755661593751436d7658716450386453423766306170584d2f3576446755464251554642515546425155464251554642515546425155464251554642515546425155464251554642515546425155464251554642515546425155464251554642515546425155464251554642515546425155464251554642515546425155464251554642515546425155464259582f4a663450633744575639375461565541414141415355564f524b35435949493d273b0a2020202020202020202020202020632e616c74203d202741746172692037383030273b0a2020202020202020202020202020632e636c6173734e616d65203d2027617461726937383030273b0a202020202020202020202020202063642e617070656e644368696c642863293b0a2020202020202020202020202020287264203d20646f63756d656e742e637265617465456c656d656e7428276469762729292e6964203d2072642e636c6173734e616d65204d08023d0a20202020202020202020202020202020276a73373830305f5f636f6e74726f6c73273b0a20202020202020202020202020206e2e617070656e644368696c64287264293b0a2020202020202020202020207d292874293b0a2020202020202020202020206f64203d2066616c73653b0a202020202020202020202020696620286520262620652e646562756729207b0a20202020202020202020202020206f64203d20652e64656275673b0a2020202020202020202020207d0a20202020202020202020202050742827696e6974272c207b0a202020202020202020202020202063616e7661733a206e642c0a20202020202020202020202020206d61696e436f6e7461696e65723a2024752c0a2020202020202020202020202020696e6e6572436f6e7461696e65723a2074642c0a2020202020202020202020202020636f6e74726f6c734469763a2072642c0a20202020202020202020202020206b6579626f617264446174613a206c642c0a2020202020202020202020202020526567696f6e3a20612c0a202020202020202020202020202064656275673a206f642c0a2020202020202020202020207d293b0a2020202020202020202020206564203d20646f63756d656e742e637265617465456c656d656e74282764697627293b0a20202020202020202020202063642e617070656e644368696c64286564293b0a20202020204d080220202020202020447328293b0a20202020202020202020202063642e636c6173734c6973742e61646428276a73373830305f5f6c6f676f2d2d73686f7727293b0a2020202020202020202020205274286e6577206a74282772657374617274272c20676429293b0a202020202020202020207d0a20202020202020207d0a202020202020202066756e6374696f6e204c64287429207b0a20202020202020202020743b0a20202020202020207d0a202020202020202066756e6374696f6e204964287429207b0a20202020202020202020507428276869676853636f726543616c6c6261636b4368616e676564272c2074293b0a20202020202020207d0a202020202020202066756e6374696f6e2043642829207b0a2020202020202020202072657475726e2073643b0a20202020202020207d0a202020202020202066756e6374696f6e204564287429207b0a202020202020202020207364203d20743b0a20202020202020207d0a202020202020202066756e6374696f6e2053642829207b0a2020202020202020202072657475726e20747275653b0a20202020202020207d0a202020202020202066756e6374696f6e2078642829207b0a2020202020202020202069662028516f2829203d3d20363029207b0a2020202020202020202020207377697463682028666429207b0a20202020202020202020202020206361736520303a0a204d08022020202020202020202020202020207564203d20303b0a202020202020202020202020202020206464203d20303b0a20202020202020202020202020202020627265616b3b0a20202020202020202020202020206361736520313a0a202020202020202020202020202020207564203d20313b0a202020202020202020202020202020206464203d20343b0a20202020202020202020202020202020627265616b3b0a20202020202020202020202020206361736520323a0a202020202020202020202020202020207564203d20313b0a202020202020202020202020202020206464203d20323b0a20202020202020202020202020202020627265616b3b0a20202020202020202020202020206361736520333a0a202020202020202020202020202020207564203d20333b0a202020202020202020202020202020206464203d20343b0a2020202020202020202020207d0a202020202020202020207d20656c7365207b0a2020202020202020202020207377697463682028666429207b0a20202020202020202020202020206361736520303a0a202020202020202020202020202020207564203d20303b0a202020202020202020202020202020206464203d20303b0a20202020202020202020202020202020627265616b3b0a20202020202020202020202020206361736520313a0a202020202020202020202020202020207564203d4d080220313b0a202020202020202020202020202020206464203d20353b0a20202020202020202020202020202020627265616b3b0a20202020202020202020202020206361736520323a0a202020202020202020202020202020207564203d20313b0a202020202020202020202020202020206464203d20323b0a20202020202020202020202020202020627265616b3b0a20202020202020202020202020206361736520333a0a202020202020202020202020202020207564203d20343b0a202020202020202020202020202020206464203d20353b0a2020202020202020202020207d0a202020202020202020207d0a20202020202020202020636f6e736f6c652e6c6f6728275570646174656420736b697020636f756e743a2027202b207564202b20272c2027202b206464293b0a20202020202020207d0a202020202020202066756e6374696f6e2044642829207b0a2020202020202020202072657475726e20303b0a20202020202020207d0a202020202020202066756e6374696f6e204e642829207b0a2020202020202020202072657475726e2066643b0a20202020202020207d0a202020202020202066756e6374696f6e205f64287429207b0a202020202020202020206664203d20743b0a20202020202020202020786428293b0a20202020202020207d0a202020202020202066756e6374696f6e2054642829207b0a202020204d080220202020202072657475726e20586f28293b0a20202020202020207d0a202020202020202066756e6374696f6e206b64287429207b0a2020202020202020202072657475726e20716f2874293b0a20202020202020207d0a20202020202020206e2e722865293b0a20202020202020207661722072203d207b7d3b0a20202020202020206e2e722872293b0a20202020202020206e2e6428722c2027736574506172656e744576656e7473272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e204f743b0a20202020202020207d293b0a20202020202020206e2e6428722c20274c697374656e6572272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e206a743b0a20202020202020207d293b0a20202020202020206e2e6428722c20276164644c697374656e6572272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e2052743b0a20202020202020207d293b0a20202020202020206e2e6428722c2027666972654576656e74272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e2050743b0a20202020202020207d293b0a20202020202020207661722063203d207b7d3b0a20202020202020206e2e722863293b0a20202020202020206e2e6428632c2027436c656172524f4d272c2066756e6374696f6e20284d080229207b0a2020202020202020202072657475726e204a653b0a20202020202020207d293b0a20202020202020206e2e6428632c20275772697465524f4d272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e2056653b0a20202020202020207d293b0a20202020202020206e2e6428632c20275772697465272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e2059653b0a20202020202020207d293b0a20202020202020206e2e6428632c202752656164272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e2051653b0a20202020202020207d293b0a20202020202020206e2e6428632c2027526561644d61726961272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e2048653b0a20202020202020207d293b0a20202020202020206e2e6428632c20275265736574272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e2055653b0a20202020202020207d293b0a20202020202020206e2e6428632c202772616d272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e204e653b0a20202020202020207d293b0a20202020202020206e2e6428632c2027726f6d272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e204d08025f653b0a20202020202020207d293b0a20202020202020206e2e6428632c20276d6172696152616d272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e2054653b0a20202020202020207d293b0a20202020202020207661722069203d207b7d3b0a20202020202020206e2e722869293b0a20202020202020206e2e6428692c2027476574436172747269646765584d272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e2075723b0a20202020202020207d293b0a20202020202020206e2e6428692c2027476574526567696f6e272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e2069723b0a20202020202020207d293b0a20202020202020206e2e6428692c2027497342616e6b73657473272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e206c723b0a20202020202020207d293b0a20202020202020206e2e6428692c2027497348616c7442616e6b656452616d272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e2068723b0a20202020202020207d293b0a20202020202020206e2e6428692c20274973506f6b6579456e61626c6564272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e2061723b0a20202020202020207d293b0a20204d08022020202020206e2e6428692c20274973506f6b6579343530456e61626c6564272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e206f723b0a20202020202020207d293b0a20202020202020206e2e6428692c20274973506f6b6579383030456e61626c6564272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e2073723b0a20202020202020207d293b0a20202020202020206e2e6428692c20274973506f6b657957726974654f6e6c79272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e2066723b0a20202020202020207d293b0a20202020202020206e2e6428692c20274973586d456e61626c6564272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e2064723b0a20202020202020207d293b0a20202020202020206e2e6428692c2027497353776170427574746f6e73272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e2041723b0a20202020202020207d293b0a20202020202020206e2e6428692c202749734475616c416e616c6f67272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e2070723b0a20202020202020207d293b0a20202020202020206e2e6428692c202749734c6967687447756e456e61626c6564272c2066756e634d080274696f6e202829207b0a2020202020202020202072657475726e2062723b0a20202020202020207d293b0a20202020202020206e2e6428692c2027476574466c616773272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e2067723b0a20202020202020207d293b0a20202020202020206e2e6428692c202747657448626c616e6b272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e2079723b0a20202020202020207d293b0a20202020202020206e2e6428692c20274765744c656674537769746368272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e2077723b0a20202020202020207d293b0a20202020202020206e2e6428692c20274765745269676874537769746368272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e206d723b0a20202020202020207d293b0a20202020202020206e2e6428692c2027476574446967657374272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e204d723b0a20202020202020207d293b0a20202020202020206e2e6428692c20275365745469746c65272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e2076723b0a20202020202020207d293b0a20202020202020206e2e6428692c2027476574544d080269746c65272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e204c723b0a20202020202020207d293b0a20202020202020206e2e6428692c202747657453697a65272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e2049723b0a20202020202020207d293b0a20202020202020206e2e6428692c202747657454797065272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e2043723b0a20202020202020207d293b0a20202020202020206e2e6428692c202753657454797065272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e2045723b0a20202020202020207d293b0a20202020202020206e2e6428692c2027536574506f6b6579272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e2053723b0a20202020202020207d293b0a20202020202020206e2e6428692c2027536574506f6b6579343530272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e2078723b0a20202020202020207d293b0a20202020202020206e2e6428692c202753657442616e6b73657473426567696e272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e2071723b0a20202020202020207d293b0a20202020202020206e2e6428692c4d0802202747657442616e6b73657473426567696e272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e204b723b0a20202020202020207d293b0a20202020202020206e2e6428692c202753657442616e6b73657473456e64272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e2024723b0a20202020202020207d293b0a20202020202020206e2e6428692c202747657442616e6b73657473456e64272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e2074633b0a20202020202020207d293b0a20202020202020206e2e6428692c2027536574436f6e74726f6c6c657231272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e2044723b0a20202020202020207d293b0a20202020202020206e2e6428692c2027536574436f6e74726f6c6c657232272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e204e723b0a20202020202020207d293b0a20202020202020206e2e6428692c2027476574436f6e74726f6c6c657231272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e205f723b0a20202020202020207d293b0a20202020202020206e2e6428692c2027476574436f6e74726f6c6c657232272c2066756e6374696f6e202829207b0a20202020204d0802202020202072657475726e2054723b0a20202020202020207d293b0a20202020202020206e2e6428692c2027536574526567696f6e272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e206b723b0a20202020202020207d293b0a20202020202020206e2e6428692c2027536574466c616773272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e2042723b0a20202020202020207d293b0a20202020202020206e2e6428692c2027536574586d272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e206a723b0a20202020202020207d293b0a20202020202020206e2e6428692c2027536574586d4d6f6465272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e2059723b0a20202020202020207d293b0a20202020202020206e2e6428692c2027476574586d4d6f6465272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e2056723b0a20202020202020207d293b0a20202020202020206e2e6428692c2027476574586d4d6f646544656661756c74272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e204a723b0a20202020202020207d293b0a20202020202020206e2e6428692c202753657448626c616e6b272c2066756e6374696f6e202829204d08027b0a2020202020202020202072657475726e2052723b0a20202020202020207d293b0a20202020202020206e2e6428692c202753657443726f737358272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e2050723b0a20202020202020207d293b0a20202020202020206e2e6428692c202753657443726f737359272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e204f723b0a20202020202020207d293b0a20202020202020206e2e6428692c202747657443726f737358272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e2046723b0a20202020202020207d293b0a20202020202020206e2e6428692c202747657443726f737359272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e2047723b0a20202020202020207d293b0a20202020202020206e2e6428692c20275365744475616c416e616c6f67272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e207a723b0a20202020202020207d293b0a20202020202020206e2e6428692c20275365744c656674537769746368272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e2057723b0a20202020202020207d293b0a20202020202020206e2e6428692c202753657452696768745377694d0802746368272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e2055723b0a20202020202020207d293b0a20202020202020206e2e6428692c202753657453776170427574746f6e73272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e205a723b0a20202020202020207d293b0a20202020202020206e2e6428692c20275365744869676853636f726543617274456e61626c6564272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e2051723b0a20202020202020207d293b0a20202020202020206e2e6428692c202749734869676853636f726543617274456e61626c6564272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e2048723b0a20202020202020207d293b0a20202020202020206e2e6428692c202747657443617274726964676542616e6b272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e2065633b0a20202020202020207d293b0a20202020202020206e2e6428692c20274c6f6164272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e204b6e3b0a20202020202020207d293b0a20202020202020206e2e6428692c202749734c6f61646564272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e204d08026e723b0a20202020202020207d293b0a20202020202020206e2e6428692c20275772697465272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e2074723b0a20202020202020207d293b0a20202020202020206e2e6428692c202753746f7265272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e20246e3b0a20202020202020207d293b0a20202020202020206e2e6428692c202752656c65617365272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e2072723b0a20202020202020207d293b0a20202020202020206e2e6428692c20274c6f61644869676853636f726543617274272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e2063723b0a20202020202020207d293b0a20202020202020206e2e6428692c2027497353746f726564272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e2058723b0a20202020202020207d293b0a20202020202020206e2e6428692c202753746f726542616e6b272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e2065723b0a20202020202020207d293b0a20202020202020206e2e6428692c20274341525452494447455f545950455f4e4f524d414c272c2066756e6374696f6e202829207b0a2020204d08022020202020202072657475726e20686e3b0a20202020202020207d293b0a20202020202020206e2e6428692c20274341525452494447455f545950455f4e4f524d414c5f52414d272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e20796e3b0a20202020202020207d293b0a20202020202020206e2e6428692c20274341525452494447455f545950455f535550455243415254272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e20416e3b0a20202020202020207d293b0a20202020202020206e2e6428692c20274341525452494447455f545950455f5355504552434152545f52414d272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e20626e3b0a20202020202020207d293b0a20202020202020206e2e6428692c20274341525452494447455f545950455f5355504552434152545f524f4d272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e20676e3b0a20202020202020207d293b0a20202020202020206e2e6428692c20274341525452494447455f545950455f5355504552434152545f4c41524745272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e20706e3b0a20202020202020207d293b0a20202020202020207661722061203d207b7d3b0a20202020204d08022020206e2e722861293b0a20202020202020206e2e6428612c2027524547494f4e5f4e545343272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e205a613b0a20202020202020207d293b0a20202020202020206e2e6428612c2027524547494f4e5f50414c272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e2051613b0a20202020202020207d293b0a20202020202020206e2e6428612c2027524547494f4e5f4155544f272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e2048613b0a20202020202020207d293b0a20202020202020206e2e6428612c2027524547494f4e5f50414c455454455f4e545343272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e204b613b0a20202020202020207d293b0a20202020202020206e2e6428612c2027524547494f4e5f50414c455454455f50414c272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e2024613b0a20202020202020207d293b0a20202020202020206e2e6428612c20275265736574272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e20726f3b0a20202020202020207d293b0a20202020202020206e2e6428612c20276765744e74736350616c65747465272c2066756e6374694d08026f6e202829207b0a2020202020202020202072657475726e20636f3b0a20202020202020207d293b0a20202020202020206e2e6428612c202767657450616c50616c65747465272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e20696f3b0a20202020202020207d293b0a20202020202020206e2e6428612c202767657450616c65747465496e646578272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e20616f3b0a20202020202020207d293b0a20202020202020206e2e6428612c202773657450616c65747465496e646578272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e206f6f3b0a20202020202020207d293b0a20202020202020206e2e6428612c202767657450616c65747465496e64657844656661756c74272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e20736f3b0a20202020202020207d293b0a2020202020202020766172206f203d207b7d3b0a20202020202020206e2e72286f293b0a20202020202020206e2e64286f2c2027666c6970496d616765272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e2045733b0a20202020202020207d293b0a20202020202020206e2e64286f2c2027737461727453637265656e536e6f77272c2066756e63744d0802696f6e202829207b0a2020202020202020202072657475726e2044733b0a20202020202020207d293b0a20202020202020206e2e64286f2c202741544152495f5749445448272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e2074733b0a20202020202020207d293b0a20202020202020206e2e64286f2c202741544152495f43414e5641535f484549474854272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e2069733b0a20202020202020207d293b0a20202020202020206e2e64286f2c20274e5453435f41544152495f424c49545f544f505f59272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e2065733b0a20202020202020207d293b0a20202020202020206e2e64286f2c202750414c5f41544152495f424c49545f544f505f59272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e2072733b0a20202020202020207d293b0a20202020202020206e2e64286f2c20274e5453435f41544152495f484549474854272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e206e733b0a20202020202020207d293b0a20202020202020206e2e64286f2c202750414c5f41544152495f484549474854272c2066756e6374696f6e202829207b0a20202020202020202020724d0802657475726e2063733b0a20202020202020207d293b0a20202020202020206e2e64286f2c202767657443616e766173272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e205f733b0a20202020202020207d293b0a20202020202020206e2e64286f2c202773746f7053637265656e536e6f77272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e2054733b0a20202020202020207d293b0a20202020202020206e2e64286f2c202766756c6c53637265656e272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e2048733b0a20202020202020207d293b0a20202020202020206e2e64286f2c20276578697446756c6c53637265656e272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e2056733b0a20202020202020207d293b0a20202020202020206e2e64286f2c2027697346756c6c73637265656e272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e2059733b0a20202020202020207d293b0a20202020202020206e2e64286f2c202767657446696c746572456e61626c656444656661756c74272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e206a733b0a20202020202020207d293b0a20202020202020206e2e64286f2c2027736574464d0802696c746572456e61626c6564272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e206b733b0a20202020202020207d293b0a20202020202020206e2e64286f2c2027697346696c746572456e61626c6564272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e2042733b0a20202020202020207d293b0a20202020202020206e2e64286f2c202773657453637265656e53697a65272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e2050733b0a20202020202020207d293b0a20202020202020206e2e64286f2c202767657453637265656e53697a65272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e204f733b0a20202020202020207d293b0a20202020202020206e2e64286f2c202767657453637265656e53697a6544656661756c74272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e2046733b0a20202020202020207d293b0a20202020202020206e2e64286f2c202773657453637265656e526174696f272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e2047733b0a20202020202020207d293b0a20202020202020206e2e64286f2c202767657453637265656e526174696f272c2066756e6374696f6e202829207b0a2020202020204d08022020202072657475726e207a733b0a20202020202020207d293b0a20202020202020206e2e64286f2c202767657453637265656e526174696f44656661756c74272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e2057733b0a20202020202020207d293b0a20202020202020206e2e64286f2c202767657446756c6c73637265656e4d6f646544656661756c74272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e2055733b0a20202020202020207d293b0a20202020202020206e2e64286f2c202773657446756c6c73637265656e4d6f6465272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e205a733b0a20202020202020207d293b0a20202020202020206e2e64286f2c202767657446756c6c73637265656e4d6f6465272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e2051733b0a20202020202020207d293b0a20202020202020206e2e64286f2c2027696e697450616c6574746538272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e2043733b0a20202020202020207d293b0a20202020202020207661722073203d207b7d3b0a20202020202020206e2e722873293b0a20202020202020206e2e6428732c2027697353656c656374272c2066756e6374696f6e204d08022829207b0a2020202020202020202072657475726e206a663b0a20202020202020207d293b0a20202020202020206e2e6428732c202769735265736574272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e2052663b0a20202020202020207d293b0a20202020202020206e2e6428732c202769735061757365272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e2050663b0a20202020202020207d293b0a20202020202020206e2e6428732c202769734c65667444696666536574272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e204f663b0a20202020202020207d293b0a20202020202020206e2e6428732c20276973526967687444696666536574272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e2046663b0a20202020202020207d293b0a20202020202020206e2e6428732c20277365744c65667444696666536574272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e2054663b0a20202020202020207d293b0a20202020202020206e2e6428732c2027736574526967687444696666536574272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e206b663b0a20202020202020207d293b0a20202020202020206e2e6428732c20274d08027265736574272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e2047663b0a20202020202020207d293b0a20202020202020206e2e6428732c202770314b65794d6170272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e2067663b0a20202020202020207d293b0a20202020202020206e2e6428732c202770324b65794d6170272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e2079663b0a20202020202020207d293b0a20202020202020206e2e6428732c202773657450617573654b6579272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e207a663b0a20202020202020207d293b0a20202020202020206e2e6428732c202767657450617573654b6579272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e2057663b0a20202020202020207d293b0a20202020202020206e2e6428732c202773657453656c6563744b6579272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e2055663b0a20202020202020207d293b0a20202020202020206e2e6428732c202767657453656c6563744b6579272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e205a663b0a20202020202020207d293b0a202020202020204d0802206e2e6428732c202773657452657365744b6579272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e2051663b0a20202020202020207d293b0a20202020202020206e2e6428732c202767657452657365744b6579272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e2048663b0a20202020202020207d293b0a20202020202020206e2e6428732c202764656652657365744b6579272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e2044663b0a20202020202020207d293b0a20202020202020206e2e6428732c202764656650617573654b6579272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e205f663b0a20202020202020207d293b0a20202020202020206e2e6428732c202764656653656c6563744b6579272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e2053663b0a20202020202020207d293b0a20202020202020207661722066203d207b7d3b0a20202020202020206e2e722866293b0a20202020202020206e2e6428662c20276973546f756368446576696365272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e2059663b0a20202020202020207d293b0a20202020202020206e2e6428662c202769734d6f62696c6544654d080276696365272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e2056663b0a20202020202020207d293b0a20202020202020206e2e6428662c20276973496f73446576696365272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e204a663b0a20202020202020207d293b0a20202020202020206e2e6428662c202761646450726f7073272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e2058663b0a20202020202020207d293b0a20202020202020207661722075203d207b7d3b0a20202020202020206e2e722875293b0a20202020202020206e2e6428752c2027706f6c6c272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e206e753b0a20202020202020207d293b0a20202020202020206e2e6428752c20276765744d617070696e67272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e2072753b0a20202020202020207d293b0a20202020202020207661722064203d207b7d3b0a20202020202020206e2e722864293b0a20202020202020206e2e6428642c202769735061757365427574746f6e446f776e272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e2059753b0a20202020202020207d293b0a20202020202020206e2e6428642c4d0802202767657447726f7570272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e2048753b0a20202020202020207d293b0a20202020202020206e2e6428642c2027436f6d706f6e656e74272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e2049753b0a20202020202020207d293b0a20202020202020206e2e6428642c2027427574746f6e272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e2043753b0a20202020202020207d293b0a20202020202020206e2e6428642c20276c6561646572626f617264427574746f6e272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e2057753b0a20202020202020207d293b0a20202020202020206e2e6428642c202773657474696e6773427574746f6e272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e205a753b0a20202020202020207d293b0a20202020202020206e2e6428642c202768656c70427574746f6e272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e2055753b0a20202020202020207d293b0a20202020202020206e2e6428642c20277061757365427574746f6e272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e206b753b0a20202020202020207d4d0802293b0a20202020202020206e2e6428642c2027736f756e64427574746f6e272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e2042753b0a20202020202020207d293b0a20202020202020206e2e6428642c2027636f6773496d67537263272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e206d753b0a20202020202020207d293b0a20202020202020206e2e6428642c2027696e666f496d67537263272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e204d753b0a20202020202020207d293b0a20202020202020206e2e6428642c20276d6564616c496d67537263272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e2076753b0a20202020202020207d293b0a2020202020202020766172206c203d207b7d3b0a20202020202020206e2e72286c293b0a20202020202020206e2e64286c2c2027696e6974272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e2076643b0a20202020202020207d293b0a20202020202020206e2e64286c2c20277374617274456d756c6174696f6e272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e204d643b0a20202020202020207d293b0a20202020202020206e2e64286c2c20277361766553746174654d0802272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e2054643b0a20202020202020207d293b0a20202020202020206e2e64286c2c20276c6f61645374617465272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e206b643b0a20202020202020207d293b0a20202020202020206e2e64286c2c202772657374617274272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e2067643b0a20202020202020207d293b0a20202020202020206e2e64286c2c20277365744572726f7248616e646c6572272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e204c643b0a20202020202020207d293b0a20202020202020206e2e64286c2c20277365744869676853636f726543616c6c6261636b272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e2049643b0a20202020202020207d293b0a20202020202020206e2e64286c2c20274869676853636f726543616c6c6261636b272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e2056753b0a20202020202020207d293b0a20202020202020206e2e64286c2c20276465736372697074696f6e446976272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e2065643b0a202020204d0802202020207d293b0a20202020202020206e2e64286c2c202769735673796e63456e61626c6564272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e2043643b0a20202020202020207d293b0a20202020202020206e2e64286c2c20277365745673796e63456e61626c6564272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e2045643b0a20202020202020207d293b0a20202020202020206e2e64286c2c20276765745673796e63456e61626c656444656661756c74272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e2053643b0a20202020202020207d293b0a20202020202020206e2e64286c2c2027676574536b69704c6576656c44656661756c74272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e2044643b0a20202020202020207d293b0a20202020202020206e2e64286c2c2027676574536b69704c6576656c272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e204e643b0a20202020202020207d293b0a20202020202020206e2e64286c2c2027736574536b69704c6576656c272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e205f643b0a20202020202020207d293b0a20202020202020207661722068203d207b7d3b0a20204d08022020202020206e2e722868293b0a20202020202020206e2e6428682c20274b657973272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e2042643b0a20202020202020207d293b0a20202020202020207661722041203d206e657720417272617928302c20302c2030293b0a20202020202020207661722070203d20303b0a20202020202020207661722062203d206e65772041727261792832303438293b0a20202020202020207661722067203d2033313434303b0a20202020202020207661722079203d20303b0a20202020202020207661722077203d206e657720417272617928302c20302c20302c2030293b0a2020202020202020766172206d203d206e657720417272617928302c20302c20302c2030293b0a2020202020202020766172204d203d20303b0a20202020202020207661722076203d206e657720417272617928302c20302c20302c2030293b0a2020202020202020766172204c203d206e657720417272617928312c20312c20302c20312c20312c20312c20302c20302c20302c20302c20312c20302c20312c20302c2030293b0a20202020202020207661722049203d206e6577204172726179280a20202020202020202020302c0a20202020202020202020302c0a20202020202020202020312c0a20202020202020202020312c0a20202020202020202020302c0a2020202020204d080220202020302c0a20202020202020202020302c0a20202020202020202020312c0a20202020202020202020312c0a20202020202020202020312c0a20202020202020202020312c0a20202020202020202020302c0a20202020202020202020302c0a20202020202020202020312c0a20202020202020202020302c0a20202020202020202020312c0a20202020202020202020302c0a20202020202020202020312c0a20202020202020202020312c0a20202020202020202020302c0a20202020202020202020312c0a20202020202020202020312c0a20202020202020202020312c0a20202020202020202020302c0a20202020202020202020312c0a20202020202020202020302c0a20202020202020202020302c0a20202020202020202020302c0a20202020202020202020302c0a20202020202020202020302c0a20202020202020202020310a2020202020202020293b0a20202020202020207661722043203d206e657720417272617928353131293b0a20202020202020207661722045203d206e657720417272617928313331303731293b0a20202020202020207661722053203d20303b0a20202020202020207661722078203d20303b0a20202020202020207661722044203d20303b0a2020202020202020766172204e203d20303b0a2020202020202020766172205f203d206e657720417272617928302c20302c20302c204d080230293b0a20202020202020207661722054203d206e657720417272617928302c20302c20302c2030293b0a2020202020202020766172206b203d20303b0a20202020202020207661722042203d206e657720417272617928353131293b0a2020202020202020766172206a203d206e657720417272617928313331303731293b0a20202020202020207661722052203d20303b0a20202020202020207661722050203d20303b0a2020202020202020766172204f203d20303b0a20202020202020207661722046203d20303b0a20202020202020207661722047203d20303b0a2020202020202020766172207a203d206e6577204172726179283232382c203232382c203232382c203232382c203232382c203232382c203232382c20323238293b0a20202020202020207661722057203d20303b0a20202020202020207661722055203d20303b0a2020202020202020766172205a203d20303b0a20202020202020207661722051203d206e657720417272617928312c20312c20302c2030293b0a2020202020202020636f6e7374204a203d204172726179283332293b0a2020202020202020766172206e743b0a20202020202020207661722072743b0a2020202020202020287274203d206e74207c7c20286e74203d207b7d29292e464d5f504742495453203d20393b0a202020202020202072742e464d5f524154494f42495453203d204d0802373b0a202020202020202072742e464d5f4c464f42495453203d20383b0a202020202020202072742e464d5f544c42495453203d20373b0a202020202020202072742e464d5f544c454e5453203d2031203c3c2072742e464d5f544c424954533b0a202020202020202072742e464d5f4c464f454e5453203d2031203c3c2072742e464d5f4c464f424954533b0a202020202020202072742e464d5f434c454e5453203d20383139323b0a202020202020202072742e464d5f4f5053494e42495453203d2031303b0a202020202020202072742e464d5f4f5053494e454e5453203d2031203c3c2072742e464d5f4f5053494e424954533b0a202020202020202072742e464d5f45475f424f54544f4d203d203935353b0a202020202020202072742e49533245435f5348494654203d203230202b2072742e464d5f504742495453202d2031333b0a20202020202020202866756e6374696f6e202829207b0a202020202020202020207661722074203d206e74207c7c20286e74203d207b7d293b0a202020202020202020202866756e6374696f6e20287429207b0a202020202020202020202020745b28742e747970654e203d2030295d203d2027747970654e273b0a202020202020202020202020745b28742e747970654d203d2031295d203d2027747970654d273b0a202020202020202020207d2928742e4f7054797065207c7c2028744d08022e4f7054797065203d207b7d29293b0a20202020202020202020742e4f70547970653b0a20202020202020202020742e706d7461626c653b0a20202020202020202020742e616d7461626c653b0a20202020202020202020742e7461626c656d616465203d2066616c73653b0a202020202020202020207661722065203d202866756e6374696f6e202829207b0a20202020202020202020202066756e6374696f6e20652829207b0a2020202020202020202020202020746869732e636869705f203d206e756c6c3b0a2020202020202020202020202020746869732e6f75745f203d20303b0a2020202020202020202020202020746869732e6f7574325f203d20303b0a2020202020202020202020202020746869732e696e325f203d20303b0a2020202020202020202020202020746869732e64705f203d20303b0a2020202020202020202020202020746869732e646574756e655f203d20303b0a2020202020202020202020202020746869732e646574756e65325f203d20303b0a2020202020202020202020202020746869732e6d756c7469706c655f203d20303b0a2020202020202020202020202020746869732e70675f636f756e745f203d20303b0a2020202020202020202020202020746869732e70675f646966665f203d20303b0a2020202020202020202020202020746869732e70675f646966665f6c666f5f203d20303b4d08020a2020202020202020202020202020746869732e626e5f203d20303b0a2020202020202020202020202020746869732e65675f6c6576656c5f203d20303b0a2020202020202020202020202020746869732e65675f6c6576656c5f6f6e5f6e6578745f70686173655f203d20303b0a2020202020202020202020202020746869732e65675f636f756e745f203d20303b0a2020202020202020202020202020746869732e65675f636f756e745f646966665f203d20303b0a2020202020202020202020202020746869732e65675f6f75745f203d20303b0a2020202020202020202020202020746869732e746c5f6f75745f203d20303b0a2020202020202020202020202020746869732e65675f726174655f203d20303b0a2020202020202020202020202020746869732e65675f63757276655f636f756e745f203d20303b0a2020202020202020202020202020746869732e6b65795f7363616c655f726174655f203d20303b0a2020202020202020202020202020746869732e65675f70686173655f203d20652e454750686173652e6e6578743b0a2020202020202020202020202020746869732e6d735f203d20303b0a2020202020202020202020202020746869732e746c5f203d20303b0a2020202020202020202020202020746869732e746c5f6c617463685f203d20303b0a2020202020202020202020202020746869732e61725f4d0802203d20303b0a2020202020202020202020202020746869732e64725f203d20303b0a2020202020202020202020202020746869732e73725f203d20303b0a2020202020202020202020202020746869732e736c5f203d20303b0a2020202020202020202020202020746869732e72725f203d20303b0a2020202020202020202020202020746869732e6b735f203d20303b0a2020202020202020202020202020746869732e6b65796f6e5f203d2066616c73653b0a2020202020202020202020202020746869732e616d6f6e5f203d2066616c73653b0a2020202020202020202020202020746869732e706172616d5f6368616e6765645f203d2066616c73653b0a2020202020202020202020202020746869732e6d7574655f203d2066616c73653b0a2020202020202020202020202020746869732e6462676f706f75745f203d20303b0a2020202020202020202020202020746869732e64626770676f75745f203d20303b0a20202020202020202020202020206966202821652e7461626c656861736d61646529207b0a20202020202020202020202020202020746869732e4d616b655461626c6528293b0a20202020202020202020202020207d0a2020202020202020202020202020746869732e61725f203d0a20202020202020202020202020202020746869732e64725f203d0a20202020202020202020202020202020746869732e4d080273725f203d0a20202020202020202020202020202020746869732e72725f203d0a20202020202020202020202020202020746869732e6b65795f7363616c655f726174655f203d0a202020202020202020202020202020202020303b0a2020202020202020202020202020746869732e616d735f203d20742e616d7461626c655b305d5b305d3b0a2020202020202020202020202020746869732e6d7574655f203d2066616c73653b0a2020202020202020202020202020746869732e6b65796f6e5f203d2066616c73653b0a2020202020202020202020202020746869732e746c5f6f75745f203d20303b0a2020202020202020202020202020746869732e6d756c7469706c655f203d20303b0a2020202020202020202020202020746869732e646574756e655f203d20303b0a2020202020202020202020202020746869732e646574756e65325f203d20303b0a2020202020202020202020202020746869732e6d735f203d20303b0a2020202020202020202020207d0a202020202020202020202020652e70726f746f747970652e53657443686970203d2066756e6374696f6e20287429207b0a2020202020202020202020202020746869732e636869705f203d20743b0a2020202020202020202020207d3b0a202020202020202020202020652e70726f746f747970652e5265736574203d2066756e6374696f6e202829207b0a20204d0802202020202020202020202020746869732e746c5f203d20746869732e746c5f6c617463685f203d203132373b0a2020202020202020202020202020746869732e5368696674506861736528652e454750686173652e6f6666293b0a2020202020202020202020202020746869732e65675f636f756e745f203d20303b0a2020202020202020202020202020746869732e65675f63757276655f636f756e745f203d20303b0a2020202020202020202020202020746869732e70675f636f756e745f203d20303b0a2020202020202020202020202020746869732e6f75745f203d20746869732e6f7574325f203d20303b0a2020202020202020202020202020746869732e706172616d5f6368616e6765645f203d20747275653b0a2020202020202020202020207d3b0a202020202020202020202020652e70726f746f747970652e4d616b655461626c65203d2066756e6374696f6e202829207b0a20202020202020202020202020207661722072203d20303b0a2020202020202020202020202020666f722028766172206e203d20303b206e203c203235363b206e2b2b29207b0a202020202020202020202020202020207661722063203d204d6174682e666c6f6f72284d6174682e706f7728322c203133202d206e202f2032353629293b0a2020202020202020202020202020202063203d202863202b2032292026202d343b0a202020204d0802202020202020202020202020652e636c7461626c655b722b2b5d203d20633b0a20202020202020202020202020202020652e636c7461626c655b722b2b5d203d202d633b0a20202020202020202020202020207d0a20202020202020202020202020207768696c65202872203c20742e464d5f434c454e545329207b0a20202020202020202020202020202020652e636c7461626c655b725d203d2028652e636c7461626c655b72202d203531325d202f203229207c20303b0a20202020202020202020202020202020722b2b3b0a20202020202020202020202020207d0a2020202020202020202020202020666f7220286e203d20303b206e203c20742e464d5f4f5053494e454e5453202f20323b206e2b2b29207b0a202020202020202020202020202020207661722069203d20282832202a206e202b203129202a204d6174682e504929202f20742e464d5f4f5053494e454e54533b0a202020202020202020202020202020207661722061203d20282d323536202a204d6174682e6c6f67284d6174682e73696e2869292929202f204d6174682e4c4e323b0a20202020202020202020202020202020766172206f203d204d6174682e666c6f6f722861202b20302e3529202b20313b0a20202020202020202020202020202020652e73696e657461626c655b6e5d203d2032202a206f3b0a20202020202020202020202020202020652e4d080273696e657461626c655b742e464d5f4f5053494e454e5453202f2032202b206e5d203d2032202a206f202b20313b0a20202020202020202020202020207d0a2020202020202020202020202020742e4d616b654c464f5461626c6528293b0a2020202020202020202020202020652e7461626c656861736d616465203d20747275653b0a2020202020202020202020207d3b0a202020202020202020202020652e70726f746f747970652e5365744450424e203d2066756e6374696f6e2028742c206529207b0a2020202020202020202020202020746869732e64705f203d20743b0a2020202020202020202020202020746869732e626e5f203d20653b0a2020202020202020202020202020746869732e706172616d5f6368616e6765645f203d20747275653b0a2020202020202020202020207d3b0a202020202020202020202020652e70726f746f747970652e50726570617265203d2066756e6374696f6e202829207b0a202020202020202020202020202069662028746869732e706172616d5f6368616e6765645f29207b0a2020202020202020202020202020202073776974636820280a2020202020202020202020202020202020202828746869732e706172616d5f6368616e6765645f203d2066616c7365292c0a20202020202020202020202020202020202028746869732e70675f646966665f203d0a2020202020202020204d0802202020202020202020202028746869732e64705f202b20652e64747461626c655b746869732e646574756e655f202b20746869732e626e5f5d29202a0a2020202020202020202020202020202020202020746869732e636869705f2e4765744d756c56616c756528746869732e646574756e65325f2c20746869732e6d756c7469706c655f29292c0a20202020202020202020202020202020202028746869732e70675f646966665f6c666f5f203d20746869732e70675f646966665f203e3e203131292c0a20202020202020202020202020202020202028746869732e6b65795f7363616c655f726174655f203d20746869732e626e5f203e3e202833202d20746869732e6b735f29292c0a20202020202020202020202020202020202028746869732e746c5f6f75745f203d20746869732e6d7574655f203f2031303233203a2038202a20746869732e746c5f292c0a202020202020202020202020202020202020746869732e65675f70686173655f290a2020202020202020202020202020202029207b0a2020202020202020202020202020202020206361736520652e454750686173652e61747461636b3a0a2020202020202020202020202020202020202020746869732e536574454752617465280a20202020202020202020202020202020202020202020746869732e61725f0a20202020202020202020202020202020202020204d0802202020203f204d6174682e6d696e2836332c20746869732e61725f202b20746869732e6b65795f7363616c655f726174655f290a2020202020202020202020202020202020202020202020203a20300a2020202020202020202020202020202020202020293b0a2020202020202020202020202020202020202020627265616b3b0a2020202020202020202020202020202020206361736520652e454750686173652e64656361793a0a2020202020202020202020202020202020202020746869732e536574454752617465280a20202020202020202020202020202020202020202020746869732e64725f0a2020202020202020202020202020202020202020202020203f204d6174682e6d696e2836332c20746869732e64725f202b20746869732e6b65795f7363616c655f726174655f290a2020202020202020202020202020202020202020202020203a20300a2020202020202020202020202020202020202020293b0a2020202020202020202020202020202020202020746869732e65675f6c6576656c5f6f6e5f6e6578745f70686173655f203d2038202a20746869732e736c5f3b0a2020202020202020202020202020202020202020627265616b3b0a2020202020202020202020202020202020206361736520652e454750686173652e7375737461696e3a0a2020202020202020202020202020202020202020746869732e534d08026574454752617465280a20202020202020202020202020202020202020202020746869732e73725f0a2020202020202020202020202020202020202020202020203f204d6174682e6d696e2836332c20746869732e73725f202b20746869732e6b65795f7363616c655f726174655f290a2020202020202020202020202020202020202020202020203a20300a2020202020202020202020202020202020202020293b0a2020202020202020202020202020202020202020627265616b3b0a2020202020202020202020202020202020206361736520652e454750686173652e72656c656173653a0a2020202020202020202020202020202020202020746869732e536574454752617465280a202020202020202020202020202020202020202020204d6174682e6d696e2836332c20746869732e72725f202b20746869732e6b65795f7363616c655f726174655f290a2020202020202020202020202020202020202020293b0a202020202020202020202020202020207d0a20202020202020202020202020202020746869732e616d735f203d0a202020202020202020202020202020202020742e616d7461626c655b746869732e747970655f5d5b746869732e616d6f6e5f203f2028746869732e6d735f203e3e20342920262033203a20305d3b0a20202020202020202020202020202020746869732e454755706461746528293b0a20204d08022020202020202020202020202020746869732e6462676f706f75745f203d20303b0a20202020202020202020202020207d0a2020202020202020202020207d3b0a202020202020202020202020652e70726f746f747970652e53686966745068617365203d2066756e6374696f6e20286e29207b0a202020202020202020202020202073776974636820286e29207b0a202020202020202020202020202020206361736520652e454750686173652e61747461636b3a0a20202020202020202020202020202020202069662028746869732e61725f202b20746869732e6b65795f7363616c655f726174655f203c20363229207b0a2020202020202020202020202020202020202020746869732e536574454752617465280a20202020202020202020202020202020202020202020746869732e61725f0a2020202020202020202020202020202020202020202020203f204d6174682e6d696e2836332c20746869732e61725f202b20746869732e6b65795f7363616c655f726174655f290a2020202020202020202020202020202020202020202020203a20300a2020202020202020202020202020202020202020293b0a2020202020202020202020202020202020202020746869732e65675f70686173655f203d20652e454750686173652e61747461636b3b0a2020202020202020202020202020202020202020627265616b3b0a2020204d08022020202020202020202020202020207d0a202020202020202020202020202020206361736520652e454750686173652e64656361793a0a20202020202020202020202020202020202069662028746869732e736c5f29207b0a2020202020202020202020202020202020202020746869732e65675f6c6576656c5f203d20303b0a2020202020202020202020202020202020202020746869732e65675f6c6576656c5f6f6e5f6e6578745f70686173655f203d2038202a20746869732e736c5f3b0a2020202020202020202020202020202020202020746869732e536574454752617465280a20202020202020202020202020202020202020202020746869732e64725f0a2020202020202020202020202020202020202020202020203f204d6174682e6d696e2836332c20746869732e64725f202b20746869732e6b65795f7363616c655f726174655f290a2020202020202020202020202020202020202020202020203a20300a2020202020202020202020202020202020202020293b0a2020202020202020202020202020202020202020746869732e65675f70686173655f203d20652e454750686173652e64656361793b0a2020202020202020202020202020202020202020627265616b3b0a2020202020202020202020202020202020207d0a202020202020202020202020202020206361736520652e454750686173652e737573744d080261696e3a0a202020202020202020202020202020202020746869732e65675f6c6576656c5f203d2038202a20746869732e736c5f3b0a202020202020202020202020202020202020746869732e65675f6c6576656c5f6f6e5f6e6578745f70686173655f203d20313032343b0a202020202020202020202020202020202020746869732e536574454752617465280a2020202020202020202020202020202020202020746869732e73725f203f204d6174682e6d696e2836332c20746869732e73725f202b20746869732e6b65795f7363616c655f726174655f29203a20300a202020202020202020202020202020202020293b0a202020202020202020202020202020202020746869732e65675f70686173655f203d20652e454750686173652e7375737461696e3b0a202020202020202020202020202020202020627265616b3b0a202020202020202020202020202020206361736520652e454750686173652e72656c656173653a0a202020202020202020202020202020202020696620280a2020202020202020202020202020202020202020746869732e65675f70686173655f203d3d3d20652e454750686173652e61747461636b207c7c0a2020202020202020202020202020202020202020746869732e65675f6c6576656c5f203c20742e464d5f45475f424f54544f4d0a20202020202020202020202020202020202029207b0a4d08022020202020202020202020202020202020202020746869732e65675f6c6576656c5f6f6e5f6e6578745f70686173655f203d20313032343b0a2020202020202020202020202020202020202020746869732e536574454752617465280a202020202020202020202020202020202020202020204d6174682e6d696e2836332c20746869732e72725f202b20746869732e6b65795f7363616c655f726174655f290a2020202020202020202020202020202020202020293b0a2020202020202020202020202020202020202020746869732e65675f70686173655f203d20652e454750686173652e72656c656173653b0a2020202020202020202020202020202020202020627265616b3b0a2020202020202020202020202020202020207d0a202020202020202020202020202020206361736520652e454750686173652e6f66663a0a2020202020202020202020202020202064656661756c743a0a202020202020202020202020202020202020746869732e65675f6c6576656c5f203d20742e464d5f45475f424f54544f4d3b0a202020202020202020202020202020202020746869732e65675f6c6576656c5f6f6e5f6e6578745f70686173655f203d20742e464d5f45475f424f54544f4d3b0a202020202020202020202020202020202020746869732e454755706461746528293b0a2020202020202020202020202020202020207468694d0802732e5365744547526174652830293b0a202020202020202020202020202020202020746869732e65675f70686173655f203d20652e454750686173652e6f66663b0a20202020202020202020202020207d0a2020202020202020202020207d3b0a202020202020202020202020652e70726f746f747970652e536574464e756d203d2066756e6374696f6e20287429207b0a2020202020202020202020202020746869732e64705f203d2028323034372026207429203c3c20282874203e3e2031312920262037293b0a2020202020202020202020202020746869732e626e5f203d20652e6e6f74657461626c655b2874203e3e2037292026203132375d3b0a2020202020202020202020202020746869732e706172616d5f6368616e6765645f203d20747275653b0a2020202020202020202020207d3b0a202020202020202020202020652e70726f746f747970652e4c6f67546f4c696e203d2066756e6374696f6e20286e29207b0a2020202020202020202020202020696620286e203c20742e464d5f434c454e545329207b0a2020202020202020202020202020202072657475726e20652e636c7461626c655b6e5d3b0a20202020202020202020202020207d20656c7365207b0a2020202020202020202020202020202072657475726e20303b0a20202020202020202020202020207d0a2020202020202020202020207d3b0a2020204d0802202020202020202020652e70726f746f747970652e4547557064617465203d2066756e6374696f6e202829207b0a2020202020202020202020202020746869732e65675f6f75745f203d204d6174682e6d696e28746869732e746c5f6f75745f202b20746869732e65675f6c6576656c5f2c203130323329203c3c20333b0a2020202020202020202020207d3b0a202020202020202020202020652e70726f746f747970652e536574454752617465203d2066756e6374696f6e20287429207b0a2020202020202020202020202020746869732e65675f726174655f203d20743b0a2020202020202020202020202020746869732e65675f636f756e745f646966665f203d0a20202020202020202020202020202020652e64656361797461626c65325b74203e3e20325d202a20746869732e636869705f2e476574526174696f28293b0a2020202020202020202020207d3b0a202020202020202020202020652e70726f746f747970652e454743616c63203d2066756e6374696f6e202829207b0a2020202020202020202020202020746869732e65675f636f756e745f203d2036313431203c3c20742e464d5f524154494f424954533b0a202020202020202020202020202069662028746869732e65675f70686173655f203d3d3d20652e454750686173652e61747461636b29207b0a20202020202020202020202020202020766172206e4d0802203d20652e61747461636b7461626c655b746869732e65675f726174655f5d5b37202620746869732e65675f63757276655f636f756e745f5d3b0a20202020202020202020202020202020696620286e203e3d203029207b0a202020202020202020202020202020202020746869732e65675f6c6576656c5f202d3d2031202b2028746869732e65675f6c6576656c5f203e3e206e293b0a20202020202020202020202020202020202069662028746869732e65675f6c6576656c5f203c3d203029207b0a2020202020202020202020202020202020202020746869732e5368696674506861736528652e454750686173652e6465636179293b0a2020202020202020202020202020202020207d0a202020202020202020202020202020207d0a20202020202020202020202020202020746869732e454755706461746528293b0a20202020202020202020202020207d20656c7365207b0a20202020202020202020202020202020746869732e65675f6c6576656c5f202b3d0a202020202020202020202020202020202020652e64656361797461626c65315b746869732e65675f726174655f5d5b37202620746869732e65675f63757276655f636f756e745f5d3b0a2020202020202020202020202020202069662028746869732e65675f6c6576656c5f203e3d20746869732e65675f6c6576656c5f6f6e5f6e6578745f70686173655f294d0802207b0a202020202020202020202020202020202020746869732e5368696674506861736528746869732e65675f70686173655f202b2031293b0a202020202020202020202020202020207d0a20202020202020202020202020202020746869732e454755706461746528293b0a20202020202020202020202020207d0a2020202020202020202020202020746869732e65675f63757276655f636f756e745f2b2b3b0a2020202020202020202020207d3b0a202020202020202020202020652e70726f746f747970652e454753746570203d2066756e6374696f6e202829207b0a2020202020202020202020202020746869732e65675f636f756e745f202d3d20746869732e65675f636f756e745f646966665f3b0a202020202020202020202020202069662028746869732e65675f636f756e745f203c3d203029207b0a20202020202020202020202020202020746869732e454743616c6328293b0a20202020202020202020202020207d0a2020202020202020202020207d3b0a202020202020202020202020652e70726f746f747970652e504743616c63203d2066756e6374696f6e202829207b0a20202020202020202020202020207661722074203d20746869732e70675f636f756e745f3b0a2020202020202020202020202020746869732e70675f636f756e745f202b3d20746869732e70675f646966665f3b0a202020202020204d080220202020202020746869732e64626770676f75745f203d20743b0a202020202020202020202020202072657475726e20743b0a2020202020202020202020207d3b0a202020202020202020202020652e70726f746f747970652e504743616c634c203d2066756e6374696f6e202829207b0a20202020202020202020202020207661722074203d20746869732e70675f636f756e745f3b0a2020202020202020202020202020746869732e70675f636f756e745f202b3d0a20202020202020202020202020202020746869732e70675f646966665f202b0a202020202020202020202020202020202828746869732e70675f646966665f6c666f5f202a20746869732e636869705f2e476574504d56282929203e3e2035293b0a2020202020202020202020202020746869732e64626770676f75745f203d20743b0a202020202020202020202020202072657475726e20743b0a2020202020202020202020207d3b0a202020202020202020202020652e70726f746f747970652e43616c63203d2066756e6374696f6e20286e29207b0a2020202020202020202020202020746869732e45475374657028293b0a2020202020202020202020202020746869732e6f7574325f203d20746869732e6f75745f3b0a20202020202020202020202020207661722072203d20746869732e504743616c632829203e3e20283230202b20742e464d5f50474d080242495453202d20742e464d5f4f5053494e42495453293b0a202020202020202020202020202072202b3d0a202020202020202020202020202020206e203e3e20283230202b20742e464d5f504742495453202d20742e464d5f4f5053494e42495453202d202832202b20742e49533245435f534849465429293b0a2020202020202020202020202020746869732e6f75745f203d20746869732e4c6f67546f4c696e280a20202020202020202020202020202020746869732e65675f6f75745f202b20652e73696e657461626c655b7220262028742e464d5f4f5053494e454e5453202d2031295d0a2020202020202020202020202020293b0a2020202020202020202020202020746869732e6462676f706f75745f203d20746869732e6f75745f3b0a202020202020202020202020202072657475726e20746869732e6f75745f3b0a2020202020202020202020207d3b0a202020202020202020202020652e70726f746f747970652e43616c634c203d2066756e6374696f6e20286e29207b0a2020202020202020202020202020746869732e45475374657028293b0a20202020202020202020202020207661722072203d20746869732e504743616c634c2829203e3e20283230202b20742e464d5f504742495453202d20742e464d5f4f5053494e42495453293b0a202020202020202020202020202072202b3d0a2020202020202020204d0802202020202020206e203e3e20283230202b20742e464d5f504742495453202d20742e464d5f4f5053494e42495453202d202832202b20742e49533245435f534849465429293b0a2020202020202020202020202020746869732e6f75745f203d20746869732e4c6f67546f4c696e280a20202020202020202020202020202020746869732e65675f6f75745f202b0a202020202020202020202020202020202020652e73696e657461626c655b7220262028742e464d5f4f5053494e454e5453202d2031295d202b0a202020202020202020202020202020202020746869732e616d735f5b746869732e636869705f2e476574414d4c28295d0a2020202020202020202020202020293b0a2020202020202020202020202020746869732e6462676f706f75745f203d20746869732e6f75745f3b0a202020202020202020202020202072657475726e20746869732e6f75745f3b0a2020202020202020202020207d3b0a202020202020202020202020652e70726f746f747970652e43616c634e203d2066756e6374696f6e20287429207b0a2020202020202020202020202020746869732e45475374657028293b0a20202020202020202020202020207661722065203d204d6174682e6d617828302c2031303233202d2028746869732e746c5f6f75745f202b20746869732e65675f6c6576656c5f2929203c3c20313b0a20202020202020204d080220202020202074203d2028312026207429202d20313b0a2020202020202020202020202020746869732e6f75745f203d202865202b207429205e20743b0a2020202020202020202020202020746869732e6462676f706f75745f203d20746869732e6f75745f3b0a202020202020202020202020202072657475726e20746869732e6f75745f3b0a2020202020202020202020207d3b0a202020202020202020202020652e70726f746f747970652e43616c634642203d2066756e6374696f6e20286e29207b0a2020202020202020202020202020746869732e45475374657028293b0a20202020202020202020202020207661722072203d20746869732e6f75745f202b20746869732e6f7574325f3b0a2020202020202020202020202020746869732e6f7574325f203d20746869732e6f75745f3b0a20202020202020202020202020207661722063203d20746869732e504743616c632829203e3e20283230202b20742e464d5f504742495453202d20742e464d5f4f5053494e42495453293b0a2020202020202020202020202020696620286e203c20333129207b0a2020202020202020202020202020202063202b3d0a202020202020202020202020202020202020282872203c3c202831202b20742e49533245435f53484946542929203e3e206e29203e3e0a202020202020202020202020202020202020283230202b20742e464d4d08025f504742495453202d20742e464d5f4f5053494e42495453293b0a20202020202020202020202020207d0a2020202020202020202020202020746869732e6f75745f203d20746869732e4c6f67546f4c696e280a20202020202020202020202020202020746869732e65675f6f75745f202b20652e73696e657461626c655b6320262028742e464d5f4f5053494e454e5453202d2031295d0a2020202020202020202020202020293b0a2020202020202020202020202020746869732e6462676f706f75745f203d20746869732e6f7574325f3b0a202020202020202020202020202072657475726e20746869732e6f7574325f3b0a2020202020202020202020207d3b0a202020202020202020202020652e70726f746f747970652e43616c6346424c203d2066756e6374696f6e20286e29207b0a2020202020202020202020202020746869732e45475374657028293b0a20202020202020202020202020207661722072203d20746869732e6f75745f202b20746869732e6f7574325f3b0a2020202020202020202020202020746869732e6f7574325f203d20746869732e6f75745f3b0a20202020202020202020202020207661722063203d20746869732e504743616c634c2829203e3e20283230202b20742e464d5f504742495453202d20742e464d5f4f5053494e42495453293b0a2020202020202020202020202020696620286e204d08023c20333129207b0a2020202020202020202020202020202063202b3d0a202020202020202020202020202020202020282872203c3c202831202b20742e49533245435f53484946542929203e3e206e29203e3e0a202020202020202020202020202020202020283230202b20742e464d5f504742495453202d20742e464d5f4f5053494e42495453293b0a20202020202020202020202020207d0a2020202020202020202020202020746869732e6f75745f203d20746869732e4c6f67546f4c696e280a20202020202020202020202020202020746869732e65675f6f75745f202b0a202020202020202020202020202020202020652e73696e657461626c655b6320262028742e464d5f4f5053494e454e5453202d2031295d202b0a202020202020202020202020202020202020746869732e616d735f5b746869732e636869705f2e476574414d4c28295d0a2020202020202020202020202020293b0a2020202020202020202020202020746869732e6462676f706f75745f203d20746869732e6f75745f3b0a202020202020202020202020202072657475726e20746869732e6f75745f3b0a2020202020202020202020207d3b0a202020202020202020202020652e70726f746f747970652e52657365744642203d2066756e6374696f6e202829207b0a2020202020202020202020202020746869732e6f75745f203d20746869732e6f4d08027574325f203d20303b0a2020202020202020202020207d3b0a202020202020202020202020652e70726f746f747970652e4b65794f6e203d2066756e6374696f6e202829207b0a20202020202020202020202020206966202821746869732e6b65796f6e5f29207b0a20202020202020202020202020202020746869732e6b65796f6e5f203d20747275653b0a20202020202020202020202020202020696620280a202020202020202020202020202020202020746869732e65675f70686173655f203d3d3d20652e454750686173652e6f6666207c7c0a202020202020202020202020202020202020746869732e65675f70686173655f203d3d3d20652e454750686173652e72656c656173650a2020202020202020202020202020202029207b0a202020202020202020202020202020202020746869732e5368696674506861736528652e454750686173652e61747461636b293b0a202020202020202020202020202020202020746869732e454755706461746528293b0a202020202020202020202020202020202020746869732e696e325f203d20746869732e6f75745f203d20746869732e6f7574325f203d20303b0a202020202020202020202020202020202020746869732e70675f636f756e745f203d20303b0a202020202020202020202020202020207d0a20202020202020202020202020207d0a20202020202020202020204d0802207d3b0a202020202020202020202020652e70726f746f747970652e4b65794f6666203d2066756e6374696f6e202829207b0a202020202020202020202020202069662028746869732e6b65796f6e5f29207b0a20202020202020202020202020202020746869732e6b65796f6e5f203d2066616c73653b0a20202020202020202020202020202020746869732e5368696674506861736528652e454750686173652e72656c65617365293b0a20202020202020202020202020207d0a2020202020202020202020207d3b0a202020202020202020202020652e70726f746f747970652e49734f6e203d2066756e6374696f6e202829207b0a202020202020202020202020202072657475726e20746869732e65675f70686173655f202d20652e454750686173652e6f66663b0a2020202020202020202020207d3b0a202020202020202020202020652e70726f746f747970652e5365744454203d2066756e6374696f6e20287429207b0a2020202020202020202020202020746869732e646574756e655f203d203332202a20743b0a2020202020202020202020202020746869732e706172616d5f6368616e6765645f203d20747275653b0a2020202020202020202020207d3b0a202020202020202020202020652e70726f746f747970652e536574445432203d2066756e6374696f6e20287429207b0a20202020202020202020202020204d0802746869732e646574756e65325f203d2033202620743b0a2020202020202020202020202020746869732e706172616d5f6368616e6765645f203d20747275653b0a2020202020202020202020207d3b0a202020202020202020202020652e70726f746f747970652e5365744d554c5449203d2066756e6374696f6e20287429207b0a2020202020202020202020202020746869732e6d756c7469706c655f203d20743b0a2020202020202020202020202020746869732e706172616d5f6368616e6765645f203d20747275653b0a2020202020202020202020207d3b0a202020202020202020202020652e70726f746f747970652e536574544c203d2066756e6374696f6e20287429207b0a2020202020202020202020202020746869732e746c5f203d20743b0a2020202020202020202020202020746869732e706172616d5f6368616e6765645f203d20747275653b0a2020202020202020202020207d3b0a202020202020202020202020652e70726f746f747970652e5365744152203d2066756e6374696f6e20287429207b0a2020202020202020202020202020746869732e61725f203d20743b0a2020202020202020202020202020746869732e706172616d5f6368616e6765645f203d20747275653b0a2020202020202020202020207d3b0a202020202020202020202020652e70726f746f747970652e5365744452203d2066756e4d08026374696f6e20287429207b0a2020202020202020202020202020746869732e64725f203d20743b0a2020202020202020202020202020746869732e706172616d5f6368616e6765645f203d20747275653b0a2020202020202020202020207d3b0a202020202020202020202020652e70726f746f747970652e5365745352203d2066756e6374696f6e20287429207b0a2020202020202020202020202020746869732e73725f203d20743b0a2020202020202020202020202020746869732e706172616d5f6368616e6765645f203d20747275653b0a2020202020202020202020207d3b0a202020202020202020202020652e70726f746f747970652e536574534c203d2066756e6374696f6e20287429207b0a2020202020202020202020202020746869732e736c5f203d20743b0a2020202020202020202020202020746869732e706172616d5f6368616e6765645f203d20747275653b0a2020202020202020202020207d3b0a202020202020202020202020652e70726f746f747970652e5365745252203d2066756e6374696f6e20287429207b0a2020202020202020202020202020746869732e72725f203d20743b0a2020202020202020202020202020746869732e706172616d5f6368616e6765645f203d20747275653b0a2020202020202020202020207d3b0a202020202020202020202020652e70726f746f747970652e5365744d08024b53203d2066756e6374696f6e20287429207b0a2020202020202020202020202020746869732e6b735f203d20743b0a2020202020202020202020202020746869732e706172616d5f6368616e6765645f203d20747275653b0a2020202020202020202020207d3b0a202020202020202020202020652e70726f746f747970652e536574414d4f4e203d2066756e6374696f6e20287429207b0a2020202020202020202020202020746869732e616d6f6e5f203d20743b0a2020202020202020202020202020746869732e706172616d5f6368616e6765645f203d20747275653b0a2020202020202020202020207d3b0a202020202020202020202020652e70726f746f747970652e4d757465203d2066756e6374696f6e20287429207b0a2020202020202020202020202020746869732e6d7574655f203d20743b0a2020202020202020202020202020746869732e706172616d5f6368616e6765645f203d20747275653b0a2020202020202020202020207d3b0a202020202020202020202020652e70726f746f747970652e5365744d53203d2066756e6374696f6e20287429207b0a2020202020202020202020202020746869732e6d735f203d20743b0a2020202020202020202020202020746869732e706172616d5f6368616e6765645f203d20747275653b0a2020202020202020202020207d3b0a202020202020202020202020652e4d080270726f746f747970652e4f7574203d2066756e6374696f6e202829207b0a202020202020202020202020202072657475726e20746869732e6f75745f3b0a2020202020202020202020207d3b0a202020202020202020202020652e6e6f74657461626c65203d205b0a2020202020202020202020202020302c20302c20302c20302c20302c20302c20302c20312c20322c20332c20332c20332c20332c20332c20332c20332c20342c20342c20342c20342c20342c20342c0a2020202020202020202020202020342c20352c20362c20372c20372c20372c20372c20372c20372c20372c20382c20382c20382c20382c20382c20382c20382c20392c2031302c2031312c2031312c0a202020202020202020202020202031312c2031312c2031312c2031312c2031312c2031322c2031322c2031322c2031322c2031322c2031322c2031322c2031332c2031342c2031352c2031352c0a202020202020202020202020202031352c2031352c2031352c2031352c2031352c2031362c2031362c2031362c2031362c2031362c2031362c2031362c2031372c2031382c2031392c2031392c0a202020202020202020202020202031392c2031392c2031392c2031392c2031392c2032302c2032302c2032302c2032302c2032302c2032302c2032302c2032312c2032322c2032332c2032332c0a202020202020202020202020202032332c2032332c4d08022032332c2032332c2032332c2032342c2032342c2032342c2032342c2032342c2032342c2032342c2032352c2032362c2032372c2032372c0a202020202020202020202020202032372c2032372c2032372c2032372c2032372c2032382c2032382c2032382c2032382c2032382c2032382c2032382c2032392c2033302c2033312c2033312c0a202020202020202020202020202033312c2033312c2033312c2033312c2033312c0a2020202020202020202020205d3b0a202020202020202020202020652e64747461626c65203d205b0a2020202020202020202020202020302c20302c20302c20302c20302c20302c20302c20302c20302c20302c20302c20302c20302c20302c20302c20302c20302c20302c20302c20302c20302c20302c0a2020202020202020202020202020302c20302c20302c20302c20302c20302c20302c20302c20302c20302c20302c20302c20302c20302c20322c20322c20322c20322c20322c20322c20322c20322c0a2020202020202020202020202020342c20342c20342c20342c20342c20362c20362c20362c20382c20382c20382c2031302c2031302c2031322c2031322c2031342c2031362c2031362c2031362c0a202020202020202020202020202031362c20322c20322c20322c20322c20342c20342c20342c20342c20342c20362c20362c20362c20382c20382c20382c2031302c2031302c204d080231322c2031322c0a202020202020202020202020202031342c2031362c2031362c2031382c2032302c2032322c2032342c2032362c2032382c2033322c2033322c2033322c2033322c20342c20342c20342c20342c20342c0a2020202020202020202020202020362c20362c20362c20382c20382c20382c2031302c2031302c2031322c2031322c2031342c2031362c2031362c2031382c2032302c2032322c2032342c2032362c0a202020202020202020202020202032382c2033322c2033342c2033382c2034302c2034342c2034342c2034342c2034342c20302c20302c20302c20302c20302c20302c20302c20302c20302c20302c0a2020202020202020202020202020302c20302c20302c20302c20302c20302c20302c20302c20302c20302c20302c20302c20302c20302c20302c20302c20302c20302c20302c20302c20302c20302c0a2020202020202020202020202020302c20302c20302c20302c202d322c202d322c202d322c202d322c202d322c202d322c202d322c202d322c202d342c202d342c202d342c202d342c202d342c0a20202020202020202020202020202d362c202d362c202d362c202d382c202d382c202d382c202d31302c202d31302c202d31322c202d31322c202d31342c202d31362c202d31362c202d31362c0a20202020202020202020202020202d31362c202d322c202d322c202d322c202d322c204d08022d342c202d342c202d342c202d342c202d342c202d362c202d362c202d362c202d382c202d382c202d382c0a20202020202020202020202020202d31302c202d31302c202d31322c202d31322c202d31342c202d31362c202d31362c202d31382c202d32302c202d32322c202d32342c202d32362c202d32382c0a20202020202020202020202020202d33322c202d33322c202d33322c202d33322c202d342c202d342c202d342c202d342c202d342c202d362c202d362c202d362c202d382c202d382c202d382c0a20202020202020202020202020202d31302c202d31302c202d31322c202d31322c202d31342c202d31362c202d31362c202d31382c202d32302c202d32322c202d32342c202d32362c202d32382c0a20202020202020202020202020202d33322c202d33342c202d33382c202d34302c202d34342c202d34342c202d34342c202d34342c0a2020202020202020202020205d3b0a202020202020202020202020652e64656361797461626c6531203d205b0a20202020202020202020202020205b302c20302c20302c20302c20302c20302c20302c20305d2c0a20202020202020202020202020205b302c20302c20302c20302c20302c20302c20302c20305d2c0a20202020202020202020202020205b312c20312c20312c20312c20312c20312c20312c20315d2c0a20202020202020202020202020205b312c20312c204d0802312c20312c20312c20312c20312c20315d2c0a20202020202020202020202020205b312c20312c20312c20312c20312c20312c20312c20315d2c0a20202020202020202020202020205b312c20312c20312c20312c20312c20312c20312c20315d2c0a20202020202020202020202020205b312c20312c20312c20302c20312c20312c20312c20305d2c0a20202020202020202020202020205b312c20312c20312c20302c20312c20312c20312c20305d2c0a20202020202020202020202020205b312c20302c20312c20302c20312c20302c20312c20305d2c0a20202020202020202020202020205b312c20312c20312c20302c20312c20302c20312c20305d2c0a20202020202020202020202020205b312c20312c20312c20302c20312c20312c20312c20305d2c0a20202020202020202020202020205b312c20312c20312c20312c20312c20312c20312c20305d2c0a20202020202020202020202020205b312c20302c20312c20302c20312c20302c20312c20305d2c0a20202020202020202020202020205b312c20312c20312c20302c20312c20302c20312c20305d2c0a20202020202020202020202020205b312c20312c20312c20302c20312c20312c20312c20305d2c0a20202020202020202020202020205b312c20312c20312c20312c20312c20312c20312c20305d2c0a20202020202020202020202020205b312c20302c204d0802312c20302c20312c20302c20312c20305d2c0a20202020202020202020202020205b312c20312c20312c20302c20312c20302c20312c20305d2c0a20202020202020202020202020205b312c20312c20312c20302c20312c20312c20312c20305d2c0a20202020202020202020202020205b312c20312c20312c20312c20312c20312c20312c20305d2c0a20202020202020202020202020205b312c20302c20312c20302c20312c20302c20312c20305d2c0a20202020202020202020202020205b312c20312c20312c20302c20312c20302c20312c20305d2c0a20202020202020202020202020205b312c20312c20312c20302c20312c20312c20312c20305d2c0a20202020202020202020202020205b312c20312c20312c20312c20312c20312c20312c20305d2c0a20202020202020202020202020205b312c20302c20312c20302c20312c20302c20312c20305d2c0a20202020202020202020202020205b312c20312c20312c20302c20312c20302c20312c20305d2c0a20202020202020202020202020205b312c20312c20312c20302c20312c20312c20312c20305d2c0a20202020202020202020202020205b312c20312c20312c20312c20312c20312c20312c20305d2c0a20202020202020202020202020205b312c20302c20312c20302c20312c20302c20312c20305d2c0a20202020202020202020202020205b312c20312c204d0802312c20302c20312c20302c20312c20305d2c0a20202020202020202020202020205b312c20312c20312c20302c20312c20312c20312c20305d2c0a20202020202020202020202020205b312c20312c20312c20312c20312c20312c20312c20305d2c0a20202020202020202020202020205b312c20302c20312c20302c20312c20302c20312c20305d2c0a20202020202020202020202020205b312c20312c20312c20302c20312c20302c20312c20305d2c0a20202020202020202020202020205b312c20312c20312c20302c20312c20312c20312c20305d2c0a20202020202020202020202020205b312c20312c20312c20312c20312c20312c20312c20305d2c0a20202020202020202020202020205b312c20302c20312c20302c20312c20302c20312c20305d2c0a20202020202020202020202020205b312c20312c20312c20302c20312c20302c20312c20305d2c0a20202020202020202020202020205b312c20312c20312c20302c20312c20312c20312c20305d2c0a20202020202020202020202020205b312c20312c20312c20312c20312c20312c20312c20305d2c0a20202020202020202020202020205b312c20302c20312c20302c20312c20302c20312c20305d2c0a20202020202020202020202020205b312c20312c20312c20302c20312c20302c20312c20305d2c0a20202020202020202020202020205b312c20312c204d0802312c20302c20312c20312c20312c20305d2c0a20202020202020202020202020205b312c20312c20312c20312c20312c20312c20312c20305d2c0a20202020202020202020202020205b312c20302c20312c20302c20312c20302c20312c20305d2c0a20202020202020202020202020205b312c20312c20312c20302c20312c20302c20312c20305d2c0a20202020202020202020202020205b312c20312c20312c20302c20312c20312c20312c20305d2c0a20202020202020202020202020205b312c20312c20312c20312c20312c20312c20312c20305d2c0a20202020202020202020202020205b312c20312c20312c20312c20312c20312c20312c20315d2c0a20202020202020202020202020205b322c20312c20312c20312c20322c20312c20312c20315d2c0a20202020202020202020202020205b322c20312c20322c20312c20322c20312c20322c20315d2c0a20202020202020202020202020205b322c20322c20322c20312c20322c20322c20322c20315d2c0a20202020202020202020202020205b322c20322c20322c20322c20322c20322c20322c20325d2c0a20202020202020202020202020205b342c20322c20322c20322c20342c20322c20322c20325d2c0a20202020202020202020202020205b342c20322c20342c20322c20342c20322c20342c20325d2c0a20202020202020202020202020205b342c20342c204d0802342c20322c20342c20342c20342c20325d2c0a20202020202020202020202020205b342c20342c20342c20342c20342c20342c20342c20345d2c0a20202020202020202020202020205b382c20342c20342c20342c20382c20342c20342c20345d2c0a20202020202020202020202020205b382c20342c20382c20342c20382c20342c20382c20345d2c0a20202020202020202020202020205b382c20382c20382c20342c20382c20382c20382c20345d2c0a20202020202020202020202020205b31362c2031362c2031362c2031362c2031362c2031362c2031362c2031365d2c0a20202020202020202020202020205b31362c2031362c2031362c2031362c2031362c2031362c2031362c2031365d2c0a20202020202020202020202020205b31362c2031362c2031362c2031362c2031362c2031362c2031362c2031365d2c0a20202020202020202020202020205b31362c2031362c2031362c2031362c2031362c2031362c2031362c2031365d2c0a2020202020202020202020205d3b0a202020202020202020202020652e64656361797461626c6532203d205b0a2020202020202020202020202020312c20322c20342c20382c2031362c2033322c2036342c203132382c203235362c203531322c20313032342c20323034372c20323034372c20323034372c0a2020202020202020202020202020323034372c20323034372c0a204d080220202020202020202020205d3b0a202020202020202020202020652e61747461636b7461626c65203d205b0a20202020202020202020202020205b2d312c202d312c202d312c202d312c202d312c202d312c202d312c202d315d2c0a20202020202020202020202020205b2d312c202d312c202d312c202d312c202d312c202d312c202d312c202d315d2c0a20202020202020202020202020205b342c20342c20342c20342c20342c20342c20342c20345d2c0a20202020202020202020202020205b342c20342c20342c20342c20342c20342c20342c20345d2c0a20202020202020202020202020205b342c20342c20342c20342c20342c20342c20342c20345d2c0a20202020202020202020202020205b342c20342c20342c20342c20342c20342c20342c20345d2c0a20202020202020202020202020205b342c20342c20342c202d312c20342c20342c20342c202d315d2c0a20202020202020202020202020205b342c20342c20342c202d312c20342c20342c20342c202d315d2c0a20202020202020202020202020205b342c202d312c20342c202d312c20342c202d312c20342c202d315d2c0a20202020202020202020202020205b342c20342c20342c202d312c20342c202d312c20342c202d315d2c0a20202020202020202020202020205b342c20342c20342c202d312c20342c20342c20342c202d315d2c0a202020202020204d0802202020202020205b342c20342c20342c20342c20342c20342c20342c202d315d2c0a20202020202020202020202020205b342c202d312c20342c202d312c20342c202d312c20342c202d315d2c0a20202020202020202020202020205b342c20342c20342c202d312c20342c202d312c20342c202d315d2c0a20202020202020202020202020205b342c20342c20342c202d312c20342c20342c20342c202d315d2c0a20202020202020202020202020205b342c20342c20342c20342c20342c20342c20342c202d315d2c0a20202020202020202020202020205b342c202d312c20342c202d312c20342c202d312c20342c202d315d2c0a20202020202020202020202020205b342c20342c20342c202d312c20342c202d312c20342c202d315d2c0a20202020202020202020202020205b342c20342c20342c202d312c20342c20342c20342c202d315d2c0a20202020202020202020202020205b342c20342c20342c20342c20342c20342c20342c202d315d2c0a20202020202020202020202020205b342c202d312c20342c202d312c20342c202d312c20342c202d315d2c0a20202020202020202020202020205b342c20342c20342c202d312c20342c202d312c20342c202d315d2c0a20202020202020202020202020205b342c20342c20342c202d312c20342c20342c20342c202d315d2c0a20202020202020202020202020205b342c4d080220342c20342c20342c20342c20342c20342c202d315d2c0a20202020202020202020202020205b342c202d312c20342c202d312c20342c202d312c20342c202d315d2c0a20202020202020202020202020205b342c20342c20342c202d312c20342c202d312c20342c202d315d2c0a20202020202020202020202020205b342c20342c20342c202d312c20342c20342c20342c202d315d2c0a20202020202020202020202020205b342c20342c20342c20342c20342c20342c20342c202d315d2c0a20202020202020202020202020205b342c202d312c20342c202d312c20342c202d312c20342c202d315d2c0a20202020202020202020202020205b342c20342c20342c202d312c20342c202d312c20342c202d315d2c0a20202020202020202020202020205b342c20342c20342c202d312c20342c20342c20342c202d315d2c0a20202020202020202020202020205b342c20342c20342c20342c20342c20342c20342c202d315d2c0a20202020202020202020202020205b342c202d312c20342c202d312c20342c202d312c20342c202d315d2c0a20202020202020202020202020205b342c20342c20342c202d312c20342c202d312c20342c202d315d2c0a20202020202020202020202020205b342c20342c20342c202d312c20342c20342c20342c202d315d2c0a20202020202020202020202020205b342c20342c20342c20342c204d0802342c20342c20342c202d315d2c0a20202020202020202020202020205b342c202d312c20342c202d312c20342c202d312c20342c202d315d2c0a20202020202020202020202020205b342c20342c20342c202d312c20342c202d312c20342c202d315d2c0a20202020202020202020202020205b342c20342c20342c202d312c20342c20342c20342c202d315d2c0a20202020202020202020202020205b342c20342c20342c20342c20342c20342c20342c202d315d2c0a20202020202020202020202020205b342c202d312c20342c202d312c20342c202d312c20342c202d315d2c0a20202020202020202020202020205b342c20342c20342c202d312c20342c202d312c20342c202d315d2c0a20202020202020202020202020205b342c20342c20342c202d312c20342c20342c20342c202d315d2c0a20202020202020202020202020205b342c20342c20342c20342c20342c20342c20342c202d315d2c0a20202020202020202020202020205b342c202d312c20342c202d312c20342c202d312c20342c202d315d2c0a20202020202020202020202020205b342c20342c20342c202d312c20342c202d312c20342c202d315d2c0a20202020202020202020202020205b342c20342c20342c202d312c20342c20342c20342c202d315d2c0a20202020202020202020202020205b342c20342c20342c20342c20342c20342c20342c202d4d0802315d2c0a20202020202020202020202020205b342c20342c20342c20342c20342c20342c20342c20345d2c0a20202020202020202020202020205b332c20342c20342c20342c20332c20342c20342c20345d2c0a20202020202020202020202020205b332c20342c20332c20342c20332c20342c20332c20345d2c0a20202020202020202020202020205b332c20332c20332c20342c20332c20332c20332c20345d2c0a20202020202020202020202020205b332c20332c20332c20332c20332c20332c20332c20335d2c0a20202020202020202020202020205b322c20332c20332c20332c20322c20332c20332c20335d2c0a20202020202020202020202020205b322c20332c20322c20332c20322c20332c20322c20335d2c0a20202020202020202020202020205b322c20322c20322c20332c20322c20322c20322c20335d2c0a20202020202020202020202020205b322c20322c20322c20322c20322c20322c20322c20325d2c0a20202020202020202020202020205b312c20322c20322c20322c20312c20322c20322c20325d2c0a20202020202020202020202020205b312c20322c20312c20322c20312c20322c20312c20325d2c0a20202020202020202020202020205b312c20312c20312c20322c20312c20312c20312c20325d2c0a20202020202020202020202020205b302c20302c20302c20302c20302c20302c20302c204d0802305d2c0a20202020202020202020202020205b302c20302c20302c20302c20302c20302c20302c20305d2c0a20202020202020202020202020205b302c20302c20302c20302c20302c20302c20302c20305d2c0a20202020202020202020202020205b302c20302c20302c20302c20302c20302c20302c20305d2c0a2020202020202020202020205d3b0a202020202020202020202020652e7461626c656861736d616465203d2066616c73653b0a202020202020202020202020652e73696e657461626c65203d206e65772041727261792831303234293b0a202020202020202020202020652e636c7461626c65203d206e657720417272617928742e464d5f434c454e5453293b0a202020202020202020202020652e45475068617365203d207b0a20202020202020202020202020206e6578743a20302c0a202020202020202020202020202061747461636b3a20312c0a202020202020202020202020202064656361793a20322c0a20202020202020202020202020207375737461696e3a20332c0a202020202020202020202020202072656c656173653a20342c0a20202020202020202020202020206f66663a20352c0a2020202020202020202020207d3b0a20202020202020202020202072657475726e20653b0a202020202020202020207d2928293b0a20202020202020202020742e4f70657261746f72203d20653b0a2020204d080220202020202020766172206e203d202866756e6374696f6e202829207b0a20202020202020202020202066756e6374696f6e206e2829207b0a2020202020202020202020202020746869732e6f70203d205b6e6577206528292c206e6577206528292c206e6577206528292c206e6577206528295d3b0a2020202020202020202020202020746869732e7461626c656861736d616465203d2066616c73653b0a2020202020202020202020202020746869732e6662203d20303b0a2020202020202020202020202020746869732e627566203d206e65772041727261792834293b0a2020202020202020202020202020746869732e696e6f70203d206e65772041727261792833293b0a2020202020202020202020202020746869732e6f75746f70203d206e65772041727261792833293b0a2020202020202020202020202020746869732e616c676f5f203d20303b0a2020202020202020202020202020746869732e636869705f203d206e756c6c3b0a20202020202020202020202020206966202821746869732e7461626c656861736d61646529207b0a20202020202020202020202020202020746869732e4d616b655461626c6528293b0a20202020202020202020202020207d0a2020202020202020202020202020746869732e536574416c676f726974686d2830293b0a2020202020202020202020202020746869732e706d73203d4d080220742e706d7461626c655b305d5b305d3b0a2020202020202020202020207d0a2020202020202020202020206e2e70726f746f747970652e4d616b655461626c65203d2066756e6374696f6e202829207b0a2020202020202020202020202020666f7220287661722074203d20303b2074203c2036343b20742b2b29207b0a202020202020202020202020202020206e2e6b667461626c655b745d203d20283635353336202a204d6174682e706f7728322c2074202f203736382929207c20303b0a20202020202020202020202020207d0a2020202020202020202020207d3b0a2020202020202020202020206e2e70726f746f747970652e53657443686970203d2066756e6374696f6e20287429207b0a2020202020202020202020202020746869732e636869705f203d20743b0a2020202020202020202020202020666f7220287661722065203d20303b2065203c20343b20652b2b29207b0a20202020202020202020202020202020746869732e6f705b655d2e536574436869702874293b0a20202020202020202020202020207d0a2020202020202020202020207d3b0a2020202020202020202020206e2e70726f746f747970652e5265736574203d2066756e6374696f6e202829207b0a2020202020202020202020202020666f7220287661722074203d20303b2074203c20343b20742b2b29207b0a2020202020202020202020204d080220202020746869732e6f705b745d2e526573657428293b0a20202020202020202020202020207d0a2020202020202020202020207d3b0a2020202020202020202020206e2e70726f746f747970652e50726570617265203d2066756e6374696f6e202829207b0a2020202020202020202020202020666f7220287661722065203d20303b2065203c20343b20652b2b29207b0a20202020202020202020202020202020746869732e6f705b655d2e5072657061726528293b0a20202020202020202020202020207d0a2020202020202020202020202020746869732e706d73203d20742e706d7461626c655b746869732e6f705b305d2e747970655f5d5b37202620746869732e6f705b305d2e6d735f5d3b0a202020202020202020202020202072657475726e20280a2020202020202020202020202020202028746869732e6f705b305d2e49734f6e2829207c0a20202020202020202020202020202020746869732e6f705b315d2e49734f6e2829207c0a20202020202020202020202020202020746869732e6f705b325d2e49734f6e2829207c0a20202020202020202020202020202020746869732e6f705b335d2e49734f6e28290a2020202020202020202020202020202020203f20310a2020202020202020202020202020202020203a203029207c0a2020202020202020202020202020202028746869732e6f705b305d2e6d735f204d0802260a2020202020202020202020202020202028746869732e6f705b305d2e616d6f6e5f207c7c0a20202020202020202020202020202020746869732e6f705b315d2e616d6f6e5f207c7c0a20202020202020202020202020202020746869732e6f705b325d2e616d6f6e5f207c7c0a20202020202020202020202020202020746869732e6f705b335d2e616d6f6e5f0a2020202020202020202020202020202020203f2035350a2020202020202020202020202020202020203a2037290a2020202020202020202020202020202020203f20320a2020202020202020202020202020202020203a2030290a2020202020202020202020202020293b0a2020202020202020202020207d3b0a2020202020202020202020206e2e70726f746f747970652e536574464e756d203d2066756e6374696f6e20287429207b0a2020202020202020202020202020666f7220287661722065203d20303b2065203c20343b20652b2b29207b0a20202020202020202020202020202020746869732e6f705b655d2e536574464e756d2874293b0a20202020202020202020202020207d0a2020202020202020202020207d3b0a2020202020202020202020206e2e70726f746f747970652e5365744b434b46203d2066756e6374696f6e2028742c206529207b0a20202020202020202020202020207661722072203d203139202d20282874203e3e20342920264d08022037293b0a20202020202020202020202020207661722063203d205b0a20202020202020202020202020202020353139372c20353530362c20353833332c20363138302c20363138302c20363534372c20363933372c20373334392c20373334392c20373738362c0a20202020202020202020202020202020383234392c20383734302c20383734302c20393235392c20393831302c2031303339342c0a20202020202020202020202020205d5b3135202620745d3b0a20202020202020202020202020207661722069203d202863203d20282863202b203229202f203429202a203429202a206e2e6b667461626c655b3633202620655d3b0a202020202020202020202020202069203e3e3d2031393b0a202020202020202020202020202069203c3c3d2031393b0a202020202020202020202020202069203e3e3d20723b0a20202020202020202020202020207661722061203d202874203e3e20322920262033313b0a2020202020202020202020202020746869732e6f705b305d2e5365744450424e28692c2061293b0a2020202020202020202020202020746869732e6f705b315d2e5365744450424e28692c2061293b0a2020202020202020202020202020746869732e6f705b325d2e5365744450424e28692c2061293b0a2020202020202020202020202020746869732e6f705b335d2e5365744450424e28692c2061293b0a20204d0802202020202020202020207d3b0a2020202020202020202020206e2e70726f746f747970652e4b6579436f6e74726f6c203d2066756e6374696f6e20287429207b0a202020202020202020202020202069662028312026207429207b0a20202020202020202020202020202020746869732e6f705b305d2e4b65794f6e28293b0a20202020202020202020202020207d20656c7365207b0a20202020202020202020202020202020746869732e6f705b305d2e4b65794f666628293b0a20202020202020202020202020207d0a202020202020202020202020202069662028322026207429207b0a20202020202020202020202020202020746869732e6f705b315d2e4b65794f6e28293b0a20202020202020202020202020207d20656c7365207b0a20202020202020202020202020202020746869732e6f705b315d2e4b65794f666628293b0a20202020202020202020202020207d0a202020202020202020202020202069662028342026207429207b0a20202020202020202020202020202020746869732e6f705b325d2e4b65794f6e28293b0a20202020202020202020202020207d20656c7365207b0a20202020202020202020202020202020746869732e6f705b325d2e4b65794f666628293b0a20202020202020202020202020207d0a202020202020202020202020202069662028382026207429207b0a20202020202020202020204d08022020202020746869732e6f705b335d2e4b65794f6e28293b0a20202020202020202020202020207d20656c7365207b0a20202020202020202020202020202020746869732e6f705b335d2e4b65794f666628293b0a20202020202020202020202020207d0a2020202020202020202020207d3b0a2020202020202020202020206e2e70726f746f747970652e536574416c676f726974686d203d2066756e6374696f6e20287429207b0a20202020202020202020202020207661722065203d205b0a202020202020202020202020202020205b302c20312c20312c20322c20322c20335d2c0a202020202020202020202020202020205b312c20302c20302c20312c20312c20325d2c0a202020202020202020202020202020205b312c20312c20312c20302c20302c20325d2c0a202020202020202020202020202020205b302c20312c20322c20312c20312c20325d2c0a202020202020202020202020202020205b302c20312c20322c20322c20322c20315d2c0a202020202020202020202020202020205b302c20312c20302c20312c20302c20315d2c0a202020202020202020202020202020205b302c20312c20322c20312c20322c20315d2c0a202020202020202020202020202020205b312c20302c20312c20302c20312c20305d2c0a20202020202020202020202020205d3b0a2020202020202020202020202020746869732e696e4d08026f705b305d203d20655b745d5b305d3b0a2020202020202020202020202020746869732e6f75746f705b305d203d20655b745d5b315d3b0a2020202020202020202020202020746869732e696e6f705b315d203d20655b745d5b325d3b0a2020202020202020202020202020746869732e6f75746f705b315d203d20655b745d5b335d3b0a2020202020202020202020202020746869732e696e6f705b325d203d20655b745d5b345d3b0a2020202020202020202020202020746869732e6f75746f705b325d203d20655b745d5b355d3b0a2020202020202020202020202020746869732e6f705b305d2e5265736574464228293b0a2020202020202020202020202020746869732e616c676f5f203d20743b0a2020202020202020202020207d3b0a2020202020202020202020206e2e70726f746f747970652e43616c63203d2066756e6374696f6e202829207b0a202020202020202020202020202076617220743b0a20202020202020202020202020207377697463682028746869732e616c676f5f29207b0a202020202020202020202020202020206361736520303a0a202020202020202020202020202020202020746869732e6f705b325d2e43616c6328746869732e6f705b315d2e4f75742829293b0a202020202020202020202020202020202020746869732e6f705b315d2e43616c6328746869732e6f705b305d2e4f757428294d0802293b0a20202020202020202020202020202020202074203d20746869732e6f705b335d2e43616c6328746869732e6f705b325d2e4f75742829293b0a202020202020202020202020202020202020746869732e6f705b305d2e43616c63464228746869732e6662293b0a202020202020202020202020202020202020627265616b3b0a202020202020202020202020202020206361736520313a0a202020202020202020202020202020202020746869732e6f705b325d2e43616c6328746869732e6f705b305d2e4f75742829202b20746869732e6f705b315d2e4f75742829293b0a202020202020202020202020202020202020746869732e6f705b315d2e43616c632830293b0a20202020202020202020202020202020202074203d20746869732e6f705b335d2e43616c6328746869732e6f705b325d2e4f75742829293b0a202020202020202020202020202020202020746869732e6f705b305d2e43616c63464228746869732e6662293b0a202020202020202020202020202020202020627265616b3b0a202020202020202020202020202020206361736520323a0a202020202020202020202020202020202020746869732e6f705b325d2e43616c6328746869732e6f705b315d2e4f75742829293b0a202020202020202020202020202020202020746869732e6f705b315d2e43616c632830293b0a2020202020202020202020204d080220202020202074203d20746869732e6f705b335d2e43616c6328746869732e6f705b305d2e4f75742829202b20746869732e6f705b325d2e4f75742829293b0a202020202020202020202020202020202020746869732e6f705b305d2e43616c63464228746869732e6662293b0a202020202020202020202020202020202020627265616b3b0a202020202020202020202020202020206361736520333a0a202020202020202020202020202020202020746869732e6f705b325d2e43616c632830293b0a202020202020202020202020202020202020746869732e6f705b315d2e43616c6328746869732e6f705b305d2e4f75742829293b0a20202020202020202020202020202020202074203d20746869732e6f705b335d2e43616c6328746869732e6f705b315d2e4f75742829202b20746869732e6f705b325d2e4f75742829293b0a202020202020202020202020202020202020746869732e6f705b305d2e43616c63464228746869732e6662293b0a202020202020202020202020202020202020627265616b3b0a202020202020202020202020202020206361736520343a0a202020202020202020202020202020202020746869732e6f705b325d2e43616c632830293b0a20202020202020202020202020202020202074203d20746869732e6f705b315d2e43616c6328746869732e6f705b305d2e4f75742829293b0a202020204d0802202020202020202020202020202074202b3d20746869732e6f705b335d2e43616c6328746869732e6f705b325d2e4f75742829293b0a202020202020202020202020202020202020746869732e6f705b305d2e43616c63464228746869732e6662293b0a202020202020202020202020202020202020627265616b3b0a202020202020202020202020202020206361736520353a0a20202020202020202020202020202020202074203d20746869732e6f705b325d2e43616c6328746869732e6f705b305d2e4f75742829293b0a20202020202020202020202020202020202074202b3d20746869732e6f705b315d2e43616c6328746869732e6f705b305d2e4f75742829293b0a20202020202020202020202020202020202074202b3d20746869732e6f705b335d2e43616c6328746869732e6f705b305d2e4f75742829293b0a202020202020202020202020202020202020746869732e6f705b305d2e43616c63464228746869732e6662293b0a202020202020202020202020202020202020627265616b3b0a202020202020202020202020202020206361736520363a0a20202020202020202020202020202020202074203d20746869732e6f705b325d2e43616c632830293b0a20202020202020202020202020202020202074202b3d20746869732e6f705b315d2e43616c6328746869732e6f705b305d2e4f75742829293b0a2020204d080220202020202020202020202020202074202b3d20746869732e6f705b335d2e43616c632830293b0a202020202020202020202020202020202020746869732e6f705b305d2e43616c63464228746869732e6662293b0a202020202020202020202020202020202020627265616b3b0a202020202020202020202020202020206361736520373a0a20202020202020202020202020202020202074203d20746869732e6f705b325d2e43616c632830293b0a20202020202020202020202020202020202074202b3d20746869732e6f705b315d2e43616c632830293b0a20202020202020202020202020202020202074202b3d20746869732e6f705b335d2e43616c632830293b0a20202020202020202020202020202020202074202b3d20746869732e6f705b305d2e43616c63464228746869732e6662293b0a20202020202020202020202020207d0a202020202020202020202020202072657475726e20743b0a2020202020202020202020207d3b0a2020202020202020202020206e2e70726f746f747970652e43616c634c203d2066756e6374696f6e202829207b0a202020202020202020202020202076617220743b0a202020202020202020202020202073776974636820280a2020202020202020202020202020202028746869732e636869705f2e536574504d5628746869732e706d735b746869732e636869705f2e476574504d4c4d080228295d292c20746869732e616c676f5f290a202020202020202020202020202029207b0a202020202020202020202020202020206361736520303a0a202020202020202020202020202020202020746869732e6f705b325d2e43616c634c28746869732e6f705b315d2e4f75742829293b0a202020202020202020202020202020202020746869732e6f705b315d2e43616c634c28746869732e6f705b305d2e4f75742829293b0a20202020202020202020202020202020202074203d20746869732e6f705b335d2e43616c634c28746869732e6f705b325d2e4f75742829293b0a202020202020202020202020202020202020746869732e6f705b305d2e43616c6346424c28746869732e6662293b0a202020202020202020202020202020202020627265616b3b0a202020202020202020202020202020206361736520313a0a202020202020202020202020202020202020746869732e6f705b325d2e43616c634c28746869732e6f705b305d2e4f75742829202b20746869732e6f705b315d2e4f75742829293b0a202020202020202020202020202020202020746869732e6f705b315d2e43616c634c2830293b0a20202020202020202020202020202020202074203d20746869732e6f705b335d2e43616c634c28746869732e6f705b325d2e4f75742829293b0a202020202020202020202020202020202020746869732e6f705b305d4d08022e43616c6346424c28746869732e6662293b0a202020202020202020202020202020202020627265616b3b0a202020202020202020202020202020206361736520323a0a202020202020202020202020202020202020746869732e6f705b325d2e43616c634c28746869732e6f705b315d2e4f75742829293b0a202020202020202020202020202020202020746869732e6f705b315d2e43616c634c2830293b0a20202020202020202020202020202020202074203d20746869732e6f705b335d2e43616c634c28746869732e6f705b305d2e4f75742829202b20746869732e6f705b325d2e4f75742829293b0a202020202020202020202020202020202020746869732e6f705b305d2e43616c6346424c28746869732e6662293b0a202020202020202020202020202020202020627265616b3b0a202020202020202020202020202020206361736520333a0a202020202020202020202020202020202020746869732e6f705b325d2e43616c634c2830293b0a202020202020202020202020202020202020746869732e6f705b315d2e43616c634c28746869732e6f705b305d2e4f75742829293b0a20202020202020202020202020202020202074203d20746869732e6f705b335d2e43616c634c28746869732e6f705b315d2e4f75742829202b20746869732e6f705b325d2e4f75742829293b0a202020202020202020202020202020204d08022020746869732e6f705b305d2e43616c6346424c28746869732e6662293b0a202020202020202020202020202020202020627265616b3b0a202020202020202020202020202020206361736520343a0a202020202020202020202020202020202020746869732e6f705b325d2e43616c634c2830293b0a20202020202020202020202020202020202074203d20746869732e6f705b315d2e43616c634c28746869732e6f705b305d2e4f75742829293b0a20202020202020202020202020202020202074202b3d20746869732e6f705b335d2e43616c634c28746869732e6f705b325d2e4f75742829293b0a202020202020202020202020202020202020746869732e6f705b305d2e43616c6346424c28746869732e6662293b0a202020202020202020202020202020202020627265616b3b0a202020202020202020202020202020206361736520353a0a20202020202020202020202020202020202074203d20746869732e6f705b325d2e43616c634c28746869732e6f705b305d2e4f75742829293b0a20202020202020202020202020202020202074202b3d20746869732e6f705b315d2e43616c634c28746869732e6f705b305d2e4f75742829293b0a20202020202020202020202020202020202074202b3d20746869732e6f705b335d2e43616c634c28746869732e6f705b305d2e4f75742829293b0a2020202020202020202020204d0802202020202020746869732e6f705b305d2e43616c6346424c28746869732e6662293b0a202020202020202020202020202020202020627265616b3b0a202020202020202020202020202020206361736520363a0a20202020202020202020202020202020202074203d20746869732e6f705b325d2e43616c634c2830293b0a20202020202020202020202020202020202074202b3d20746869732e6f705b315d2e43616c634c28746869732e6f705b305d2e4f75742829293b0a20202020202020202020202020202020202074202b3d20746869732e6f705b335d2e43616c634c2830293b0a202020202020202020202020202020202020746869732e6f705b305d2e43616c6346424c28746869732e6662293b0a202020202020202020202020202020202020627265616b3b0a202020202020202020202020202020206361736520373a0a20202020202020202020202020202020202074203d20746869732e6f705b325d2e43616c634c2830293b0a20202020202020202020202020202020202074202b3d20746869732e6f705b315d2e43616c634c2830293b0a20202020202020202020202020202020202074202b3d20746869732e6f705b335d2e43616c634c2830293b0a20202020202020202020202020202020202074202b3d20746869732e6f705b305d2e43616c6346424c28746869732e6662293b0a20202020202020202020204d08022020207d0a202020202020202020202020202072657475726e20743b0a2020202020202020202020207d3b0a2020202020202020202020206e2e70726f746f747970652e43616c634e203d2066756e6374696f6e20287429207b0a2020202020202020202020202020746869732e6275665b315d203d20746869732e6275665b325d203d20746869732e6275665b335d203d20303b0a2020202020202020202020202020746869732e6275665b305d203d20746869732e6f705b305d2e6f75745f3b0a2020202020202020202020202020746869732e6f705b305d2e43616c63464228746869732e6662293b0a2020202020202020202020202020746869732e6275665b746869732e6f75746f705b305d5d202b3d20746869732e6f705b315d2e43616c63280a20202020202020202020202020202020746869732e6275665b746869732e696e6f705b305d5d0a2020202020202020202020202020293b0a2020202020202020202020202020746869732e6275665b746869732e6f75746f705b315d5d202b3d20746869732e6f705b325d2e43616c63280a20202020202020202020202020202020746869732e6275665b746869732e696e6f705b315d5d0a2020202020202020202020202020293b0a20202020202020202020202020207661722065203d20746869732e6f705b335d2e6f75745f3b0a202020202020202020202020202074684d080269732e6f705b335d2e43616c634e2874293b0a202020202020202020202020202072657475726e20746869732e6275665b746869732e6f75746f705b325d5d202b20653b0a2020202020202020202020207d3b0a2020202020202020202020206e2e70726f746f747970652e43616c634c4e203d2066756e6374696f6e20287429207b0a2020202020202020202020202020746869732e636869705f2e536574504d5628746869732e706d735b746869732e636869705f2e476574504d4c28295d293b0a2020202020202020202020202020746869732e6275665b315d203d20746869732e6275665b325d203d20746869732e6275665b335d203d20303b0a2020202020202020202020202020746869732e6275665b305d203d20746869732e6f705b305d2e6f75745f3b0a2020202020202020202020202020746869732e6f705b305d2e43616c6346424c28746869732e6662293b0a2020202020202020202020202020746869732e6275665b746869732e6f75746f705b305d5d202b3d20746869732e6f705b315d2e43616c634c280a20202020202020202020202020202020746869732e6275665b746869732e696e6f705b305d5d0a2020202020202020202020202020293b0a2020202020202020202020202020746869732e6275665b746869732e6f75746f705b315d5d202b3d20746869732e6f705b325d2e43616c634c280a2020204d080220202020202020202020202020746869732e6275665b746869732e696e6f705b315d5d0a2020202020202020202020202020293b0a20202020202020202020202020207661722065203d20746869732e6f705b335d2e6f75745f3b0a2020202020202020202020202020746869732e6f705b335d2e43616c634e2874293b0a202020202020202020202020202072657475726e20746869732e6275665b746869732e6f75746f705b325d5d202b20653b0a2020202020202020202020207d3b0a2020202020202020202020206e2e70726f746f747970652e53657454797065203d2066756e6374696f6e20287429207b0a2020202020202020202020202020666f7220287661722065203d20303b2065203c20343b20652b2b29207b0a20202020202020202020202020202020746869732e6f705b655d2e747970655f203d20743b0a20202020202020202020202020207d0a2020202020202020202020207d3b0a2020202020202020202020206e2e70726f746f747970652e5365744642203d2066756e6374696f6e20287429207b0a2020202020202020202020202020746869732e6662203d206e2e66627461626c655b745d3b0a2020202020202020202020207d3b0a2020202020202020202020206e2e70726f746f747970652e5365744d53203d2066756e6374696f6e20287429207b0a2020202020202020202020202020666f7220284d08027661722065203d20303b2065203c20343b20652b2b29207b0a20202020202020202020202020202020746869732e6f705b655d2e5365744d532874293b0a20202020202020202020202020207d0a2020202020202020202020207d3b0a2020202020202020202020206e2e70726f746f747970652e4d757465203d2066756e6374696f6e20287429207b0a2020202020202020202020202020666f7220287661722065203d20303b2065203c20343b20652b2b29207b0a20202020202020202020202020202020746869732e6f705b655d2e4d7574652874293b0a20202020202020202020202020207d0a2020202020202020202020207d3b0a2020202020202020202020206e2e66627461626c65203d205b33312c20372c20362c20352c20342c20332c20322c20315d3b0a2020202020202020202020206e2e6b667461626c65203d206e6577204172726179283634293b0a20202020202020202020202072657475726e206e3b0a202020202020202020207d2928293b0a20202020202020202020742e4368616e6e656c34203d206e3b0a202020202020202020207661722072203d202866756e6374696f6e202829207b0a20202020202020202020202066756e6374696f6e20652829207b0a2020202020202020202020202020746869732e726174696f5f203d20303b0a2020202020202020202020202020746869732e616d6c5f203d4d080220303b0a2020202020202020202020202020746869732e706d6c5f203d20303b0a2020202020202020202020202020746869732e706d765f203d20303b0a2020202020202020202020207d0a202020202020202020202020652e70726f746f747970652e536574526174696f203d2066756e6374696f6e20287429207b0a202020202020202020202020202074203d204d6174682e726f756e642874293b0a202020202020202020202020202069662028746869732e726174696f5f20213d3d207429207b0a20202020202020202020202020202020746869732e726174696f5f203d20743b0a20202020202020202020202020202020746869732e4d616b655461626c6528293b0a20202020202020202020202020207d0a2020202020202020202020207d3b0a202020202020202020202020652e70726f746f747970652e536574414d4c203d2066756e6374696f6e20286529207b0a2020202020202020202020202020746869732e616d6c5f203d206520262028742e464d5f4c464f454e5453202d2031293b0a2020202020202020202020207d3b0a202020202020202020202020652e70726f746f747970652e536574504d4c203d2066756e6374696f6e20286529207b0a2020202020202020202020202020746869732e706d6c5f203d206520262028742e464d5f4c464f454e5453202d2031293b0a2020202020202020202020207d4d08023b0a202020202020202020202020652e70726f746f747970652e536574504d56203d2066756e6374696f6e20287429207b0a2020202020202020202020202020746869732e706d765f203d20743b0a2020202020202020202020207d3b0a202020202020202020202020652e70726f746f747970652e4765744d756c56616c7565203d2066756e6374696f6e2028742c206529207b0a202020202020202020202020202072657475726e20746869732e6d756c7461626c655f5b745d5b655d3b0a2020202020202020202020207d3b0a202020202020202020202020652e70726f746f747970652e476574414d4c203d2066756e6374696f6e202829207b0a202020202020202020202020202072657475726e20746869732e616d6c5f3b0a2020202020202020202020207d3b0a202020202020202020202020652e70726f746f747970652e476574504d4c203d2066756e6374696f6e202829207b0a202020202020202020202020202072657475726e20746869732e706d6c5f3b0a2020202020202020202020207d3b0a202020202020202020202020652e70726f746f747970652e476574504d56203d2066756e6374696f6e202829207b0a202020202020202020202020202072657475726e20746869732e706d765f3b0a2020202020202020202020207d3b0a202020202020202020202020652e70726f746f747970652e4765745261744d0802696f203d2066756e6374696f6e202829207b0a202020202020202020202020202072657475726e20746869732e726174696f5f3b0a2020202020202020202020207d3b0a202020202020202020202020652e70726f746f747970652e4d616b655461626c65203d2066756e6374696f6e202829207b0a2020202020202020202020202020766172206e3b0a20202020202020202020202020207661722072203d205b312c20312e3431342c20312e3538312c20312e3733325d3b0a2020202020202020202020202020746869732e6d756c7461626c655f203d206e65772041727261792834293b0a2020202020202020202020202020666f7220287661722065203d20303b2065203c20343b20652b2b29207b0a202020202020202020202020202020207661722063203d0a20202020202020202020202020202020202028725b655d202a20746869732e726174696f5f29202f0a2020202020202020202020202020202020202831203c3c202832202b20742e464d5f524154494f42495453202d20742e464d5f50474249545329293b0a20202020202020202020202020202020746869732e6d756c7461626c655f5b655d203d206e6577204172726179283136293b0a20202020202020202020202020202020666f7220286e203d20303b206e203c2031363b206e2b2b29207b0a2020202020202020202020202020202020207661722069204d08023d206e203f2032202a206e203a20313b0a202020202020202020202020202020202020746869732e6d756c7461626c655f5b655d5b6e5d203d202869202a206329207c20303b0a202020202020202020202020202020207d0a20202020202020202020202020207d0a2020202020202020202020207d3b0a20202020202020202020202072657475726e20653b0a202020202020202020207d2928293b0a20202020202020202020742e43686970203d20723b0a20202020202020202020742e4d616b654c464f5461626c65203d2066756e6374696f6e202829207b0a2020202020202020202020206966202821742e7461626c656d61646529207b0a202020202020202020202020202076617220653b0a2020202020202020202020202020742e7461626c656d616465203d20747275653b0a2020202020202020202020202020766172206e203d205b0a202020202020202020202020202020205b0a202020202020202020202020202020202020302c0a20202020202020202020202020202020202031202f203336302c0a20202020202020202020202020202020202032202f203336302c0a20202020202020202020202020202020202033202f203336302c0a20202020202020202020202020202020202034202f203336302c0a20202020202020202020202020202020202036202f203336302c0a20202020202020202020202020204d0802202020203132202f203336302c0a2020202020202020202020202020202020203234202f203336302c0a202020202020202020202020202020205d2c0a202020202020202020202020202020205b0a202020202020202020202020202020202020302c0a20202020202020202020202020202020202031202f203438302c0a20202020202020202020202020202020202032202f203438302c0a20202020202020202020202020202020202034202f203438302c0a2020202020202020202020202020202020203130202f203438302c0a2020202020202020202020202020202020203230202f203438302c0a2020202020202020202020202020202020203830202f203438302c0a202020202020202020202020202020202020313430202f203438302c0a202020202020202020202020202020205d2c0a20202020202020202020202020205d3b0a20202020202020202020202020207661722072203d205b0a202020202020202020202020202020205b33312c20362c20342c20335d2c0a202020202020202020202020202020205b33312c20322c20312c20305d2c0a20202020202020202020202020205d3b0a2020202020202020202020202020742e706d7461626c65203d206e65772041727261792832293b0a2020202020202020202020202020742e616d7461626c65203d206e65772041727261792832293b0a202020202020204d080220202020202020666f7220287661722063203d20303b2063203c20323b20632b2b29207b0a20202020202020202020202020202020742e706d7461626c655b635d203d206e65772041727261792838293b0a20202020202020202020202020202020666f72202865203d20303b2065203c20383b20652b2b29207b0a2020202020202020202020202020202020207661722069203d206e5b635d5b655d3b0a202020202020202020202020202020202020742e706d7461626c655b635d5b655d203d206e657720417272617928742e464d5f4c464f454e5453293b0a202020202020202020202020202020202020666f7220287661722061203d20303b2061203c20742e464d5f4c464f454e54533b20612b2b29207b0a20202020202020202020202020202020202020204d6174682e706f77280a20202020202020202020202020202020202020202020322c0a202020202020202020202020202020202020202020202869202a202832202a2061202d20742e464d5f4c464f454e5453202b20312929202f2028742e464d5f4c464f454e5453202d2031290a2020202020202020202020202020202020202020293b0a2020202020202020202020202020202020202020766172206f203d0a20202020202020202020202020202020202020202020302e36202a2069202a204d6174682e73696e282832202a2061202a204d6174682e504929204d08022f20742e464d5f4c464f454e545329202b20313b0a2020202020202020202020202020202020202020742e706d7461626c655b635d5b655d5b615d203d20283635353336202a20286f202d20312929207c20303b0a2020202020202020202020202020202020207d0a202020202020202020202020202020207d0a20202020202020202020202020202020742e616d7461626c655b635d203d206e65772041727261792834293b0a20202020202020202020202020202020666f72202865203d20303b2065203c20343b20652b2b29207b0a202020202020202020202020202020202020742e616d7461626c655b635d5b655d203d206e657720417272617928742e464d5f4c464f454e5453293b0a202020202020202020202020202020202020666f72202861203d20303b2061203c20742e464d5f4c464f454e54533b20612b2b29207b0a2020202020202020202020202020202020202020742e616d7461626c655b635d5b655d5b615d203d202832202a20282834202a206129203e3e20725b635d5b655d2929203c3c20323b0a2020202020202020202020202020202020207d0a202020202020202020202020202020207d0a20202020202020202020202020207d0a2020202020202020202020207d0a202020202020202020207d3b0a20202020202020207d2928293b0a20202020202020202866756e6374696f6e202829207b0a20204d080220202020202020207661722074203d206e74207c7c20286e74203d207b7d293b0a202020202020202020207661722065203d202866756e6374696f6e202829207b0a20202020202020202020202066756e6374696f6e20742829207b0a2020202020202020202020202020746869732e4f504d5f4c464f454e5453203d203531323b0a2020202020202020202020202020746869732e7265677463203d20303b0a2020202020202020202020202020746869732e7265677461203d206e65772041727261792832293b0a2020202020202020202020202020746869732e74696d657261203d20303b0a2020202020202020202020202020746869732e74696d6572615f636f756e74203d20303b0a2020202020202020202020202020746869732e74696d657262203d20303b0a2020202020202020202020202020746869732e74696d6572625f636f756e74203d20303b0a2020202020202020202020202020746869732e74696d65725f73746570203d20303b0a2020202020202020202020207d0a202020202020202020202020742e70726f746f747970652e5265736574203d2066756e6374696f6e202829207b0a2020202020202020202020202020746869732e74696d6572615f636f756e74203d20303b0a2020202020202020202020202020746869732e74696d6572625f636f756e74203d20303b0a2020202020202020202020207d4d08023b0a202020202020202020202020742e70726f746f747970652e53657454696d6572436f6e74726f6c203d2066756e6374696f6e20287429207b0a20202020202020202020202020207661722065203d20746869732e7265677463205e20743b0a2020202020202020202020202020746869732e7265677463203d20743b0a20202020202020202020202020206966202831362026207429207b0a20202020202020202020202020202020746869732e52657365745374617475732831293b0a20202020202020202020202020207d0a20202020202020202020202020206966202833322026207429207b0a20202020202020202020202020202020746869732e52657365745374617475732832293b0a20202020202020202020202020207d0a202020202020202020202020202069662028312026206529207b0a20202020202020202020202020202020746869732e74696d6572615f636f756e74203d203120262074203f20746869732e74696d657261203a20303b0a20202020202020202020202020207d0a202020202020202020202020202069662028322026206529207b0a20202020202020202020202020202020746869732e74696d6572625f636f756e74203d203220262074203f20746869732e74696d657262203a20303b0a20202020202020202020202020207d0a2020202020202020202020207d3b0a20202020202020204d080220202020742e70726f746f747970652e53657454696d657241203d2066756e6374696f6e2028742c206529207b0a2020202020202020202020202020746869732e72656774615b31202620745d203d20653b0a2020202020202020202020202020766172206e203d2028746869732e72656774615b305d203c3c203229202b202833202620746869732e72656774615b315d293b0a2020202020202020202020202020746869732e74696d657261203d202831303234202d206e29202a20746869732e74696d65725f737465703b0a2020202020202020202020207d3b0a202020202020202020202020742e70726f746f747970652e53657454696d657242203d2066756e6374696f6e20287429207b0a2020202020202020202020202020746869732e74696d657262203d2028323536202d207429202a20746869732e74696d65725f737465703b0a2020202020202020202020207d3b0a202020202020202020202020742e70726f746f747970652e436f756e74203d2066756e6374696f6e20287429207b0a20202020202020202020202020207661722065203d2066616c73653b0a202020202020202020202020202069662028746869732e74696d6572615f636f756e7429207b0a20202020202020202020202020202020746869732e74696d6572615f636f756e74202d3d2074203c3c2031363b0a20202020202020202020202020204d0802202069662028746869732e74696d6572615f636f756e74203c3d203029207b0a20202020202020202020202020202020202065203d20747275653b0a202020202020202020202020202020202020666f722028746869732e54696d65724128293b20746869732e74696d6572615f636f756e74203c3d20303b2029207b0a2020202020202020202020202020202020202020746869732e74696d6572615f636f756e74202b3d20746869732e74696d6572613b0a2020202020202020202020202020202020207d0a2020202020202020202020202020202020206966202834202620746869732e726567746329207b0a2020202020202020202020202020202020202020746869732e5365745374617475732831293b0a2020202020202020202020202020202020207d0a202020202020202020202020202020207d0a20202020202020202020202020207d0a202020202020202020202020202069662028746869732e74696d6572625f636f756e7429207b0a20202020202020202020202020202020746869732e74696d6572625f636f756e74202d3d2074203c3c2031323b0a2020202020202020202020202020202069662028746869732e74696d6572625f636f756e74203c3d203029207b0a202020202020202020202020202020202020666f72202865203d20747275653b20746869732e74696d6572625f636f756e74203c3d20303b4d08022029207b0a2020202020202020202020202020202020202020746869732e74696d6572625f636f756e74202b3d20746869732e74696d6572623b0a2020202020202020202020202020202020207d0a2020202020202020202020202020202020206966202838202620746869732e726567746329207b0a2020202020202020202020202020202020202020746869732e5365745374617475732832293b0a2020202020202020202020202020202020207d0a202020202020202020202020202020207d0a20202020202020202020202020207d0a202020202020202020202020202072657475726e20653b0a2020202020202020202020207d3b0a202020202020202020202020742e70726f746f747970652e4765744e6578744576656e74203d2066756e6374696f6e202829207b0a20202020202020202020202020207661722074203d202828746869732e74696d6572615f636f756e74202b20363535333529203e3e20313629202d20313b0a20202020202020202020202020207661722065203d202828746869732e74696d6572625f636f756e74202b203430393529203e3e20313229202d20313b0a202020202020202020202020202072657475726e202874203c2065203f2074203a206529202b20313b0a2020202020202020202020207d3b0a202020202020202020202020742e70726f746f747970652e53657454696d657242614d08027365203d2066756e6374696f6e20287429207b0a2020202020202020202020202020746869732e74696d65725f73746570203d202836353533366536202f207429207c20303b0a2020202020202020202020207d3b0a202020202020202020202020742e70726f746f747970652e536574537461747573203d2066756e6374696f6e20287429207b7d3b0a202020202020202020202020742e70726f746f747970652e5265736574537461747573203d2066756e6374696f6e20287429207b7d3b0a202020202020202020202020742e70726f746f747970652e54696d657241203d2066756e6374696f6e202829207b7d3b0a20202020202020202020202072657475726e20743b0a202020202020202020207d2928293b0a20202020202020202020742e54696d6572203d20653b0a20202020202020207d2928293b0a20202020202020202866756e6374696f6e202829207b0a202020202020202020207661722074203d206e74207c7c20286e74203d207b7d293b0a202020202020202020207661722065203d202866756e6374696f6e202829207b0a20202020202020202020202066756e6374696f6e206e2829207b0a2020202020202020202020202020652e63616c6c2874686973293b0a2020202020202020202020202020746869732e666d766f6c756d65203d20303b0a2020202020202020202020202020746869732e636c6f634d08026b203d20303b0a2020202020202020202020202020746869732e72617465203d20303b0a2020202020202020202020202020746869732e70636d72617465203d20303b0a2020202020202020202020202020746869732e706d64203d20303b0a2020202020202020202020202020746869732e616d64203d20303b0a2020202020202020202020202020746869732e6c666f636f756e74203d20303b0a2020202020202020202020202020746869732e6c666f64636f756e74203d20303b0a2020202020202020202020202020746869732e6c666f5f636f756e745f203d20303b0a2020202020202020202020202020746869732e6c666f5f636f756e745f646966665f203d20303b0a2020202020202020202020202020746869732e6c666f5f737465705f203d20303b0a2020202020202020202020202020746869732e6c666f5f636f756e745f707265765f203d20303b0a2020202020202020202020202020746869732e6c666f77617665666f726d203d20303b0a2020202020202020202020202020746869732e72617465726174696f203d20303b0a2020202020202020202020202020746869732e6e6f697365203d20303b0a2020202020202020202020202020746869732e6e6f697365636f756e74203d20303b0a2020202020202020202020202020746869732e6e6f69736564656c7461203d20303b0a202020202020202020204d080220202020746869732e696e746572706f6c6174696f6e203d2066616c73653b0a2020202020202020202020202020746869732e6c666f66726571203d20303b0a2020202020202020202020202020746869732e737461747573203d20303b0a2020202020202020202020202020746869732e7265673031203d20303b0a2020202020202020202020202020746869732e6b63203d206e65772041727261792838293b0a2020202020202020202020202020746869732e6b66203d206e65772041727261792838293b0a2020202020202020202020202020746869732e70616e203d206e65772041727261792838293b0a2020202020202020202020202020746869732e6368203d205b0a202020202020202020202020202020206e657720742e4368616e6e656c3428292c0a202020202020202020202020202020206e657720742e4368616e6e656c3428292c0a202020202020202020202020202020206e657720742e4368616e6e656c3428292c0a202020202020202020202020202020206e657720742e4368616e6e656c3428292c0a202020202020202020202020202020206e657720742e4368616e6e656c3428292c0a202020202020202020202020202020206e657720742e4368616e6e656c3428292c0a202020202020202020202020202020206e657720742e4368616e6e656c3428292c0a202020202020202020202020202020204d08026e657720742e4368616e6e656c3428292c0a20202020202020202020202020205d3b0a2020202020202020202020202020746869732e63686970203d206e657720742e4368697028293b0a2020202020202020202020202020746869732e6c666f5f636f756e745f203d20303b0a2020202020202020202020202020746869732e6c666f5f636f756e745f707265765f203d202d313b0a2020202020202020202020202020746869732e4275696c644c464f5461626c6528293b0a2020202020202020202020202020666f722028766172206e203d20303b206e203c20383b206e2b2b29207b0a20202020202020202020202020202020746869732e63685b6e5d2e5365744368697028746869732e63686970293b0a20202020202020202020202020202020746869732e63685b6e5d2e536574547970652831293b0a20202020202020202020202020207d0a2020202020202020202020207d0a2020202020202020202020207661722065203d20742e54696d65723b0a2020202020202020202020202866756e6374696f6e2028742c206529207b0a202020202020202020202020202066756e6374696f6e20722829207b0a20202020202020202020202020202020746869732e636f6e7374727563746f72203d20743b0a20202020202020202020202020207d0a2020202020202020202020202020666f722028766172206e20696e2065294d0802207b0a2020202020202020202020202020202069662028652e6861734f776e50726f7065727479286e2929207b0a202020202020202020202020202020202020745b6e5d203d20655b6e5d3b0a202020202020202020202020202020207d0a20202020202020202020202020207d0a2020202020202020202020202020722e70726f746f74797065203d20652e70726f746f747970653b0a2020202020202020202020202020742e70726f746f74797065203d206e6577207228293b0a2020202020202020202020207d29286e2c2065293b0a2020202020202020202020206e2e70726f746f747970652e496e6974203d2066756e6374696f6e2028742c206529207b0a20202020202020202020202020206966202821746869732e5365745261746528742c20652929207b0a2020202020202020202020202020202072657475726e2066616c73653b0a20202020202020202020202020207d0a2020202020202020202020202020746869732e526573657428293b0a2020202020202020202020202020746869732e536574566f6c756d652830293b0a2020202020202020202020202020746869732e5365744368616e6e656c4d61736b2830293b0a202020202020202020202020202072657475726e20747275653b0a2020202020202020202020207d3b0a2020202020202020202020206e2e70726f746f747970652e53657452617465204d08023d2066756e6374696f6e2028742c206529207b0a2020202020202020202020202020746869732e636c6f636b203d20743b0a2020202020202020202020202020746869732e70636d72617465203d20653b0a2020202020202020202020202020746869732e72617465203d20653b0a2020202020202020202020202020746869732e52656275696c6454696d655461626c6528293b0a202020202020202020202020202072657475726e20747275653b0a2020202020202020202020207d3b0a2020202020202020202020206e2e70726f746f747970652e5365744368616e6e656c4d61736b203d2066756e6374696f6e20287429207b0a2020202020202020202020202020666f7220287661722065203d20303b2065203c20383b20652b2b29207b0a20202020202020202020202020202020746869732e63685b655d2e4d75746528212128742026202831203c3c20652929293b0a20202020202020202020202020207d0a2020202020202020202020207d3b0a2020202020202020202020206e2e70726f746f747970652e5265736574203d2066756e6374696f6e202829207b0a2020202020202020202020202020666f7220287661722074203d20303b2074203c203235363b20742b2b29207b0a20202020202020202020202020202020746869732e53657452656728742c2030293b0a20202020202020202020202020207d0a2020204d08022020202020202020202020746869732e5365745265672832352c20313238293b0a2020202020202020202020202020652e70726f746f747970652e52657365742e63616c6c2874686973293b0a2020202020202020202020202020746869732e737461747573203d20303b0a2020202020202020202020202020746869732e6e6f697365203d2031323334353b0a2020202020202020202020202020746869732e6e6f697365636f756e74203d20303b0a2020202020202020202020202020666f72202874203d20303b2074203c20383b20742b2b29207b0a20202020202020202020202020202020746869732e63685b745d2e526573657428293b0a20202020202020202020202020207d0a2020202020202020202020207d3b0a2020202020202020202020206e2e70726f746f747970652e52656275696c6454696d655461626c65203d2066756e6374696f6e202829207b0a20202020202020202020202020207661722065203d20746869732e636c6f636b202f2036343b0a2020202020202020202020202020746869732e72617465726174696f203d0a20202020202020202020202020202020282865203c3c20742e464d5f524154494f4249545329202b20746869732e72617465202f203229202f20746869732e726174653b0a2020202020202020202020202020746869732e53657454696d6572426173652865293b0a202020204d080220202020202020202020746869732e636869702e536574526174696f28746869732e72617465726174696f293b0a2020202020202020202020207d3b0a2020202020202020202020206e2e70726f746f747970652e536574566f6c756d65203d2066756e6374696f6e20287429207b0a202020202020202020202020202074203d204d6174682e6d696e28742c203230293b0a2020202020202020202020202020746869732e666d766f6c756d65203d2074203e202d313932203f20283136333834202a204d6174682e706f772831302c2074202f2034302929207c2030203a20303b0a2020202020202020202020207d3b0a2020202020202020202020206e2e70726f746f747970652e536574537461747573203d2066756e6374696f6e20287429207b0a2020202020202020202020202020696620282128746869732e737461747573202620742929207b0a20202020202020202020202020202020746869732e737461747573207c3d20743b0a20202020202020202020202020202020746869732e496e74722874727565293b0a20202020202020202020202020207d0a2020202020202020202020207d3b0a2020202020202020202020206e2e70726f746f747970652e476574537461747573203d2066756e6374696f6e20287429207b0a202020202020202020202020202072657475726e20746869732e7374617475733b0a2020204d08022020202020202020207d3b0a2020202020202020202020206e2e70726f746f747970652e5265736574537461747573203d2066756e6374696f6e20287429207b0a202020202020202020202020202069662028746869732e7374617475732026207429207b0a20202020202020202020202020202020746869732e73746174757320263d207e743b0a202020202020202020202020202020206966202821746869732e73746174757329207b0a202020202020202020202020202020202020746869732e496e74722866616c7365293b0a202020202020202020202020202020207d0a20202020202020202020202020207d0a2020202020202020202020207d3b0a2020202020202020202020206e2e70726f746f747970652e536574526567203d2066756e6374696f6e2028652c206e29207b0a202020202020202020202020202069662028212865203e3d203235362929207b0a202020202020202020202020202020207661722072203d2037202620653b0a2020202020202020202020202020202073776974636820283235352026206529207b0a2020202020202020202020202020202020206361736520313a0a202020202020202020202020202020202020202069662028322026206e29207b0a20202020202020202020202020202020202020202020746869732e6c666f5f636f756e745f203d20303b0a202020202020202020204d0802202020202020202020202020746869732e6c666f5f636f756e745f707265765f203d202d313b0a20202020202020202020202020202020202020207d0a2020202020202020202020202020202020202020746869732e7265673031203d206e3b0a2020202020202020202020202020202020202020627265616b3b0a2020202020202020202020202020202020206361736520383a0a202020202020202020202020202020202020202069662028313238202620746869732e726567746329207b0a2020202020202020202020202020202020202020202072203d20372026206e3b0a20202020202020202020202020202020202020202020696620282128382026206e2929207b0a202020202020202020202020202020202020202020202020746869732e63685b725d2e6f705b305d2e4b65794f666628293b0a202020202020202020202020202020202020202020207d0a2020202020202020202020202020202020202020202069662028212831362026206e2929207b0a202020202020202020202020202020202020202020202020746869732e63685b725d2e6f705b315d2e4b65794f666628293b0a202020202020202020202020202020202020202020207d0a2020202020202020202020202020202020202020202069662028212833322026206e2929207b0a2020202020202020202020202020202020202020202020207468694d0802732e63685b725d2e6f705b325d2e4b65794f666628293b0a202020202020202020202020202020202020202020207d0a2020202020202020202020202020202020202020202069662028212836342026206e2929207b0a202020202020202020202020202020202020202020202020746869732e63685b725d2e6f705b335d2e4b65794f666628293b0a202020202020202020202020202020202020202020207d0a20202020202020202020202020202020202020207d20656c7365207b0a20202020202020202020202020202020202020202020746869732e63685b372026206e5d2e4b6579436f6e74726f6c286e203e3e2033293b0a20202020202020202020202020202020202020207d0a2020202020202020202020202020202020202020627265616b3b0a202020202020202020202020202020202020636173652031363a0a202020202020202020202020202020202020636173652031373a0a2020202020202020202020202020202020202020746869732e53657454696d65724128652c206e293b0a2020202020202020202020202020202020202020627265616b3b0a202020202020202020202020202020202020636173652031383a0a2020202020202020202020202020202020202020746869732e53657454696d657242286e293b0a2020202020202020202020202020202020202020627265616b3b0a202020202020204d08022020202020202020202020636173652032303a0a2020202020202020202020202020202020202020746869732e53657454696d6572436f6e74726f6c286e293b0a2020202020202020202020202020202020202020627265616b3b0a202020202020202020202020202020202020636173652032343a0a2020202020202020202020202020202020202020746869732e6c666f66726571203d206e3b0a2020202020202020202020202020202020202020746869732e6c666f5f636f756e745f646966665f203d0a2020202020202020202020202020202020202020202028746869732e72617465726174696f202a0a20202020202020202020202020202020202020202020202028283136202b20283135202620746869732e6c666f667265712929203c3c20283132202d20742e464d5f524154494f42495453292929202f0a202020202020202020202020202020202020202020202831203c3c20283135202d2028746869732e6c666f66726571203e3e20342929293b0a2020202020202020202020202020202020202020627265616b3b0a202020202020202020202020202020202020636173652032353a0a202020202020202020202020202020202020202069662028283132382026206e29203d3d203029207b0a20202020202020202020202020202020202020202020746869732e616d64203d203132372026206e3b0a202020204d0802202020202020202020202020202020207d20656c7365207b0a20202020202020202020202020202020202020202020746869732e706d64203d203132372026206e3b0a20202020202020202020202020202020202020207d0a2020202020202020202020202020202020202020627265616b3b0a202020202020202020202020202020202020636173652032373a0a2020202020202020202020202020202020202020746869732e6c666f77617665666f726d203d20332026206e3b0a2020202020202020202020202020202020202020627265616b3b0a202020202020202020202020202020202020636173652033323a0a202020202020202020202020202020202020636173652033333a0a202020202020202020202020202020202020636173652033343a0a202020202020202020202020202020202020636173652033353a0a202020202020202020202020202020202020636173652033363a0a202020202020202020202020202020202020636173652033373a0a202020202020202020202020202020202020636173652033383a0a202020202020202020202020202020202020636173652033393a0a2020202020202020202020202020202020202020746869732e63685b725d2e536574464228286e203e3e20332920262037293b0a2020202020202020202020202020202020202020746869732e63685b725d2e536574416c4d0802676f726974686d28372026206e293b0a2020202020202020202020202020202020202020746869732e70616e5b725d203d20286e203e3e203629202620333b0a2020202020202020202020202020202020202020627265616b3b0a202020202020202020202020202020202020636173652034303a0a202020202020202020202020202020202020636173652034313a0a202020202020202020202020202020202020636173652034323a0a202020202020202020202020202020202020636173652034333a0a202020202020202020202020202020202020636173652034343a0a202020202020202020202020202020202020636173652034353a0a202020202020202020202020202020202020636173652034363a0a202020202020202020202020202020202020636173652034373a0a2020202020202020202020202020202020202020746869732e6b635b725d203d206e3b0a2020202020202020202020202020202020202020746869732e63685b725d2e5365744b434b4628746869732e6b635b725d2c20746869732e6b665b725d293b0a2020202020202020202020202020202020202020627265616b3b0a202020202020202020202020202020202020636173652034383a0a202020202020202020202020202020202020636173652034393a0a202020202020202020202020202020202020636173652035303a0a20202020204d080220202020202020202020202020636173652035313a0a202020202020202020202020202020202020636173652035323a0a202020202020202020202020202020202020636173652035333a0a202020202020202020202020202020202020636173652035343a0a202020202020202020202020202020202020636173652035353a0a2020202020202020202020202020202020202020746869732e6b665b725d203d206e203e3e20323b0a2020202020202020202020202020202020202020746869732e63685b725d2e5365744b434b4628746869732e6b635b725d2c20746869732e6b665b725d293b0a2020202020202020202020202020202020202020627265616b3b0a202020202020202020202020202020202020636173652035363a0a202020202020202020202020202020202020636173652035373a0a202020202020202020202020202020202020636173652035383a0a202020202020202020202020202020202020636173652035393a0a202020202020202020202020202020202020636173652036303a0a202020202020202020202020202020202020636173652036313a0a202020202020202020202020202020202020636173652036323a0a202020202020202020202020202020202020636173652036333a0a2020202020202020202020202020202020202020746869732e63685b725d2e5365744d5328286e203c3c4d0802203429207c20286e203e3e203429293b0a2020202020202020202020202020202020202020627265616b3b0a202020202020202020202020202020202020636173652031353a0a2020202020202020202020202020202020202020746869732e6e6f69736564656c7461203d206e3b0a2020202020202020202020202020202020202020746869732e6e6f697365636f756e74203d20303b0a2020202020202020202020202020202020202020627265616b3b0a20202020202020202020202020202020202064656661756c743a0a20202020202020202020202020202020202020206966202865203e3d20363429207b0a20202020202020202020202020202020202020202020746869732e536574506172616d6574657228652c206e293b0a20202020202020202020202020202020202020207d0a202020202020202020202020202020207d0a20202020202020202020202020207d0a2020202020202020202020207d3b0a2020202020202020202020206e2e70726f746f747970652e536574506172616d65746572203d2066756e6374696f6e2028742c206529207b0a2020202020202020202020202020766172206e203d205b302c20322c20312c20335d5b2874203e3e203329202620335d3b0a20202020202020202020202020207661722072203d20746869732e63685b37202620745d2e6f705b6e5d3b0a2020202020202020204d0802202020202073776974636820282874203e3e2035292026203729207b0a202020202020202020202020202020206361736520323a0a202020202020202020202020202020202020722e5365744454282865203e3e20342920262037293b0a202020202020202020202020202020202020722e5365744d554c544928313520262065293b0a202020202020202020202020202020202020627265616b3b0a202020202020202020202020202020206361736520333a0a202020202020202020202020202020202020722e536574544c2831323720262065293b0a202020202020202020202020202020202020627265616b3b0a202020202020202020202020202020206361736520343a0a202020202020202020202020202020202020722e5365744b53282865203e3e20362920262033293b0a202020202020202020202020202020202020722e53657441522832202a202833312026206529293b0a202020202020202020202020202020202020627265616b3b0a202020202020202020202020202020206361736520353a0a202020202020202020202020202020202020722e53657444522832202a202833312026206529293b0a202020202020202020202020202020202020722e536574414d4f4e2828313238202620652920213d2030293b0a202020202020202020202020202020202020627265616b3b0a2020202020202020202020204d0802202020206361736520363a0a202020202020202020202020202020202020722e53657453522832202a202833312026206529293b0a202020202020202020202020202020202020722e536574445432282865203e3e20362920262033293b0a202020202020202020202020202020202020627265616b3b0a202020202020202020202020202020206361736520373a0a202020202020202020202020202020202020722e536574534c280a20202020202020202020202020202020202020205b0a20202020202020202020202020202020202020202020302c20342c20382c2031322c2031362c2032302c2032342c2032382c2033322c2033362c2034302c2034342c2034382c2035322c2035362c0a202020202020202020202020202020202020202020203132342c0a20202020202020202020202020202020202020205d5b2865203e3e20342920262031355d0a202020202020202020202020202020202020293b0a202020202020202020202020202020202020722e53657452522834202a202831352026206529202b2032293b0a20202020202020202020202020207d0a2020202020202020202020207d3b0a2020202020202020202020206e2e70726f746f747970652e4275696c644c464f5461626c65203d2066756e6374696f6e202829207b0a2020202020202020202020202020746869732e616d7461626c65203d206e6577204d080241727261792834293b0a2020202020202020202020202020746869732e706d7461626c65203d206e65772041727261792834293b0a2020202020202020202020202020666f7220287661722074203d20303b2074203c20343b20742b2b29207b0a202020202020202020202020202020207661722065203d20303b0a20202020202020202020202020202020746869732e616d7461626c655b745d203d206e657720417272617928746869732e4f504d5f4c464f454e5453293b0a20202020202020202020202020202020746869732e706d7461626c655b745d203d206e657720417272617928746869732e4f504d5f4c464f454e5453293b0a20202020202020202020202020202020666f722028766172206e203d20303b206e203c20746869732e4f504d5f4c464f454e54533b206e2b2b29207b0a20202020202020202020202020202020202076617220723b0a20202020202020202020202020202020202076617220633b0a20202020202020202020202020202020202073776974636820287429207b0a20202020202020202020202020202020202020206361736520303a0a2020202020202020202020202020202020202020202063203d2028286e202b203235362920262035313129202f2032202d203132383b0a2020202020202020202020202020202020202020202072203d20323535202d206e202f20323b0a2020202020204d080220202020202020202020202020202020627265616b3b0a20202020202020202020202020202020202020206361736520313a0a2020202020202020202020202020202020202020202072203d206e203c20323536203f20323535203a20303b0a2020202020202020202020202020202020202020202063203d206e203c20323536203f20313237203a202d3132383b0a20202020202020202020202020202020202020202020627265616b3b0a20202020202020202020202020202020202020206361736520323a0a2020202020202020202020202020202020202020202063203d202863203d20286e202b203132382920262035313129203c20323536203f2063202d20313238203a20333833202d20633b0a2020202020202020202020202020202020202020202072203d206e203c20323536203f20323535202d206e203a206e202d203235363b0a20202020202020202020202020202020202020202020627265616b3b0a20202020202020202020202020202020202020206361736520333a0a20202020202020202020202020202020202020202020696620282128332026206e2929207b0a20202020202020202020202020202020202020202020202065203d202828283332373638202a204d6174682e72616e646f6d282929207c203029202f203137292026203235353b0a202020202020202020202020202020202020202020204d08027d0a2020202020202020202020202020202020202020202072203d20653b0a2020202020202020202020202020202020202020202063203d2065202d203132383b0a2020202020202020202020202020202020207d0a202020202020202020202020202020202020746869732e616d7461626c655b745d5b6e5d203d2030207c20723b0a202020202020202020202020202020202020746869732e706d7461626c655b745d5b6e5d203d20282d63202d203129207c20303b0a202020202020202020202020202020207d0a20202020202020202020202020207d0a2020202020202020202020207d3b0a2020202020202020202020206e2e70726f746f747970652e4c464f203d2066756e6374696f6e202829207b0a202020202020202020202020202076617220743b0a202020202020202020202020202069662028746869732e6c666f77617665666f726d203d3d3d203329207b0a20202020202020202020202020202020696620282d31333130373220262028746869732e6c666f5f636f756e745f205e20746869732e6c666f5f636f756e745f707265765f2929207b0a20202020202020202020202020202020202074203d202828283332373638202a204d6174682e72616e646f6d282929207c203029202f203137292026203235353b0a202020202020202020202020202020202020746869732e636869702e536574504d4c2828284d080274202d2031323829202a20746869732e706d6429202f20313238202b20313238293b0a202020202020202020202020202020202020746869732e636869702e536574414d4c282874202a20746869732e616d6429202f20313238293b0a202020202020202020202020202020207d0a20202020202020202020202020207d20656c7365207b0a2020202020202020202020202020202074203d2028746869732e6c666f5f636f756e745f203e3e203135292026203531303b0a20202020202020202020202020202020746869732e636869702e536574504d4c280a20202020202020202020202020202020202028746869732e706d7461626c655b746869732e6c666f77617665666f726d5d5b745d202a20746869732e706d6429202f20313238202b203132380a20202020202020202020202020202020293b0a20202020202020202020202020202020746869732e636869702e536574414d4c280a20202020202020202020202020202020202028746869732e616d7461626c655b746869732e6c666f77617665666f726d5d5b745d202a20746869732e616d6429202f203132380a20202020202020202020202020202020293b0a20202020202020202020202020207d0a2020202020202020202020202020746869732e6c666f5f636f756e745f707265765f203d20746869732e6c666f5f636f756e745f3b0a20202020202020202020204d0802202020746869732e6c666f5f737465705f2b2b3b0a2020202020202020202020202020696620282837202620746869732e6c666f5f737465705f29203d3d203029207b0a20202020202020202020202020202020746869732e6c666f5f636f756e745f202b3d20746869732e6c666f5f636f756e745f646966665f3b0a20202020202020202020202020207d0a2020202020202020202020207d3b0a2020202020202020202020206e2e70726f746f747970652e4e6f697365203d2066756e6374696f6e202829207b0a2020202020202020202020202020746869732e6e6f697365636f756e74202b3d2032202a20746869732e72617465726174696f3b0a202020202020202020202020202069662028746869732e6e6f697365636f756e74203e3d203332203c3c20742e464d5f524154494f4249545329207b0a202020202020202020202020202020207661722065203d203332202d20283331202620746869732e6e6f69736564656c7461293b0a202020202020202020202020202020206966202865203d3d3d203129207b0a20202020202020202020202020202020202065203d20323b0a202020202020202020202020202020207d0a20202020202020202020202020202020746869732e6e6f697365636f756e74203d20746869732e6e6f697365636f756e74202d202865203c3c20742e464d5f524154494f42495453293b0a20204d0802202020202020202020202020202069662028283331202620746869732e6e6f69736564656c746129203d3d20333129207b0a202020202020202020202020202020202020746869732e6e6f697365636f756e74202d3d20742e464d5f524154494f424954533b0a202020202020202020202020202020207d0a20202020202020202020202020202020746869732e6e6f697365203d2028746869732e6e6f697365203e3e203129205e202831202620746869732e6e6f697365203f203333383030203a2030293b0a20202020202020202020202020207d0a202020202020202020202020202072657475726e20746869732e6e6f6973653b0a2020202020202020202020207d3b0a2020202020202020202020206e2e70726f746f747970652e4d6978537562203d2066756e6374696f6e2028742c206529207b0a20202020202020202020202020206966202831363338342026207429207b0a20202020202020202020202020202020655b746869732e70616e5b305d5d203d20746869732e63685b305d2e43616c6328293b0a20202020202020202020202020207d0a202020202020202020202020202069662028343039362026207429207b0a20202020202020202020202020202020655b746869732e70616e5b315d5d202b3d20746869732e63685b315d2e43616c6328293b0a20202020202020202020202020207d0a202020202020204d08022020202020202069662028313032342026207429207b0a20202020202020202020202020202020655b746869732e70616e5b325d5d202b3d20746869732e63685b325d2e43616c6328293b0a20202020202020202020202020207d0a2020202020202020202020202020696620283235362026207429207b0a20202020202020202020202020202020655b746869732e70616e5b335d5d202b3d20746869732e63685b335d2e43616c6328293b0a20202020202020202020202020207d0a20202020202020202020202020206966202836342026207429207b0a20202020202020202020202020202020655b746869732e70616e5b345d5d202b3d20746869732e63685b345d2e43616c6328293b0a20202020202020202020202020207d0a20202020202020202020202020206966202831362026207429207b0a20202020202020202020202020202020655b746869732e70616e5b355d5d202b3d20746869732e63685b355d2e43616c6328293b0a20202020202020202020202020207d0a202020202020202020202020202069662028342026207429207b0a20202020202020202020202020202020655b746869732e70616e5b365d5d202b3d20746869732e63685b365d2e43616c6328293b0a20202020202020202020202020207d0a202020202020202020202020202069662028312026207429207b0a202020202020202020202020204d080220202069662028313238202620746869732e6e6f69736564656c746129207b0a202020202020202020202020202020202020655b746869732e70616e5b375d5d202b3d20746869732e63685b375d2e43616c634e28746869732e4e6f6973652829293b0a202020202020202020202020202020207d20656c7365207b0a202020202020202020202020202020202020655b746869732e70616e5b375d5d202b3d20746869732e63685b375d2e43616c6328293b0a202020202020202020202020202020207d0a20202020202020202020202020207d0a2020202020202020202020207d3b0a2020202020202020202020206e2e70726f746f747970652e4d69785375624c203d2066756e6374696f6e2028742c206529207b0a20202020202020202020202020206966202831363338342026207429207b0a20202020202020202020202020202020655b746869732e70616e5b305d5d203d20746869732e63685b305d2e43616c634c28293b0a20202020202020202020202020207d0a202020202020202020202020202069662028343039362026207429207b0a20202020202020202020202020202020655b746869732e70616e5b315d5d202b3d20746869732e63685b315d2e43616c634c28293b0a20202020202020202020202020207d0a202020202020202020202020202069662028313032342026207429207b0a2020202020202020204d080220202020202020655b746869732e70616e5b325d5d202b3d20746869732e63685b325d2e43616c634c28293b0a20202020202020202020202020207d0a2020202020202020202020202020696620283235362026207429207b0a20202020202020202020202020202020655b746869732e70616e5b335d5d202b3d20746869732e63685b335d2e43616c634c28293b0a20202020202020202020202020207d0a20202020202020202020202020206966202836342026207429207b0a20202020202020202020202020202020655b746869732e70616e5b345d5d202b3d20746869732e63685b345d2e43616c634c28293b0a20202020202020202020202020207d0a20202020202020202020202020206966202831362026207429207b0a20202020202020202020202020202020655b746869732e70616e5b355d5d202b3d20746869732e63685b355d2e43616c634c28293b0a20202020202020202020202020207d0a202020202020202020202020202069662028342026207429207b0a20202020202020202020202020202020655b746869732e70616e5b365d5d202b3d20746869732e63685b365d2e43616c634c28293b0a20202020202020202020202020207d0a202020202020202020202020202069662028312026207429207b0a2020202020202020202020202020202069662028313238202620746869732e6e6f69736564656c744d08026129207b0a202020202020202020202020202020202020655b746869732e70616e5b375d5d202b3d20746869732e63685b375d2e43616c634c4e28746869732e4e6f6973652829293b0a202020202020202020202020202020207d20656c7365207b0a202020202020202020202020202020202020655b746869732e70616e5b375d5d202b3d20746869732e63685b375d2e43616c634c28293b0a202020202020202020202020202020207d0a20202020202020202020202020207d0a2020202020202020202020207d3b0a2020202020202020202020207661722072203d206e65772041727261792834293b0a2020202020202020202020206e2e70726f746f747970652e6d697853746572656f203d2066756e6374696f6e2028742c20652c206e29207b0a20202020202020202020202020207661722063203d20303b0a2020202020202020202020202020666f7220287661722069203d2028746869732e617474656e756174696f6e2c2030293b2069203c20383b20692b2b29207b0a2020202020202020202020202020202063203d202863203c3c203229207c20746869732e63685b695d2e5072657061726528293b0a20202020202020202020202020207d0a20202020202020202020202020206966202832202620746869732e726567303129207b0a202020202020202020202020202020206320263d2032313834353b0a2020204d080220202020202020202020207d0a20202020202020202020202020207661722061203d2030207c206e3b0a2020202020202020202020202020666f72202869203d20303b2069203c20653b20692b2b29207b0a20202020202020202020202020202020725b315d203d20725b325d203d20725b335d203d20303b0a20202020202020202020202020202020746869732e4c464f28293b0a202020202020202020202020202020206966202834333639302026206329207b0a202020202020202020202020202020202020746869732e4d69785375624c28632c2072293b0a202020202020202020202020202020207d20656c7365207b0a202020202020202020202020202020202020746869732e4d697853756228632c2072293b0a202020202020202020202020202020207d0a20202020202020202020202020202020745b612b2b5d203d202828725b315d202b20725b335d202b20725b325d202b20725b335d29202f2032353629202a20302e33333b0a20202020202020202020202020207d0a2020202020202020202020207d3b0a2020202020202020202020206e2e70726f746f747970652e496e7472203d2066756e6374696f6e20287429207b7d3b0a20202020202020202020202072657475726e206e3b0a202020202020202020207d2928293b0a20202020202020202020742e4f504d203d20653b0a20202020202020207d2928294d08023b0a2020202020202020766172206374203d206e6577206e742e4f504d28293b0a2020202020202020766172206974203d2063742e496e697428333537393534352c2034386533293b0a2020202020202020636f6e736f6c652e6c6f672827594d20496e69743a2027202b206974293b0a20202020202020206c6574206174203d206e657720417272617928323536293b0a2020202020202020766172207374203d20563b0a2020202020202020766172206674203d20583b0a2020202020202020766172207574203d206e657720417272617928313331303732293b0a2020202020202020766172206474203d2066616c73653b0a2020202020202020766172206c74203d2066616c73653b0a2020202020202020766172206874203d2066616c73653b0a2020202020202020766172204174203d2066616c73653b0a2020202020202020766172207074203d2066616c73653b0a2020202020202020766172206274203d2066616c73653b0a2020202020202020766172206774203d2066616c73653b0a2020202020202020766172207974203d2066616c73653b0a2020202020202020766172207774203d20303b0a2020202020202020766172206d74203d20303b0a2020202020202020766172204d74203d20303b0a2020202020202020766172207674203d20303b0a2020202020202020766172204c74203d20303b0a2020202020204d08022020766172204974203d20303b0a2020202020202020766172204574203d20303b0a2020202020202020766172205374203d20323b0a2020202020202020766172207874203d202d313b0a2020202020202020766172206b74203d207b7d3b0a2020202020202020766172204274203d206e756c6c3b0a20202020202020206a742e70726f746f74797065203d207b0a20202020202020202020676574546f7069633a2066756e6374696f6e202829207b0a20202020202020202020202072657475726e20746869732e746f7069633b0a202020202020202020207d2c0a202020202020202020206f6e4576656e743a2066756e6374696f6e20287429207b7d2c0a20202020202020207d3b0a2020202020202020766172204674203d206e756c6c3b0a2020202020202020766172204774203d206e756c6c3b0a2020202020202020766172207a74203d2066616c73653b0a2020202020202020766172205774203d203636323b0a2020202020202020766172205574203d20303b0a2020202020202020766172205a74203d20303b0a2020202020202020766172205174203d20303b0a2020202020202020766172204874203d20303b0a2020202020202020766172205974203d20303b0a2020202020202020766172205674203d20303b0a2020202020202020766172204a74203d20303b0a20202020202020205274280a202020202020204d08022020206e6577206a742827696e6974272c2066756e6374696f6e202829207b0a2020202020202020202020204674203d204e653b0a2020202020202020202020204774203d2059653b0a202020202020202020207d290a2020202020202020293b0a2020202020202020766172207465203d206e65772041727261792832303438293b0a2020202020202020766172206565203d205b312c20312c20302c20312c20312c20312c20302c20302c20302c20302c20312c20302c20312c20302c20305d3b0a2020202020202020766172206e65203d205b0a20202020202020202020302c20302c20312c20302c20312c20312c20302c20302c20312c20312c20312c20312c20312c20302c20302c20302c20312c20312c20302c20312c20312c20312c20302c0a20202020202020202020312c20302c20312c20302c20302c20302c20302c20312c0a20202020202020205d3b0a2020202020202020766172207265203d205b0a20202020202020202020302c20302c20312c20302c20312c20302c20302c20302c20312c20302c20302c20302c20302c20302c20302c20302c20312c20302c20312c20312c20312c20302c20302c0a20202020202020202020312c20302c20312c20302c20302c20312c20312c20312c20312c20312c20302c20302c20312c20312c20302c20312c20312c20302c20312c20302c20312c20312c20312c0a202020204d0802202020202020302c20312c20312c20302c20302c20312c20302c20302c20312c20312c20312c20312c20302c20312c20302c20302c20302c20302c20312c20312c20302c20312c20312c0a20202020202020202020302c20302c20302c20312c20302c20302c20302c20312c20312c20312c20312c20302c20312c20302c20312c20312c20302c20312c20302c20312c20302c20302c20302c0a20202020202020202020302c20312c20312c20302c20312c20302c20312c20302c20302c20302c20312c20302c20312c20302c20302c20302c20312c20312c20312c20302c20302c20312c20312c0a20202020202020202020302c20312c20312c20302c20302c20312c20312c20312c20312c20312c20302c20302c20312c20312c20302c20302c20302c20312c20312c20302c20312c20302c20302c0a20202020202020202020302c20312c20312c20302c20302c20312c20312c20312c20312c20302c20302c20312c20302c20302c20302c20312c20312c20312c20302c20302c20312c20312c20302c0a20202020202020202020312c20302c20312c20312c20302c20312c20312c20302c20312c20302c20302c20312c20302c20302c20312c20312c20312c20312c20312c20312c20302c20312c20312c0a20202020202020202020312c20312c20302c20312c20312c20302c20302c20302c20302c20312c20312c20312c20312c20314d08022c20302c20302c20302c20312c20302c20302c20302c20302c20312c0a20202020202020202020302c20302c20302c20312c20302c20312c20302c20312c20312c20302c20302c20302c20302c20312c20302c20312c20312c20312c20312c20302c20312c20302c20302c0a20202020202020202020302c20312c20312c20302c20302c20302c20312c20312c20312c20302c20312c20312c20312c20302c20312c20302c20302c20302c20302c20302c20302c20302c20302c0a20202020202020202020312c20302c20312c20302c20302c20312c20302c20302c20302c20302c20312c20312c20312c20302c20302c20302c20312c20312c20312c20302c20302c20312c20312c0a20202020202020202020302c20302c20312c20302c20302c20312c20302c20312c20312c20302c20302c20302c20302c20312c20302c20302c20302c20312c20302c20302c20302c20312c20302c0a20202020202020202020312c20312c20312c20312c20302c20302c20302c20312c20312c20312c20302c20302c20302c20312c20302c20302c20312c20312c20312c20312c20302c20312c20312c0a20202020202020202020312c20312c20312c20312c20312c20302c20312c20312c20312c20312c20312c20312c20302c20312c20312c20302c20312c20302c20312c20312c20312c20312c20302c0a20202020202020202020302c20312c20304d08022c20312c20302c20312c20312c20312c20302c20302c20302c20302c20302c20312c20312c20302c20312c20312c20302c20302c20302c20312c20302c0a20202020202020202020312c20302c20312c20302c20302c20302c20302c20312c20302c20312c20312c20312c20302c20302c20302c20302c20312c20302c20302c20312c20302c20312c20302c0a20202020202020202020302c20302c20312c20302c20312c20312c20312c20302c20302c20312c20312c20312c20312c20312c20312c20312c20302c20302c20302c20302c20302c20312c20302c0a20202020202020202020302c20312c20312c20302c20312c20302c20302c20312c20302c20302c20302c20312c20302c20302c20312c20302c20312c20302c20302c20302c20312c20312c20302c0a20202020202020202020312c20302c20302c20302c20302c20302c20312c20312c20312c20312c20302c20302c20312c20302c20302c20312c20302c20312c20312c20312c20312c20312c20312c0a20202020202020202020312c20302c20312c20302c20302c20312c20302c20302c20302c20312c20312c20302c20312c20312c20312c20302c20302c20302c20312c20302c20312c20302c20302c0a20202020202020202020312c20302c20312c20302c20312c20302c20312c20312c20312c20302c20302c20312c20302c20312c20312c20302c20302c20312c4d080220312c20312c20312c20312c20302c0a20202020202020202020302c20302c20312c20312c20302c0a20202020202020205d3b0a2020202020202020766172206365203d205b0a20202020202020202020312c20302c20302c20302c20302c20302c20302c20302c20302c20302c20302c20302c20302c20302c20302c20302c20302c20302c20312c20302c20302c20302c20302c0a20202020202020202020302c20302c20302c20302c20302c20302c20302c20302c0a20202020202020205d3b0a2020202020202020766172206965203d205b302c20305d3b0a2020202020202020766172206165203d205b302c20305d3b0a2020202020202020766172206f65203d205b302c20305d3b0a2020202020202020766172207365203d205b302c20305d3b0a2020202020202020766172206665203d205b302c20305d3b0a2020202020202020766172207565203d205b302c20305d3b0a2020202020202020766172206465203d205b302c20305d3b0a2020202020202020766172206c65203d205b302c20305d3b0a2020202020202020766172206865203d205b302c20305d3b0a2020202020202020766172204165203d20303b0a2020202020202020766172206765203d20583b0a2020202020202020766172207965203d20563b0a2020202020202020766172207765203d2066756e6374696f6e2028742c206529207b0a20202020204d08022020202020766172206e203d20303b0a202020202020202020207661722072203d20303b0a2020202020202020202073776974636820287429207b0a202020202020202020202020636173652032313a0a202020202020202020202020202073655b305d203d203135202620653b0a20202020202020202020202020206e203d20303b0a2020202020202020202020202020627265616b3b0a202020202020202020202020636173652032323a0a202020202020202020202020202073655b315d203d203135202620653b0a20202020202020202020202020206e203d20313b0a2020202020202020202020202020627265616b3b0a202020202020202020202020636173652032333a0a202020202020202020202020202066655b305d203d203331202620653b0a20202020202020202020202020206e203d20303b0a2020202020202020202020202020627265616b3b0a202020202020202020202020636173652032343a0a202020202020202020202020202066655b315d203d203331202620653b0a20202020202020202020202020206e203d20313b0a2020202020202020202020202020627265616b3b0a202020202020202020202020636173652032353a0a202020202020202020202020202075655b305d203d202831352026206529203c3c20323b0a20202020202020202020202020206e203d20303b0a2020202020202020204d08022020202020627265616b3b0a202020202020202020202020636173652032363a0a202020202020202020202020202075655b315d203d202831352026206529203c3c20323b0a20202020202020202020202020206e203d20313b0a2020202020202020202020202020627265616b3b0a20202020202020202020202064656661756c743a0a202020202020202020202020202072657475726e3b0a202020202020202020207d0a202020202020202020206966202873655b6e5d203d3d203029207b0a20202020202020202020202072203d20303b0a20202020202020202020202069655b6e5d203d2075655b6e5d3b0a202020202020202020207d20656c7365207b0a20202020202020202020202072203d202866655b6e5d202b2031292026203235353b0a2020202020202020202020206966202873655b6e5d203e20313129207b0a202020202020202020202020202072203d202833202a2072292026203235353b0a2020202020202020202020207d0a202020202020202020207d0a20202020202020202020696620287220213d2061655b6e5d29207b0a20202020202020202020202061655b6e5d203d20723b0a202020202020202020202020696620286f655b6e5d203d3d2030207c7c2072203d3d203029207b0a20202020202020202020202020206f655b6e5d203d20723b0a2020202020202020202020207d0a2020202020204d0802202020207d0a20202020202020207d3b0a2020202020202020766172206d65203d2071743b0a2020202020202020766172204d65203d2058743b0a2020202020202020766172207665203d2066756e6374696f6e2028742c206529207b0a20202020202020202020737769746368202828285774203d2074292c20285574203d2065292c20742929207b0a20202020202020202020202063617365203636333a0a20202020202020202020202020205a74203d20313032343b0a20202020202020202020202020207a74203d20747275653b0a2020202020202020202020202020627265616b3b0a20202020202020202020202063617365203636303a0a20202020202020202020202020205a74203d20313b0a20202020202020202020202020207a74203d20747275653b0a2020202020202020202020202020627265616b3b0a20202020202020202020202063617365203636313a0a20202020202020202020202020205a74203d20383b0a20202020202020202020202020207a74203d20747275653b0a2020202020202020202020202020627265616b3b0a20202020202020202020202063617365203636323a0a20202020202020202020202020205a74203d2036343b0a20202020202020202020202020207a74203d20747275653b0a202020202020202020207d0a20202020202020202020696620287a7429207b0a2020202020204d08022020202020204a742b2b3b0a2020202020202020202020205674203d205a74202a20653b0a2020202020202020202020205974203d2066616c73653b0a202020202020202020207d0a20202020202020207d3b0a2020202020202020766172204c65203d2044743b0a2020202020202020766172204965203d204e743b0a2020202020202020766172204365203d205f743b0a2020202020202020766172204565203d2066756e6374696f6e20287429207b0a20202020202020202020696620286c742026262074203e3d20313130342026262074203c203131323029207b0a2020202020202020202020207661722065203d2073742874202d2031313034202b203136333834293b0a20202020202020202020202072657475726e20653b0a202020202020202020207d0a202020202020202020206966202868742026262074203e3d20313132302026262074203c3d203131323129207b0a20202020202020202020202065203d203120262074203f2063742e4765745374617475732829203a20303b0a20202020202020202020202069662028787420213d202d3120262620312026207429207b0a2020202020202020202020202020696620287874203e203029207b0a2020202020202020202020202020202078742d2d3b0a20202020202020202020202020207d20656c736520696620287874203d3d2030202626205374203e2030294d0802207b0a2020202020202020202020202020202065203d20323b0a202020202020202020202020202020207874203d2045743b0a20202020202020202020202020202020696620282d2d5374203d3d3d203029207b0a2020202020202020202020202020202020207874203d202d313b0a202020202020202020202020202020207d0a20202020202020202020202020207d0a2020202020202020202020207d0a20202020202020202020202072657475726e20653b0a202020202020202020207d0a202020202020202020206966202864742026262074203e3d2031363338342026262074203c2033323736382026262021677429207b0a202020202020202020202020766172206e203d2074202d2031363338343b0a20202020202020202020202069662028417429207b0a202020202020202020202020202072657475726e206d5f72616d5b6e5d3b0a2020202020202020202020207d0a202020202020202020202020696620287074202626206e203c203831393229207b0a202020202020202020202020202069662028797429207b0a2020202020202020202020202020202072657475726e2075745b2828383139312026206e29202b2038313932202a202831352026204d742929207c20282831202620777429203c3c2038295d3b0a20202020202020202020202020207d20656c7365207b0a2020202020202020202020202020204d08022072657475726e2075745b2828383139312026206e29202b2038313932202a202831352026206d742929207c20282831202620777429203c3c2038295d3b0a20202020202020202020202020207d0a2020202020202020202020207d0a202020202020202020202020696620286274202626206e203e3d2038313932202626206e203c20313633383429207b0a202020202020202020202020202069662028797429207b0a2020202020202020202020202020202072657475726e2075745b0a2020202020202020202020202020202020202828383139312026206e29202b2038313932202a2028284d74203e3e20342920262031352929207c20282832202620777429203c3c2037290a202020202020202020202020202020205d3b0a20202020202020202020202020207d20656c7365207b0a2020202020202020202020202020202072657475726e2075745b0a2020202020202020202020202020202020202828383139312026206e29202b2038313932202a2028286d74203e3e20342920262031352929207c20282832202620777429203c3c2037290a202020202020202020202020202020205d3b0a20202020202020202020202020207d0a2020202020202020202020207d0a202020202020202020207d0a2020202020202020202072657475726e20303b0a20202020202020207d3b0a2020202020202020766172205365203d204d080266756e6374696f6e2028742c206529207b0a20202020202020202020696620286c742026262074203e3d20313130342026262074203c203131323029207b0a20202020202020202020202066742874202d2031313034202b2031363338342c2065293b0a202020202020202020207d20656c7365206966202868742026262074203e3d20313132302026262074203c3d203131323129207b0a20202020202020202020202069662028312026207429207b0a20202020202020202020202020206f742849742c2065293b0a2020202020202020202020202020696620284974203d3d3d2031382026262065203d3d3d2032353229207b0a202020202020202020202020202020207874203d204574203d203132393b0a20202020202020202020202020207d0a2020202020202020202020207d20656c7365207b0a20202020202020202020202020204974203d20653b0a2020202020202020202020207d0a202020202020202020207d20656c7365206966202864742026262074203e3d2031363338342026262074203c20333237363829207b0a202020202020202020202020766172206e203d2074202d2031363338343b0a20202020202020202020202069662028417429207b0a20202020202020202020202020206d5f72616d5b6e5d203d20653b0a2020202020202020202020207d20656c736520696620287074202626206e203c20384d080231393229207b0a202020202020202020202020202075745b28383139312026206e29202b2038313932202a202831352026206d74295d203d20653b0a2020202020202020202020207d20656c736520696620286274202626206e203e3d2038313932202626206e203c20313633383429207b0a202020202020202020202020202075745b28383139312026206e29202b2038313932202a2028286d74203e3e2034292026203135295d203d20653b0a2020202020202020202020207d0a202020202020202020207d20656c7365206966202874203e3d20313133362026262074203c203131353229207b0a2020202020202020202020206966202874203d3d203131333629207b0a20202020202020202020202020206c74203d203136202620287774203d2065293b0a20202020202020202020202020207074203d20333220262077743b0a20202020202020202020202020206274203d20363420262077743b0a20202020202020202020202020206874203d2031323820262077743b0a2020202020202020202020207d20656c7365206966202874203d3d203131343429207b0a20202020202020202020202020206d74203d20653b0a2020202020202020202020207d20656c7365206966202874203d3d203131343829207b0a20202020202020202020202020204d74203d20653b0a2020202020202020202020207d20656c73652069664d0802202874203d3d203131333729207b0a20202020202020202020202020207674203d20653b0a2020202020202020202020207d20656c7365206966202874203d3d203131333829207b0a20202020202020202020202020204174203d2031202620284c74203d2065293b0a20202020202020202020202020206774203d20322026204c743b0a2020202020202020202020207d0a2020202020202020202020206474203d204174207c7c207074207c7c2062743b0a202020202020202020207d0a20202020202020207d3b0a2020202020202020766172207865203d2066616c73653b0a2020202020202020766172204465203d206e756c6c3b0a2020202020202020766172204e65203d206e6577204172726179283635353336293b0a2020202020202020766172205f65203d206e6577204172726179283635353336293b0a2020202020202020766172205465203d206e6577204172726179283635353336293b0a2020202020202020766172206b65203d2066616c73653b0a2020202020202020766172204265203d2066616c73653b0a2020202020202020766172206a65203d2066616c73653b0a2020202020202020766172205265203d2066616c73653b0a2020202020202020766172205065203d2066616c73653b0a2020202020202020766172204f65203d2066616c73653b0a2020202020202020766172204665203d2066616c734d0802653b0a2020202020202020766172204765203d20303b0a2020202020202020766172207a65203d2066616c73653b0a2020202020202020766172205765203d2066616c73653b0a20202020202020205274280a202020202020202020206e6577206a7428276f6e4361727472696467654c6f61646564272c2066756e6374696f6e202829207b0a2020202020202020202020206b65203d20617228293b0a2020202020202020202020204265203d206f7228293b0a2020202020202020202020206a65203d20737228293b0a2020202020202020202020204665203d20647228293b0a202020202020202020202020677228293b0a2020202020202020202020205265203d20667228293b0a2020202020202020202020205065203d206c7228293b0a2020202020202020202020204f65203d20687228293b0a2020202020202020202020204765203d20437228293b0a202020202020202020207d290a2020202020202020293b0a20202020202020205274280a202020202020202020206e6577206a7428276f6e4869676853636f7265436172744c6f61646564272c2066756e6374696f6e20287429207b0a2020202020202020202020207865203d20743b0a202020202020202020207d290a2020202020202020293b0a20202020202020205274280a202020202020202020206e6577206a7428276869676853636f726543616c6c6261634d08026b4368616e676564272c2066756e6374696f6e20287429207b0a2020202020202020202020204465203d20743b0a202020202020202020207d290a2020202020202020293b0a202020202020202076617220726e203d202730313233343536373839616263646566272e73706c6974282727293b0a202020202020202069662028616e282768656c6c6f272920213d202735643431343032616263346232613736623937313964393131303137633539322729207b0a2020202020202020202066756e6374696f6e206f6e28742c206529207b0a202020202020202020202020766172206e203d202836353533352026207429202b2028363535333520262065293b0a20202020202020202020202072657475726e2028282874203e3e20313629202b202865203e3e20313629202b20286e203e3e2031362929203c3c20313629207c202836353533352026206e293b0a202020202020202020207d0a20202020202020207d0a202020202020202076617220736e203d206e756c6c3b0a202020202020202076617220666e203d206e756c6c3b0a202020202020202076617220756e203d206e756c6c3b0a202020202020202076617220646e203d206e756c6c3b0a2020202020202020766172206c6e203d206e756c6c3b0a202020202020202076617220686e203d20303b0a202020202020202076617220416e203d20313b0a2020202020204d0802202076617220706e203d20323b0a202020202020202076617220626e203d20333b0a202020202020202076617220676e203d20343b0a202020202020202076617220796e203d20373b0a202020202020202076617220776e203d2027273b0a2020202020202020766172206d6e203d2027273b0a2020202020202020766172204d6e203d20303b0a202020202020202076617220766e203d20303b0a2020202020202020766172204c6e203d2066616c73653b0a202020202020202076617220496e203d2066616c73653b0a202020202020202076617220436e203d205b312c20315d3b0a202020202020202076617220456e203d20303b0a202020202020202076617220536e203d20303b0a202020202020202076617220786e203d20303b0a202020202020202076617220446e203d20303b0a2020202020202020766172204e6e203d2066616c73653b0a2020202020202020766172205f6e203d2066616c73653b0a202020202020202076617220546e203d2032383b0a2020202020202020766172206b6e203d20313b0a202020202020202076617220426e203d20303b0a2020202020202020766172206a6e203d2066616c73653b0a202020202020202076617220526e203d2066616c73653b0a202020202020202076617220506e203d2066616c73653b0a2020202020202020766172204f6e203d20303b0a202020202020202076614d08027220466e203d20303b0a202020202020202076617220476e203d2066616c73653b0a2020202020202020766172207a6e203d2066616c73653b0a202020202020202076617220576e203d2066616c73653b0a202020202020202076617220556e203d20323b0a2020202020202020766172205a6e203d2066616c73653b0a202020202020202076617220516e203d206e756c6c3b0a202020202020202076617220486e203d20303b0a202020202020202076617220596e203d2066616c73653b0a20202020202020205274280a202020202020202020206e6577206a742827696e6974272c2066756e6374696f6e20287429207b0a2020202020202020202020206c6e203d20742e526567696f6e2e524547494f4e5f4e5453433b0a202020202020202020202020736e203d2056653b0a202020202020202020202020666e203d204a653b0a202020202020202020202020756e203d2059653b0a202020202020202020207d290a2020202020202020293b0a20202020202020205274280a202020202020202020206e6577206a7428276869676853636f726543616c6c6261636b4368616e676564272c2066756e6374696f6e20287429207b0a202020202020202020202020646e203d20743b0a202020202020202020207d290a2020202020202020293b0a2020202020202020766172206e63203d2066756e6374696f6e202829207b0a20204d08022020202020202020746869732e5f77203d20303b0a20202020202020202020746869732e77506c7573506c7573203d2066756e6374696f6e202829207b0a2020202020202020202020207661722074203d20746869732e5f773b0a202020202020202020202020746869732e7365745728746869732e5f77202b2031293b0a20202020202020202020202072657475726e20743b0a202020202020202020207d3b0a20202020202020202020746869732e774d696e75734d696e7573203d2066756e6374696f6e202829207b0a2020202020202020202020207661722074203d20746869732e5f773b0a202020202020202020202020746869732e7365745728746869732e5f77202d2031293b0a20202020202020202020202072657475726e20743b0a202020202020202020207d3b0a20202020202020202020746869732e77506c7573457175616c203d2066756e6374696f6e20287429207b0a202020202020202020202020746869732e7365745728746869732e5f77202b2074293b0a202020202020202020207d3b0a20202020202020202020746869732e774d696e7573457175616c203d2066756e6374696f6e20287429207b0a202020202020202020202020746869732e7365745728746869732e5f77202d2074293b0a202020202020202020207d3b0a20202020202020202020746869732e73657457203d2066756e6374696f6e4d080220287429207b0a202020202020202020202020746869732e5f77203d203635353335202620743b0a202020202020202020207d3b0a20202020202020202020746869732e67657457203d2066756e6374696f6e202829207b0a20202020202020202020202072657475726e20746869732e5f773b0a202020202020202020207d3b0a20202020202020202020746869732e676574424c203d2066756e6374696f6e202829207b0a20202020202020202020202072657475726e20323535202620746869732e5f773b0a202020202020202020207d3b0a20202020202020202020746869732e676574424c5369676e6564203d2066756e6374696f6e202829207b0a2020202020202020202020207661722074203d20746869732e676574424c28293b0a20202020202020202020202069662028283132382026207429203e203029207b0a202020202020202020202020202072657475726e2074202d203235363b0a2020202020202020202020207d20656c7365207b0a202020202020202020202020202072657475726e20743b0a2020202020202020202020207d0a202020202020202020207d3b0a20202020202020202020746869732e736574424c203d2066756e6374696f6e20287429207b0a202020202020202020202020746869732e7365745728283635323830202620746869732e5f7729207c20283235352026207429293b0a20204d080220202020202020207d3b0a20202020202020202020746869732e626c506c7573457175616c203d2066756e6374696f6e20287429207b0a202020202020202020202020746869732e736574424c28746869732e676574424c2829202b2074293b0a202020202020202020207d3b0a20202020202020202020746869732e6765744248203d2066756e6374696f6e202829207b0a20202020202020202020202072657475726e20283635323830202620746869732e5f7729203e3e3e20383b0a202020202020202020207d3b0a20202020202020202020746869732e7365744248203d2066756e6374696f6e20287429207b0a202020202020202020202020746869732e736574572828323535202620746869732e5f7729207c20282874203c3c203829202620363532383029293b0a202020202020202020207d3b0a20202020202020202020746869732e6268506c7573457175616c203d2066756e6374696f6e20287429207b0a202020202020202020202020746869732e736574424828746869732e67657442482829202b2074293b0a202020202020202020207d3b0a20202020202020202020746869732e636f7079203d2066756e6374696f6e20287429207b0a202020202020202020202020746869732e5f77203d20742e5f773b0a202020202020202020207d3b0a20202020202020207d3b0a2020202020202020766172207263203d4d08022051653b0a2020202020202020766172206363203d2059653b0a2020202020202020766172206963203d204e653b0a2020202020202020766172206163203d20303b0a2020202020202020766172206f63203d20303b0a2020202020202020766172207363203d20303b0a2020202020202020766172206663203d20303b0a2020202020202020766172207563203d20303b0a2020202020202020766172206463203d206e6577206e6328293b0a2020202020202020766172206c63203d20303b0a2020202020202020766172206863203d206e6577206e6328293b0a2020202020202020766172204163203d20303b0a2020202020202020766172207063203d2066616c73653b0a2020202020202020766172206263203d20313b0a2020202020202020766172206763203d20323b0a2020202020202020766172207963203d20343b0a2020202020202020766172207763203d20383b0a2020202020202020766172206d63203d2031363b0a2020202020202020766172204d63203d2033323b0a2020202020202020766172207663203d2036343b0a2020202020202020766172204c63203d203132383b0a2020202020202020766172204963203d2036353533333b0a2020202020202020766172204363203d2036353533323b0a2020202020202020766172204563203d2036353533313b0a2020202020202020766172205363203d20364d0802353533303b0a2020202020202020766172207863203d2036353533353b0a2020202020202020766172204463203d2036353533343b0a2020202020202020766172204e63203d205b0a20202020202020202020372c20362c20302c20302c20322c20332c20352c20302c20332c20322c20322c20322c20302c20342c20362c20302c20322c20352c20302c20302c20302c20342c20362c0a20202020202020202020302c20322c20342c20302c20302c20302c20342c20372c20302c20362c20362c20302c20302c20332c20332c20352c20302c20342c20322c20322c20322c20342c20342c0a20202020202020202020362c20302c20322c20352c20302c20302c20302c20342c20362c20302c20322c20342c20302c20302c20302c20342c20372c20302c20362c20362c20302c20302c20302c0a20202020202020202020332c20352c20302c20332c20322c20322c20322c20332c20342c20362c20302c20322c20352c20302c20302c20302c20342c20362c20302c20322c20342c20302c20302c0a20202020202020202020302c20342c20372c20302c20362c20362c20302c20302c20302c20332c20352c20302c20342c20322c20322c20302c20352c20342c20362c20302c20322c20352c20302c0a20202020202020202020302c20302c20342c20362c20302c20322c20342c20302c20302c20302c20342c20372c20302c20322c204d0802362c20302c20302c20332c20332c20332c20302c20322c20302c0a20202020202020202020322c20302c20342c20342c20342c20302c20322c20362c20302c20302c20342c20342c20342c20342c20322c20352c20322c20302c20302c20352c20302c20302c20322c0a20202020202020202020362c20322c20302c20332c20332c20332c20302c20322c20322c20322c20302c20342c20342c20342c20302c20322c20352c20302c20362c20342c20342c20342c20302c0a20202020202020202020322c20342c20322c20302c20342c20342c20342c20302c20322c20362c20302c20302c20332c20332c20352c20302c20322c20322c20322c20302c20342c20342c20362c0a20202020202020202020302c20322c20352c20302c20302c20302c20342c20362c20302c20322c20342c20302c20302c20302c20342c20372c20302c20322c20362c20302c20302c20332c20332c0a20202020202020202020352c20302c20322c20322c20322c20302c20342c20342c20362c20302c20322c20352c20302c20302c20302c20342c20362c20302c20322c20342c20302c20302c20302c0a20202020202020202020342c20372c20302c0a20202020202020205d3b0a2020202020202020766172204263203d206e6577206e6328293b0a2020202020202020766172205263203d206e6577206e6328293b0a20202020202020207661722050634d0802203d206e6577206e6328293b0a2020202020202020766172204c69203d20303b0a2020202020202020766172205369203d204e653b0a2020202020202020766172207869203d2051653b0a2020202020202020766172204469203d206e657720456928302c2031372c203331392c20323538293b0a2020202020202020766172204e69203d206e657720456928302c2032362c203331392c20323438293b0a2020202020202020766172205f69203d206e756c6c3b0a2020202020202020766172205469203d205b6e657720417272617928313630292c206e657720417272617928313630295d3b0a2020202020202020766172206b69203d20303b0a2020202020202020766172204269203d2054695b6b695d3b0a2020202020202020766172206a69203d20303b0a2020202020202020766172205269203d2066616c73653b0a2020202020202020766172205069203d206e6577206e6328293b0a2020202020202020766172204f69203d206e6577206e6328293b0a2020202020202020766172204669203d206e6577206e6328293b0a2020202020202020766172204769203d20303b0a2020202020202020766172207a69203d20303b0a2020202020202020766172205769203d20303b0a2020202020202020766172205569203d20303b0a2020202020202020766172205a69203d20303b0a2020202020202020766172205169203d204d0802303b0a2020202020202020766172204869203d2066616c73653b0a2020202020202020766172205969203d2066616c73653b0a2020202020202020766172205669203d2066616c73653b0a2020202020202020766172206561203d206e6577206e6328293b0a20202020202020205274280a202020202020202020206e6577206a7428276f6e4361727472696467654c6f61646564272c2066756e6374696f6e20287429207b0a2020202020202020202020204869203d2021742e4973586d456e61626c656428292026262021742e497342616e6b7365747328293b0a202020202020202020202020636f6e736f6c652e6c6f6728274d617269612052414d204469726563743a2027202b204869293b0a2020202020202020202020205669203d20742e497342616e6b7365747328293b0a202020202020202020207d290a2020202020202020293b0a2020202020202020766172206361203d206e657720417272617928373638293b0a2020202020202020766172206f61203d20623b0a2020202020202020766172207361203d2065743b0a2020202020202020766172206661203d2074653b0a2020202020202020766172207561203d2062653b0a2020202020202020766172206461203d2044743b0a2020202020202020766172206c61203d205f743b0a2020202020202020766172206861203d206e756c6c3b0a2020202020202020764d08026172204161203d206e756c6c3b0a2020202020202020766172207061203d20303b0a2020202020202020766172206261203d20303b0a2020202020202020766172206761203d20303b0a2020202020202020766172207961203d2066616c73653b0a2020202020202020766172207761203d2066616c73653b0a2020202020202020766172206d61203d206e65772041727261792838313932293b0a2020202020202020766172204d61203d206e65772041727261792838313932293b0a20202020202020205274280a202020202020202020206e6577206a742827696e6974272c2066756e6374696f6e202829207b0a2020202020202020202020206861203d20596f3b0a202020202020202020207d290a2020202020202020293b0a20202020202020205274280a202020202020202020206e6577206a7428276f6e4361727472696467654c6f61646564272c2066756e6374696f6e202829207b0a2020202020202020202020207961203d20617228293b0a202020202020202020207d290a2020202020202020293b0a2020202020202020766172204c61203d2033313434303b0a2020202020202020766172204961203d206e756c6c3b0a2020202020202020766172204361203d206e756c6c3b0a2020202020202020766172204561203d206e6577204172726179283136333834293b0a2020202020202020766172205361203d20304d08023b0a2020202020202020766172207861203d20303b0a20202020202020205274286e6577206a742827696e6974272c204e6129293b0a2020202020202020766172205461203d206161280a2020202020202020202027646174613a3b6261736536342c41414141414141414542415149794d6a4e54553152306448576c706162477873666e352b6b5a47526f364f6a74726132794d6a4932747261376533742f2f2f2f41514141464167414a686f414f537741537a38415856454163474d41676e59416c49674d70356f66756130787937394533744a57384f526f2f2f5a372f2f2b4e475141414c41414150676741554273415979304164554141683149416d6d51467248635976346b71305a733834363550397342682f394a302f2b57472f2f65594b4141414f774141545141415877734163683041684441416c6b49547156516c753263337a586c4b34497463387035752f3743422f384f542f39576c2f2b65344b77414150514141554141415967414a64524962687951756d54644172456c53766c746c304735333434434b395a4f632f3657752f3766422f3872542f397a6c495141464e41415852674170575141386177354f665342676b444a7a6f6b57467446655878326d7132587938363437502f7148682f37507a2f38582f2f396a2f44514179494142464d674258524142705678463861534f4f657a61676a6b697a6f467646734d08026d335978582f7131354c383671542f2f4c622f2f386e2f2f39762f414142534251426b467742334b516d4a504279625469367559454441633150546857586c6d486633716f722f764a7a2f7a362f2f3463482f3839502f2f2b622f41414265414142774141614344526d564943756e4d6a36355246444d56324c65615858776534662f6a706e2f6f4b7a2f7372372f7864442f312b502f3666582f4141425441415a6c414268334143714b43443263476b2b754c474842503354545559626d59356a346471762f694c332f6d74442f72654c2f762f542f30762f2f41414d7a41425a4741436859414470714145313943312b50485847694d49533051706247564b6a5a5a37767265633339692b442f6e764c2f73502f2f772f2f2f414138474143455941444d72414559394146685043477069476e31304c592b475036475a556253725a4d612b64746a51694f76696d2f333172662f2f762f2f2f41424d41414355414144674141456f4b41467764455738764a4946424e704e55534b5a6d573768356263754c674e32646b752b7770502f43742f2f5579662f6e4142414141434941414451414155634145316b414a6d73424f4834555370416d58614d346237564c676364646c4e70767075794375503655792f2b6d33662b35414155414142674143536f41484477414c6b38415147454155334d415a5959476435675969716f726e4c3039724d080273395077654a69302f523035762b472b502b5a41514141457767414a526f414f433041536a38415856494162325141675859416c496b4d70707366754b30787938424533644a57372b526f2f2f64372f2f2b4e270a2020202020202020293b0a2020202020202020766172206b61203d206161280a2020202020202020202027646174613a3b6261736536342c41414141414141414542415149794d6a4e54553152306448576c706162477873666e352b6b5a47526f364f6a74726132794d6a4932747261376533742f2f2f2f41514141464167414a686f414f537741537a38415856454163474d41676e59416c49674d70356f66756130787937394533744a57384f526f2f2f5a372f2f2b4e476741414c5141415077674155526f415a437741646a3841694645416d3251477258595a7634677230707339354b3151397239692f394a302f2b53482f2f615a4b5141414f7741415467414159416f4163687741685334456c30455771564d6f764759377a6e684e34597066383531792f362b452f3847572f3953702f2b61374b7741415051414154774141596741506442456968694d306d545a477130685a7656747230473139346e2b51395a4b692f3653302f3762482f386e5a2f3976734877414e4d514166517741795667424561413557657942706a544a376e30574e736c656778477179316e7a45365937582b3648702f3750372f38584d08022f2f396a2f434141364767424e4c5142665077427855524f455a435757646a656f694571376d317a4e72572f67774948793070502f354b622f39376a2f2f38722f2f39332f4141425841414270454142384967324f4e522b67527a477a5755544662466259666d6e716b4876386f34332f7461442f78374c2f3273542f374e662f2f2b6e2f414142644141427641417542426836554744436d4b6b4f355056584c543266645958727764497a2f6870372f6d4c482f7138502f7664582f7a2b6a2f3476722f4141424b41417464414235764144434241554b554646576d4a6d65344f486e4c53347a64585a3777634c442f6773502f6c4e582f702b6a2f7566722f792f2f2f4141676b41426f32414331494144396241464a744347522f473361534c596d6b503575325571334a5a4d446264744c756965542f6d2f662f72762f2f77502f2f4142454141435144414459574145676f41467336436d314e485839664c354a7851615345564c65575a736d7065647537692b374e6e662f6773502f7977762f2f41424941414355414144634141456b41423177484757345a4c49457250704d2b556156515937686964637031694e79486d752b5a72502b73762f2b2b30662f52414173414142344141444141446b4941494655414d6d634152586b4256347755615a346d664c41356a734e4c6f645664732b68777866714332502b5536762b6e4141414d08024142684141475349414b7a51415055634155466b41596d734164483441683541506d614d69724c553076736447304e705a342b7872396635392f2f2b5145414141496741414e42414152794d415754554161306341666c6f416b4777416f6e3451745a456978364d3132725a48374d685a2f7470732f2b312b2f2f2b52270a2020202020202020293b0a2020202020202020766172204261203d206161280a2020202020202020202027646174613a3b6261736536342c41414141414141414542415149794d6a4e54553152306448576c706162477873666e352b6b5a47526f364f6a74726132794d6a4932747261376533742f2f2f2f41514141464167414a686f414f537741537a38415856454163474d41676e59416c49674d70356f66756130787937394533744a57384f526f2f2f5a372f2f2b4e477741414c5141415141634155686b415a437741647a3441695645416d324d48726e55617749677330356f2b356178523937396a2f3946312f2b4f492f2f61614b674141504141415467414159516b4163787341685330486d45415a716c49727647552b7a33645134596c6a383578312f3636482f3843612f394f732f2b572b4b6741415041414154774144595141566378416f68694d366d44564d716b6466765670787a32794434583657394a476f2f364f362f37624e2f386a662f397278484141554c67416e515141355577424c5a4d080251356565434277696a4f436e4557567231656e7757713631487a4d356f37652b4b48782f37502f2f38622f2f396a2f41774242465142554b41426d4f674a345442574c5879656463546d7667307a436c6c37557148446d756f50357a5a582f3336662f3872722f2f387a2f2f392f2f41414261414142744351422f484243524c694f6b514457325530664a5a56726264327a74696e372f6e4a482f7271502f7762622f30386a2f3574722f2b4f332f41414261414142744142422f41434f524554576b4a4565324e6c724953477a6257333774625a482f6636502f6b72622f704d6a2f7474722f7965332f322f2f2f414142424142425441434e6c414456344145654b44317163495779764e48374252704854574b506d6137583466636a2f6b4e722f6f75332f74502f2f782f2f2f414177544142346d4144453441454e4b4146566442326876476e71434c49325550352b6d556247355938544c64746264694f6a776d76762f72662f2f762f2f2f41424d41414355414144634341456f554146776e443234354959464c4d354e6552715a77574c6943617371566664326e6a2b2b356f662f4d74502f6578762f774142414141434d41414455414145634145466f41493277474e5838595235457257714d39624c5a50663868696b6470306f2b324774762b5a79502b7232762b2b414159414142674143436f41477a30414c55384150324541554d08026e51415a49594864706b5a696173726d37302b72744251774f4a6a3076523135662b48392f2b6141674141464163414a786f414f537741537a3441586c454163474d41673355416c59674d70356f66757130787a4c3945337446573865526f2f2f5a372f2f2b4e477741414c6741415141634155686b415a537341647a3441695641416e474d49726e55617759637330356f2f356178522b4c356b2f3946322f2b4f492f2f5762270a2020202020202020293b0a2020202020202020766172206a61203d206161280a2020202020202020202027646174613a3b6261736536342c41414141414141414542415149794d6a4e54553152306448576c706162477873666e352b6b5a47526f364f6a74726132794d6a4932747261376533742f2f2f2f414141414252454146794d414b54554150456741546c6f415947774163333841685a45516d4b4d6971725931764d68487a39745a34653173382f392b2f2f2b5144514141494141414d68494152435141567a634161556b41653173416a6d34416f49415073704d687861553031376447367370592f4e78722f2b35392f2f2b50496741414e4141415267454157524d4161795541665467416b456f416f6c30537447386b78344532325a524a36365a622f7268742f3875412f3932532f2b2b6c4b7741415051414155414141596755416452634368796f556d54776d72453435766d464c30484e4d08026434345677395a69432f3671562f37326e2f382b352f2b484d4b4141414f6741415451414f587741686367387a684346466c6a525971555a71753168387a577550344832683870437a2f364c472f3754592f3866712f396e39475141624b77417550674241554142535977356c64534633687a4f4a6d6b576372466975766d724130587a5434342f6c396148332f37542f2f38622f2f396a2f41514244457742574a67426f4f414e375378574e58536966627a7179676b7a456c462f57706e4870755950377935622f33616a2f384c762f2f38332f2f392f2f41414261414142744351422f484243524c694f6b51545732553066495a56726265477a74696e372f6e4a482f7236502f7762582f30386a2f3574722f2b4f7a2f414142624141427541412b4141534753457a4f6c4a6b61334f466a4a536d76635858337562342f2f67614c2f6c4c542f7073622f75646e2f792b762f3366332f41414247414135594143427241444a3941455750455665694a476d304e6e7a475349375a573644726262502b674d582f6b746a2f704f722f742f7a2f79662f2f41416b6641427778414335444145425741464e6f43475637476e694e4c5971665035797955612f455a4d485764745070694f62376d2f6a2f72662f2f762f2f2f41424941414351414144595341456b6c414673334332314a485942634d4a4a7551715341564c65545a386d6c6564794d080233692b374b6e762f6373502f76772f2f2f41424941414355414144634141456b4143467746476d34594c49417150354d3855615650593768686473707a694e79476d2b2b5972662b71762f2b3930762f5041417341414234414144414144554941494655414d6d634152486b4356347755615a346d664c45356a734e4c6f4e5665732b687778667143312f2b5636762b6e414141414252414146794d414b6a554150456341546c6f415957774163333841685a45516d4b4d6971725930766368487a39705a346531733950392b2f2f2b51270a2020202020202020293b0a2020202020202020766172205261203d206161280a2020202020202020202027646174613a3b6261736536342c41414141414141414542415149794d6a4e54553152306448576c706162477873666e352b6b5a47526f364f6a74726132794d6a4932747261376533742f2f2f2f414141414252454146794d414b54554150456741546c6f415947774163333841685a45516d4b4d6971725931764d68487a39745a34653173382f392b2f2f2b5144674141494141414d7845415253514157445941616b6741664673416a3230416f5941507335496978715130324c644736736c5a2f6474722f2b35392f2f2b51497741414e514141527741415768494162435141666a63416b556b436f3173557457346d7949413532704a4c376156642f3764772f3871432f3979552f4d08022b366e4b774141506741415541414159675141645259486879675a6d6a73727245302b766d425130584a6934345231395a65482f366d612f3775732f38362b2f2b44524a7741414f514144537741575867416f634134366769464e6c544e6670305a78755669457a477157336e326f38592b372f36484e2f3754672f3862792f396a2f4651416a4b4141324f67424954414262587739746353462f677a53536c6b616b714669327532764a7a5833623335447438714c2f2f37542f2f38662f2f396e2f4141424b44514263494142764d675742525269555679716d6154793466452f4c6a6d48646f4850767334622f785a6a2f3136762f3672332f2f4d2f2f2f2b4c2f414142644141427641674b42465253554a79656d4f546d345445764c586c37646348447767344c2f6c5a582f714b662f75726e2f7a4d7a2f3339372f3866482f4141425841414671414252384143614f44546d684830757a4d56334652484459566f4c71614a54386536662f6a626e2f6e38762f7374372f7850442f31762f2f4141413741424e4e4143566741446479414571454456795848322b704d6f4737524a504f5671626761626a796538722f6a64332f6f4f2f2f73762f2f78662f2f4141304f4143416741444979414552464146645843476c70476e74384c49364f5036436755624b7a5938584664746659694f6e716d767a3872662f2f762f2f2f41424d41414d08024355414144674141456f514146776a45473831496f46484e4a4e6152365a735762682b613871526674326a6b4f2b316f2f2f4974662f61782f2f744142414141434d41414455414145634145566f414a4777454e6e3458534a457057364d376262564f663868676b74707a704f7946742f2b5879662b71322f2b38414159414142674143436f41477a30414c55384150324941556e51415a49594864706b5a696173736d37302b72644251774f4a6a3076523135502b48392f2b6141514141457767414a526f414f433041536a38415856494162325141675859416c496b4d70707366754b30787938424533644a57372b526f2f2f64372f2f2b4e270a2020202020202020293b0a2020202020202020766172205061203d206161280a2020202020202020202027646174613a3b6261736536342c41414141414141414542415149794d6a4e54553152306448576c706162477873666e352b6b5a47526f364f6a74726132794d6a4932747261376533742f2f2f2f414141414252454146794d414b54554150456741546c6f415947774163333841685a45516d4b4d6971725931764d68487a39745a34653173382f392b2f2f2b5144774141495141414e42454152694d41574455416130674166566f416b4777416f6e3851744a45697836513032625a483638685a2f7474732f2b312b2f2f2b514a4141414e674141534141415778454162534d4d080241674455416b6b674570466f5874323070795838373235464f377152672f375a792f3869462f3975582f2b32704c414141506741415541414159774d416452554d687963666d6a6f7872457844766c35573058466f34344e363970574e2f3669662f3771782f387a452f392f574a5141414e77414c535141655841417762673543675342566b7a4e6e705556357546654d796d71653348797737342f442f3648562f37506e2f3862362f396a2f455141734977412b4e6742525341426a5768423162534b49667a57616b5565737046712f746d7a527948376a323548323761502f2f37582f2f386a2f2f39722f414142514277426a475142314c4169485068756155433273597a2b2b64564c526832546a6d6e623172496e2f7670762f3061332f3438442f39744c2f2f2b582f41414265414142774141614344526d564943756e4d6a36355246444d56324c65615858776534662f6a706e2f6f4b7a2f7372372f7864442f312b502f3666582f414142524141646a41426c3241437949426a3661474643744b324f2f505858525434666b59707232644b7a2f68372f2f6d64482f712b502f7676622f30502f2f414155744142672f414370534144786b41453932436d474a48484f624c6f6175515a6a41553676535a62336c654d2f3369754c2f6e66542f722f2f2f77662f2f4142414141434d4e414455664145637841467045435778574733354d08026f4c704637514b4f4e557257665a63697964397245697533576e502f7072762f3777662f2f41424d41414355414144634141456f414246774e463238674b5945794f354e4654715a58594c6870637370386864324f6c2b2b6771762b7a76502f467a762f5841417741414238414144454143304d41485659414c326741516e6f46564930585a353871656249386938524f6e745a68734f6c7a7776754731662b59352f2b71414141414242454146794d414b5455414f306741546c6f4159473041636e3841685a45516c36516971725931764d68487a74745a34653173382f392b2f2f2b5244774141495141414d78454152694d41574459416130674166566f416a3230416f6e3851744a45697871513032625a4836386c5a2f6474722f2b312b2f2f2b51270a2020202020202020293b0a2020202020202020766172204f61203d206161280a2020202020202020202027646174613a3b6261736536342c4141414145524552496949694d7a4d7a52455245565656565a6d5a6d64336433694969496d5a6d5a71717171753775377a4d7a4d33643364377537752f2f2f2f46676f414a7873414f43774153543041576b344161313841664841416a5945466e70495772364d6e774c51343063564a34745a61382b64722f2f68382f2f2b4e4c67414150776b4155426f4159537341636a7741673030416c46344170573851746f416878354579324d08024b4a4436624e552b73526c2f3956322f2b61482f2f6559505141415467414158776f4163427341675377416b6a304f6f3034667446387778584242316f465335354a6a2b4b4e302f3753462f3857572f39616e2f2b653450774141554141415951414a63684161677945726c44493870554e4e746c52657832567632486141365965522b7069692f366d7a2f3772452f3876562f397a6d4e67415a52774171574141376151784d65683164697935756e44392f72564351766d47687a334b7934495044385a54552f36586c2f3762322f38662f2f396a2f495142484d67425951774270564139365a53434c646a476368304b746d464f2b71575450756e586779346278334a662f37616a2f2f726e2f2f38722f2f39762f4267426e467742344b416d4a4f52716153697572577a79386245334e665637656a6d2f766e34442f734a482f77614c2f3072502f3438542f394e582f2f2b622f41414279414165444442695548536d6c4c6a71325030764855467a5959573370636e373667342f2f6c4b442f7062482f74734c2f7839502f324f542f3666582f4141686e41426c344143714a42547561466b79724a3132384f47374e53582f65577044766136482f664c4c2f6a63502f6e74542f722b582f7750622f30662f2f4142684841436c5941447070414574364231794c474732634b5836744f6f2b2b53364450584c486762634c786674502f6a4d08022b542f6f50582f73662f2f77762f2f41434d5a414451714145553741465a4d42576464466e68754a346c2f4f4a7151536175685772797961383344664e37556a652f6c6e762f32722f2f2f77502f2f414363414144674141456b4941466f5a446d7371483377374d49314d515a3564557139755938422f644e475168654b686c764f79702f2f4475502f5579662f6c414351414144554141555941456c6341493267414e486b4f52596f66567073775a367842654c31536963356a6d743930712f434676502b577a662b6e33762b3441426b4143796f41484473414c557741506c30415432344159483841635a4151677145686b374979704d4e44746452557875566c312f5a3236502b482b662b5946676b414a786f414f43734153547741576b304161313441664738416a5941466e7045577236496e774c4d343063524a34745661382b5a722f2f64382f2f2b4e270a2020202020202020293b0a2020202020202020766172204661203d206161280a2020202020202020202027646174613a3b6261736536342c4141414145524552496949694d7a4d7a52455245565656565a6d5a6d64336433694969496d5a6d5a71717171753775377a4d7a4d33643364377537752f2f2f2f46676f414a7873414f43774153543041576b344161313841664841416a5945466e70495772364d6e774c51343063564a34745a61382b64722f2f68382f2f2b4d08024e4c7741415141674155526b4159696f41637a7341684577416c563041706d345274333869794a417a3261464536724a562b384e6d2f3952332f2b57492f2f615a505141415467414158776b4163426f41675373416b6a77526f3030697446347a78573945316f42563535466d2b4b4a332f374f492f38535a2f3957712f2b613750774141554141415951415063673867677941786c44464370554a54746c4e6b7832523132485747365961582b70656f2f3669352f376e4b2f3872622f3976734d77416852414179565142445a6778556478316c694335326d542b48716c4359753247707a484b363359504c377054632f3658742f37622b2f38662f2f396a2f484142504c514267506742785478474359434b5463544f6b676b53316b315847704762587458666f786f6a3531356e2f364b722f2b62762f2f387a2f2f39332f41414272455142384967794e4d7832655243367656542f415a6c44526432486969484c7a6d59502f7170542f7536582f7a4c622f3363662f37746a2f2f2b6e2f4141427841417943425232544669366b4a7a2b314f46444753574858576e4c6f61345035664a542f6a61582f6e72622f7238662f774e6a2f30656e2f3476722f414131664142357741432b42414543534546476a49574b304d6e504651345457564a586e5a6162346472662f68386a2f6d4e6e2f7165722f7576762f792f2f2f414230344143354d08024a414439614146427242574638466e4b4e4a344f654f4a5376536158415772625261386669664e6a7a6a656e2f6e76722f722f2f2f77502f2f41435946414463574145676e41466b344232704a474874614b5978724f7031385336364e584c2b6562644376667548416a2f4c526f502f6973662f7a77762f2f414363414144674141456b4142566f46466d73574a33776e4f493034535a354a5771396161384272664e46386a654b4e6e764f65722f2b7677502f4130662f52414341414144454144554941486c4d414c325141514855415559594f5970636663366777684c6c426c6370537074746a742b78307950324632662b5736762b6e4342494147534d414b6a51414f3055415446594158576341626e674166346b496b4a6f5a6f617371737277377738314d314e3564356539753976392f2f2f2b514a4141414e52454152694941567a4d416145514165565541696d59416d33634a72496761765a6b727a716f383337744e384d78652f3931762f2b36412f2f2b52270a2020202020202020293b0a2020202020202020766172204761203d206161280a2020202020202020202027646174613a3b6261736536342c4141414145524552496949694d7a4d7a52455245565656565a6d5a6d64336433694969496d5a6d5a71717171753775377a4d7a4d33643364377537752f2f2f2f46676f414a7873414f43774153543041576b3441614d0802313841664841416a5945466e70495772364d6e774c51343063564a34745a61382b64722f2f68382f2f2b4e4c7741415141674155526b4159696f41637a7341684577416c563042706d34537433386a794a41303261464636724a572b384e6e2f3952342f2b574a2f2f616150674141547741415941674163526b4167696f446b7a73557045776c74563032786d354831333959364a42702b6146362f374b4c2f384f632f3953742f2b572b5067414154774144594141556351346c676838326b7a42487045465974564a70786d4e363133534c364957632b5a61742f36652b2f376a502f386e672f3972784d414170515141365567424c59777863644231746853352b6c6a2b50703143677547477879584c43326f50543635546b2f4b58312f37622f2f38662f2f396a2f467742574b41426e4f514a3453684f4a5779536162445772665561386a6c664e6e326a6573486e767759722f3070762f34367a2f394c332f2f38372f2f392f2f4141427643674341477843524c43476950544b7a546b5045583154566347586d675862336b6f662f6f356a2f744b6e2f7862722f3173762f35397a2f2b4f332f414142764142474141434b52447a4f694945537a4d565845516d62565533666d5a496a33645a6e2f6871722f6c37762f714d7a2f7564332f7975372f322f2f2f41424a5641434e6d41445233414557494446615a485765714c6e6937504d0802346e4d554a72645961767563727a2f6738332f6c4e372f70652f2f74762f2f782f2f2f4143416f4144453541454a4b41464e6242475273465856394a6f614f4e356566534b697757626e42617372536539766a6a4f7a306e66332f72762f2f762f2f2f414363414144674341456b5441466f6b43327331484878474c5931585070356f54363935594d434b6364476267754b736b2f4f3970502f4f74662f6678762f77414355414144594141456341446c674148326b444d486f555159736c5570773259363148644c3559686339706c754236702f474c75502b6379662b7432762b2b41426f4143537341476a77414b3030415046344154573841586f414262354553674b496a6b624d306f73524673395657784f5a6e3166643435762b4a392f2b6146676b414a786f414f43734153547741576b304161313441664738416a5941466e7045577236496e774c4d343063524a34745661382b5a722f2f64382f2f2b4e4d414141515163415568674159796b4164446f41685573416c6c7743703230547548346b7959383132714247363746582f4d4a6f2f394e352f2b534b2f2f5762270a2020202020202020293b0a2020202020202020766172207a61203d206161280a2020202020202020202027646174613a3b6261736536342c4141414145524552496949694d7a4d7a52455245565656565a6d5a6d64336433694969496d5a6d5a7171714d080271753775377a4d7a4d33643364377537752f2f2f2f42784d41474351414b5455414f6b5941533163415847674162586b41666f6f496a35735a6f4b7771736230377773354d30393964355042753966392f2f2f2b51496749414d784d4152435141565455415a6b594164316341694767416d586b48716f6f59753573707a4b77363362314c377335632f3939742f2f422b2f2f2b504e6741415277494157424d4161535141656a5541693059416e46634c72576763766e6b747a346f2b344a7450386178672f3731782f3836432f392b542f2f436b50774141554141415951514163685541677959516c44636870556779746c6c44783270553248746c365978322b7032482f3636592f372b702f3943362f2b484c505141415467414f5877416663413077675235426b6939536f30426a7446463078574b46316e4f573534536e2b4a57342f36624a2f3766612f386a722f396e384c6741765077424155414252595178696368317a677936456c442b567056436d746d473378334c493249505a365a54712b7158372f37622f2f38662f2f396a2f466742584a77426f4f414a3553524f4b57695362617a5773664561396a56664f6e6d6a6672336e777749722f305a762f34717a2f3837332f2f38372f2f392f2f414142754377422f48412b514c534368506a477954304c44594650556357546c676e58326b34622f704a662f74616a2f78726e4d08022f3138722f364e762f2b657a2f4141427741412b4241534353456a476a49304b304e46504652575457566e586e5a346234654a662f69616a2f6d726e2f7138722f764e762f7a657a2f3376332f41413962414342734144463941454b4f446c4f66483253774d485842515962535570666a59366a30644c6e2f6863722f6c74762f702b7a2f7550332f79662f2f4142303041433546414439574146426e42574634466e4b4a4a344f614f4a5372536157385772624e61386665664e6a766a656e2f6e76722f722f2f2f77502f2f41435944414463554145676c41466b3242327048474874594b5978704f7031365336364c584c2b63626443746675472b6a2f4c506f502f6773662f7877762f2f414363414144674141456b4142566f46466d73574a33776e4f493034535a354a5771396161384272664e46386a654b4e6e764f65722f2b7677502f4130662f5241434141414445414445494148564d414c6d51415033554155495950595a63676371677867376c436c4d70547064746b74757831782f324732502b5836662b6f42684d41467951414b4455414f555941536c63415732674162486b4166596f4a6a7073616e367772734c30387763354e30743965342f427639502b412f2f2b52270a2020202020202020293b0a2020202020202020766172205761203d206161280a2020202020202020202027646174613a3b6261736536342c414d080241414145524552496949694d7a4d7a52455245565656565a6d5a6d64336433694969496d5a6d5a71717171753775377a4d7a4d33643364377537752f2f2f2f42784d41474351414b5455414f6b5941533163415847674162586b41666f6f496a35735a6f4b7771736230377773354d30393964355042753966392f2f2f2b51497745414e42494152534d41566a51415a30554165465941695763416d6e674971346b5a764a6f717a6173373372784d373831642f3935752f2b392f2f2f2b514e774141534141415752454161694941657a4d416a4551416e56554f726d59667633637730496842345a6c533871706a2f3774302f3879462f3932572f2b366e514141415551414159674d4163785146684355576c54596e706b63347431684a79476c6132587072366f74382b35794e2f3632652f3736762f382f412f2b44524f774147544141585851416f626777356678314b6b4335626f543973736c42397732474f31484b6635594f77397054422f3658532f37626a2f3866302f396a2f4b5141344f67424a53774261584131726252353866692b4e6a3043656f46477673574c41776e505230345469354a587a3961622f2f37662f2f386a2f2f396e2f44774266494142774d515742516861535579656a5a44693064556e46686c72576c32766e71487a347559332f7970372f32362f2f374d442f2f64482f2f2b4c2f4141427841674f43454d08027853544a43576b4e546131526b664756316a5861476e6f65587235696f762f6d357a2f724b332f7662372f7a732f2f332b442f3850482f41415272414256384143614e436a6565473069764c466e4150577252546e766958347a7a634a332f6761372f6b722f2f6f39442f744f482f78664c2f31762f2f4142564f41435a66414464774145694243566d53476d716a4b33753050497a46545a33575871376e62372f34674e442f6b65482f6f764c2f732f2f2f78502f2f4143496841444d79414552444146565542475a6c465864324a6f69484e356d59534b71705762753661737a4c653933636a4f37746e662f2b72762f2f762f2f2f414363414144674141456b4f41466f6644577377486e78424c343153514a356a556139305973434663394757684f4b6e6c664f3470762f4a742f2f6179502f7241435141414455414145594145466341495767414d6e6b5251346f69564a737a5a617845647231566838356d6d4e39337166434975762b5a792f2b7133502b3741426f4143697341477a77414c45304150563441546d384158344141634a4552676149696b724d7a6f385245744e565678655a6d31766433352f2b492b502b5a46676b414a786f414f43734153547741576b304161313441664738416a5941466e7045577236496e774c4d343063524a34745661382b5a722f2f64382f2f2b4e270a2020202020202020293b0a202020204d080220202020766172205561203d206161280a2020202020202020202027646174613a3b6261736536342c4141414145524552496949694d7a4d7a52455245565656565a6d5a6d64336433694969496d5a6d5a71717171753775377a4d7a4d33643364377537752f2f2f2f42784d41474351414b5455414f6b5941533163415847674162586b41666f6f496a35735a6f4b7771736230377773354d30393964355042753966392f2f2f2b514a4141414e52454152694941567a4d416145514165565541696d59416d3363497249675a765a6b717a716f373337744d384d78642f3931752f2b352f2f2f2b514f414141535141415768414161794541664449416a554d416e6c5152723255697748597a305964453470685638366c6d2f3770332f3875492f39795a2f2b327151414141555141415967494163784d4c684351636c545574706b592b743164507947686732586c78366f71432b3575542f36796b2f3732312f3837472f392f584f51414f536741665777417762417842665231536a69356a6e7a39307346434677574757306e4b6e34344f34394a544a2f3658612f3762722f3866382f396a2f4a5142424e6742535277426a5741353061522b46656a43576930476e6e464b347257504a766e54617a345872344a62383861662f2f376a2f2f386e2f2f39722f4341426c475142324b6769484f786d595443717058547536626b7a4c6631334d0802636b4737746f582f2b7370442f7736482f314c4c2f3563502f3974542f2f2b582f41414279414165444442695548536d6c4c6a71325030764855467a5959573370636e373667342f2f6c4b442f7062482f74734c2f7839502f324f542f3666582f41416c6c414270324143754842447959465532704a6c36364e322f4c53494463575a487461714c2b6537502f6a4d542f6e64582f7275622f762f662f30502f2f4142704141437452414478694145317a426c364546322b564b49436d4f5a473353714c495737505a624d5471666458376a75622f6e2f662f73502f2f77662f2f4143554e414459654145637641466841426d6c52463370694b49747a4f5a7945537132565737366d624d2b33666544496a76485a6e2f2f7173502f3777662f2f414363414144674141456b4141316f4b464773624a5877734e6f30395235354f574b39666163427765744742692b4b536e504f6a72662b3076762f467a2f2f5741434141414445414330494148464d414c575141506e554154345951594a63686361677967726c446b387055704e746c7465783278763248312f2b5936502b704278494147434d414b5451414f6b5541533159415847634162586741666f6b496a356f5a6f4b7371736277377773314d30393564354f39753966392f2f2f2b514a4141414e52454152694941567a4d416145514165565541696d59416d33634a72496761765a6b4d0802727a716f383337744e384d78652f3931762f2b36412f2f2b52270a2020202020202020293b0a2020202020202020766172205a61203d20303b0a2020202020202020766172205161203d20313b0a2020202020202020766172204861203d20323b0a2020202020202020766172205961203d2048613b0a2020202020202020766172205661203d206e657720456928302c2031362c203331392c20323538293b0a2020202020202020766172204a61203d206e657720456928302c2032372c203331392c20323530293b0a2020202020202020766172205861203d206e657720456928302c2031362c203331392c20333038293b0a2020202020202020766172207161203d206e657720456928302c2032362c203331392c20323937293b0a2020202020202020766172204b61203d205b0a20202020202020202020302c20302c20302c2033372c2033372c2033372c2035322c2035322c2035322c2037392c2037392c2037392c2039312c2039312c2039312c203130352c203130352c0a202020202020202020203130352c203132332c203132332c203132332c203133382c203133382c203133382c203136372c203136372c203136372c203138352c203138352c203138352c203139372c0a202020202020202020203139372c203139372c203230382c203230382c203230382c203231352c203231352c203231352c203232352c2032324d0802352c203232352c203234342c203234342c203234342c0a202020202020202020203235352c203235352c203235352c2037362c2035302c20302c2039382c2035382c20302c203132332c2037342c20302c203135342c2039362c20302c203138312c203131362c0a20202020202020202020302c203230342c203133332c20302c203233312c203135382c20382c203234372c203137352c2031362c203235352c203139352c2032342c203235352c203230382c2033322c0a202020202020202020203235352c203231362c2034302c203235352c203232332c2034382c203235352c203233302c2035392c203235352c203234342c2036342c203235352c203235302c2037352c0a202020202020202020203235352c203235352c2038302c203135332c2033372c20302c203137302c2033372c20302c203138302c2033372c20302c203231312c2034382c20302c203232312c2037322c0a20202020202020202020322c203232362c2038302c20392c203234342c203130332c20302c203234342c203131372c2031362c203235352c203135382c2031362c203235352c203137322c2033322c0a202020202020202020203235352c203138362c2035382c203235352c203139312c2038302c203235352c203139382c203130392c203235352c203231332c203132382c203235352c203232382c0a202020202020202020203134342c20324d080235352c203233302c203135332c203135322c2031322c2031322c203135332c2031322c2031322c203139342c2031392c20302c203231312c2031392c20302c0a202020202020202020203232362c2035332c20302c203232372c2036342c20302c203232382c2036342c2033322c203232392c2038322c2034382c203235332c203132302c2038342c203235352c0a202020202020202020203133382c203130362c203235352c203135322c203132342c203235352c203136342c203133392c203235352c203137392c203135382c203235352c203139342c203137382c0a202020202020202020203235352c203230382c203138362c203235352c203231352c203139322c203135332c20302c20302c203136392c20302c20302c203139342c20342c20302c203231312c20342c0a20202020202020202020302c203231382c20342c20302c203231392c20382c20302c203232382c2033322c2033322c203234362c2036342c2036342c203235312c203131322c203131322c203235312c0a202020202020202020203132362c203132362c203235312c203134332c203134332c203235352c203135392c203135392c203235352c203137312c203137312c203235352c203138352c203138352c0a202020202020202020203235352c203230312c203230312c203235352c203230372c203230372c203132362c20302c2038302c203132384d08022c20302c2038302c203132382c20302c2039352c203134392c0a2020202020202020202031312c203131362c203137302c2033342c203133362c203138372c2034372c203135342c203230362c2036332c203137332c203231352c2039302c203138322c203232382c0a202020202020202020203130332c203139352c203233392c203131342c203230362c203235312c203132362c203231382c203235352c203134312c203232352c203235352c203135372c203232392c0a202020202020202020203235352c203136352c203233312c203235352c203137352c203233342c203235352c203138342c203233362c2037322c20302c203130382c2039322c20342c203133362c0a202020202020202020203130312c2031332c203134342c203132332c2033352c203136372c203134372c2035392c203139312c203135372c2036392c203230312c203136372c2037392c203231312c0a202020202020202020203137382c2039302c203232322c203138392c203130312c203233332c203139372c203130392c203234312c203230362c203131382c203235302c203231332c203133312c0a202020202020202020203235352c203231382c203134342c203235352c203232322c203135362c203235352c203232362c203136392c203235352c203233302c203138322c203235352c2032372c0a20202020202020202020302c203131322c4d08022033342c2032372c203134312c2035352c2034382c203136322c2037322c2036352c203137392c2038392c2038322c203139362c2039392c2039322c0a202020202020202020203230362c203131312c203130342c203231382c203132352c203131382c203233322c203133352c203132382c203234382c203134372c203134302c203235352c203135372c0a202020202020202020203135312c203235352c203136382c203136332c203235352c203137392c203137352c203235352c203138382c203138342c203235352c203139362c203139332c203235352c0a202020202020202020203231382c203230392c203235352c20302c2031332c203132372c20302c2031382c203136372c20302c2032342c203139322c2031302c2034332c203230392c2032372c0a2020202020202020202037342c203232372c2034372c2038382c203234302c2035352c203130342c203235352c2037332c203132312c203235352c2039312c203133332c203235352c203130392c0a202020202020202020203135302c203235352c203132372c203136332c203235352c203134302c203137332c203235352c203135302c203138302c203235352c203136382c203139322c203235352c0a202020202020202020203138332c203230332c203235352c203139382c203231342c203235352c20302c2034312c2039302c20302c2035362c203131382c4d080220302c2037322c203134362c20302c0a2020202020202020202039322c203137322c20302c203131332c203139382c20302c203133342c203230382c2031302c203135352c203232332c2032362c203136382c203233362c2034332c0a202020202020202020203138322c203235352c2036332c203139342c203235352c2036392c203230332c203235352c2038392c203231312c203235352c203132372c203231382c203235352c0a202020202020202020203134332c203232322c203235352c203136302c203232362c203235352c203137362c203233352c203235352c20302c2035362c2035372c20302c2036302c2037322c20302c0a2020202020202020202036312c2039312c20322c203130322c203132372c20332c203131352c203133312c20302c203135362c203137302c20302c203136312c203138372c20312c203136342c0a202020202020202020203230342c20332c203138372c203235352c20352c203231382c203232362c2032342c203232392c203235352c2035322c203233342c203235352c2037332c203233392c0a202020202020202020203235352c203130322c203234322c203235352c203133322c203234342c203235352c203135382c203234392c203235352c20302c2037342c20302c20302c2039332c20302c0a20202020202020202020302c203131322c20302c20302c203133392c20302c20302c4d0802203136392c20302c20302c203138372c20352c20302c203138392c20302c20322c203230382c20352c2032362c0a202020202020202020203231332c2036342c2039302c203234312c203131392c203133302c203233392c203136372c203133322c203233372c203230392c203133372c203235352c203233372c0a202020202020202020203132352c203235352c203235352c203134372c203235352c203235352c203135352c203235352c203235352c2033342c2037342c20332c2033392c2038332c20342c2034382c0a202020202020202020203130302c20352c2036302c203131392c2031322c2036392c203134302c2031372c2039302c203136352c2031392c2032372c203231302c20392c2033312c203232312c20302c0a2020202020202020202036312c203230352c2034352c2036312c203230352c2034382c2038382c203230342c2036342c2039362c203231312c2038302c203136322c203233362c2038352c203137392c0a202020202020202020203234322c2037342c203138372c203234362c2039332c203139362c203234382c203131322c2034362c2036332c2031322c2035342c2037342c2031352c2036342c2038362c0a2020202020202020202032312c2037302c2039352c2032332c2038372c203131392c2032362c203130312c203133332c2032382c203131362c203134372c2032392c203134332c20314d080236352c2033372c0a202020202020202020203137332c203138332c2034342c203138382c203139392c2034382c203230312c203231332c2035312c203231322c203232342c2035392c203232342c203233362c2036362c0a202020202020202020203233342c203234362c2036392c203234302c203235332c2037312c203234342c203235352c203131312c2038352c2033362c20302c2039302c2034342c20302c203130382c0a2020202020202020202035392c20302c203132312c2037352c20302c203138352c203131372c20302c203138372c203133332c20302c203139332c203136312c2033322c203230382c203137362c0a2020202020202020202034372c203232322c203139302c2036332c203233302c203139382c2036392c203233372c203230352c2038372c203234352c203231392c2039382c203235312c203232392c0a202020202020202020203130352c203235322c203233382c203131312c203235332c203234332c203131392c203235332c203234332c203132372c2039322c2033392c20302c2039322c2034372c0a20202020202020202020302c203131332c2035392c20302c203132332c2037322c20302c203138352c203130342c2033322c203138372c203131342c2033322c203139372c203133342c2034312c0a202020202020202020203231352c203135302c2035312c203233302c203136342c20364d0802342c203234342c203137372c2037352c203235332c203139332c2038382c203235352c203230342c2038352c0a202020202020202020203235352c203231322c2039372c203235352c203232312c203130352c203235352c203233302c203132312c203235352c203233342c203135322c0a20202020202020205d3b0a2020202020202020766172202461203d205b0a20202020202020202020302c20302c20302c2032382c2032382c2032382c2035372c2035372c2035372c2038392c2038392c2038392c203132312c203132312c203132312c203134362c203134362c0a202020202020202020203134362c203137312c203137312c203137312c203138382c203138382c203138382c203230352c203230352c203230352c203231372c203231372c203231372c203233302c0a202020202020202020203233302c203233302c203233362c203233362c203233362c203234322c203234322c203234322c203234382c203234382c203234382c203235352c203235352c203235352c0a202020202020202020203235352c203235352c203235352c2033382c2034382c20312c2033362c2035362c20332c2033352c2036342c20352c2038312c2038342c2032372c203132382c203130352c0a2020202020202020202034392c203135312c203132392c2035332c203137352c203135332c2035382c203139342c203136372c2036322c204d08023231332c203138312c2036372c203231392c203139322c0a2020202020202020202036312c203232352c203230332c2035362c203232362c203231362c2035342c203232372c203232392c2035322c203233392c203234322c2038382c203235312c203235352c0a202020202020202020203132352c203235312c203235352c203132352c2035372c2032332c20312c2039342c2033352c20342c203133312c2034382c20382c203136352c2037312c2032322c0a202020202020202020203230302c2039352c2033362c203232372c203132302c2033322c203235352c203134352c2032392c203235352c203137312c2032392c203235352c203139372c2032392c0a202020202020202020203235352c203230362c2035322c203235352c203231362c2037362c203235352c203233302c2038312c203235352c203234342c2038362c203235352c203234392c203131392c0a202020202020202020203235352c203235352c203135322c203235352c203235352c203135322c2036392c2032352c20342c203131342c2033302c2031372c203135392c2033362c2033302c0a202020202020202020203137392c2035382c2033322c203230302c2038312c2033342c203232372c203130352c2033322c203235352c203132392c2033302c203235352c203134302c2033372c0a202020202020202020203235352c203135322c2034342c204d08023235352c203137342c2035362c203235352c203139372c2036392c203235352c203139372c2038392c203235352c203139382c203130392c0a202020202020202020203235352c203231332c203133352c203235352c203232382c203136312c203235352c203232382c203136312c2037342c2032332c20342c203132362c2032362c2031332c0a202020202020202020203137382c2032392c2032332c203230302c2033332c2032352c203232332c2033372c2032382c203233362c2035392c2035362c203235302c2038322c2038352c203235322c0a2020202020202020202039372c2039372c203235352c203131322c203131302c203235352c203132372c203132362c203235352c203134332c203134332c203235352c203135372c203135382c0a202020202020202020203235352c203137312c203137332c203235352c203138352c203138392c203235352c203139392c203230362c203235352c203139392c203230362c20352c20352c203130342c0a2020202020202020202035392c2031392c203130392c203131332c2033342c203131342c203133392c2034322c203134302c203136352c2035302c203136362c203138352c2035362c203138362c0a202020202020202020203230352c2036322c203230372c203231392c2037312c203232312c203233342c2038312c203233352c203234342c2039352c203234352c204d08023235342c203130392c203235352c0a202020202020202020203235342c203132322c203235332c203235352c203133352c203235312c203235352c203134392c203235332c203235352c203136342c203235352c203235352c203136342c0a202020202020202020203235352c2034302c20342c203132312c2036342c20392c203133322c2038392c2031352c203134342c203131322c2033362c203135372c203133362c2035372c203137302c0a202020202020202020203136342c2036352c203139352c203139322c2037342c203232302c203230382c2038342c203233372c203232342c2039342c203235352c203233332c203130392c203235352c0a202020202020202020203234322c203132342c203235352c203234382c203133382c203235352c203235352c203135322c203235352c203235342c203136312c203235352c203235342c203137312c0a202020202020202020203235352c203235342c203137312c203235352c2035332c20382c203133382c2036362c2031302c203137332c2038302c2031322c203230382c203130302c2034302c0a202020202020202020203230382c203132312c2036392c203230382c203134312c2037352c203231322c203136322c2038312c203231372c203137362c2038382c203233362c203139302c2039362c0a202020202020202020203235352c203139372c203130372c2032354d0802352c203230342c203131392c203235352c203230392c203133312c203235352c203231352c203134342c203235352c203231392c0a202020202020202020203135372c203235352c203232332c203137302c203235352c203232332c203137302c203235352c20352c2033302c203132392c20362c2033382c203136352c20382c2034372c0a202020202020202020203230322c2033382c2036312c203231322c2036382c2037362c203232322c2037392c2039302c203233382c2039302c203130342c203235352c203130312c203131372c0a202020202020202020203235352c203131332c203133312c203235352c203132382c203134352c203235352c203134342c203136302c203235352c203135312c203136392c203235352c203135392c0a202020202020202020203137382c203235352c203137352c203139302c203235352c203139322c203230332c203235352c203139322c203230332c203235352c20352c2033302c203132392c20362c0a2020202020202020202033382c203136352c20382c2034372c203230322c2033382c2036312c203231322c2036382c2037362c203232322c2037392c2039302c203233382c2039302c203130342c0a202020202020202020203235352c203130312c203131372c203235352c203131332c203133312c203235352c203132382c203134352c203235352c203134342c203136302c4d0802203235352c203135312c0a202020202020202020203136392c203235352c203135392c203137382c203235352c203137352c203139302c203235352c203139322c203230332c203235352c203139322c203230332c203235352c0a2020202020202020202031322c20342c203133392c2033342c2032342c203136302c2035362c2034352c203138312c2037322c2036322c203139392c2038382c2037392c203231382c2039372c0a2020202020202020202038392c203233362c203130372c203130302c203235352c203132322c203131362c203235352c203133382c203133322c203235352c203134352c203134322c203235352c0a202020202020202020203135332c203135322c203235352c203136352c203136332c203235352c203137372c203137342c203235352c203138342c203138342c203235352c203139322c203139342c0a202020202020202020203235352c203139322c203139342c203235352c2032392c2034312c2039302c2032392c2035362c203131382c2032392c2037322c203134362c2032382c2039322c203137322c0a2020202020202020202032382c203131332c203139382c2035302c203133342c203230372c2037322c203135352c203231372c2037382c203136382c203233362c2038352c203138322c203235352c0a202020202020202020203131322c203139392c203235352c203134302c20324d080231362c203235352c203134372c203231392c203235352c203135352c203232332c203235352c203137352c203232382c0a202020202020202020203235352c203139352c203233332c203235352c203139352c203233332c203235352c2034372c2036372c20322c2035372c2038322c20322c2036382c2039372c20332c0a2020202020202020202036352c203132322c2031382c2036322c203134382c2033332c2037342c203135392c2034362c2038372c203137312c2035392c2039322c203138392c2038352c2039372c0a202020202020202020203230382c203131322c203130352c203232362c203132322c203131342c203234352c203133322c203132342c203235302c203134312c203133352c203235352c203135312c0a202020202020202020203135342c203235352c203136362c203137332c203235352c203138322c203137332c203235352c203138322c2031302c2036352c20382c2031332c2038342c2031302c0a2020202020202020202031362c203130342c2031332c2031392c203132352c2031352c2032322c203134362c2031382c2032352c203136352c2032302c2032382c203138352c2032332c2033302c0a202020202020202020203230312c2032352c2033332c203231372c2032372c2037312c203232382c2034352c203131302c203234302c2036342c203132302c203234372c2037372c203133312c4d08020a202020202020202020203235352c2039312c203135342c203235352c203132322c203137382c203235352c203135342c203137382c203235352c203135342c20342c2036352c2031312c20352c0a2020202020202020202038332c2031342c20362c203130322c2031372c20372c203131392c2032302c20382c203133362c2032332c20392c203135352c2032362c2031312c203137352c2032392c0a2020202020202020202037322c203139362c2033312c203133342c203231372c2033342c203134332c203233332c2033362c203135332c203234392c2033392c203136382c203235322c2036352c0a202020202020202020203138332c203235352c2039312c203230312c203235352c203131302c203232302c203235352c203132392c203232302c203235352c203132392c20322c2035332c2031352c0a20202020202020202020372c2036332c2032312c2031322c2037342c2032382c2034352c2039352c2033302c2037392c203131362c2033322c2038392c203133312c2033362c203130302c203134362c0a2020202020202020202034302c203133302c203136312c2034362c203136312c203137362c2035322c203136392c203139332c2035382c203137382c203231302c2036352c203139362c203231372c0a2020202020202020202036392c203231342c203232352c2037332c203232382c203234302c2037382c204d08023234322c203235352c2038332c203234322c203235352c2038332c0a20202020202020205d3b0a202020202020202076617220746f203d207b20303a204b612c20313a2054612c20323a206b612c20333a2042612c20343a204f612c20353a2046612c20363a204761207d3b0a202020202020202076617220656f203d207b20303a2024612c20313a206a612c20323a2052612c20333a2050612c20343a207a612c20353a2057612c20363a205561207d3b0a2020202020202020766172206e6f203d20333b0a20202020202020206e657720417272617928313331303732293b0a202020202020202076617220666f203d2066756e6374696f6e20287429207b0a20202020202020202020666f7220287661722065203d20303b2065203c20743b20652b2b29207b0a202020202020202020202020696620286f655b305d203e203129207b0a20202020202020202020202020206f655b305d2d2d3b0a2020202020202020202020207d20656c736520696620286f655b305d203d3d203129207b0a20202020202020202020202020206f655b305d203d2061655b305d3b0a202020202020202020202020202070652830293b0a2020202020202020202020207d0a202020202020202020202020696620286f655b315d203e203129207b0a20202020202020202020202020206f655b315d2d2d3b0a2020202020202020202020207d20656c734d08026520696620286f655b315d203d3d203129207b0a20202020202020202020202020206f655b315d203d2061655b315d3b0a202020202020202020202020202070652831293b0a2020202020202020202020207d0a20202020202020202020202074655b41652b2b5d203d202869655b305d202b2069655b315d292026203235353b0a202020202020202020202020696620284165203e3d203230343829207b0a20202020202020202020202020204165203d20303b0a2020202020202020202020207d0a202020202020202020207d0a20202020202020207d3b0a202020202020202076617220756f203d2066756e6374696f6e202829207b7d3b0a2020202020202020766172206c6f203d2066756e6374696f6e20287429207b0a2020202020202020202076617220653b0a20202020202020202020766172206e203d20623b0a202020202020202020207661722072203d20793b0a202020202020202020207661722063203d206e657720417272617928312c2032382c20313134293b0a20202020202020202020666f7220287661722069203d20743b20743b2029207b0a2020202020202020202020207661722061203d20303b0a202020202020202020202020666f72202865203d20303b2065203c2070202f20383b20652b2b29207b0a2020202020202020202020202020766172206f3b0a20202020202020202020202020207661724d08022073203d206e657720417272617928302c20302c2030293b0a20202020202020202020202020207661722066203d20312026204d203f2032203a20313b0a202020202020202020202020202069662028332026204f29207b0a20202020202020202020202020202020666f7220286f203d20303b206f203c20333b206f2b2b29207b0a202020202020202020202020202020202020415b6f5d2b2b3b0a20202020202020202020202020202020202069662028415b6f5d203e3d20635b6f5d29207b0a2020202020202020202020202020202020202020415b6f5d203d20303b0a2020202020202020202020202020202020202020735b6f5d203d20313b0a2020202020202020202020202020202020207d0a202020202020202020202020202020207d0a2020202020202020202020202020202053203d202853202b20312920252031353b0a2020202020202020202020202020202078203d202878202b20312920252033313b0a2020202020202020202020202020202044203d202844202b2031292025203531313b0a202020202020202020202020202020204e203d20284e202b2031292025203133313037313b0a202020202020202020202020202020206966202836342026204d20262620735b305d29207b0a2020202020202020202020202020202020207128302c2031362026204d203f2037203a2034293b0a20202020202020204d080220202020202020207d0a2020202020202020202020202020202069662028212836342026204d29202626202121735b665d29207b0a2020202020202020202020202020202020207128302c2031293b0a202020202020202020202020202020207d0a202020202020202020202020202020206966202833322026204d20262620735b305d29207b0a2020202020202020202020202020202020207128322c20382026204d203f2037203a2034293b0a202020202020202020202020202020207d0a2020202020202020202020202020202069662028212833322026204d29202626202121735b665d29207b0a2020202020202020202020202020202020207128322c2031293b0a202020202020202020202020202020207d0a2020202020202020202020202020202069662028735b665d29207b0a20202020202020202020202020202020202069662028212831362026204d2929207b0a20202020202020202020202020202020202020207128312c2031293b0a2020202020202020202020202020202020207d0a202020202020202020202020202020202020696620282128382026204d2929207b0a20202020202020202020202020202020202020207128332c2031293b0a2020202020202020202020202020202020207d0a202020202020202020202020202020207d0a20202020202020202020202020207d0a202020202020202020204d080220202020696620284b28322929207b0a2020202020202020202020202020202069662028382026204d29207b0a2020202020202020202020202020202020207128332c2031293b0a202020202020202020202020202020207d20656c7365207b0a202020202020202020202020202020202020242832293b0a202020202020202020202020202020207d0a2020202020202020202020202020202074742832293b0a20202020202020202020202020202020515b305d203d20342026204d203f20765b305d203a20313b0a20202020202020202020202020207d0a2020202020202020202020202020696620284b28332929207b0a2020202020202020202020202020202069662028382026204d29207b0a202020202020202020202020202020202020242832293b0a202020202020202020202020202020207d0a20202020202020202020202020202020242833293b0a2020202020202020202020202020202074742833293b0a20202020202020202020202020202020515b315d203d20322026204d203f20765b315d203a20313b0a20202020202020202020202020207d0a202020202020202020202020202069662028382026204f20262620545b315d203d3d203129207b0a20202020202020202020202020202020242830293b0a20202020202020202020202020207d0a2020202020202020202020202020696620284b28302929204d08027b0a202020202020202020202020202020206966202831362026204d29207b0a2020202020202020202020202020202020207128312c2031293b0a202020202020202020202020202020207d20656c7365207b0a202020202020202020202020202020202020242830293b0a202020202020202020202020202020207d0a2020202020202020202020202020202074742830293b0a20202020202020202020202020207d0a2020202020202020202020202020696620284b28312929207b0a202020202020202020202020202020206966202831362026204d29207b0a202020202020202020202020202020202020242830293b0a202020202020202020202020202020207d0a20202020202020202020202020202020242831293b0a2020202020202020202020202020202074742831293b0a20202020202020202020202020207d0a2020202020202020202020202020666f7220287661722075203d20303b2075203c3d20333b20752b2b29207b0a2020202020202020202020202020202061202b3d2028765b755d205e20515b755d207c7c2031362026206d5b755d203f2031352026206d5b755d203a203029203c3c20323b0a20202020202020202020202020207d0a2020202020202020202020207d0a20202020202020202020202061202f3d20653b0a2020202020202020202020206b3b0a2020202020202020202020206e5b725d4d0802203d20613b0a202020202020202020202020722b2b3b0a202020202020202020202020742d2d3b0a202020202020202020207d0a20202020202020202020696620282879202b3d206929203e3d203135333629207b0a20202020202020202020202079203d20303b0a202020202020202020207d0a20202020202020207d3b0a202020202020202076617220686f203d2066756e6374696f6e202829207b0a2020202020202020202055202b3d20703b0a202020202020202020206966202857203c2032323829207b0a202020202020202020202020572b2b3b0a202020202020202020207d0a20202020202020207d3b0a202020202020202076617220416f203d2066756e6374696f6e20287429207b0a2020202020202020202046745b3634305d203d20323535202620287e46745b3634315d207c205174293b0a2020202020202020202069662028745b305d29207b0a20202020202020202020202046745b3634305d203d202d31323920262046745b3634305d2026203235353b0a202020202020202020207d0a2020202020202020202069662028745b315d29207b0a20202020202020202020202046745b3634305d203d202d363520262046745b3634305d2026203235353b0a202020202020202020207d0a2020202020202020202069662028745b325d29207b0a20202020202020202020202046745b3634305d203d202d3333204d0802262046745b3634305d2026203235353b0a202020202020202020207d0a2020202020202020202069662028745b335d29207b0a20202020202020202020202046745b3634305d203d202d313720262046745b3634305d2026203235353b0a202020202020202020207d0a2020202020202020202069662028745b365d29207b0a20202020202020202020202046745b3634305d203d202d3920262046745b3634305d2026203235353b0a202020202020202020207d0a2020202020202020202069662028745b375d29207b0a20202020202020202020202046745b3634305d203d202d3520262046745b3634305d2026203235353b0a202020202020202020207d0a2020202020202020202069662028745b385d29207b0a20202020202020202020202046745b3634305d203d202d3320262046745b3634305d2026203235353b0a202020202020202020207d0a2020202020202020202069662028745b395d29207b0a20202020202020202020202046745b3634305d203d202d3220262046745b3634305d2026203235353b0a202020202020202020207d0a2020202020202020202046745b3634325d203d20323535202620287e46745b3634335d207c204874293b0a20202020202020202020696620287420213d206e756c6c29207b0a20202020202020202020202069662028745b31325d29207b0a2020202020202020202020202020464d0802745b3634325d203d202d3220262046745b3634325d2026203235353b0a2020202020202020202020207d0a20202020202020202020202069662028745b31335d29207b0a202020202020202020202020202046745b3634325d203d202d3320262046745b3634325d2026203235353b0a2020202020202020202020207d0a20202020202020202020202069662028745b31345d29207b0a202020202020202020202020202046745b3634325d203d202d3920262046745b3634325d2026203235353b0a2020202020202020202020207d0a20202020202020202020202069662028745b31355d29207b0a202020202020202020202020202046745b3634325d203d202d363520262046745b3634325d2026203235353b0a2020202020202020202020207d0a20202020202020202020202069662028745b31365d29207b0a202020202020202020202020202046745b3634325d203d202d31323920262046745b3634325d2026203235353b0a2020202020202020202020207d0a202020202020202020207d0a20202020202020202020696620283420262046745b3634325d29207b0a20202020202020202020202046745b385d20263d203132373b0a20202020202020202020202046745b395d20263d203132373b0a20202020202020202020202069662028745b345d207c7c20745b355d29207b0a202020202020202020202020202046745b4d080231325d20263d203132373b0a2020202020202020202020207d20656c7365207b0a202020202020202020202020202046745b31325d207c3d203132383b0a2020202020202020202020207d0a202020202020202020207d20656c7365207b0a20202020202020202020202046745b31325d207c3d203132383b0a20202020202020202020202069662028745b345d29207b0a202020202020202020202020202046745b395d207c3d203132383b0a2020202020202020202020207d20656c7365207b0a202020202020202020202020202046745b395d20263d203132373b0a2020202020202020202020207d0a20202020202020202020202069662028745b355d29207b0a202020202020202020202020202046745b385d207c3d203132383b0a2020202020202020202020207d20656c7365207b0a202020202020202020202020202046745b385d20263d203132373b0a2020202020202020202020207d0a202020202020202020207d0a2020202020202020202069662028313620262046745b3634325d29207b0a20202020202020202020202046745b31305d20263d203132373b0a20202020202020202020202046745b31315d20263d203132373b0a20202020202020202020202069662028745b31305d207c7c20745b31315d29207b0a202020202020202020202020202046745b31335d20263d203132373b0a2020202020202020204d08022020207d20656c7365207b0a202020202020202020202020202046745b31335d207c3d203132383b0a2020202020202020202020207d0a202020202020202020207d20656c7365207b0a20202020202020202020202046745b31335d207c3d203132383b0a20202020202020202020202069662028745b31305d29207b0a202020202020202020202020202046745b31315d207c3d203132383b0a2020202020202020202020207d20656c7365207b0a202020202020202020202020202046745b31315d20263d203132373b0a2020202020202020202020207d0a20202020202020202020202069662028745b31315d29207b0a202020202020202020202020202046745b31305d207c3d203132383b0a2020202020202020202020207d20656c7365207b0a202020202020202020202020202046745b31305d20263d203132373b0a2020202020202020202020207d0a202020202020202020207d0a20202020202020207d3b0a202020202020202076617220706f203d2066756e6374696f6e202829207b0a2020202020202020202072657475726e207a743b0a20202020202020207d3b0a202020202020202076617220626f203d2066756e6374696f6e20287429207b0a202020202020202020205674202d3d20743b0a2020202020202020202069662028215974202626205674203e203029207b0a2020202020202020202020204774284d08023634342c20285674202f205a7429207c2030293b0a202020202020202020207d20656c73652069662028597429207b0a202020202020202020202020696620285674203e3d202d32353529207b0a20202020202020202020202020204774283634342c203235352026205674293b0a2020202020202020202020207d20656c7365207b0a20202020202020202020202020204774283634342c2030293b0a20202020202020202020202020207a74203d2066616c73653b0a2020202020202020202020207d0a202020202020202020207d20656c7365207b0a2020202020202020202020205674203d205a743b0a2020202020202020202020204774283634342c2030293b0a20202020202020202020202046745b3634355d207c3d203132383b0a20202020202020202020202046745b3636315d207c3d203132383b0a2020202020202020202020205974203d20747275653b0a202020202020202020207d0a20202020202020207d3b0a202020202020202076617220676f203d2044693b0a202020202020202076617220796f203d2066756e6374696f6e20287429207b0a2020202020202020202069662028566929207b0a2020202020202020202020207869203d2048653b0a202020202020202020207d0a202020202020202020206a69203d20303b0a202020202020202020205269203d2031323820262053695b36305d3b0a2020204d0802202020202020205969203d2066616c73653b0a202020202020202020206966202828393620262053695b36305d2920213d2036342026262074203e3d204e692e746f702026262074203c3d204e692e626f74746f6d29207b0a2020202020202020202020207661722065203d204b692830293b0a202020202020202020202020766172206e203d202874202d2044692e746f7029202a2044692e4765744c656e67746828293b0a202020202020202020202020666f7220287661722072203d20303b2072203c203136303b20722b2b29207b0a20202020202020202020202020205f695b6e2b2b5d203d20653b0a20202020202020202020202020205f695b6e2b2b5d203d20653b0a2020202020202020202020207d0a202020202020202020207d20656c736520696620280a20202020202020202020202028393620262053695b36305d29203d3d2036342026260a20202020202020202020202074203e3d2044692e746f702026260a20202020202020202020202074203c3d2044692e626f74746f6d2026260a2020202020202020202020202874203d3d2044692e746f702026260a20202020202020202020202020202850692e736574424c2853695b34385d292c0a202020202020202020202020202050692e73657442482853695b34345d292c0a2020202020202020202020202020285569203d203332202620284869203f2053695b4d080250692e6765745728295d203a2078692850692e6765745728292929292c0a2020202020202020202020202020285a69203d203634202620284869203f2053695b50692e6765745728295d203a2078692850692e6765745728292929292c0a2020202020202020202020202020285769203d203135202620284869203f2053695b50692e6765745728295d203a2078692850692e6765745728292929292c0a20202020202020202020202020204f692e736574424c284869203f2053695b50692e676574572829202b20325d203a2078692850692e676574572829202b203229292c0a20202020202020202020202020204f692e7365744248284869203f2053695b50692e676574572829202b20315d203a2078692850692e676574572829202b203129292c0a2020202020202020202020202020313238202620284869203f2053695b50692e6765745728295d203a2078692850692e676574572829292920262620285969203d207472756529292c0a20202020202020202020202074203e3d2044692e746f70202626207420213d2044692e626f74746f6d290a2020202020202020202029207b0a2020202020202020202020204f692e736574424c284869203f2053695b50692e676574572829202b20325d203a2078692850692e676574572829202b203229293b0a2020202020202020202020204f692e7365744248284869203f2053695b4d080250692e676574572829202b20315d203a2078692850692e676574572829202b203129293b0a2020202020202020202020204269203d2054695b6b695d3b0a2020202020202020202020202866756e6374696f6e202829207b0a20202020202020202020202020206a69202b3d2031363b0a2020202020202020202020202020666f7220280a202020202020202020202020202020207661722074203d204869203f2053695b4f692e676574572829202b20315d203a207869284f692e676574572829202b2031293b0a20202020202020202020202020202020393520262074202626206a69203c203432383b0a0a202020202020202020202020202029207b0a202020202020202020202020202020207661722065203d20303b0a20202020202020202020202020202020766172206e203d20303b0a2020202020202020202020202020202046692e736574424c284869203f2053695b4f692e6765745728295d203a207869284f692e67657457282929293b0a2020202020202020202020202020202046692e7365744248284869203f2053695b4f692e676574572829202b20325d203a207869284f692e676574572829202b203229293b0a202020202020202020202020202020206966202833312026207429207b0a2020202020202020202020202020202020206a69202b3d20383b0a2020202020202020202020202020202020207a69204d08023d0a20202020202020202020202020202020202020202828323234202620284869203f2053695b4f692e676574572829202b20315d203a207869284f692e676574572829202b2031292929203e3e3e0a20202020202020202020202020202020202020202020332920260a20202020202020202020202020202020202020203235353b0a2020202020202020202020202020202020204769203d204869203f2053695b4f692e676574572829202b20335d203a207869284f692e676574572829202b2033293b0a20202020202020202020202020202020202065203d0a20202020202020202020202020202020202020202831202b0a2020202020202020202020202020202020202020202028333120260a2020202020202020202020202020202020202020202020207e2865203d0a20202020202020202020202020202020202020202020202020203331202620284869203f2053695b4f692e676574572829202b20315d203a207869284f692e676574572829202b2031292929292920260a20202020202020202020202020202020202020203235353b0a2020202020202020202020202020202020204f692e77506c7573457175616c2834293b0a202020202020202020202020202020207d20656c7365207b0a2020202020202020202020202020202020206a69202b3d2031303b0a2020202020202020202020202020202020207a69204d08023d0a20202020202020202020202020202020202020202828323234202620284869203f2053695b4f692e676574572829202b20335d203a207869284f692e676574572829202b2033292929203e3e3e0a20202020202020202020202020202020202020202020332920260a20202020202020202020202020202020202020203235353b0a2020202020202020202020202020202020204769203d204869203f2053695b4f692e676574572829202b20345d203a207869284f692e676574572829202b2034293b0a2020202020202020202020202020202020206e203d203332202620284869203f2053695b4f692e676574572829202b20315d203a207869284f692e676574572829202b203129293b0a2020202020202020202020202020202020205169203d20313238202620284869203f2053695b4f692e676574572829202b20315d203a207869284f692e676574572829202b203129293b0a20202020202020202020202020202020202065203d0a202020202020202020202020202020202020202032353520260a2020202020202020202020202020202020202020282865203d203331202620284869203f2053695b4f692e676574572829202b20335d203a207869284f692e676574572829202b2033292929203d3d0a2020202020202020202020202020202020202020300a202020202020202020202020202020202020202020203f4d08022033320a202020202020202020202020202020202020202020203a2031202b202833312026207e6529293b0a2020202020202020202020202020202020204f692e77506c7573457175616c2835293b0a202020202020202020202020202020207d0a202020202020202020202020202020207661722072203d2066616c73653b0a20202020202020202020202020202020696620286e29207b0a2020202020202020202020202020202020207661722063203d20313620262053695b36305d3b0a20202020202020202020202020202020202065612e636f7079284669293b0a202020202020202020202020202020202020666f72202869203d20303b2069203c20652026262021286a69203e3d20343238293b20692b2b29207b0a202020202020202020202020202020202020202046692e736574424c284869203f2053695b65612e77506c7573506c757328295d203a2078692865612e77506c7573506c7573282929293b0a202020202020202020202020202020202020202046692e73657442482853695b35325d202b205769293b0a2020202020202020202020202020202020202020696620287169282929207b0a2020202020202020202020202020202020202020202069662028217229207b0a2020202020202020202020202020202020202020202020206a69202b3d20333b0a20202020202020202020202020202020202020204d08022020202072203d20747275653b0a202020202020202020202020202020202020202020207d0a20202020202020202020202020202020202020207d20656c7365207b0a202020202020202020202020202020202020202020206a69202b3d20363b0a20202020202020202020202020202020202020202020696620286329207b0a2020202020202020202020202020202020202020202020206a69202b3d20333b0a202020202020202020202020202020202020202020207d0a20202020202020202020202020202020202020207d0a2020202020202020202020202020202020202020246928293b0a2020202020202020202020202020202020202020696620286329207b0a20202020202020202020202020202020202020202020246928293b0a20202020202020202020202020202020202020207d0a2020202020202020202020202020202020207d0a202020202020202020202020202020207d20656c7365207b0a20202020202020202020202020202020202046692e6268506c7573457175616c285769293b0a202020202020202020202020202020202020666f7220287661722069203d20303b2069203c20652026262021286a69203e3d20343238293b20692b2b29207b0a2020202020202020202020202020202020202020696620287169282929207b0a202020202020202020202020202020202020202020206966202821724d080229207b0a2020202020202020202020202020202020202020202020206a69202b3d20333b0a20202020202020202020202020202020202020202020202072203d20747275653b0a202020202020202020202020202020202020202020207d0a20202020202020202020202020202020202020207d20656c7365207b0a202020202020202020202020202020202020202020206a69202b3d20333b0a20202020202020202020202020202020202020207d0a2020202020202020202020202020202020202020246928293b0a2020202020202020202020202020202020207d0a202020202020202020202020202020207d0a2020202020202020202020202020202074203d204869203f2053695b4f692e676574572829202b20315d203a207869284f692e676574572829202b2031293b0a20202020202020202020202020207d0a2020202020202020202020202020696620285769203d3d203029207b0a202020202020202020202020202020206a69202b3d20363b0a2020202020202020202020202020202069662028313238202620284869203f2053695b50692e676574572829202b20335d203a2078692850692e676574572829202b2033292929207b0a2020202020202020202020202020202020206a69202b3d2031373b0a202020202020202020202020202020207d0a20202020202020202020202020207d0a2020202020202020204d08022020207d2928293b0a2020202020202020202020204269203d2054695b286b69203d206b69203d3d2031203f2030203a2031295d3b0a2020202020202020202020206966202874203e3d204e692e746f702026262074203c3d204e692e626f74746f6d29207b0a20202020202020202020202020202866756e6374696f6e2028742c206529207b0a20202020202020202020202020202020766172206e203d203320262053695b36305d3b0a202020202020202020202020202020207661722072203d20653b0a20202020202020202020202020202020696620286e203d3d203029207b0a202020202020202020202020202020202020666f7220287661722063203d20303b2063203c203136303b2063202b3d203429207b0a202020202020202020202020202020202020202076617220693b0a202020202020202020202020202020202020202069203d204b692842695b63202b20305d293b0a2020202020202020202020202020202020202020745b722b2b5d203d20693b0a2020202020202020202020202020202020202020745b722b2b5d203d20693b0a202020202020202020202020202020202020202069203d204b692842695b63202b20315d293b0a2020202020202020202020202020202020202020745b722b2b5d203d20693b0a2020202020202020202020202020202020202020745b722b2b5d203d20693b0a20202020204d080220202020202020202020202020202069203d204b692842695b63202b20325d293b0a2020202020202020202020202020202020202020745b722b2b5d203d20693b0a2020202020202020202020202020202020202020745b722b2b5d203d20693b0a202020202020202020202020202020202020202069203d204b692842695b63202b20335d293b0a2020202020202020202020202020202020202020745b722b2b5d203d20693b0a2020202020202020202020202020202020202020745b722b2b5d203d20693b0a202020202020202020202020202020202020202069662028526929207b0a20202020202020202020202020202020202020202020746128742c2072202d2038293b0a20202020202020202020202020202020202020207d0a2020202020202020202020202020202020207d0a202020202020202020202020202020207d20656c736520696620286e203d3d203229207b0a202020202020202020202020202020202020666f72202863203d20303b2063203c203136303b2063202b3d203429207b0a2020202020202020202020202020202020202020745b722b2b5d203d204b69280a2020202020202020202020202020202020202020202028313620262042695b63202b20305d29207c0a20202020202020202020202020202020202020202020202028283820262042695b63202b20305d29203e3e3e203329207c0a204d08022020202020202020202020202020202020202020202020283220262042695b63202b20305d290a2020202020202020202020202020202020202020293b0a2020202020202020202020202020202020202020745b722b2b5d203d204b69280a2020202020202020202020202020202020202020202028313620262042695b63202b20305d29207c0a20202020202020202020202020202020202020202020202028283420262042695b63202b20305d29203e3e3e203229207c0a20202020202020202020202020202020202020202020202028283120262042695b63202b20305d29203c3c2031290a2020202020202020202020202020202020202020293b0a2020202020202020202020202020202020202020745b722b2b5d203d204b69280a2020202020202020202020202020202020202020202028313620262042695b63202b20315d29207c0a20202020202020202020202020202020202020202020202028283820262042695b63202b20315d29203e3e3e203329207c0a202020202020202020202020202020202020202020202020283220262042695b63202b20315d290a2020202020202020202020202020202020202020293b0a2020202020202020202020202020202020202020745b722b2b5d203d204b69280a2020202020202020202020202020202020202020202028313620262042695b63202b20315d29207c0a2020204d080220202020202020202020202020202020202020202028283420262042695b63202b20315d29203e3e3e203229207c0a20202020202020202020202020202020202020202020202028283120262042695b63202b20315d29203c3c2031290a2020202020202020202020202020202020202020293b0a2020202020202020202020202020202020202020745b722b2b5d203d204b69280a2020202020202020202020202020202020202020202028313620262042695b63202b20325d29207c0a20202020202020202020202020202020202020202020202028283820262042695b63202b20325d29203e3e3e203329207c0a202020202020202020202020202020202020202020202020283220262042695b63202b20325d290a2020202020202020202020202020202020202020293b0a2020202020202020202020202020202020202020745b722b2b5d203d204b69280a2020202020202020202020202020202020202020202028313620262042695b63202b20325d29207c0a20202020202020202020202020202020202020202020202028283420262042695b63202b20325d29203e3e3e203229207c0a20202020202020202020202020202020202020202020202028283120262042695b63202b20325d29203c3c2031290a2020202020202020202020202020202020202020293b0a2020202020202020202020202020202020202020745b4d0802722b2b5d203d204b69280a2020202020202020202020202020202020202020202028313620262042695b63202b20335d29207c0a20202020202020202020202020202020202020202020202028283820262042695b63202b20335d29203e3e3e203329207c0a202020202020202020202020202020202020202020202020283220262042695b63202b20335d290a2020202020202020202020202020202020202020293b0a2020202020202020202020202020202020202020745b722b2b5d203d204b69280a2020202020202020202020202020202020202020202028313620262042695b63202b20335d29207c0a20202020202020202020202020202020202020202020202028283420262042695b63202b20335d29203e3e3e203229207c0a20202020202020202020202020202020202020202020202028283120262042695b63202b20335d29203c3c2031290a2020202020202020202020202020202020202020293b0a202020202020202020202020202020202020202069662028526929207b0a20202020202020202020202020202020202020202020746128742c2072202d2038293b0a20202020202020202020202020202020202020207d0a2020202020202020202020202020202020207d0a202020202020202020202020202020207d20656c736520696620286e203d3d203329207b0a202020202020202020202020202020204d08022020666f72202863203d20303b2063203c203136303b2063202b3d203429207b0a2020202020202020202020202020202020202020745b722b2b5d203d204b6928333020262042695b63202b20305d293b0a2020202020202020202020202020202020202020745b722b2b5d203d204b692828323820262042695b63202b20305d29207c2028283120262042695b63202b20305d29203c3c203129293b0a2020202020202020202020202020202020202020745b722b2b5d203d204b6928333020262042695b63202b20315d293b0a2020202020202020202020202020202020202020745b722b2b5d203d204b692828323820262042695b63202b20315d29207c2028283120262042695b63202b20315d29203c3c203129293b0a2020202020202020202020202020202020202020745b722b2b5d203d204b6928333020262042695b63202b20325d293b0a2020202020202020202020202020202020202020745b722b2b5d203d204b692828323820262042695b63202b20325d29207c2028283120262042695b63202b20325d29203c3c203129293b0a2020202020202020202020202020202020202020745b722b2b5d203d204b6928333020262042695b63202b20335d293b0a2020202020202020202020202020202020202020745b722b2b5d203d204b692828323820262042695b63202b20335d29207c2028283120262042695b63202b4d080220335d29203c3c203129293b0a202020202020202020202020202020202020202069662028526929207b0a20202020202020202020202020202020202020202020746128742c2072202d2038293b0a20202020202020202020202020202020202020207d0a2020202020202020202020202020202020207d0a202020202020202020202020202020207d0a20202020202020202020202020207d29285f692c202874202d2044692e746f7029202a2044692e4765744c656e6774682829293b0a2020202020202020202020207d0a202020202020202020202020666f72202872203d20303b2072203c203136303b20722b2b29207b0a202020202020202020202020202042695b725d203d20303b0a2020202020202020202020207d0a2020202020202020202020206966202874203e2044692e746f7029207b0a2020202020202020202020202020696620285769203d3d203029207b0a2020202020202020202020202020202050692e77506c7573457175616c2833293b0a202020202020202020202020202020205569203d203332202620284869203f2053695b50692e6765745728295d203a2078692850692e67657457282929293b0a202020202020202020202020202020205a69203d203634202620284869203f2053695b50692e6765745728295d203a2078692850692e67657457282929293b0a20202020202020202020202020204d080220205769203d203135202620284869203f2053695b50692e6765745728295d203a2078692850692e67657457282929293b0a2020202020202020202020202020202069662028313238202620284869203f2053695b50692e6765745728295d203a2078692850692e676574572829292929207b0a2020202020202020202020202020202020205969203d20747275653b0a202020202020202020202020202020207d0a20202020202020202020202020207d20656c7365207b0a2020202020202020202020202020202057692d2d3b0a20202020202020202020202020207d0a2020202020202020202020207d0a202020202020202020207d0a2020202020202020202069662028566929207b0a2020202020202020202020207869203d2051653b0a202020202020202020207d0a2020202020202020202072657475726e206a693b0a20202020202020207d3b0a202020202020202076617220776f203d2066756e6374696f6e202829207b0a2020202020202020202072657475726e2059693b0a20202020202020207d3b0a2020202020202020766172206d6f203d204e653b0a2020202020202020766172204d6f203d2066756e6374696f6e202829207b0a202020202020202020207063203d2066616c73653b0a2020202020202020202076617220743b0a202020202020202020207661722065203d2064632e77506c7573506c7573284d0802293b0a2020202020202020202073776974636820280a20202020202020202020202028286c63203d207263286529292c0a202020202020202020202020284163203d204e635b6c635d29203d3d3d20766f696420300a20202020202020202020202020203f20636f6e736f6c652e6572726f72280a20202020202020202020202020202020202027556e6b6e6f776e206f70636f64652c206d656d206c6f636174696f6e3a2025642c202564272c0a202020202020202020202020202020202020652c0a2020202020202020202020202020202020206c632e746f537472696e67283136290a20202020202020202020202020202020290a20202020202020202020202020203a204c692d2d203e20302026260a20202020202020202020202020202020636f6e736f6c652e6c6f67280a202020202020202020202020202020202020274f70636f64653a2573202564202564202564202564272c0a2020202020202020202020202020202020206c632e746f537472696e67283136292c0a20202020202020202020202020202020202041632c0a2020202020202020202020202020202020204a6f28292c0a202020202020202020202020202020202020496f2c0a2020202020202020202020202020202020205f6f0a20202020202020202020202020202020292c0a2020202020202020202020206c63290a2020202020202020202029207b4d08020a2020202020202020202020206361736520303a0a202020202020202020202020202064632e77506c7573506c757328293b0a20202020202020202020202020206663207c3d206d633b0a20202020202020202020202020205f632864632e67657442482829293b0a20202020202020202020202020205f632864632e676574424c2829293b0a20202020202020202020202020205f63286663293b0a20202020202020202020202020206663207c3d2079633b0a202020202020202020202020202064632e736574424c2869635b44635d293b0a202020202020202020202020202064632e73657442482869635b78635d293b0a202020202020202020202020202072657475726e2041633b0a2020202020202020202020206361736520313a0a2020202020202020202020202020556328293b0a2020202020202020202020202020646928293b0a202020202020202020202020202072657475726e2041633b0a2020202020202020202020206361736520353a0a2020202020202020202020202020486328293b0a2020202020202020202020202020646928293b0a202020202020202020202020202072657475726e2041633b0a2020202020202020202020206361736520363a0a2020202020202020202020202020486328293b0a2020202020202020202020202020716328293b0a202020202020202020202020202072657475726e4d08022041633b0a2020202020202020202020206361736520383a0a2020202020202020202020202020686928293b0a202020202020202020202020202072657475726e2041633b0a2020202020202020202020206361736520393a0a2020202020202020202020202020576328293b0a2020202020202020202020202020646928293b0a202020202020202020202020202072657475726e2041633b0a202020202020202020202020636173652031303a0a202020202020202020202020202069662028313238202620616329207b0a202020202020202020202020202020206663207c3d2062633b0a20202020202020202020202020207d20656c7365207b0a202020202020202020202020202020206663203d2066632026207e62632026203235353b0a20202020202020202020202020207d0a20202020202020202020202020206b6328286163203d20286163203c3c20312920262032353529293b0a202020202020202020202020202072657475726e2041633b0a202020202020202020202020636173652031333a0a2020202020202020202020202020466328293b0a2020202020202020202020202020646928293b0a202020202020202020202020202072657475726e2041633b0a202020202020202020202020636173652031343a0a2020202020202020202020202020466328293b0a2020202020202020202020202020716328294d08023b0a202020202020202020202020202072657475726e2041633b0a202020202020202020202020636173652031363a0a2020202020202020202020202020516328293b0a20202020202020202020202020206a6328212866632026204c6329293b0a202020202020202020202020202072657475726e2041633b0a202020202020202020202020636173652031373a0a20202020202020202020202020205a6328293b0a2020202020202020202020202020646928293b0a20202020202020202020202020204f63287363293b0a202020202020202020202020202072657475726e2041633b0a202020202020202020202020636173652032313a0a2020202020202020202020202020596328293b0a2020202020202020202020202020646928293b0a202020202020202020202020202072657475726e2041633b0a202020202020202020202020636173652032323a0a2020202020202020202020202020596328293b0a2020202020202020202020202020716328293b0a202020202020202020202020202072657475726e2041633b0a202020202020202020202020636173652032343a0a20202020202020202020202020206663203d2066632026207e62632026203235353b0a202020202020202020202020202072657475726e2041633b0a202020202020202020202020636173652032353a0a20202020202020202020202020207a4d08026328293b0a2020202020202020202020202020646928293b0a20202020202020202020202020204f63287363293b0a202020202020202020202020202072657475726e2041633b0a202020202020202020202020636173652032393a0a2020202020202020202020202020476328293b0a2020202020202020202020202020646928293b0a20202020202020202020202020204f63286f63293b0a202020202020202020202020202072657475726e2041633b0a202020202020202020202020636173652033303a0a2020202020202020202020202020476328293b0a2020202020202020202020202020716328293b0a202020202020202020202020202072657475726e2041633b0a202020202020202020202020636173652033323a0a2020202020202020202020202020466328293b0a202020202020202020202020202064632e774d696e75734d696e757328293b0a20202020202020202020202020205f632864632e67657442482829293b0a20202020202020202020202020205f632864632e676574424c2829293b0a202020202020202020202020202064632e636f7079286863293b0a202020202020202020202020202072657475726e2041633b0a202020202020202020202020636173652033333a0a2020202020202020202020202020556328293b0a2020202020202020202020202020586328293b0a20202020202020204d080220202020202072657475726e2041633b0a202020202020202020202020636173652033363a0a2020202020202020202020202020486328293b0a20202020202020202020202020204b6328293b0a20202020202020202020202020206966202868632e676574572829203d3d20313229207b0a202020202020202020202020202020207063203d20747275653b0a20202020202020202020202020207d0a202020202020202020202020202072657475726e2041633b0a202020202020202020202020636173652033373a0a2020202020202020202020202020486328293b0a2020202020202020202020202020586328293b0a202020202020202020202020202072657475726e2041633b0a202020202020202020202020636173652033383a0a2020202020202020202020202020486328293b0a2020202020202020202020202020626928293b0a202020202020202020202020202072657475726e2041633b0a202020202020202020202020636173652034303a0a2020202020202020202020202020706928293b0a202020202020202020202020202072657475726e2041633b0a202020202020202020202020636173652034313a0a2020202020202020202020202020576328293b0a2020202020202020202020202020586328293b0a202020202020202020202020202072657475726e2041633b0a202020202020202020202020634d08026173652034323a0a20202020202020202020202020202866756e6374696f6e202829207b0a202020202020202020202020202020207661722074203d2066633b0a2020202020202020202020202020202069662028313238202620616329207b0a2020202020202020202020202020202020206663207c3d2062633b0a202020202020202020202020202020207d20656c7365207b0a2020202020202020202020202020202020206663203d2066632026207e62632026203235353b0a202020202020202020202020202020207d0a202020202020202020202020202020206163203d20286163203c3c2031292026203235353b0a202020202020202020202020202020206b6328286163207c3d2074202620626329293b0a20202020202020202020202020207d2928293b0a202020202020202020202020202072657475726e2041633b0a202020202020202020202020636173652034343a0a2020202020202020202020202020466328293b0a20202020202020202020202020204b6328293b0a202020202020202020202020202072657475726e2041633b0a202020202020202020202020636173652034353a0a2020202020202020202020202020466328293b0a2020202020202020202020202020586328293b0a202020202020202020202020202072657475726e2041633b0a202020202020202020202020636173652034363a0a204d080220202020202020202020202020466328293b0a2020202020202020202020202020626928293b0a202020202020202020202020202072657475726e2041633b0a202020202020202020202020636173652034383a0a2020202020202020202020202020516328293b0a20202020202020202020202020206a632866632026204c63293b0a202020202020202020202020202072657475726e2041633b0a202020202020202020202020636173652034393a0a20202020202020202020202020205a6328293b0a2020202020202020202020202020586328293b0a20202020202020202020202020204f63287363293b0a202020202020202020202020202072657475726e2041633b0a202020202020202020202020636173652035333a0a2020202020202020202020202020596328293b0a2020202020202020202020202020586328293b0a202020202020202020202020202072657475726e2041633b0a202020202020202020202020636173652035343a0a2020202020202020202020202020596328293b0a2020202020202020202020202020626928293b0a202020202020202020202020202072657475726e2041633b0a202020202020202020202020636173652035363a0a20202020202020202020202020206663207c3d2062633b0a202020202020202020202020202072657475726e2041633b0a202020202020202020202020634d08026173652035373a0a20202020202020202020202020207a6328293b0a2020202020202020202020202020586328293b0a20202020202020202020202020204f63287363293b0a202020202020202020202020202072657475726e2041633b0a202020202020202020202020636173652036313a0a2020202020202020202020202020476328293b0a2020202020202020202020202020586328293b0a20202020202020202020202020204f63286f63293b0a202020202020202020202020202072657475726e2041633b0a202020202020202020202020636173652036323a0a2020202020202020202020202020476328293b0a2020202020202020202020202020626928293b0a202020202020202020202020202072657475726e2041633b0a202020202020202020202020636173652036343a0a20202020202020202020202020206663203d20546328293b0a202020202020202020202020202064632e736574424c2854632829293b0a202020202020202020202020202064632e73657442482854632829293b0a202020202020202020202020202072657475726e2041633b0a202020202020202020202020636173652036353a0a2020202020202020202020202020556328293b0a2020202020202020202020202020726928293b0a202020202020202020202020202072657475726e2041633b0a20202020202020202020202063614d080273652036393a0a2020202020202020202020202020486328293b0a2020202020202020202020202020726928293b0a202020202020202020202020202072657475726e2041633b0a202020202020202020202020636173652037303a0a2020202020202020202020202020486328293b0a2020202020202020202020202020756928293b0a202020202020202020202020202072657475726e2041633b0a202020202020202020202020636173652037323a0a20202020202020202020202020206c6928293b0a202020202020202020202020202072657475726e2041633b0a202020202020202020202020636173652037333a0a2020202020202020202020202020576328293b0a2020202020202020202020202020726928293b0a202020202020202020202020202072657475726e2041633b0a202020202020202020202020636173652037343a0a2020202020202020202020202020666928293b0a202020202020202020202020202072657475726e2041633b0a202020202020202020202020636173652037363a0a2020202020202020202020202020466328293b0a2020202020202020202020202020696928293b0a202020202020202020202020202072657475726e2041633b0a202020202020202020202020636173652037373a0a2020202020202020202020202020466328293b0a20202020202020202020202020207269284d0802293b0a202020202020202020202020202072657475726e2041633b0a202020202020202020202020636173652037383a0a2020202020202020202020202020466328293b0a2020202020202020202020202020756928293b0a202020202020202020202020202072657475726e2041633b0a202020202020202020202020636173652038303a0a2020202020202020202020202020516328293b0a20202020202020202020202020206a632821286663202620766329293b0a202020202020202020202020202072657475726e2041633b0a202020202020202020202020636173652038313a0a20202020202020202020202020205a6328293b0a2020202020202020202020202020726928293b0a20202020202020202020202020204f63287363293b0a202020202020202020202020202072657475726e2041633b0a202020202020202020202020636173652038353a0a2020202020202020202020202020596328293b0a2020202020202020202020202020726928293b0a202020202020202020202020202072657475726e2041633b0a202020202020202020202020636173652038363a0a2020202020202020202020202020596328293b0a2020202020202020202020202020756928293b0a202020202020202020202020202072657475726e2041633b0a202020202020202020202020636173652038383a0a2020202020202020204d080220202020206663203d2066632026207e79632026203235353b0a202020202020202020202020202072657475726e2041633b0a202020202020202020202020636173652038393a0a20202020202020202020202020207a6328293b0a2020202020202020202020202020726928293b0a20202020202020202020202020204f63287363293b0a202020202020202020202020202072657475726e2041633b0a202020202020202020202020636173652039333a0a2020202020202020202020202020476328293b0a2020202020202020202020202020726928293b0a20202020202020202020202020204f63286f63293b0a202020202020202020202020202072657475726e2041633b0a202020202020202020202020636173652039343a0a2020202020202020202020202020476328293b0a2020202020202020202020202020756928293b0a202020202020202020202020202072657475726e2041633b0a202020202020202020202020636173652039363a0a202020202020202020202020202064632e736574424c2854632829293b0a202020202020202020202020202064632e73657442482854632829293b0a202020202020202020202020202064632e77506c7573506c757328293b0a202020202020202020202020202072657475726e2041633b0a202020202020202020202020636173652039373a0a202020202020202020204d080220202020556328293b0a20202020202020202020202020204a6328293b0a202020202020202020202020202072657475726e2041633b0a20202020202020202020202063617365203130313a0a2020202020202020202020202020486328293b0a20202020202020202020202020204a6328293b0a202020202020202020202020202072657475726e2041633b0a20202020202020202020202063617365203130323a0a2020202020202020202020202020486328293b0a2020202020202020202020202020676928293b0a202020202020202020202020202072657475726e2041633b0a20202020202020202020202063617365203130343a0a2020202020202020202020202020416928293b0a202020202020202020202020202072657475726e2041633b0a20202020202020202020202063617365203130353a0a2020202020202020202020202020576328293b0a20202020202020202020202020204a6328293b0a202020202020202020202020202072657475726e2041633b0a20202020202020202020202063617365203130363a0a20202020202020202020202020202866756e6374696f6e202829207b0a202020202020202020202020202020207661722074203d2066633b0a202020202020202020202020202020206663203d2066632026207e62632026203235353b0a202020202020202020202020202020206663207c3d4d0802203120262061633b0a202020202020202020202020202020206163203d20286163203e3e3e2031292026203235353b0a202020202020202020202020202020206966202874202620626329207b0a2020202020202020202020202020202020206163207c3d203132383b0a202020202020202020202020202020207d0a202020202020202020202020202020206b63286163293b0a20202020202020202020202020207d2928293b0a202020202020202020202020202072657475726e2041633b0a20202020202020202020202063617365203130383a0a20202020202020202020202020202874203d206e6577206e632829292e736574424c2872632864632e77506c7573506c7573282929293b0a2020202020202020202020202020742e73657442482872632864632e77506c7573506c7573282929293b0a202020202020202020202020202068632e736574424c28726328742e67657457282929293b0a202020202020202020202020202068632e736574424828726328742e676574572829202b203129293b0a2020202020202020202020202020696928293b0a202020202020202020202020202072657475726e2041633b0a20202020202020202020202063617365203130393a0a2020202020202020202020202020466328293b0a20202020202020202020202020204a6328293b0a2020202020202020202020202020726574754d0802726e2041633b0a20202020202020202020202063617365203131303a0a2020202020202020202020202020466328293b0a2020202020202020202020202020676928293b0a202020202020202020202020202072657475726e2041633b0a20202020202020202020202063617365203131323a0a2020202020202020202020202020516328293b0a20202020202020202020202020206a632866632026207663293b0a202020202020202020202020202072657475726e2041633b0a20202020202020202020202063617365203131333a0a20202020202020202020202020205a6328293b0a20202020202020202020202020204a6328293b0a20202020202020202020202020204f63287363293b0a202020202020202020202020202072657475726e2041633b0a20202020202020202020202063617365203131373a0a2020202020202020202020202020596328293b0a20202020202020202020202020204a6328293b0a202020202020202020202020202072657475726e2041633b0a20202020202020202020202063617365203131383a0a2020202020202020202020202020596328293b0a2020202020202020202020202020676928293b0a202020202020202020202020202072657475726e2041633b0a20202020202020202020202063617365203132303a0a20202020202020202020202020206663207c3d2079633b0a2020204d0802202020202020202020202072657475726e2041633b0a20202020202020202020202063617365203132313a0a20202020202020202020202020207a6328293b0a20202020202020202020202020204a6328293b0a20202020202020202020202020204f63287363293b0a202020202020202020202020202072657475726e2041633b0a20202020202020202020202063617365203132353a0a2020202020202020202020202020476328293b0a20202020202020202020202020204a6328293b0a20202020202020202020202020204f63286f63293b0a202020202020202020202020202072657475726e2041633b0a20202020202020202020202063617365203132363a0a2020202020202020202020202020476328293b0a2020202020202020202020202020676928293b0a202020202020202020202020202072657475726e2041633b0a20202020202020202020202063617365203132393a0a2020202020202020202020202020556328293b0a2020202020202020202020202020776928293b0a202020202020202020202020202072657475726e2041633b0a20202020202020202020202063617365203133323a0a2020202020202020202020202020486328293b0a20202020202020202020202020204d6928293b0a202020202020202020202020202072657475726e2041633b0a202020202020202020202020636173652031334d0802333a0a2020202020202020202020202020486328293b0a2020202020202020202020202020776928293b0a202020202020202020202020202072657475726e2041633b0a20202020202020202020202063617365203133343a0a2020202020202020202020202020486328293b0a20202020202020202020202020206d6928293b0a202020202020202020202020202072657475726e2041633b0a20202020202020202020202063617365203133363a0a20202020202020202020202020206b6328287363203d20287363202d20312920262032353529293b0a202020202020202020202020202072657475726e2041633b0a20202020202020202020202063617365203133383a0a20202020202020202020202020206b6328286163203d206f6329293b0a202020202020202020202020202072657475726e2041633b0a20202020202020202020202063617365203134303a0a2020202020202020202020202020466328293b0a20202020202020202020202020204d6928293b0a202020202020202020202020202072657475726e2041633b0a20202020202020202020202063617365203134313a0a2020202020202020202020202020466328293b0a2020202020202020202020202020776928293b0a202020202020202020202020202072657475726e2041633b0a20202020202020202020202063617365203134323a0a20202020204d0802202020202020202020466328293b0a20202020202020202020202020206d6928293b0a202020202020202020202020202072657475726e2041633b0a20202020202020202020202063617365203134343a0a2020202020202020202020202020516328293b0a20202020202020202020202020206a632821286663202620626329293b0a202020202020202020202020202072657475726e2041633b0a20202020202020202020202063617365203134353a0a20202020202020202020202020205a6328293b0a2020202020202020202020202020776928293b0a202020202020202020202020202072657475726e2041633b0a20202020202020202020202063617365203134383a0a2020202020202020202020202020596328293b0a20202020202020202020202020204d6928293b0a202020202020202020202020202072657475726e2041633b0a20202020202020202020202063617365203134393a0a2020202020202020202020202020596328293b0a2020202020202020202020202020776928293b0a202020202020202020202020202072657475726e2041633b0a20202020202020202020202063617365203135303a0a2020202020202020202020202020566328293b0a20202020202020202020202020206d6928293b0a202020202020202020202020202072657475726e2041633b0a2020202020202020202020206361734d080265203135323a0a20202020202020202020202020206b6328286163203d20736329293b0a202020202020202020202020202072657475726e2041633b0a20202020202020202020202063617365203135333a0a20202020202020202020202020207a6328293b0a2020202020202020202020202020776928293b0a202020202020202020202020202072657475726e2041633b0a20202020202020202020202063617365203135343a0a20202020202020202020202020207563203d206f633b0a202020202020202020202020202072657475726e2041633b0a20202020202020202020202063617365203135373a0a2020202020202020202020202020476328293b0a2020202020202020202020202020776928293b0a202020202020202020202020202072657475726e2041633b0a20202020202020202020202063617365203136303a0a2020202020202020202020202020576328293b0a2020202020202020202020202020736928293b0a202020202020202020202020202072657475726e2041633b0a20202020202020202020202063617365203136313a0a2020202020202020202020202020556328293b0a2020202020202020202020202020616928293b0a202020202020202020202020202072657475726e2041633b0a20202020202020202020202063617365203136323a0a2020202020202020202020202020576328293b4d08020a20202020202020202020202020206f6928293b0a202020202020202020202020202072657475726e2041633b0a20202020202020202020202063617365203136343a0a2020202020202020202020202020486328293b0a2020202020202020202020202020736928293b0a202020202020202020202020202072657475726e2041633b0a20202020202020202020202063617365203136353a0a2020202020202020202020202020486328293b0a2020202020202020202020202020616928293b0a202020202020202020202020202072657475726e2041633b0a20202020202020202020202063617365203136363a0a2020202020202020202020202020486328293b0a20202020202020202020202020206f6928293b0a202020202020202020202020202072657475726e2041633b0a20202020202020202020202063617365203136383a0a20202020202020202020202020206b6328287363203d20616329293b0a202020202020202020202020202072657475726e2041633b0a20202020202020202020202063617365203136393a0a2020202020202020202020202020576328293b0a2020202020202020202020202020616928293b0a202020202020202020202020202072657475726e2041633b0a20202020202020202020202063617365203137303a0a2020202020202020202020202020766928293b0a20202020202020204d080220202020202072657475726e2041633b0a20202020202020202020202063617365203137323a0a2020202020202020202020202020466328293b0a2020202020202020202020202020736928293b0a202020202020202020202020202072657475726e2041633b0a20202020202020202020202063617365203137333a0a2020202020202020202020202020466328293b0a2020202020202020202020202020616928293b0a202020202020202020202020202072657475726e2041633b0a20202020202020202020202063617365203137343a0a2020202020202020202020202020466328293b0a20202020202020202020202020206f6928293b0a202020202020202020202020202072657475726e2041633b0a20202020202020202020202063617365203137363a0a2020202020202020202020202020516328293b0a20202020202020202020202020206a632866632026206263293b0a202020202020202020202020202072657475726e2041633b0a20202020202020202020202063617365203137373a0a20202020202020202020202020205a6328293b0a2020202020202020202020202020616928293b0a20202020202020202020202020204f63287363293b0a202020202020202020202020202072657475726e2041633b0a20202020202020202020202063617365203138303a0a20202020202020202020202020205963284d0802293b0a2020202020202020202020202020736928293b0a202020202020202020202020202072657475726e2041633b0a20202020202020202020202063617365203138313a0a2020202020202020202020202020596328293b0a2020202020202020202020202020616928293b0a202020202020202020202020202072657475726e2041633b0a20202020202020202020202063617365203138323a0a2020202020202020202020202020566328293b0a20202020202020202020202020206f6928293b0a202020202020202020202020202072657475726e2041633b0a20202020202020202020202063617365203138343a0a20202020202020202020202020206663203d2066632026207e76632026203235353b0a202020202020202020202020202072657475726e2041633b0a20202020202020202020202063617365203138353a0a20202020202020202020202020207a6328293b0a2020202020202020202020202020616928293b0a20202020202020202020202020204f63287363293b0a202020202020202020202020202072657475726e2041633b0a20202020202020202020202063617365203138363a0a20202020202020202020202020206b6328286f63203d20756329293b0a202020202020202020202020202072657475726e2041633b0a20202020202020202020202063617365203138383a0a2020202020202020204d08022020202020476328293b0a2020202020202020202020202020736928293b0a20202020202020202020202020204f63286f63293b0a202020202020202020202020202072657475726e2041633b0a20202020202020202020202063617365203138393a0a2020202020202020202020202020476328293b0a2020202020202020202020202020616928293b0a20202020202020202020202020204f63286f63293b0a202020202020202020202020202072657475726e2041633b0a20202020202020202020202063617365203139303a0a20202020202020202020202020207a6328293b0a20202020202020202020202020206f6928293b0a20202020202020202020202020204f63287363293b0a202020202020202020202020202072657475726e2041633b0a20202020202020202020202063617365203139323a0a2020202020202020202020202020576328293b0a2020202020202020202020202020656928293b0a202020202020202020202020202072657475726e2041633b0a20202020202020202020202063617365203139333a0a2020202020202020202020202020556328293b0a2020202020202020202020202020246328293b0a202020202020202020202020202072657475726e2041633b0a20202020202020202020202063617365203139363a0a2020202020202020202020202020486328293b0a20202020202020204d0802202020202020656928293b0a202020202020202020202020202072657475726e2041633b0a20202020202020202020202063617365203139373a0a2020202020202020202020202020486328293b0a2020202020202020202020202020246328293b0a202020202020202020202020202072657475726e2041633b0a20202020202020202020202063617365203139383a0a2020202020202020202020202020486328293b0a20202020202020202020202020206e6928293b0a202020202020202020202020202072657475726e2041633b0a20202020202020202020202063617365203230303a0a20202020202020202020202020206b6328287363203d20287363202b20312920262032353529293b0a202020202020202020202020202072657475726e2041633b0a20202020202020202020202063617365203230313a0a2020202020202020202020202020576328293b0a2020202020202020202020202020246328293b0a202020202020202020202020202072657475726e2041633b0a20202020202020202020202063617365203230323a0a20202020202020202020202020206b6328286f63203d20286f63202d20312920262032353529293b0a202020202020202020202020202072657475726e2041633b0a20202020202020202020202063617365203230343a0a2020202020202020202020202020466328293b0a202020204d080220202020202020202020656928293b0a202020202020202020202020202072657475726e2041633b0a20202020202020202020202063617365203230353a0a2020202020202020202020202020466328293b0a2020202020202020202020202020246328293b0a202020202020202020202020202072657475726e2041633b0a20202020202020202020202063617365203230363a0a2020202020202020202020202020466328293b0a20202020202020202020202020206e6928293b0a202020202020202020202020202072657475726e2041633b0a20202020202020202020202063617365203230383a0a2020202020202020202020202020516328293b0a20202020202020202020202020206a632821286663202620676329293b0a202020202020202020202020202072657475726e2041633b0a20202020202020202020202063617365203230393a0a20202020202020202020202020205a6328293b0a2020202020202020202020202020246328293b0a20202020202020202020202020204f63287363293b0a202020202020202020202020202072657475726e2041633b0a20202020202020202020202063617365203231333a0a2020202020202020202020202020596328293b0a2020202020202020202020202020246328293b0a202020202020202020202020202072657475726e2041633b0a2020202020202020202020204d080263617365203231343a0a2020202020202020202020202020596328293b0a20202020202020202020202020206e6928293b0a202020202020202020202020202072657475726e2041633b0a20202020202020202020202063617365203231363a0a20202020202020202020202020206663203d2066632026207e77632026203235353b0a202020202020202020202020202072657475726e2041633b0a20202020202020202020202063617365203231373a0a20202020202020202020202020207a6328293b0a2020202020202020202020202020246328293b0a20202020202020202020202020204f63287363293b0a202020202020202020202020202072657475726e2041633b0a20202020202020202020202063617365203232313a0a2020202020202020202020202020476328293b0a2020202020202020202020202020246328293b0a20202020202020202020202020204f63286f63293b0a202020202020202020202020202072657475726e2041633b0a20202020202020202020202063617365203232323a0a2020202020202020202020202020476328293b0a20202020202020202020202020206e6928293b0a202020202020202020202020202072657475726e2041633b0a20202020202020202020202063617365203232343a0a2020202020202020202020202020576328293b0a202020202020202020202020202074694d080228293b0a202020202020202020202020202072657475726e2041633b0a20202020202020202020202063617365203232353a0a2020202020202020202020202020556328293b0a2020202020202020202020202020796928293b0a202020202020202020202020202072657475726e2041633b0a20202020202020202020202063617365203232383a0a2020202020202020202020202020486328293b0a2020202020202020202020202020746928293b0a202020202020202020202020202072657475726e2041633b0a20202020202020202020202063617365203232393a0a2020202020202020202020202020486328293b0a2020202020202020202020202020796928293b0a202020202020202020202020202072657475726e2041633b0a20202020202020202020202063617365203233303a0a2020202020202020202020202020486328293b0a2020202020202020202020202020636928293b0a202020202020202020202020202072657475726e2041633b0a20202020202020202020202063617365203233323a0a20202020202020202020202020206b6328286f63203d20286f63202b20312920262032353529293b0a202020202020202020202020202072657475726e2041633b0a20202020202020202020202063617365203233333a0a2020202020202020202020202020576328293b0a202020202020202020202020204d080220796928293b0a202020202020202020202020202072657475726e2041633b0a20202020202020202020202063617365203233343a0a202020202020202020202020202072657475726e2041633b0a20202020202020202020202063617365203233363a0a2020202020202020202020202020466328293b0a2020202020202020202020202020746928293b0a202020202020202020202020202072657475726e2041633b0a20202020202020202020202063617365203233373a0a2020202020202020202020202020466328293b0a2020202020202020202020202020796928293b0a202020202020202020202020202072657475726e2041633b0a20202020202020202020202063617365203233383a0a2020202020202020202020202020466328293b0a2020202020202020202020202020636928293b0a202020202020202020202020202072657475726e2041633b0a20202020202020202020202063617365203234303a0a2020202020202020202020202020516328293b0a20202020202020202020202020206a632866632026206763293b0a202020202020202020202020202072657475726e2041633b0a20202020202020202020202063617365203234313a0a20202020202020202020202020205a6328293b0a2020202020202020202020202020796928293b0a20202020202020202020202020204f63287363293b0a20204d080220202020202020202020202072657475726e2041633b0a20202020202020202020202063617365203234353a0a2020202020202020202020202020596328293b0a2020202020202020202020202020796928293b0a202020202020202020202020202072657475726e2041633b0a20202020202020202020202063617365203234363a0a2020202020202020202020202020596328293b0a2020202020202020202020202020636928293b0a202020202020202020202020202072657475726e2041633b0a20202020202020202020202063617365203234383a0a20202020202020202020202020206663207c3d2077633b0a202020202020202020202020202072657475726e2041633b0a20202020202020202020202063617365203234393a0a20202020202020202020202020207a6328293b0a2020202020202020202020202020796928293b0a20202020202020202020202020204f63287363293b0a202020202020202020202020202072657475726e2041633b0a20202020202020202020202063617365203235333a0a2020202020202020202020202020476328293b0a2020202020202020202020202020796928293b0a20202020202020202020202020204f63286f63293b0a202020202020202020202020202072657475726e2041633b0a20202020202020202020202063617365203235343a0a2020202020202020202020204d08022020476328293b0a2020202020202020202020202020636928293b0a202020202020202020202020202072657475726e2041633b0a202020202020202020202020636173652037353a0a2020202020202020202020202020576328293b0a2020202020202020202020202020586328293b0a2020202020202020202020202020666928293b0a202020202020202020202020202072657475726e2041633b0a202020202020202020202020636173652031313a0a202020202020202020202020636173652034333a0a2020202020202020202020202020576328293b0a2020202020202020202020202020586328293b0a202020202020202020202020202069662028313238202620616329207b0a202020202020202020202020202020206663207c3d2062633b0a20202020202020202020202020207d20656c7365207b0a202020202020202020202020202020206663203d2066632026207e62632026203235353b0a20202020202020202020202020207d0a202020202020202020202020202072657475726e2041633b0a20202020202020202020202063617365203137393a0a20202020202020202020202020205a6328293b0a2020202020202020202020202020616928293b0a2020202020202020202020202020766928293b0a202020202020202020202020202072657475726e2041633b0a2020202020202020202020206361734d080265203135313a0a2020202020202020202020202020566328293b0a2020202020202020202020202020686928293b0a20202020202020202020202020206c6928293b0a20202020202020202020202020206d6928293b0a2020202020202020202020202020586328293b0a2020202020202020202020202020776928293b0a2020202020202020202020202020416928293b0a2020202020202020202020202020706928293b0a202020202020202020202020202072657475726e2041633b0a20202020202020202020202063617365203130303a0a20202020202020202020202063617365203133373a0a202020202020202020202020202072657475726e2041633b0a2020202020202020202020206361736520343a0a20202020202020202020202063617365203132383a0a202020202020202020202020202072657475726e2041633b0a20202020202020202020202063617365203235323a0a20202020202020202020202063617365203235313a0a20202020202020202020202063617365203235303a0a20202020202020202020202063617365203234373a0a20202020202020202020202063617365203234343a0a20202020202020202020202063617365203234333a0a20202020202020202020202063617365203234323a0a20202020202020202020202063617365203233393a0a202020202020202020202020636173654d0802203233353a0a20202020202020202020202063617365203233313a0a20202020202020202020202063617365203232373a0a20202020202020202020202063617365203232363a0a20202020202020202020202063617365203232333a0a20202020202020202020202063617365203232303a0a20202020202020202020202063617365203231393a0a20202020202020202020202063617365203231383a0a20202020202020202020202063617365203231353a0a20202020202020202020202063617365203231323a0a20202020202020202020202063617365203231313a0a20202020202020202020202063617365203231303a0a20202020202020202020202063617365203230373a0a20202020202020202020202063617365203230333a0a20202020202020202020202063617365203139393a0a20202020202020202020202063617365203139353a0a20202020202020202020202063617365203139343a0a20202020202020202020202063617365203139313a0a20202020202020202020202063617365203138373a0a20202020202020202020202063617365203138333a0a20202020202020202020202063617365203137383a0a20202020202020202020202063617365203137353a0a20202020202020202020202063617365203137313a0a20202020202020202020202063617365203136373a0a20202020202020204d08022020202063617365203136333a0a20202020202020202020202063617365203135393a0a20202020202020202020202063617365203135383a0a20202020202020202020202063617365203135363a0a20202020202020202020202063617365203135353a0a20202020202020202020202063617365203134373a0a20202020202020202020202063617365203134363a0a20202020202020202020202063617365203134333a0a20202020202020202020202063617365203133393a0a20202020202020202020202063617365203133353a0a20202020202020202020202063617365203133313a0a20202020202020202020202063617365203133303a0a20202020202020202020202063617365203132373a0a20202020202020202020202063617365203132343a0a20202020202020202020202063617365203132333a0a20202020202020202020202063617365203132323a0a20202020202020202020202063617365203131393a0a20202020202020202020202063617365203131363a0a20202020202020202020202063617365203131353a0a20202020202020202020202063617365203131343a0a20202020202020202020202063617365203131313a0a20202020202020202020202063617365203130373a0a20202020202020202020202063617365203130333a0a202020202020202020202020636173652039393a0a204d08022020202020202020202020636173652039383a0a202020202020202020202020636173652039353a0a202020202020202020202020636173652039323a0a202020202020202020202020636173652039313a0a202020202020202020202020636173652039303a0a202020202020202020202020636173652038373a0a202020202020202020202020636173652038343a0a202020202020202020202020636173652038333a0a202020202020202020202020636173652038323a0a202020202020202020202020636173652037393a0a202020202020202020202020636173652037313a0a202020202020202020202020636173652036383a0a202020202020202020202020636173652036373a0a202020202020202020202020636173652036363a0a202020202020202020202020636173652036333a0a202020202020202020202020636173652036303a0a202020202020202020202020636173652035393a0a202020202020202020202020636173652035383a0a202020202020202020202020636173652035353a0a202020202020202020202020636173652035323a0a202020202020202020202020636173652035313a0a202020202020202020202020636173652035303a0a202020202020202020202020636173652034373a0a202020202020202020202020636173652033393a0a20202020202020202020202063617365204d080233353a0a202020202020202020202020636173652033343a0a202020202020202020202020636173652033313a0a202020202020202020202020636173652032383a0a202020202020202020202020636173652032373a0a202020202020202020202020636173652032363a0a202020202020202020202020636173652032333a0a202020202020202020202020636173652032303a0a202020202020202020202020636173652031393a0a202020202020202020202020636173652031383a0a202020202020202020202020636173652031353a0a202020202020202020202020636173652031323a0a2020202020202020202020206361736520373a0a2020202020202020202020206361736520333a0a2020202020202020202020206361736520323a0a202020202020202020202020202072657475726e2041633b0a202020202020202020207d0a2020202020202020202072657475726e2041633b0a20202020202020207d3b0a202020202020202076617220766f203d2066756e6374696f6e202829207b0a202020202020202020205f632864632e67657442482829293b0a202020202020202020205f632864632e676574424c2829293b0a202020202020202020205f6328286663203d2066632026207e6d6320262032353529293b0a202020202020202020206663207c3d2079633b0a2020202020202020202064632e7365744d0802424c2869635b53635d293b0a2020202020202020202064632e73657442482869635b45635d293b0a2020202020202020202072657475726e20373b0a20202020202020207d3b0a2020202020202020766172204c6f203d2062723b0a202020202020202076617220496f203d203435343b0a202020202020202076617220436f203d2066616c73653b0a202020202020202076617220456f203d2066616c73653b0a202020202020202076617220536f203d2036303b0a202020202020202076617220786f203d20303b0a202020202020202076617220446f203d203236323b0a2020202020202020766172204e6f203d20303b0a2020202020202020766172205f6f203d20313b0a202020202020202076617220546f203d2066616c73653b0a2020202020202020766172206b6f203d2066616c73653b0a202020202020202070203d20496f3b0a20202020202020206c657420426f203d206e756c6c3b0a202020202020202076617220506f203d20303b0a2020202020202020766172204f6f203d20303b0a202020202020202076617220466f203d20303b0a202020202020202076617220476f203d20303b0a20202020202020205274280a202020202020202020206e6577206a7428276f6e4361727472696467654c6f61646564272c2066756e6374696f6e202829207b0a202020202020202020202020546f203d20617228293b0a204d080220202020202020202020206b6f203d20647228293b0a202020202020202020207d290a2020202020202020293b0a2020202020202020766172204b6f3b0a202020202020202076617220246f3b0a2020202020202020766172207473203d203332303b0a2020202020202020766172206573203d20323b0a2020202020202020766172206e73203d203234303b0a2020202020202020766172207273203d2032363b0a2020202020202020766172206373203d203234303b0a2020202020202020766172206973203d203234303b0a2020202020202020766172206173203d20747275653b0a2020202020202020766172206f73203d206e657720417272617928333030202a207473293b0a2020202020202020766172207373203d206e756c6c3b0a2020202020202020766172206673203d206e756c6c3b0a2020202020202020766172207573203d206e756c6c3b0a2020202020202020766172206473203d206e756c6c3b0a2020202020202020766172206c73203d206e756c6c3b0a2020202020202020766172206873203d206e657720417272617928323536293b0a2020202020202020766172204173203d2027696e697469616c273b0a2020202020202020766172207073203d2066616c73653b0a2020202020202020766172206273203d20323b0a2020202020202020766172206773203d20313b0a2020202020202020766172204d08027973203d20303b0a2020202020202020766172207773203d20303b0a2020202020202020766172206d73203d20303b0a2020202020202020766172204d73203d20303b0a2020202020202020766172207673203d20303b0a2020202020202020766172204c73203d2066616c73653b0a2020202020202020766172204973203d20303b0a20202020202020205274280a202020202020202020206e6577206a742827696e6974272c2066756e6374696f6e20287429207b0a20202020202020202020202053732874293b0a202020202020202020207d290a2020202020202020293b0a202020202020202077696e646f772e6164644576656e744c697374656e65722827726573697a65272c2066756e6374696f6e202829207b0a202020202020202020204e7328293b0a2020202020202020202073657454696d656f7574284e732c20316533293b0a20202020202020207d293b0a20202020202020205274280a202020202020202020206e6577206a7428276f6e4361727472696467654c6f61646564272c2066756e6374696f6e202829207b0a2020202020202020202020204973203d20697228293b0a202020202020202020202020437328293b0a202020202020202020207d290a2020202020202020293b0a2020202020202020766172204a73203d20496f3b0a2020202020202020766172205873203d204e693b0a202020202020204d080220766172207173203d2044693b0a2020202020202020766172204b73203d205a613b0a2020202020202020766172202473203d2072733b0a2020202020202020766172207466203d2065733b0a2020202020202020766172206566203d206e733b0a2020202020202020766172206e66203d2063733b0a2020202020202020766172207266203d206e756c6c3b0a2020202020202020766172206366203d2074733b0a2020202020202020766172206166203d2069733b0a2020202020202020766172206f66203d20303b0a2020202020202020766172207366203d20303b0a2020202020202020766172206666203d2066616c73653b0a2020202020202020766172207566203d2066616c73653b0a2020202020202020766172206466203d20303b0a20202020202020205274280a202020202020202020206e6577206a7428276f6e4361727472696467654c6f61646564272c2066756e6374696f6e202829207b0a2020202020202020202020206c662866616c7365293b0a2020202020202020202020207566203d2066616c73653b0a2020202020202020202020206466203d20303b0a2020202020202020202020206f66203d20303b0a2020202020202020202020207366203d20303b0a202020202020202020207d290a2020202020202020293b0a2020202020202020766172206266203d2066756e6374696f6e2028742c20652c204d08026e2c20722c20632c206929207b0a202020202020202020207661722061203d202874203d2074293b0a20202020202020202020766172206f203d202865203d2065293b0a202020202020202020207661722073203d20286e203d206e293b0a202020202020202020207661722066203d202872203d2072293b0a202020202020202020207661722075203d202863203d2063293b0a202020202020202020207661722064203d202869203d2069293b0a20202020202020202020766172206c203d2066616c73653b0a202020202020202020207661722068203d2066616c73653b0a202020202020202020207661722041203d2066616c73653b0a202020202020202020207661722070203d2066616c73653b0a202020202020202020207661722062203d2066616c73653b0a202020202020202020207661722067203d2066616c73653b0a202020202020202020207661722079203d2066616c73653b0a202020202020202020207661722077203d2066616c73653b0a2020202020202020202072657475726e207b0a20202020202020202020202067657444656661756c744c6566743a2066756e6374696f6e202829207b0a202020202020202020202020202072657475726e20613b0a2020202020202020202020207d2c0a2020202020202020202020206765744c6566743a2066756e6374696f6e202829207b0a2020202020202020204d0802202020202072657475726e20743b0a2020202020202020202020207d2c0a2020202020202020202020207365744c6566743a2066756e6374696f6e20286529207b0a202020202020202020202020202074203d20653b0a2020202020202020202020207d2c0a20202020202020202020202067657444656661756c7452696768743a2066756e6374696f6e202829207b0a202020202020202020202020202072657475726e206f3b0a2020202020202020202020207d2c0a20202020202020202020202067657452696768743a2066756e6374696f6e202829207b0a202020202020202020202020202072657475726e20653b0a2020202020202020202020207d2c0a20202020202020202020202073657452696768743a2066756e6374696f6e20287429207b0a202020202020202020202020202065203d20743b0a2020202020202020202020207d2c0a20202020202020202020202067657444656661756c7455703a2066756e6374696f6e202829207b0a202020202020202020202020202072657475726e20733b0a2020202020202020202020207d2c0a20202020202020202020202067657455703a2066756e6374696f6e202829207b0a202020202020202020202020202072657475726e206e3b0a2020202020202020202020207d2c0a20202020202020202020202073657455703a2066756e6374696f6e20287429207b0a2020204d080220202020202020202020206e203d20743b0a2020202020202020202020207d2c0a20202020202020202020202067657444656661756c74446f776e3a2066756e6374696f6e202829207b0a202020202020202020202020202072657475726e20663b0a2020202020202020202020207d2c0a202020202020202020202020676574446f776e3a2066756e6374696f6e202829207b0a202020202020202020202020202072657475726e20723b0a2020202020202020202020207d2c0a202020202020202020202020736574446f776e3a2066756e6374696f6e20287429207b0a202020202020202020202020202072203d20743b0a2020202020202020202020207d2c0a20202020202020202020202067657444656661756c74427574746f6e313a2066756e6374696f6e202829207b0a202020202020202020202020202072657475726e20753b0a2020202020202020202020207d2c0a202020202020202020202020676574427574746f6e313a2066756e6374696f6e202829207b0a202020202020202020202020202072657475726e20633b0a2020202020202020202020207d2c0a202020202020202020202020736574427574746f6e313a2066756e6374696f6e20287429207b0a202020202020202020202020202063203d20743b0a2020202020202020202020207d2c0a20202020202020202020202067657444656661756c7442754d080274746f6e323a2066756e6374696f6e202829207b0a202020202020202020202020202072657475726e20643b0a2020202020202020202020207d2c0a202020202020202020202020676574427574746f6e323a2066756e6374696f6e202829207b0a202020202020202020202020202072657475726e20693b0a2020202020202020202020207d2c0a202020202020202020202020736574427574746f6e323a2066756e6374696f6e20287429207b0a202020202020202020202020202069203d20743b0a2020202020202020202020207d2c0a20202020202020202020202069734c6566743a2066756e6374696f6e202829207b0a202020202020202020202020202072657475726e206c20262620282168207c7c20212179293b0a2020202020202020202020207d2c0a202020202020202020202020697352696768743a2066756e6374696f6e202829207b0a202020202020202020202020202072657475726e20682026262028216c207c7c202179293b0a2020202020202020202020207d2c0a202020202020202020202020697355703a2066756e6374696f6e202829207b0a202020202020202020202020202072657475726e204120262620282170207c7c20212177293b0a2020202020202020202020207d2c0a2020202020202020202020206973446f776e3a2066756e6374696f6e202829207b0a2020202020202020202020204d0802202072657475726e207020262620282141207c7c202177293b0a2020202020202020202020207d2c0a2020202020202020202020206973427574746f6e313a2066756e6374696f6e202829207b0a202020202020202020202020202072657475726e20623b0a2020202020202020202020207d2c0a2020202020202020202020206973427574746f6e323a2066756e6374696f6e202829207b0a202020202020202020202020202072657475726e20673b0a2020202020202020202020207d2c0a20202020202020202020202068616e646c654b6579436f64653a2066756e6374696f6e2028612c206f29207b0a202020202020202020202020202073776974636820286129207b0a202020202020202020202020202020206361736520743a0a2020202020202020202020202020202020206c203d206f3b0a202020202020202020202020202020202020696620286f29207b0a202020202020202020202020202020202020202079203d20747275653b0a2020202020202020202020202020202020207d0a20202020202020202020202020202020202072657475726e20747275653b0a2020202020202020202020202020202063617365206e3a0a20202020202020202020202020202020202041203d206f3b0a202020202020202020202020202020202020696620286f29207b0a202020202020202020202020202020202020202077204d08023d20747275653b0a2020202020202020202020202020202020207d0a20202020202020202020202020202020202072657475726e20747275653b0a202020202020202020202020202020206361736520653a0a20202020202020202020202020202020202068203d206f3b0a202020202020202020202020202020202020696620286f29207b0a202020202020202020202020202020202020202079203d2066616c73653b0a2020202020202020202020202020202020207d0a20202020202020202020202020202020202072657475726e20747275653b0a202020202020202020202020202020206361736520723a0a20202020202020202020202020202020202070203d206f3b0a202020202020202020202020202020202020696620286f29207b0a202020202020202020202020202020202020202077203d2066616c73653b0a2020202020202020202020202020202020207d0a20202020202020202020202020202020202072657475726e20747275653b0a202020202020202020202020202020206361736520633a0a20202020202020202020202020202020202062203d206f3b0a20202020202020202020202020202020202072657475726e20747275653b0a202020202020202020202020202020206361736520693a0a20202020202020202020202020202020202067203d206f3b0a202020202020202020202020202020204d0802202072657475726e20747275653b0a20202020202020202020202020207d0a202020202020202020202020202072657475726e2066616c73653b0a2020202020202020202020207d2c0a20202020202020202020202072657365743a2066756e6374696f6e202829207b0a202020202020202020202020202079203d2066616c73653b0a202020202020202020202020202077203d2066616c73653b0a2020202020202020202020207d2c0a202020202020202020207d3b0a20202020202020207d3b0a2020202020202020766172206766203d206e65772062662833372c2033392c2033382c2034302c2039302c203838293b0a2020202020202020766172207966203d206e65772062662837342c2037362c2037332c2037352c2037382c203737293b0a2020202020202020766172207766203d2066616c73653b0a2020202020202020766172206d66203d2066616c73653b0a2020202020202020766172204d66203d2066616c73653b0a2020202020202020766172207666203d2066616c73653b0a2020202020202020766172204c66203d2066616c73653b0a2020202020202020766172204966203d20313b0a2020202020202020766172204366203d20303b0a2020202020202020766172204566203d203131333b0a2020202020202020766172205366203d2045663b0a2020202020202020766172207866203d203131343b0a204d080220202020202020766172204466203d2078663b0a2020202020202020766172204e66203d203131353b0a2020202020202020766172205f66203d204e663b0a20202020202020205274280a202020202020202020206e6577206a742827696e6974272c2066756e6374696f6e202829207b0a202020202020202020202020646f63756d656e742e6f6e6b6579646f776e203d2066756e6374696f6e20287429207b0a2020202020202020202020202020426628742c2074727565293b0a2020202020202020202020207d3b0a202020202020202020202020646f63756d656e742e6f6e6b65797570203d2066756e6374696f6e20287429207b0a2020202020202020202020202020426628742c2066616c7365293b0a2020202020202020202020207d3b0a202020202020202020207d290a2020202020202020293b0a20202020202020205274280a202020202020202020206e6577206a7428276f6e4361727472696467654c6f61646564272c2066756e6374696f6e202829207b0a2020202020202020202020204966203d20777228293b0a2020202020202020202020204366203d206d7228293b0a202020202020202020207d290a2020202020202020293b0a202020202020202069662028214f626a6563742e63726561746529207b0a202020202020202020204f626a6563742e637265617465203d2066756e6374696f6e20287429204d08027b0a20202020202020202020202066756e6374696f6e20652829207b7d0a202020202020202020202020652e70726f746f74797065203d20743b0a20202020202020202020202072657475726e206e6577206528293b0a202020202020202020207d3b0a20202020202020207d0a2020202020202020766172205966203d0a20202020202020202020276f6e746f75636873746172742720696e2077696e646f77207c7c0a202020202020202020206e6176696761746f722e6d6178546f756368506f696e7473203e2030207c7c0a202020202020202020206e6176696761746f722e6d734d6178546f756368506f696e7473203e20303b0a2020202020202020766172205666203d0a2020202020202020202059662026260a202020202020202020202f616e64726f69647c626c61636b62657272797c69656d6f62696c657c697061647c6970686f6e657c69706f647c6f70657261206d696e697c7765626f732f692e74657374280a2020202020202020202020206e6176696761746f722e757365724167656e740a20202020202020202020293b0a2020202020202020766172204a66203d0a202020202020202020202f697061647c6970686f6e657c69706f642f692e74657374286e6176696761746f722e757365724167656e7429202626202177696e646f772e4d5353747265616d3b0a2020202020202020766172204b66203d206e4d0802657720716628293b0a2020202020202020766172202466203d206e6577207166287b0a202020202020202020206973416e616c6f674c6566743a2066756e6374696f6e2028742c206529207b0a20202020202020202020202072657475726e20746869732e6973416e616c6f6744697228742c2065203f2032203a20302c2066616c7365293b0a202020202020202020207d2c0a202020202020202020206973416e616c6f6752696768743a2066756e6374696f6e2028742c206529207b0a20202020202020202020202072657475726e20746869732e6973416e616c6f6744697228742c2065203f2032203a20302c2074727565293b0a202020202020202020207d2c0a202020202020202020206973416e616c6f6755703a2066756e6374696f6e2028742c206529207b0a20202020202020202020202072657475726e20746869732e6973416e616c6f6744697228742c2065203f2033203a20312c2074727565293b0a202020202020202020207d2c0a202020202020202020206973416e616c6f67446f776e3a2066756e6374696f6e2028742c206529207b0a20202020202020202020202072657475726e20746869732e6973416e616c6f6744697228742c2065203f2033203a20312c2066616c7365293b0a202020202020202020207d2c0a2020202020202020202069734469676974616c4c6566743a2066756e6374696f6e2028744d080229207b0a20202020202020202020202072657475726e20746869732e6973416e616c6f6744697228742c20342c2066616c7365293b0a202020202020202020207d2c0a2020202020202020202069734469676974616c52696768743a2066756e6374696f6e20287429207b0a20202020202020202020202072657475726e20746869732e6973416e616c6f6744697228742c20342c2074727565293b0a202020202020202020207d2c0a2020202020202020202069734469676974616c55703a2066756e6374696f6e20287429207b0a20202020202020202020202072657475726e20746869732e6973416e616c6f6744697228742c20352c2074727565293b0a202020202020202020207d2c0a2020202020202020202069734469676974616c446f776e3a2066756e6374696f6e20287429207b0a20202020202020202020202072657475726e20746869732e6973416e616c6f6744697228742c20352c2066616c7365293b0a202020202020202020207d2c0a20202020202020202020697352657365743a2066756e6374696f6e20287429207b0a20202020202020202020202072657475726e20746869732e69735072657373656428742c2035293b0a202020202020202020207d2c0a20202020202020202020697353656c6563743a2066756e6374696f6e20287429207b0a20202020202020202020202072657475726e20746869732e4d080269735072657373656428742c2034293b0a202020202020202020207d2c0a20202020202020202020697350617573653a2066756e6374696f6e20287429207b0a20202020202020202020202072657475726e2066616c73653b0a202020202020202020207d2c0a20202020202020207d293b0a2020202020202020766172206575203d205b6e6577207475286e756c6c2c204b66292c206e6577207475286e756c6c2c204b66295d3b0a2020202020202020766172206375203d2062723b0a2020202020202020766172206975203d2066756e6374696f6e202829207b0a202020202020202020207661722074203d207566207c7c206466203e20303b0a20202020202020202020696620286466203e203029207b0a20202020202020202020202064662d2d3b0a202020202020202020207d0a2020202020202020202072657475726e20743b0a20202020202020207d3b0a2020202020202020766172206175203d2067663b0a2020202020202020766172206f75203d2079663b0a2020202020202020766172207375203d2066616c73653b0a2020202020202020766172206675203d2066616c73653b0a2020202020202020766172207575203d206e756c6c3b0a2020202020202020766172206475203d20747275653b0a20202020202020205274280a202020202020202020206e6577206a742827696e6974272c2066756e6374696f6e4d080220287429207b0a2020202020202020202020207661722065203d20742e6b6579626f617264446174613b0a2020202020202020202020207575203d20653b0a202020202020202020207d290a2020202020202020293b0a2020202020202020766172207075203d207b0a20202020202020202020273433333263323465346633626337326537666531623737616466363663326237273a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a20202020202020202020202070343a202766272c0a202020202020202020202020786d3a202766272c0a20202020202020202020202068733a202774272c0a202020202020202020207d2c0a20202020202020202020273062653939366432353134343936366435353431633965623439313962323839273a207b0a20202020202020202020202074793a202734272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a20274d080230272c0a202020202020202020207d2c0a2020202020202020202061616464653932306233616162613033626331306234306264303631396339343a207b0a20202020202020202020202074793a202734272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202731272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a20202020202020202020273837376463633937613737356564353530383138363462326462663566316532273a207b0a20202020202020202020202074793a202732272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202732272c0a20202020202020202020202063323a202732272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a20202020202020202020202063726f7373783a202738272c0a20202020202020202020202063726f7373793a202738272c0a202020202020202020207d2c0a2020202020202020202064653365393439366362373334316638363566323765356137326337663266353a207b0a20202020202020202020202074793a202732272c0a202020202020202020202020703a202766272c0a4d080220202020202020202020202063313a202732272c0a20202020202020202020202063323a202732272c0a202020202020202020202020723a202731272c0a202020202020202020202020663a202730272c0a20202020202020202020202063726f7373783a20273130272c0a20202020202020202020202063726f7373793a20272d36272c0a202020202020202020207d2c0a20202020202020202020273430346639353130336237303937356134326362303939343664633361646361273a207b0a20202020202020202020202074793a202733272c0a202020202020202020202020703a202774272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a20202020202020202020273563363632363164376265373431383461303437663737323333393139653036273a207b0a20202020202020202020202074793a202731272c0a202020202020202020202020703a202774272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a20202020202020202020202068626c616e6b4d08023a202738272c0a202020202020202020207d2c0a20202020202020202020273231326565326136653636643862623766626632366633343363633864633139273a207b0a20202020202020202020202074793a202731272c0a202020202020202020202020703a202774272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a20202020202020202020202070343a202774272c0a20202020202020202020202068626c616e6b3a202738272c0a202020202020202020207d2c0a20202020202020202020273037333432633738363139626136666663633631633130653930376533623530273a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a20202020202020202020202068733a202774272c0a202020202020202020207d2c0a20202020202020202020273866633361363935656165613339383439313264393865643461353433333736273a207b0a20202020202020202020202074793a20274d080230272c0a202020202020202020202020703a202774272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a20202020202020202020202068626c616e6b3a20273238272c0a202020202020202020207d2c0a2020202020202020202062353538383134643534393034636530353832653266366138303164303361663a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202774272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202731272c0a202020202020202020202020663a202730272c0a20202020202020202020202068626c616e6b3a20273238272c0a202020202020202020207d2c0a20202020202020202020273432363832343135393036633231633661663830653431393834303366666461273a207b0a20202020202020202020202074793a202731272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202732272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a20274d080230272c0a20202020202020202020202063726f7373783a202730272c0a20202020202020202020202063726f7373793a202738272c0a202020202020202020207d2c0a2020202020202020202062616265326263323937363638386261666238623233633139323635383132363a207b0a20202020202020202020202074793a202731272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202732272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202731272c0a202020202020202020202020663a202730272c0a20202020202020202020202063726f7373783a202730272c0a20202020202020202020202063726f7373793a20273132272c0a202020202020202020207d2c0a2020202020202020202066356636623639633565623462353566633136333135386431613662343233653a207b0a20202020202020202020202074793a202734272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a20202020202020202020666261303032303839666366613137363435346162353037653065624d0802373663623a207b0a20202020202020202020202074793a202734272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202731272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a20202020202020202020273365363362653138653438306661363366636535653463383233323836653533273a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202774272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202731272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a20202020202020202020273561303939343665353764626533303430386138663235336132386430376462273a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a20202020202020202020202068733a202774272c0a4d0802202020202020202020207d2c0a20202020202020202020273338633035366134383437326439613965313665626461356564393164616537273a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202731272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a20202020202020202020273933653433383738363462303134633135356437633137383737393930643165273a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a20202020202020202020273539643465646230323330623561636339313862393466366263393437373966273a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a20202020202020204d080220202020723a202731272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a20202020202020202020273265386532386636616438623962393236376435313864383830633733656262273a207b0a20202020202020202020202074793a202731272c0a202020202020202020202020703a202774272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a20202020202020202020273535646136633663333937346430313366353137653732356161363066343865273a207b0a20202020202020202020202074793a202731272c0a202020202020202020202020703a202774272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202731272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a2020202020202020202064623639313436393132386439613432313765633765333135393330623634363a207b0a20202020202020202020202074793a202731272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c4d08020a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a20202020202020202020273763626537386661303666343762613635313661363761346230303363396565273a207b0a20202020202020202020202074793a202731272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202731272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a2020202020202020202061393465343536306236616430353361316332346530393666313236326562663a207b0a20202020202020202020202074793a202732272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202732272c0a20202020202020202020202063323a202732272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a20202020202020202020202063726f7373783a20273133272c0a20202020202020202020202063726f7373793a202738272c0a202020202020202020207d2c0a202020202020202020202736336462333731643637613938646165634d0802353437623261626435653761613935273a207b0a20202020202020202020202074793a202732272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202732272c0a20202020202020202020202063323a202732272c0a202020202020202020202020723a202731272c0a202020202020202020202020663a202730272c0a20202020202020202020202063726f7373783a20273135272c0a20202020202020202020202063726f7373793a202737272c0a202020202020202020207d2c0a20202020202020202020273137396237366666373239643438343962386636366135303233393861636165273a207b0a20202020202020202020202074793a202731272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a2020202020202020202061326238653266313539363432633462393164653832653961323932383439343a207b0a20202020202020202020202074793a202731272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a4d0802202020202020202020202020723a202731272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a20202020202020202020273935616338313163376432376166303033326261303930663238633130376264273a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a20202020202020202020273264356439396239393361383835623036336639663232636535653635323364273a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202731272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a20202020202020202020273733313837396561383266633063613234356533396530333666653239336536273a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202766272c0a202020202020202020204d0802202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a20202020202020202020202068733a202774272c0a202020202020202020207d2c0a20202020202020202020273430386463613966633430653262356438303566343033666130353039343336273a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202731272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a20202020202020202020273565333332666266633165306663373432323364326537333237316365363530273a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a20202020202020202020273464633566383832343332353034363162643631303533623133373737303630273a204d08027b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202731272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a20202020202020202020273139663165653239326132333633366264353764343038623632646537396337273a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a20202020202020202020273865393665663134636539623564383462636263393936623636643664346337273a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202731272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a20202020202020202020273534334d08023438346330306261323333373336626361626132646132306565656139273a207b0a20202020202020202020202074793a202736272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a2020202020202020202064653265626166636630653337616161396430653935323561376634646436323a207b0a20202020202020202020202074793a202736272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202731272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a20202020202020202020273232353161366130663361656338346363306166663636666339666139316538273a207b0a20202020202020202020202074793a202735272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a2027304d0802272c0a202020202020202020207d2c0a2020202020202020202065373730396461386534396433373637333031393437613061306239643265363a207b0a20202020202020202020202074793a202735272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202731272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a2020202020202020202064323564356431393138386539663134393937376334396562303336376364313a207b0a20202020202020202020202074793a202734272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a20202020202020202020273233353035363531616332653437663336333731353230363663336161363266273a207b0a20202020202020202020202074793a202734272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a2020202020202020204d0802202020723a202731272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a20202020202020202020273037646262666536313261306132386532383363303135343565353966323565273a207b0a20202020202020202020202074793a202734272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a2020202020202020202065383066323465393533353633653662363135353637333764363764333833363a207b0a20202020202020202020202074793a202734272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202731272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a2020202020202020202063663736623030323434313035623865303363646333373637376563313037333a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20204d08022020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a20202020202020202020202068733a202774272c0a202020202020202020207d2c0a2020202020202020202064653064346635613962663163316264646565336564326637656335313230393a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202731272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a2020202020202020202066623864383033623332386232653434323534386637373939636661396134613a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a20202020202020202020202068733a202774272c0a202020202020202020207d2c0a2020202020202020202066356463376463386533383037326433643635626439306136363031343863654d08023a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202731272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a20202020202020202020273036323034646164633937356265356535653337653763633636663938346366273a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a2020202020202020202066643965373865323031623662616166646466643365316662666536626133313a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a20202020202020202020273062614d08026563393637383763653137663339306532303464653161313336653539273a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202731272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a2020202020202020202063333637323438326361393366373065616664393133346239333663336665623a207b0a20202020202020202020202074793a202734272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a20202020202020202020273863326332613165613665396139323861343463333135316261356331636533273a207b0a20202020202020202020202074793a202734272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202731272c0a202020202020202020202020663a2027304d0802272c0a202020202020202020207d2c0a2020202020202020202062616562633932343663303837653839336466613438393633323135373138303a207b0a20202020202020202020202074793a202733272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a20202020202020202020273830646561643031656132646235303435663666343434336661613666636538273a207b0a20202020202020202020202074793a202733272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202731272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a20202020202020202020273034356664313230353062376632623834326435393730663234313465393132273a207b0a20202020202020202020202074793a202733272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020204d08022020202020723a202730272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a2020202020202020202064666238366634643036663035616430306366343138663061353961323466373a207b0a20202020202020202020202074793a202733272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202731272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a2020202020202020202066313862336238393761323561623338383562343362346264313431623339363a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a20202020202020202020202068733a202774272c0a202020202020202020207d2c0a2020202020202020202066326461653032363461346234613733373632623964373137376539383966363a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202766272c0a20204d08022020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202731272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a2020202020202020202063336135613836393261343233643433643964323864643562376431303964393a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a20202020202020202020273565306131653833326262636561366661636238333266646532336134343061273a207b0a20202020202020202020202074793a202734272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202731272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a20202020202020202020273137623362373634643333656165396235323630663031646637626239643266273a207b0a202020202020202020202020744d0802793a202734272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a2020202020202020202066353764306166333233643465313733666234396564343437663035363364373a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a20202020202020202020273239333162373538313161643033663361633933333038333866336432333162273a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202731272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a202020202020202020202734333163613036303230316565316639656234394d0802643434393632383734303439273a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a2020202020202020202064326538363133303662653738653434323438626237316437343735643861333a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202731272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a20202020202020202020273337623536393265333361393831313565353734313835666138333938633232273a207b0a20202020202020202020202074793a202734272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a204d0802202020202020202020273638313963333762393630363362303234383938613139646261653264663534273a207b0a20202020202020202020202074793a202734272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202731272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a2020202020202020202066326635653538343165346464613839613266616638393333646333336561363a207b0a20202020202020202020202074793a202734272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a20202020202020202020273265396462616436633066613338316136636431626239616266393861313034273a207b0a20202020202020202020202074793a202734272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202731272c0a202020204d08022020202020202020663a202730272c0a202020202020202020207d2c0a2020202020202020202062656463333065633433353837653063393866633338633339633165663964303a207b0a20202020202020202020202074793a202734272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202732272c0a20202020202020202020202063323a202732272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a20202020202020202020202063726f7373783a20272d32272c0a20202020202020202020202063726f7373793a20273132272c0a202020202020202020207d2c0a2020202020202020202063383031353564376565633965336463623739616136623833633963636431653a207b0a20202020202020202020202074793a202734272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202732272c0a20202020202020202020202063323a202732272c0a202020202020202020202020723a202731272c0a202020202020202020202020663a202730272c0a20202020202020202020202063726f7373783a202730272c0a20202020202020202020202063726f7373793a20273130272c0a202020202020202020207d2c0a2020202020202020202062633165393035646231303038344d08023933613936333261613833616234363832623a207b0a20202020202020202020202074793a202734272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a20202020202020202020273637393465613331353730656261306238386130626631656164336633663162273a207b0a20202020202020202020202074793a202734272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202731272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a20202020202020202020273031373036366635323239303830383165633365653632346635653461386161273a207b0a20202020202020202020202074793a202732272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202733272c0a202020202020204d08022020207d2c0a20202020202020202020273362633866353534636638366638313332613632336363323230316135363462273a207b0a20202020202020202020202074793a202734272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a20202020202020202020273533333062666534323861366236303162376537366332636663346364303439273a207b0a20202020202020202020202074793a202734272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202731272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a2020202020202020202066633065613532613966616335353732353162363565653638306439353165353a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a2027304d0802272c0a202020202020202020202020663a202730272c0a20202020202020202020202068733a202774272c0a202020202020202020207d2c0a20202020202020202020273536343639653863356666383938336336636238646164633634656230333633273a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202731272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a20202020202020202020273232303132316637373166633462393863656639376463303430653864333738273a207b0a20202020202020202020202074793a202734272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a2020202020202020202065613063383539616135346665356561663463316633323766616230363232313a207b0a20202020202020202020202074793a202734272c0a202020202020202020202020703a202766272c0a20202020202020204d08022020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202731272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a20202020202020202020273734353639353731613230386638623062316363666232326437633931346531273a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a20202020202020202020273864626130343235663032363265353730343538316438373537613161366533273a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202731272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a20202020202020202020273161353230373837306465633666616539313131636237343765323064386533273a207b0a20202020202020202020202074793a20274d080230272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a20202020202020202020273338366264656434613934346261653435356665646635363230366464316464273a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202731272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a2020202020202020202065633230366338646234333136656231656263653966633936306461376438663a207b0a20202020202020202020202074793a202734272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a20202020202020202020273035663433323434343635393433636538313937383061374d08023161356235373261273a207b0a20202020202020202020202074793a202734272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a20202020202020202020273333616561316532623636333461316465633863373030366439616664613232273a207b0a20202020202020202020202074793a202734272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a20202020202020202020273238333761386664343962376663376363643730666434356236396335303939273a207b0a20202020202020202020202074793a202734272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202731272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a2020204d080220202020202020273836353436383038646336303936316364623162323065373631633530616231273a207b0a20202020202020202020202074793a202733272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a20202020202020202020273538343538326262303965653831323265376663303964633764316564383133273a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a20202020202020202020273836353435376530653066343832353362303866373762396531386639336232273a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202731272c0a202020204d08022020202020202020663a202730272c0a202020202020202020207d2c0a20202020202020202020273137343566656164616262323465376365666333373539303463373366613463273a207b0a20202020202020202020202074793a202733272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a2020202020202020202061633033383036636566323535386663373935613764356438646261376263303a207b0a20202020202020202020202074793a202736272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a20202020202020202020273434323736313635356262323564646665356637616231366266353931633666273a207b0a20202020202020202020202074793a202731272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a4d0802202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a2020202020202020202062666164303136643665373765616363656337346330333430616465643862393a207b0a20202020202020202020202074793a202731272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a20202020202020202020273338336564396264316566623962366362333338386137373736373863393238273a207b0a20202020202020202020202074793a202731272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a20202020202020202020273866376562313061643062643735343734616266306336633336633038343836273a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202766272c0a2020202020204d080220202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a20202020202020202020273636656361616665316238326165363866666339363236376161663761346437273a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a2020202020202020202020206475616c616e616c6f673a202774272c0a20202020202020202020202068733a202774272c0a202020202020202020207d2c0a20202020202020202020273938306333356165393632353737336134353061613765663531373531633034273a207b0a20202020202020202020202074793a202734272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a202020202020202020202735334d0802646233323263323031333233666532636138663037346330613262663836273a207b0a20202020202020202020202074793a202734272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202731272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a2020202020202020202062363937643963326431623966366362323130343132383664316262666137663a207b0a20202020202020202020202074793a202734272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202732272c0a20202020202020202020202063323a202732272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a20202020202020202020202063726f7373783a202735272c0a20202020202020202020202063726f7373793a20272d35272c0a202020202020202020207d2c0a20202020202020202020273534363962346465303630386632336135633466393866333331633965373566273a207b0a20202020202020202020202074793a202734272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202732272c0a2020202020204d080220202020202063323a202732272c0a202020202020202020202020723a202731272c0a202020202020202020202020663a202730272c0a20202020202020202020202063726f7373783a20273135272c0a20202020202020202020202063726f7373793a20273230272c0a202020202020202020207d2c0a20202020202020202020273264363433616335343863343065353863393964306665343333626134626130273a207b0a20202020202020202020202074793a202733272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a2020202020202020202063626230373436313932353430613133623463373737356337636532303231663a207b0a20202020202020202020202074793a202733272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a202020202020202020206363313865336233376135303763343231376562366362314d080264653863383533383a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a20202020202020202020273136326639633935336630363537363839636337346162323062343032383066273a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202731272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a20202020202020202020273539623537393362656365316338306637376235356436306662333963623934273a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a20202020202020202020202072696768744d08027377697463683a202731272c0a202020202020202020207d2c0a20202020202020202020273935643763333231646365386635373632336139633562343934376262333735273a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202731272c0a202020202020202020202020663a202730272c0a20202020202020202020202072696768747377697463683a202731272c0a202020202020202020207d2c0a20202020202020202020273434663836326263613737643638623536623332353334656461356331393864273a207b0a20202020202020202020202074793a202731272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a20202020202020202020273563346637353233373161353233663135653939383066656137336238373464273a207b0a20202020202020202020202074793a202731272c0a202020202020202020202020703a202766272c0a202020202020204d0802202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a20202020202020202020273161663437356666363432396131363037353262353932663066393262323837273a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a20202020202020202020273362623963386439616463393132646437663834373163393734343563643864273a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202731272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a2020202020202020202063333930336162303161353132323261353231393764626665363533386563663a207b0a20202020202020202020202074793a2027304d0802272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a20202020202020202020273638323333383336343234336230323365636339643234663061626663396137273a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202731272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a20202020202020202020273230386566393535666139306132393831356562303937626365383962616365273a207b0a20202020202020202020202074793a202734272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a202020202020202020206431326536363533343766333534303438623964313330394d080232663738363863393a207b0a20202020202020202020202074793a202733272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a20202020202020202020273864363437363364623331303061616463353532646235653638363835303661273a207b0a20202020202020202020202074793a202733272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a20202020202020202020273332613337323434613963366363393238646364663032623435333635616138273a207b0a20202020202020202020202074793a202733272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202731272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a202020204d080220202020202061636636333735386563663366336464303365396436353461653662363962373a207b0a20202020202020202020202074793a202731272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a20202020202020202020273432376362303564306131616262303638393938653237363064373766346662273a207b0a20202020202020202020202074793a202731272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a20202020202020202020273337393964373266373864646132656538376230656638626637623931313836273a207b0a20202020202020202020202074793a202733272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020204d08022020202020663a202730272c0a202020202020202020207d2c0a20202020202020202020273035666236393964623965656635363465326665343563353638373436646263273a207b0a20202020202020202020202074793a202734272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a20202020202020202020273730393337633331383466306265333364303666376634333832636135346465273a207b0a20202020202020202020202074793a202734272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202731272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a2020202020202020202064376463313733373961613235653561653363313462396537383063366636643a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a2027314d0802272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a20202020202020202020202068733a202774272c0a202020202020202020207d2c0a2020202020202020202062316139663139366365356634376361386361663866613762633463613436633a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202731272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a2020202020202020202065316630613730386662633130373030316663343963653438313531666566613a207b0a20202020202020202020202074793a202732272c0a202020202020202020202020703a202774272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a20202020202020202020202070343a202766272c0a202020202020202020202020786d3a202766272c0a2020202020202020202020206c6566747377697463683a202730272c0a2020202020202020202020207269676874737769744d080263683a202731272c0a202020202020202020207d2c0a20202020202020202020273334343833343332623932663536356634636564383261313431313139313634273a207b0a20202020202020202020202074793a202732272c0a202020202020202020202020703a202774272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a20202020202020202020202070343a202774272c0a202020202020202020202020786d3a202766272c0a2020202020202020202020206c6566747377697463683a202730272c0a20202020202020202020202072696768747377697463683a202731272c0a202020202020202020207d2c0a2020202020202020202061643335613938303430613266616362313065636231323062663833626363333a207b0a20202020202020202020202074793a202732272c0a202020202020202020202020703a202774272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a20202020202020202020202070343a202766272c0a202020202020202020202020786d3a202766272c0a20204d0802202020202020202020206c6566747377697463683a202730272c0a20202020202020202020202072696768747377697463683a202731272c0a202020202020202020207d2c0a20202020202020202020273730376539383939313339306134653838373435303865356564346564656566273a207b0a20202020202020202020202074793a202732272c0a202020202020202020202020703a202774272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a20202020202020202020202070343a202774272c0a202020202020202020202020786d3a202766272c0a2020202020202020202020206c6566747377697463683a202730272c0a20202020202020202020202072696768747377697463683a202731272c0a202020202020202020207d2c0a2020202020202020202065633831343638653331666465303462363762356239396237646138656462313a207b0a20202020202020202020202074793a202732272c0a202020202020202020202020703a202774272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a20274d080230272c0a20202020202020202020202070343a202774272c0a202020202020202020202020786d3a202766272c0a2020202020202020202020206c6566747377697463683a202730272c0a20202020202020202020202072696768747377697463683a202731272c0a202020202020202020207d2c0a20202020202020202020273837343834653534616238653435616163393738646363336566643932346535273a207b0a20202020202020202020202074793a202732272c0a202020202020202020202020703a202774272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202731272c0a202020202020202020202020663a202730272c0a20202020202020202020202070343a202774272c0a202020202020202020202020786d3a202766272c0a2020202020202020202020206c6566747377697463683a202730272c0a20202020202020202020202072696768747377697463683a202731272c0a202020202020202020207d2c0a20202020202020202020273139323662396233323261633066386633366531313962353234616134386264273a207b0a20202020202020202020202074793a202732272c0a202020202020202020202020703a202774272c0a20202020202020202020202063313a202731272c0a202020202020204d0802202020202063323a202731272c0a202020202020202020202020723a202731272c0a202020202020202020202020663a202730272c0a20202020202020202020202070343a202774272c0a202020202020202020202020786d3a202766272c0a2020202020202020202020206c6566747377697463683a202730272c0a20202020202020202020202072696768747377697463683a202731272c0a202020202020202020207d2c0a20202020202020202020273365346231316139393237316664383037623563366462343131646336363433273a207b0a20202020202020202020202074793a202732272c0a202020202020202020202020703a202774272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202731272c0a202020202020202020202020663a202730272c0a20202020202020202020202070343a202766272c0a202020202020202020202020786d3a202766272c0a2020202020202020202020206c6566747377697463683a202730272c0a20202020202020202020202072696768747377697463683a202731272c0a202020202020202020207d2c0a20202020202020202020273833383564616363656530326363646130383165656434356562613134373964273a207b0a20202020202020202020202074793a202734274d08022c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a20202020202020202020202070343a202766272c0a202020202020202020202020786d3a202766272c0a20202020202020202020202068733a202766272c0a202020202020202020207d2c0a20202020202020202020273965613733666430376534336636313230393837366433336536663664633034273a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a20202020202020202020202068733a202774272c0a202020202020202020207d2c0a20202020202020202020273930666132373566396632613635623334313739366531316232663535316166273a207b0a20202020202020202020202074793a202733272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020204d08022020202020202020723a202730272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a20202020202020202020273239396433316338653138316664643031316466323031343435316264663066273a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a2020202020202020202020206c6566747377697463683a202730272c0a20202020202020202020202072696768747377697463683a202731272c0a20202020202020202020202068733a202774272c0a202020202020202020207d2c0a20202020202020202020273332303930333931343865306237613262313932376264303562616534363835273a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a2020202020202020202020206c6566747377697463683a202730272c0a202020202020204d0802202020202072696768747377697463683a202731272c0a202020202020202020207d2c0a20202020202020202020273332653933376537373936646233613031653962636635666539333932396230273a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a2020202020202020202020206c6566747377697463683a202730272c0a20202020202020202020202072696768747377697463683a202731272c0a202020202020202020207d2c0a2020202020202020202061363065346236303835303564316662323031373033623236366637353461373a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a2020202020202020202020206475616c616e616c6f673a202774272c0a20202020202020202020202068733a202774272c0a202020202020202020207d2c0a2020202020202020204d08022064626234393362646334653938343336646262666434663265343431333339373a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202731272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a20202020202020202020273534383239666237343464346364376137393463636432353830646637633364273a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202731272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a2020202020202020202066323034376231343965373262653866393765393637313331343734386563343a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a4d0802202730272c0a202020202020202020207d2c0a20202020202020202020273432666134626438353461323831336231393039396461353234343631613634273a207b0a20202020202020202020202074793a202737272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202731272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a2020202020202020202066353135306330666331393438383332323131653537383532616262306336653a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a202020202020202020202020786d3a202774272c0a20202020202020202020202068733a202774272c0a202020202020202020207d2c0a2020202020202020202061383435386335313066646437316131663963633463306232343362313737613a207b0a20202020202020202020202074793a202737272c0a202020202020202020202020703a202766272c0a2020202020204d080220202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a20202020202020202020273637656530303131303930613661646133386633656566386133303230666234273a207b0a20202020202020202020202074793a202731272c0a202020202020202020202020703a202774272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a20202020202020202020273133663131633465386330313965653332366235373164303539616363656134273a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202774272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a20202020202020202020202070343a202774272c0a202020202020202020207d2c0a2020202020202020202027363038666135393966303666393335653035643434356666323336663664374d080261273a207b0a20202020202020202020202074793a202732272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a20202020202020202020202073623a202774272c0a202020202020202020207d2c0a2020202020202020202061363566373961643461306262646563643539643566376562333632336664373a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a20202020202020202020202068733a202774272c0a202020202020202020207d2c0a20202020202020202020273364333832383165643861386438633763643435376131386339326338363034273a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a2020204d0802202020202020202020663a202730272c0a20202020202020202020202068733a202774272c0a202020202020202020207d2c0a20202020202020202020273535666665353335383937633336386265376138306435383266366136386362273a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a20202020202020202020202068733a202774272c0a202020202020202020207d2c0a2020202020202020202061353165356466323861306665386335326539643238666235663865343461363a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a20202020202020202020202068733a202774272c0a202020202020202020207d2c0a2020202020202020202062346265396332356561303738363038333130663064646334303965376363313a207b0a20202020202020202020202074793a4d0802202730272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a20202020202020202020202068733a202774272c0a202020202020202020207d2c0a20202020202020202020273738623130363164363531656638303662656361633164643366646132396130273a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202774272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a20202020202020202020202068733a202774272c0a202020202020202020207d2c0a20202020202020202020273630313061333938303730646661636234633031373364373564373363353061273a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202774272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a20204d080220202020202020207d2c0a20202020202020202020273966613737343361303136633962373031356565316433383633323666383865273a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a20202020202020202020202068733a202774272c0a202020202020202020207d2c0a2020202020202020202061663163386638396630616566306439653265313539303164366530353339613a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202731272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a20202020202020202020273264326665346461396631626165313032666138636132643838333061363236273a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a2020202020202020202020204d080263323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a20202020202020202020202068733a202774272c0a202020202020202020207d2c0a20202020202020202020273130303535313336333032376463356630393364303439613566643030393333273a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a20202020202020202020202068733a202774272c0a202020202020202020207d2c0a20202020202020202020273430626432316339363938633662386537316237303366383630633131333539273a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a2020202020202020202063663363356133323230353530366166336330396536653063383263666130393a207b0a20204d08022020202020202020202074793a202732272c0a202020202020202020202020703a202774272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a20202020202020202020202070343a202774272c0a20202020202020202020202068733a202774272c0a202020202020202020207d2c0a2020202020202020202063393536643563653734313763633264616236316139616664386633373264303a207b0a20202020202020202020202074793a202732272c0a202020202020202020202020703a202774272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a20202020202020202020202070343a202774272c0a20202020202020202020202068733a202774272c0a202020202020202020207d2c0a2020202020202020202064663730303735336438626139333533613730343538363837373865656636643a207b0a20202020202020202020202074793a202732272c0a202020202020202020202020703a202774272c0a20202020202020202020202063313a202731272c0a2020202020202020202020204d080263323a202731272c0a202020202020202020202020723a202731272c0a202020202020202020202020663a202730272c0a20202020202020202020202070343a202774272c0a202020202020202020207d2c0a20202020202020202020273039386232303961616331323666326332656462633938326466303963643162273a207b0a20202020202020202020202074793a202736272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a20202020202020202020273435363538363761613665356363373130613765646166366434333462336166273a207b0a20202020202020202020202074793a202736272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a2020202020202020202066616231323930663961346334663262346438333163386135376639363966353a207b0a20202020202020202020202074793a202731272c0a20204d080220202020202020202020703a202774272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a2020202020202020202061396632393030343431323632316632306164396635633531636331313438363a207b0a20202020202020202020202074793a202734272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a2020202020202020202066613461656334303762393065393336306239636665623431383339623039613a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a20202020202020202020202068733a202774272c0a202020202020202020207d2c0a202020202020202020202736323837373237616233364d0802333931613632663732386262646565383836373563273a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a20202020202020202020202068733a202774272c0a202020202020202020207d2c0a20202020202020202020273834633462346564373566343134313761633763626365616337316533383536273a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202731272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a20202020202020202020273266623835636162366530663035383265333035376266316163333363373461273a207b0a20202020202020202020202074793a202734272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a20204d080220202020202020202020663a202730272c0a202020202020202020207d2c0a2020202020202020202065376438393636396137663932656332636339396439363633613238363731633a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a202020202020202020202020786d3a202766272c0a20202020202020202020202068733a202774272c0a202020202020202020207d2c0a20202020202020202020273630353332333363623539633062346361363333363233666437366334353736273a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202774272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a20202020202020202020202068733a202774272c0a202020202020202020207d2c0a2020202020202020202065653039373839643631613639336533383763636463396132663032356234333a207b0a20202020202020202020202074794d08023a202730272c0a202020202020202020202020703a202774272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a20202020202020202020273364313234383963353533636231613930633865626436353334333833666131273a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202774272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a20202020202020202020273165323162663164396437623363306365626161633537363936346339656232273a207b0a20202020202020202020202074793a202734272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a2020202020202020202027343664626335313038313531653936336231324d080230636461656464376436643463273a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a20202020202020202020202068733a202774272c0a202020202020202020207d2c0a20202020202020202020273235636531663564666339303962636234363038366534313464366130663330273a207b0a20202020202020202020202074793a202734272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a20202020202020202020273631383039363834656566643663626232393633353734666662306133666162273a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020204d08022020663a202730272c0a2020202020202020202020206475616c616e616c6f673a202774272c0a202020202020202020207d2c0a2020202020202020202062663037306630346338666337656337323162393530366236336234383437303a207b0a20202020202020202020202074793a202733272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a20202020202020202020273461383131643837643137333061333334613231653762646139666535333561273a207b0a20202020202020202020202074793a202733272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a20202020202020202020273035633231613838666437333664353964323862316439356537393834306236273a207b0a20202020202020202020202074793a202733272c0a202020202020202020202020703a202766272c0a202020202020202020202020634d0802313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a2020202020202020202064646535373033633438386334616435323638633236393637303466316336383a207b0a20202020202020202020202074793a202733272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a2020202020202020202066343231366362373763643664623135323235393638663331356339373933663a207b0a20202020202020202020202074793a202733272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a2020202020202020202065353465646332393965373264323264306261303564313666333339336538633a207b0a20202020202020202020202074793a202730272c0a202020202020204d08022020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a20202020202020202020202068733a202774272c0a202020202020202020207d2c0a2020202020202020202062646533616265343064333032643863346336356339363930633035646263343a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a20202020202020202020202068733a202774272c0a202020202020202020207d2c0a2020202020202020202065323734653732383562623866393764346439616364646338343937656439653a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202731272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a2020202020204d080220202020273566623830356632623639383230613962313936663566656432613233633939273a207b0a20202020202020202020202074793a202734272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a20202020202020202020273131346532313562386366633836393862633032383661373965316362396232273a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202774272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202730272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a2020202020202020202065623363313434336634613235383036646534363537653130366435303465383a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a2020202020202020204d0802202020663a202730272c0a202020202020202020207d2c0a2020202020202020202063336636323031643661393338386538363033323863393633613333303163633a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a20202020202020202020202068733a202774272c0a202020202020202020207d2c0a2020202020202020202064633062663532343735303330633035363731646431383765396139396630383a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202731272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a20202020202020202020273461373032623939356663613835393165326431343236386362313233343437273a207b0a20202020202020202020202074793a202733272c0a202020202020202020202020703a202774272c0a20202020202020202020202063313a202731272c0a204d0802202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a20202020202020202020202070343a202774272c0a20202020202020202020202068733a202766272c0a202020202020202020207d2c0a20202020202020202020273966663338656136323030343230316438373063616138626439343633353235273a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a20202020202020202020202068733a202774272c0a202020202020202020207d2c0a20202020202020202020273361313566653762656164336439623930663366623133643633653165653432273a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a20202020202020202020202068733a202774272c0a20202020202020204d080220207d2c0a20202020202020202020273637356335623739323338656161363431663265336665396335653232353839273a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202731272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a20202020202020202020273839663930623636316431623739653935366231306262366139373731663738273a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202774272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a2020202020202020202064386462623563346437643032653662303632376466386636353761313362343a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730274d08022c0a202020202020202020202020663a202730272c0a20202020202020202020202068733a202774272c0a202020202020202020207d2c0a20202020202020202020273237633133333936356466643830623361636231656435393838313761656130273a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a20202020202020202020202068733a202774272c0a202020202020202020207d2c0a2020202020202020202063663030373536336665393463616366356561353239356463393363653965663a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a20202020202020202020202068733a202774272c0a202020202020202020207d2c0a2020202020202020202063616431653733333938366263653165653463396461373364653164636666313a207b0a202020202020202020204d0802202074793a202730272c0a202020202020202020202020703a202774272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a2020202020202020202064623736383239373938353137386365633033346331326134316436663161373a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202774272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a20202020202020202020273838396663376537626135633830376265343465383562613761366264323665273a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202774272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a20202020202020202020202068733a202774272c0a202020202020202020207d2c0a202020202020204d080220202062633536663830336436353635386639326331376536633262323731613530373a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202774272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202731272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a20202020202020202020273261313764633561363162653334326464303061663731396363333335383532273a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202774272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a20202020202020202020202068733a202774272c0a202020202020202020207d2c0a20202020202020202020273939303535633365363237626263313766633831636265306233616531373663273a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202774272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a2020202020202020204d0802202020723a202731272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a2020202020202020202061363933343763386136383162386539346637396438643834383939383030373a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a20202020202020202020202068733a202774272c0a202020202020202020207d2c0a20202020202020202020273739323032636237643262633135306666636130633936613464386234326366273a207b0a20202020202020202020202074793a202731272c0a202020202020202020202020703a202774272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a20202020202020202020273034656466346633633662313836313437633131313733353963386635303736273a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202766272c0a4d080220202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a20202020202020202020202072696768747377697463683a202731272c0a20202020202020202020202068733a202774272c0a202020202020202020207d2c0a20202020202020202020273833333865636136313265656466366464656335376435343934323836336537273a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a20202020202020202020202072696768747377697463683a202731272c0a202020202020202020207d2c0a20202020202020202020273537356331386637376134323135333332626635366430303830613233346238273a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a2020202020202020204d0802202020663a202730272c0a20202020202020202020202072696768747377697463683a202731272c0a202020202020202020207d2c0a20202020202020202020273732656336383632376262376438373961653335613731643736373966373165273a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a20202020202020202020202072696768747377697463683a202731272c0a20202020202020202020202068733a202774272c0a202020202020202020207d2c0a20202020202020202020273630393832663433306237363233343364353365343866373061636661366430273a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202774272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a20202020202020202020202068733a202774272c0a202020202020202020207d2c0a20202020202020202020273138303132316563623461616263374d08026461613934356233353565313563323534273a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202774272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202731272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a20202020202020202020273466623131396636646232363338306162626130336534636533636130346338273a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a20202020202020202020202072696768747377697463683a202731272c0a202020202020202020207d2c0a20202020202020202020273062373633356430663339666639376431653834313838386531623233623762273a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a2027304d0802272c0a202020202020202020202020663a202730272c0a20202020202020202020202072696768747377697463683a202731272c0a202020202020202020207d2c0a20202020202020202020273336386333626661393163663262623834313339363765623063333932633663273a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202774272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a20202020202020202020202070343a202766272c0a202020202020202020202020786d3a202766272c0a20202020202020202020202068733a202774272c0a202020202020202020207d2c0a20202020202020202020273530313362363963623035623231613131393463653438353137646637626663273a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202774272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a20202020202020202020202070343a202766272c0a202020202020202020202020786d3a4d0802202766272c0a20202020202020202020202068733a202774272c0a202020202020202020207d2c0a20202020202020202020273666383063616335393032336136396166613236313832656162626466626164273a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202774272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a20202020202020202020202068733a202774272c0a202020202020202020207d2c0a2020202020202020202062313638356463626166316235373863623162363634333636366438313365343a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202774272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a20202020202020202020273437343861363264356336323866656664323864663564653535363765646563273a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202766272c0a202020204d0802202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a20202020202020202020202072696768747377697463683a202731272c0a202020202020202020207d2c0a20202020202020202020273164376436353939376437636430383538653962656537316465643237326161273a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a20202020202020202020202072696768747377697463683a202731272c0a202020202020202020207d2c0a20202020202020202020273739316535356462303339303339383832383033383835373361326663646331273a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a20202020202020202020202072694d08026768747377697463683a202731272c0a20202020202020202020202068733a202774272c0a202020202020202020207d2c0a2020202020202020202064306266336238343161643462626433353665393538383837343734396131333a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202774272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a20202020202020202020202070343a202774272c0a202020202020202020202020786d3a202766272c0a202020202020202020207d2c0a20202020202020202020273134383262656566376462646231323266366262346230333634303838386632273a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202774272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202731272c0a202020202020202020202020663a202730272c0a20202020202020202020202070343a202774272c0a202020202020202020202020786d3a202766272c0a202020202020202020207d2c0a20202020202020202020653834393736613335324d0802393931356163393162393634666162303361656462323a207b0a20202020202020202020202074793a202731272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202731272c0a20202020202020202020202070343a202766272c0a202020202020202020202020786d3a202774272c0a20202020202020202020202068733a202774272c0a202020202020202020207d2c0a20202020202020202020273038303535353931663935613534613334646439306439306165356465633234273a207b0a20202020202020202020202074793a202731272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202731272c0a20202020202020202020202070343a202766272c0a202020202020202020202020786d3a202774272c0a20202020202020202020202068733a202774272c0a202020202020202020207d2c0a20202020202020202020273966616337643034333364633364393336656663653563373133343838623038273a207b0a4d080220202020202020202020202074793a202731272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202731272c0a20202020202020202020202070343a202766272c0a202020202020202020202020786d3a202774272c0a20202020202020202020202068733a202774272c0a202020202020202020207d2c0a2020202020202020202066336634343832623335353136363761353264396236353765313563643262663a207b0a20202020202020202020202074793a202731272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202731272c0a20202020202020202020202070343a202766272c0a202020202020202020202020786d3a202774272c0a20202020202020202020202068733a202774272c0a202020202020202020207d2c0a20202020202020202020273034343635373239343435306338363963343565376566363166343837306465273a207b0a20202020202020202020202074793a202731272c0a202020202020204d08022020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202731272c0a20202020202020202020202070343a202766272c0a202020202020202020202020786d3a202774272c0a20202020202020202020202068733a202774272c0a202020202020202020207d2c0a2020202020202020202064303065363936326132663938363962313663623436633865623631323666633a207b0a20202020202020202020202074793a202731272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202731272c0a20202020202020202020202070343a202774272c0a202020202020202020202020786d3a202774272c0a20202020202020202020202068733a202774272c0a202020202020202020207d2c0a2020202020202020202063306663636535316661393566346531643639653163613661613263653561383a207b0a20202020202020202020202074793a202731272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a20274d080231272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202731272c0a20202020202020202020202070343a202774272c0a202020202020202020202020786d3a202774272c0a20202020202020202020202068733a202774272c0a202020202020202020207d2c0a20202020202020202020273165353265373364353836326137323437626130663933656666356230333730273a207b0a20202020202020202020202074793a202731272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202731272c0a20202020202020202020202070343a202774272c0a202020202020202020202020786d3a202774272c0a20202020202020202020202068733a202774272c0a202020202020202020207d2c0a2020202020202020202062656637383364313561313033623531646230336138363664376130623237333a207b0a20202020202020202020202074793a202731272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a2020204d0802202020202020202020723a202730272c0a202020202020202020202020663a202731272c0a20202020202020202020202070343a202774272c0a202020202020202020202020786d3a202774272c0a20202020202020202020202068733a202774272c0a202020202020202020207d2c0a20202020202020202020273631633566363534623334303337396636396164613462633463633264356430273a207b0a20202020202020202020202074793a202731272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202731272c0a20202020202020202020202070343a202774272c0a202020202020202020202020786d3a202774272c0a20202020202020202020202068733a202774272c0a202020202020202020207d2c0a20202020202020202020273633333564393463663631346633386135636438356334323139656232346631273a207b0a20202020202020202020202074793a202731272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a2020202020202020204d0802202020663a202731272c0a20202020202020202020202070343a202774272c0a202020202020202020202020786d3a202774272c0a20202020202020202020202068733a202774272c0a202020202020202020207d2c0a20202020202020202020273339646337663666333966396233653334316135666665613736653731666231273a207b0a20202020202020202020202074793a202731272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202731272c0a20202020202020202020202070343a202766272c0a202020202020202020202020786d3a202774272c0a20202020202020202020202068733a202774272c0a202020202020202020207d2c0a20202020202020202020273863623636633665643562333739313831623134323064386534373538383334273a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a2020202020202020202020206475614d08026c616e616c6f673a202774272c0a202020202020202020207d2c0a2020202020202020202063316163393938376139343833653230306333333863636264326565393462353a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a2020202020202020202020206475616c616e616c6f673a202774272c0a202020202020202020207d2c0a2020202020202020202062356339663062663562353736336139323362376633373033373662313834393a207b0a20202020202020202020202074793a202734272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a2020202020202020202062353565346432353531373365356232633265363230663331383661316563633a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202766272c0a202020202020202020202020634d0802313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a20202020202020202020202072696768747377697463683a202731272c0a202020202020202020207d2c0a20202020202020202020273236383937616234376238633564336235376433636332333564373633356438273a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a20202020202020202020202072696768747377697463683a202731272c0a202020202020202020207d2c0a20202020202020202020273262316637386161613262386465356461653365653462393361623637386634273a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a20202020202020202020202072696768747377697463684d08023a202731272c0a202020202020202020207d2c0a2020202020202020202061336134646264323763383065666639626566353166373363643236663164353a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a20202020202020202020202072696768747377697463683a202731272c0a202020202020202020207d2c0a20202020202020202020273433613030353966663162356266373665306337303233666465376333336135273a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a20202020202020202020202072696768747377697463683a202731272c0a202020202020202020207d2c0a2020202020202020202061386537353264313038656663656666353034616534656463343736366237353a207b0a20202020202020202020202074793a202730272c0a202020202020204d08022020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a20202020202020202020202072696768747377697463683a202731272c0a202020202020202020207d2c0a20202020202020202020273034633938356562626430626561346335353732303765363962386362643866273a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a20202020202020202020202072696768747377697463683a202731272c0a202020202020202020207d2c0a2020202020202020202062633166353664376363313466313564646663626135653231653139393337623a207b0a20202020202020202020202074793a202732272c0a202020202020202020202020703a202774272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c4d08020a2020202020202020202020206c6566747377697463683a202730272c0a20202020202020202020202072696768747377697463683a202731272c0a202020202020202020207d2c0a20202020202020202020273865306335666337376232373432326133396438366163326535376463373364273a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202774272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a2020202020202020202066396661353130376564323133653730393835386438383736333539333039653a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202774272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a20202020202020202020273233373066376365316239316663373735626365336537323435346639303861273a207b0a20202020202020202020202074793a202730272c0a2020202020202020202020204d0802703a202774272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a20202020202020202020202070343a202774272c0a202020202020202020207d2c0a2020202020202020202062346631333765383535383863653432643330323130326261373231353433373a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202774272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a20202020202020202020202070343a202774272c0a202020202020202020207d2c0a2020202020202020202065316230316464376538343264326236383265663438663638396435613465623a207b0a20202020202020202020202074793a202734272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a20202020202020202020274d08023433353235613034303531383438373563326563666430313936383836613334273a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a202020202020202020202020786d3a202766272c0a20202020202020202020202068733a202774272c0a202020202020202020207d2c0a20202020202020202020273830333734336665313836303066323932343536353339393036343634343231273a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a202020202020202020202020786d3a202766272c0a20202020202020202020202068733a202774272c0a202020202020202020207d2c0a20202020202020202020273130366234303963366634633231396231613362336430393965616433623262273a207b0a20202020202020202020202074793a202730272c0a202020202020202020204d08022020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202731272c0a202020202020202020202020663a202730272c0a202020202020202020202020786d3a202766272c0a202020202020202020207d2c0a20202020202020202020273033646161313962376161653264323765363166326134646265336239623739273a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202774272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202731272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a20202020202020202020273033393335623961316632353631626164613538666364356439666432376465273a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a2020202020202020202020206475616c616e616c6f673a202774272c0a202020202020202020204d08027d2c0a2020202020202020202064323765643866383833616639623465653362353537306633306539666637313a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a2020202020202020202020206475616c616e616c6f673a202774272c0a202020202020202020207d2c0a20202020202020202020273031633762633363643833373565333533633861613833376665313236326563273a207b0a20202020202020202020202074793a202734272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a2020202020202020202061336138356535303764366637313839373262313436346365316161663861343a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063324d08023a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a202020202020202020202020786d3a202766272c0a20202020202020202020202068733a202774272c0a202020202020202020207d2c0a20202020202020202020273331623230613437313065363931333030626234616136326366303232383463273a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a202020202020202020202020786d3a202766272c0a20202020202020202020202068733a202774272c0a202020202020202020207d2c0a20202020202020202020273332663161316235613765336234343933633362376236333761656561376438273a207b0a20202020202020202020202074793a202734272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a20202020202020204d08022020273665323766373362643461343962363437626364353862633566386237333964273a207b0a20202020202020202020202074793a202734272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a20202020202020202020273030373037353165646238626266346464346136383566353862356237326335273a207b0a20202020202020202020202074793a202734272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a20202020202020202020273962643730633036643333383666373666383136323838313639396137373761273a207b0a20202020202020202020202074793a202733272c0a202020202020202020202020703a202774272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a2020202020202020204d0802202020663a202730272c0a20202020202020202020202070343a202774272c0a20202020202020202020202068733a202766272c0a202020202020202020207d2c0a20202020202020202020273935633861373935653330363430633965633832363039383732633830353137273a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a20202020202020202020202072696768747377697463683a202731272c0a202020202020202020207d2c0a20202020202020202020273163383133396335383465316366356336616664643266333435356132343436273a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202731272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a2020202020202020202063613163323762353366636662396665643833626339653932393230373037633a207b0a202020202020202020204d0802202074793a202734272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202730272c0a20202020202020202020202063323a202730272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a20202020202020202020273737316362343630393334373635376636336536663065623236303336653335273a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a20202020202020202020202068733a202774272c0a202020202020202020207d2c0a2020202020202020202061383463316232333030666266626632316231633032333837663631336461643a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202731272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a202020202020204d0802202020273661646637393535386133643766356265636131626238643334333337343137273a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a20202020202020202020202068733a202774272c0a202020202020202020207d2c0a20202020202020202020273738336430396164393534326230626232386161346363366666636638616136273a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a20202020202020202020202068733a202774272c0a202020202020202020207d2c0a20202020202020202020273066346264353830303335396136326135383734623933646339326134376631273a207b0a20202020202020202020202074793a202732272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a202020202020204d0802202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a20202020202020202020273032353038653664663565313733623430363361376536653633323935383137273a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202774272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a20202020202020202020202070343a202774272c0a202020202020202020202020786d3a202766272c0a20202020202020202020202068733a202774272c0a202020202020202020207d2c0a20202020202020202020273831636565333236623939643638333164653130613536366533333862643235273a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202774272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a20202020202020202020202068733a202774272c0a202020202020202020207d2c0a204d0802202020202020202020273163396230626230323865363366383361326431633164656636373561636339273a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202774272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202731272c0a202020202020202020202020663a202730272c0a202020202020202020202020786d3a202766272c0a202020202020202020207d2c0a2020202020202020202066346164316131643733326332633863646264323164616261663338613436633a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202774272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202731272c0a202020202020202020202020663a202730272c0a20202020202020202020202070343a202766272c0a202020202020202020202020786d3a202766272c0a20202020202020202020202068733a202766272c0a202020202020202020207d2c0a2020202020202020202066343166363531343137633233343130346433373239363437376661323965623a207b0a20202020202020202020202074793a202730272c0a202020204d08022020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a20202020202020202020202070343a202766272c0a202020202020202020202020786d3a202766272c0a20202020202020202020202068733a202774272c0a202020202020202020207d2c0a20202020202020202020273761623533396262306539396531653561316338393233306264653634363130273a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a20202020202020202020202070343a202766272c0a202020202020202020202020786d3a202766272c0a20202020202020202020202068733a202774272c0a202020202020202020207d2c0a20202020202020202020273838623964653065626133376261353136353930666138623836303135356630273a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202766272c0a202020202020202020204d0802202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a20202020202020202020202070343a202766272c0a202020202020202020202020786d3a202766272c0a20202020202020202020202068733a202774272c0a202020202020202020207d2c0a20202020202020202020273631616134613037346164303863353234666265653838643135653336396561273a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202731272c0a202020202020202020202020663a202730272c0a20202020202020202020202070343a202766272c0a202020202020202020202020786d3a202766272c0a20202020202020202020202068733a202766272c0a202020202020202020207d2c0a20202020202020202020273336333266636337333261333335393162393166306565613263303165353939273a207b0a20202020202020202020202074793a202734272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a4d0802202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a20202020202020202020202070343a202766272c0a202020202020202020202020786d3a202766272c0a20202020202020202020202068733a202766272c0a202020202020202020207d2c0a2020202020202020202064306238376433343964366435653430393230636334666639353235333333393a207b0a20202020202020202020202074793a202734272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a20202020202020202020202070343a202766272c0a202020202020202020202020786d3a202766272c0a20202020202020202020202068733a202766272c0a202020202020202020207d2c0a20202020202020202020273963623338343834313665333965626636343233353764626565336535393730273a207b0a20202020202020202020202074793a202733272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202730272c0a202020202020202020202020723a202730272c0a20204d080220202020202020202020663a202730272c0a20202020202020202020202070343a202766272c0a202020202020202020202020786d3a202766272c0a20202020202020202020202068733a202766272c0a202020202020202020207d2c0a2020202020202020202062316563376264383039616233646562373436633561356562326566616563623a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202774272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a20202020202020202020202070343a202766272c0a202020202020202020202020786d3a202766272c0a20202020202020202020202068733a202766272c0a202020202020202020207d2c0a20202020202020202020273433663865396365633364393939313031373730396634386137616132326636273a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202774272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a202020202020202020204d0802202070343a202766272c0a202020202020202020202020786d3a202766272c0a20202020202020202020202068733a202766272c0a202020202020202020207d2c0a2020202020202020202066383564353036663539333334323763386465363634626530633535313061333a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a20202020202020202020202070343a202766272c0a202020202020202020202020786d3a202766272c0a20202020202020202020202068733a202774272c0a202020202020202020207d2c0a2020202020202020202066383338343963663366356163393538353665386639336565393064356138643a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a20202020202020202020202070343a202766272c0a202020202020202020202020786d3a202766274d08022c0a20202020202020202020202068733a202766272c0a20202020202020202020202072696768747377697463683a202731272c0a202020202020202020207d2c0a2020202020202020202063363236333235343563393138323366373266366631346231393736363830343a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202774272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a20202020202020202020202070343a202766272c0a202020202020202020202020786d3a202766272c0a20202020202020202020202068733a202766272c0a202020202020202020207d2c0a20202020202020202020273430393133646366323461363233633164633234393561316334393331623438273a207b0a20202020202020202020202074793a202734272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a20202020202020202020202070343a202766272c0a202020202020202020202020786d3a20274d080266272c0a20202020202020202020202068733a202766272c0a202020202020202020207d2c0a20202020202020202020273862343935343937363366346630653432613233393432623864663662323438273a207b0a20202020202020202020202074793a202734272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a20202020202020202020202070343a202766272c0a202020202020202020202020786d3a202766272c0a20202020202020202020202068733a202766272c0a202020202020202020207d2c0a20202020202020202020273764623033316631633464633935373731393831326665363865653432353331273a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202731272c0a202020202020202020202020663a202730272c0a20202020202020202020202070343a202766272c0a202020202020202020202020786d3a202766272c0a20202020202020202020202068733a202766272c0a204d08022020202020202020207d2c0a20202020202020202020273538333763346163386234383166623938333831616466643266653837393639273a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202774272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a20202020202020202020202070343a202766272c0a202020202020202020202020786d3a202766272c0a20202020202020202020202068733a202766272c0a202020202020202020207d2c0a20202020202020202020273035623034653938323261373563656565616132656231303666666537363865273a207b0a20202020202020202020202074793a202734272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a20202020202020202020202070343a202766272c0a202020202020202020202020786d3a202766272c0a20202020202020202020202068733a202766272c0a202020202020202020207d2c0a20202020202020202020273732374d08026236643434376532316166343262333736376639633263666636303132273a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a20202020202020202020202070343a202766272c0a202020202020202020202020786d3a202766272c0a20202020202020202020202068733a202774272c0a202020202020202020207d2c0a2020202020202020202063333130376433653365313764363765336131316434376135393436613466333a207b0a20202020202020202020202074793a202732272c0a202020202020202020202020703a202774272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a20202020202020202020202070343a202766272c0a202020202020202020202020786d3a202766272c0a20202020202020202020202068733a202774272c0a202020202020202020207d2c0a2020202020202020202027386361613239613864393231346361303236393762333335373130323330394d080261273a207b0a20202020202020202020202074793a202732272c0a202020202020202020202020703a202774272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202731272c0a202020202020202020202020663a202730272c0a20202020202020202020202070343a202766272c0a202020202020202020202020786d3a202766272c0a20202020202020202020202068733a202766272c0a202020202020202020207d2c0a2020202020202020202062333134336164626262376437643138396539313865356232396435356137323a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a20202020202020202020202070343a202766272c0a202020202020202020202020786d3a202766272c0a20202020202020202020202068733a202774272c0a202020202020202020207d2c0a2020202020202020202065353437343932656264333432653537633238626232333535343664613239393a207b0a20202020202020202020202074793a202730272c0a2020204d0802202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202731272c0a202020202020202020202020663a202730272c0a20202020202020202020202070343a202766272c0a202020202020202020202020786d3a202766272c0a20202020202020202020202068733a202766272c0a202020202020202020207d2c0a20202020202020202020273839623862336466343637333365306334643537616562396262323435653666273a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a20202020202020202020202070343a202766272c0a202020202020202020202020786d3a202766272c0a20202020202020202020202068733a202774272c0a202020202020202020207d2c0a2020202020202020202065656130343335396466363737306436366230643937633263656131393332663a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202766272c0a20202020202020202020204d08022063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a20202020202020202020202070343a202766272c0a202020202020202020202020786d3a202766272c0a20202020202020202020202068733a202774272c0a202020202020202020207d2c0a20202020202020202020273763646662653337363334653764636434646336376462376564626364336261273a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a20202020202020202020202070343a202766272c0a202020202020202020202020786d3a202766272c0a20202020202020202020202068733a202766272c0a202020202020202020207d2c0a20202020202020202020273161653062323764343766313964353936353231363866616433393636333735273a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202774272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a204d08022731272c0a202020202020202020202020723a202731272c0a202020202020202020202020663a202730272c0a20202020202020202020202070343a202766272c0a202020202020202020202020786d3a202766272c0a20202020202020202020202068733a202766272c0a202020202020202020207d2c0a20202020202020202020273335343333383638646665333833616532316664373735303765356134373864273a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202774272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a20202020202020202020202070343a202774272c0a202020202020202020202020786d3a202766272c0a20202020202020202020202068733a202766272c0a202020202020202020207d2c0a20202020202020202020273539663163316537663636353361346536366561383938636536656162353066273a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a204d08022020202020202020202020663a202730272c0a20202020202020202020202070343a202766272c0a202020202020202020202020786d3a202766272c0a20202020202020202020202068733a202774272c0a202020202020202020207d2c0a2020202020202020202063326234323633393731386430303561366430616566613038303966373764623a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202731272c0a202020202020202020202020663a202730272c0a20202020202020202020202070343a202766272c0a202020202020202020202020786d3a202766272c0a20202020202020202020202068733a202766272c0a202020202020202020207d2c0a20202020202020202020273830666661643365646235306630393730653738306137323761343532346464273a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202774272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a2020202020202020204d080220202070343a202766272c0a202020202020202020202020786d3a202766272c0a20202020202020202020202068733a202774272c0a202020202020202020207d2c0a2020202020202020202064396131313064383839633464343230383963363166616465323561663232303a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a20202020202020202020202070343a202766272c0a202020202020202020202020786d3a202766272c0a20202020202020202020202068733a202774272c0a202020202020202020207d2c0a20202020202020202020273739646632306565383661393839653636393135386263623964313133653861273a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a20202020202020202020202070343a202766272c0a202020202020202020202020786d3a204d08022766272c0a20202020202020202020202068733a202774272c0a202020202020202020207d2c0a2020202020202020202066393832633764626637346339633034396366376638373561343665643831383a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a20202020202020202020202070343a202766272c0a202020202020202020202020786d3a202766272c0a20202020202020202020202068733a202774272c0a202020202020202020207d2c0a2020202020202020202066663864383238333535336166356435646264616464623537383162343839363a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a20202020202020202020202070343a202766272c0a202020202020202020202020786d3a202766272c0a20202020202020202020202068733a202774272c0a202020204d08022020202020207d2c0a2020202020202020202061343636613639393332346431316531613235393463633839613966313865313a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a20202020202020202020202070343a202766272c0a202020202020202020202020786d3a202774272c0a20202020202020202020202068733a202766272c0a2020202020202020202020206c6566747377697463683a202730272c0a202020202020202020207d2c0a20202020202020202020273063303937626338633738366166313832393335303831616335636436333166273a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202774272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a20202020202020202020202070343a202766272c0a202020202020202020202020786d3a202774272c0a20202020202020202020202068733a202774272c0a2020204d0802202020202020207d2c0a2020202020202020202061363632383632663230333632666335656235633635313036356362643531633a207b0a20202020202020202020202074793a202733272c0a202020202020202020202020703a202774272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a20202020202020202020202070343a202766272c0a202020202020202020202020786d3a202774272c0a20202020202020202020202068733a202766272c0a2020202020202020202020206475616c616e616c6f673a202774272c0a202020202020202020207d2c0a20202020202020207d3b0a2020202020202020766172206275203d2058663b0a202020202020202067752e70726f746f74797065203d207b0a20202020202020202020637265617465456c656d656e743a2066756e6374696f6e202829207b0a202020202020202020202020746869732e656c203d20746869732e646f437265617465456c656d656e7428293b0a2020202020202020202020207661722074203d20746869732e676574436c61737328293b0a202020202020202020202020696620287429207b0a2020202020202020202020202020746869732e656c2e636c6173734e616d65203d20743b4d08020a2020202020202020202020207d0a20202020202020202020202072657475726e20746869732e656c3b0a202020202020202020207d2c0a20202020202020202020676574436c6173733a2066756e6374696f6e202829207b0a20202020202020202020202072657475726e206e756c6c3b0a202020202020202020207d2c0a20202020202020202020676574456c656d656e743a2066756e6374696f6e202829207b0a20202020202020202020202072657475726e20746869732e656c3b0a202020202020202020207d2c0a20202020202020202020646f437265617465456c656d656e743a2066756e6374696f6e202829207b0a20202020202020202020202072657475726e206e756c6c3b0a202020202020202020207d2c0a20202020202020207d3b0a202020202020202079752e70726f746f74797065203d204f626a6563742e6372656174652867752e70726f746f74797065293b0a202020202020202062752879752e70726f746f747970652c207b0a20202020202020202020676574436c6173733a2066756e6374696f6e202829207b0a20202020202020202020202072657475726e20276a73373830305f5f636f6e74726f6c732d627574746f6e273b0a202020202020202020207d2c0a20202020202020202020646f437265617465456c656d656e743a2066756e6374696f6e202829207b0a2020202020202020202020204d08027661722074203d20646f63756d656e742e637265617465456c656d656e742827627574746f6e27293b0a2020202020202020202020207661722065203d20746869733b0a202020202020202020202020742e6f6e636c69636b203d2066756e6374696f6e20287429207b0a2020202020202020202020202020652e6f6e436c69636b2874293b0a2020202020202020202020207d3b0a202020202020202020202020742e6f6e6d6f757365646f776e203d2066756e6374696f6e20287429207b0a2020202020202020202020202020652e6f6e446f776e2874293b0a2020202020202020202020207d3b0a202020202020202020202020742e6f6e6d6f7573657570203d2066756e6374696f6e20287429207b0a2020202020202020202020202020652e6f6e55702874293b0a2020202020202020202020207d3b0a202020202020202020202020766172206e203d20646f63756d656e742e637265617465546578744e6f646528746869732e74657874293b0a202020202020202020202020742e617070656e644368696c64286e293b0a20202020202020202020202069662028746869732e7469746c6529207b0a2020202020202020202020202020742e73657441747472696275746528277469746c65272c20746869732e7469746c65293b0a2020202020202020202020207d0a20202020202020202020202072657475726e20743b0a204d08022020202020202020207d2c0a202020202020202020206f6e436c69636b3a2066756e6374696f6e20287429207b7d2c0a202020202020202020206f6e446f776e3a2066756e6374696f6e20287429207b7d2c0a202020202020202020206f6e55703a2066756e6374696f6e20287429207b7d2c0a20202020202020207d293b0a202020202020202077752e70726f746f74797065203d204f626a6563742e6372656174652867752e70726f746f74797065293b0a202020202020202062752877752e70726f746f747970652c207b0a20202020202020202020676574436c6173733a2066756e6374696f6e202829207b0a20202020202020202020202072657475726e20276a73373830305f5f636f6e74726f6c732d737769746368273b0a202020202020202020207d2c0a20202020202020202020646f437265617465456c656d656e743a2066756e6374696f6e202829207b0a2020202020202020202020207661722074203d20646f63756d656e742e637265617465456c656d656e7428276c6162656c27293b0a202020202020202020202020742e73657441747472696275746528277469746c65272c20746869732e7469746c65293b0a2020202020202020202020207661722065203d20646f63756d656e742e637265617465456c656d656e742827696e70757427293b0a202020202020202020202020746869732e6362203d20653b4d08020a202020202020202020202020652e736574417474726962757465282774797065272c2027636865636b626f7827293b0a202020202020202020202020766172206e203d20746869733b0a202020202020202020202020652e6f6e636c69636b203d2066756e6374696f6e20287429207b0a20202020202020202020202020206e2e6f6e436c69636b2874293b0a2020202020202020202020207d3b0a202020202020202020202020742e617070656e644368696c642865293b0a2020202020202020202020207661722072203d20646f63756d656e742e637265617465456c656d656e7428277370616e27293b0a202020202020202020202020722e636c6173734e616d65203d20746869732e676574436c6173732829202b20272d736c69646572273b0a202020202020202020202020742e617070656e644368696c642872293b0a20202020202020202020202072657475726e20743b0a202020202020202020207d2c0a2020202020202020202073657456616c7565287429207b0a202020202020202020202020746869732e63622e636865636b6564203d20743b0a202020202020202020207d2c0a2020202020202020202067657456616c75652829207b0a20202020202020202020202072657475726e20746869732e63622e636865636b65643b0a202020202020202020207d2c0a202020202020202020206f6e436c69636b3a204d080266756e6374696f6e20287429207b7d2c0a20202020202020207d293b0a2020202020202020766172206d75203d0a2020202020202020202027646174613a696d6167652f7376672b786d6c3b6261736536342c5044393462577767646d567963326c76626a30694d5334774969426c626d4e765a476c755a7a3069565652474c546769507a344e436a77685245394456466c515253427a646d63675546564354456c44494349744c7939584d304d764c30525552434254566b63674d5334784c79394654694967496d6830644841364c79393364336375647a4d7562334a6e4c3064795958426f61574e7a4c314e57527938784c6a4576524652454c334e325a7a45784c6d52305a43492b44516f3863335a6e494868746247357a50534a6f644852774f693876643364334c6e637a4c6d39795a7938794d4441774c334e325a79496765473173626e4d3665477870626d7339496d6830644841364c79393364336375647a4d7562334a6e4c7a45354f546b7665477870626d736949485a6c636e4e7062323439496a45754d534967494864705a48526f505349794e434967614756705a326830505349794e434967646d6c6c64304a76654430694d4341774944493049444930496a344e43694167494478775958526f49475a706247773949694e47526b5a47526b596949475139496b30784e5334354c4445344c6a5131517a45334c6a49314c4d08024445344c6a5131494445344c6a4d314c4445334c6a4d31494445344c6a4d314c444532517a45344c6a4d314c4445304c6a5931494445334c6a49314c44457a4c6a5531494445314c6a6b734d544d754e5456444d5451754e5451734d544d754e5455674d544d754e4455734d5451754e6a55674d544d754e4455734d545a444d544d754e4455734d5463754d7a55674d5451754e5451734d5467754e4455674d5455754f5377784f4334304e5530794d5334784c4445324c6a5934544449794c6a55344c4445334c6a6730517a49794c6a63784c4445334c6a6b31494449794c6a63314c4445344c6a457a494449794c6a59324c4445344c6a4935544449784c6a49324c4449774c6a6378517a49784c6a45334c4449774c6a6732494449784c4449774c6a6b79494449774c6a677a4c4449774c6a6732544445354c6a41354c4449774c6a4532517a45344c6a637a4c4449774c6a5130494445344c6a4d7a4c4449774c6a5933494445334c6a6b784c4449774c6a6731544445334c6a59304c4449794c6a64444d5463754e6a49734d6a49754f4463674d5463754e4463734d6a4d674d5463754d7977794d3067784e433431517a45304c6a4d794c44497a494445304c6a45344c4449794c6a6733494445304c6a45314c4449794c6a644d4d544d754f446b734d6a41754f4456444d544d754e4459734d6a41754e6a63674d544d754d4463734d4d08026a41754e4451674d5449754e7a45734d6a41754d545a4d4d5441754f5459734d6a41754f445a444d5441754f4445734d6a41754f5449674d5441754e6a49734d6a41754f4459674d5441754e5451734d6a41754e7a464d4f5334784e4377784f4334794f554d354c6a41314c4445344c6a457a49446b754d446b734d5463754f5455674f5334794d6977784e7934344e4577784d4334334c4445324c6a5934544445774c6a59314c444532544445774c6a63734d5455754d7a464d4f5334794d6977784e4334784e6b4d354c6a41354c4445304c6a413149446b754d4455734d544d754f4459674f5334784e4377784d7934334d5577784d4334314e4377784d5334794f554d784d4334324d6977784d5334784d7941784d4334344d5377784d5334774e7941784d4334354e6977784d5334784d3077784d6934334d5377784d5334344e454d784d7934774e7977784d5334314e6941784d7934304e6977784d53347a4d6941784d7934344f5377784d5334784e5577784e4334784e5377354c6a4935517a45304c6a45344c446b754d544d674d5451754d7a49734f5341784e4334314c446c494d5463754d304d784e7934304e797735494445334c6a59794c446b754d544d674d5463754e6a51734f5334794f5577784e7934354d5377784d5334784e554d784f43347a4d7977784d53347a4d6941784f4334334d7977784d5334314e6941784f4d08025334774f5377784d5334344e4577794d4334344d7977784d5334784d304d794d5377784d5334774e7941794d5334784e7977784d5334784d7941794d5334794e6977784d5334794f5577794d6934324e6977784d7934334d554d794d6934334e5377784d7934344e6941794d6934334d5377784e4334774e5341794d6934314f4377784e4334784e6b77794d5334784c4445314c6a4d78544449784c6a45314c444532544449784c6a45734d5459754e6a684e4e6934324f5377344c6a4133517a63754e5459734f4334774e7941344c6a49324c4463754d7a63674f4334794e6977324c6a56444f4334794e6977314c6a597a494463754e5459734e4334354d6941324c6a59354c4451754f544a424d5334314f4377784c6a5534494441674d437777494455754d5445734e693431517a55754d5445734e79347a4e7941314c6a67794c4467754d4463674e6934324f5377344c6a4133545445774c6a417a4c4459754f54524d4d5445734e7934324f454d784d5334774e7977334c6a6331494445784c6a41354c4463754f4463674d5445754d444d734e7934354e3077784d4334784d7977354c6a557a517a45774c6a41344c446b754e6a4d674f5334354e6977354c6a593349446b754f4459734f5334324d3077344c6a63304c446b754d54684d4f4377354c6a5979544463754f4445734d5441754f4446444e7934334f5377784d4334354d4d08026941334c6a63734d5445674e7934314f5377784d5567314c6a6335517a55754e6a63734d5445674e5334314f4377784d4334354d6941314c6a55324c4445774c6a6778544455754e4377354c6a5979544451754e6a51734f5334784f45777a4c6a55734f5334324d304d7a4c6a51784c446b754e6a63674d79347a4c446b754e6a4d674d7934794e4377354c6a557a544449754d7a51734e7934354e304d794c6a49344c4463754f4463674d69347a4d5377334c6a6331494449754d7a6b734e7934324f45777a4c6a4d304c4459754f54524d4d79347a4d5377324c6a564d4d79347a4e4377324c6a4132544449754d7a6b734e53347a4d6b4d794c6a4d784c4455754d6a55674d6934794f4377314c6a457a494449754d7a51734e5334774d30777a4c6a49304c444d754e4464444d79347a4c444d754d7a63674d7934304d53777a4c6a4d7a49444d754e53777a4c6a4d33544451754e6a4d734d7934344d6b77314c6a51734d79347a4f4577314c6a55324c4449754d546c444e5334314f4377794c6a4134494455754e6a63734d6941314c6a63354c444a494e7934314f554d334c6a63734d6941334c6a63354c4449754d4467674e7934344d5377794c6a4535544467734d79347a4f4577344c6a63304c444d754f444a4d4f5334344e69777a4c6a4d33517a6b754f5459734d79347a4d7941784d4334774f43777a4c6a4d33494445774c4d08026a457a4c444d754e44644d4d5445754d444d734e5334774d304d784d5334774f5377314c6a457a494445784c6a41334c4455754d6a55674d5445734e53347a4d6b77784d4334774d7977324c6a4132544445774c6a41324c4459754e5577784d4334774d7977324c6a6b30576949674c7a344e436a777663335a6e50673d3d273b0a2020202020202020766172204d75203d0a2020202020202020202027646174613a696d6167652f7376672b786d6c3b6261736536342c5044393462577767646d567963326c76626a30694d5334774969426c626d4e765a476c755a7a3069565652474c546769507a344e436a77685245394456466c515253427a646d63675546564354456c44494349744c7939584d304d764c30525552434254566b63674d5334784c79394654694967496d6830644841364c79393364336375647a4d7562334a6e4c3064795958426f61574e7a4c314e57527938784c6a4576524652454c334e325a7a45784c6d52305a43492b44516f3863335a6e494868746247357a50534a6f644852774f693876643364334c6e637a4c6d39795a7938794d4441774c334e325a79496765473173626e4d3665477870626d7339496d6830644841364c79393364336375647a4d7562334a6e4c7a45354f546b7665477870626d736949485a6c636e4e7062323439496a45754d534967494864705a48526f505349794e434967614756704d08025a326830505349794e434967646d6c6c64304a76654430694d4341774944493049444930496a344e43694167494478775958526f49475a706247773949694e6d5a6d5a6d5a6d596949475139496b30784d5377355344457a566a64494d54464e4d5449734d6a42444e7934314f5377794d4341304c4445324c6a5178494451734d544a444e4377334c6a5535494463754e546b734e4341784d697730517a45324c6a51784c4451674d6a41734e7934314f5341794d4377784d6b4d794d4377784e6934304d5341784e6934304d5377794d4341784d6977794d4530784d697779515445774c444577494441674d437777494449734d544a424d5441734d5441674d4341774c4441674d5449734d6a4a424d5441734d5441674d4341774c4441674d6a49734d544a424d5441734d5441674d4341774c4441674d5449734d6b30784d5377784e3067784d3159784d5567784d5659784e316f694943382b44516f384c334e325a7a343d273b0a2020202020202020766172207675203d0a2020202020202020202027646174613a696d6167652f7376672b786d6c3b6261736536342c5044393462577767646d567963326c76626a30694d5334774969426c626d4e765a476c755a7a3069565652474c546769507a344e436a77685245394456466c515253427a646d63675546564354456c44494349744c7939584d304d764c30525552434254566b634d0802674d5334784c79394654694967496d6830644841364c79393364336375647a4d7562334a6e4c3064795958426f61574e7a4c314e57527938784c6a4576524652454c334e325a7a45784c6d52305a43492b44516f3863335a6e494868746247357a50534a6f644852774f693876643364334c6e637a4c6d39795a7938794d4441774c334e325a79496765473173626e4d3665477870626d7339496d6830644841364c79393364336375647a4d7562334a6e4c7a45354f546b7665477870626d736949485a6c636e4e7062323439496a45754d534967494864705a48526f505349794e434967614756705a326830505349794e434967646d6c6c64304a76654430694d4341774944493049444930496a344e43694167494478775958526f49475a706247773949694e6d5a6d5a6d5a6d596949475139496b30794d437779534452574e4577354c6a67784c4467754d7a5a444e6934784e4377354c6a5533494451754d5451734d544d754e544d674e53347a4e5377784e793479517a59754e5459734d6a41754f4463674d5441754e5377794d6934344e7941784e4334784f5377794d5334324e6b4d784e7934344e6977794d4334304e5341784f5334344e6977784e693431494445344c6a59314c4445794c6a6779517a45334c6a6b314c4445774c6a6378494445324c6a4d734f5334774e5341784e4334784f5377344c6a4d32544449774c44524d0802574d6b30784e4334354e4377784f533431544445794c4445334c6a633454446b754d4459734d546b754e5577354c6a67304c4445324c6a4533544463754d6a55734d544d754f544e4d4d5441754e6a59734d544d754e6a524d4d5449734d5441754e5577784d79347a4e4377784d7934324e4577784e6934334e5377784d7934354d3077784e4334784e6977784e6934784e3077784e4334354e4377784f533431576949674c7a344e436a777663335a6e50673d3d273b0a2020202020202020766172204c75203d2058663b0a2020202020202020766172204975203d2067753b0a2020202020202020766172204375203d2079753b0a2020202020202020766172204575203d2077753b0a202020202020202053752e70726f746f74797065203d204f626a6563742e6372656174652849752e70726f746f74797065293b0a20202020202020204c752853752e70726f746f747970652c207b0a20202020202020202020676574436c6173733a2066756e6374696f6e202829207b0a20202020202020202020202072657475726e20276a73373830305f5f636f6e74726f6c732d67726f7570273b0a202020202020202020207d2c0a20202020202020202020646f437265617465456c656d656e743a2066756e6374696f6e202829207b0a2020202020202020202020207661722074203d20646f63756d656e742e637265617465456c656d654d08026e74282764697627293b0a202020202020202020202020666f7220287661722065203d20303b2065203c20746869732e6368696c6472656e2e6c656e6774683b20652b2b29207b0a2020202020202020202020202020742e617070656e644368696c6428746869732e6368696c6472656e5b655d2e637265617465456c656d656e742829293b0a2020202020202020202020207d0a20202020202020202020202072657475726e20743b0a202020202020202020207d2c0a202020202020202020206164644368696c643a2066756e6374696f6e20287429207b0a202020202020202020202020746869732e6368696c6472656e2e707573682874293b0a202020202020202020207d2c0a202020202020202020206164644368696c644174496e6465783a2066756e6374696f6e2028742c206529207b0a202020202020202020202020746869732e6368696c6472656e2e73706c69636528742c20302c2065293b0a202020202020202020207d2c0a20202020202020207d293b0a202020202020202078752e70726f746f74797065203d204f626a6563742e6372656174652853752e70726f746f74797065293b0a20202020202020204c752878752e70726f746f747970652c207b0a20202020202020202020676574436c6173733a2066756e6374696f6e202829207b0a20202020202020202020202072657475726e20276a73373830305f4d08025f636f6e74726f6c732d67726f75702d7374617274273b0a202020202020202020207d2c0a20202020202020207d293b0a202020202020202044752e70726f746f74797065203d204f626a6563742e6372656174652853752e70726f746f74797065293b0a20202020202020204c752844752e70726f746f747970652c207b0a20202020202020202020676574436c6173733a2066756e6374696f6e202829207b0a20202020202020202020202072657475726e20276a73373830305f5f636f6e74726f6c732d67726f75702d656e64273b0a202020202020202020207d2c0a20202020202020207d293b0a20202020202020204e752e70726f746f74797065203d204f626a6563742e6372656174652849752e70726f746f74797065293b0a20202020202020204c75284e752e70726f746f747970652c207b0a20202020202020202020676574436c6173733a2066756e6374696f6e202829207b0a20202020202020202020202072657475726e20276a73373830305f5f636f6e74726f6c732d696d672d627574746f6e273b0a202020202020202020207d2c0a20202020202020202020646f437265617465456c656d656e743a2066756e6374696f6e202829207b0a2020202020202020202020207661722074203d20746869733b0a2020202020202020202020207661722065203d20646f63756d656e742e637265617465456c656d656e4d08027428276127293b0a202020202020202020202020746869732e616e63686f72203d20653b0a202020202020202020202020652e7365744174747269627574652827647261676761626c65272c202766616c736527293b0a202020202020202020202020652e7365744174747269627574652827726f6c65272c2027627574746f6e27293b0a202020202020202020202020652e7365744174747269627574652827746162696e646578272c20273027293b0a202020202020202020202020652e6f6e6b6579646f776e203d2066756e6374696f6e20286529207b0a2020202020202020202020202020766172206e203d20652e77686963683b0a2020202020202020202020202020696620286e203d3d3d203133207c7c206e203d3d3d20333229207b0a20202020202020202020202020202020742e6f6e436c69636b2865293b0a20202020202020202020202020207d0a2020202020202020202020207d3b0a202020202020202020202020652e6f6e6d6f757365646f776e203d2066756e6374696f6e20287429207b0a2020202020202020202020202020742e70726576656e7444656661756c7428293b0a2020202020202020202020207d3b0a202020202020202020202020652e6f6e636c69636b203d2066756e6374696f6e20286529207b0a2020202020202020202020202020742e6f6e436c69636b2865293b0a20202020202020204d0802202020207d3b0a202020202020202020202020766172206e203d20646f63756d656e742e637265617465456c656d656e742827696d6727293b0a202020202020202020202020746869732e696d67203d206e3b0a2020202020202020202020206e2e7365744174747269627574652827647261676761626c65272c202766616c736527293b0a2020202020202020202020206e2e7365744174747269627574652827737263272c20746869732e696d616765537263293b0a2020202020202020202020206e2e73657441747472696275746528277469746c65272c20746869732e7469746c65293b0a202020202020202020202020652e617070656e644368696c64286e293b0a20202020202020202020202072657475726e20653b0a202020202020202020207d2c0a202020202020202020206f6e436c69636b287429207b7d2c0a20202020202020207d293b0a20202020202020205f752e70726f746f74797065203d204f626a6563742e637265617465284e752e70726f746f74797065293b0a20202020202020204c75285f752e70726f746f747970652c207b0a20202020202020202020646f437265617465456c656d656e743a2066756e6374696f6e202829207b0a2020202020202020202020207661722074203d204e752e70726f746f747970652e646f437265617465456c656d656e742e63616c6c2874686973293b0a202020204d080220202020202020207661722065203d20746869733b0a202020202020202020202020746869732e616e63686f722e6f6e636c69636b203d2066756e6374696f6e20287429207b0a2020202020202020202020202020652e73657456616c75652821652e76616c7565293b0a2020202020202020202020202020652e6f6e436c69636b2874293b0a2020202020202020202020207d3b0a20202020202020202020202072657475726e20743b0a202020202020202020207d2c0a2020202020202020202073657456616c75653a2066756e6374696f6e20287429207b0a202020202020202020202020746869732e76616c7565203d20743b0a202020202020202020202020746869732e696d672e737263203d20746869732e76616c7565203f20746869732e6f6e496d616765537263203a20746869732e696d6167655372633b0a202020202020202020202020746869732e696d672e7469746c65203d20746869732e76616c7565203f20746869732e6f6e5469746c65203a20746869732e7469746c653b0a202020202020202020207d2c0a2020202020202020202067657456616c75653a2066756e6374696f6e202829207b0a20202020202020202020202072657475726e20746869732e76616c75653b0a202020202020202020207d2c0a20202020202020207d293b0a2020202020202020766172205475203d206e657720787528293b0a4d08022020202020202020766172206b75203d206e6577205f75280a20202020202020202020275061757365272c0a2020202020202020202027646174613a696d6167652f7376672b786d6c3b6261736536342c5044393462577767646d567963326c76626a30694d5334774969426c626d4e765a476c755a7a3069565652474c546769507a344e436a77685245394456466c515253427a646d63675546564354456c44494349744c7939584d304d764c30525552434254566b63674d5334784c79394654694967496d6830644841364c79393364336375647a4d7562334a6e4c3064795958426f61574e7a4c314e57527938784c6a4576524652454c334e325a7a45784c6d52305a43492b44516f3863335a6e494868746247357a50534a6f644852774f693876643364334c6e637a4c6d39795a7938794d4441774c334e325a79496765473173626e4d3665477870626d7339496d6830644841364c79393364336375647a4d7562334a6e4c7a45354f546b7665477870626d736949485a6c636e4e7062323439496a45754d534967494864705a48526f505349794e434967614756705a326830505349794e434967646d6c6c64304a76654430694d4341774944493049444930496a344e43694167494478775958526f49475a706247773949694e47526b5a47526b596949475139496b30784e4377784f5567784f46593153444530545459734d546c4d0802494d5442574e556732566a4535576949674c7a344e436a777663335a6e50673d3d272c0a2020202020202020202027526573756d65272c0a2020202020202020202027646174613a696d6167652f7376672b786d6c3b6261736536342c5044393462577767646d567963326c76626a30694d5334774969426c626d4e765a476c755a7a3069565652474c546769507a344e436a77685245394456466c515253427a646d63675546564354456c44494349744c7939584d304d764c30525552434254566b63674d5334784c79394654694967496d6830644841364c79393364336375647a4d7562334a6e4c3064795958426f61574e7a4c314e57527938784c6a4576524652454c334e325a7a45784c6d52305a43492b44516f3863335a6e494868746247357a50534a6f644852774f693876643364334c6e637a4c6d39795a7938794d4441774c334e325a79496765473173626e4d3665477870626d7339496d6830644841364c79393364336375647a4d7562334a6e4c7a45354f546b7665477870626d736949485a6c636e4e7062323439496a45754d534967494864705a48526f505349794e434967614756705a326830505349794e434967646d6c6c64304a76654430694d4341774944493049444930496a344e43694167494478775958526f49475a706247773949694e6d5a6d5a6d5a6d596949475139496b30344c4455754d5452574d546b4d0802754d54524d4d546b734d5449754d54524d4f4377314c6a4530576949674c7a344e436a777663335a6e50673d3d270a2020202020202020293b0a20202020202020206b752e6f6e436c69636b203d2066756e6374696f6e202829207b0a202020202020202020207a6f28746869732e67657456616c75652829293b0a20202020202020207d3b0a202020202020202054752e6164644368696c64286b75293b0a2020202020202020766172204275203d206e6577205f75280a2020202020202020202027536f756e64204f6666272c0a2020202020202020202027646174613a696d6167652f7376672b786d6c3b6261736536342c5044393462577767646d567963326c76626a30694d5334774969426c626d4e765a476c755a7a3069565652474c546769507a344e436a77685245394456466c515253427a646d63675546564354456c44494349744c7939584d304d764c30525552434254566b63674d5334784c79394654694967496d6830644841364c79393364336375647a4d7562334a6e4c3064795958426f61574e7a4c314e57527938784c6a4576524652454c334e325a7a45784c6d52305a43492b44516f3863335a6e494868746247357a50534a6f644852774f693876643364334c6e637a4c6d39795a7938794d4441774c334e325a79496765473173626e4d3665477870626d7339496d6830644841364c79393364336375647a4d4d08027562334a6e4c7a45354f546b7665477870626d736949485a6c636e4e7062323439496a45754d534967494864705a48526f505349794e434967614756705a326830505349794e434967646d6c6c64304a76654430694d4341774944493049444930496a344e43694167494478775958526f49475a706247773949694e47526b5a47526b596949475139496b30784e43777a4c6a497a566a55754d6a6c444d5459754f446b734e6934784e5341784f5377344c6a677a494445354c444579517a45354c4445314c6a4533494445324c6a67354c4445334c6a6730494445304c4445344c6a64574d6a41754e7a64444d5467734d546b754f4459674d6a45734d5459754d6a67674d6a45734d544a444d6a45734e7934334d6941784f4377304c6a4530494445304c444d754d6a4e4e4d5459754e5377784d6b4d784e6934314c4445774c6a497a494445314c6a55734f4334334d5341784e4377334c6a6b33566a4532517a45314c6a55734d5455754d6a6b674d5459754e5377784d7934334e6941784e6934314c44457954544d734f5659784e556733544445794c444977566a524d4e79773553444e61496941765067304b5043397a646d632b272c0a2020202020202020202027536f756e64204f6e272c0a2020202020202020202027646174613a696d6167652f7376672b786d6c3b6261736536342c5044393462577767646d567963326c76624d08026a30694d5334774969426c626d4e765a476c755a7a3069565652474c546769507a344e436a77685245394456466c515253427a646d63675546564354456c44494349744c7939584d304d764c30525552434254566b63674d5334784c79394654694967496d6830644841364c79393364336375647a4d7562334a6e4c3064795958426f61574e7a4c314e57527938784c6a4576524652454c334e325a7a45784c6d52305a43492b44516f3863335a6e494868746247357a50534a6f644852774f693876643364334c6e637a4c6d39795a7938794d4441774c334e325a79496765473173626e4d3665477870626d7339496d6830644841364c79393364336375647a4d7562334a6e4c7a45354f546b7665477870626d736949485a6c636e4e7062323439496a45754d534967494864705a48526f505349794e434967614756705a326830505349794e434967646d6c6c64304a76654430694d4341774944493049444930496a344e43694167494478775958526f49475a706247773949694e6d5a6d5a6d5a6d596949475139496b30784d69773054446b754f5445734e6934774f5577784d6977344c6a4534545451754d6a63734d30777a4c4451754d6a644d4e7934334d79773553444e574d5456494e3077784d6977794d4659784d7934794e3077784e6934794e5377784e7934314d304d784e5334314f4377784f4334774e4341784e4334344d4d08027977784f4334304e6941784e4377784f433433566a49774c6a6333517a45314c6a4d344c4449774c6a5131494445324c6a597a4c4445354c6a6779494445334c6a59344c4445344c6a6b32544445354c6a637a4c444978544449784c4445354c6a637a544445794c4445774c6a637a545445354c444579517a45354c4445794c6a6b30494445344c6a67734d544d754f4449674d5467754e4459734d5451754e6a524d4d546b754f5463734d5459754d5456444d6a41754e6a49734d5451754f5445674d6a45734d544d754e5341794d5377784d6b4d794d5377334c6a6379494445344c4451754d5451674d5451734d7934794d3159314c6a4935517a45324c6a67354c4459754d5455674d546b734f4334344d7941784f5377784d6b30784e6934314c444579517a45324c6a55734d5441754d6a4d674d5455754e5377344c6a6378494445304c4463754f5464574d5441754d54684d4d5459754e4455734d5449754e6a4e444d5459754e5377784d6934304d7941784e6934314c4445794c6a4978494445324c6a55734d544a61496941765067304b5043397a646d632b270a2020202020202020293b0a202020202020202042752e6f6e436c69636b203d2066756e6374696f6e202829207b0a202020202020202020207661722074203d20746869732e67657456616c756528293b0a202020202020202020207761203d20743b0a202020204d0802202020207d3b0a202020202020202054752e6164644368696c64284275293b0a2020202020202020766172206a75203d206e6577204e75280a202020202020202020202752657374617274272c0a2020202020202020202027646174613a696d6167652f7376672b786d6c3b6261736536342c5044393462577767646d567963326c76626a30694d5334774969426c626d4e765a476c755a7a3069565652474c546769507a344e436a77685245394456466c515253427a646d63675546564354456c44494349744c7939584d304d764c30525552434254566b63674d5334784c79394654694967496d6830644841364c79393364336375647a4d7562334a6e4c3064795958426f61574e7a4c314e57527938784c6a4576524652454c334e325a7a45784c6d52305a43492b44516f3863335a6e494868746247357a50534a6f644852774f693876643364334c6e637a4c6d39795a7938794d4441774c334e325a79496765473173626e4d3665477870626d7339496d6830644841364c79393364336375647a4d7562334a6e4c7a45354f546b7665477870626d736949485a6c636e4e7062323439496a45754d534967494864705a48526f505349794e434967614756705a326830505349794e434967646d6c6c64304a76654430694d4341774944493049444930496a344e43694167494478775958526f49475a706247773949694e47526b5a47524d08026b596949475139496b30784d697730517a45304c6a45734e4341784e6934784c4451754f4341784e7934324c4459754d304d794d4334334c446b754e4341794d4334334c4445304c6a55674d5463754e6977784e793432517a45314c6a67734d546b754e5341784d79347a4c4449774c6a49674d5441754f5377784f533435544445784c6a51734d5463754f554d784d7934784c4445344c6a45674d5451754f5377784e793431494445324c6a49734d5459754d6b4d784f4334314c44457a4c6a6b674d5467754e5377784d433478494445324c6a49734e793433517a45314c6a45734e6934324944457a4c6a55734e6941784d697732566a45774c6a5a4d4e7977314c6a5a4d4d5449734d433432566a524e4e69347a4c4445334c6a5a444d7934334c44453149444d754d7977784d5341314c6a45734e793435544459754e6977354c6a52444e5334314c4445784c6a59674e5334354c4445304c6a51674e7934344c4445324c6a4a444f43347a4c4445324c6a63674f4334354c4445334c6a45674f5334324c4445334c6a524d4f5377784f533430517a67734d546b674e7934784c4445344c6a51674e69347a4c4445334c6a5a61496941765067304b5043397a646d632b270a2020202020202020293b0a20202020202020206a752e6f6e436c69636b203d2066756e6374696f6e202829207b0a20202020202020202020507428277265734d08027461727427293b0a20202020202020207d3b0a202020202020202054752e6164644368696c64286a75293b0a2020202020202020766172205275203d206e657720537528293b0a2020202020202020766172205075203d206e6577204375282753454c454354272c202753656c65637427293b0a202020202020202050752e6f6e446f776e203d2066756e6374696f6e202829207b0a2020202020202020202041752874727565293b0a20202020202020207d3b0a202020202020202050752e6f6e5570203d2066756e6374696f6e202829207b0a2020202020202020202041752866616c7365293b0a20202020202020207d3b0a202020202020202052752e6164644368696c64285075293b0a2020202020202020766172204f75203d206e657720437528275245534554272c2027526573657427293b0a20202020202020204f752e6f6e446f776e203d2066756e6374696f6e202829207b0a2020202020202020202068752874727565293b0a20202020202020207d3b0a20202020202020204f752e6f6e5570203d2066756e6374696f6e202829207b0a2020202020202020202068752866616c7365293b0a20202020202020207d3b0a202020202020202052752e6164644368696c64284f75293b0a2020202020202020766172204675203d206e657720457528274c65667420646966666963756c74792073776974636827293b0a20204d080220202020202046752e6f6e436c69636b203d2066756e6374696f6e202829207b0a2020202020202020202054662821746869732e67657456616c75652829293b0a20202020202020207d3b0a202020202020202052752e6164644368696c64284675293b0a2020202020202020766172204775203d206e65772045752827526967687420646966666963756c74792073776974636827293b0a202020202020202047752e6f6e436c69636b203d2066756e6374696f6e202829207b0a202020202020202020206b662821746869732e67657456616c75652829293b0a20202020202020207d3b0a202020202020202052752e6164644368696c64284775293b0a2020202020202020766172207a75203d206e657720447528293b0a2020202020202020766172205775203d206e6577204e7528274c6561646572626f617264272c207675293b0a202020202020202057752e6f6e436c69636b203d2066756e6374696f6e202829207b0a202020202020202020205074282773686f774572726f72272c20274e6f7420696d706c656d656e7465642e27293b0a20202020202020207d3b0a20202020202020207a752e6164644368696c64285775293b0a2020202020202020766172205575203d206e6577204e75282748656c70202f20496e666f272c204d75293b0a202020202020202055752e6f6e436c69636b203d2066756e6374696f6e20284d080229207b0a202020202020202020205074282773686f774572726f72272c20274e6f7420696d706c656d656e7465642e27293b0a20202020202020207d3b0a20202020202020207a752e6164644368696c64285575293b0a2020202020202020766172205a75203d206e6577204e75282753657474696e6773272c206d75293b0a20202020202020205a752e6f6e436c69636b203d2066756e6374696f6e202829207b0a202020202020202020205074282773686f774572726f72272c20274e6f7420696d706c656d656e7465642e27293b0a20202020202020207d3b0a20202020202020207a752e6164644368696c64285a75293b0a2020202020202020766172205175203d206e6577205f75280a202020202020202020202746756c6c73637265656e272c0a2020202020202020202027646174613a696d6167652f7376672b786d6c3b6261736536342c5044393462577767646d567963326c76626a30694d5334774969426c626d4e765a476c755a7a3069565652474c546769507a344e436a77685245394456466c515253427a646d63675546564354456c44494349744c7939584d304d764c30525552434254566b63674d5334784c79394654694967496d6830644841364c79393364336375647a4d7562334a6e4c3064795958426f61574e7a4c314e57527938784c6a4576524652454c334e325a7a45784c6d52305a43492b44516f384d080263335a6e494868746247357a50534a6f644852774f693876643364334c6e637a4c6d39795a7938794d4441774c334e325a79496765473173626e4d3665477870626d7339496d6830644841364c79393364336375647a4d7562334a6e4c7a45354f546b7665477870626d736949485a6c636e4e7062323439496a45754d534967494864705a48526f505349794e434967614756705a326830505349794e434967646d6c6c64304a76654430694d4341774944493049444930496a344e43694167494478775958526f49475a706247773949694e47526b5a47526b596949475139496b30314c4456494d5442574e306733566a4577534456574e5530784e43773153444535566a457753444533566a64494d5452574e5530784e7977784e4567784f5659784f5567784e4659784e3067784e3159784e4530784d4377784e3159784f556731566a4530534464574d5464494d544261496941765067304b5043397a646d632b272c0a2020202020202020202027457869742046756c6c73637265656e272c0a2020202020202020202027646174613a696d6167652f7376672b786d6c3b6261736536342c5044393462577767646d567963326c76626a30694d5334774969426c626d4e765a476c755a7a3069565652474c546769507a344e436a77685245394456466c515253427a646d63675546564354456c44494349744c7939584d304d764c30524d08025552434254566b63674d5334784c79394654694967496d6830644841364c79393364336375647a4d7562334a6e4c3064795958426f61574e7a4c314e57527938784c6a4576524652454c334e325a7a45784c6d52305a43492b44516f3863335a6e494868746247357a50534a6f644852774f693876643364334c6e637a4c6d39795a7938794d4441774c334e325a79496765473173626e4d3665477870626d7339496d6830644841364c79393364336375647a4d7562334a6e4c7a45354f546b7665477870626d736949485a6c636e4e7062323439496a45754d534967494864705a48526f505349794e434967614756705a326830505349794e434967646d6c6c64304a76654430694d4341774944493049444930496a344e43694167494478775958526f49475a706247773949694e47526b5a47526b596949475139496b30784e4377784e4567784f5659784e6b67784e6c59784f5567784e4659784e4530314c44453053444577566a4535534468574d545a494e5659784e4530344c4456494d5442574d5442494e565934534468574e5530784f537734566a457753444530566a56494d545a574f4567784f566f694943382b44516f384c334e325a7a343d270a2020202020202020293b0a202020202020202051752e6f6e436c69636b203d2066756e6374696f6e202829207b0a20202020202020202020696620285973282929207b0a204d08022020202020202020202020567328293b0a202020202020202020207d20656c7365207b0a202020202020202020202020487328293b0a202020202020202020207d0a20202020202020207d3b0a20202020202020207a752e6164644368696c64285175293b0a20202020202020205274280a202020202020202020206e6577206a742827696e6974272c2066756e6374696f6e202829207b0a2020202020202020202020207661722074203d20646f63756d656e742e676574456c656d656e744279496428276a73373830305f5f636f6e74726f6c7327293b0a2020202020202020202020207661722065203d20646f63756d656e742e637265617465456c656d656e74282764697627293b0a202020202020202020202020652e636c6173734e616d65203d20276a73373830305f5f636f6e74726f6c732d636f6e7461696e6572273b0a202020202020202020202020742e617070656e644368696c642865293b0a202020202020202020202020652e617070656e644368696c642854752e637265617465456c656d656e742829293b0a202020202020202020202020652e617070656e644368696c642852752e637265617465456c656d656e742829293b0a202020202020202020202020652e617070656e644368696c64287a752e637265617465456c656d656e742829293b0a2020202020202020202020205274280a20202020202020204d08022020202020206e6577206a74282766756c6c73637265656e272c2066756e6374696f6e20287429207b0a2020202020202020202020202020202051752e73657456616c75652874293b0a20202020202020202020202020207d290a202020202020202020202020293b0a202020202020202020207d290a2020202020202020293b0a20202020202020205274280a202020202020202020206e6577206a7428276f6e4361727472696467654c6f61646564272c2066756e6374696f6e202829207b0a2020202020202020202020206b752e73657456616c75652866616c7365293b0a202020202020202020207d290a2020202020202020293b0a20202020202020205274280a202020202020202020206e6577206a7428276f6e4c656674446966664368616e676564272c2066756e6374696f6e20287429207b0a20202020202020202020202046752e73657456616c7565282174293b0a202020202020202020207d290a2020202020202020293b0a20202020202020205274280a202020202020202020206e6577206a7428276f6e5269676874446966664368616e676564272c2066756e6374696f6e20287429207b0a20202020202020202020202047752e73657456616c7565282174293b0a202020202020202020207d290a2020202020202020293b0a20202020202020206e2830293b0a20202020202020206e2831293b0a20202020204d080220202056752e70726f746f74797065203d207b0a20202020202020202020676574526f6d3a2066756e6374696f6e202829207b0a20202020202020202020202072657475726e206e756c6c3b0a202020202020202020207d2c0a2020202020202020202077726974653a2066756e6374696f6e2028742c206529207b7d2c0a202020202020202020206c6f61645372616d3a2066756e6374696f6e20287429207b0a20202020202020202020202074286e756c6c293b0a202020202020202020207d2c0a20202020202020207d3b0a2020202020202020766172204a75203d2066756e6374696f6e20287429207b0a202020202020202020207661722065203d204c6f2829202626202839362026206d6f5b36305d2920213d2036343b0a20202020202020202020416f2874293b0a20202020202020202020506f203d20303b0a202020202020202020204f6f203d20303b0a20202020202020202020466f203d20303b0a20202020202020202020476f203d20303b0a2020202020202020202069662028546f207c7c206b6f29207b0a202020202020202020202020756f28293b0a202020202020202020207d0a20202020202020202020666f7220285f6f203d20313b205f6f203c3d20446f3b205f6f2b2b29207b0a202020202020202020202020696620285f6f203d3d20676f2e746f7029207b0a20202020202020202020202020206d6f4d08025b34305d203d20303b0a2020202020202020202020207d20656c736520696620285f6f203d3d20676f2e626f74746f6d29207b0a20202020202020202020202020206d6f5b34305d203d203132383b0a2020202020202020202020207d0a202020202020202020202020766172206e203d2066616c73653b0a2020202020202020202020207661722072203d20303b0a2020202020202020202020204e6f20253d20496f3b0a202020202020202020202020666f7220286520262620526f28293b204e6f203c2032383b2029207b0a202020202020202020202020202072203d204d6f2829203c3c20323b0a20202020202020202020202020204e6f202b3d20723b0a2020202020202020202020202020696620286529207b0a20202020202020202020202020202020526f28293b0a20202020202020202020202020207d0a2020202020202020202020202020696620284369282929207b0a202020202020202020202020202020204e6f202b3d20323b0a20202020202020202020202020202020696620286529207b0a202020202020202020202020202020202020526f28293b0a202020202020202020202020202020207d0a20202020202020202020202020207d0a202020202020202020202020202069662028706f282929207b0a20202020202020202020202020202020626f2872203e3e3e2032293b0a20202020202020202020204d08022020207d0a2020202020202020202020202020696620286d6f5b33365d29207b0a202020202020202020202020202020204f6f2b2b3b0a202020202020202020202020202020206d6f5b33365d203d20303b0a202020202020202020202020202020206e203d20747275653b0a20202020202020202020202020202020627265616b3b0a20202020202020202020202020207d0a2020202020202020202020207d0a20202020202020202020202054742874727565293b0a202020202020202020202020696620282872203d202828796f285f6f29202b203329203e3e3e203229203c3c203229203e2034323829207b0a20202020202020202020202020206e203d20747275653b0a2020202020202020202020207d0a20202020202020202020202054742866616c7365293b0a2020202020202020202020204e6f202b3d20723b0a202020202020202020202020466f202b3d20723b0a20202020202020202020202069662028706f282929207b0a2020202020202020202020202020626f2872203e3e3e2032293b0a2020202020202020202020207d0a202020202020202020202020666f7220280a2020202020202020202020202020776f28292026260a202020202020202020202020202028216e2026260a202020202020202020202020202020204e6f203c20496f2026260a20202020202020202020202020202020282872203d204d4d08026f2829203c3c2032292c0a20202020202020202020202020202020706f282920262620626f2872203e3e3e2032292c0a20202020202020202020202020202020284e6f202b3d2072292c0a202020202020202020202020202020206d6f5b33365d20262620284f6f2b2b2c20286d6f5b33365d203d2030292c20286e203d20747275652929292c0a2020202020202020202020202020766f2829293b0a2020202020202020202020202020216e202626204e6f203c20496f3b0a0a20202020202020202020202029207b0a202020202020202020202020202072203d204d6f2829203c3c20323b0a20202020202020202020202020204e6f202b3d20723b0a2020202020202020202020202020696620286529207b0a20202020202020202020202020202020526f28293b0a20202020202020202020202020207d0a2020202020202020202020202020696620284369282929207b0a202020202020202020202020202020204e6f202b3d20323b0a20202020202020202020202020202020696620286529207b0a202020202020202020202020202020202020526f28293b0a202020202020202020202020202020207d0a20202020202020202020202020207d0a202020202020202020202020202069662028706f282929207b0a20202020202020202020202020202020626f2872203e3e3e2032293b0a20202020202020202020202020207d4d08020a2020202020202020202020202020696620286d6f5b33365d29207b0a202020202020202020202020202020204f6f2b2b3b0a202020202020202020202020202020206d6f5b33365d203d20303b0a202020202020202020202020202020206e203d20747275653b0a20202020202020202020202020202020627265616b3b0a20202020202020202020202020207d0a2020202020202020202020207d0a202020202020202020202020696620286e202626204e6f203c20496f29207b0a202020202020202020202020202069662028706f282929207b0a20202020202020202020202020202020626f2828496f202d204e6f29203e3e3e2032293b0a20202020202020202020202020207d0a20202020202020202020202020204e6f203d20496f3b0a2020202020202020202020207d0a202020202020202020202020476f202b3d204e6f3b0a202020202020202020202020696620286529207b0a2020202020202020202020202020526f28293b0a2020202020202020202020207d0a202020202020202020202020666f2832293b0a20202020202020202020202069662028546f207c7c206b6f29207b0a20202020202020202020202020206c6f2832293b0a2020202020202020202020207d0a20202020202020202020202069662028546f207c7c206b6f29207b0a2020202020202020202020202020686f28293b0a202020202020204d080220202020207d0a202020202020202020207d0a20202020202020202020696620282b2b786f203e3d20536f29207b0a202020202020202020202020786f203d20303b0a202020202020202020207d0a20202020202020207d3b0a2020202020202020766172205875203d2066756e6374696f6e202829207b0a2020202020202020202076617220743b0a2020202020202020202076617220653b0a20202020202020202020766172206e3b0a202020202020202020207661722072203d207961207c7c20646128293b0a202020202020202020207661722063203d206c6128293b0a202020202020202020207661722069203d20686128293b0a202020202020202020207661722061203d202866756e6374696f6e202829207b0a2020202020202020202020207661722074203d2067613b0a2020202020202020202020207661722065203d20693b0a202020202020202020202020766172206e203d2070613b0a2020202020202020202020207661722072203d202874202f206e29207c20303b0a2020202020202020202020207661722063203d20742025206e207c20303b0a202020202020202020202020696620286320213d20302026262063203e3d206529207b0a2020202020202020202020202020722b2b3b0a2020202020202020202020207d0a20202020202020202020202072657475726e20723b0a202020202020202020207d4d08022928293b0a202020202020202020202866756e6374696f6e2028742c20652c206e2c207229207b0a2020202020202020202020207661722063203d2067613b0a2020202020202020202020207661722069203d20303b0a2020202020202020202020207661722061203d20303b0a202020202020202020202020666f722028766172206f203d20287061202a20626129203c3c20313b2061203c20723b2029207b0a20202020202020202020202020206966202863203e3d206f29207b0a202020202020202020202020202020206e5b612b2b5d203d20745b695d202b202865203f20655b695d203a2030293b0a2020202020202020202020202020202063202d3d206f3b0a20202020202020202020202020207d20656c7365207b0a20202020202020202020202020202020692b2b3b0a2020202020202020202020202020202063202b3d2067613b0a20202020202020202020202020207d0a2020202020202020202020207d0a202020202020202020207d292866612c2072203f206f61203a206e756c6c2c206d612c2061293b0a20202020202020202020756128293b0a20202020202020202020736128293b0a20202020202020202020696620286329207b0a20202020202020202020202074203d204d613b0a20202020202020202020202065203d20613b0a2020202020202020202020206e203d20303b0a202020202020202020204d0802202063742e6d697853746572656f28742c20652c206e293b0a20202020202020202020202063742e436f756e742865293b0a202020202020202020207d0a202020202020202020206966202821776129207b0a2020202020202020202020204161286d612c2063203f204d61203a206e756c6c2c2061293b0a202020202020202020207d0a2020202020202020202072657475726e20747275653b0a20202020202020207d3b0a2020202020202020766172207175203d2066756e6374696f6e202829207b0a202020202020202020207661722074203d206e756c6c3b0a20202020202020202020696620286375282929207b0a20202020202020202020202069662028647529207b0a20202020202020202020202020206475203d2066616c73653b0a202020202020202020202020202075755b335d203d20747275653b0a2020202020202020202020207d20656c7365207b0a202020202020202020202020202075755b335d203d2021697528293b0a2020202020202020202020207d0a202020202020202020207d20656c7365207b0a2020202020202020202020206e7528293b0a20202020202020202020202074203d2072752830293b0a2020202020202020202020206c7528302c2075752c2074293b0a2020202020202020202020206c7528312c2075752c2074293b0a202020202020202020207d0a2020202020202020202075754d08025b31325d203d207375207c7c2052662829207c7c20287420262620742e697352657365742829293b0a2020202020202020202075755b31335d203d206675207c7c206a662829207c7c20287420262620742e697353656c6563742829293b0a2020202020202020202075755b31345d203d2050662829207c7c20287420262620742e697350617573652829293b0a2020202020202020202075755b31355d203d204f6628293b0a2020202020202020202075755b31365d203d20466628293b0a20202020202020207d3b0a2020202020202020766172204b75203d2045733b0a2020202020202020766172202475203d206e756c6c3b0a2020202020202020766172207464203d206e756c6c3b0a2020202020202020766172206564203d206e756c6c3b0a2020202020202020766172206e64203d206e756c6c3b0a2020202020202020766172207264203d206e756c6c3b0a2020202020202020766172206364203d206e756c6c3b0a2020202020202020766172206964203d2066616c73653b0a2020202020202020766172206164203d206e756c6c3b0a20202020202020206e657720567528293b0a2020202020202020766172206f64203d2066616c73653b0a2020202020202020766172207364203d20747275653b0a2020202020202020766172206664203d20303b0a2020202020202020766172207564203d20303b0a2020202020204d08022020766172206464203d20303b0a2020202020202020766172206c64203d206e6577204172726179283139293b0a2020202020202020766172206864203d2066616c73653b0a2020202020202020766172204164203d2066616c73653b0a20202020202020207661722079643b0a20202020202020207661722077643b0a2020202020202020766172206d64203d206e756c6c3b0a202020202020202069662028646f63756d656e742e68696464656e203d3d3d20766f6964203029207b0a2020202020202020202069662028646f63756d656e742e6d7348696464656e203d3d3d20766f6964203029207b0a20202020202020202020202069662028646f63756d656e742e7765626b697448696464656e20213d3d20766f6964203029207b0a20202020202020202020202020207964203d20277765626b697448696464656e273b0a20202020202020202020202020207764203d20277765626b69747669736962696c6974796368616e6765273b0a2020202020202020202020207d0a202020202020202020207d20656c7365207b0a2020202020202020202020207964203d20276d7348696464656e273b0a2020202020202020202020207764203d20276d737669736962696c6974796368616e6765273b0a202020202020202020207d0a20202020202020207d20656c7365207b0a202020202020202020207964203d202768696464654d08026e273b0a202020202020202020207764203d20277669736962696c6974796368616e6765273b0a20202020202020207d0a2020202020202020646f63756d656e742e6164644576656e744c697374656e6572280a2020202020202020202077642c0a2020202020202020202066756e6374696f6e202829207b0a20202020202020202020202069662028646f63756d656e745b79645d29207b0a2020202020202020202020202020636f6e736f6c652e6c6f67282770616765206973206e6f206c6f6e6765722076697369626c652e27293b0a20202020202020202020202020207a6f2874727565293b0a20202020202020202020202020204164203d20747275653b0a2020202020202020202020207d20656c7365207b0a2020202020202020202020202020636f6e736f6c652e6c6f672827706167652076697369626c652e27293b0a202020202020202020202020202069662028215975282929207b0a202020202020202020202020202020207a6f2866616c7365293b0a20202020202020202020202020207d0a2020202020202020202020207d0a202020202020202020207d2c0a2020202020202020202066616c73650a2020202020202020293b0a2020202020202020766172204264203d207b0a20202020202020202020383a20274261636b272c0a20202020202020202020393a2027546162272c0a20202020202020202020314d0802333a2027456e746572272c0a2020202020202020202031363a20275368696674272c0a2020202020202020202031373a20274374726c272c0a2020202020202020202031383a2027416c74272c0a2020202020202020202031393a2027427265616b272c0a2020202020202020202032373a2027457363272c0a2020202020202020202033323a20275370616365272c0a2020202020202020202033333a2027505570272c0a2020202020202020202033343a202750446f776e272c0a2020202020202020202033353a2027456e64272c0a2020202020202020202033363a2027486f6d65272c0a2020202020202020202033373a20274c656674272c0a2020202020202020202033383a20275570272c0a2020202020202020202033393a20275269676874272c0a2020202020202020202034303a2027446f776e272c0a2020202020202020202034353a2027496e73657274272c0a2020202020202020202034363a202744656c657465272c0a2020202020202020202034383a202730272c0a2020202020202020202034393a202731272c0a2020202020202020202035303a202732272c0a2020202020202020202035313a202733272c0a2020202020202020202035323a202734272c0a2020202020202020202035333a202735272c0a2020202020202020202035343a202736272c0a2020202020202020202035353a202737272c0a204d080220202020202020202035363a202738272c0a2020202020202020202035373a202739272c0a2020202020202020202036353a202741272c0a2020202020202020202036363a202742272c0a2020202020202020202036373a202743272c0a2020202020202020202036383a202744272c0a2020202020202020202036393a202745272c0a2020202020202020202037303a202746272c0a2020202020202020202037313a202747272c0a2020202020202020202037323a202748272c0a2020202020202020202037333a202749272c0a2020202020202020202037343a20274a272c0a2020202020202020202037353a20274b272c0a2020202020202020202037363a20274c272c0a2020202020202020202037373a20274d272c0a2020202020202020202037383a20274e272c0a2020202020202020202037393a20274f272c0a2020202020202020202038303a202750272c0a2020202020202020202038313a202751272c0a2020202020202020202038323a202752272c0a2020202020202020202038333a202753272c0a2020202020202020202038343a202754272c0a2020202020202020202038353a202755272c0a2020202020202020202038363a202756272c0a2020202020202020202038373a202757272c0a2020202020202020202038383a202758272c0a2020202020202020202038393a202759272c0a20202020202020204d0802202039303a20275a272c0a2020202020202020202039363a20274e756d2030272c0a2020202020202020202039373a20274e756d2031272c0a2020202020202020202039383a20274e756d2032272c0a2020202020202020202039393a20274e756d2033272c0a202020202020202020203130303a20274e756d2034272c0a202020202020202020203130313a20274e756d2035272c0a202020202020202020203130323a20274e756d2036272c0a202020202020202020203130333a20274e756d2037272c0a202020202020202020203130343a20274e756d2038272c0a202020202020202020203130353a20274e756d2039272c0a202020202020202020203130363a20274e756d202a272c0a202020202020202020203130373a20274e756d202b272c0a202020202020202020203130393a20274e756d202d272c0a202020202020202020203131303a20274e756d202e272c0a202020202020202020203131313a20274e756d202f272c0a202020202020202020203131323a20274631272c0a202020202020202020203131333a20274632272c0a202020202020202020203131343a20274633272c0a202020202020202020203131353a20274634272c0a202020202020202020203131363a20274635272c0a202020202020202020203131373a20274636272c0a202020202020202020203131383a20274637272c0a2020202020204d0802202020203131393a20274638272c0a202020202020202020203132303a20274639272c0a202020202020202020203132313a2027463130272c0a202020202020202020203132323a2027463131272c0a202020202020202020203132333a2027463132272c0a202020202020202020203134343a20274e4c6f636b272c0a202020202020202020203134353a2027534c6f636b272c0a202020202020202020203138363a20273b272c0a202020202020202020203138373a20273d272c0a202020202020202020203138383a20272c272c0a202020202020202020203138393a20272d272c0a202020202020202020203139303a20272e272c0a202020202020202020203139313a20272f272c0a202020202020202020203139323a202760272c0a202020202020202020203231393a20275b272c0a202020202020202020203232303a20275c5c272c0a202020202020202020203232313a20275d272c0a202020202020202020203232323a202227222c0a20202020202020207d3b0a20202020202020206e2e6428652c20274d61696e272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e206c3b0a20202020202020207d293b0a20202020202020206e2e6428652c2027436172747269646765272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e20693b0a202020202020204d0802207d293b0a20202020202020206e2e6428652c2027436f6e74726f6c73426172272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e20643b0a20202020202020207d293b0a20202020202020206e2e6428652c20275574696c272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e20663b0a20202020202020207d293b0a20202020202020206e2e6428652c20274576656e7473272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e20723b0a20202020202020207d293b0a20202020202020206e2e6428652c20274b6579626f617264272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e20733b0a20202020202020207d293b0a20202020202020206e2e6428652c20274b657973272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e20683b0a20202020202020207d293b0a20202020202020206e2e6428652c202750616473272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e20753b0a20202020202020207d293b0a20202020202020206e2e6428652c20274d656d6f7279272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e20633b0a20202020202020207d293b0a20202020202020206e2e6428652c2027564d08026964656f272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e206f3b0a20202020202020207d293b0a20202020202020206e2e6428652c2027526567696f6e272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e20613b0a20202020202020207d293b0a20202020202020206e2e6428652c202750726f53797374656d272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e20613b0a20202020202020207d293b0a20202020202020206e2e6428652c20276d6435272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e20616e3b0a20202020202020207d293b0a2020202020207d2c0a202020205d3b0a202020207661722065203d207b7d3b0a202020206e2e6d203d20743b0a202020206e2e63203d20653b0a202020206e2e64203d2066756e6374696f6e2028742c20652c207229207b0a20202020202069662028216e2e6f28742c20652929207b0a20202020202020204f626a6563742e646566696e6550726f706572747928742c20652c207b20656e756d657261626c653a20747275652c206765743a2072207d293b0a2020202020207d0a202020207d3b0a202020206e2e72203d2066756e6374696f6e20287429207b0a20202020202069662028747970656f662053796d626f6c20213d2027756e6465664d0802696e6564272026262053796d626f6c2e746f537472696e6754616729207b0a20202020202020204f626a6563742e646566696e6550726f706572747928742c2053796d626f6c2e746f537472696e675461672c207b2076616c75653a20274d6f64756c6527207d293b0a2020202020207d0a2020202020204f626a6563742e646566696e6550726f706572747928742c20275f5f65734d6f64756c65272c207b2076616c75653a2074727565207d293b0a202020207d3b0a202020206e2e74203d2066756e6374696f6e2028742c206529207b0a20202020202069662028312026206529207b0a202020202020202074203d206e2874293b0a2020202020207d0a20202020202069662028382026206529207b0a202020202020202072657475726e20743b0a2020202020207d0a20202020202069662028342026206520262620747970656f662074203d3d20276f626a65637427202626207420262620742e5f5f65734d6f64756c6529207b0a202020202020202072657475726e20743b0a2020202020207d0a2020202020207661722072203d204f626a6563742e637265617465286e756c6c293b0a2020202020206e2e722872293b0a2020202020204f626a6563742e646566696e6550726f706572747928722c202764656661756c74272c207b20656e756d657261626c653a20747275652c2076616c75653a2074207d293b0a202020204d0802202069662028322026206520262620747970656f66207420213d2027737472696e672729207b0a2020202020202020666f722028766172206320696e207429207b0a202020202020202020206e2e64280a202020202020202020202020722c0a202020202020202020202020632c0a20202020202020202020202066756e6374696f6e20286529207b0a202020202020202020202020202072657475726e20745b655d3b0a2020202020202020202020207d2e62696e64286e756c6c2c2063290a20202020202020202020293b0a20202020202020207d0a2020202020207d0a20202020202072657475726e20723b0a202020207d3b0a202020206e2e6e203d2066756e6374696f6e20287429207b0a2020202020207661722065203d0a20202020202020207420262620742e5f5f65734d6f64756c650a202020202020202020203f2066756e6374696f6e202829207b0a202020202020202020202020202072657475726e20742e64656661756c743b0a2020202020202020202020207d0a202020202020202020203a2066756e6374696f6e202829207b0a202020202020202020202020202072657475726e20743b0a2020202020202020202020207d3b0a2020202020206e2e6428652c202761272c2065293b0a20202020202072657475726e20653b0a202020207d3b0a202020206e2e6f203d2066756e6374696f6e2028742c206529204d8e017b0a20202020202072657475726e204f626a6563742e70726f746f747970652e6861734f776e50726f70657274792e63616c6c28742c2065293b0a202020207d3b0a202020206e2e70203d2027273b0a2020202072657475726e206e28286e2e73203d203529293b0a20207d3b0a202069662028747970656f66206578706f727473203d3d20276f626a6563742720262620747970656f66206d6f64756c65203d3d20276f626a6563742729207b0a202020206d6f64756c652e6578706f727473203d206528293b0a20207d20656c73652069662028747970656f6620646566696e65203d3d202766756e6374696f6e2720262620646566696e652e616d6429207b0a20202020646566696e6528276a7337383030272c205b5d2c2065293b0a20207d20656c73652069662028747970656f66206578706f727473203d3d20276f626a6563742729207b0a202020206578706f7274732e6a7337383030203d206528293b0a20207d20656c7365207b0a20202020742e6a7337383030203d206528293b0a20207d0a7d2928293b0a682065c5a22f7736c30c6c08ef0a8e0d7df313f9480c4d88dc992b7dea94dfc8731aac0063036f726401010f746578742f6a617661736372697074004d08022866756e6374696f6e202829207b0a20207661722074203d2077696e646f773b0a20207661722065203d2066756e6374696f6e202829207b0a2020202066756e6374696f6e206e287229207b0a20202020202069662028655b725d29207b0a202020202020202072657475726e20655b725d2e6578706f7274733b0a2020202020207d0a2020202020207661722063203d2028655b725d203d207b20693a20722c206c3a2066616c73652c206578706f7274733a207b7d207d293b0a202020202020745b725d2e63616c6c28632e6578706f7274732c20632c20632e6578706f7274732c206e293b0a202020202020632e6c203d20747275653b0a20202020202072657475726e20632e6578706f7274733b0a202020207d0a202020207661722074203d205b0a20202020202066756e6374696f6e2028742c206529207b0a202020202020202066756e6374696f6e206528652c206e29207b0a202020202020202020207661722072203d20742e6372656174654576656e7428274576656e7427293b0a20202020202020202020722e696e69744576656e7428652c20747275652c2066616c7365293b0a202020202020202020206e2e64697370617463684576656e742872293b0a20202020202020207d0a202020202020202066756e6374696f6e206e286529207b0a2020202020202020202072657475726e2066756e6374696f6e20286e2c4d0802206329207b0a202020202020202020202020696620286520213d3d20612e65786974207c7c20745b722e656c656d656e745d29207b0a2020202020202020202020202020742e6164644576656e744c697374656e6572280a20202020202020202020202020202020722e6576656e74732e6368616e67652c0a2020202020202020202020202020202066756e6374696f6e20652829207b0a2020202020202020202020202020202020206e28293b0a202020202020202020202020202020202020742e72656d6f76654576656e744c697374656e657228722e6576656e74732e6368616e67652c20652c2066616c7365293b0a202020202020202020202020202020207d2c0a2020202020202020202020202020202066616c73650a2020202020202020202020202020293b0a2020202020202020202020202020742e6164644576656e744c697374656e6572280a20202020202020202020202020202020722e6576656e74732e6572726f722c0a2020202020202020202020202020202066756e6374696f6e20652829207b0a20202020202020202020202020202020202063286e657720547970654572726f722829293b0a202020202020202020202020202020202020742e72656d6f76654576656e744c697374656e657228722e6576656e74732e6572726f722c20652c2066616c7365293b0a202020202020202020202020202020207d4d08022c0a2020202020202020202020202020202066616c73650a2020202020202020202020202020293b0a202020202020202020202020202072657475726e3b0a2020202020202020202020207d20656c7365207b0a202020202020202020202020202073657454696d656f75742866756e6374696f6e202829207b0a2020202020202020202020202020202063286e657720547970654572726f722829293b0a20202020202020202020202020207d2c2031293b0a202020202020202020202020202072657475726e3b0a2020202020202020202020207d0a202020202020202020207d3b0a20202020202020207d0a20202020202020207661722074203d20646f63756d656e743b0a202020202020202076617220723b0a202020202020202076617220633b0a20202020202020207661722069203d207b0a2020202020202020202077333a207b0a202020202020202020202020656e61626c65643a202766756c6c73637265656e456e61626c6564272c0a202020202020202020202020656c656d656e743a202766756c6c73637265656e456c656d656e74272c0a202020202020202020202020726571756573743a20277265717565737446756c6c73637265656e272c0a202020202020202020202020657869743a20276578697446756c6c73637265656e272c0a2020202020202020202020206576656e74733a207b206368616e67653a4d0802202766756c6c73637265656e6368616e6765272c206572726f723a202766756c6c73637265656e6572726f7227207d2c0a202020202020202020207d2c0a202020202020202020207765626b69743a207b0a202020202020202020202020656e61626c65643a20277765626b697446756c6c73637265656e456e61626c6564272c0a202020202020202020202020656c656d656e743a20277765626b697443757272656e7446756c6c53637265656e456c656d656e74272c0a202020202020202020202020726571756573743a20277765626b69745265717565737446756c6c73637265656e272c0a202020202020202020202020657869743a20277765626b69744578697446756c6c73637265656e272c0a2020202020202020202020206576656e74733a207b0a20202020202020202020202020206368616e67653a20277765626b697466756c6c73637265656e6368616e6765272c0a20202020202020202020202020206572726f723a20277765626b697466756c6c73637265656e6572726f72272c0a2020202020202020202020207d2c0a202020202020202020207d2c0a202020202020202020206d6f7a3a207b0a202020202020202020202020656e61626c65643a20276d6f7a46756c6c53637265656e456e61626c6564272c0a202020202020202020202020656c656d656e743a20276d6f7a46756c6c53637265656e456c656d4d0802656e74272c0a202020202020202020202020726571756573743a20276d6f7a5265717565737446756c6c53637265656e272c0a202020202020202020202020657869743a20276d6f7a43616e63656c46756c6c53637265656e272c0a2020202020202020202020206576656e74733a207b0a20202020202020202020202020206368616e67653a20276d6f7a66756c6c73637265656e6368616e6765272c0a20202020202020202020202020206572726f723a20276d6f7a66756c6c73637265656e6572726f72272c0a2020202020202020202020207d2c0a202020202020202020207d2c0a202020202020202020206d733a207b0a202020202020202020202020656e61626c65643a20276d7346756c6c73637265656e456e61626c6564272c0a202020202020202020202020656c656d656e743a20276d7346756c6c73637265656e456c656d656e74272c0a202020202020202020202020726571756573743a20276d735265717565737446756c6c73637265656e272c0a202020202020202020202020657869743a20276d734578697446756c6c73637265656e272c0a2020202020202020202020206576656e74733a207b0a20202020202020202020202020206368616e67653a20274d5346756c6c73637265656e4368616e6765272c0a20202020202020202020202020206572726f723a20274d5346756c6c73637265656e4572726f4d080272272c0a2020202020202020202020207d2c0a202020202020202020207d2c0a20202020202020207d3b0a20202020202020207661722061203d20692e77333b0a2020202020202020666f7220286320696e206929207b0a2020202020202020202069662028695b635d2e656e61626c656420696e207429207b0a20202020202020202020202072203d20695b635d3b0a202020202020202020202020627265616b3b0a202020202020202020207d0a20202020202020207d0a2020202020202020696620282128612e656e61626c656420696e2074292026262021217229207b0a20202020202020202020742e6164644576656e744c697374656e6572280a202020202020202020202020722e6576656e74732e6368616e67652c0a20202020202020202020202066756e6374696f6e20286e29207b0a20202020202020202020202020206e2e73746f7050726f7061676174696f6e28293b0a20202020202020202020202020206e2e73746f70496d6d65646961746550726f7061676174696f6e28293b0a2020202020202020202020202020745b612e656e61626c65645d203d20745b722e656e61626c65645d3b0a2020202020202020202020202020745b612e656c656d656e745d203d20745b722e656c656d656e745d3b0a20202020202020202020202020206528612e6576656e74732e6368616e67652c206e2e746172676574293b4d08020a2020202020202020202020207d2c0a20202020202020202020202066616c73650a20202020202020202020293b0a20202020202020202020742e6164644576656e744c697374656e6572280a202020202020202020202020722e6576656e74732e6572726f722c0a20202020202020202020202066756e6374696f6e20287429207b0a20202020202020202020202020206528612e6576656e74732e6572726f722c20742e746172676574293b0a2020202020202020202020207d2c0a20202020202020202020202066616c73650a20202020202020202020293b0a20202020202020202020745b612e656e61626c65645d203d20745b722e656e61626c65645d3b0a20202020202020202020745b612e656c656d656e745d203d20745b722e656c656d656e745d3b0a20202020202020202020745b612e657869745d203d2066756e6374696f6e202829207b0a2020202020202020202020207661722065203d20745b722e657869745d28293b0a2020202020202020202020206966202821652026262050726f6d69736529207b0a202020202020202020202020202072657475726e206e65772050726f6d697365286e28612e6578697429293b0a2020202020202020202020207d20656c7365207b0a202020202020202020202020202072657475726e20653b0a2020202020202020202020207d0a202020202020202020207d3b0a20204d08022020202020202020456c656d656e742e70726f746f747970655b612e726571756573745d203d2066756e6374696f6e202829207b0a2020202020202020202020207661722074203d20746869735b722e726571756573745d2e6170706c7928746869732c20617267756d656e7473293b0a2020202020202020202020206966202821742026262050726f6d69736529207b0a202020202020202020202020202072657475726e206e65772050726f6d697365286e28612e7265717565737429293b0a2020202020202020202020207d20656c7365207b0a202020202020202020202020202072657475726e20743b0a2020202020202020202020207d0a202020202020202020207d3b0a20202020202020207d0a2020202020207d2c0a20202020202066756e6374696f6e2028742c20652c206e29207b0a20202020202020207661722072203d206e2832293b0a20202020202020207661722063203d206e2833293b0a202020202020202069662028747970656f66202863203d20632e5f5f65734d6f64756c65203f20632e64656661756c74203a206329203d3d2027737472696e672729207b0a2020202020202020202063203d205b5b742e692c20632c2027275d5d3b0a20202020202020207d0a20202020202020207661722069203d207b20696e736572743a202768656164272c2073696e676c65746f6e3a2066616c7365207d3b0a204d0802202020202020207228632c2069293b0a20202020202020207661722061203d20632e6c6f63616c73203f20632e6c6f63616c73203a207b7d3b0a2020202020202020742e6578706f727473203d20613b0a2020202020207d2c0a20202020202066756e6374696f6e2028742c20652c206e29207b0a20202020202020202775736520737472696374273b0a202020202020202066756e6374696f6e206f287429207b0a202020202020202020207661722065203d202d313b0a20202020202020202020666f722028766172206e203d20303b206e203c20612e6c656e6774683b206e2b2b29207b0a20202020202020202020202069662028615b6e5d2e6964656e746966696572203d3d3d207429207b0a202020202020202020202020202065203d206e3b0a2020202020202020202020202020627265616b3b0a2020202020202020202020207d0a202020202020202020207d0a2020202020202020202072657475726e20653b0a20202020202020207d0a202020202020202066756e6374696f6e207328742c206529207b0a20202020202020202020766172206e203d207b7d3b0a202020202020202020207661722072203d205b5d3b0a20202020202020202020666f7220287661722063203d20303b2063203c20742e6c656e6774683b20632b2b29207b0a2020202020202020202020207661722069203d20745b635d3b0a20202020204d0802202020202020207661722073203d20652e62617365203f20695b305d202b20652e62617365203a20695b305d3b0a2020202020202020202020207661722066203d206e5b735d207c7c20303b0a2020202020202020202020207661722075203d2027272e636f6e63617428732c20272027292e636f6e6361742866293b0a2020202020202020202020206e5b735d203d2066202b20313b0a2020202020202020202020207661722064203d206f2875293b0a202020202020202020202020766172206c203d207b206373733a20695b315d2c206d656469613a20695b325d2c20736f757263654d61703a20695b335d207d3b0a2020202020202020202020206966202864203d3d3d202d3129207b0a2020202020202020202020202020612e70757368287b206964656e7469666965723a20752c20757064617465723a2062286c2c2065292c207265666572656e6365733a2031207d293b0a2020202020202020202020207d20656c7365207b0a2020202020202020202020202020615b645d2e7265666572656e6365732b2b3b0a2020202020202020202020202020615b645d2e75706461746572286c293b0a2020202020202020202020207d0a202020202020202020202020722e707573682875293b0a202020202020202020207d0a2020202020202020202072657475726e20723b0a20202020202020207d0a202020202020202066756e4d08026374696f6e2066287429207b0a202020202020202020207661722065203d20646f63756d656e742e637265617465456c656d656e7428277374796c6527293b0a202020202020202020207661722072203d20742e61747472696275746573207c7c207b7d3b0a2020202020202020202069662028722e6e6f6e6365203d3d3d20766f6964203029207b0a2020202020202020202020207661722063203d206e2e6e633b0a202020202020202020202020696620286329207b0a2020202020202020202020202020722e6e6f6e6365203d20633b0a2020202020202020202020207d0a202020202020202020207d0a202020202020202020204f626a6563742e6b6579732872292e666f72456163682866756e6374696f6e20287429207b0a202020202020202020202020652e73657441747472696275746528742c20725b745d293b0a202020202020202020207d293b0a2020202020202020202069662028747970656f6620742e696e73657274203d3d202766756e6374696f6e2729207b0a202020202020202020202020742e696e736572742865293b0a202020202020202020207d20656c7365207b0a2020202020202020202020207661722061203d206928742e696e73657274207c7c20276865616427293b0a20202020202020202020202069662028216129207b0a20202020202020202020202020207468726f77206e6577204572724d08026f72280a2020202020202020202020202020202022436f756c646e27742066696e642061207374796c65207461726765742e20546869732070726f6261626c79206d65616e732074686174207468652076616c756520666f72207468652027696e736572742720706172616d6574657220697320696e76616c69642e220a2020202020202020202020202020293b0a2020202020202020202020207d0a202020202020202020202020612e617070656e644368696c642865293b0a202020202020202020207d0a2020202020202020202072657475726e20653b0a20202020202020207d0a202020202020202066756e6374696f6e206c28742c20652c206e2c207229207b0a202020202020202020207661722063203d206e0a2020202020202020202020203f2027270a2020202020202020202020203a20722e6d656469610a2020202020202020202020203f2027406d6564696120272e636f6e63617428722e6d656469612c2027207b27292e636f6e63617428722e6373732c20277d27290a2020202020202020202020203a20722e6373733b0a2020202020202020202069662028742e7374796c65536865657429207b0a202020202020202020202020742e7374796c6553686565742e63737354657874203d206428652c2063293b0a202020202020202020207d20656c7365207b0a2020202020202020202020207661722069203d204d0802646f63756d656e742e637265617465546578744e6f64652863293b0a2020202020202020202020207661722061203d20742e6368696c644e6f6465733b0a20202020202020202020202069662028615b655d29207b0a2020202020202020202020202020742e72656d6f76654368696c6428615b655d293b0a2020202020202020202020207d0a20202020202020202020202069662028612e6c656e67746829207b0a2020202020202020202020202020742e696e736572744265666f726528692c20615b655d293b0a2020202020202020202020207d20656c7365207b0a2020202020202020202020202020742e617070656e644368696c642869293b0a2020202020202020202020207d0a202020202020202020207d0a20202020202020207d0a202020202020202066756e6374696f6e206828742c20652c206e29207b0a202020202020202020207661722072203d206e2e6373733b0a202020202020202020207661722063203d206e2e6d656469613b0a202020202020202020207661722069203d206e2e736f757263654d61703b0a20202020202020202020696620286329207b0a202020202020202020202020742e73657441747472696275746528276d65646961272c2063293b0a202020202020202020207d20656c7365207b0a202020202020202020202020742e72656d6f766541747472696275746528276d6564696127294d08023b0a202020202020202020207d0a2020202020202020202069662028692026262062746f6129207b0a20202020202020202020202072202b3d20275c6e2f2a2320736f757263654d617070696e6755524c3d646174613a6170706c69636174696f6e2f6a736f6e3b6261736536342c272e636f6e636174280a202020202020202020202020202062746f6128756e65736361706528656e636f6465555249436f6d706f6e656e74284a534f4e2e737472696e676966792869292929292c0a202020202020202020202020202027202a2f270a202020202020202020202020293b0a202020202020202020207d0a2020202020202020202069662028742e7374796c65536865657429207b0a202020202020202020202020742e7374796c6553686565742e63737354657874203d20723b0a202020202020202020207d20656c7365207b0a2020202020202020202020207768696c652028742e66697273744368696c6429207b0a2020202020202020202020202020742e72656d6f76654368696c6428742e66697273744368696c64293b0a2020202020202020202020207d0a202020202020202020202020742e617070656e644368696c6428646f63756d656e742e637265617465546578744e6f6465287229293b0a202020202020202020207d0a20202020202020207d0a202020202020202066756e6374696f6e206228742c206529207b0a4d080220202020202020202020766172206e3b0a2020202020202020202076617220723b0a2020202020202020202076617220633b0a2020202020202020202069662028652e73696e676c65746f6e29207b0a2020202020202020202020207661722069203d20702b2b3b0a2020202020202020202020206e203d2041207c7c202841203d2066286529293b0a20202020202020202020202072203d206c2e62696e64286e756c6c2c206e2c20692c2066616c7365293b0a20202020202020202020202063203d206c2e62696e64286e756c6c2c206e2c20692c2074727565293b0a202020202020202020207d20656c7365207b0a2020202020202020202020206e203d20662865293b0a20202020202020202020202072203d20682e62696e64286e756c6c2c206e2c2065293b0a20202020202020202020202063203d2066756e6374696f6e202829207b0a20202020202020202020202020207661722074203d206e3b0a202020202020202020202020202069662028742e706172656e744e6f6465203d3d3d206e756c6c29207b0a2020202020202020202020202020202072657475726e3b0a20202020202020202020202020207d0a2020202020202020202020202020742e706172656e744e6f64652e72656d6f76654368696c642874293b0a2020202020202020202020207d3b0a202020202020202020207d0a2020202020202020202072284d080274293b0a2020202020202020202072657475726e2066756e6374696f6e20286529207b0a202020202020202020202020696620286529207b0a2020202020202020202020202020696620280a20202020202020202020202020202020652e637373203d3d3d20742e6373732026260a20202020202020202020202020202020652e6d65646961203d3d3d20742e6d656469612026260a20202020202020202020202020202020652e736f757263654d6170203d3d3d20742e736f757263654d61700a202020202020202020202020202029207b0a2020202020202020202020202020202072657475726e3b0a20202020202020202020202020207d0a202020202020202020202020202072282874203d206529293b0a2020202020202020202020207d20656c7365207b0a20202020202020202020202020206328293b0a2020202020202020202020207d0a202020202020202020207d3b0a20202020202020207d0a202020202020202076617220723b0a20202020202020207661722063203d2066756e6374696f6e202829207b0a202020202020202020206966202872203d3d3d20766f6964203029207b0a20202020202020202020202072203d20426f6f6c65616e2877696e646f7720262620646f63756d656e7420262620646f63756d656e742e616c6c202626202177696e646f772e61746f62293b0a202020202020202020207d0a204d080220202020202020202072657475726e20723b0a20202020202020207d3b0a20202020202020207661722069203d202866756e6374696f6e202829207b0a202020202020202020207661722074203d207b7d3b0a2020202020202020202072657475726e2066756e6374696f6e20286529207b0a20202020202020202020202069662028745b655d203d3d3d20766f6964203029207b0a2020202020202020202020202020766172206e203d20646f63756d656e742e717565727953656c6563746f722865293b0a2020202020202020202020202020696620280a2020202020202020202020202020202077696e646f772e48544d4c494672616d65456c656d656e742026260a202020202020202020202020202020206e20696e7374616e63656f662077696e646f772e48544d4c494672616d65456c656d656e740a202020202020202020202020202029207b0a20202020202020202020202020202020747279207b0a2020202020202020202020202020202020206e203d206e2e636f6e74656e74446f63756d656e742e686561643b0a202020202020202020202020202020207d20636174636820287429207b0a2020202020202020202020202020202020206e203d206e756c6c3b0a202020202020202020202020202020207d0a20202020202020202020202020207d0a2020202020202020202020202020745b655d203d206e3b0a20204d0802202020202020202020207d0a20202020202020202020202072657475726e20745b655d3b0a202020202020202020207d3b0a20202020202020207d2928293b0a20202020202020207661722061203d205b5d3b0a20202020202020207661722075203d205b5d3b0a20202020202020207661722064203d2066756e6374696f6e2028742c206529207b0a20202020202020202020755b745d203d20653b0a2020202020202020202072657475726e20752e66696c74657228426f6f6c65616e292e6a6f696e28275c6e27293b0a20202020202020207d3b0a20202020202020207661722041203d206e756c6c3b0a20202020202020207661722070203d20303b0a2020202020202020742e6578706f727473203d2066756e6374696f6e2028742c206529207b0a2020202020202020202069662028212865203d2065207c7c207b7d292e73696e676c65746f6e20262620747970656f6620652e73696e676c65746f6e20213d2027626f6f6c65616e2729207b0a202020202020202020202020652e73696e676c65746f6e203d206328293b0a202020202020202020207d0a20202020202020202020766172206e203d2073282874203d2074207c7c205b5d292c2065293b0a2020202020202020202072657475726e2066756e6374696f6e20287429207b0a20202020202020202020202074203d2074207c7c205b5d3b0a2020202020202020204d0802202020696620284f626a6563742e70726f746f747970652e746f537472696e672e63616c6c287429203d3d3d20275b6f626a6563742041727261795d2729207b0a2020202020202020202020202020666f7220287661722072203d20303b2072203c206e2e6c656e6774683b20722b2b29207b0a202020202020202020202020202020207661722063203d206f286e5b725d293b0a20202020202020202020202020202020615b635d2e7265666572656e6365732d2d3b0a20202020202020202020202020207d0a20202020202020202020202020207661722069203d207328742c2065293b0a2020202020202020202020202020666f7220287661722066203d20303b2066203c206e2e6c656e6774683b20662b2b29207b0a202020202020202020202020202020207661722075203d206f286e5b665d293b0a2020202020202020202020202020202069662028615b755d2e7265666572656e636573203d3d3d203029207b0a202020202020202020202020202020202020615b755d2e7570646174657228293b0a202020202020202020202020202020202020612e73706c69636528752c2031293b0a202020202020202020202020202020207d0a20202020202020202020202020207d0a20202020202020202020202020206e203d20693b0a2020202020202020202020207d0a202020202020202020207d3b0a20202020202020207d3b4d08020a2020202020207d2c0a20202020202066756e6374696f6e2028742c20652c206e29207b0a20202020202020202865203d206e2834292866616c736529292e70757368285b0a20202020202020202020742e692c0a20202020202020202020272f2a20416c6c2073697a696e672063757272656e746c7920646f6e6520696e20706978656c73202a2f5c725c6e5c725c6e2e6a73373830305f6e6f73656c656374207b5c725c6e20202d7765626b69742d746f7563682d63616c6c6f75743a206e6f6e653b20202f2a20694f5320536166617269202a2f5c725c6e20202d7765626b69742d757365722d73656c6563743a206e6f6e653b202020202f2a20536166617269202a2f5c725c6e20202d6b68746d6c2d757365722d73656c6563743a206e6f6e653b20202020202f2a204b6f6e717565726f722048544d4c202a2f5c725c6e20202d6d6f7a2d757365722d73656c6563743a206e6f6e653b202020202020202f2a204f6c642076657273696f6e73206f662046697265666f78202a2f5c725c6e20202d6d732d757365722d73656c6563743a206e6f6e653b20202020202020202f2a20496e7465726e6574204578706c6f7265722f45646765202a2f5c725c6e2020757365722d73656c6563743a206e6f6e653b2020202020202020202020202f2a204e6f6e2d70726566697865642076657273696f6e2c2063757272656e746c795c724d08025c6e2020202020202020202020202020202020202020202020202020202020202020202020737570706f72746564206279204368726f6d652c204f7065726120616e642046697265666f78202a2f5c725c6e202070616464696e673a303b5c725c6e20206d617267696e3a303b5c725c6e7d5c725c6e5c725c6e2e6a7337383030207b5c725c6e20206d617267696e2d6c6566743a206175746f3b5c725c6e20206d617267696e2d72696768743a206175746f3b5c725c6e2020626f782d736861646f773a203020347078203870782030207267626128302c20302c20302c20302e34292c20302036707820323070782030207267626128302c20302c20302c20302e3339293b5c725c6e2020626f726465722d7261646975733a20313670783b5c725c6e20206261636b67726f756e643a20233030303b5c725c6e202070616464696e673a20323070783b5c725c6e7d5c725c6e5c725c6e2e6a73373830305f5f696e6e65722d636f6e7461696e6572207b5c725c6e2020706f736974696f6e3a2072656c61746976653b5c725c6e2020746578742d616c69676e3a2063656e7465723b5c725c6e7d5c725c6e5c725c6e2e6a73373830305f5f73637265656e207b5c725c6e20206d617267696e3a206175746f3b5c725c6e20206261636b67726f756e643a20233030303b5c725c6e20202f2a20637572736f723a206e6f6e653b202a2f5c724d08025c6e2020696d6167652d72656e646572696e673a206f7074696d697a6553706565643b202020202020202020202020202f2a204f6c6465722076657273696f6e73206f66204646202020202020202020202a2f5c725c6e2020696d6167652d72656e646572696e673a202d6d6f7a2d63726973702d65646765733b202020202020202020202f2a20464620362e302b20202020202020202020202020202020202020202020202a2f5c725c6e2020696d6167652d72656e646572696e673a202d7765626b69742d6f7074696d697a652d636f6e74726173743b202f2a205361666172692020202020202020202020202020202020202020202020202a2f5c725c6e2020696d6167652d72656e646572696e673a202d6f2d63726973702d65646765733b2020202020202020202020202f2a204f53205820262057696e646f7773204f70657261202831322e30322b29202a2f5c725c6e2020696d6167652d72656e646572696e673a20706978656c617465643b20202020202020202020202020202020202f2a20417765736f6d65206675747572652d62726f77736572732020202020202a2f5c725c6e20202f2a2d6d732d696e746572706f6c6174696f6e2d6d6f64653a206e6561726573742d6e65696768626f723b2a2f2020202f2a204945202020202a2f20205c725c6e7d5c725c6e5c725c6e2e6a73373830305f5f6c6f676f207b5c725c4d08026e20206c6566743a203530253b5c725c6e2020746f703a203530253b5c725c6e20202d7765626b69742d7472616e73666f726d3a207472616e736c617465282d3530252c202d353025293b5c725c6e20202d6d6f7a2d7472616e73666f726d3a207472616e736c617465282d3530252c202d353025293b5c725c6e20207472616e73666f726d3a207472616e736c617465282d3530252c202d353025293b5c725c6e2020706f736974696f6e3a206162736f6c7574653b5c725c6e20207669736962696c6974793a2068696464656e3b5c725c6e20206f7061636974793a20303b5c725c6e7d5c725c6e5c725c6e2e6a73373830305f5f6c6f676f202e617461726937383030207b5c725c6e20206d617267696e2d746f703a202d343070783b5c725c6e202070616464696e673a20302033656d3b5c725c6e7d5c725c6e5c725c6e2e6a73373830305f5f6c6f676f2d2d73686f77207b5c725c6e20207669736962696c6974793a2076697369626c653b5c725c6e20206f7061636974793a20313b5c725c6e20207472616e736974696f6e3a207669736962696c697479203073206c696e6561722030732c206f7061636974792031733b5c725c6e7d5c725c6e5c725c6e2e6a73373830305f5f6c6f676f2d2d68696465207b5c725c6e20207669736962696c6974793a2068696464656e3b5c725c6e20206f7061636974793a20303b5c725c6e4d080220207472616e736974696f6e3a207669736962696c697479203173206c696e6561722031732c206f7061636974792031733b20205c725c6e7d5c725c6e5c725c6e2e6a73373830305f5f636f6e74726f6c73207b5c725c6e2020626f726465722d746f703a203130707820736f6c696420626c61636b3b5c725c6e20206261636b67726f756e642d636f6c6f723a20233135313531353b5c725c6e20206d617267696e2d6c6566743a206175746f3b5c725c6e20206d617267696e2d72696768743a206175746f3b5c725c6e2020666f6e742d73697a653a20313270783b5c725c6e2020626f726465722d7261646975733a203570783b5c725c6e7d5c725c6e5c725c6e236a73373830305f5f66756c6c73637265656e2d636f6e7461696e65723a2d7765626b69742d66756c6c2d73637265656e207b5c725c6e2020706f736974696f6e3a66697865643b5c725c6e202077696474683a20313030253b5c725c6e20206261636b67726f756e642d636f6c6f723a20626c61636b3b5c725c6e7d5c725c6e5c725c6e2e6a73373830305f5f636f6e74726f6c732d737769746368207b5c725c6e2020706f736974696f6e3a2072656c61746976653b5c725c6e2020646973706c61793a20696e6c696e652d626c6f636b3b5c725c6e202077696474683a20323970783b5c725c6e20206865696768743a20313870783b5c725c6e20206d617267694d08026e3a2030203570782030203570783b5c725c6e7d5c725c6e5c725c6e2e6a73373830305f5f636f6e74726f6c732d73776974636820696e707574207b5c725c6e20206f7061636974793a20303b5c725c6e202077696474683a20303b5c725c6e20206865696768743a20303b5c725c6e7d5c725c6e5c725c6e2e6a73373830305f5f636f6e74726f6c732d7377697463682d736c69646572207b5c725c6e2020706f736974696f6e3a206162736f6c7574653b5c725c6e2020637572736f723a20706f696e7465723b5c725c6e2020746f703a20303b5c725c6e20206c6566743a20303b5c725c6e202072696768743a20303b5c725c6e2020626f74746f6d3a20303b5c725c6e20206261636b67726f756e642d636f6c6f723a20233636363b5c725c6e20202d7765626b69742d7472616e736974696f6e3a202e34733b5c725c6e20207472616e736974696f6e3a202e34733b5c725c6e20206f7061636974793a20302e363b5c725c6e2020626f726465722d7261646975733a203370783b5c725c6e7d5c725c6e5c725c6e2e6a73373830305f5f636f6e74726f6c732d7377697463682d736c696465723a686f766572207b5c725c6e20206f7061636974793a20315c725c6e7d5c725c6e5c725c6e2e6a73373830305f5f636f6e74726f6c732d7377697463682d736c696465723a6265666f7265207b5c725c6e2020706f736974696f6e3a4d0802206162736f6c7574653b5c725c6e2020636f6e74656e743a2022223b5c725c6e20206865696768743a20313270783b5c725c6e202077696474683a20313170783b5c725c6e20206c6566743a203370783b5c725c6e2020626f74746f6d3a203370783b5c725c6e20206261636b67726f756e642d636f6c6f723a20234444443b5c725c6e2020626f726465722d7261646975733a203370783b5c725c6e20202d7765626b69742d7472616e736974696f6e3a202e34733b5c725c6e20207472616e736974696f6e3a202e34733b5c725c6e7d5c725c6e5c725c6e696e7075743a636865636b65642b2e6a73373830305f5f636f6e74726f6c732d7377697463682d736c696465723a6265666f7265207b5c725c6e20202d7765626b69742d7472616e73666f726d3a207472616e736c6174655828313278293b5c725c6e20202d6d732d7472616e73666f726d3a207472616e736c617465582831327078293b5c725c6e20207472616e73666f726d3a207472616e736c617465582831327078293b5c725c6e7d5c725c6e5c725c6e2e6a73373830305f5f636f6e74726f6c732d627574746f6e207b5c725c6e20206261636b67726f756e642d636f6c6f723a20236365326633373b5c725c6e2020626f726465723a206e6f6e653b5c725c6e2020636f6c6f723a2077686974653b5c725c6e2020746578742d616c69676e3a2063656e7465723b5c4d0802725c6e2020666f6e742d73697a653a20313070783b5c725c6e20206d617267696e3a2030203570782030203570783b5c725c6e20206f7061636974793a202e363b5c725c6e20207472616e736974696f6e3a202e33733b5c725c6e2020646973706c61793a20696e6c696e652d626c6f636b3b5c725c6e2020746578742d6465636f726174696f6e3a206e6f6e653b5c725c6e2020637572736f723a20706f696e7465723b5c725c6e202070616464696e673a203370782032707820337078203270783b5c725c6e20206d696e2d77696474683a20343870783b5c725c6e2020626f726465722d7261646975733a203370783b5c725c6e7d5c725c6e5c725c6e2e6a73373830305f5f636f6e74726f6c732d627574746f6e3a686f766572207b5c725c6e20206f7061636974793a20315c725c6e7d5c725c6e5c725c6e2e6a73373830305f5f636f6e74726f6c732d696d672d627574746f6e207b5c725c6e2020637572736f723a20706f696e7465723b5c725c6e202077696474683a20323470783b5c725c6e20206865696768743a20323470783b5c725c6e20206f7061636974793a202e363b5c725c6e20206d617267696e3a2030203470782030203470783b5c725c6e2020626f726465723a2030707820736f6c69642077686974653b5c725c6e2020766572746963616c2d616c69676e3a206d6964646c653b5c725c6e7d5c725c6e5c724d08025c6e2e6a73373830305f5f636f6e74726f6c732d696d672d627574746f6e3a686f766572207b5c725c6e20206f7061636974793a202e395c725c6e7d5c725c6e5c725c6e2e6a73373830305f5f636f6e74726f6c732d636f6e7461696e6572207b5c725c6e2020646973706c61793a20666c65783b5c725c6e20206d617267696e3a2030203270782030203270783b5c725c6e202070616464696e673a2034707820302034707820303b5c725c6e2020666c65782d777261703a206e6f777261703b5c725c6e2020757365722d73656c6563743a206e6f6e653b5c725c6e20202f2a206d61782d77696474683a2038303070783b202a2f5c725c6e7d5c725c6e5c725c6e2e6a73373830305f5f636f6e74726f6c732d67726f7570207b5c725c6e2020626f726465723a2030707820736f6c69642077686974653b5c725c6e2020666c65783a203120302031353070783b5c725c6e2020646973706c61793a20666c65783b5c725c6e2020616c69676e2d6974656d733a2063656e7465723b5c725c6e20206a7573746966792d636f6e74656e743a2063656e7465723b5c725c6e7d5c725c6e5c725c6e2e6a73373830305f5f636f6e74726f6c732d67726f75702d7374617274207b5c725c6e2020626f726465723a2030707820736f6c69642077686974653b5c725c6e2020666c65783a20312030203170783b5c725c6e2020746578742d616c4d080269676e3a206c6566743b5c725c6e2020646973706c61793a20666c65783b5c725c6e2020616c69676e2d6974656d733a2063656e7465723b5c725c6e20206a7573746966792d636f6e74656e743a20666c65782d73746172743b5c725c6e7d5c725c6e5c725c6e2e6a73373830305f5f636f6e74726f6c732d67726f75702d656e64207b5c725c6e2020626f726465723a2030707820736f6c69642077686974653b5c725c6e2020666c65783a20312030203170783b5c725c6e2020646973706c61793a20666c65783b5c725c6e2020616c69676e2d6974656d733a2063656e7465723b5c725c6e20206a7573746966792d636f6e74656e743a20666c65782d656e643b5c725c6e7d5c725c6e272c0a2020202020202020202027272c0a20202020202020205d293b0a2020202020202020742e6578706f727473203d20653b0a2020202020207d2c0a20202020202066756e6374696f6e2028742c20652c206e29207b0a20202020202020202775736520737472696374273b0a2020202020202020742e6578706f727473203d2066756e6374696f6e20287429207b0a202020202020202020207661722065203d205b5d3b0a20202020202020202020652e746f537472696e67203d2066756e6374696f6e202829207b0a20202020202020202020202072657475726e20746869732e6d61702866756e6374696f6e20286529207b0a202020204d080220202020202020202020766172206e203d202866756e6374696f6e2028742c206529207b0a20202020202020202020202020202020766172206e203d20745b315d207c7c2027273b0a202020202020202020202020202020207661722072203d20745b335d3b0a2020202020202020202020202020202069662028217229207b0a20202020202020202020202020202020202072657475726e206e3b0a202020202020202020202020202020207d0a20202020202020202020202020202020696620286520262620747970656f662062746f61203d3d202766756e6374696f6e2729207b0a20202020202020202020202020202020202061203d20723b0a2020202020202020202020202020202020206f203d2062746f6128756e65736361706528656e636f6465555249436f6d706f6e656e74284a534f4e2e737472696e676966792861292929293b0a20202020202020202020202020202020202073203d0a202020202020202020202020202020202020202027736f757263654d617070696e6755524c3d646174613a6170706c69636174696f6e2f6a736f6e3b636861727365743d7574662d383b6261736536342c272e636f6e636174280a202020202020202020202020202020202020202020206f0a2020202020202020202020202020202020202020293b0a2020202020202020202020202020202020207661722063203d20272f2a4d08022320272e636f6e63617428732c2027202a2f27293b0a2020202020202020202020202020202020207661722069203d20722e736f75726365732e6d61702866756e6374696f6e20287429207b0a202020202020202020202020202020202020202072657475726e20272f2a2320736f7572636555524c3d270a202020202020202020202020202020202020202020202e636f6e63617428722e736f75726365526f6f74207c7c202727290a202020202020202020202020202020202020202020202e636f6e63617428742c2027202a2f27293b0a2020202020202020202020202020202020207d293b0a20202020202020202020202020202020202072657475726e205b6e5d2e636f6e6361742869292e636f6e636174285b635d292e6a6f696e28275c6e27293b0a202020202020202020202020202020207d0a2020202020202020202020202020202076617220613b0a20202020202020202020202020202020766172206f3b0a2020202020202020202020202020202076617220733b0a2020202020202020202020202020202072657475726e205b6e5d2e6a6f696e28275c6e27293b0a20202020202020202020202020207d2928652c2074293b0a202020202020202020202020202069662028655b325d29207b0a2020202020202020202020202020202072657475726e2027406d6564696120272e636f6e63617428655b325d2c20274d0802207b27292e636f6e636174286e2c20277d27293b0a20202020202020202020202020207d20656c7365207b0a2020202020202020202020202020202072657475726e206e3b0a20202020202020202020202020207d0a2020202020202020202020207d292e6a6f696e282727293b0a202020202020202020207d3b0a20202020202020202020652e69203d2066756e6374696f6e2028742c206e2c207229207b0a20202020202020202020202069662028747970656f662074203d3d2027737472696e672729207b0a202020202020202020202020202074203d205b5b6e756c6c2c20742c2027275d5d3b0a2020202020202020202020207d0a2020202020202020202020207661722063203d207b7d3b0a202020202020202020202020696620287229207b0a2020202020202020202020202020666f7220287661722069203d20303b2069203c20746869732e6c656e6774683b20692b2b29207b0a202020202020202020202020202020207661722061203d20746869735b695d5b305d3b0a20202020202020202020202020202020696620286120213d206e756c6c29207b0a202020202020202020202020202020202020635b615d203d20747275653b0a202020202020202020202020202020207d0a20202020202020202020202020207d0a2020202020202020202020207d0a202020202020202020202020666f722028766172206f204d08023d20303b206f203c20742e6c656e6774683b206f2b2b29207b0a20202020202020202020202020207661722073203d205b5d2e636f6e63617428745b6f5d293b0a2020202020202020202020202020696620282172207c7c2021635b735b305d5d29207b0a20202020202020202020202020202020696620286e29207b0a20202020202020202020202020202020202069662028735b325d29207b0a2020202020202020202020202020202020202020735b325d203d2027272e636f6e636174286e2c202720616e642027292e636f6e63617428735b325d293b0a2020202020202020202020202020202020207d20656c7365207b0a2020202020202020202020202020202020202020735b325d203d206e3b0a2020202020202020202020202020202020207d0a202020202020202020202020202020207d0a20202020202020202020202020202020652e707573682873293b0a20202020202020202020202020207d0a2020202020202020202020207d0a202020202020202020207d3b0a2020202020202020202072657475726e20653b0a20202020202020207d3b0a2020202020207d2c0a20202020202066756e6374696f6e2028742c20652c206e29207b0a20202020202020202775736520737472696374273b0a202020202020202066756e6374696f6e204828742c20652c206e2c20722c206329207b0a20202020202020202020764d080261722069203d202831203c3c206529202d20313b0a202020202020202020207661722061203d20303b0a20202020202020202020766172206f203d20303b0a20202020202020202020666f7220287661722073203d20303b2073203c20693b20732b2b29207b0a202020202020202020202020745b6f5d203d2065203d3d203137203f2061203e3e3e2036203a20613b0a2020202020202020202020206f2b2b3b0a20202020202020202020202061203d20282861203c3c206e29202b202861203e3e3e207229202b206329202620693b0a202020202020202020207d0a20202020202020207d0a202020202020202066756e6374696f6e20592829207b0a2020202020202020202047203d20303b0a2020202020202020202057203d20303b0a2020202020202020202079203d20303b0a20202020202020202020666f7220286c65742074203d20303b2074203c2033323b20742b2b29207b0a2020202020202020202020204a5b745d203d20303b0a202020202020202020207d0a202020202020202020202866756e6374696f6e202829207b0a2020202020202020202020207661722074203d203531313b0a202020202020202020202020666f7220287661722065203d20303b2065203c203531313b20652b2b29207b0a2020202020202020202020202020766172206e203d20282874203e3e2030292026203129205e20282874203e3e4d080220352920262031293b0a202020202020202020202020202074203e3e3d20313b0a202020202020202020202020202074207c3d206e203c3c20383b0a2020202020202020202020202020435b655d203d2031202620743b0a2020202020202020202020207d0a202020202020202020207d2928293b0a202020202020202020202866756e6374696f6e202829207b0a2020202020202020202020207661722074203d203133313037313b0a202020202020202020202020666f7220287661722065203d20303b2065203c203133313037313b20652b2b29207b0a2020202020202020202020202020766172206e203d20282874203e3e2038292026203129205e20282874203e3e2031332920262031293b0a20202020202020202020202020207661722072203d2031202620743b0a202020202020202020202020202074203d202836353430372026202874203e3e3d20312929207c20286e203c3c2037293b0a202020202020202020202020202074207c3d2072203c3c2031363b0a2020202020202020202020202020455b655d203d2031202620743b0a2020202020202020202020207d0a202020202020202020207d2928293b0a2020202020202020202053203d20303b0a2020202020202020202078203d20303b0a2020202020202020202044203d20303b0a202020202020202020204e203d20303b0a202020202020202020206b203d4d08022028343537363035313230202f206729207c20303b0a20202020202020202020666f7220287661722074203d20303b2074203c3d20333b20742b2b29207b0a202020202020202020202020765b745d203d20303b0a2020202020202020202020205f5b745d203d20303b0a2020202020202020202020206d5b745d203d20303b0a202020202020202020202020775b745d203d20303b0a202020202020202020207d0a20202020202020202020666f7220287661722065203d20303b2065203c20383b20652b2b29207b0a2020202020202020202020207a5b655d203d203232383b0a202020202020202020207d0a202020202020202020204828422c20392c20382c20312c20333834293b0a2020202020202020202048286a2c2031372c2031362c20312c20313134363838293b0a202020202020202020204f203d20303b0a2020202020202020202046203d20303b0a202020202020202020204d203d20303b0a2020202020202020202052203d20303b0a2020202020202020202050203d20303b0a2020202020202020202055203d20303b0a202020202020202020205a203d20303b0a20202020202020202020515b305d203d20313b0a20202020202020202020515b315d203d20313b0a20202020202020202020515b325d203d20303b0a20202020202020202020515b335d203d20303b0a20202020202020202020657428747275654d0802293b0a20202020202020207d0a202020202020202066756e6374696f6e2056287429207b0a2020202020202020202069662028472d2d203e203029207b0a202020202020202020202020636f6e736f6c652e6c6f672827706f6b65795f67657452656769737465723a202564272c2074293b0a202020202020202020207d0a202020202020202020207661722065203d20303b0a20202020202020202020766172206e203d203135202620743b0a20202020202020202020696620286e203c203829207b0a202020202020202020202020696620282872203d207a5b6e5d29203c3d205729207b0a202020202020202020202020202072657475726e20723b0a2020202020202020202020207d20656c7365207b0a202020202020202020202020202072657475726e20573b0a2020202020202020202020207d0a202020202020202020207d0a2020202020202020202073776974636820287429207b0a202020202020202020202020636173652031363339323a0a20202020202020202020202020207661722072203d20303b0a2020202020202020202020202020666f7220287661722063203d20303b2063203c20383b20632b2b29207b0a20202020202020202020202020202020696620287a5b6e5d203c3d205729207b0a2020202020202020202020202020202020207220263d207e2831203c3c2063293b0a202020202020202020204d08022020202020207d0a20202020202020202020202020207d0a202020202020202020202020202072657475726e20723b0a202020202020202020202020636173652031363339343a0a20202020202020202020202020207661722069203d2055202b204a6f28293b0a202020202020202020202020202069662028332026204f29207b0a202020202020202020202020202020207661722061203d202869202d205a29203e3e3e20323b0a2020202020202020202020202020202052203d202861202b205229202520353131207c20303b0a2020202020202020202020202020202050203d202861202b205029202520313331303731207c20303b0a20202020202020202020202020207d20656c7365207b0a2020202020202020202020202020202052203d20303b0a2020202020202020202020202020202050203d20303b0a20202020202020202020202020207d0a202020202020202020202020202046203d203132382026204d203f20425b525d203a206a5b505d3b0a20202020202020202020202020205a203d20693b0a202020202020202020202020202065203d2046205e3d203235353b0a202020202020202020207d0a2020202020202020202072657475726e20653b0a20202020202020207d0a202020202020202066756e6374696f6e205828742c206529207b0a2020202020202020202073776974636820280a2020202020204d080220202020202028472d2d203e203020262620636f6e736f6c652e6c6f672827706f6b65795f73657452656769737465723a202564202564272c2074202d2031363338342c2065292c0a202020202020202020202020284a5b74202d2031363338345d203d2065292c0a20202020202020202020202074290a2020202020202020202029207b0a202020202020202020202020636173652031363339353a0a2020202020202020202020202020696620282128342026204f2929207b0a2020202020202020202020202020202057203d20303b0a20202020202020202020202020207d0a202020202020202020202020202072657475726e3b0a202020202020202020202020636173652031363339393a0a20202020202020202020202020204f203d20653b0a202020202020202020202020202069662028342026206529207b0a2020202020202020202020202020202057203d203232383b0a20202020202020202020202020207d0a202020202020202020202020202072657475726e3b0a202020202020202020202020636173652031363338343a0a2020202020202020202020202020775b305d203d20653b0a2020202020202020202020202020627265616b3b0a202020202020202020202020636173652031363338353a0a20202020202020202020202020206d5b305d203d20653b0a2020202020202020202020202020627265616b4d08023b0a202020202020202020202020636173652031363338363a0a2020202020202020202020202020775b315d203d20653b0a2020202020202020202020202020627265616b3b0a202020202020202020202020636173652031363338373a0a20202020202020202020202020206d5b315d203d20653b0a2020202020202020202020202020627265616b3b0a202020202020202020202020636173652031363338383a0a2020202020202020202020202020775b325d203d20653b0a2020202020202020202020202020627265616b3b0a202020202020202020202020636173652031363338393a0a20202020202020202020202020206d5b325d203d20653b0a2020202020202020202020202020627265616b3b0a202020202020202020202020636173652031363339303a0a2020202020202020202020202020775b335d203d20653b0a2020202020202020202020202020627265616b3b0a202020202020202020202020636173652031363339313a0a20202020202020202020202020206d5b335d203d20653b0a2020202020202020202020202020627265616b3b0a202020202020202020202020636173652031363339323a0a20202020202020202020202020204d203d20653b0a202020202020202020207d0a20202020202020207d0a202020202020202066756e6374696f6e207128742c206529207b0a202020202020202020204d08025f5b745d203d20285f5b745d202b2031292026203235353b0a20202020202020202020696620285f5b745d203d3d203020262620545b745d203d3d203029207b0a202020202020202020202020545b745d203d20653b0a202020202020202020207d0a20202020202020207d0a202020202020202066756e6374696f6e204b287429207b0a2020202020202020202069662028545b745d203e203029207b0a202020202020202020202020545b745d2d2d3b0a20202020202020202020202072657475726e20545b745d203d3d20303b0a202020202020202020207d20656c7365207b0a20202020202020202020202072657475726e20303b0a202020202020202020207d0a20202020202020207d0a202020202020202066756e6374696f6e2024287429207b0a202020202020202020205f5b745d203d20323535205e20775b745d3b0a20202020202020202020545b745d203d20303b0a20202020202020207d0a202020202020202066756e6374696f6e207474287429207b0a20202020202020202020696620283132382026206d5b745d207c7c20495b785d29207b0a2020202020202020202020206966202833322026206d5b745d29207b0a2020202020202020202020202020765b745d205e3d20313b0a2020202020202020202020207d20656c7365206966202836342026206d5b745d29207b0a20202020202020202020202020204d0802765b745d203d204c5b535d3b0a2020202020202020202020207d20656c7365207b0a2020202020202020202020202020765b745d203d203132382026204d203f20435b445d203a20455b4e5d3b0a2020202020202020202020207d0a202020202020202020207d0a20202020202020207d0a202020202020202066756e6374696f6e206574287429207b0a2020202020202020202079203d20303b0a20202020202020202020696620287429207b0a202020202020202020202020666f7220287661722065203d20303b2065203c20323034383b20652b2b29207b0a2020202020202020202020202020625b655d203d20303b0a2020202020202020202020207d0a202020202020202020207d0a20202020202020207d0a202020202020202066756e6374696f6e206f7428742c206529207b0a2020202020202020202061745b745d203d20653b0a2020202020202020202063742e53657452656728742c2065293b0a20202020202020207d0a202020202020202066756e6374696f6e2043742829207b0a20202020202020202020666f7220287661722074203d20303b2074203c203133313037323b20742b2b29207b0a20202020202020202020202075745b745d203d20303b0a202020202020202020207d0a202020202020202020206474203d2066616c73653b0a202020202020202020206c74203d2066616c73653b0a2020202020204d0802202020206874203d2066616c73653b0a202020202020202020204174203d2066616c73653b0a202020202020202020207074203d2066616c73653b0a202020202020202020206274203d2066616c73653b0a202020202020202020206774203d2066616c73653b0a202020202020202020207974203d2066616c73653b0a202020202020202020207774203d20303b0a202020202020202020206d74203d20303b0a202020202020202020204d74203d20303b0a202020202020202020207674203d20303b0a202020202020202020204c74203d20303b0a202020202020202020204974203d20303b0a202020202020202020202866756e6374696f6e202829207b0a20202020202020202020202063742e526573657428293b0a202020202020202020202020666f7220286c65742074203d20303b2074203c2061742e6c656e6774683b20742b2b29207b0a202020202020202020202020202061745b745d203d20303b0a2020202020202020202020207d0a202020202020202020207d2928293b0a202020202020202020204574203d20303b0a202020202020202020205374203d20323b0a202020202020202020207874203d202d313b0a20202020202020207d0a202020202020202066756e6374696f6e2044742829207b0a2020202020202020202072657475726e206c743b0a20202020202020207d0a202020202020202066756e634d080274696f6e204e742829207b0a2020202020202020202072657475726e2064743b0a20202020202020207d0a202020202020202066756e6374696f6e205f742829207b0a2020202020202020202072657475726e2068743b0a20202020202020207d0a202020202020202066756e6374696f6e205474287429207b0a202020202020202020207974203d20743b0a20202020202020207d0a202020202020202066756e6374696f6e206a7428742c206529207b0a20202020202020202020746869732e746f706963203d20743b0a20202020202020202020696620286529207b0a202020202020202020202020746869732e6f6e4576656e74203d20653b0a202020202020202020207d0a20202020202020207d0a202020202020202066756e6374696f6e205274287429207b0a2020202020202020202069662028427429207b0a2020202020202020202020207661722065203d206e65772042742e4c697374656e657228293b0a202020202020202020202020652e676574546f706963203d2066756e6374696f6e202829207b0a202020202020202020202020202072657475726e20742e676574546f70696328293b0a2020202020202020202020207d3b0a202020202020202020202020652e6f6e4576656e74203d2066756e6374696f6e20286529207b0a2020202020202020202020202020742e6f6e4576656e742865293b0a202020204d080220202020202020207d3b0a20202020202020202020202042742e6164644c697374656e65722865293b0a202020202020202020207d20656c7365207b0a202020202020202020202020766172206e203d20742e676574546f70696328293b0a2020202020202020202020207661722072203d206b745b6e5d3b0a20202020202020202020202069662028217229207b0a202020202020202020202020202072203d205b5d3b0a20202020202020202020202020206b745b6e5d203d20723b0a2020202020202020202020207d0a202020202020202020202020722e707573682874293b0a202020202020202020207d0a20202020202020207d0a202020202020202066756e6374696f6e20507428742c206529207b0a2020202020202020202069662028427429207b0a20202020202020202020202042742e666972654576656e7428742c2065293b0a202020202020202020207d20656c7365207b0a202020202020202020202020766172206e203d206b745b745d3b0a202020202020202020202020696620286e29207b0a2020202020202020202020202020666f7220287661722072203d20303b2072203c206e2e6c656e6774683b20722b2b29207b0a202020202020202020202020202020206e5b725d2e6f6e4576656e742865293b0a20202020202020202020202020207d0a2020202020202020202020207d0a2020202020202020204d0802207d0a20202020202020207d0a202020202020202066756e6374696f6e204f74287429207b0a20202020202020202020666f722028766172206520696e2028284274203d2074292c206b742929207b0a202020202020202020202020766172206e203d206b745b655d3b0a202020202020202020202020666f7220287661722072203d20303b2072203c206e2e6c656e6774683b20722b2b29207b0a20202020202020202020202020205274286e5b725d293b0a2020202020202020202020207d0a202020202020202020207d0a20202020202020207d0a202020202020202066756e6374696f6e205874287429207b0a202020202020202020205174203d20743b0a20202020202020207d0a202020202020202066756e6374696f6e207174287429207b0a202020202020202020204874203d20743b0a2020202020202020202046745b3634325d203d202d323120262046745b3634325d2026203235353b0a2020202020202020202046745b3634325d203d203235352026202846745b3634325d207c20283230202620287e46745b3634335d207c2048742929293b0a20202020202020207d0a202020202020202066756e6374696f6e204b742829207b0a2020202020202020202072657475726e2057743b0a20202020202020207d0a202020202020202066756e6374696f6e2024742829207b0a2020202020202020202072657475726e4d0802205a743b0a20202020202020207d0a202020202020202066756e6374696f6e207065287429207b0a202020202020202020206c655b745d2b2b3b0a20202020202020202020696620286c655b745d203d3d20333129207b0a2020202020202020202020206c655b745d203d20303b0a202020202020202020207d0a20202020202020202020696620280a202020202020202020202020283220262073655b745d29203d3d2030207c7c0a20202020202020202020202028283120262073655b745d29203d3d20302026262063655b6c655b745d5d29207c7c0a20202020202020202020202028283120262073655b745d29203d3d2031202626206e655b6c655b745d5d290a2020202020202020202029207b0a202020202020202020202020696620283420262073655b745d29207b0a202020202020202020202020202069655b745d203d2069655b745d203f2030203a2075655b745d3b0a2020202020202020202020207d20656c736520696620283820262073655b745d29207b0a20202020202020202020202020206966202873655b745d203d3d203829207b0a2020202020202020202020202020202068655b745d2b2b3b0a202020202020202020202020202020206966202868655b745d203d3d2035313129207b0a20202020202020202020202020202020202068655b745d203d20303b0a202020202020202020202020202020207d4d08020a2020202020202020202020202020202069655b745d203d2072655b68655b745d5d203f2075655b745d203a20303b0a20202020202020202020202020207d20656c7365207b0a2020202020202020202020202020202069655b745d203d206e655b6c655b745d5d203f2075655b745d203a20303b0a20202020202020202020202020207d0a2020202020202020202020207d20656c7365207b0a202020202020202020202020202064655b745d2b2b3b0a20202020202020202020202020206966202864655b745d203d3d20313529207b0a2020202020202020202020202020202064655b745d203d20303b0a20202020202020202020202020207d0a202020202020202020202020202069655b745d203d2065655b64655b745d5d203f2075655b745d203a20303b0a2020202020202020202020207d0a202020202020202020207d0a20202020202020207d0a202020202020202066756e6374696f6e206265287429207b0a202020202020202020204165203d20303b0a20202020202020202020696620287429207b0a202020202020202020202020666f7220287661722065203d20303b2065203c20323034383b20652b2b29207b0a202020202020202020202020202074655b655d203d20303b0a2020202020202020202020207d0a202020202020202020207d0a20202020202020207d0a202020202020202066756e6374696f6e204d080255652829207b0a20202020202020202020666f7220287661722074203d20303b2074203c2036353533363b20742b2b29207b0a2020202020202020202020204e655b745d203d20303b0a20202020202020202020202054655b745d203d20303b0a2020202020202020202020205f655b745d203d20313b0a202020202020202020207d0a20202020202020202020666f72202874203d20303b2074203c2031363338343b20742b2b29207b0a2020202020202020202020205f655b745d203d20303b0a202020202020202020207d0a202020202020202020207a65203d2066616c73653b0a20202020202020207d0a202020202020202066756e6374696f6e205a65287429207b0a2020202020202020202076617220653b0a20202020202020202020696620280a20202020202020202020202046652026260a202020202020202020202020282874203e3d20313133362026262074203c203131353229207c7c0a2020202020202020202020202020284c6528292026262074203e3d20313130342026262074203c203131333629207c7c0a202020202020202020202020202028496528292026262074203e3d2031363338342026262074203c20333237363829207c7c0a202020202020202020202020202028436528292026262074203e3d20313132302026262074203c3d203131323129290a2020202020202020202029207b0a202020204d0802202020202020202072657475726e2045652874293b0a202020202020202020207d0a20202020202020202020696620280a2020202020202020202020202152652026260a2020202020202020202020206b652026260a202020202020202020202020282821426520262620216a652026262074203e3d2031363338342026262074203c3d20313633393929207c7c0a2020202020202020202020202020286a652026262074203e3d20323034382026262074203c203230383029207c7c0a20202020202020202020202020202842652026262074203e3d20313130342026262074203c203131333629290a2020202020202020202029207b0a20202020202020202020202072657475726e207965286a65203f2074202d2032303438202b203136333834203a204265203f2074202d2031313034202b203136333834203a2074293b0a202020202020202020207d0a202020202020202020206966202874203e3d2033322026262074203c3d203633202626207420213d20343029207b0a20202020202020202020202072657475726e20303b0a202020202020202020207d0a2020202020202020202073776974636820287429207b0a20202020202020202020202063617365203634343a0a20202020202020202020202063617365203634363a0a20202020202020202020202020204e655b3634355d20263d203132373b0a202020202020204d08022020202020202072657475726e204e655b3634345d3b0a20202020202020202020202063617365203634353a0a20202020202020202020202063617365203634373a0a202020202020202020202020202065203d204e655b3634355d3b0a20202020202020202020202020204e655b3634355d20263d203132373b0a202020202020202020202020202072657475726e20653b0a20202020202020202020202064656661756c743a0a202020202020202020202020202069662028576529207b0a20202020202020202020202020202020696620284f652026262074203e3d2031363338342026262074203c3d20333237363729207b0a20202020202020202020202020202020202072657475726e2054655b745d3b0a202020202020202020202020202020207d0a20202020202020202020202020202020696620284765203d3d3d20686e207c7c204765203d3d3d20796e29207b0a2020202020202020202020202020202020206966202874203e3d204b7228292026262074203c3d207463282929207b0a202020202020202020202020202020202020202072657475726e2054655b745d3b0a2020202020202020202020202020202020207d0a202020202020202020202020202020207d20656c7365207b0a202020202020202020202020202020202020696620284765203d3d20676e2026262074203e3d2031363338342026262074204d08023c3d20333237363729207b0a202020202020202020202020202020202020202072657475726e2054655b745d3b0a2020202020202020202020202020202020207d0a2020202020202020202020202020202020206966202874203e3d2033323736382026262074203c3d20343931353129207b0a202020202020202020202020202020202020202072657475726e2054655b745d3b0a2020202020202020202020202020202020207d0a2020202020202020202020202020202020206966202874203e3d2034393135322026262074203c3d20363535333529207b0a202020202020202020202020202020202020202072657475726e2054655b745d3b0a2020202020202020202020202020202020207d0a202020202020202020202020202020207d0a20202020202020202020202020207d0a202020202020202020202020202072657475726e204e655b745d3b0a202020202020202020207d0a20202020202020207d0a202020202020202066756e6374696f6e205165287429207b0a202020202020202020207661722065203d205a652874293b0a202020202020202020206966202865203c203029207b0a202020202020202020202020636f6e736f6c652e6572726f7228274c657373207468616e207a65726f206d656d6f727920726561643a202564202564272c20742c2065293b0a202020202020202020207d0a202020202020204d080220202072657475726e20653b0a20202020202020207d0a202020202020202066756e6374696f6e204865287429207b0a202020202020202020205765203d20747275653b0a202020202020202020207661722065203d205a652874293b0a202020202020202020205765203d2066616c73653b0a202020202020202020206966202865203c203029207b0a202020202020202020202020636f6e736f6c652e6572726f7228274c657373207468616e207a65726f206d656d6f727920726561643a202564202564272c20742c2065293b0a202020202020202020207d0a2020202020202020202072657475726e20653b0a20202020202020207d0a202020202020202066756e6374696f6e20596528742c206529207b0a202020202020202020206966202865203c203029207b0a202020202020202020202020636f6e736f6c652e6572726f7228274c657373207468616e207a65726f206d656d6f72792077726974653a202564202564272c20742c2065293b0a202020202020202020207d0a20202020202020202020696620280a20202020202020202020202046652026260a202020202020202020202020282874203e3d20313133362026262074203c203131353229207c7c0a2020202020202020202020202020284c6528292026262074203e3d20313130342026262074203c203131333629207c7c0a202020202020202020202020204d08022028496528292026262074203e3d2031363338342026262074203c20333237363829207c7c0a202020202020202020202020202028436528292026262074203e3d20313132302026262074203c3d203131323129290a2020202020202020202029207b0a202020202020202020202020536528742c2065293b0a202020202020202020207d20656c736520696620280a2020202020202020202020206b652026260a202020202020202020202020282821426520262620216a652026262074203e3d2031363338342026262074203c3d20313633393929207c7c0a2020202020202020202020202020286a652026262074203e3d20323034382026262074203c203230383029207c7c0a20202020202020202020202020202842652026262074203e3d20313130342026262074203c203131333629290a2020202020202020202029207b0a2020202020202020202020206765286a65203f2074202d2032303438202b203136333834203a204265203f2074202d2031313034202b203136333834203a20742c2065293b0a202020202020202020207d20656c73652069662028215f655b745d207c7c20284f652026262074203e3d2034393135322026262074203c3d2036353533352929207b0a2020202020202020202020206966202878652026262074203e3d20343039362026262074203c3d203631343320262620446529207b0a202020204d08022020202020202020202044652e777269746528742c2065293b0a2020202020202020202020207d0a2020202020202020202020206966202874203e3d20302026262074203c3d20313529207b0a202020202020202020202020202069662028217a6529207b0a2020202020202020202020202020202069662028312026206529207b0a2020202020202020202020202020202020207a65203d20747275653b0a202020202020202020202020202020202020636f6e736f6c652e6c6f6728274c6f636b3a2027202b2065293b0a2020202020202020202020202020202020204e655b34305d203d203132383b0a202020202020202020202020202020207d0a20202020202020202020202020202020696620283420262065202626206e72282929207b0a20202020202020202020202020202020202069662028215872282929207b0a2020202020202020202020202020202020202020246e28293b0a2020202020202020202020202020202020207d0a202020202020202020202020202020207d0a20202020202020202020202020207d0a2020202020202020202020207d20656c7365207b0a202020202020202020202020202073776974636820287429207b0a20202020202020202020202020202020636173652033363a0a2020202020202020202020202020202020204e655b33365d203d20313b0a20202020202020202020202020204d080220202020627265616b3b0a202020202020202020202020202020206361736520383a0a202020202020202020202020202020206361736520393a0a20202020202020202020202020202020636173652031303a0a20202020202020202020202020202020636173652031313a0a20202020202020202020202020202020636173652031323a0a20202020202020202020202020202020636173652031333a0a20202020202020202020202020202020636173652034303a0a202020202020202020202020202020202020627265616b3b0a20202020202020202020202020202020636173652032313a0a20202020202020202020202020202020202077652832312c2065293b0a202020202020202020202020202020202020627265616b3b0a20202020202020202020202020202020636173652032323a0a20202020202020202020202020202020202077652832322c2065293b0a202020202020202020202020202020202020627265616b3b0a20202020202020202020202020202020636173652032333a0a20202020202020202020202020202020202077652832332c2065293b0a202020202020202020202020202020202020627265616b3b0a20202020202020202020202020202020636173652032343a0a20202020202020202020202020202020202077652832342c2065293b0a20202020202020202020202020202020202062724d080265616b3b0a20202020202020202020202020202020636173652032353a0a20202020202020202020202020202020202077652832352c2065293b0a202020202020202020202020202020202020627265616b3b0a20202020202020202020202020202020636173652032363a0a20202020202020202020202020202020202077652832362c2065293b0a202020202020202020202020202020202020627265616b3b0a2020202020202020202020202020202063617365203634323a0a2020202020202020202020202020202020206d652865293b0a202020202020202020202020202020202020627265616b3b0a2020202020202020202020202020202063617365203634303a0a2020202020202020202020202020202020204d652865293b0a202020202020202020202020202020202020627265616b3b0a2020202020202020202020202020202063617365203636303a0a2020202020202020202020202020202063617365203636383a0a2020202020202020202020202020202020207665283636302c2065293b0a202020202020202020202020202020202020627265616b3b0a2020202020202020202020202020202063617365203636313a0a2020202020202020202020202020202063617365203636393a0a2020202020202020202020202020202020207665283636312c2065293b0a202020202020202020202020202020204d08022020627265616b3b0a2020202020202020202020202020202063617365203636323a0a2020202020202020202020202020202063617365203637303a0a2020202020202020202020202020202020207665283636322c2065293b0a202020202020202020202020202020202020627265616b3b0a2020202020202020202020202020202063617365203636333a0a2020202020202020202020202020202063617365203637313a0a2020202020202020202020202020202020207665283636332c2065293b0a202020202020202020202020202020202020627265616b3b0a2020202020202020202020202020202064656661756c743a0a202020202020202020202020202020202020696620284f652026262074203e3d2034393135322026262074203c3d20363535333529207b0a202020202020202020202020202020202020202054655b74202d203439313532202b2031363338345d203d20653b0a2020202020202020202020202020202020207d20656c7365207b0a20202020202020202020202020202020202020204e655b745d203d20653b0a20202020202020202020202020202020202020206966202874203e3d20383235362026262074203c3d203834343729207b0a202020202020202020202020202020202020202020204e655b74202d20383139325d203d20653b0a20202020202020202020202020202020202020207d4d080220656c7365206966202874203e3d20383531322026262074203c3d203837303329207b0a202020202020202020202020202020202020202020204e655b74202d20383139325d203d20653b0a20202020202020202020202020202020202020207d20656c7365206966202874203e3d2036342026262074203c3d2032353529207b0a202020202020202020202020202020202020202020204e655b74202b20383139325d203d20653b0a20202020202020202020202020202020202020207d20656c7365206966202874203e3d203332302026262074203c3d2035313129207b0a202020202020202020202020202020202020202020204e655b74202b20383139325d203d20653b0a20202020202020202020202020202020202020207d20656c7365206966202874203e3d2031303234302026262074203c3d20313232383729207b0a202020202020202020202020202020202020202020204e655b74202d20323034385d203d20653b0a20202020202020202020202020202020202020207d20656c7365206966202874203e3d20383139322026262074203c3d20313032333929207b0a202020202020202020202020202020202020202020204e655b74202b20323034385d203d20653b0a20202020202020202020202020202020202020207d0a2020202020202020202020202020202020207d0a20202020202020202020202020207d0a4d08022020202020202020202020207d0a202020202020202020207d20656c7365207b0a202020202020202020202020747228742c2065293b0a202020202020202020207d0a20202020202020207d0a202020202020202066756e6374696f6e20566528742c20652c206e2c207229207b0a202020202020202020207661722063203d2066616c73653b0a202020202020202020207661722069203d20303b0a2020202020202020202069662028506529207b0a2020202020202020202020207661722061203d20437228293b0a2020202020202020202020206966202861203d3d3d20686e207c7c2061203d3d3d20796e29207b0a202020202020202020202020202069203d20653b0a202020202020202020202020202071722874293b0a202020202020202020202020202024722874202b2065202d2031293b0a202020202020202020202020202063203d20747275653b0a2020202020202020202020207d20656c736520696620280a202020202020202020202020202074203d3d3d203332373638207c7c0a202020202020202020202020202074203d3d3d203439313532207c7c0a20202020202020202020202020202861203d3d3d20676e2026262074203d3d3d203136333834290a20202020202020202020202029207b0a202020202020202020202020202069203d203133313037323b0a202020202020202020202020202063203d204d0802747275653b0a2020202020202020202020207d0a202020202020202020207d0a202020202020202020206966202874202b2065203c3d203635353336202626206e20213d206e756c6c29207b0a202020202020202020202020666f722028766172206f203d20303b206f203c20653b206f2b2b29207b0a20202020202020202020202020204e655b74202b206f5d203d206e5b6f202b20725d3b0a20202020202020202020202020205f655b74202b206f5d203d20313b0a2020202020202020202020202020696620286329207b0a2020202020202020202020202020202054655b74202b206f5d203d206e5b6f202b2072202b20695d3b0a20202020202020202020202020207d0a2020202020202020202020207d0a202020202020202020207d0a20202020202020207d0a202020202020202066756e6374696f6e204a6528742c206529207b0a202020202020202020206966202874202b2065203c3d20363535333629207b0a202020202020202020202020666f722028766172206e203d20303b206e203c20653b206e2b2b29207b0a20202020202020202020202020204e655b74202b206e5d203d20303b0a20202020202020202020202020205f655b74202b206e5d203d20303b0a2020202020202020202020202020696620284f652026262074203d3d3d20313633383429207b0a2020202020202020202020202020202054655b744d0802202b206e5d203d20303b0a20202020202020202020202020207d0a2020202020202020202020207d0a202020202020202020207d0a20202020202020207d0a202020202020202066756e6374696f6e20586528742c206529207b0a20202020202020202020766172206e203d20745b305d3b0a202020202020202020207661722072203d20745b315d3b0a202020202020202020207661722063203d20745b325d3b0a202020202020202020207661722069203d20745b335d3b0a202020202020202020206e203d204b65286e2c20722c20632c20692c20655b305d2c20372c202d363830383736393336293b0a2020202020202020202069203d204b6528692c206e2c20722c20632c20655b315d2c2031322c202d333839353634353836293b0a2020202020202020202063203d204b6528632c20692c206e2c20722c20655b325d2c2031372c20363036313035383139293b0a2020202020202020202072203d204b6528722c20632c20692c206e2c20655b335d2c2032322c202d31303434353235333330293b0a202020202020202020206e203d204b65286e2c20722c20632c20692c20655b345d2c20372c202d313736343138383937293b0a2020202020202020202069203d204b6528692c206e2c20722c20632c20655b355d2c2031322c2031323030303830343236293b0a2020202020202020202063203d204b6528632c20692c204d08026e2c20722c20655b365d2c2031372c202d31343733323331333431293b0a2020202020202020202072203d204b6528722c20632c20692c206e2c20655b375d2c2032322c202d3435373035393833293b0a202020202020202020206e203d204b65286e2c20722c20632c20692c20655b385d2c20372c2031373730303335343136293b0a2020202020202020202069203d204b6528692c206e2c20722c20632c20655b395d2c2031322c202d31393538343134343137293b0a2020202020202020202063203d204b6528632c20692c206e2c20722c20655b31305d2c2031372c202d3432303633293b0a2020202020202020202072203d204b6528722c20632c20692c206e2c20655b31315d2c2032322c202d31393930343034313632293b0a202020202020202020206e203d204b65286e2c20722c20632c20692c20655b31325d2c20372c2031383034363033363832293b0a2020202020202020202069203d204b6528692c206e2c20722c20632c20655b31335d2c2031322c202d3430333431313031293b0a2020202020202020202063203d204b6528632c20692c206e2c20722c20655b31345d2c2031372c202d31353032303032323930293b0a202020202020202020206e203d202465280a2020202020202020202020206e2c0a2020202020202020202020202872203d204b6528722c20632c20692c206e2c20655b31355d2c2032324d08022c203132333635333533323929292c0a202020202020202020202020632c0a202020202020202020202020692c0a202020202020202020202020655b315d2c0a202020202020202020202020352c0a2020202020202020202020202d3136353739363531300a20202020202020202020293b0a2020202020202020202069203d20246528692c206e2c20722c20632c20655b365d2c20392c202d31303639353031363332293b0a2020202020202020202063203d20246528632c20692c206e2c20722c20655b31315d2c2031342c20363433373137373133293b0a2020202020202020202072203d20246528722c20632c20692c206e2c20655b305d2c2032302c202d333733383937333032293b0a202020202020202020206e203d202465286e2c20722c20632c20692c20655b355d2c20352c202d373031353538363931293b0a2020202020202020202069203d20246528692c206e2c20722c20632c20655b31305d2c20392c203338303136303833293b0a2020202020202020202063203d20246528632c20692c206e2c20722c20655b31355d2c2031342c202d363630343738333335293b0a2020202020202020202072203d20246528722c20632c20692c206e2c20655b345d2c2032302c202d343035353337383438293b0a202020202020202020206e203d202465286e2c20722c20632c20692c20655b395d2c20352c2035363834344d080236343338293b0a2020202020202020202069203d20246528692c206e2c20722c20632c20655b31345d2c20392c202d31303139383033363930293b0a2020202020202020202063203d20246528632c20692c206e2c20722c20655b335d2c2031342c202d313837333633393631293b0a2020202020202020202072203d20246528722c20632c20692c206e2c20655b385d2c2032302c2031313633353331353031293b0a202020202020202020206e203d202465286e2c20722c20632c20692c20655b31335d2c20352c202d31343434363831343637293b0a2020202020202020202069203d20246528692c206e2c20722c20632c20655b325d2c20392c202d3531343033373834293b0a2020202020202020202063203d20246528632c20692c206e2c20722c20655b375d2c2031342c2031373335333238343733293b0a202020202020202020206e203d20746e280a2020202020202020202020206e2c0a2020202020202020202020202872203d20246528722c20632c20692c206e2c20655b31325d2c2032302c202d3139323636303737333429292c0a202020202020202020202020632c0a202020202020202020202020692c0a202020202020202020202020655b355d2c0a202020202020202020202020342c0a2020202020202020202020202d3337383535380a20202020202020202020293b0a2020202020202020202069203d204d0802746e28692c206e2c20722c20632c20655b385d2c2031312c202d32303232353734343633293b0a2020202020202020202063203d20746e28632c20692c206e2c20722c20655b31315d2c2031362c2031383339303330353632293b0a2020202020202020202072203d20746e28722c20632c20692c206e2c20655b31345d2c2032332c202d3335333039353536293b0a202020202020202020206e203d20746e286e2c20722c20632c20692c20655b315d2c20342c202d31353330393932303630293b0a2020202020202020202069203d20746e28692c206e2c20722c20632c20655b345d2c2031312c2031323732383933333533293b0a2020202020202020202063203d20746e28632c20692c206e2c20722c20655b375d2c2031362c202d313535343937363332293b0a2020202020202020202072203d20746e28722c20632c20692c206e2c20655b31305d2c2032332c202d31303934373330363430293b0a202020202020202020206e203d20746e286e2c20722c20632c20692c20655b31335d2c20342c20363831323739313734293b0a2020202020202020202069203d20746e28692c206e2c20722c20632c20655b305d2c2031312c202d333538353337323232293b0a2020202020202020202063203d20746e28632c20692c206e2c20722c20655b335d2c2031362c202d373232353231393739293b0a20202020202020202020724d0802203d20746e28722c20632c20692c206e2c20655b365d2c2032332c203736303239313839293b0a202020202020202020206e203d20746e286e2c20722c20632c20692c20655b395d2c20342c202d363430333634343837293b0a2020202020202020202069203d20746e28692c206e2c20722c20632c20655b31325d2c2031312c202d343231383135383335293b0a2020202020202020202063203d20746e28632c20692c206e2c20722c20655b31355d2c2031362c20353330373432353230293b0a202020202020202020206e203d20656e280a2020202020202020202020206e2c0a2020202020202020202020202872203d20746e28722c20632c20692c206e2c20655b325d2c2032332c202d39393533333836353129292c0a202020202020202020202020632c0a202020202020202020202020692c0a202020202020202020202020655b305d2c0a202020202020202020202020362c0a2020202020202020202020202d3139383633303834340a20202020202020202020293b0a2020202020202020202069203d20656e28692c206e2c20722c20632c20655b375d2c2031302c2031313236383931343135293b0a2020202020202020202063203d20656e28632c20692c206e2c20722c20655b31345d2c2031352c202d31343136333534393035293b0a2020202020202020202072203d20656e28722c20632c20692c206e2c20655b4d0802355d2c2032312c202d3537343334303535293b0a202020202020202020206e203d20656e286e2c20722c20632c20692c20655b31325d2c20362c2031373030343835353731293b0a2020202020202020202069203d20656e28692c206e2c20722c20632c20655b335d2c2031302c202d31383934393836363036293b0a2020202020202020202063203d20656e28632c20692c206e2c20722c20655b31305d2c2031352c202d31303531353233293b0a2020202020202020202072203d20656e28722c20632c20692c206e2c20655b315d2c2032312c202d32303534393232373939293b0a202020202020202020206e203d20656e286e2c20722c20632c20692c20655b385d2c20362c2031383733333133333539293b0a2020202020202020202069203d20656e28692c206e2c20722c20632c20655b31355d2c2031302c202d3330363131373434293b0a2020202020202020202063203d20656e28632c20692c206e2c20722c20655b365d2c2031352c202d31353630313938333830293b0a2020202020202020202072203d20656e28722c20632c20692c206e2c20655b31335d2c2032312c2031333039313531363439293b0a202020202020202020206e203d20656e286e2c20722c20632c20692c20655b345d2c20362c202d313435353233303730293b0a2020202020202020202069203d20656e28692c206e2c20722c20632c20655b4d080231315d2c2031302c202d31313230323130333739293b0a2020202020202020202063203d20656e28632c20692c206e2c20722c20655b325d2c2031352c20373138373837323539293b0a2020202020202020202072203d20656e28722c20632c20692c206e2c20655b395d2c2032312c202d333433343835353531293b0a20202020202020202020745b305d203d206f6e286e2c20745b305d293b0a20202020202020202020745b315d203d206f6e28722c20745b315d293b0a20202020202020202020745b325d203d206f6e28632c20745b325d293b0a20202020202020202020745b335d203d206f6e28692c20745b335d293b0a20202020202020207d0a202020202020202066756e6374696f6e20716528742c20652c206e2c20722c20632c206929207b0a2020202020202020202065203d206f6e286f6e28652c2074292c206f6e28722c206929293b0a2020202020202020202072657475726e206f6e282865203c3c206329207c202865203e3e3e20283332202d206329292c206e293b0a20202020202020207d0a202020202020202066756e6374696f6e204b6528742c20652c206e2c20722c20632c20692c206129207b0a2020202020202020202072657475726e2071652828652026206e29207c20287e6520262072292c20742c20652c20632c20692c2061293b0a20202020202020207d0a202020202020202066756e6374694d08026f6e20246528742c20652c206e2c20722c20632c20692c206129207b0a2020202020202020202072657475726e2071652828652026207229207c20286e2026207e72292c20742c20652c20632c20692c2061293b0a20202020202020207d0a202020202020202066756e6374696f6e20746e28742c20652c206e2c20722c20632c20692c206129207b0a2020202020202020202072657475726e2071652865205e206e205e20722c20742c20652c20632c20692c2061293b0a20202020202020207d0a202020202020202066756e6374696f6e20656e28742c20652c206e2c20722c20632c20692c206129207b0a2020202020202020202072657475726e207165286e205e202865207c207e72292c20742c20652c20632c20692c2061293b0a20202020202020207d0a202020202020202066756e6374696f6e206e6e287429207b0a20202020202020202020766172206e203d205b5d3b0a20202020202020202020666f7220287661722065203d20303b2065203c2036343b2065202b3d203429207b0a2020202020202020202020206e5b65203e3e20325d203d0a2020202020202020202020202020742e63686172436f64654174286529202b0a202020202020202020202020202028742e63686172436f646541742865202b203129203c3c203829202b0a202020202020202020202020202028742e63686172436f646541742865202b204d08023229203c3c20313629202b0a202020202020202020202020202028742e63686172436f646541742865202b203329203c3c203234293b0a202020202020202020207d0a2020202020202020202072657475726e206e3b0a20202020202020207d0a202020202020202066756e6374696f6e20636e287429207b0a202020202020202020207661722065203d2027273b0a20202020202020202020666f722028766172206e203d20303b206e203c20343b206e2b2b29207b0a20202020202020202020202065202b3d20726e5b2874203e3e202838202a206e202b2034292920262031355d202b20726e5b2874203e3e202838202a206e292920262031355d3b0a202020202020202020207d0a2020202020202020202072657475726e20653b0a20202020202020207d0a202020202020202066756e6374696f6e20616e287429207b0a2020202020202020202072657475726e202866756e6374696f6e20287429207b0a202020202020202020202020666f7220287661722065203d20303b2065203c20742e6c656e6774683b20652b2b29207b0a2020202020202020202020202020745b655d203d20636e28745b655d293b0a2020202020202020202020207d0a20202020202020202020202072657475726e20742e6a6f696e282727293b0a202020202020202020207d29280a2020202020202020202020202866756e6374696f6e202874294d0802207b0a2020202020202020202020202020766172206e203d20742e6c656e6774683b0a20202020202020202020202020207661722072203d205b313733323538343139332c202d3237313733333837392c202d313733323538343139342c203237313733333837385d3b0a2020202020202020202020202020666f7220287661722065203d2036343b2065203c3d20742e6c656e6774683b2065202b3d20363429207b0a20202020202020202020202020202020586528722c206e6e28742e737562737472696e672865202d2036342c20652929293b0a20202020202020202020202020207d0a202020202020202020202020202074203d20742e737562737472696e672865202d203634293b0a20202020202020202020202020207661722063203d205b302c20302c20302c20302c20302c20302c20302c20302c20302c20302c20302c20302c20302c20302c20302c20305d3b0a2020202020202020202020202020666f72202865203d20303b2065203c20742e6c656e6774683b20652b2b29207b0a20202020202020202020202020202020635b65203e3e20325d207c3d20742e63686172436f64654174286529203c3c20286520252034203c3c2033293b0a20202020202020202020202020207d0a2020202020202020202020202020635b65203e3e20325d207c3d20313238203c3c20286520252034203c3c2033293b0a20202020204d08022020202020202020206966202865203e20353529207b0a20202020202020202020202020202020586528722c2063293b0a20202020202020202020202020202020666f72202865203d20303b2065203c2031363b20652b2b29207b0a202020202020202020202020202020202020635b655d203d20303b0a202020202020202020202020202020207d0a20202020202020202020202020207d0a2020202020202020202020202020635b31345d203d2038202a206e3b0a2020202020202020202020202020586528722c2063293b0a202020202020202020202020202072657475726e20723b0a2020202020202020202020207d292874290a20202020202020202020293b0a20202020202020207d0a202020202020202066756e6374696f6e206f6e28742c206529207b0a2020202020202020202072657475726e202874202b206529202620343239343936373239353b0a20202020202020207d0a202020202020202066756e6374696f6e20566e287429207b0a2020202020202020202069662028284d6e203d3d20416e207c7c204d6e203d3d20676e207c7c204d6e203d3d20626e2920262620486e203c3d20363535333629207b0a20202020202020202020202072657475726e2033202620743b0a202020202020202020207d20656c7365207b0a20202020202020202020202072657475726e20743b0a202020202020202020207d0a4d080220202020202020207d0a202020202020202066756e6374696f6e204a6e287429207b0a2020202020202020202072657475726e203136333834202a20566e2874293b0a20202020202020207d0a202020202020202066756e6374696f6e20586e28742c206529207b0a20202020202020202020766172206e203d20486e3b0a2020202020202020202069662028506e29207b0a2020202020202020202020206e203e3e3d20313b0a202020202020202020207d0a202020202020202020207661722072203d204a6e2865293b0a202020202020202020206966202872203c206e29207b0a202020202020202020202020736e28742c2031363338342c20516e2c2072293b0a202020202020202020202020456e203d20653b0a202020202020202020207d0a20202020202020207d0a202020202020202066756e6374696f6e20716e287429207b0a2020202020202020202069662028506e29207b0a20202020202020202020202074203e3e3d20313b0a202020202020202020207d0a202020202020202020206966202874203c3d20363535333629207b0a2020202020202020202020207661722065203d204d6e3b0a2020202020202020202020204d6e203d20686e3b0a202020202020202020202020636f6e736f6c652e6c6f6728275570646174653a206e6f206269747320616e64203c3d2036346b3a2025642c202564272c20652c204d4d08026e293b0a202020202020202020207d20656c7365206966202874203d3d2031343734353629207b0a20202020202020202020202065203d204d6e3b0a2020202020202020202020204d6e203d20706e3b0a202020202020202020202020636f6e736f6c652e6c6f6728275570646174653a2073697a65203d3d203134346b3a2025642c202564272c20652c204d6e293b0a202020202020202020207d20656c7365206966202874203d3d2031333130373229207b0a20202020202020202020202065203d204d6e3b0a2020202020202020202020204d6e203d20676e3b0a202020202020202020202020636f6e736f6c652e6c6f6728275570646174653a2073697a65203d3d203132386b3a2025642c202564272c20652c204d6e293b0a202020202020202020207d20656c7365207b0a20202020202020202020202065203d204d6e3b0a2020202020202020202020204d6e203d20416e3b0a202020202020202020202020636f6e736f6c652e6c6f6728275570646174653a2064656661756c7420666f72203e2036346b3a2025642c202564272c20652c204d6e293b0a202020202020202020207d0a20202020202020207d0a202020202020202066756e6374696f6e204b6e28742c206529207b0a202020202020202020206966202865203c3d2031323829207b0a202020202020202020202020636f6e736f6c652e6c6f672827436172744d08027269646765206461746120697320696e76616c69642e27293b0a20202020202020202020202072657475726e2066616c73653b0a202020202020202020207d0a20202020202020202020636f6e736f6c652e6c6f67282761637475616c206361727472696467655f73697a653a202564272c2065293b0a20202020202020202020727228293b0a20202020202020202020766172206e203d206e657720417272617928293b0a20202020202020202020666f7220287661722072203d20303b2072203c203132383b20722b2b29207b0a2020202020202020202020206e5b725d203d20745b725d3b0a202020202020202020207d0a20202020202020202020696620280a2020202020202020202020202866756e6374696f6e20287429207b0a20202020202020202020202020207661722065203d205b273e272c20273e275d3b0a2020202020202020202020202020666f722028766172206e203d20303b206e203c20323b206e2b2b29207b0a2020202020202020202020202020202069662028655b6e5d20213d20537472696e672e66726f6d43686172436f646528745b6e202b20315d2929207b0a20202020202020202020202020202020202072657475726e2066616c73653b0a202020202020202020202020202020207d0a20202020202020202020202020207d0a202020202020202020202020202072657475726e20747275653b0a4d08022020202020202020202020207d29286e290a2020202020202020202029207b0a202020202020202020202020636f6e736f6c652e6c6f67282250726f73797374656d20646f65736e277420737570706f727420434332206861636b732e22293b0a20202020202020202020202072657475726e2066616c73653b0a202020202020202020207d0a202020202020202020207661722063203d20303b0a20202020202020202020696620280a202020202020202020202020212866756e6374696f6e20287429207b0a20202020202020202020202020207661722065203d205b2741272c202754272c202741272c202752272c202749272c202737272c202738272c202730272c202730275d3b0a2020202020202020202020202020666f722028766172206e203d20303b206e203c20393b206e2b2b29207b0a2020202020202020202020202020202069662028655b6e5d20213d20537472696e672e66726f6d43686172436f646528745b6e202b20315d2929207b0a20202020202020202020202020202020202072657475726e2066616c73653b0a202020202020202020202020202020207d0a20202020202020202020202020207d0a202020202020202020202020202072657475726e20747275653b0a2020202020202020202020207d29286e290a2020202020202020202029207b0a202020202020202020202020636f6e736f6c652e6c4d08026f672827556e61626c6520746f2066696e64206361727472696467652068656164657227293b0a202020202020202020202020486e203d20653b0a202020202020202020202020716e2865293b0a202020202020202020207d20656c7365207b0a202020202020202020202020636f6e736f6c652e6c6f672827466f756e64206361727472696467652068656164657227293b0a2020202020202020202020202866756e6374696f6e20287429207b0a2020202020202020202020202020636f6e736f6c652e6c6f67282752656164696e67206361727472696467652068656164657227293b0a20202020202020202020202020207661722065203d206e657720417272617928293b0a2020202020202020202020202020666f722028766172206e203d20303b206e203c2033323b206e2b2b29207b0a20202020202020202020202020202020655b6e5d203d20745b6e202b2031375d3b0a20202020202020202020202020207d0a2020202020202020202020202020776e203d2027273b0a2020202020202020202020202020666f7220287661722072203d20303b2072203c20652e6c656e6774683b20722b2b29207b0a20202020202020202020202020202020776e202b3d20537472696e672e66726f6d43686172436f646528655b725d293b0a20202020202020202020202020207d0a2020202020202020202020202020636f6e736f6c4d0802652e6c6f6728275469746c653a202573272c20776e293b0a2020202020202020202020202020486e203d20745b34395d203c3c2032343b0a2020202020202020202020202020486e207c3d20745b35305d203c3c2031363b0a2020202020202020202020202020486e207c3d20745b35315d203c3c20383b0a2020202020202020202020202020486e207c3d20745b35325d3b0a20202020202020202020202020204d6e203d0a20202020202020202020202020202020745b35335d203d3d20300a2020202020202020202020202020202020203f20486e203e203133313037320a20202020202020202020202020202020202020203f20706e0a20202020202020202020202020202020202020203a20745b35345d203d3d2032207c7c20745b35345d203d3d20330a20202020202020202020202020202020202020203f20416e0a20202020202020202020202020202020202020203a20745b35345d203d3d2034207c7c20745b35345d203d3d2035207c7c20745b35345d203d3d2036207c7c20745b35345d203d3d20370a20202020202020202020202020202020202020203f20626e0a20202020202020202020202020202020202020203a20745b35345d203d3d2038207c7c20745b35345d203d3d2039207c7c20745b35345d203d3d203130207c7c20745b35345d203d3d2031310a20202020202020202020202020202020202020204d08023f20676e0a20202020202020202020202020202020202020203a20686e0a2020202020202020202020202020202020203a20745b35335d203d3d20320a2020202020202020202020202020202020203f20350a2020202020202020202020202020202020203a20745b35335d203d3d20310a2020202020202020202020202020202020203f20360a2020202020202020202020202020202020203a20686e3b0a20202020202020202020202020204c6e203d2021212831202620745b35345d293b0a2020202020202020202020202020496e203d202121283634202620745b35345d293b0a2020202020202020202020202020576e203d20212128313238202620745b35335d293b0a202020202020202020202020202069662028496e207c7c20576e29207b0a202020202020202020202020202020204c6e203d20747275653b0a20202020202020202020202020207d0a2020202020202020202020202020436e5b305d203d20745b35355d3b0a2020202020202020202020202020436e5b315d203d20745b35365d3b0a2020202020202020202020202020766e203d2031202620745b35375d3b0a2020202020202020202020202020536e203d20303b0a20202020202020202020202020205f6e203d2021212831202620745b36335d29207c7c202838202620745b35335d29203d3d20383b0a2020202020202020202020202020526e203d4d08022033202620745b35385d3b0a202020202020202020202020202069662028212128506e203d202121283332202620745b35335d29292026262028486e203d3d3d203938333034207c7c20486e203d3d3d203130363439362929207b0a202020202020202020202020202020207a6e203d20747275653b0a20202020202020202020202020207d0a2020202020202020202020202020476e203d202121283634202620745b35335d293b0a20202020202020202020202020207661722063203d20745b35345d3b0a20202020202020202020202020207661722069203d20745b35335d3b0a2020202020202020202020202020696620282831302026206329203d3d20313029207b0a202020202020202020202020202020207661722061203d204d6e3b0a202020202020202020202020202020204d6e203d20706e3b0a20202020202020202020202020202020636f6e736f6c652e6c6f6728275570646174653a202830783130292062697431202620626974333a2025642c202564272c20612c204d6e293b0a20202020202020202020202020207d20656c736520696620282831382026206329203d3d20313829207b0a202020202020202020202020202020207661722061203d204d6e3b0a202020202020202020202020202020204d6e203d20676e3b0a20202020202020202020202020202020636f6e736f6c652e6c6f672827557064614d080274653a202830783132292062697431202620626974343a2025642c202564272c20612c204d6e293b0a20202020202020202020202020207d20656c7365206966202828362026206329203d3d203629207b0a2020202020202020202020202020202061203d204d6e3b0a202020202020202020202020202020204d6e203d20626e3b0a20202020202020202020202020202020636f6e736f6c652e6c6f6728275570646174653a202830783036292062697431202620626974323a2025642c202564272c20612c204d6e293b0a20202020202020202020202020207d20656c7365206966202828322026206329203d3d203229207b0a2020202020202020202020202020202061203d204d6e3b0a202020202020202020202020202020204d6e203d20416e3b0a20202020202020202020202020202020636f6e736f6c652e6c6f6728275570646174653a2028307830312920626974313a2025642c202564272c20612c204d6e293b0a20202020202020202020202020207d20656c73652069662028486e203c3d2036353533362026262028342026206329203d3d203429207b0a2020202020202020202020202020202061203d204d6e3b0a202020202020202020202020202020204d6e203d20796e3b0a20202020202020202020202020202020636f6e736f6c652e6c6f6728275570646174653a2028307830342920626974323a2025642c4d0802202564272c20612c204d6e293b0a20202020202020202020202020207d20656c7365207b0a20202020202020202020202020202020716e28486e293b0a20202020202020202020202020207d0a202020202020202020202020202069662028506e29207b0a20202020202020202020202020202020696620284d6e203d3d3d20686e207c7c204d6e203d3d3d20796e29207b0a202020202020202020202020202020202020696620284d6e203d3d3d20686e20262620476e29207b0a202020202020202020202020202020202020202061203d204d6e3b0a20202020202020202020202020202020202020204d6e203d20796e3b0a2020202020202020202020202020202020202020636f6e736f6c652e6c6f67280a20202020202020202020202020202020202020202020274e6f726d616c206361727420776974682068616c742062617365642072616d2c20737769746368696e6720747970653a2025642c202564272c0a20202020202020202020202020202020202020202020612c0a202020202020202020202020202020202020202020204d6e0a2020202020202020202020202020202020202020293b0a2020202020202020202020202020202020207d0a202020202020202020202020202020207d20656c736520696620280a2020202020202020202020202020202020202861203d204d6e2920213d3d20284d6e203d20476e204d08023f20626e203a202831362026206329203d3d203136203f20676e203a20416e290a2020202020202020202020202020202029207b0a202020202020202020202020202020202020636f6e736f6c652e6c6f67280a20202020202020202020202020202020202020202742616e6b2073776974636865642062616e6b736574732c20737769746368696e6720747970653a2025642c202564272c0a2020202020202020202020202020202020202020612c0a20202020202020202020202020202020202020204d6e0a202020202020202020202020202020202020293b0a202020202020202020202020202020207d0a20202020202020202020202020207d0a2020202020202020202020202020636f6e736f6c652e6c6f67282748656164657220696e666f3a27293b0a202020202020202020202020202069662028312026206329207b0a20202020202020202020202020202020636f6e736f6c652e6c6f6728272020626974303a20706f6b657920617420243430303027293b0a20202020202020202020202020207d0a202020202020202020202020202069662028322026206329207b0a20202020202020202020202020202020636f6e736f6c652e6c6f6728272020626974313a20737570657267616d652062616e6b20737769746368656427293b0a20202020202020202020202020207d0a20202020202020202020202020206966204d080228342026206329207b0a20202020202020202020202020202020636f6e736f6c652e6c6f6728272020626974323a20737570657267616d652072616d20617420243430303027293b0a20202020202020202020202020207d0a202020202020202020202020202069662028382026206329207b0a20202020202020202020202020202020636f6e736f6c652e6c6f6728272020626974333a20726f6d20617420243430303027293b0a20202020202020202020202020207d0a20202020202020202020202020206966202831362026206329207b0a20202020202020202020202020202020636f6e736f6c652e6c6f6728272020626974343a2062616e6b203620617420243430303027293b0a20202020202020202020202020207d0a20202020202020202020202020206966202833322026206329207b0a20202020202020202020202020202020636f6e736f6c652e6c6f6728272020626974353a20737570657267616d652062616e6b65642072616d27293b0a20202020202020202020202020207d0a20202020202020202020202020206966202836342026206329207b0a20202020202020202020202020202020636f6e736f6c652e6c6f6728272020626974363a20706f6b6579206174202434353027293b0a20202020202020202020202020207d0a2020202020202020202020202020696620283132382026206329207b0a2020204d080220202020202020202020202020636f6e736f6c652e6c6f6728272020626974373a206d6972726f722072616d20617420243430303027293b0a20202020202020202020202020207d0a202020202020202020202020202069662028312026206929207b0a20202020202020202020202020202020636f6e736f6c652e6c6f6728272020626974383a2061637469766973696f6e2062616e6b696e6727293b0a20202020202020202020202020207d0a202020202020202020202020202069662028322026206929207b0a20202020202020202020202020202020636f6e736f6c652e6c6f6728272020626974393a206162736f6c7574652062616e6b696e6727293b0a20202020202020202020202020207d0a202020202020202020202020202069662028342026206929207b0a20202020202020202020202020202020636f6e736f6c652e6c6f672827202062697431303a20706f6b6579206174202434343027293b0a20202020202020202020202020207d0a202020202020202020202020202069662028382026206929207b0a20202020202020202020202020202020636f6e736f6c652e6c6f672827202062697431313a20796d3231353120617420243436302f2434363127293b0a20202020202020202020202020207d0a20202020202020202020202020206966202831362026206929207b0a2020202020202020202020202020204d080220636f6e736f6c652e6c6f672827202062697431323a20736f7570657227293b0a20202020202020202020202020207d0a20202020202020202020202020206966202833322026206929207b0a20202020202020202020202020202020636f6e736f6c652e6c6f672827202062697431333a2062616e6b7365747327293b0a20202020202020202020202020207d0a20202020202020202020202020206966202836342026206929207b0a20202020202020202020202020202020636f6e736f6c652e6c6f672827202062697431343a2068616c742062616e6b65642072616d27293b0a20202020202020202020202020207d0a2020202020202020202020202020696620283132382026206929207b0a20202020202020202020202020202020636f6e736f6c652e6c6f672827202062697431353a20706f6b65794038303027293b0a20202020202020202020202020207d0a2020202020202020202020202020636f6e736f6c652e6c6f6728272020786d3a202573272c205f6e203f20273127203a20273027293b0a2020202020202020202020202020636f6e736f6c652e6c6f672827202062616e6b736574733a202573272c20506e203f20273127203a20273027293b0a2020202020202020202020202020636f6e736f6c652e6c6f6728272020706f6b65793a202573272c204c6e203f20273127203a20273027293b0a2020202020204d08022020202020202020636f6e736f6c652e6c6f6728272020706f6b65793435303a202573272c20496e203f20273127203a20273027293b0a2020202020202020202020202020636f6e736f6c652e6c6f6728272020706f6b65793830303a202573272c20576e203f20273127203a20273027293b0a2020202020202020202020202020636f6e736f6c652e6c6f6728272020706f6b6579207772697465206f6e6c793a202573272c207a6e203f20273127203a20273027293b0a2020202020202020202020202020636f6e736f6c652e6c6f672827202068616c742062616e6b65642072616d3a202573272c20476e203f20273127203a20273027293b0a2020202020202020202020202020636f6e736f6c652e6c6f6728272020747620747970653a202573272c20766e203f202750414c27203a20274e54534327293b0a2020202020202020202020202020636f6e736f6c652e6c6f67280a2020202020202020202020202020202027202053617665206465766963653a205b25645d25732573272c0a20202020202020202020202020202020745b35385d2c0a2020202020202020202020202020202032202620745b35385d203f202720536176654b65792f4174617269566f7827203a2027272c0a2020202020202020202020202020202031202620745b35385d203f20272048534327203a2027270a2020202020202020202020202020294d08023b0a2020202020202020202020202020636f6e736f6c652e6c6f6728272020636f6e74726f6c6c6572313a202564272c20436e5b305d293b0a2020202020202020202020202020636f6e736f6c652e6c6f6728272020636f6e74726f6c6c6572323a202564272c20436e5b315d293b0a2020202020202020202020202020636f6e736f6c652e6c6f67282720206361727472696467655f747970652035333a202564272c20745b35335d293b0a2020202020202020202020202020636f6e736f6c652e6c6f67282720206361727472696467655f747970652035343a202564272c20745b35345d293b0a2020202020202020202020202020636f6e736f6c652e6c6f67282720206361727472696467655f73697a653a202564272c20486e293b0a2020202020202020202020202020636f6e736f6c652e6c6f6728276361727472696467655f74797065202866726f6d20686561646572293a202564272c204d6e293b0a2020202020202020202020207d29286e293b0a20202020202020202020202063203d203132383b0a20202020202020202020202069662028486e20213d202865202d3d203132382929207b0a2020202020202020202020202020636f6e736f6c652e6c6f67280a2020202020202020202020202020202027212121204341525452494447452053495a4520494e2048454144455220444f4553204e4f54204d41544348204d0802212121203a202564202564272c0a20202020202020202020202020202020486e2c0a20202020202020202020202020202020650a2020202020202020202020202020293b0a2020202020202020202020202020696620286520252031303234203d3d203029207b0a20202020202020202020202020202020636f6e736f6c652e6c6f67280a2020202020202020202020202020202020202721212120524f4d2073697a6520697320316b206d756c7469706c652c207573696e6720524f4d2073697a6520212121203a202564272c0a202020202020202020202020202020202020650a20202020202020202020202020202020293b0a20202020202020202020202020202020486e203d20653b0a20202020202020202020202020207d20656c7365207b0a20202020202020202020202020202020636f6e736f6c652e6c6f67280a2020202020202020202020202020202020202721212120524f4d2073697a65206973206e6f7420316b206d756c7469706c652c207573696e67206865616465722073697a6520212121203a202564272c0a202020202020202020202020202020202020486e0a20202020202020202020202020202020293b0a20202020202020202020202020207d0a2020202020202020202020207d0a202020202020202020207d0a20202020202020202020636f6e736f6c652e6c6f6728276361727472696467655f74794d080270653a202564272c204d6e293b0a20202020202020202020636f6e736f6c652e6c6f6728276361727472696467655f73697a653a202564272c20486e293b0a20202020202020202020516e203d206e657720417272617928486e293b0a202020202020202020207661722069203d2027273b0a20202020202020202020666f72202872203d20303b2072203c20486e3b20722b2b29207b0a202020202020202020202020516e5b725d203d20745b72202b20635d3b0a20202020202020202020202069202b3d20537472696e672e66726f6d43686172436f646528516e5b725d293b0a202020202020202020207d0a202020202020202020206d6e203d20616e2869293b0a20202020202020202020636f6e736f6c652e6c6f6728276361727472696467655f6469676573743a202573272c206d6e293b0a20202020202020202020696620286d6e203d3d3d202739313034316161646431373030613761343037366634303035663263333632662729207b0a202020202020202020202020636f6e736f6c652e6c6f6728275061746368696e6720646961676e6f73746963206361727472696467652e2e2e27293b0a2020202020202020202020207661722061203d205b3232332c203233305d3b0a202020202020202020202020666f7220286c65742074203d20303b2074203c20612e6c656e6774683b20742b2b29207b0a202020202020204d080220202020202020516e5b3236333438202d2063202b20745d203d20615b745d3b0a2020202020202020202020207d0a202020202020202020207d0a2020202020202020202072657475726e20747275653b0a20202020202020207d0a202020202020202066756e6374696f6e20246e2829207b0a20202020202020202020596e203d20747275653b0a202020202020202020207661722074203d20486e3b0a20202020202020202020737769746368202828506e202626202874203e3e3d2031292c204d6e2929207b0a2020202020202020202020206361736520686e3a0a2020202020202020202020202020736e283635353336202d20742c20742c20516e2c2030293b0a2020202020202020202020202020627265616b3b0a2020202020202020202020206361736520796e3a0a2020202020202020202020202020736e283635353336202d20742c20742c20516e2c2030293b0a2020202020202020202020202020666e2831363338342c203136333834293b0a2020202020202020202020202020627265616b3b0a2020202020202020202020206361736520416e3a0a2020202020202020202020202020696620282865203d2074202d20313633383429203c207429207b0a20202020202020202020202020202020736e2834393135322c2031363338342c20516e2c2065293b0a2020202020202020202020202020202065722830294d08023b0a20202020202020202020202020207d0a2020202020202020202020202020627265616b3b0a2020202020202020202020206361736520706e3a0a2020202020202020202020202020696620282865203d2074202d20313633383429203c207429207b0a20202020202020202020202020202020736e2834393135322c2031363338342c20516e2c2065293b0a20202020202020202020202020202020736e2831363338342c2031363338342c20516e2c204a6e283029293b0a2020202020202020202020202020202065722830293b0a20202020202020202020202020207d0a2020202020202020202020202020627265616b3b0a2020202020202020202020206361736520626e3a0a2020202020202020202020202020696620282865203d2074202d20313633383429203c207429207b0a20202020202020202020202020202020736e2834393135322c2031363338342c20516e2c2065293b0a20202020202020202020202020202020666e2831363338342c203136333834293b0a2020202020202020202020202020202065722830293b0a20202020202020202020202020207d0a2020202020202020202020202020627265616b3b0a2020202020202020202020206361736520676e3a0a202020202020202020202020202076617220653b0a2020202020202020202020202020696620282865203d2074202d20313633383429204d08023c2074202626204a6e283629203c207429207b0a20202020202020202020202020202020736e2834393135322c2031363338342c20516e2c2065293b0a20202020202020202020202020202020736e2831363338342c2031363338342c20516e2c204a6e283629293b0a2020202020202020202020202020202065722830293b0a20202020202020202020202020207d0a2020202020202020202020202020627265616b3b0a2020202020202020202020206361736520353a0a2020202020202020202020202020736e2831363338342c2031363338342c20516e2c2030293b0a2020202020202020202020202020736e2833323736382c2033323736382c20516e2c204a6e283229293b0a2020202020202020202020202020627265616b3b0a2020202020202020202020206361736520363a0a202020202020202020202020202069662028313232383830203c207429207b0a20202020202020202020202020202020736e2834303936302c2031363338342c20516e2c2030293b0a20202020202020202020202020202020736e2831363338342c20383139322c20516e2c20313036343936293b0a20202020202020202020202020202020736e2832343537362c20383139322c20516e2c203938333034293b0a20202020202020202020202020202020736e2833323736382c20383139322c20516e2c20313232383830293b0a202020204d0802202020202020202020202020736e2835373334342c20383139322c20516e2c20313134363838293b0a20202020202020202020202020207d0a202020202020202020207d0a20202020202020207d0a202020202020202066756e6374696f6e20747228742c206529207b0a20202020202020202020766172206e203d20486e3b0a20202020202020202020737769746368202828506e20262620286e203e3e3d2031292c204d6e2929207b0a2020202020202020202020206361736520416e3a0a2020202020202020202020206361736520626e3a0a2020202020202020202020206361736520676e3a0a20202020202020202020202020207661722072203d206e202f2031363338343b0a20202020202020202020202020206966202874203e3d2033323736382026262074203c20343931353220262620566e286529203c207229207b0a2020202020202020202020202020202065722865293b0a20202020202020202020202020207d0a2020202020202020202020202020627265616b3b0a2020202020202020202020206361736520706e3a0a202020202020202020202020202072203d206e202f2031363338343b0a20202020202020202020202020206966202874203e3d2033323736382026262074203c20343931353220262620566e286529203c207229207b0a2020202020202020202020202020202065722865202b2031293b4d08020a20202020202020202020202020207d0a2020202020202020202020202020627265616b3b0a2020202020202020202020206361736520353a0a20202020202020202020202020206966202874203d3d203332373638202626202865203d3d2031207c7c2065203d3d20322929207b0a2020202020202020202020202020202065722865202d2031293b0a20202020202020202020202020207d0a2020202020202020202020202020627265616b3b0a2020202020202020202020206361736520363a0a20202020202020202020202020206966202874203e3d20363534303829207b0a202020202020202020202020202020206572283720262074293b0a20202020202020202020202020207d0a202020202020202020207d0a20202020202020207d0a202020202020202066756e6374696f6e206572287429207b0a2020202020202020202073776974636820284d6e29207b0a2020202020202020202020206361736520416e3a0a2020202020202020202020206361736520626e3a0a2020202020202020202020206361736520676e3a0a2020202020202020202020206361736520706e3a0a2020202020202020202020202020586e2833323736382c2074293b0a2020202020202020202020202020627265616b3b0a2020202020202020202020206361736520353a0a2020202020202020202020202020586e2831363338342c20744d0802293b0a2020202020202020202020202020627265616b3b0a2020202020202020202020206361736520363a0a2020202020202020202020202020586e2834303936302c2074293b0a202020202020202020207d0a20202020202020207d0a202020202020202066756e6374696f6e206e722829207b0a2020202020202020202072657475726e20516e20213d206e756c6c3b0a20202020202020207d0a202020202020202066756e6374696f6e2072722829207b0a20202020202020202020596e203d2066616c73653b0a202020202020202020205a6e203d2066616c73653b0a2020202020202020202069662028516e20213d206e756c6c29207b0a202020202020202020202020486e203d20303b0a202020202020202020202020516e203d206e756c6c3b0a202020202020202020202020776e203d2027273b0a2020202020202020202020204d6e203d20303b0a202020202020202020202020766e203d20303b0a2020202020202020202020204c6e203d20303b0a202020202020202020202020496e203d20303b0a202020202020202020202020576e203d20303b0a2020202020202020202020205f6e203d2066616c73653b0a202020202020202020202020436e203d205b312c20315d3b0a202020202020202020202020456e203d20303b0a202020202020202020202020536e203d20303b0a202020202020202020202020786e4d0802203d20303b0a202020202020202020202020446e203d20303b0a202020202020202020202020546e203d2032383b0a2020202020202020202020204e6e203d2066616c73653b0a2020202020202020202020206b6e203d20313b0a202020202020202020202020426e203d20303b0a2020202020202020202020206a6e203d2066616c73653b0a202020202020202020202020526e203d2066616c73653b0a202020202020202020202020506e203d2066616c73653b0a2020202020202020202020207a6e203d2066616c73653b0a202020202020202020202020476e203d2066616c73653b0a202020202020202020207d0a20202020202020207d0a202020202020202066756e6374696f6e206372287429207b0a202020202020202020206966202821526e207c7c20766e20213d206c6e29207b0a202020202020202020202020636f6e736f6c652e6c6f67280a2020202020202020202020202020526e0a202020202020202020202020202020203f20274e6f74206c6f6164696e6720686967682073636f7265206361727472696467652c2050414c20726567696f6e2e270a202020202020202020202020202020203a2027486967682073636f7265206361727472696467652069732064697361626c6564202876696120646220616e64206361727420686561646572292e270a202020202020202020202020293b0a202020202020204d08022020202020742866616c7365293b0a20202020202020202020202072657475726e3b0a202020202020202020207d0a202020202020202020207661722065203d20646e2e676574526f6d28293b0a202020202020202020206966202865203d3d206e756c6c29207b0a202020202020202020202020636f6e736f6c652e6c6f672827556e61626c6520746f206c6f6361746520686967682073636f7265206361727472696467652e27293b0a202020202020202020202020742866616c7365293b0a20202020202020202020202072657475726e3b0a202020202020202020207d0a20202020202020202020636f6e736f6c652e6c6f672827466f756e6420686967682073636f7265206361727472696467652e27293b0a2020202020202020202069662028616e28652920213d202763386137333238386162393732323663353236303232303461623839343238362729207b0a202020202020202020202020636f6e736f6c652e6c6f672827486967682073636f726520636172747269646765206861736820697320696e76616c69642e27293b0a202020202020202020202020742866616c7365293b0a20202020202020202020202072657475726e3b0a202020202020202020207d0a20202020202020202020646e2e6c6f61645372616d2866756e6374696f6e20286e29207b0a202020202020202020202020696620286e29207b0a204d080220202020202020202020202020666f7220287661722072203d20303b2072203c206e2e6c656e6774682026262072203c20323034383b20722b2b29207b0a20202020202020202020202020202020756e2834303936202b20722c206e5b725d293b0a20202020202020202020202020207d0a2020202020202020202020202020666f72202872203d20303b2072203c20652e6c656e6774683b20722b2b29207b0a20202020202020202020202020202020756e283132323838202b20722c20652e63686172436f64654174287229293b0a20202020202020202020202020207d0a20202020202020202020202020205a6e203d20747275653b0a2020202020202020202020207d0a202020202020202020202020636f6e736f6c652e6c6f672827486967682073636f72652063617274206c6f616465643a2027202b205a6e293b0a20202020202020202020202074285a6e293b0a202020202020202020207d293b0a20202020202020207d0a202020202020202066756e6374696f6e2069722829207b0a2020202020202020202072657475726e20766e3b0a20202020202020207d0a202020202020202066756e6374696f6e2061722829207b0a2020202020202020202072657475726e204c6e3b0a20202020202020207d0a202020202020202066756e6374696f6e206f722829207b0a2020202020202020202072657475726e20496e3b0a4d080220202020202020207d0a202020202020202066756e6374696f6e2073722829207b0a2020202020202020202072657475726e20576e3b0a20202020202020207d0a202020202020202066756e6374696f6e2066722829207b0a2020202020202020202072657475726e207a6e3b0a20202020202020207d0a202020202020202066756e6374696f6e2075722829207b0a2020202020202020202072657475726e205f6e3b0a20202020202020207d0a202020202020202066756e6374696f6e2064722829207b0a2020202020202020202069662028556e203d3d203229207b0a20202020202020202020202072657475726e205f6e3b0a202020202020202020207d20656c7365207b0a20202020202020202020202072657475726e20556e3b0a202020202020202020207d0a20202020202020207d0a202020202020202066756e6374696f6e206c722829207b0a2020202020202020202072657475726e20506e3b0a20202020202020207d0a202020202020202066756e6374696f6e2068722829207b0a2020202020202020202072657475726e20476e3b0a20202020202020207d0a202020202020202066756e6374696f6e2041722829207b0a2020202020202020202072657475726e206a6e3b0a20202020202020207d0a202020202020202066756e6374696f6e2070722829207b0a2020202020202020202072657475726e204e6e3b4d08020a20202020202020207d0a202020202020202066756e6374696f6e2062722829207b0a2020202020202020202072657475726e20436e5b305d203d3d20323b0a20202020202020207d0a202020202020202066756e6374696f6e2067722829207b0a2020202020202020202072657475726e20536e3b0a20202020202020207d0a202020202020202066756e6374696f6e2079722829207b0a2020202020202020202072657475726e20546e3b0a20202020202020207d0a202020202020202066756e6374696f6e2077722829207b0a2020202020202020202072657475726e206b6e3b0a20202020202020207d0a202020202020202066756e6374696f6e206d722829207b0a2020202020202020202072657475726e20426e3b0a20202020202020207d0a202020202020202066756e6374696f6e204d722829207b0a2020202020202020202072657475726e206d6e3b0a20202020202020207d0a202020202020202066756e6374696f6e207672287429207b0a20202020202020202020776e203d20743b0a20202020202020207d0a202020202020202066756e6374696f6e204c722829207b0a2020202020202020202072657475726e20776e3b0a20202020202020207d0a202020202020202066756e6374696f6e2049722829207b0a2020202020202020202072657475726e20486e3b0a20202020202020207d0a20202020202020204d080266756e6374696f6e2043722829207b0a2020202020202020202072657475726e204d6e3b0a20202020202020207d0a202020202020202066756e6374696f6e204572287429207b0a202020202020202020204d6e203d20743b0a20202020202020207d0a202020202020202066756e6374696f6e205372287429207b0a202020202020202020204c6e203d20743b0a20202020202020207d0a202020202020202066756e6374696f6e207872287429207b0a20202020202020202020496e203d20743b0a20202020202020207d0a202020202020202066756e6374696f6e204472287429207b0a20202020202020202020436e5b305d203d20743b0a20202020202020207d0a202020202020202066756e6374696f6e204e72287429207b0a20202020202020202020436e5b315d203d20743b0a20202020202020207d0a202020202020202066756e6374696f6e205f722829207b0a2020202020202020202072657475726e20436e5b305d3b0a20202020202020207d0a202020202020202066756e6374696f6e2054722829207b0a2020202020202020202072657475726e20436e5b315d3b0a20202020202020207d0a202020202020202066756e6374696f6e206b72287429207b0a20202020202020202020766e203d20743b0a20202020202020207d0a202020202020202066756e6374696f6e204272287429207b0a20202020202020204d08022020536e203d20743b0a20202020202020207d0a202020202020202066756e6374696f6e206a72287429207b0a202020202020202020205f6e203d20743b0a20202020202020207d0a202020202020202066756e6374696f6e205272287429207b0a20202020202020202020546e203d20743b0a20202020202020207d0a202020202020202066756e6374696f6e205072287429207b0a20202020202020202020786e203d20743b0a20202020202020207d0a202020202020202066756e6374696f6e204f72287429207b0a20202020202020202020446e203d20743b0a20202020202020207d0a202020202020202066756e6374696f6e2046722829207b0a2020202020202020202072657475726e20786e3b0a20202020202020207d0a202020202020202066756e6374696f6e2047722829207b0a2020202020202020202072657475726e20446e3b0a20202020202020207d0a202020202020202066756e6374696f6e207a72287429207b0a202020202020202020204e6e203d20743b0a20202020202020207d0a202020202020202066756e6374696f6e205772287429207b0a202020202020202020206b6e203d20743b0a20202020202020207d0a202020202020202066756e6374696f6e205572287429207b0a20202020202020202020426e203d20743b0a20202020202020207d0a202020202020202066756e6374696f6e205a724d0802287429207b0a202020202020202020206a6e203d20743b0a20202020202020207d0a202020202020202066756e6374696f6e205172287429207b0a20202020202020202020526e203d20743b0a20202020202020207d0a202020202020202066756e6374696f6e2048722829207b0a2020202020202020202072657475726e20526e3b0a20202020202020207d0a202020202020202066756e6374696f6e205972287429207b0a20202020202020202020556e203d20743b0a20202020202020207d0a202020202020202066756e6374696f6e2056722829207b0a2020202020202020202072657475726e20556e3b0a20202020202020207d0a202020202020202066756e6374696f6e204a722829207b0a2020202020202020202072657475726e20323b0a20202020202020207d0a202020202020202066756e6374696f6e2058722829207b0a2020202020202020202072657475726e20596e3b0a20202020202020207d0a202020202020202066756e6374696f6e207172287429207b0a202020202020202020204f6e203d20743b0a20202020202020207d0a202020202020202066756e6374696f6e204b722829207b0a2020202020202020202072657475726e204f6e3b0a20202020202020207d0a202020202020202066756e6374696f6e202472287429207b0a20202020202020202020466e203d20743b0a20202020202020207d0a4d0802202020202020202066756e6374696f6e2074632829207b0a2020202020202020202072657475726e20466e3b0a20202020202020207d0a202020202020202066756e6374696f6e2065632829207b0a2020202020202020202072657475726e20456e3b0a20202020202020207d0a202020202020202066756e6374696f6e205f63287429207b0a20202020202020202020636328287563202b203235362920262036353533352c2074293b0a202020202020202020207563203d20287563202d2031292026203235353b0a20202020202020207d0a202020202020202066756e6374696f6e2054632829207b0a2020202020202020202072657475726e2072632828287563203d20287563202b20312920262032353529202b20323536292026203635353335293b0a20202020202020207d0a202020202020202066756e6374696f6e206b63287429207b0a20202020202020202020696620287429207b0a2020202020202020202020206663203d2066632026207e67632026203235353b0a202020202020202020207d20656c7365207b0a2020202020202020202020206663207c3d2067633b0a202020202020202020207d0a20202020202020202020696620283132382026207429207b0a2020202020202020202020206663207c3d204c633b0a202020202020202020207d20656c7365207b0a2020202020202020202020206663203d204d080266632026207e4c632026203235353b0a202020202020202020207d0a20202020202020207d0a202020202020202066756e6374696f6e206a63287429207b0a20202020202020202020696620287429207b0a20202020202020202020202042632e636f7079286463293b0a20202020202020202020202064632e77506c7573457175616c2868632e676574424c5369676e65642829293b0a2020202020202020202020206966202842632e67657442482829203d3d2064632e6765744248282929207b0a202020202020202020202020202041632b2b3b0a2020202020202020202020207d20656c7365207b0a20202020202020202020202020204163202b3d20323b0a2020202020202020202020207d0a202020202020202020207d0a20202020202020207d0a202020202020202066756e6374696f6e204f63287429207b0a2020202020202020202052632e636f7079286863293b0a2020202020202020202050632e636f7079286863293b0a2020202020202020202052632e774d696e7573457175616c2874293b0a202020202020202020206966202852632e6765744248282920213d2050632e6765744248282929207b0a20202020202020202020202041632b2b3b0a202020202020202020207d0a20202020202020207d0a202020202020202066756e6374696f6e2046632829207b0a2020202020202020202068632e736574424c4d08022872632864632e77506c7573506c7573282929293b0a2020202020202020202068632e73657442482872632864632e77506c7573506c7573282929293b0a20202020202020207d0a202020202020202066756e6374696f6e2047632829207b0a2020202020202020202068632e736574424c2872632864632e77506c7573506c7573282929293b0a2020202020202020202068632e73657442482872632864632e77506c7573506c7573282929293b0a2020202020202020202068632e77506c7573457175616c286f63293b0a20202020202020207d0a202020202020202066756e6374696f6e207a632829207b0a2020202020202020202068632e736574424c2872632864632e77506c7573506c7573282929293b0a2020202020202020202068632e73657442482872632864632e77506c7573506c7573282929293b0a2020202020202020202068632e77506c7573457175616c287363293b0a20202020202020207d0a202020202020202066756e6374696f6e2057632829207b0a2020202020202020202068632e736574572864632e77506c7573506c75732829293b0a20202020202020207d0a202020202020202066756e6374696f6e2055632829207b0a2020202020202020202068632e736574424c2872632864632e77506c7573506c7573282929202b206f63293b0a2020202020202020202068632e73657442482872632868634d08022e676574424c2829202b203129293b0a2020202020202020202068632e736574424c2872632868632e676574424c282929293b0a20202020202020207d0a202020202020202066756e6374696f6e205a632829207b0a2020202020202020202068632e736574424c2872632864632e77506c7573506c7573282929293b0a2020202020202020202068632e73657442482872632868632e676574424c2829202b203129293b0a2020202020202020202068632e736574424c2872632868632e676574424c282929293b0a2020202020202020202068632e77506c7573457175616c287363293b0a20202020202020207d0a202020202020202066756e6374696f6e2051632829207b0a2020202020202020202068632e736574572872632864632e77506c7573506c7573282929293b0a20202020202020207d0a202020202020202066756e6374696f6e2048632829207b0a2020202020202020202068632e736574572872632864632e77506c7573506c7573282929293b0a20202020202020207d0a202020202020202066756e6374696f6e2059632829207b0a2020202020202020202068632e736574572872632864632e77506c7573506c7573282929293b0a2020202020202020202068632e626c506c7573457175616c286f63293b0a20202020202020207d0a202020202020202066756e6374696f6e2056632829207b0a2020202020204d08022020202068632e736574572872632864632e77506c7573506c7573282929293b0a2020202020202020202068632e626c506c7573457175616c287363293b0a20202020202020207d0a202020202020202066756e6374696f6e204a632829207b0a202020202020202020207661722074203d2072632868632e676574572829293b0a20202020202020202020696620286663202620776329207b0a2020202020202020202020207661722065203d2028283135202620616329202b202831352026207429202b202866632026206263292920262036353533353b0a202020202020202020202020766172206e203d2028286163203e3e3e203429202b202874203e3e3e2034292920262036353533353b0a2020202020202020202020206966202865203e203929207b0a202020202020202020202020202065203d202865202b20362920262036353533353b0a20202020202020202020202020206e203d20286e202b20312920262036353533353b0a2020202020202020202020207d0a2020202020202020202020207661722072203d206e6577206e6328293b0a202020202020202020202020722e73657457286163202b2074202b20286663202620626329293b0a20202020202020202020202069662028722e676574424c282929207b0a20202020202020202020202020206663203d2066632026207e67632026203235353b0a202020204d080220202020202020207d20656c7365207b0a20202020202020202020202020206663207c3d2067633b0a2020202020202020202020207d0a2020202020202020202020206966202828382026206e29203d3d203029207b0a20202020202020202020202020206663203d2066632026207e4c632026203235353b0a2020202020202020202020207d20656c7365207b0a20202020202020202020202020206663207c3d204c633b0a2020202020202020202020207d0a202020202020202020202020696620287e286163205e20742920262028286e203c3c203429205e2061632920262031323829207b0a20202020202020202020202020206663207c3d2076633b0a2020202020202020202020207d20656c7365207b0a20202020202020202020202020206663203d2066632026207e76632026203235353b0a2020202020202020202020207d0a202020202020202020202020696620286e203e203929207b0a20202020202020202020202020206e203d20286e202b20362920262036353533353b0a2020202020202020202020207d0a202020202020202020202020696620286e203e20313529207b0a20202020202020202020202020206663207c3d2062633b0a2020202020202020202020207d20656c7365207b0a20202020202020202020202020206663203d2066632026207e62632026203235353b0a2020202020202020202020204d08027d0a2020202020202020202020206163203d2032353520262028286e203c3c203429207c202831352026206529293b0a202020202020202020207d20656c7365207b0a2020202020202020202020207661722063203d206e6577206e6328293b0a202020202020202020202020632e73657457286163202b2074202b20286663202620626329293b0a20202020202020202020202069662028632e6765744248282929207b0a20202020202020202020202020206663207c3d2062633b0a2020202020202020202020207d20656c7365207b0a20202020202020202020202020206663203d2066632026207e62632026203235353b0a2020202020202020202020207d0a202020202020202020202020696620287e286163205e207429202620286163205e20632e676574424c28292920262031323829207b0a20202020202020202020202020206663207c3d2076633b0a2020202020202020202020207d20656c7365207b0a20202020202020202020202020206663203d2066632026207e76632026203235353b0a2020202020202020202020207d0a2020202020202020202020206b6328632e676574424c2829293b0a2020202020202020202020206163203d20632e676574424c28293b0a202020202020202020207d0a20202020202020207d0a202020202020202066756e6374696f6e2058632829207b0a202020202020202020206b4d0802632828616320263d2072632868632e6765745728292929293b0a20202020202020207d0a202020202020202066756e6374696f6e2071632829207b0a202020202020202020207661722074203d2072632868632e676574572829293b0a20202020202020202020696620283132382026207429207b0a2020202020202020202020206663207c3d2062633b0a202020202020202020207d20656c7365207b0a2020202020202020202020206663203d2066632026207e62632026203235353b0a202020202020202020207d0a2020202020202020202074203d202874203c3c2031292026203235353b0a2020202020202020202063632868632e6765745728292c2074293b0a202020202020202020206b632874293b0a20202020202020207d0a202020202020202066756e6374696f6e204b632829207b0a202020202020202020207661722074203d2072632868632e676574572829293b0a202020202020202020206966202874202620616329207b0a2020202020202020202020206663203d2066632026207e67632026203235353b0a202020202020202020207d20656c7365207b0a2020202020202020202020206663207c3d2067633b0a202020202020202020207d0a202020202020202020206663203d20286663203d2066632026207e7663202620323535292026207e4c632026203235353b0a202020202020202020206663207c4d08023d203634202620743b0a202020202020202020206663207c3d20313238202620743b0a20202020202020207d0a202020202020202066756e6374696f6e2024632829207b0a202020202020202020207661722074203d2072632868632e676574572829293b0a20202020202020202020696620286163203e3d207429207b0a2020202020202020202020206663207c3d2062633b0a202020202020202020207d20656c7365207b0a2020202020202020202020206663203d2066632026207e62632026203235353b0a202020202020202020207d0a202020202020202020206b6328286163202d207429202620323535293b0a20202020202020207d0a202020202020202066756e6374696f6e2074692829207b0a202020202020202020207661722074203d2072632868632e676574572829293b0a20202020202020202020696620286f63203e3d207429207b0a2020202020202020202020206663207c3d2062633b0a202020202020202020207d20656c7365207b0a2020202020202020202020206663203d2066632026207e62632026203235353b0a202020202020202020207d0a202020202020202020206b6328286f63202d207429202620323535293b0a20202020202020207d0a202020202020202066756e6374696f6e2065692829207b0a202020202020202020207661722074203d2072632868632e676574572829293b0a20204d08022020202020202020696620287363203e3d207429207b0a2020202020202020202020206663207c3d2062633b0a202020202020202020207d20656c7365207b0a2020202020202020202020206663203d2066632026207e62632026203235353b0a202020202020202020207d0a202020202020202020206b6328287363202d207429202620323535293b0a20202020202020207d0a202020202020202066756e6374696f6e206e692829207b0a202020202020202020207661722074203d2072632868632e676574572829293b0a2020202020202020202074203d202874202d2031292026203235353b0a2020202020202020202063632868632e6765745728292c2074293b0a202020202020202020206b632874293b0a20202020202020207d0a202020202020202066756e6374696f6e2072692829207b0a202020202020202020206b6328286163205e3d2072632868632e6765745728292929293b0a20202020202020207d0a202020202020202066756e6374696f6e2063692829207b0a202020202020202020207661722074203d2072632868632e676574572829293b0a2020202020202020202074203d202874202b2031292026203235353b0a2020202020202020202063632868632e6765745728292c2074293b0a202020202020202020206b632874293b0a20202020202020207d0a202020202020202066756e6374696f6e20694d0802692829207b0a2020202020202020202064632e636f7079286863293b0a20202020202020207d0a202020202020202066756e6374696f6e2061692829207b0a202020202020202020206b6328286163203d2072632868632e6765745728292929293b0a20202020202020207d0a202020202020202066756e6374696f6e206f692829207b0a202020202020202020206b6328286f63203d2072632868632e6765745728292929293b0a20202020202020207d0a202020202020202066756e6374696f6e2073692829207b0a202020202020202020206b6328287363203d2072632868632e6765745728292929293b0a20202020202020207d0a202020202020202066756e6374696f6e2066692829207b0a202020202020202020206663203d2066632026207e62632026203235353b0a202020202020202020206663207c3d203120262061633b0a202020202020202020206b6328286163203d20286163203e3e3e20312920262032353529293b0a20202020202020207d0a202020202020202066756e6374696f6e2075692829207b0a202020202020202020207661722074203d2072632868632e676574572829293b0a202020202020202020206663203d2066632026207e62632026203235353b0a202020202020202020206663207c3d2031202620743b0a2020202020202020202074203d202874203e3e3e2031292026203235353b0a204d080220202020202020202063632868632e6765745728292c2074293b0a202020202020202020206b632874293b0a20202020202020207d0a202020202020202066756e6374696f6e2064692829207b0a202020202020202020206b6328286163207c3d2072632868632e6765745728292929293b0a20202020202020207d0a202020202020202066756e6374696f6e206c692829207b0a202020202020202020205f63286163293b0a20202020202020207d0a202020202020202066756e6374696f6e2068692829207b0a202020202020202020205f6328286663207c3d206d6329293b0a20202020202020207d0a202020202020202066756e6374696f6e2041692829207b0a202020202020202020206b6328286163203d205463282929293b0a20202020202020207d0a202020202020202066756e6374696f6e2070692829207b0a202020202020202020206663203d20546328293b0a20202020202020207d0a202020202020202066756e6374696f6e2062692829207b0a202020202020202020207661722074203d2072632868632e676574572829293b0a202020202020202020207661722065203d2066633b0a20202020202020202020696620283132382026207429207b0a2020202020202020202020206663207c3d2062633b0a202020202020202020207d20656c7365207b0a2020202020202020202020206663203d2066632026204d08027e62632026203235353b0a202020202020202020207d0a2020202020202020202074203d202874203c3c2031292026203235353b0a2020202020202020202074207c3d2031202620653b0a2020202020202020202063632868632e6765745728292c2074293b0a202020202020202020206b632874293b0a20202020202020207d0a202020202020202066756e6374696f6e2067692829207b0a202020202020202020207661722074203d2072632868632e676574572829293b0a202020202020202020207661722065203d2066633b0a202020202020202020206663203d2066632026207e62632026203235353b0a202020202020202020206663207c3d2031202620743b0a2020202020202020202074203d202874203e3e3e2031292026203235353b0a2020202020202020202069662028312026206529207b0a20202020202020202020202074207c3d203132383b0a202020202020202020207d0a2020202020202020202063632868632e6765745728292c2074293b0a202020202020202020206b632874293b0a20202020202020207d0a202020202020202066756e6374696f6e2079692829207b0a202020202020202020207661722074203d2072632868632e676574572829293b0a20202020202020202020696620286663202620776329207b0a2020202020202020202020207661722065203d206e6577206e6328293b0a20204d080220202020202020202020652e73657457286163202d2074202d2021286663202620626329293b0a202020202020202020202020766172206e203d2028283135202620616329202d202831352026207429202d20212866632026206263292920262036353533353b0a2020202020202020202020207661722072203d2028286163203e3e3e203429202d202874203e3e3e2034292920262036353533353b0a202020202020202020202020696620286e203e203929207b0a20202020202020202020202020206e203d20286e202d20362920262036353533353b0a202020202020202020202020202072203d202872202d20312920262036353533353b0a2020202020202020202020207d0a2020202020202020202020206966202872203e203929207b0a202020202020202020202020202072203d202872202d20362920262036353533353b0a2020202020202020202020207d0a2020202020202020202020202863203d206e6577206e632829292e73657457286163202d2074202d2021286663202620626329293b0a20202020202020202020202069662028632e6765744248282929207b0a20202020202020202020202020206663203d2066632026207e62632026203235353b0a2020202020202020202020207d20656c7365207b0a20202020202020202020202020206663207c3d2062633b0a2020202020202020202020207d0a20204d08022020202020202020202069662028286163205e207429202620286163205e20632e676574424c28292920262031323829207b0a20202020202020202020202020206663207c3d2076633b0a2020202020202020202020207d20656c7365207b0a20202020202020202020202020206663203d2066632026207e76632026203235353b0a2020202020202020202020207d0a2020202020202020202020206b6328632e676574424c2829293b0a20202020202020202020202069662028652e676574424c282929207b0a20202020202020202020202020206663203d2066632026207e67632026203235353b0a2020202020202020202020207d20656c7365207b0a20202020202020202020202020206663207c3d2067633b0a2020202020202020202020207d0a2020202020202020202020206163203d20323535202620282872203c3c203429207c202831352026206e29293b0a202020202020202020207d20656c7365207b0a20202020202020202020202076617220633b0a2020202020202020202020202863203d206e6577206e632829292e73657457286163202d2074202d2021286663202620626329293b0a20202020202020202020202069662028632e6765744248282929207b0a20202020202020202020202020206663203d2066632026207e62632026203235353b0a2020202020202020202020207d20656c7365207b0a20204d08022020202020202020202020206663207c3d2062633b0a2020202020202020202020207d0a20202020202020202020202069662028286163205e207429202620286163205e20632e676574424c28292920262031323829207b0a20202020202020202020202020206663207c3d2076633b0a2020202020202020202020207d20656c7365207b0a20202020202020202020202020206663203d2066632026207e76632026203235353b0a2020202020202020202020207d0a2020202020202020202020206b6328632e676574424c2829293b0a2020202020202020202020206163203d20632e676574424c28293b0a202020202020202020207d0a20202020202020207d0a202020202020202066756e6374696f6e2077692829207b0a2020202020202020202063632868632e6765745728292c206163293b0a202020202020202020206966202868632e676574572829203c203029207b0a202020202020202020202020636f6e736f6c652e6572726f72282773616c6c795f5354413a2025642c202564272c2068632e6765745728292c206163293b0a20202020202020202020202048414c54203d20747275653b0a202020202020202020207d0a20202020202020207d0a202020202020202066756e6374696f6e206d692829207b0a2020202020202020202063632868632e6765745728292c206f63293b0a20202020202020207d0a2020204d0802202020202066756e6374696f6e204d692829207b0a2020202020202020202063632868632e6765745728292c207363293b0a20202020202020207d0a202020202020202066756e6374696f6e2076692829207b0a202020202020202020206b6328286f63203d20616329293b0a20202020202020207d0a202020202020202066756e6374696f6e2049692829207b0a2020202020202020202072657475726e2064633b0a20202020202020207d0a202020202020202066756e6374696f6e2043692829207b0a2020202020202020202072657475726e2070633b0a20202020202020207d0a202020202020202066756e6374696f6e20456928742c20652c206e2c207229207b0a20202020202020202020746869732e557064617465203d2066756e6374696f6e2028742c20652c206e2c207229207b0a202020202020202020202020746869732e6c656674203d20743b0a202020202020202020202020746869732e746f70203d20653b0a202020202020202020202020746869732e7269676874203d206e3b0a202020202020202020202020746869732e626f74746f6d203d20723b0a202020202020202020202020746869732e6c656e677468203d20746869732e7269676874202d20746869732e6c656674202b20313b0a202020202020202020202020746869732e686569676874203d20746869732e626f74746f6d202d20746869732e4d0802746f70202b20313b0a202020202020202020202020746869732e61726561203d20746869732e6c656e677468202a20746869732e6865696768743b0a202020202020202020207d3b0a20202020202020202020746869732e436f7079203d2066756e6374696f6e20287429207b0a202020202020202020202020746869732e55706461746528742e6c6566742c20742e746f702c20742e72696768742c20742e626f74746f6d293b0a202020202020202020207d3b0a20202020202020202020746869732e47657441726561203d2066756e6374696f6e202829207b0a20202020202020202020202072657475726e20746869732e617265613b0a202020202020202020207d3b0a20202020202020202020746869732e4765744c656e677468203d2066756e6374696f6e202829207b0a20202020202020202020202072657475726e20746869732e6c656e6774683b0a202020202020202020207d3b0a20202020202020202020746869732e476574486569676874203d2066756e6374696f6e202829207b0a20202020202020202020202072657475726e20746869732e6865696768743b0a202020202020202020207d3b0a20202020202020202020746869732e55706461746528742c20652c206e2c2072293b0a20202020202020207d0a202020202020202066756e6374696f6e204a69287429207b0a20202020202020202020696620284d08024769203c2031363029207b0a202020202020202020202020696620287429207b0a202020202020202020202020202042695b47695d203d207a69207c20743b0a2020202020202020202020207d20656c736520696620283420262053695b36305d29207b0a202020202020202020202020202042695b47695d203d20303b0a2020202020202020202020207d0a202020202020202020207d0a202020202020202020204769203d20284769202b2031292026203235353b0a20202020202020207d0a202020202020202066756e6374696f6e20586928742c206529207b0a20202020202020202020766172206e203d203420262053695b36305d3b0a202020202020202020207661722072203d202831362026207a6929207c2074207c20653b0a2020202020202020202069662028283320262072207c7c206e29202626204769203c2031363029207b0a20202020202020202020202042695b47695d203d20723b0a202020202020202020207d0a202020202020202020204769203d20284769202b2031292026203235353b0a20202020202020207d0a202020202020202066756e6374696f6e2071692829207b0a202020202020202020206966202846692e676574572829203e20333237363729207b0a202020202020202020202020696620285a69202626203430393620262046692e67657457282929207b0a20202020202020202020204d080220202072657475726e20747275653b0a2020202020202020202020207d0a202020202020202020202020696620285569202626203230343820262046692e67657457282929207b0a202020202020202020202020202072657475726e20747275653b0a2020202020202020202020207d0a202020202020202020207d0a2020202020202020202072657475726e2066616c73653b0a20202020202020207d0a202020202020202066756e6374696f6e204b69287429207b0a202020202020202020206966202833202620287420263d203235352929207b0a20202020202020202020202072657475726e2053695b3332202b20745d3b0a202020202020202020207d20656c7365207b0a20202020202020202020202072657475726e2053695b33325d3b0a202020202020202020207d0a20202020202020207d0a202020202020202066756e6374696f6e2024692829207b0a202020202020202020207661722074203d204869203f2053695b46692e6765745728295d203a2078692846692e676574572829293b0a2020202020202020202069662028516929207b0a202020202020202020202020696620287169282929207b0a20202020202020202020202020204769203d20284769202b2032292026203235353b0a2020202020202020202020207d20656c7365207b0a20202020202020202020202020205869283132202620742c2028314d080239322026207429203e3e3e2036293b0a20202020202020202020202020205869282834382026207429203e3e3e20342c2028332026207429203c3c2032293b0a2020202020202020202020207d0a202020202020202020207d20656c736520696620287169282929207b0a2020202020202020202020204769203d20284769202b2034292026203235353b0a202020202020202020207d20656c7365207b0a2020202020202020202020204a6928283139322026207429203e3e3e2036293b0a2020202020202020202020204a69282834382026207429203e3e3e2034293b0a2020202020202020202020204a69282831322026207429203e3e3e2032293b0a2020202020202020202020204a69283320262074293b0a202020202020202020207d0a2020202020202020202046692e77506c7573506c757328293b0a20202020202020207d0a202020202020202066756e6374696f6e20746128742c206529207b0a20202020202020202020666f722028766172206e203d20303b206e203c20383b206e2b2b29207b0a202020202020202020202020745b65202b206e5d203d203135202620745b65202b206e5d3b0a202020202020202020207d0a20202020202020207d0a202020202020202066756e6374696f6e206e612829207b0a2020202020202020202069662028215f6929207b0a2020202020202020202020205f69203d206a735f4d08026765745f626c69745f6164647228293b0a202020202020202020207d0a20202020202020202020666f7220287661722074203d20303b2074203c2037373434303b20742b2b29207b0a2020202020202020202020205f695b745d203d20303b0a202020202020202020207d0a20202020202020202020666f72202874203d20303b2074203c203136303b20742b2b29207b0a20202020202020202020202054695b305d5b745d203d20303b0a20202020202020202020202054695b315d5b745d203d20303b0a202020202020202020207d0a202020202020202020206a69203d20303b0a202020202020202020205269203d2066616c73653b0a2020202020202020202050692e736574572830293b0a202020202020202020204f692e736574572830293b0a2020202020202020202046692e736574572830293b0a202020202020202020204769203d20303b0a202020202020202020207a69203d20303b0a202020202020202020205769203d20303b0a202020202020202020205569203d20303b0a202020202020202020205a69203d20303b0a202020202020202020205169203d20303b0a202020202020202020205969203d2066616c73653b0a20202020202020207d0a202020202020202066756e6374696f6e2072612829207b0a20202020202020202020666f7220287661722074203d20303b2074203c2037373434303b20742b2b4d080229207b0a2020202020202020202020205f695b745d203d20303b0a202020202020202020207d0a20202020202020207d0a202020202020202066756e6374696f6e206961287429207b0a20202020202020202020666f7220287661722065203d20303b2065203c203736383b20652b2b29207b0a20202020202020202020202063615b655d203d20745b655d3b0a202020202020202020207d0a20202020202020207d0a202020202020202066756e6374696f6e206161287429207b0a202020202020202020207661722065203d2061746f6228742e73706c697428272c27295b315d293b0a20202020202020202020766172206e203d206e657720417272617928293b0a20202020202020202020666f7220287661722072203d20303b2072203c20652e6c656e6774683b20722b2b29207b0a2020202020202020202020206e2e7075736828652e63686172436f64654174287229293b0a202020202020202020207d0a2020202020202020202072657475726e206e3b0a20202020202020207d0a202020202020202066756e6374696f6e207661287429207b0a20202020202020202020636f6e736f6c652e6c6f6728275365742073616d706c6520726174653a202564272c2074293b0a2020202020202020202067203d2033313434303b0a20202020202020202020636f6e736f6c652e6c6f67282773657420706f6b65792073616d706c4d08026520726174653a202564272c2067293b0a202020202020202020202866756e6374696f6e20287429207b0a202020202020202020202020636f6e736f6c652e6c6f67282753657420594d2073616d706c6520726174653a2027202b2074293b0a20202020202020202020202063742e5365745261746528333537393534352c2074293b0a202020202020202020207d292874293b0a202020202020202020206761203d20743b0a20202020202020207d0a202020202020202066756e6374696f6e20446128742c20652c206e29207b0a20202020202020202020666f7220287661722072203d20303b2072203c206e3b20722b2b29207b0a20202020202020202020202045615b53612b2b5d203d2065203f2028745b725d202f20323535202b20655b725d202f2031323829202f2032203a20745b725d202f203235353b0a202020202020202020202020696620285361203d3d20313633383429207b0a20202020202020202020202020205361203d20303b0a2020202020202020202020207d0a202020202020202020207d0a20202020202020207d0a202020202020202066756e6374696f6e204e612829207b0a202020202020202020204161203d2044613b0a20202020202020202020696620284961202626202877696e646f772e417564696f436f6e74657874207c7c2077696e646f772e7765626b6974417564696f436f6e746578744d08022929207b0a20202020202020202020202049612e636c6f736528293b0a2020202020202020202020204961203d206e756c6c3b0a2020202020202020202020204361203d206e756c6c3b0a202020202020202020207d0a2020202020202020202069662028214961202626202877696e646f772e417564696f436f6e74657874207c7c2077696e646f772e7765626b6974417564696f436f6e746578742929207b0a202020202020202020202020636f6e736f6c652e6c6f672827696e697420617564696f27293b0a2020202020202020202020207661722074203d204c613b0a202020202020202020202020696620280a2020202020202020202020202020284961203d2077696e646f772e417564696f436f6e746578740a202020202020202020202020202020203f206e65772077696e646f772e417564696f436f6e74657874287b2073616d706c65526174653a2074207d290a202020202020202020202020202020203a206e65772077696e646f772e7765626b6974417564696f436f6e746578742829292e73616d706c65526174650a20202020202020202020202029207b0a202020202020202020202020202074203d2049612e73616d706c65526174653b0a2020202020202020202020207d0a20202020202020202020202076612874293b0a202020202020202020202020284361203d2049612e6372656174655363726970744d080250726f636573736f7228323034382c20302c203129292e6f6e617564696f70726f63657373203d0a202020202020202020202020202066756e6374696f6e20287429207b0a202020202020202020202020202020207661722065203d20742e6f75747075744275666665722e6765744368616e6e656c446174612830293b0a20202020202020202020202020202020766172206e203d20303b0a20202020202020202020202020202020666f7220287661722072203d20652e6c656e6774683b20786120213d205361202626206e203c20723b2029207b0a202020202020202020202020202020202020655b6e2b2b5d203d2045615b78612b2b5d3b0a202020202020202020202020202020202020696620287861203d3d20313633383429207b0a20202020202020202020202020202020202020207861203d20303b0a2020202020202020202020202020202020207d0a202020202020202020202020202020207d0a202020202020202020202020202020207768696c6520286e203c207229207b0a202020202020202020202020202020202020655b6e2b2b5d203d20303b0a202020202020202020202020202020207d0a20202020202020202020202020207d3b0a20202020202020202020202043612e636f6e6e6563742849612e64657374696e6174696f6e293b0a2020202020202020202020207661722065203d2066756e6374696f4d08026e202829207b0a20202020202020202020202020206966202849612e737461746520213d3d202772756e6e696e672729207b0a2020202020202020202020202020202049612e726573756d6528293b0a20202020202020202020202020207d0a2020202020202020202020207d3b0a202020202020202020202020766172206e203d20646f63756d656e742e646f63756d656e74456c656d656e743b0a2020202020202020202020206e2e6164644576656e744c697374656e657228276b6579646f776e272c2065293b0a2020202020202020202020206e2e6164644576656e744c697374656e65722827636c69636b272c2065293b0a2020202020202020202020206e2e6164644576656e744c697374656e6572282764726f70272c2065293b0a2020202020202020202020206e2e6164644576656e744c697374656e657228276472616764726f70272c2065293b0a20202020202020202020202077696e646f772e6164644576656e744c697374656e6572282767616d65706164636f6e6e6563746564272c2065293b0a202020202020202020207d0a20202020202020207d0a202020202020202066756e6374696f6e205f61287429207b0a202020202020202020204c61203d20743b0a202020202020202020204e6128293b0a20202020202020207d0a202020202020202066756e6374696f6e20726f2829207b0a20202020202020204d08022020696620285961203d3d205161207c7c20285961203d3d2048612026262069722829203d3d2051612929207b0a20202020202020202020202044692e436f7079285861293b0a2020202020202020202020204e692e436f7079287161293b0a202020202020202020202020696128656f5b6e6f5d293b0a202020202020202020202020486f283530293b0a202020202020202020202020566f28333133293b0a2020202020202020202020205f61283331333030293b0a202020202020202020207d20656c7365207b0a20202020202020202020202044692e436f7079285661293b0a2020202020202020202020204e692e436f7079284a61293b0a202020202020202020202020696128746f5b6e6f5d293b0a202020202020202020202020486f283630293b0a202020202020202020202020566f28323633293b0a2020202020202020202020205f61283331353630293b0a202020202020202020207d0a20202020202020207d0a202020202020202066756e6374696f6e20636f2829207b0a2020202020202020202072657475726e20746f5b6e6f5d3b0a20202020202020207d0a202020202020202066756e6374696f6e20696f2829207b0a2020202020202020202072657475726e20656f5b6e6f5d3b0a20202020202020207d0a202020202020202066756e6374696f6e20616f2829207b0a2020202020202020202072657475724d08026e206e6f3b0a20202020202020207d0a202020202020202066756e6374696f6e206f6f287429207b0a202020202020202020206e6f203d20743b0a20202020202020207d0a202020202020202066756e6374696f6e20736f2829207b0a2020202020202020202072657475726e20333b0a20202020202020207d0a202020202020202066756e6374696f6e206a6f287429207b0a20202020202020202020426f203d20743b0a20202020202020202020696620286e72282929207b0a2020202020202020202020205f6f203d20313b0a202020202020202020202020456f203d2066616c73653b0a202020202020202020202020786f203d20303b0a2020202020202020202020206163203d20303b0a2020202020202020202020206f63203d20303b0a2020202020202020202020207363203d20303b0a2020202020202020202020206663203d204d633b0a2020202020202020202020207563203d20303b0a20202020202020202020202064632e736574572830293b0a2020202020202020202020204c69203d20303b0a202020202020202020202020726f28293b0a202020202020202020202020626528293b0a2020202020202020202020205928293b0a202020202020202020202020437428293b0a202020202020202020202020556528293b0a202020202020202020202020726128293b0a2020202020202020202020206e6128294d08023b0a20202020202020202020202058742830293b0a20202020202020202020202071742830293b0a2020202020202020202020207a74203d2066616c73653b0a2020202020202020202020205774203d203636323b0a2020202020202020202020205574203d20303b0a2020202020202020202020205a74203d20303b0a2020202020202020202020205974203d2066616c73653b0a2020202020202020202020205674203d20303b0a2020202020202020202020204a74203d20303b0a202020202020202020202020246e28293b0a202020202020202020202020696620287429207b0a202020202020202020202020202063722866756e6374696f6e20286529207b0a20202020202020202020202020202020507428276f6e4869676853636f7265436172744c6f61646564272c2065293b0a202020202020202020202020202020206663203d207963207c204d63207c2067633b0a2020202020202020202020202020202064632e736574424c2869635b43635d293b0a2020202020202020202020202020202064632e73657442482869635b49635d293b0a202020202020202020202020202020204e6f203d2032343b0a20202020202020202020202020202020436f203d20747275653b0a202020202020202020202020202020207428293b0a20202020202020202020202020207d293b0a2020202020202020202020207d0a2020204d0802202020202020207d0a20202020202020207d0a202020202020202066756e6374696f6e20526f2829207b0a20202020202020202020696620285f6f203e3d206f66202626205f6f203c3d206f66202b2033202626204e6f203e3d202830207c20736629202d203129207b0a2020202020202020202020206d6f5b31325d20263d203132373b0a202020202020202020207d20656c7365207b0a2020202020202020202020206d6f5b31325d207c3d203132383b0a202020202020202020207d0a20202020202020207d0a202020202020202066756e6374696f6e207a6f287429207b0a2020202020202020202069662028436f29207b0a202020202020202020202020456f203d20743b0a202020202020202020207d0a20202020202020207d0a202020202020202066756e6374696f6e20576f2829207b0a20202020202020202020436f203d2066616c73653b0a20202020202020202020456f203d2066616c73653b0a20202020202020202020727228293b0a202020202020202020206e6128293b0a20202020202020202020726128293b0a20202020202020202020556528293b0a202020202020202020202866756e6374696f6e202829207b0a2020202020202020202020204165203d20303b0a202020202020202020202020666f7220287661722074203d20303b2074203c20323b20742b2b29207b0a2020202020202020202020204d0802202069655b745d203d20303b0a202020202020202020202020202061655b745d203d20303b0a20202020202020202020202020206f655b745d203d20303b0a202020202020202020202020202073655b745d203d20303b0a202020202020202020202020202066655b745d203d20303b0a202020202020202020202020202075655b745d203d20303b0a202020202020202020202020202064655b745d203d20303b0a20202020202020202020202020206c655b745d203d20303b0a202020202020202020202020202068655b745d203d20303b0a2020202020202020202020207d0a20202020202020202020202062652874727565293b0a202020202020202020207d2928293b0a2020202020202020202062652874727565293b0a202020202020202020205928293b0a2020202020202020202065742874727565293b0a20202020202020207d0a202020202020202066756e6374696f6e20556f2829207b0a2020202020202020202072657475726e20436f3b0a20202020202020207d0a202020202020202066756e6374696f6e205a6f2829207b0a2020202020202020202072657475726e20456f3b0a20202020202020207d0a202020202020202066756e6374696f6e20516f2829207b0a2020202020202020202072657475726e20536f3b0a20202020202020207d0a202020202020202066756e6374696f6e20486f287429207b0a4d080220202020202020202020536f203d20743b0a202020202020202020202866756e6374696f6e20287429207b0a2020202020202020202020207061203d20743b0a202020202020202020207d292874293b0a20202020202020207d0a202020202020202066756e6374696f6e20596f2829207b0a2020202020202020202072657475726e20786f3b0a20202020202020207d0a202020202020202066756e6374696f6e20566f287429207b0a20202020202020202020446f203d20743b0a202020202020202020202866756e6374696f6e20287429207b0a2020202020202020202020206261203d20743b0a202020202020202020207d292874293b0a20202020202020207d0a202020202020202066756e6374696f6e204a6f2829207b0a2020202020202020202072657475726e204e6f3b0a20202020202020207d0a202020202020202066756e6374696f6e20586f2829207b0a20202020202020202020636f6e73742074203d206e657720417272617928313732303336293b0a20202020202020202020636f6e736f6c652e6c6f672827536176696e672067616d652073746174652e27293b0a202020202020202020206c657420653b0a202020202020202020206c6574206e203d20303b0a20202020202020202020666f72202865203d20303b2065203c2031363b20652b2b29207b0a202020202020202020202020745b6e202b20655d4d0802203d202750524f2d53595354454d205354415445272e63686172436f646541742865293b0a202020202020202020207d0a202020202020202020206e202b3d2031363b0a20202020202020202020745b6e2b2b5d203d20313b0a20202020202020202020666f72202865203d20303b2065203c20343b20652b2b29207b0a202020202020202020202020745b6e202b20655d203d20303b0a202020202020202020207d0a202020202020202020206e202b3d20343b0a20202020202020202020666f72202865203d20303b2065203c2033323b20652b2b29207b0a202020202020202020202020745b6e202b20655d203d204d7228292e63686172436f646541742865293b0a202020202020202020207d0a202020202020202020206e202b3d2033323b0a20202020202020202020745b6e2b2b5d203d2061633b0a20202020202020202020745b6e2b2b5d203d206f633b0a20202020202020202020745b6e2b2b5d203d2073633b0a20202020202020202020745b6e2b2b5d203d2066633b0a20202020202020202020745b6e2b2b5d203d2075633b0a20202020202020202020745b6e2b2b5d203d20496928292e676574424c28293b0a20202020202020202020745b6e2b2b5d203d20496928292e676574424828293b0a20202020202020202020745b6e2b2b5d203d20656328293b0a20202020202020202020666f72202865203d20303b4d08022065203c2031363338343b20652b2b29207b0a202020202020202020202020745b6e202b20655d203d204e655b655d3b0a202020202020202020207d0a202020202020202020206e202b3d2031363338343b0a202020202020202020206966202843722829203d3d20626e29207b0a202020202020202020202020666f72202865203d20303b2065203c2031363338343b20652b2b29207b0a2020202020202020202020202020745b6e202b20655d203d204e655b3136333834202b20655d3b0a2020202020202020202020207d0a2020202020202020202020206e202b3d2031363338343b0a202020202020202020207d0a20202020202020202020696620286872282929207b0a202020202020202020202020666f72202865203d20303b2065203c2031363338343b20652b2b29207b0a2020202020202020202020202020745b6e202b20655d203d2054655b3136333834202b20655d3b0a2020202020202020202020207d0a2020202020202020202020206e202b3d2031363338343b0a202020202020202020207d0a20202020202020202020745b6e2b2b5d203d2051743b0a20202020202020202020745b6e2b2b5d203d2048743b0a20202020202020202020745b6e2b2b5d203d207a74203f2031203a20303b0a20202020202020202020745b6e2b2b5d203d20323535202620284b742829203e3e3e2038293b0a202020202020204d0802202020745b6e2b2b5d203d203235352026204b7428293b0a20202020202020202020745b6e2b2b5d203d2055743b0a20202020202020202020745b6e2b2b5d203d203235352026202824742829203e3e3e2038293b0a20202020202020202020745b6e2b2b5d203d20323535202620247428293b0a20202020202020202020696620287572282929207b0a202020202020202020202020745b6e2b2b5d203d204e742829203f2031203a20303b0a202020202020202020202020745b6e2b2b5d203d2044742829203f2031203a20303b0a202020202020202020202020745b6e2b2b5d203d205f742829203f2031203a20303b0a202020202020202020202020745b6e2b2b5d203d204174203f2031203a20303b0a202020202020202020202020745b6e2b2b5d203d207074203f2031203a20303b0a202020202020202020202020745b6e2b2b5d203d206274203f2031203a20303b0a202020202020202020202020745b6e2b2b5d203d206774203f2031203a20303b0a202020202020202020202020745b6e2b2b5d203d207974203f2031203a20303b0a202020202020202020202020745b6e2b2b5d203d2077743b0a202020202020202020202020745b6e2b2b5d203d206d743b0a202020202020202020202020745b6e2b2b5d203d204d743b0a202020202020202020202020745b6e2b2b5d203d2076743b0a20202020202020202020204d080220745b6e2b2b5d203d204c743b0a202020202020202020202020745b6e2b2b5d203d2049743b0a202020202020202020202020666f72202865203d20303b2065203c203133313037323b20652b2b29207b0a2020202020202020202020202020745b6e202b20655d203d2075745b655d3b0a2020202020202020202020207d0a2020202020202020202020206e202b3d203133313037323b0a202020202020202020207d0a202020202020202020206c65742072203d204a3b0a20202020202020202020666f7220286c65742065203d20303b2065203c20722e6c656e6774683b20652b2b29207b0a202020202020202020202020745b6e2b2b5d203d20725b655d3b0a202020202020202020207d0a2020202020202020202072203d2061743b0a20202020202020202020666f7220286c65742065203d20303b2065203c20722e6c656e6774683b20652b2b29207b0a202020202020202020202020745b6e2b2b5d203d20725b655d3b0a202020202020202020207d0a20202020202020202020742e6c656e677468203d206e3b0a2020202020202020202072657475726e20743b0a20202020202020207d0a202020202020202066756e6374696f6e20716f287429207b0a20202020202020202020636f6e73742065203d20742e6c656e6774683b0a20202020202020202020636f6e736f6c652e6c6f6728274c6f6164696e672067616d654d08022073746174652e27293b0a202020202020202020206c6574206e203d20303b0a20202020202020202020696620286872282929207b0a2020202020202020202020206e203d2031363338343b0a202020202020202020207d0a20202020202020202020696620280a2020202020202020202020206520213d203136373431202b206e2026260a2020202020202020202020206520213d203333313235202b206e2026260a2020202020202020202020206520213d20313437383237202b206e2026260a2020202020202020202020206520213d20313634323131202b206e0a2020202020202020202029207b0a202020202020202020202020636f6e736f6c652e6c6f67282753617665206275666665722068617320616e20696e76616c69642073697a652e27293b0a20202020202020202020202072657475726e2066616c73653b0a202020202020202020207d0a202020202020202020207661722072203d20303b0a20202020202020202020666f7220286c65742065203d20303b2065203c2031363b20652b2b29207b0a20202020202020202020202069662028537472696e672e66726f6d43686172436f646528745b72202b20655d2920213d202750524f2d53595354454d205354415445275b655d29207b0a2020202020202020202020202020636f6e736f6c652e6c6f672827427566666572206973206e6f7420612076616c69644d08022050726f53797374656d20736176652073746174652e27293b0a202020202020202020202020202072657475726e2066616c73653b0a2020202020202020202020207d0a202020202020202020207d0a2020202020202020202072202b3d2031363b0a20202020202020202020745b722b2b5d3b0a20202020202020202020666f7220286c65742074203d20303b2074203c20343b20742b2b29207b7d0a2020202020202020202072202b3d20343b0a202020202020202020206a6f286e756c6c293b0a202020202020202020206c65742063203d2027273b0a20202020202020202020666f7220286c65742065203d20303b2065203c2033323b20652b2b29207b0a20202020202020202020202063202b3d20537472696e672e66726f6d43686172436f646528745b72202b20655d293b0a202020202020202020207d0a2020202020202020202072202b3d2033323b0a20202020202020202020696620284d72282920213d206329207b0a202020202020202020202020636f6e736f6c652e6c6f67280a2020202020202020202020202020274c6f616420737461746520646967657374205b27202b0a2020202020202020202020202020202063202b0a20202020202020202020202020202020275d20646f6573206e6f74206d61746368206c6f616465642063617274726964676520646967657374205b27202b0a2020202020202020204d0802202020202020206361727472696467655f646967657374202b0a20202020202020202020202020202020275d2e270a202020202020202020202020293b0a20202020202020202020202072657475726e2066616c73653b0a202020202020202020207d0a202020202020202020207661722069203d20745b722b2b5d3b0a202020202020202020206163203d20693b0a202020202020202020207661722061203d20745b722b2b5d3b0a202020202020202020206f63203d20613b0a20202020202020202020766172206f203d20745b722b2b5d3b0a202020202020202020207363203d206f3b0a202020202020202020207661722073203d20745b722b2b5d3b0a202020202020202020206663203d20733b0a202020202020202020207661722066203d20745b722b2b5d3b0a202020202020202020207563203d20663b0a20202020202020202020496928292e736574424c28745b722b2b5d293b0a20202020202020202020496928292e736574424828745b722b2b5d293b0a20202020202020202020657228745b722b2b5d293b0a20202020202020202020666f7220286c65742065203d20303b2065203c2031363338343b20652b2b29207b0a2020202020202020202020204e655b655d203d20745b72202b20655d3b0a202020202020202020207d0a2020202020202020202072202b3d2031363338343b0a202020202020202020204d08026966202843722829203d3d20626e29207b0a202020202020202020202020666f7220286c65742065203d20303b2065203c2031363338343b20652b2b29207b0a20202020202020202020202020204e655b3136333834202b20655d203d20745b72202b20655d3b0a2020202020202020202020207d0a20202020202020202020202072202b3d2031363338343b0a202020202020202020207d0a20202020202020202020696620286872282929207b0a202020202020202020202020666f7220286c65742065203d20303b2065203c2031363338343b20652b2b29207b0a202020202020202020202020202054655b3136333834202b20655d203d20745b72202b20655d3b0a2020202020202020202020207d0a20202020202020202020202072202b3d2031363338343b0a202020202020202020207d0a20202020202020202020587428745b722b2b5d293b0a20202020202020202020717428745b722b2b5d293b0a202020202020202020202866756e6374696f6e20287429207b0a2020202020202020202020207a74203d20743b0a202020202020202020207d2928745b722b2b5d203d3d3d2031293b0a202020202020202020206c65742075203d20745b722b2b5d3b0a202020202020202020206c65742064203d20745b722b2b5d3b0a2020202020202020202076617220683b0a202020202020202020202866756e6374696f6e20284d080229207b0a2020202020202020202020207661722074203d20282875203c3c20382920262032353529207c202832353520262064293b0a2020202020202020202020205774203d20743b0a202020202020202020207d2928293b0a20202020202020202020766172206c203d20745b722b2b5d3b0a202020202020202020205574203d206c3b0a2020202020202020202075203d20745b722b2b5d3b0a2020202020202020202064203d20745b722b2b5d3b0a202020202020202020205a74203d20282875203c3c20382920262032353529207c202832353520262064293b0a20202020202020202020696620287572282929207b0a20202020202020202020202068203d20745b722b2b5d203d3d3d20313b0a2020202020202020202020206474203d20683b0a2020202020202020202020202866756e6374696f6e20287429207b0a20202020202020202020202020206c74203d20743b0a2020202020202020202020207d2928745b722b2b5d203d3d3d2031293b0a2020202020202020202020202866756e6374696f6e20287429207b0a20202020202020202020202020206874203d20743b0a2020202020202020202020207d2928745b722b2b5d203d3d3d2031293b0a2020202020202020202020202866756e6374696f6e20287429207b0a20202020202020202020202020204174203d20743b0a2020202020202020202020207d29284d0802745b722b2b5d203d3d3d2031293b0a2020202020202020202020202866756e6374696f6e20287429207b0a20202020202020202020202020207074203d20743b0a2020202020202020202020207d2928745b722b2b5d203d3d3d2031293b0a2020202020202020202020202866756e6374696f6e20287429207b0a20202020202020202020202020206274203d20743b0a2020202020202020202020207d2928745b722b2b5d203d3d3d2031293b0a2020202020202020202020202866756e6374696f6e20287429207b0a20202020202020202020202020206774203d20743b0a2020202020202020202020207d2928745b722b2b5d203d3d3d2031293b0a202020202020202020202020547428745b722b2b5d203d3d3d2031293b0a2020202020202020202020202866756e6374696f6e20287429207b0a20202020202020202020202020207774203d20743b0a2020202020202020202020207d2928745b722b2b5d293b0a2020202020202020202020202866756e6374696f6e20287429207b0a20202020202020202020202020206d74203d20743b0a2020202020202020202020207d2928745b722b2b5d293b0a2020202020202020202020202866756e6374696f6e20287429207b0a20202020202020202020202020204d74203d20743b0a2020202020202020202020207d2928745b722b2b5d293b0a202020202020202020202020284d080266756e6374696f6e20287429207b0a20202020202020202020202020207674203d20743b0a2020202020202020202020207d2928745b722b2b5d293b0a2020202020202020202020202866756e6374696f6e20287429207b0a20202020202020202020202020204c74203d20743b0a2020202020202020202020207d2928745b722b2b5d293b0a2020202020202020202020202866756e6374696f6e20287429207b0a20202020202020202020202020204974203d20743b0a2020202020202020202020207d2928745b722b2b5d293b0a202020202020202020202020666f7220286c65742065203d20303b2065203c203133313037323b20652b2b29207b0a202020202020202020202020202075745b655d203d20745b722b2b5d3b0a2020202020202020202020207d0a202020202020202020207d0a20202020202020202020666f7220286c65742065203d20303b2065203c2033323b20652b2b29207b0a20202020202020202020202058283136333834202b20652c20745b722b2b5d293b0a202020202020202020207d0a20202020202020202020666f7220286c65742065203d20303b2065203c203235363b20652b2b29207b0a2020202020202020202020206f7428652c20745b722b2b5d293b0a202020202020202020207d0a20202020202020202020636f6e736f6c652e6c6f6728742e6c656e677468202b20272c2027202b204d080272293b0a2020202020202020202072657475726e20747275653b0a20202020202020207d0a202020202020202066756e6374696f6e2043732829207b0a202020202020202020207661722074203d206e756c6c3b0a2020202020202020202074203d204973203d3d205161203f20696f2829203a20636f28293b0a20202020202020202020666f7220287661722065203d20303b2065203c203235363b20652b2b29207b0a202020202020202020202020766172206e203d20745b33202a2065202b20305d3b0a2020202020202020202020207661722072203d20745b33202a2065202b20315d3b0a2020202020202020202020207661722063203d20745b33202a2065202b20325d3b0a20202020202020202020202068735b655d203d205b6e2c20722c20635d3b0a202020202020202020207d0a20202020202020207d0a202020202020202066756e6374696f6e2045732829207b0a202020202020202020207661722074203d204973203d3d205161203f206373203a206e733b0a202020202020202020207661722065203d2028286973202d207429202f203229207c20303b0a20202020202020202020766172206e203d20303b0a202020202020202020207661722072203d20303b0a202020202020202020207661722063203d20303b0a202020202020202020207661722069203d20303b0a202020202020202020207661722061204d08023d20303b0a20202020202020202020766172206f203d20246f3b0a202020202020202020207661722073203d206f733b0a202020202020202020207661722066203d20284973203d3d205161203f207273203a20657329202a2074733b0a20202020202020202020666f72202861203d20303b2061203c20743b20612b2b29207b0a20202020202020202020202063203d2066202b2061202a2074733b0a2020202020202020202020206e203d20303b0a20202020202020202020202072203d2030202b2028282861202b206529202a20747329203c3c2032293b0a202020202020202020202020666f72202869203d20303b2069203c2074733b20692b2b29207b0a20202020202020202020202020207661722075203d20735b63202b206e5d3b0a20202020202020202020202020207661722064203d2068735b755d3b0a20202020202020202020202020206f5b722b2b5d203d20645b305d3b0a20202020202020202020202020206f5b722b2b5d203d20645b315d3b0a20202020202020202020202020206f5b722b2b5d203d20645b325d3b0a2020202020202020202020202020722b2b3b0a20202020202020202020202020206e2b2b3b0a2020202020202020202020207d0a202020202020202020207d0a2020202020202020202066732e707574496d61676544617461284b6f2c20302c2030293b0a20202020202020207d0a20204d080220202020202066756e6374696f6e205373287429207b0a202020202020202020205f69203d206f733b0a202020202020202020206966202821737329207b0a2020202020202020202020207373203d20742e63616e7661733b0a2020202020202020202020207573203d20742e636f6e74726f6c734469763b0a2020202020202020202020206473203d20742e6d61696e436f6e7461696e65723b0a2020202020202020202020206c73203d20742e696e6e6572436f6e7461696e65723b0a2020202020202020202020204c73203d20742e64656275673b0a2020202020202020202020206673203d2073732e676574436f6e746578742827326427293b0a2020202020202020202020204b6f203d2066732e676574496d6167654461746128302c20302c2074732c206973293b0a202020202020202020202020246f203d204b6f2e646174613b0a202020202020202020207d0a20202020202020202020787328293b0a20202020202020202020527328293b0a202020202020202020204173203d20676574436f6d70757465645374796c65287373295b27696d6167652d72656e646572696e67275d3b0a202020202020202020206b73287073293b0a20202020202020207d0a202020202020202066756e6374696f6e2078732829207b0a20202020202020202020666f7220287661722074203d20333b2074203c20246f2e6c656e6774684d08023b2074202b3d203429207b0a202020202020202020202020246f5b74202d20335d203d20303b0a202020202020202020202020246f5b74202d20325d203d20303b0a202020202020202020202020246f5b74202d20315d203d20303b0a202020202020202020202020246f5b745d203d203235353b0a202020202020202020207d0a2020202020202020202066732e707574496d61676544617461284b6f2c20302c2030293b0a20202020202020207d0a202020202020202066756e6374696f6e2044732829207b0a2020202020202020202069662028617329207b0a2020202020202020202020202866756e6374696f6e20742829207b0a202020202020202020202020202069662028617329207b0a202020202020202020202020202020202866756e6374696f6e202829207b0a2020202020202020202020202020202020207661722074203d2066733b0a202020202020202020202020202020202020666f7220287661722065203d20333b2065203c20246f2e6c656e6774683b2065202b3d203429207b0a2020202020202020202020202020202020202020766172206e203d204d6174682e72616e646f6d2829203c20302e35203f2030203a203235353b0a2020202020202020202020202020202020202020246f5b65202d20335d203d206e3b0a2020202020202020202020202020202020202020246f5b65202d20325d203d206e4d08023b0a2020202020202020202020202020202020202020246f5b65202d20315d203d206e3b0a2020202020202020202020202020202020202020246f5b655d203d2033373b0a2020202020202020202020202020202020207d0a202020202020202020202020202020202020742e707574496d61676544617461284b6f2c20302c2030293b0a202020202020202020202020202020207d2928293b0a2020202020202020202020202020202072657175657374416e696d6174696f6e4672616d652874293b0a20202020202020202020202020207d20656c7365207b0a20202020202020202020202020202020787328293b0a20202020202020202020202020207d0a2020202020202020202020207d2928293b0a202020202020202020207d0a20202020202020207d0a202020202020202066756e6374696f6e204e732829207b0a2020202020202020202069662028737329207b0a2020202020202020202020207661722074203d20646f63756d656e742e66756c6c73637265656e456c656d656e743b0a202020202020202020202020696620287429207b0a20202020202020202020202020207661722065203d2077696e646f772e696e6e6572486569676874202d2075732e6f66667365744865696768743b0a2020202020202020202020202020766172206e203d2077696e646f772e696e6e657257696474683b0a20202020202020204d08022020202020206c732e7374796c652e686569676874203d2065202b20277078273b0a20202020202020202020202020207661722072203d20653b0a20202020202020202020202020207661722063203d2072202a206d733b0a20202020202020202020202020206966202863203e206e29207b0a2020202020202020202020202020202072203d202863203d206e29202a204d733b0a20202020202020202020202020207d0a20202020202020202020202020207661722069203d20303b0a20202020202020202020202020207661722061203d202872202f20697329207c20303b0a2020202020202020202020202020696620287673203d3d203129207b0a2020202020202020202020202020202069203d20613b0a20202020202020202020202020207d0a20202020202020202020202020206966202861203c203229207b0a2020202020202020202020202020202069203d20323b0a20202020202020202020202020207d0a20202020202020202020202020206966202869203e203029207b0a2020202020202020202020202020202063203d202872203d206973202a206929202a206d733b0a20202020202020202020202020207d0a202020202020202020202020202073732e7374796c652e7769647468203d2063202b20277078273b0a202020202020202020202020202073732e7374796c652e686569676874203d2072202b204d0802277078273b0a202020202020202020202020202073732e7374796c652e70616464696e67546f70203d2028282865202d207229202f203229207c203029202b20277078273b0a2020202020202020202020207d20656c7365207b0a20202020202020202020202020206c732e7374796c652e72656d6f766550726f7065727479282768656967687427293b0a202020202020202020202020202073732e7374796c652e72656d6f766550726f7065727479282770616464696e672d746f7027293b0a202020202020202020202020202073732e7374796c652e7769647468203d207973202b20277078273b0a202020202020202020202020202073732e7374796c652e686569676874203d207773202b20277078273b0a2020202020202020202020207d0a202020202020202020202020696620284c7329207b0a2020202020202020202020202020636f6e736f6c652e6c6f67280a202020202020202020202020202020202743616e7661732073697a653a2027202b2073732e7374796c652e7769647468202b20272062792027202b2073732e7374796c652e6865696768740a2020202020202020202020202020293b0a2020202020202020202020207d0a2020202020202020202020205074282766756c6c73637265656e272c20212174293b0a202020202020202020207d0a20202020202020207d0a202020202020202066756e6374694d08026f6e205f732829207b0a2020202020202020202072657475726e2073733b0a20202020202020207d0a202020202020202066756e6374696f6e2054732829207b0a202020202020202020206173203d2066616c73653b0a20202020202020207d0a202020202020202066756e6374696f6e206b73287429207b0a202020202020202020207073203d20743b0a2020202020202020202073732e7374796c652e696d61676552656e646572696e67203d2074203f2027696e697469616c27203a2041733b0a20202020202020207d0a202020202020202066756e6374696f6e2042732829207b0a2020202020202020202072657475726e2070733b0a20202020202020207d0a202020202020202066756e6374696f6e206a732829207b0a2020202020202020202072657475726e2066616c73653b0a20202020202020207d0a202020202020202066756e6374696f6e2052732829207b0a202020202020202020206d73203d20287973203d20287473202a206273202a20677329207c203029202f20287773203d206973202a206273293b0a202020202020202020204d73203d207773202f2079733b0a2020202020202020202064732e7374796c652e7769647468203d207973202b20277078273b0a202020202020202020204e7328293b0a20202020202020207d0a202020202020202066756e6374696f6e205073287429207b0a20202020204d080220202020206273203d20743b0a20202020202020202020527328293b0a20202020202020207d0a202020202020202066756e6374696f6e204f732829207b0a2020202020202020202072657475726e2062733b0a20202020202020207d0a202020202020202066756e6374696f6e2046732829207b0a2020202020202020202072657475726e20323b0a20202020202020207d0a202020202020202066756e6374696f6e204773287429207b0a202020202020202020206773203d20743b0a20202020202020202020527328293b0a20202020202020207d0a202020202020202066756e6374696f6e207a732829207b0a2020202020202020202072657475726e2067733b0a20202020202020207d0a202020202020202066756e6374696f6e2057732829207b0a2020202020202020202072657475726e20313b0a20202020202020207d0a202020202020202066756e6374696f6e2055732829207b0a2020202020202020202072657475726e20303b0a20202020202020207d0a202020202020202066756e6374696f6e205a73287429207b0a202020202020202020207673203d20743b0a202020202020202020204e7328293b0a20202020202020207d0a202020202020202066756e6374696f6e2051732829207b0a2020202020202020202072657475726e2076733b0a20202020202020207d0a202020202020202066756e6374696f6e4d08022048732829207b0a202020202020202020207661722074203d20646f63756d656e742e676574456c656d656e744279496428276a73373830305f5f66756c6c73637265656e2d636f6e7461696e657227293b0a2020202020202020202069662028215973282929207b0a202020202020202020202020742e7265717565737446756c6c73637265656e28293b0a2020202020202020202020204e7328293b0a20202020202020202020202073657454696d656f7574284e732c20316533293b0a202020202020202020207d0a20202020202020207d0a202020202020202066756e6374696f6e2059732829207b0a2020202020202020202072657475726e20646f63756d656e742e66756c6c73637265656e456c656d656e743b0a20202020202020207d0a202020202020202066756e6374696f6e2056732829207b0a20202020202020202020646f63756d656e742e6578697446756c6c73637265656e28293b0a20202020202020207d0a202020202020202066756e6374696f6e206c66287429207b0a2020202020202020202069662028666620213d207429207b0a2020202020202020202020206666203d20743b0a20202020202020202020202069662028287266203d205f7328292929207b0a202020202020202020202020202069662028666629207b0a2020202020202020202020202020202072662e6164644576656e744c6973744d0802656e657228276d6f7573656d6f7665272c206866293b0a2020202020202020202020202020202072662e6164644576656e744c697374656e657228276d6f757365646f776e272c204166293b0a20202020202020202020202020202020646f63756d656e742e6164644576656e744c697374656e657228276d6f7573657570272c207066293b0a2020202020202020202020202020202072662e7374796c652e637572736f72203d202763726f737368616972273b0a20202020202020202020202020207d20656c7365207b0a2020202020202020202020202020202072662e72656d6f76654576656e744c697374656e657228276d6f7573656d6f7665272c206866293b0a2020202020202020202020202020202072662e72656d6f76654576656e744c697374656e657228276d6f757365646f776e272c204166293b0a20202020202020202020202020202020646f63756d656e742e72656d6f76654576656e744c697374656e657228276d6f7573657570272c207066293b0a2020202020202020202020202020202072662e7374796c652e637572736f72203d20276175746f273b0a20202020202020202020202020207d0a2020202020202020202020207d0a202020202020202020207d0a20202020202020207d0a202020202020202066756e6374696f6e206866287429207b0a202020202020202020207661722065203d2072662e4d0802676574426f756e64696e67436c69656e745265637428293b0a20202020202020202020766172206e203d202828742e636c69656e7458202d20652e6c65667429202f202872662e7363726f6c6c5769647468202f2063662929207c20303b0a202020202020202020207661722072203d202828742e636c69656e7459202d20652e746f7029202f202872662e7363726f6c6c486569676874202f2061662929207c20303b0a202020202020202020206e202d3d20467228293b0a2020202020202020202072202d3d20477228293b0a202020202020202020207661722063203d20697228293b0a202020202020202020207661722069203d2063203d3d204b73203f207466203a2024733b0a202020202020202020207661722061203d20333138202f2063663b0a202020202020202020206f66203d202872202a20282863203d3d204b73203f206566203a206e6629202f20616629202b202858732e746f70202d2071732e746f70202b203129202b206929207c20303b0a2020202020202020202069662028287366203d2028313838202b206e202a206129207c203029203e204a7329207b0a2020202020202020202020206f662b2b3b0a2020202020202020202020207366202d3d204a733b0a202020202020202020207d0a20202020202020207d0a202020202020202066756e6374696f6e204166287429207b0a2020202020202020204d08022068662874293b0a2020202020202020202069662028742e7768696368203d3d203129207b0a2020202020202020202020207566203d20747275653b0a2020202020202020202020206466203d20353b0a202020202020202020207d0a20202020202020202020742e70726576656e7444656661756c7428293b0a20202020202020207d0a202020202020202066756e6374696f6e207066287429207b0a2020202020202020202068662874293b0a2020202020202020202069662028742e7768696368203d3d203129207b0a2020202020202020202020207566203d2066616c73653b0a202020202020202020207d0a20202020202020202020742e70726576656e7444656661756c7428293b0a20202020202020207d0a202020202020202066756e6374696f6e205466287429207b0a202020202020202020207666203d20743b0a20202020202020202020507428276f6e4c656674446966664368616e676564272c2074293b0a20202020202020207d0a202020202020202066756e6374696f6e206b66287429207b0a202020202020202020204c66203d20743b0a20202020202020202020507428276f6e5269676874446966664368616e676564272c2074293b0a20202020202020207d0a202020202020202066756e6374696f6e20426628742c206529207b0a20202020202020202020766172206e203d20742e6b6579436f64653b4d08020a202020202020202020207661722072203d2067662e68616e646c654b6579436f6465286e2c206529207c7c2079662e68616e646c654b6579436f6465286e2c2065293b0a2020202020202020202069662028217229207b0a20202020202020202020202073776974636820286e29207b0a2020202020202020202020202020636173652078663a0a202020202020202020202020202020207766203d20653b0a2020202020202020202020202020202072203d20747275653b0a20202020202020202020202020202020627265616b3b0a2020202020202020202020202020636173652045663a0a202020202020202020202020202020206d66203d20653b0a2020202020202020202020202020202072203d20747275653b0a20202020202020202020202020202020627265616b3b0a202020202020202020202020202063617365204e663a0a202020202020202020202020202020204d66203d20653b0a2020202020202020202020202020202072203d20747275653b0a20202020202020202020202020202020627265616b3b0a202020202020202020202020202063617365203131363a0a2020202020202020202020202020202069662028216529207b0a202020202020202020202020202020202020546628287666205e3d203129293b0a202020202020202020202020202020207d0a20202020202020202020202020202020724d0802203d20747275653b0a20202020202020202020202020202020627265616b3b0a202020202020202020202020202063617365203131373a0a2020202020202020202020202020202069662028216529207b0a2020202020202020202020202020202020206b6628284c66205e3d203129293b0a202020202020202020202020202020207d0a2020202020202020202020202020202072203d20747275653b0a20202020202020202020202020202020627265616b3b0a202020202020202020202020202063617365203131323a0a2020202020202020202020202020202072203d20747275653b0a20202020202020202020202020202020627265616b3b0a202020202020202020202020202063617365203132303a0a202020202020202020202020202063617365203132323a0a20202020202020202020202020202020696620286529207b0a202020202020202020202020202020202020487328293b0a202020202020202020202020202020207d0a2020202020202020202020202020202072203d20747275653b0a2020202020202020202020207d0a202020202020202020207d0a20202020202020202020696620287220262620742e70726576656e7444656661756c7429207b0a202020202020202020202020742e70726576656e7444656661756c7428293b0a202020202020202020207d0a20202020202020207d0a20202020204d080220202066756e6374696f6e206a662829207b0a2020202020202020202072657475726e206d663b0a20202020202020207d0a202020202020202066756e6374696f6e2052662829207b0a2020202020202020202072657475726e2077663b0a20202020202020207d0a202020202020202066756e6374696f6e2050662829207b0a2020202020202020202072657475726e204d663b0a20202020202020207d0a202020202020202066756e6374696f6e204f662829207b0a2020202020202020202072657475726e2076663b0a20202020202020207d0a202020202020202066756e6374696f6e2046662829207b0a2020202020202020202072657475726e204c663b0a20202020202020207d0a202020202020202066756e6374696f6e2047662829207b0a2020202020202020202067662e726573657428293b0a2020202020202020202079662e726573657428293b0a202020202020202020205466284966293b0a202020202020202020206b66284366293b0a20202020202020207d0a202020202020202066756e6374696f6e207a66287429207b0a202020202020202020204e66203d20743b0a20202020202020207d0a202020202020202066756e6374696f6e2057662829207b0a2020202020202020202072657475726e204e663b0a20202020202020207d0a202020202020202066756e6374696f6e205566287429207b0a2020204d0802202020202020204566203d20743b0a20202020202020207d0a202020202020202066756e6374696f6e205a662829207b0a2020202020202020202072657475726e2045663b0a20202020202020207d0a202020202020202066756e6374696f6e205166287429207b0a202020202020202020207866203d20743b0a20202020202020207d0a202020202020202066756e6374696f6e2048662829207b0a2020202020202020202072657475726e2078663b0a20202020202020207d0a202020202020202066756e6374696f6e20586628742c206529207b0a20202020202020202020666f722028766172206e20696e206529207b0a202020202020202020202020745b6e5d203d20655b6e5d3b0a202020202020202020207d0a20202020202020207d0a202020202020202066756e6374696f6e207166287429207b0a20202020202020202020586628746869732c207b0a2020202020202020202020206973416e616c6f674469723a2066756e6374696f6e2028742c20652c206e29207b0a2020202020202020202020202020696620287420262620742e6178657329207b0a202020202020202020202020202020207661722072203d20742e617865733b0a2020202020202020202020202020202069662028722e6c656e677468203e206529207b0a202020202020202020202020202020202020696620286e29207b0a20202020202020204d080220202020202020202020202072657475726e20725b655d203e20302e353b0a2020202020202020202020202020202020207d20656c7365207b0a202020202020202020202020202020202020202072657475726e20725b655d203c202d302e353b0a2020202020202020202020202020202020207d0a202020202020202020202020202020207d0a20202020202020202020202020207d0a202020202020202020202020202072657475726e2066616c73653b0a2020202020202020202020207d2c0a2020202020202020202020206973507265737365643a2066756e6374696f6e2028742c206529207b0a2020202020202020202020202020696620287420262620742e627574746f6e7329207b0a20202020202020202020202020202020766172206e203d20742e627574746f6e733b0a20202020202020202020202020202020696620286e2e6c656e677468203e206529207b0a2020202020202020202020202020202020207661722072203d206e5b655d3b0a20202020202020202020202020202020202072657475726e20722e70726573736564207c7c20722e76616c7565203d3d20313b0a202020202020202020202020202020207d0a20202020202020202020202020207d0a202020202020202020202020202072657475726e2066616c73653b0a2020202020202020202020207d2c0a2020202020202020202020206973416e4d0802616c6f674c6566743a2066756e6374696f6e2028742c206529207b0a202020202020202020202020202072657475726e20746869732e6973416e616c6f6744697228742c2065203c3c20312c2066616c7365293b0a2020202020202020202020207d2c0a2020202020202020202020206973416e616c6f6752696768743a2066756e6374696f6e2028742c206529207b0a202020202020202020202020202072657475726e20746869732e6973416e616c6f6744697228742c2065203c3c20312c2074727565293b0a2020202020202020202020207d2c0a2020202020202020202020206973416e616c6f6755703a2066756e6374696f6e2028742c206529207b0a202020202020202020202020202072657475726e20746869732e6973416e616c6f6744697228742c2031202b202865203c3c2031292c2066616c7365293b0a2020202020202020202020207d2c0a2020202020202020202020206973416e616c6f67446f776e3a2066756e6374696f6e2028742c206529207b0a202020202020202020202020202072657475726e20746869732e6973416e616c6f6744697228742c2031202b202865203c3c2031292c2074727565293b0a2020202020202020202020207d2c0a20202020202020202020202069734469676974616c4c6566743a2066756e6374696f6e20287429207b0a202020202020202020202020202072657475726e204d0802746869732e69735072657373656428742c203134293b0a2020202020202020202020207d2c0a20202020202020202020202069734469676974616c52696768743a2066756e6374696f6e20287429207b0a202020202020202020202020202072657475726e20746869732e69735072657373656428742c203135293b0a2020202020202020202020207d2c0a20202020202020202020202069734469676974616c55703a2066756e6374696f6e20287429207b0a202020202020202020202020202072657475726e20746869732e69735072657373656428742c203132293b0a2020202020202020202020207d2c0a20202020202020202020202069734469676974616c446f776e3a2066756e6374696f6e20287429207b0a202020202020202020202020202072657475726e20746869732e69735072657373656428742c203133293b0a2020202020202020202020207d2c0a2020202020202020202020206973427574746f6e313a2066756e6374696f6e20287429207b0a202020202020202020202020202072657475726e20746869732e69735072657373656428742c2030293b0a2020202020202020202020207d2c0a2020202020202020202020206973427574746f6e323a2066756e6374696f6e20287429207b0a202020202020202020202020202072657475726e20746869732e69735072657373656428742c2031293b0a2020204d08022020202020202020207d2c0a202020202020202020202020697352657365743a2066756e6374696f6e20287429207b0a202020202020202020202020202072657475726e20746869732e69735072657373656428742c2039293b0a2020202020202020202020207d2c0a202020202020202020202020697353656c6563743a2066756e6374696f6e20287429207b0a202020202020202020202020202072657475726e20746869732e69735072657373656428742c2038293b0a2020202020202020202020207d2c0a202020202020202020202020697350617573653a2066756e6374696f6e20287429207b0a202020202020202020202020202072657475726e20746869732e69735072657373656428742c203429207c7c20746869732e69735072657373656428742c2035293b0a2020202020202020202020207d2c0a202020202020202020207d293b0a20202020202020202020696620287429207b0a202020202020202020202020586628746869732c2074293b0a202020202020202020207d0a20202020202020207d0a202020202020202066756e6374696f6e20747528742c206529207b0a20202020202020202020766172206e203d20743b0a202020202020202020207661722072203d20653b0a2020202020202020202072657475726e207b0a2020202020202020202020207365745061643a2066756e6374696f6e202874294d0802207b0a20202020202020202020202020206e203d20743b0a2020202020202020202020207d2c0a2020202020202020202020206765745061643a2066756e6374696f6e202829207b0a202020202020202020202020202072657475726e206e3b0a2020202020202020202020207d2c0a2020202020202020202020207365744d617070696e673a2066756e6374696f6e20287429207b0a202020202020202020202020202072203d20743b0a2020202020202020202020207d2c0a20202020202020202020202069734c6566743a2066756e6374696f6e20287429207b0a202020202020202020202020202072657475726e20280a2020202020202020202020202020202021216e2026260a2020202020202020202020202020202028722e69734469676974616c4c656674286e29207c7c20287420213d3d20766f6964203020262620722e6973416e616c6f674c656674286e2c20742929290a2020202020202020202020202020293b0a2020202020202020202020207d2c0a202020202020202020202020697352696768743a2066756e6374696f6e20287429207b0a202020202020202020202020202072657475726e20280a2020202020202020202020202020202021216e2026260a2020202020202020202020202020202028722e69734469676974616c5269676874286e29207c7c20287420213d3d20766f6964203020262620722e4d08026973416e616c6f675269676874286e2c20742929290a2020202020202020202020202020293b0a2020202020202020202020207d2c0a202020202020202020202020697355703a2066756e6374696f6e20287429207b0a202020202020202020202020202072657475726e20280a2020202020202020202020202020202021216e2026260a2020202020202020202020202020202028722e69734469676974616c5570286e29207c7c20287420213d3d20766f6964203020262620722e6973416e616c6f675570286e2c20742929290a2020202020202020202020202020293b0a2020202020202020202020207d2c0a2020202020202020202020206973446f776e3a2066756e6374696f6e20287429207b0a202020202020202020202020202072657475726e20280a2020202020202020202020202020202021216e2026260a2020202020202020202020202020202028722e69734469676974616c446f776e286e29207c7c20287420213d3d20766f6964203020262620722e6973416e616c6f67446f776e286e2c20742929290a2020202020202020202020202020293b0a2020202020202020202020207d2c0a2020202020202020202020206973416e616c6f674c6566743a2066756e6374696f6e20287429207b0a202020202020202020202020202072657475726e2021216e202626207420213d3d20766f6964203020262620722e694d080273416e616c6f674c656674286e2c2074293b0a2020202020202020202020207d2c0a2020202020202020202020206973416e616c6f6752696768743a2066756e6374696f6e20287429207b0a202020202020202020202020202072657475726e2021216e202626207420213d3d20766f6964203020262620722e6973416e616c6f675269676874286e2c2074293b0a2020202020202020202020207d2c0a2020202020202020202020206973416e616c6f6755703a2066756e6374696f6e20287429207b0a202020202020202020202020202072657475726e2021216e202626207420213d3d20766f6964203020262620722e6973416e616c6f675570286e2c2074293b0a2020202020202020202020207d2c0a2020202020202020202020206973416e616c6f67446f776e3a2066756e6374696f6e20287429207b0a202020202020202020202020202072657475726e2021216e202626207420213d3d20766f6964203020262620722e6973416e616c6f67446f776e286e2c2074293b0a2020202020202020202020207d2c0a2020202020202020202020206973427574746f6e313a2066756e6374696f6e202829207b0a202020202020202020202020202072657475726e2021216e20262620722e6973427574746f6e31286e293b0a2020202020202020202020207d2c0a2020202020202020202020206973427574746f6e323a2066756e4d08026374696f6e202829207b0a202020202020202020202020202072657475726e2021216e20262620722e6973427574746f6e32286e293b0a2020202020202020202020207d2c0a202020202020202020202020697352657365743a2066756e6374696f6e202829207b0a202020202020202020202020202072657475726e2021216e20262620722e69735265736574286e293b0a2020202020202020202020207d2c0a202020202020202020202020697353656c6563743a2066756e6374696f6e202829207b0a202020202020202020202020202072657475726e2021216e20262620722e697353656c656374286e293b0a2020202020202020202020207d2c0a202020202020202020202020697350617573653a2066756e6374696f6e202829207b0a202020202020202020202020202072657475726e2021216e20262620722e69735061757365286e293b0a2020202020202020202020207d2c0a202020202020202020207d3b0a20202020202020207d0a202020202020202066756e6374696f6e206e752829207b0a202020202020202020207661722074203d206e6176696761746f722e67657447616d65706164730a2020202020202020202020203f206e6176696761746f722e67657447616d657061647328290a2020202020202020202020203a206e6176696761746f722e7765626b697447657447616d65706164730a20202020204d0802202020202020203f206e6176696761746f722e7765626b697447657447616d657061647328290a2020202020202020202020203a205b5d3b0a202020202020202020207661722065203d20303b0a20202020202020202020666f722028766172206e203d20303b2065203c2032202626206e203c20742e6c656e6774683b206e2b2b29207b0a2020202020202020202020207661722072203d20745b6e5d3b0a202020202020202020202020696620287229207b0a202020202020202020202020202065755b655d2e7365745061642872293b0a202020202020202020202020202065755b655d2e7365744d617070696e67284b66293b0a2020202020202020202020202020696620282821722e6d617070696e67207c7c20722e6d617070696e6720213d20277374616e646172642729202626204a6629207b0a2020202020202020202020202020202065755b655d2e7365744d617070696e67282466293b0a20202020202020202020202020207d0a2020202020202020202020202020652b2b3b0a2020202020202020202020207d0a202020202020202020207d0a20202020202020207d0a202020202020202066756e6374696f6e207275287429207b0a2020202020202020202072657475726e2065755b745d3b0a20202020202020207d0a202020202020202066756e6374696f6e206c7528742c20652c206e29207b0a2020202020204d0802202020207661722072203d2074203d3d2030203f2030203a20363b0a202020202020202020207661722063203d20417228293b0a202020202020202020207661722069203d20707228293b0a202020202020202020207661722061203d2074203f207275287429203a206e3b0a20202020202020202020655b30202b20725d203d0a2020202020202020202020202874203f206f752e697352696768742829203a2061752e69735269676874282929207c7c0a202020202020202020202020612e69735269676874283029207c7c0a20202020202020202020202028692026262074202626206e2e6973416e616c6f675269676874283129293b0a20202020202020202020655b31202b20725d203d0a2020202020202020202020202874203f206f752e69734c6566742829203a2061752e69734c656674282929207c7c0a202020202020202020202020612e69734c656674283029207c7c0a20202020202020202020202028692026262074202626206e2e6973416e616c6f674c656674283129293b0a20202020202020202020655b32202b20725d203d0a2020202020202020202020202874203f206f752e6973446f776e2829203a2061752e6973446f776e282929207c7c0a202020202020202020202020612e6973446f776e283029207c7c0a20202020202020202020202028692026262074202626206e2e6973416e616c6f67446f774d08026e283129293b0a20202020202020202020655b33202b20725d203d0a2020202020202020202020202874203f206f752e697355702829203a2061752e69735570282929207c7c0a202020202020202020202020612e69735570283029207c7c0a20202020202020202020202028692026262074202626206e2e6973416e616c6f675570283129293b0a20202020202020202020655b2863203f2035203a203429202b20725d203d0a2020202020202020202020202874203f206f752e6973427574746f6e312829203a2061752e6973427574746f6e31282929207c7c20612e6973427574746f6e3128293b0a20202020202020202020655b2863203f2034203a203529202b20725d203d0a2020202020202020202020202874203f206f752e6973427574746f6e322829203a2061752e6973427574746f6e32282929207c7c20612e6973427574746f6e3228293b0a20202020202020207d0a202020202020202066756e6374696f6e206875287429207b0a202020202020202020207375203d20743b0a20202020202020207d0a202020202020202066756e6374696f6e204175287429207b0a202020202020202020206675203d20743b0a20202020202020207d0a202020202020202066756e6374696f6e2067752829207b0a20202020202020202020746869732e656c203d206e756c6c3b0a20202020202020207d0a2020202020202020664d0802756e6374696f6e20797528742c206529207b0a2020202020202020202067752e63616c6c2874686973293b0a20202020202020202020746869732e7469746c65203d20653b0a20202020202020202020746869732e74657874203d20743b0a20202020202020207d0a202020202020202066756e6374696f6e207775287429207b0a2020202020202020202067752e63616c6c2874686973293b0a20202020202020202020746869732e7469746c65203d20743b0a20202020202020202020746869732e6362203d206e756c6c3b0a20202020202020207d0a202020202020202066756e6374696f6e2053752829207b0a2020202020202020202049752e63616c6c2874686973293b0a20202020202020202020746869732e6368696c6472656e203d205b5d3b0a20202020202020207d0a202020202020202066756e6374696f6e2078752829207b0a2020202020202020202053752e63616c6c2874686973293b0a20202020202020207d0a202020202020202066756e6374696f6e2044752829207b0a2020202020202020202053752e63616c6c2874686973293b0a20202020202020207d0a202020202020202066756e6374696f6e204e7528742c206529207b0a2020202020202020202049752e63616c6c2874686973293b0a20202020202020202020746869732e7469746c65203d20743b0a20202020202020202020746869732e696d4d0802616765537263203d20653b0a20202020202020202020746869732e696d67203d206e756c6c3b0a20202020202020202020746869732e616e63686f72203d206e756c6c3b0a20202020202020207d0a202020202020202066756e6374696f6e205f7528742c20652c206e2c207229207b0a202020202020202020204e752e63616c6c28746869732c20742c2065293b0a20202020202020202020746869732e6f6e5469746c65203d206e3b0a20202020202020202020746869732e6f6e496d616765537263203d20723b0a20202020202020202020746869732e76616c7565203d2066616c73653b0a20202020202020207d0a202020202020202066756e6374696f6e204875287429207b0a2020202020202020202073776974636820287429207b0a2020202020202020202020206361736520303a0a202020202020202020202020202072657475726e2054753b0a2020202020202020202020206361736520313a0a202020202020202020202020202072657475726e2052753b0a2020202020202020202020206361736520323a0a202020202020202020202020202072657475726e207a753b0a20202020202020202020202064656661756c743a0a20202020202020202020202020207468726f772027556e6b6e6f776e2067726f75703a2027202b20743b0a202020202020202020207d0a20202020202020207d0a20202020202020204d080266756e6374696f6e2059752829207b0a2020202020202020202072657475726e206b75202626206b752e67657456616c756528293b0a20202020202020207d0a202020202020202066756e6374696f6e2056752829207b7d0a202020202020202066756e6374696f6e20706428742c206529207b0a2020202020202020202069662028736429207b0a20202020202020202020202072657175657374416e696d6174696f6e4672616d652874293b0a202020202020202020207d20656c736520696620286529207b0a2020202020202020202020207428293b0a202020202020202020207d20656c7365207b0a20202020202020202020202073657454696d656f757428742c2030293b0a202020202020202020207d0a20202020202020207d0a202020202020202066756e6374696f6e20626428742c206529207b0a202020202020202020206164203d20743b0a20202020202020202020766172206e203d20303b0a202020202020202020207661722072203d20303b0a20202020202020202020696620286529207b0a2020202020202020202020206e203d204f6628293b0a20202020202020202020202072203d20466628293b0a202020202020202020207d0a202020202020202020204b6e28742c20742e6c656e677468293b0a202020202020202020207661722063203d204d7228293b0a202020202020202020202866756e6374694d08026f6e20287429207b0a2020202020202020202020207661722065203d2070755b745d3b0a202020202020202020202020696620286529207b0a2020202020202020202020202020636f6e736f6c652e6c6f672865293b0a2020202020202020202020202020766172206e203d20652e743b0a2020202020202020202020202020696620286e20213d3d20766f6964203029207b0a202020202020202020202020202020207672286e293b0a20202020202020202020202020207d0a20202020202020202020202020207661722072203d20652e74793b0a2020202020202020202020202020696620287220213d3d20766f6964203029207b0a202020202020202020202020202020204572287061727365496e74287229293b0a20202020202020202020202020207d0a20202020202020202020202020207661722063203d20652e703b0a2020202020202020202020202020696620286320213d3d20766f6964203029207b0a2020202020202020202020202020202053722863203d3d20277427293b0a20202020202020202020202020207d0a20202020202020202020202020207661722069203d20652e63313b0a2020202020202020202020202020696620286920213d3d20766f6964203029207b0a202020202020202020202020202020204472287061727365496e74286929293b0a20202020202020202020202020207d0a202020204d0802202020202020202020207661722061203d20652e63323b0a2020202020202020202020202020696620286120213d3d20766f6964203029207b0a202020202020202020202020202020204e72287061727365496e74286129293b0a20202020202020202020202020207d0a2020202020202020202020202020766172206f203d20652e723b0a2020202020202020202020202020696620286f20213d3d20766f6964203029207b0a202020202020202020202020202020206b72287061727365496e74286f29293b0a20202020202020202020202020207d0a20202020202020202020202020207661722073203d20652e786d3b0a2020202020202020202020202020696620287320213d3d20766f6964203029207b0a202020202020202020202020202020206a722873203d3d20277427293b0a20202020202020202020202020207d0a20202020202020202020202020207661722066203d20652e63726f7373783b0a2020202020202020202020202020696620286620213d3d20766f6964203029207b0a202020202020202020202020202020205072287061727365496e74286629293b0a20202020202020202020202020207d0a20202020202020202020202020207661722075203d20652e63726f7373793b0a2020202020202020202020202020696620287520213d3d20766f6964203029207b0a20202020202020202020202020204d080220204f72287061727365496e74287529293b0a20202020202020202020202020207d0a20202020202020202020202020207661722064203d20652e6475616c616e616c6f673b0a2020202020202020202020202020696620286420213d3d20766f6964203029207b0a202020202020202020202020202020207a722864203d3d20277427293b0a20202020202020202020202020207d0a2020202020202020202020202020766172206c203d20652e70343b0a2020202020202020202020202020696620286c20213d3d20766f6964203029207b0a202020202020202020202020202020207661722068203d206c203d3d202774273b0a2020202020202020202020202020202078722868293b0a20202020202020202020202020202020696620286829207b0a20202020202020202020202020202020202053722874727565293b0a202020202020202020202020202020207d0a20202020202020202020202020207d0a20202020202020202020202020207661722041203d20652e6c6566747377697463683b0a2020202020202020202020202020696620284120213d3d20766f6964203029207b0a202020202020202020202020202020205772287061727365496e74284129293b0a20202020202020202020202020207d0a20202020202020202020202020207661722070203d20652e72696768747377697463683b0a202020202020204d080220202020202020696620287020213d3d20766f6964203029207b0a202020202020202020202020202020205572287061727365496e74287029293b0a20202020202020202020202020207d0a20202020202020202020202020207661722062203d20652e73623b0a2020202020202020202020202020696620286220213d3d20766f6964203029207b0a202020202020202020202020202020205a722862203d3d20277427293b0a20202020202020202020202020207d0a20202020202020202020202020207661722067203d20652e68733b0a2020202020202020202020202020696620286720213d3d20766f6964203029207b0a2020202020202020202020202020202051722867203d3d20277427293b0a20202020202020202020202020207d0a2020202020202020202020207d0a202020202020202020207d292863293b0a20202020202020202020696620286529207b0a2020202020202020202020205772286e293b0a20202020202020202020202055722872293b0a202020202020202020207d0a20202020202020202020636f6e736f6c652e6c6f67282746696e616c2076616c7565733a27293b0a20202020202020202020636f6e736f6c652e6c6f67282720205469746c653a202573272c204c722829293b0a20202020202020202020636f6e736f6c652e6c6f672827202053697a653a202564272c2049722829293b0a204d0802202020202020202020636f6e736f6c652e6c6f67282720204469676573743a202573272c2063293b0a20202020202020202020636f6e736f6c652e6c6f6728272020547970653a202564272c2043722829293b0a20202020202020202020636f6e736f6c652e6c6f6728272020506f6b65793a202573272c2061722829203f20277472756527203a202766616c736527293b0a20202020202020202020636f6e736f6c652e6c6f6728272020506f6b65793435303a202573272c206f722829203f20277472756527203a202766616c736527293b0a20202020202020202020636f6e736f6c652e6c6f6728272020436f6e74726f6c6c657220313a202564272c205f722829293b0a20202020202020202020636f6e736f6c652e6c6f6728272020436f6e74726f6c6c657220323a202564272c2054722829293b0a20202020202020202020636f6e736f6c652e6c6f6728272020526567696f6e3a202573272c2069722829203d3d2031203f202750414c27203a20274e54534327293b0a20202020202020202020636f6e736f6c652e6c6f6728272020466c6167733a202564272c2067722829293b0a20202020202020202020636f6e736f6c652e6c6f67280a202020202020202020202020272020584d3a2025732c206d6f64653a202573272c0a20202020202020202020202064722829203f20277472756527203a202766616c7365272c0a4d080220202020202020202020202056722829203d3d2032203f20274175746f6d6174696327203a2056722829203f2027456e61626c656427203a202744697361626c6564270a20202020202020202020293b0a20202020202020202020636f6e736f6c652e6c6f67282720205269676874207377697463683a202564272c206d722829293b0a20202020202020202020636f6e736f6c652e6c6f67282720204c656674207377697463683a202564272c2077722829293b0a20202020202020202020636f6e736f6c652e6c6f67282720205377617020627574746f6e733a202573272c2041722829203f20277472756527203a202766616c736527293b0a20202020202020202020636f6e736f6c652e6c6f67282720204475616c20616e616c6f673a202573272c2070722829203f20277472756527203a202766616c736527293b0a20202020202020202020636f6e736f6c652e6c6f672827202048626c616e6b3a202564272c2079722829293b0a20202020202020202020636f6e736f6c652e6c6f672827202043726f73736861697220583a202564272c2046722829293b0a20202020202020202020636f6e736f6c652e6c6f672827202043726f73736861697220593a202564272c2047722829293b0a20202020202020202020636f6e736f6c652e6c6f6728272020486967682073636f7265206361727420656e61626c65643a202573272c4d08022048722829203f20277472756527203a202766616c736527293b0a20202020202020202020507428276f6e4361727472696467654c6f61646564272c2069293b0a202020202020202020202866756e6374696f6e202829207b0a202020202020202020202020666f7220287661722074203d20303b2074203c2075752e6c656e6774683b20742b2b29207b0a202020202020202020202020202075755b745d203d20303b0a2020202020202020202020207d0a202020202020202020202020476628293b0a2020202020202020202020206475203d20747275653b0a2020202020202020202020207375203d2066616c73653b0a2020202020202020202020206675203d2066616c73653b0a202020202020202020207d2928293b0a20202020202020202020766428293b0a202020202020202020206a6f2866756e6374696f6e202829207b0a202020202020202020202020507428276f6e456d756c6174696f6e53746172746564272c206e756c6c293b0a2020202020202020202020206964203d2066616c73653b0a202020202020202020202020786428293b0a2020202020202020202020207661722074203d20446174652e6e6f7728293b0a2020202020202020202020207661722065203d20303b0a202020202020202020202020766172206e203d20516f28293b0a2020202020202020202020207661722072203d203130202a206e4d08023b0a2020202020202020202020207661722063203d20316533202f206e3b0a2020202020202020202020207661722069203d2063202a206e202a20323b0a2020202020202020202020207661722061203d20556f3b0a202020202020202020202020766172206f203d205a6f3b0a2020202020202020202020207661722073203d20303b0a2020202020202020202020207661722066203d20303b0a2020202020202020202020206c662862722829293b0a202020202020202020202020636f6e736f6c652e6c6f6728274672616d65207469636b733a2027202b2063293b0a202020202020202020202020636f6e736f6c652e6c6f6728274672657175656e63793a2027202b206e293b0a2020202020202020202020207661722075203d2066756e6374696f6e202829207b0a20202020202020202020202020206966202861282929207b0a20202020202020202020202020202020696620286f282929207b0a20202020202020202020202020202020202073657454696d656f75742866756e6374696f6e202829207b0a20202020202020202020202020202020202020204164203d20747275653b0a2020202020202020202020202020202020202020706428752c2074727565293b0a2020202020202020202020202020202020207d2c20313030293b0a202020202020202020202020202020207d20656c7365207b0a202020202020204d08022020202020202020202020717528293b0a2020202020202020202020202020202020204a75286c64293b0a202020202020202020202020202020202020696620287564203d3d2030207c7c2073203e3d20756429207b0a20202020202020202020202020202020202020204b7528293b0a2020202020202020202020202020202020207d0a202020202020202020202020202020202020696620282b2b73203e3d20646429207b0a202020202020202020202020202020202020202073203d20303b0a2020202020202020202020202020202020207d0a202020202020202020202020202020202020587528293b0a20202020202020202020202020202020202064202b3d20633b0a202020202020202020202020202020202020766172206c203d20446174652e6e6f7728293b0a2020202020202020202020202020202020206966202864202b2069203c206c207c7c20416429207b0a20202020202020202020202020202020202020204164203d2066616c73653b0a202020202020202020202020202020202020202064203d206c3b0a202020202020202020202020202020202020202065203d20303b0a202020202020202020202020202020202020202074203d206c3b0a202020202020202020202020202020202020202066203d20303b0a2020202020202020202020202020202020202020636f6e736f6c652e6c6f67282761646a4d08027573746564206e6578742074696d657374616d702e27293b0a2020202020202020202020202020202020207d0a2020202020202020202020202020202020207661722068203d2064202d206c3b0a20202020202020202020202020202020202066202b3d20683b0a2020202020202020202020202020202020206966202868203e203029207b0a202020202020202020202020202020202020202073657454696d656f75742866756e6374696f6e202829207b0a20202020202020202020202020202020202020202020706428752c2074727565293b0a20202020202020202020202020202020202020207d2c2068293b0a2020202020202020202020202020202020207d20656c7365207b0a2020202020202020202020202020202020202020706428752c2066616c7365293b0a2020202020202020202020202020202020207d0a202020202020202020202020202020202020696620282b2b6520252072203d3d203029207b0a20202020202020202020202020202020202020207661722041203d20446174652e6e6f772829202d20743b0a2020202020202020202020202020202020202020696620286f6429207b0a20202020202020202020202020202020202020202020636f6e736f6c652e6c6f67280a20202020202020202020202020202020202020202020202027763a25732c207673796e633a2025642c20257374696d65723a4d08022025642c207773796e633a2025642c2025642c2073746c3a2025642c206d61723a2025642c206370753a2025642c206578743a202564272c0a20202020202020202020202020202020202020202020202028316533202f202841202f206529292e746f46697865642832292c0a2020202020202020202020202020202020202020202020207364203f2031203a20302c0a2020202020202020202020202020202020202020202020207364203f202727203a2027776169743a2027202b20282866202f206529202a206e292e746f4669786564283229202b20272c20272c0a2020202020202020202020202020202020202020202020204a742025203165332c0a202020202020202020202020202020202020202020202020302c0a2020202020202020202020202020202020202020202020204f6f2c0a202020202020202020202020202020202020202020202020302c0a202020202020202020202020202020202020202020202020466f2c0a202020202020202020202020202020202020202020202020476f2c0a202020202020202020202020202020202020202020202020506f0a20202020202020202020202020202020202020202020293b0a20202020202020202020202020202020202020207d0a202020202020202020202020202020202020202074203d20446174652e6e6f7728293b0a2020202020202020202020202020204d0802202020202065203d20303b0a202020202020202020202020202020202020202066203d20303b0a2020202020202020202020202020202020207d0a202020202020202020202020202020207d0a20202020202020202020202020207d0a2020202020202020202020207d3b0a2020202020202020202020207661722064203d20446174652e6e6f772829202b20633b0a20202020202020202020202073657454696d656f75742866756e6374696f6e202829207b0a2020202020202020202020202020706428752c2074727565293b0a2020202020202020202020207d2c2063293b0a202020202020202020207d293b0a20202020202020207d0a202020202020202066756e6374696f6e2067642829207b0a2020202020202020202069662028616429207b0a2020202020202020202020204d642861642c2074727565293b0a202020202020202020207d0a20202020202020207d0a202020202020202066756e6374696f6e204d6428742c206529207b0a202020202020202020206966202821696429207b0a2020202020202020202020206964203d20747275653b0a20202020202020202020202069662028556f282929207b0a2020202020202020202020202020576f28293b0a2020202020202020202020207d0a20202020202020202020202069662028216d6429207b0a20202020202020202020202020205274280a2020202020204d080220202020202020202020286d64203d206e6577206a7428276f6e456d756c6174696f6e53746172746564272c2066756e6374696f6e202829207b0a202020202020202020202020202020202020547328293b0a202020202020202020202020202020202020696620282163642e636c6173734c6973742e636f6e7461696e7328276a73373830305f5f6c6f676f2d2d68696465272929207b0a202020202020202020202020202020202020202063642e636c6173734c6973742e61646428276a73373830305f5f6c6f676f2d2d6869646527293b0a202020202020202020202020202020202020202063642e636c6173734c6973742e72656d6f766528276a73373830305f5f6c6f676f2d2d73686f7727293b0a202020202020202020202020202020202020202073657454696d656f75742866756e6374696f6e202829207b0a2020202020202020202020202020202020202020202063642e7374796c652e646973706c6179203d20276e6f6e65273b0a20202020202020202020202020202020202020207d2c20316533293b0a2020202020202020202020202020202020207d0a202020202020202020202020202020207d29290a2020202020202020202020202020293b0a2020202020202020202020207d0a20202020202020202020202073657454696d656f75742866756e6374696f6e202829207b0a202020202020202020202020204d080220626428742c2065293b0a2020202020202020202020207d2c20323030293b0a202020202020202020207d0a20202020202020207d0a202020202020202066756e6374696f6e20766428742c206529207b0a202020202020202020206966202821686429207b0a2020202020202020202020206864203d20747275653b0a2020202020202020202020202866756e6374696f6e20287429207b0a20202020202020202020202020207661722065203d20646f63756d656e742e676574456c656d656e74427949642874293b0a202020202020202020202020202069662028216529207b0a202020202020202020202020202020207468726f772027556e61626c6520746f2066696e6420656c656d656e7420776974682069643a2027202b20743b0a20202020202020202020202020207d0a2020202020202020202020202020282475203d20646f63756d656e742e637265617465456c656d656e7428276469762729292e636c6173734e616d65203d2024752e6964203d20276a7337383030273b0a2020202020202020202020202020652e617070656e644368696c64282475293b0a2020202020202020202020202020766172206e203d20646f63756d656e742e637265617465456c656d656e74282764697627293b0a20202020202020202020202020206e2e6964203d20276a73373830305f5f66756c6c73637265656e2d636f6e7461694d08026e6572273b0a202020202020202020202020202024752e617070656e644368696c64286e293b0a2020202020202020202020202020287464203d20646f63756d656e742e637265617465456c656d656e7428276469762729292e6964203d2074642e636c6173734e616d65203d0a20202020202020202020202020202020276a73373830305f5f696e6e65722d636f6e7461696e6572273b0a20202020202020202020202020206e2e617070656e644368696c64287464293b0a20202020202020202020202020207661722072203d20646f63756d656e742e637265617465456c656d656e74282764697627293b0a2020202020202020202020202020722e636c6173734e616d65203d20276a73373830305f6e6f73656c656374273b0a202020202020202020202020202074642e617070656e644368696c642872293b0a2020202020202020202020202020286e64203d20646f63756d656e742e637265617465456c656d656e74282763616e7661732729292e6964203d206e642e636c6173734e616d65203d0a20202020202020202020202020202020276a73373830305f5f73637265656e273b0a20202020202020202020202020206e642e7769647468203d2074733b0a20202020202020202020202020206e642e686569676874203d2069733b0a2020202020202020202020202020722e617070656e644368696c64286e64293b0a204d080220202020202020202020202020286364203d20646f63756d656e742e637265617465456c656d656e7428276469762729292e6964203d2063642e636c6173734e616d65203d0a20202020202020202020202020202020276a73373830305f5f6c6f676f273b0a202020202020202020202020202074642e617070656e644368696c64286364293b0a20202020202020202020202020207661722063203d20646f63756d656e742e637265617465456c656d656e742827696d6727293b0a2020202020202020202020202020632e737263203d0a2020202020202020202020202020202027646174613a696d6167652f706e673b6261736536342c6956424f5277304b47676f414141414e5355684555674141415a41414141437643414d414141446b4f6e67794141414141334e435356514943416a6234552f6741414142446c424d5645582f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f38392f663639666235382f5434372b2f3236757630357562793565587834654c763364377431396a71303954713064506f7a73376d7963766b7863626876384867764c33657562766474626262734c5059724b335870367256704b62546e364c546e7144516d3533506c706e4e6b35584c6a70484a6934334b69343348686f6e4767344d08025845666f4c43656e33416548752f64586d396358533862584737613236335a476932595753315857477a576c327856466d76553169755556537353314372534579705255716f5245696d5145536c4f30436a4f5479694e446d674d6a69654d544f644b692b624a79756149796d5a495357594953615848794f5647694354466871534568695144784f5044524b4e43412b4d4267714c4167694a41414f45414142374141424b6e61466241414141576e5253546c4d414553497a5246566d6434695a7172764d3365372f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2f2b6f78425965414141414358424957584d414143345941414175474145717169636741414141494852465748525462325a30643246795a51424e59574e796232316c5a476c6849455a70636d563362334a726379424e574c75524b6951414142676553555242564869633756335a577473363179627a374a56434b4642436d4765365732695a436756616f4355346e754b783933386a763578597369614877483636762f394137316d4476537a7231527131724d374d4b43676f4b43676f4b43676f4b43676f4b43676f4b43676f4b43676f4b43676f4b43676f4b434d0802676f4b43676f4b43676f4b43676f4b43676f4b43676f4b43676f4b43676f4b43676f4b43676f4b43676f4b43676f4b43676f4b43676f4b43676f4b43676f4b43676f4b43676f4b43676f4b436a385030432b574b6b316d69304e6f645673314372462f4254336c437131657231657135594c75656d66457439524b78656e76434e35554c6c63596d346f564b5a42616249514b51716c636e4933756c772b43586e364765567353564f4e55554152335671734e6747677337793274624f3374373235756a514c6f44557168596b444839307a7437433432476b44744f716c5352636e373946416438792b583179636238667979314e79556f78765136685434366e434e47674b51725436354a65717456674a364c33455552615a537a4b463161596149346332464849564e4c5064772f50375a39734e516f5441746670337033744c364955793536794533713937644848664835696d2f757637385759485774574a45317973417977646e5039344d7441645437656e4f77756731615a51517a5433732f7558643363584f774156386d4d467a6839764a2b50487a3455364e546c7a2b392b516b4731616947774b4e3436766949536269342f7273394371384f3956684539507953572f5631765a413239665072777752683733507a7174696759724a77394f4748714f625a6b44424e4f794853384d7262756a4a6443453059784731494433482b4d08022b48596567366a6d3037777944796e383937364f4c4d77525871304e36377464465468714d372f43677776323043314637556b6a7073366c486f2b32483074416f312f4773462b70452f4757473058452b4662412f47516e37336f4a72787046774c746e2b6a3955676b4245486f393839576f4d5670667847752f6953582f4e6d6552496a2b3068673565482f756b4a4a73337269524e366143686d6b486b58335a4530597a4d3170754a31626b572f54567738692f5759566d55543632437342685077787336696b6d5767503357364339594f6f717342663541794f2b497767336f55782b2f756e78492b5a67325575596b436f635272347845684947363544787943616352543433442b69393349763336554a4943446b506b372b486d354d496558426647434d2f35324558566d36524c68675a463969686437454164585956463571772f52774e4465346d7777723938316d7051636731595055783876696e47475951336978794c387368447976685542396672337665457554655145676556694d48432f4748433570554c61747748456c6d7772416a617873613943312f6a5a4467456a37373258534d52325076517976506a4b5a3945586f3848636e462f5a356b66677374394a68414b74364b6e4233325a59565a75677431664c6b6558574843583056494452356f49526367693478793041747471534464693437702b4f437645574d08024936522b655272552b2b534866524332687061464b4339342b796852544430414d667a532f50423753764d782b44784a39414d35755231724a48575562625757692b675a42576a375a4574745868687a69572b44334d477151646661566636363852306e2f327a416e714d515a617862647444657449435a624d554b596579644348305438634977575976592b794834505536674a6157597a6b6b66476e4c77373345707631476b494b38496b574d67693351664b38356f4974563544784848796b596f472f35304f736c3639426f786c454e31686a6937426f5a61326a456442694f6d4b73566c35725030545a444d616a51497730705738304d314f477134432b4e2f79576d4a765845464b4247385a6768686353743537546473497353614e6c7377596b59506c726845774a7730513274446f65395a772b6b592f52304c64707a39364532386c38784979635146332b547657355a34652b31486d6577354d385053474e6a736d732f654654572b4c6f34484f4968326b6d6f4f3752766345636d66722f4e534678744e57442f476832663051762b42786b745949564944366e426c2b6a7755746d30597032705835325a6b5a62443567343141773274495351357a386867597348706476706a78484f5137544e6b425869723272436b3470776874564964344d456c4558586f79396b6a503864495962702b4c346a476e77397649315670494d08024943773565463649452b32794a443338794b414f6a484476306c6b4358744254686d375967526e6f34745277574f7a722f474f443037505432397752726733422b6659487a354f7438596a2b45725a347951776773466c434a634a49535977383862493277642f2f523948592f6563526253742f7150434e47647348397a3878773667685a59666c656245426879597042545347794331724864462f6d494358385167725078744e2f35374a58753431683068536b4162574139516e7a52474d6d73776a316e336278374d56756e43416d36304971686f61543564346a313230413046763962516e54504f7067486d442b79505a3452492f6f4d75527238436c3479574b4f4c72584231764f437263506d696955766b48386e7935386169786130417931305a7a5543755745416f6a7146743437413250496479675742637357352b634c6a677858492b43464545525969336b55787973516276766d50505972692f736576356a77677868745948614a544c44566878485036507754585574634d70444e5a49557641345770783570464a5442584b7851656949623561446e5a417636614434557a41334c5a6f513376546c595638496e364a443454495a4963686d616e435046364870395442522f7730684a693456565742586d41656b355442725469302f326f6d6e7251592f77696b4d566777394f685656704a532b4f49462f4a315a6e47454d08024c34616c6f4a4c675568775930675245344969746f58686c684a77364f45787239426947356276433178483344775759656e496666486d4a422f6f696c6e4631332b47386e4b775a704162436273314763534942744a3367674c737530467764784d4a4b545737754f58495947736251724a656759684b424d694951484a582f344349596239394d51626b2f4173645672436f764a76416672542b4f634530536167642f6b2b72594977506a4f64364b366244464b33636533464a4d6e366c495330566e324a4543465a7a794a6b7074587a54444948356239467943445950764f357951712f5975746346453046436c2b324a4a6d7359626d42353067536a64676f4e4a5a6330594d597075763751346e69444a2f6663646b685654657848783853773247456c304c4f4d6f6d517547356969454c4f65514f5a53556874727039345650632b4d58525445354b7848784b496c54334867483365512f7658324c42573459344c464530554e31304c79393059424f373931613030546e59574154344c51594368652f376a3166656e774257444c2b54433246556231303377337a365377675a4a3171636a704149334f48494f442f65774544465a7a79536b416e696475772f74367573497562695862517665584e384c32514e796f51754f773036774e5677593178447a476c4e696a65452f775277666753492b77727365697659376b6a6835674f4d08024a596542437147337277744e6c47346346325877796730644a6e567931564e776e585a7247326b5752394f6b496138376875596f59724857783978475239476b4a657153485a652b71582f47614535533044664f565342434f34685659706c79756a5549387a5a79614b6d7354616d783765674659746f5469353677783537554843524975462b4f684172567975512b664a35786c782b7250733074633238447862396a78686c7954725578475330376277793976574c507a47526a30363453374d4a4b5465776373436d6546582b5a424357596f4b3948782b5970446f616d50326d56756c526e6939414a6f476937656363644b6a4734414c77574a352f575472716f4c38432b385662464f6b304c4348692b4e354b4d4b5378797563366130784c31654145327a7934686a76432f34485474616e49715149703367556356787946715953713979464759526f71344c774b516e4a51426c75684b6b4d7479446548413134537850715a33763735326241656d6b39484853674c646f664a43574a417572776b797478494b50512f53775167745a6c347041726b68516a2f4d536b613152424e7a7742574d506c4563746234535a6841694856314735476e7746496d64456163736c364669487051493377494846792f34715175414446725637446657725834306474384977595468434741657462444432306c6b4262736e6b3163332b546f6e4d08026d6344664e623750377846522f306f5279434446386a30535242634d55346b6361436e62714e5a754d64446e594d49566d665145687a4364644e6b4e746f4e75594d496f524c316a4d494b6341483745387464356e734376304c51716f53425546724a52353244646163435a737979636974714c384935635947333438524c317679386b32524c2b745858356a7837326d435847762f35704e505a49736f4d354a4c545a347a6d4b73575570754a62412b625a3263545174564e6b497571464f454b2f7a4f345a714e6e4f53456c37523132646f5a50724e792f49515170534d425046556d4b713742344c3761504d48514d2f4f6a624c467134326947765a365a5052547456654f5456776243454a4354384a3132564a666a4768787232594a3779366e48644a426b5a636e6d6c4764676d357362696b765673516b6f6f6f456d456846666f54796b2f746a6e504a4f735351764b6c4f73796e3752477054763062516d514b51765a426b582b426a31596b5a68466b5574326f76774f7449744c634c33784f5956754c365275686c49463349674d682b54503964646f5743433747636c616f695559716c48427368422f52564b54783634425031724d4a71633332536552386749513046323053424c504a756b424971614842335036414e4243342b6d79445850746d516d4946345366474446624a555049316d44393873444d715475626735314d080246626935734c53386867634839304839763074762f7069385950726577504457706b5168455736527a31647130566c786a76754d78616875386b54667a476d707473516c717248764869335762734e32394a6d736a7572504f45494f58597533684b397949483054377858502b4345496d43474e344446545a57414f612f79796f5a4d5961504b4e30657a586f4a726e6b4e384f366f57536c4d7335666f5048656f65465862466f7867754a30617754776359596e443055594556556a686b33574b45445a484b615446677247444b7342484970564e31686c436d6a4d4e4f4c44434d5056796576516a3366642f4f79457944324a4542796e565465686475304a5352326249656a72706148486a596a6c6457526a2b64347151665071693252672b7a564a4f7537556870456668626b70494761365443544b5374557746544679796e6b6c49716841346e577831765454716f6f55776844527169456e614b65712b73354261754c635449764d676a6a6d484c58554633703150366c77306a47466b484942576a416e6830784366446c4c52656e375a5a41312f74576c4331766e367a4344635436656f50716354363738376d6f74304b355a50316a4d4a616379546567394b6d6d49687454543659486657475549414e694b626d686264393376553237365a6b427a4b2f5551464f634f69713944744d38385659526865644e4f4259764576454c4d0802496845724b5845714b5266584c4c57527974494d6f7363736c36466945356a565151624f7339376e6967306e39714f437768376439554f786a4b784e78564f744a2b4d79465679596145355855312f4e64314c784269587050504973316f304955476642644d3167316a736a3639326d52744375454735554d4b63434a554f5671394e45646a6b76557351754a51412b6375654b4d786253786964395a5a5174616f736355747938744d6f655774684d673853467a30473873757761715171412b475952416756385a57546f4a6844385373776674424c526f5546722b734963377a664c7175633971754547554636647652645a4d765366786653514e684e6c6e504971524b437257786652713767476f614344504a4f6b33494f6e776b597a4f73304474377879655262794e45356b454730665a3446486c596344672b644376736e7830636e6a397a626b5833683074705751356a2b497461373549305434526c4c3664686235353661667a335959387332635969715a73673831324c5557326b5856707373703546534e707667757743455549433949414f533168437670436d4f57643431594d575736703549794579447a4a772b2b3378704e54686c692b2f3238475875626861337a6e6c47516d665949385055706e4573414c33776d366c785466634d586c474f67473078446f5a4f2b6d7a7350586c7a767a38664164686c6b773875374d08024f655155676544744b3679524952736f664e45624f7a7a684a436b746268307a494133385831526b4b71736a302b76484e64674b314953414d4f6f466e4b3530744e7448684e3772614472764274455630366162775874712f4d5a2b36484a4f4d6d6f78504b7831526d514357693576505455372f6666304c34395a756b2f306e6b4e5a47514d6e79624b4d524d49692b426b4133594a4b703468344c4d764c442f2f685a43704171434970617867427263427878627752564f66527077792f375273416537596c4e45576c7a4d69527675686e747879336433306356467358324e44684e713762547678585247474349513067306d576338677045344b784b77516777696864745a5a516d6166453455336778314e61484a394779457942596d4c446b6d7730654e58764f577434425766537a646c45756a656c54433937684e702f3678775877324d336d546a6937425253626648696d455a3874375956726457684a695968664e4d6253396d454e4c69333449486e61787a6563684230686c68754f61734d4f5676496b537149476134506c5a5353576d507a684c535467734d2b39645059574d2b3345376550713939454f6250637471536a7345765745566162594f7676707642467637346a3671625a49424a3175574578485754463736446f4a4a31746e54536749646b6863556466474a54335273496b53714968784d71716c4b4851624d0802714f5a6b592b6d6d3837656234584d6e7258374978754b626249384b6c485059436768416253516f692f7338343330746f36416337645a756936535261595a46314f53455573392f43676b6e573264444a716768304e4549553658624748362f57453544534a67735352393367416b683475397946644364563376376a31613172586768505267386346614457614d48736c43612b2f774c732b727753365a364959737445416c5062782f427055663265396f777664786678776636584a757077515361444267307257755770764263365449465150662f4b642b573868524b6f676a74564a676b58524a6945627330526b70793244424d484a706642647378344d50766557753464707a7a35426e44314974733131623369327672793864796457304f4b694a3361666164306b453353794c69556b7032322f6d42705a777955635066506c6436316a342b5555375169644536386d4a4164645555474d694551567463347a543469426f7159715a764e4d334e553633424c4e757536455139734a58463259585751633630314a6136397568793636777865334b57333766546f3536586159615a6b3079414548644c4c4f454a4c616f4453587a524c4337414b7968425454546b4c586d6d4e6e2f51324553425845386b6b63565a3056647252526d4c554b3865456a2b527073694779693935645a414e4f79684152774d5037654931654252304d0802477034756459347245526249736f39596d4e34586e6336524e594970577353776d68643555464956696a30353131596365513975746e7246392f50534653443249456438526979687965376a7262414d306d774f35774b505956486947724f6e5872394d67346f6b78357967394b454b796752773559614336536e592f683534314e427364344e38314b6b3355704963336c4952626966474a6c624a356771744b64645947512b41794a73514444436c614150547668745952494653533268566873624254454c776d482f76663958752f674a6842333255312f58644c626c6f57344151735a783062376564723262794f384961736c7270736b507a736d6a443876777741777547325344454b6f316541386738594b61567445794c6147653633344a6f64713674654465386176763571516e4e595664754e516f74462f6c307256784c33323065456a67544d4d416f6b4e476a375041686e67697868616f2b2b68696d4a4864786173634955456c3657303434664f3755636f7779582b57357173797767707737664534686a384676776f6a3032655333337a495853646142324c2b50563974717a2f536b4b7149496c4442387748474a4c537958673055674d2f2f7343704d57396e37765979694c765152712f5a67456670557954794c394d4b587470764d714372582b4f31526d6b5053645a6c684e535a66704d634a77516e346d6d794c694d0802476b6c4b346e744d4b6f2f64375845694a5845477534534e32626834316f79732f2f34686d32765356743667577668342b4a686b2f376b61486832764e553474316a2b3030594e425a77624a456d367a4a4374445853622b4973383939634d66324d5768596849372b65474330556f4c3736614130437551634a72786e74723848567441596f58764a6659363176434356373663574f76347a586452564f706f674544437661537255336e396b5a456f5075572f696133435168684b6f4e73513252796244493968644f316d5745784f3350536234556d3153697136386b42436d494a456b337777314763654e544d71623679486b514c2f6e2b714d4b57302b59743453734379657a75703953333447454b447448365379652b5449346d4d53536e6b6c434e5047526e58554a492b6f57376b58367152776b35356e66577061326b715638334175704c2b6c6353557046356b46476d786c78576843566e4f6b5a307a2f75416c31457646434e69396b4878374e4962672f505753302f526f337567587176654759694256497130696b435364516b68564e3145647668502b754567336c6d58392f6253667632414c49375845534c334948476d786e3366585961754e65476b7058532b417051786b713849746964306e6736536f34506f4d5a6167363037574b6a31386e714e644e393176736951654530522f594a416b36794968756251546d4b4d0802705a707144696869525a6c784d53753033732f6d33693131394869447a45537374594b5371772b4f76464138774d4d374a57714167496469504a3934485531626641377569556f5465636f434f4745665866737a456c365a6551485946422f78306e3679496878625434492f757748533054556c644a4975754d7a78486f66503369546433764f57315a6f69436a4d79636b773271664265476b4d387a6976717a626566714e6172446c5a633676626b6666674e3968713044587a505473794f4d38644267625439564e694e646d6b446279344a31316b5a4271566a38636d535779535a7673724763644845447964655458653638374f41432f766b7842714449576a554954316e36476b6841676d5333546a6651443775445147717a6f38684e2b6a454551484c4d484e435a4457726958477a70446436504c7473624d6576717069526c73796f367270444f4d635275385345697a532b6f6d2f7272737a644e50643549322b4b77767147692f6a71503531784169397941442f30664761625656674f30374c354a2b554f364559662f54484e5346465439334755717965634f4a6e74616c4a3171574e4468324a5332723859476633424762635664386c42526c486534544469774e4a65764a46556b4f33746f4a3841396e49304c6978757a6b6c3648344658574d4d6b6f4e6b6975695553694843456c2b73487a3234494135793856584a764d08026b754967534c6635455170434434576872527276513871706c52625264575433393759654461566c4b6c74717a346a4f74417639715a68595a3453452b78425a763349644a6b616f5a6a5a624b4f32786d303578757763684f454e6e754845376b58432f77486e4358343863636648782f323534663830466e592b524f4f72346a38392f4673742f622f4a43654f2f666b324971514d442b5358472b6e5a61486b34774664457737677076776733354a597465704b525830386535306652754f737a506b675a5837737a6d5a4363746f454853794f795a6d56724c526c627451587431582b75486933584778383137726e57722b766a7a586e5136764b446b574f397568314767544f7173356957375556422f33674247706b4871316330575030574e2f6950763056426a496568636459566a326d7577383742336868484b784c726a394363323939504c6a6b6339615272533466346c74575231326c515172727970646a7348424168383068494564614f69464447794456674e7847322b326c38436d3452567647315234737967306a50314f7248335430427954697a6b4376465a394333463374622b346448523464375737335261667a3163756252374c466564542f653942312f644d4b652b5843364e51764e5359645535366f614c42356550646c656649646e2f6272596e5965577548696247675835325a686c2b704c3478567230447a4d08024748725a65465644676878637862386f7930654930553642386d616b694f7566666c5556456f6c4b76782f3159522f7763433866395838654c2f514a47506a2f436636323773374f317572533667753271544b42384e72747741655064686652766473626259526f544c434d7a6e63775238677871354a7364656b36507665617551374674792f4b5554727558666d6236567751755468652f503552476d2f5a383943755661593751436d7658716450386453423766306170584d2f3576446755464251554642515546425155464251554642515546425155464251554642515546425155464251554642515546425155464251554642515546425155464251554642515546425155464251554642515546425155464251554642515546425155464251554642515546425155464259582f4a663450633744575639375461565541414141415355564f524b35435949493d273b0a2020202020202020202020202020632e616c74203d202741746172692037383030273b0a2020202020202020202020202020632e636c6173734e616d65203d2027617461726937383030273b0a202020202020202020202020202063642e617070656e644368696c642863293b0a2020202020202020202020202020287264203d20646f63756d656e742e637265617465456c656d656e7428276469762729292e6964203d2072642e636c6173734e616d65204d08023d0a20202020202020202020202020202020276a73373830305f5f636f6e74726f6c73273b0a20202020202020202020202020206e2e617070656e644368696c64287264293b0a2020202020202020202020207d292874293b0a2020202020202020202020206f64203d2066616c73653b0a202020202020202020202020696620286520262620652e646562756729207b0a20202020202020202020202020206f64203d20652e64656275673b0a2020202020202020202020207d0a20202020202020202020202050742827696e6974272c207b0a202020202020202020202020202063616e7661733a206e642c0a20202020202020202020202020206d61696e436f6e7461696e65723a2024752c0a2020202020202020202020202020696e6e6572436f6e7461696e65723a2074642c0a2020202020202020202020202020636f6e74726f6c734469763a2072642c0a20202020202020202020202020206b6579626f617264446174613a206c642c0a2020202020202020202020202020526567696f6e3a20612c0a202020202020202020202020202064656275673a206f642c0a2020202020202020202020207d293b0a2020202020202020202020206564203d20646f63756d656e742e637265617465456c656d656e74282764697627293b0a20202020202020202020202063642e617070656e644368696c64286564293b0a20202020204d080220202020202020447328293b0a20202020202020202020202063642e636c6173734c6973742e61646428276a73373830305f5f6c6f676f2d2d73686f7727293b0a2020202020202020202020205274286e6577206a74282772657374617274272c20676429293b0a202020202020202020207d0a20202020202020207d0a202020202020202066756e6374696f6e204c64287429207b0a20202020202020202020743b0a20202020202020207d0a202020202020202066756e6374696f6e204964287429207b0a20202020202020202020507428276869676853636f726543616c6c6261636b4368616e676564272c2074293b0a20202020202020207d0a202020202020202066756e6374696f6e2043642829207b0a2020202020202020202072657475726e2073643b0a20202020202020207d0a202020202020202066756e6374696f6e204564287429207b0a202020202020202020207364203d20743b0a20202020202020207d0a202020202020202066756e6374696f6e2053642829207b0a2020202020202020202072657475726e20747275653b0a20202020202020207d0a202020202020202066756e6374696f6e2078642829207b0a2020202020202020202069662028516f2829203d3d20363029207b0a2020202020202020202020207377697463682028666429207b0a20202020202020202020202020206361736520303a0a204d08022020202020202020202020202020207564203d20303b0a202020202020202020202020202020206464203d20303b0a20202020202020202020202020202020627265616b3b0a20202020202020202020202020206361736520313a0a202020202020202020202020202020207564203d20313b0a202020202020202020202020202020206464203d20343b0a20202020202020202020202020202020627265616b3b0a20202020202020202020202020206361736520323a0a202020202020202020202020202020207564203d20313b0a202020202020202020202020202020206464203d20323b0a20202020202020202020202020202020627265616b3b0a20202020202020202020202020206361736520333a0a202020202020202020202020202020207564203d20333b0a202020202020202020202020202020206464203d20343b0a2020202020202020202020207d0a202020202020202020207d20656c7365207b0a2020202020202020202020207377697463682028666429207b0a20202020202020202020202020206361736520303a0a202020202020202020202020202020207564203d20303b0a202020202020202020202020202020206464203d20303b0a20202020202020202020202020202020627265616b3b0a20202020202020202020202020206361736520313a0a202020202020202020202020202020207564203d4d080220313b0a202020202020202020202020202020206464203d20353b0a20202020202020202020202020202020627265616b3b0a20202020202020202020202020206361736520323a0a202020202020202020202020202020207564203d20313b0a202020202020202020202020202020206464203d20323b0a20202020202020202020202020202020627265616b3b0a20202020202020202020202020206361736520333a0a202020202020202020202020202020207564203d20343b0a202020202020202020202020202020206464203d20353b0a2020202020202020202020207d0a202020202020202020207d0a20202020202020202020636f6e736f6c652e6c6f6728275570646174656420736b697020636f756e743a2027202b207564202b20272c2027202b206464293b0a20202020202020207d0a202020202020202066756e6374696f6e2044642829207b0a2020202020202020202072657475726e20303b0a20202020202020207d0a202020202020202066756e6374696f6e204e642829207b0a2020202020202020202072657475726e2066643b0a20202020202020207d0a202020202020202066756e6374696f6e205f64287429207b0a202020202020202020206664203d20743b0a20202020202020202020786428293b0a20202020202020207d0a202020202020202066756e6374696f6e2054642829207b0a202020204d080220202020202072657475726e20586f28293b0a20202020202020207d0a202020202020202066756e6374696f6e206b64287429207b0a2020202020202020202072657475726e20716f2874293b0a20202020202020207d0a20202020202020206e2e722865293b0a20202020202020207661722072203d207b7d3b0a20202020202020206e2e722872293b0a20202020202020206e2e6428722c2027736574506172656e744576656e7473272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e204f743b0a20202020202020207d293b0a20202020202020206e2e6428722c20274c697374656e6572272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e206a743b0a20202020202020207d293b0a20202020202020206e2e6428722c20276164644c697374656e6572272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e2052743b0a20202020202020207d293b0a20202020202020206e2e6428722c2027666972654576656e74272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e2050743b0a20202020202020207d293b0a20202020202020207661722063203d207b7d3b0a20202020202020206e2e722863293b0a20202020202020206e2e6428632c2027436c656172524f4d272c2066756e6374696f6e20284d080229207b0a2020202020202020202072657475726e204a653b0a20202020202020207d293b0a20202020202020206e2e6428632c20275772697465524f4d272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e2056653b0a20202020202020207d293b0a20202020202020206e2e6428632c20275772697465272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e2059653b0a20202020202020207d293b0a20202020202020206e2e6428632c202752656164272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e2051653b0a20202020202020207d293b0a20202020202020206e2e6428632c2027526561644d61726961272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e2048653b0a20202020202020207d293b0a20202020202020206e2e6428632c20275265736574272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e2055653b0a20202020202020207d293b0a20202020202020206e2e6428632c202772616d272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e204e653b0a20202020202020207d293b0a20202020202020206e2e6428632c2027726f6d272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e204d08025f653b0a20202020202020207d293b0a20202020202020206e2e6428632c20276d6172696152616d272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e2054653b0a20202020202020207d293b0a20202020202020207661722069203d207b7d3b0a20202020202020206e2e722869293b0a20202020202020206e2e6428692c2027476574436172747269646765584d272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e2075723b0a20202020202020207d293b0a20202020202020206e2e6428692c2027476574526567696f6e272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e2069723b0a20202020202020207d293b0a20202020202020206e2e6428692c2027497342616e6b73657473272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e206c723b0a20202020202020207d293b0a20202020202020206e2e6428692c2027497348616c7442616e6b656452616d272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e2068723b0a20202020202020207d293b0a20202020202020206e2e6428692c20274973506f6b6579456e61626c6564272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e2061723b0a20202020202020207d293b0a20204d08022020202020206e2e6428692c20274973506f6b6579343530456e61626c6564272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e206f723b0a20202020202020207d293b0a20202020202020206e2e6428692c20274973506f6b6579383030456e61626c6564272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e2073723b0a20202020202020207d293b0a20202020202020206e2e6428692c20274973506f6b657957726974654f6e6c79272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e2066723b0a20202020202020207d293b0a20202020202020206e2e6428692c20274973586d456e61626c6564272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e2064723b0a20202020202020207d293b0a20202020202020206e2e6428692c2027497353776170427574746f6e73272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e2041723b0a20202020202020207d293b0a20202020202020206e2e6428692c202749734475616c416e616c6f67272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e2070723b0a20202020202020207d293b0a20202020202020206e2e6428692c202749734c6967687447756e456e61626c6564272c2066756e634d080274696f6e202829207b0a2020202020202020202072657475726e2062723b0a20202020202020207d293b0a20202020202020206e2e6428692c2027476574466c616773272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e2067723b0a20202020202020207d293b0a20202020202020206e2e6428692c202747657448626c616e6b272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e2079723b0a20202020202020207d293b0a20202020202020206e2e6428692c20274765744c656674537769746368272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e2077723b0a20202020202020207d293b0a20202020202020206e2e6428692c20274765745269676874537769746368272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e206d723b0a20202020202020207d293b0a20202020202020206e2e6428692c2027476574446967657374272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e204d723b0a20202020202020207d293b0a20202020202020206e2e6428692c20275365745469746c65272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e2076723b0a20202020202020207d293b0a20202020202020206e2e6428692c2027476574544d080269746c65272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e204c723b0a20202020202020207d293b0a20202020202020206e2e6428692c202747657453697a65272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e2049723b0a20202020202020207d293b0a20202020202020206e2e6428692c202747657454797065272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e2043723b0a20202020202020207d293b0a20202020202020206e2e6428692c202753657454797065272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e2045723b0a20202020202020207d293b0a20202020202020206e2e6428692c2027536574506f6b6579272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e2053723b0a20202020202020207d293b0a20202020202020206e2e6428692c2027536574506f6b6579343530272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e2078723b0a20202020202020207d293b0a20202020202020206e2e6428692c202753657442616e6b73657473426567696e272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e2071723b0a20202020202020207d293b0a20202020202020206e2e6428692c4d0802202747657442616e6b73657473426567696e272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e204b723b0a20202020202020207d293b0a20202020202020206e2e6428692c202753657442616e6b73657473456e64272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e2024723b0a20202020202020207d293b0a20202020202020206e2e6428692c202747657442616e6b73657473456e64272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e2074633b0a20202020202020207d293b0a20202020202020206e2e6428692c2027536574436f6e74726f6c6c657231272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e2044723b0a20202020202020207d293b0a20202020202020206e2e6428692c2027536574436f6e74726f6c6c657232272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e204e723b0a20202020202020207d293b0a20202020202020206e2e6428692c2027476574436f6e74726f6c6c657231272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e205f723b0a20202020202020207d293b0a20202020202020206e2e6428692c2027476574436f6e74726f6c6c657232272c2066756e6374696f6e202829207b0a20202020204d0802202020202072657475726e2054723b0a20202020202020207d293b0a20202020202020206e2e6428692c2027536574526567696f6e272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e206b723b0a20202020202020207d293b0a20202020202020206e2e6428692c2027536574466c616773272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e2042723b0a20202020202020207d293b0a20202020202020206e2e6428692c2027536574586d272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e206a723b0a20202020202020207d293b0a20202020202020206e2e6428692c2027536574586d4d6f6465272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e2059723b0a20202020202020207d293b0a20202020202020206e2e6428692c2027476574586d4d6f6465272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e2056723b0a20202020202020207d293b0a20202020202020206e2e6428692c2027476574586d4d6f646544656661756c74272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e204a723b0a20202020202020207d293b0a20202020202020206e2e6428692c202753657448626c616e6b272c2066756e6374696f6e202829204d08027b0a2020202020202020202072657475726e2052723b0a20202020202020207d293b0a20202020202020206e2e6428692c202753657443726f737358272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e2050723b0a20202020202020207d293b0a20202020202020206e2e6428692c202753657443726f737359272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e204f723b0a20202020202020207d293b0a20202020202020206e2e6428692c202747657443726f737358272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e2046723b0a20202020202020207d293b0a20202020202020206e2e6428692c202747657443726f737359272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e2047723b0a20202020202020207d293b0a20202020202020206e2e6428692c20275365744475616c416e616c6f67272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e207a723b0a20202020202020207d293b0a20202020202020206e2e6428692c20275365744c656674537769746368272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e2057723b0a20202020202020207d293b0a20202020202020206e2e6428692c202753657452696768745377694d0802746368272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e2055723b0a20202020202020207d293b0a20202020202020206e2e6428692c202753657453776170427574746f6e73272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e205a723b0a20202020202020207d293b0a20202020202020206e2e6428692c20275365744869676853636f726543617274456e61626c6564272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e2051723b0a20202020202020207d293b0a20202020202020206e2e6428692c202749734869676853636f726543617274456e61626c6564272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e2048723b0a20202020202020207d293b0a20202020202020206e2e6428692c202747657443617274726964676542616e6b272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e2065633b0a20202020202020207d293b0a20202020202020206e2e6428692c20274c6f6164272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e204b6e3b0a20202020202020207d293b0a20202020202020206e2e6428692c202749734c6f61646564272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e204d08026e723b0a20202020202020207d293b0a20202020202020206e2e6428692c20275772697465272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e2074723b0a20202020202020207d293b0a20202020202020206e2e6428692c202753746f7265272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e20246e3b0a20202020202020207d293b0a20202020202020206e2e6428692c202752656c65617365272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e2072723b0a20202020202020207d293b0a20202020202020206e2e6428692c20274c6f61644869676853636f726543617274272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e2063723b0a20202020202020207d293b0a20202020202020206e2e6428692c2027497353746f726564272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e2058723b0a20202020202020207d293b0a20202020202020206e2e6428692c202753746f726542616e6b272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e2065723b0a20202020202020207d293b0a20202020202020206e2e6428692c20274341525452494447455f545950455f4e4f524d414c272c2066756e6374696f6e202829207b0a2020204d08022020202020202072657475726e20686e3b0a20202020202020207d293b0a20202020202020206e2e6428692c20274341525452494447455f545950455f4e4f524d414c5f52414d272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e20796e3b0a20202020202020207d293b0a20202020202020206e2e6428692c20274341525452494447455f545950455f535550455243415254272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e20416e3b0a20202020202020207d293b0a20202020202020206e2e6428692c20274341525452494447455f545950455f5355504552434152545f52414d272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e20626e3b0a20202020202020207d293b0a20202020202020206e2e6428692c20274341525452494447455f545950455f5355504552434152545f524f4d272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e20676e3b0a20202020202020207d293b0a20202020202020206e2e6428692c20274341525452494447455f545950455f5355504552434152545f4c41524745272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e20706e3b0a20202020202020207d293b0a20202020202020207661722061203d207b7d3b0a20202020204d08022020206e2e722861293b0a20202020202020206e2e6428612c2027524547494f4e5f4e545343272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e205a613b0a20202020202020207d293b0a20202020202020206e2e6428612c2027524547494f4e5f50414c272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e2051613b0a20202020202020207d293b0a20202020202020206e2e6428612c2027524547494f4e5f4155544f272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e2048613b0a20202020202020207d293b0a20202020202020206e2e6428612c2027524547494f4e5f50414c455454455f4e545343272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e204b613b0a20202020202020207d293b0a20202020202020206e2e6428612c2027524547494f4e5f50414c455454455f50414c272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e2024613b0a20202020202020207d293b0a20202020202020206e2e6428612c20275265736574272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e20726f3b0a20202020202020207d293b0a20202020202020206e2e6428612c20276765744e74736350616c65747465272c2066756e6374694d08026f6e202829207b0a2020202020202020202072657475726e20636f3b0a20202020202020207d293b0a20202020202020206e2e6428612c202767657450616c50616c65747465272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e20696f3b0a20202020202020207d293b0a20202020202020206e2e6428612c202767657450616c65747465496e646578272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e20616f3b0a20202020202020207d293b0a20202020202020206e2e6428612c202773657450616c65747465496e646578272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e206f6f3b0a20202020202020207d293b0a20202020202020206e2e6428612c202767657450616c65747465496e64657844656661756c74272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e20736f3b0a20202020202020207d293b0a2020202020202020766172206f203d207b7d3b0a20202020202020206e2e72286f293b0a20202020202020206e2e64286f2c2027666c6970496d616765272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e2045733b0a20202020202020207d293b0a20202020202020206e2e64286f2c2027737461727453637265656e536e6f77272c2066756e63744d0802696f6e202829207b0a2020202020202020202072657475726e2044733b0a20202020202020207d293b0a20202020202020206e2e64286f2c202741544152495f5749445448272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e2074733b0a20202020202020207d293b0a20202020202020206e2e64286f2c202741544152495f43414e5641535f484549474854272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e2069733b0a20202020202020207d293b0a20202020202020206e2e64286f2c20274e5453435f41544152495f424c49545f544f505f59272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e2065733b0a20202020202020207d293b0a20202020202020206e2e64286f2c202750414c5f41544152495f424c49545f544f505f59272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e2072733b0a20202020202020207d293b0a20202020202020206e2e64286f2c20274e5453435f41544152495f484549474854272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e206e733b0a20202020202020207d293b0a20202020202020206e2e64286f2c202750414c5f41544152495f484549474854272c2066756e6374696f6e202829207b0a20202020202020202020724d0802657475726e2063733b0a20202020202020207d293b0a20202020202020206e2e64286f2c202767657443616e766173272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e205f733b0a20202020202020207d293b0a20202020202020206e2e64286f2c202773746f7053637265656e536e6f77272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e2054733b0a20202020202020207d293b0a20202020202020206e2e64286f2c202766756c6c53637265656e272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e2048733b0a20202020202020207d293b0a20202020202020206e2e64286f2c20276578697446756c6c53637265656e272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e2056733b0a20202020202020207d293b0a20202020202020206e2e64286f2c2027697346756c6c73637265656e272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e2059733b0a20202020202020207d293b0a20202020202020206e2e64286f2c202767657446696c746572456e61626c656444656661756c74272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e206a733b0a20202020202020207d293b0a20202020202020206e2e64286f2c2027736574464d0802696c746572456e61626c6564272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e206b733b0a20202020202020207d293b0a20202020202020206e2e64286f2c2027697346696c746572456e61626c6564272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e2042733b0a20202020202020207d293b0a20202020202020206e2e64286f2c202773657453637265656e53697a65272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e2050733b0a20202020202020207d293b0a20202020202020206e2e64286f2c202767657453637265656e53697a65272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e204f733b0a20202020202020207d293b0a20202020202020206e2e64286f2c202767657453637265656e53697a6544656661756c74272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e2046733b0a20202020202020207d293b0a20202020202020206e2e64286f2c202773657453637265656e526174696f272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e2047733b0a20202020202020207d293b0a20202020202020206e2e64286f2c202767657453637265656e526174696f272c2066756e6374696f6e202829207b0a2020202020204d08022020202072657475726e207a733b0a20202020202020207d293b0a20202020202020206e2e64286f2c202767657453637265656e526174696f44656661756c74272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e2057733b0a20202020202020207d293b0a20202020202020206e2e64286f2c202767657446756c6c73637265656e4d6f646544656661756c74272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e2055733b0a20202020202020207d293b0a20202020202020206e2e64286f2c202773657446756c6c73637265656e4d6f6465272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e205a733b0a20202020202020207d293b0a20202020202020206e2e64286f2c202767657446756c6c73637265656e4d6f6465272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e2051733b0a20202020202020207d293b0a20202020202020206e2e64286f2c2027696e697450616c6574746538272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e2043733b0a20202020202020207d293b0a20202020202020207661722073203d207b7d3b0a20202020202020206e2e722873293b0a20202020202020206e2e6428732c2027697353656c656374272c2066756e6374696f6e204d08022829207b0a2020202020202020202072657475726e206a663b0a20202020202020207d293b0a20202020202020206e2e6428732c202769735265736574272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e2052663b0a20202020202020207d293b0a20202020202020206e2e6428732c202769735061757365272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e2050663b0a20202020202020207d293b0a20202020202020206e2e6428732c202769734c65667444696666536574272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e204f663b0a20202020202020207d293b0a20202020202020206e2e6428732c20276973526967687444696666536574272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e2046663b0a20202020202020207d293b0a20202020202020206e2e6428732c20277365744c65667444696666536574272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e2054663b0a20202020202020207d293b0a20202020202020206e2e6428732c2027736574526967687444696666536574272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e206b663b0a20202020202020207d293b0a20202020202020206e2e6428732c20274d08027265736574272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e2047663b0a20202020202020207d293b0a20202020202020206e2e6428732c202770314b65794d6170272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e2067663b0a20202020202020207d293b0a20202020202020206e2e6428732c202770324b65794d6170272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e2079663b0a20202020202020207d293b0a20202020202020206e2e6428732c202773657450617573654b6579272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e207a663b0a20202020202020207d293b0a20202020202020206e2e6428732c202767657450617573654b6579272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e2057663b0a20202020202020207d293b0a20202020202020206e2e6428732c202773657453656c6563744b6579272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e2055663b0a20202020202020207d293b0a20202020202020206e2e6428732c202767657453656c6563744b6579272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e205a663b0a20202020202020207d293b0a202020202020204d0802206e2e6428732c202773657452657365744b6579272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e2051663b0a20202020202020207d293b0a20202020202020206e2e6428732c202767657452657365744b6579272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e2048663b0a20202020202020207d293b0a20202020202020206e2e6428732c202764656652657365744b6579272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e2044663b0a20202020202020207d293b0a20202020202020206e2e6428732c202764656650617573654b6579272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e205f663b0a20202020202020207d293b0a20202020202020206e2e6428732c202764656653656c6563744b6579272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e2053663b0a20202020202020207d293b0a20202020202020207661722066203d207b7d3b0a20202020202020206e2e722866293b0a20202020202020206e2e6428662c20276973546f756368446576696365272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e2059663b0a20202020202020207d293b0a20202020202020206e2e6428662c202769734d6f62696c6544654d080276696365272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e2056663b0a20202020202020207d293b0a20202020202020206e2e6428662c20276973496f73446576696365272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e204a663b0a20202020202020207d293b0a20202020202020206e2e6428662c202761646450726f7073272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e2058663b0a20202020202020207d293b0a20202020202020207661722075203d207b7d3b0a20202020202020206e2e722875293b0a20202020202020206e2e6428752c2027706f6c6c272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e206e753b0a20202020202020207d293b0a20202020202020206e2e6428752c20276765744d617070696e67272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e2072753b0a20202020202020207d293b0a20202020202020207661722064203d207b7d3b0a20202020202020206e2e722864293b0a20202020202020206e2e6428642c202769735061757365427574746f6e446f776e272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e2059753b0a20202020202020207d293b0a20202020202020206e2e6428642c4d0802202767657447726f7570272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e2048753b0a20202020202020207d293b0a20202020202020206e2e6428642c2027436f6d706f6e656e74272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e2049753b0a20202020202020207d293b0a20202020202020206e2e6428642c2027427574746f6e272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e2043753b0a20202020202020207d293b0a20202020202020206e2e6428642c20276c6561646572626f617264427574746f6e272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e2057753b0a20202020202020207d293b0a20202020202020206e2e6428642c202773657474696e6773427574746f6e272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e205a753b0a20202020202020207d293b0a20202020202020206e2e6428642c202768656c70427574746f6e272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e2055753b0a20202020202020207d293b0a20202020202020206e2e6428642c20277061757365427574746f6e272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e206b753b0a20202020202020207d4d0802293b0a20202020202020206e2e6428642c2027736f756e64427574746f6e272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e2042753b0a20202020202020207d293b0a20202020202020206e2e6428642c2027636f6773496d67537263272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e206d753b0a20202020202020207d293b0a20202020202020206e2e6428642c2027696e666f496d67537263272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e204d753b0a20202020202020207d293b0a20202020202020206e2e6428642c20276d6564616c496d67537263272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e2076753b0a20202020202020207d293b0a2020202020202020766172206c203d207b7d3b0a20202020202020206e2e72286c293b0a20202020202020206e2e64286c2c2027696e6974272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e2076643b0a20202020202020207d293b0a20202020202020206e2e64286c2c20277374617274456d756c6174696f6e272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e204d643b0a20202020202020207d293b0a20202020202020206e2e64286c2c20277361766553746174654d0802272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e2054643b0a20202020202020207d293b0a20202020202020206e2e64286c2c20276c6f61645374617465272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e206b643b0a20202020202020207d293b0a20202020202020206e2e64286c2c202772657374617274272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e2067643b0a20202020202020207d293b0a20202020202020206e2e64286c2c20277365744572726f7248616e646c6572272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e204c643b0a20202020202020207d293b0a20202020202020206e2e64286c2c20277365744869676853636f726543616c6c6261636b272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e2049643b0a20202020202020207d293b0a20202020202020206e2e64286c2c20274869676853636f726543616c6c6261636b272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e2056753b0a20202020202020207d293b0a20202020202020206e2e64286c2c20276465736372697074696f6e446976272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e2065643b0a202020204d0802202020207d293b0a20202020202020206e2e64286c2c202769735673796e63456e61626c6564272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e2043643b0a20202020202020207d293b0a20202020202020206e2e64286c2c20277365745673796e63456e61626c6564272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e2045643b0a20202020202020207d293b0a20202020202020206e2e64286c2c20276765745673796e63456e61626c656444656661756c74272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e2053643b0a20202020202020207d293b0a20202020202020206e2e64286c2c2027676574536b69704c6576656c44656661756c74272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e2044643b0a20202020202020207d293b0a20202020202020206e2e64286c2c2027676574536b69704c6576656c272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e204e643b0a20202020202020207d293b0a20202020202020206e2e64286c2c2027736574536b69704c6576656c272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e205f643b0a20202020202020207d293b0a20202020202020207661722068203d207b7d3b0a20204d08022020202020206e2e722868293b0a20202020202020206e2e6428682c20274b657973272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e2042643b0a20202020202020207d293b0a20202020202020207661722041203d206e657720417272617928302c20302c2030293b0a20202020202020207661722070203d20303b0a20202020202020207661722062203d206e65772041727261792832303438293b0a20202020202020207661722067203d2033313434303b0a20202020202020207661722079203d20303b0a20202020202020207661722077203d206e657720417272617928302c20302c20302c2030293b0a2020202020202020766172206d203d206e657720417272617928302c20302c20302c2030293b0a2020202020202020766172204d203d20303b0a20202020202020207661722076203d206e657720417272617928302c20302c20302c2030293b0a2020202020202020766172204c203d206e657720417272617928312c20312c20302c20312c20312c20312c20302c20302c20302c20302c20312c20302c20312c20302c2030293b0a20202020202020207661722049203d206e6577204172726179280a20202020202020202020302c0a20202020202020202020302c0a20202020202020202020312c0a20202020202020202020312c0a20202020202020202020302c0a2020202020204d080220202020302c0a20202020202020202020302c0a20202020202020202020312c0a20202020202020202020312c0a20202020202020202020312c0a20202020202020202020312c0a20202020202020202020302c0a20202020202020202020302c0a20202020202020202020312c0a20202020202020202020302c0a20202020202020202020312c0a20202020202020202020302c0a20202020202020202020312c0a20202020202020202020312c0a20202020202020202020302c0a20202020202020202020312c0a20202020202020202020312c0a20202020202020202020312c0a20202020202020202020302c0a20202020202020202020312c0a20202020202020202020302c0a20202020202020202020302c0a20202020202020202020302c0a20202020202020202020302c0a20202020202020202020302c0a20202020202020202020310a2020202020202020293b0a20202020202020207661722043203d206e657720417272617928353131293b0a20202020202020207661722045203d206e657720417272617928313331303731293b0a20202020202020207661722053203d20303b0a20202020202020207661722078203d20303b0a20202020202020207661722044203d20303b0a2020202020202020766172204e203d20303b0a2020202020202020766172205f203d206e657720417272617928302c20302c20302c204d080230293b0a20202020202020207661722054203d206e657720417272617928302c20302c20302c2030293b0a2020202020202020766172206b203d20303b0a20202020202020207661722042203d206e657720417272617928353131293b0a2020202020202020766172206a203d206e657720417272617928313331303731293b0a20202020202020207661722052203d20303b0a20202020202020207661722050203d20303b0a2020202020202020766172204f203d20303b0a20202020202020207661722046203d20303b0a20202020202020207661722047203d20303b0a2020202020202020766172207a203d206e6577204172726179283232382c203232382c203232382c203232382c203232382c203232382c203232382c20323238293b0a20202020202020207661722057203d20303b0a20202020202020207661722055203d20303b0a2020202020202020766172205a203d20303b0a20202020202020207661722051203d206e657720417272617928312c20312c20302c2030293b0a2020202020202020636f6e7374204a203d204172726179283332293b0a2020202020202020766172206e743b0a20202020202020207661722072743b0a2020202020202020287274203d206e74207c7c20286e74203d207b7d29292e464d5f504742495453203d20393b0a202020202020202072742e464d5f524154494f42495453203d204d0802373b0a202020202020202072742e464d5f4c464f42495453203d20383b0a202020202020202072742e464d5f544c42495453203d20373b0a202020202020202072742e464d5f544c454e5453203d2031203c3c2072742e464d5f544c424954533b0a202020202020202072742e464d5f4c464f454e5453203d2031203c3c2072742e464d5f4c464f424954533b0a202020202020202072742e464d5f434c454e5453203d20383139323b0a202020202020202072742e464d5f4f5053494e42495453203d2031303b0a202020202020202072742e464d5f4f5053494e454e5453203d2031203c3c2072742e464d5f4f5053494e424954533b0a202020202020202072742e464d5f45475f424f54544f4d203d203935353b0a202020202020202072742e49533245435f5348494654203d203230202b2072742e464d5f504742495453202d2031333b0a20202020202020202866756e6374696f6e202829207b0a202020202020202020207661722074203d206e74207c7c20286e74203d207b7d293b0a202020202020202020202866756e6374696f6e20287429207b0a202020202020202020202020745b28742e747970654e203d2030295d203d2027747970654e273b0a202020202020202020202020745b28742e747970654d203d2031295d203d2027747970654d273b0a202020202020202020207d2928742e4f7054797065207c7c2028744d08022e4f7054797065203d207b7d29293b0a20202020202020202020742e4f70547970653b0a20202020202020202020742e706d7461626c653b0a20202020202020202020742e616d7461626c653b0a20202020202020202020742e7461626c656d616465203d2066616c73653b0a202020202020202020207661722065203d202866756e6374696f6e202829207b0a20202020202020202020202066756e6374696f6e20652829207b0a2020202020202020202020202020746869732e636869705f203d206e756c6c3b0a2020202020202020202020202020746869732e6f75745f203d20303b0a2020202020202020202020202020746869732e6f7574325f203d20303b0a2020202020202020202020202020746869732e696e325f203d20303b0a2020202020202020202020202020746869732e64705f203d20303b0a2020202020202020202020202020746869732e646574756e655f203d20303b0a2020202020202020202020202020746869732e646574756e65325f203d20303b0a2020202020202020202020202020746869732e6d756c7469706c655f203d20303b0a2020202020202020202020202020746869732e70675f636f756e745f203d20303b0a2020202020202020202020202020746869732e70675f646966665f203d20303b0a2020202020202020202020202020746869732e70675f646966665f6c666f5f203d20303b4d08020a2020202020202020202020202020746869732e626e5f203d20303b0a2020202020202020202020202020746869732e65675f6c6576656c5f203d20303b0a2020202020202020202020202020746869732e65675f6c6576656c5f6f6e5f6e6578745f70686173655f203d20303b0a2020202020202020202020202020746869732e65675f636f756e745f203d20303b0a2020202020202020202020202020746869732e65675f636f756e745f646966665f203d20303b0a2020202020202020202020202020746869732e65675f6f75745f203d20303b0a2020202020202020202020202020746869732e746c5f6f75745f203d20303b0a2020202020202020202020202020746869732e65675f726174655f203d20303b0a2020202020202020202020202020746869732e65675f63757276655f636f756e745f203d20303b0a2020202020202020202020202020746869732e6b65795f7363616c655f726174655f203d20303b0a2020202020202020202020202020746869732e65675f70686173655f203d20652e454750686173652e6e6578743b0a2020202020202020202020202020746869732e6d735f203d20303b0a2020202020202020202020202020746869732e746c5f203d20303b0a2020202020202020202020202020746869732e746c5f6c617463685f203d20303b0a2020202020202020202020202020746869732e61725f4d0802203d20303b0a2020202020202020202020202020746869732e64725f203d20303b0a2020202020202020202020202020746869732e73725f203d20303b0a2020202020202020202020202020746869732e736c5f203d20303b0a2020202020202020202020202020746869732e72725f203d20303b0a2020202020202020202020202020746869732e6b735f203d20303b0a2020202020202020202020202020746869732e6b65796f6e5f203d2066616c73653b0a2020202020202020202020202020746869732e616d6f6e5f203d2066616c73653b0a2020202020202020202020202020746869732e706172616d5f6368616e6765645f203d2066616c73653b0a2020202020202020202020202020746869732e6d7574655f203d2066616c73653b0a2020202020202020202020202020746869732e6462676f706f75745f203d20303b0a2020202020202020202020202020746869732e64626770676f75745f203d20303b0a20202020202020202020202020206966202821652e7461626c656861736d61646529207b0a20202020202020202020202020202020746869732e4d616b655461626c6528293b0a20202020202020202020202020207d0a2020202020202020202020202020746869732e61725f203d0a20202020202020202020202020202020746869732e64725f203d0a20202020202020202020202020202020746869732e4d080273725f203d0a20202020202020202020202020202020746869732e72725f203d0a20202020202020202020202020202020746869732e6b65795f7363616c655f726174655f203d0a202020202020202020202020202020202020303b0a2020202020202020202020202020746869732e616d735f203d20742e616d7461626c655b305d5b305d3b0a2020202020202020202020202020746869732e6d7574655f203d2066616c73653b0a2020202020202020202020202020746869732e6b65796f6e5f203d2066616c73653b0a2020202020202020202020202020746869732e746c5f6f75745f203d20303b0a2020202020202020202020202020746869732e6d756c7469706c655f203d20303b0a2020202020202020202020202020746869732e646574756e655f203d20303b0a2020202020202020202020202020746869732e646574756e65325f203d20303b0a2020202020202020202020202020746869732e6d735f203d20303b0a2020202020202020202020207d0a202020202020202020202020652e70726f746f747970652e53657443686970203d2066756e6374696f6e20287429207b0a2020202020202020202020202020746869732e636869705f203d20743b0a2020202020202020202020207d3b0a202020202020202020202020652e70726f746f747970652e5265736574203d2066756e6374696f6e202829207b0a20204d0802202020202020202020202020746869732e746c5f203d20746869732e746c5f6c617463685f203d203132373b0a2020202020202020202020202020746869732e5368696674506861736528652e454750686173652e6f6666293b0a2020202020202020202020202020746869732e65675f636f756e745f203d20303b0a2020202020202020202020202020746869732e65675f63757276655f636f756e745f203d20303b0a2020202020202020202020202020746869732e70675f636f756e745f203d20303b0a2020202020202020202020202020746869732e6f75745f203d20746869732e6f7574325f203d20303b0a2020202020202020202020202020746869732e706172616d5f6368616e6765645f203d20747275653b0a2020202020202020202020207d3b0a202020202020202020202020652e70726f746f747970652e4d616b655461626c65203d2066756e6374696f6e202829207b0a20202020202020202020202020207661722072203d20303b0a2020202020202020202020202020666f722028766172206e203d20303b206e203c203235363b206e2b2b29207b0a202020202020202020202020202020207661722063203d204d6174682e666c6f6f72284d6174682e706f7728322c203133202d206e202f2032353629293b0a2020202020202020202020202020202063203d202863202b2032292026202d343b0a202020204d0802202020202020202020202020652e636c7461626c655b722b2b5d203d20633b0a20202020202020202020202020202020652e636c7461626c655b722b2b5d203d202d633b0a20202020202020202020202020207d0a20202020202020202020202020207768696c65202872203c20742e464d5f434c454e545329207b0a20202020202020202020202020202020652e636c7461626c655b725d203d2028652e636c7461626c655b72202d203531325d202f203229207c20303b0a20202020202020202020202020202020722b2b3b0a20202020202020202020202020207d0a2020202020202020202020202020666f7220286e203d20303b206e203c20742e464d5f4f5053494e454e5453202f20323b206e2b2b29207b0a202020202020202020202020202020207661722069203d20282832202a206e202b203129202a204d6174682e504929202f20742e464d5f4f5053494e454e54533b0a202020202020202020202020202020207661722061203d20282d323536202a204d6174682e6c6f67284d6174682e73696e2869292929202f204d6174682e4c4e323b0a20202020202020202020202020202020766172206f203d204d6174682e666c6f6f722861202b20302e3529202b20313b0a20202020202020202020202020202020652e73696e657461626c655b6e5d203d2032202a206f3b0a20202020202020202020202020202020652e4d080273696e657461626c655b742e464d5f4f5053494e454e5453202f2032202b206e5d203d2032202a206f202b20313b0a20202020202020202020202020207d0a2020202020202020202020202020742e4d616b654c464f5461626c6528293b0a2020202020202020202020202020652e7461626c656861736d616465203d20747275653b0a2020202020202020202020207d3b0a202020202020202020202020652e70726f746f747970652e5365744450424e203d2066756e6374696f6e2028742c206529207b0a2020202020202020202020202020746869732e64705f203d20743b0a2020202020202020202020202020746869732e626e5f203d20653b0a2020202020202020202020202020746869732e706172616d5f6368616e6765645f203d20747275653b0a2020202020202020202020207d3b0a202020202020202020202020652e70726f746f747970652e50726570617265203d2066756e6374696f6e202829207b0a202020202020202020202020202069662028746869732e706172616d5f6368616e6765645f29207b0a2020202020202020202020202020202073776974636820280a2020202020202020202020202020202020202828746869732e706172616d5f6368616e6765645f203d2066616c7365292c0a20202020202020202020202020202020202028746869732e70675f646966665f203d0a2020202020202020204d0802202020202020202020202028746869732e64705f202b20652e64747461626c655b746869732e646574756e655f202b20746869732e626e5f5d29202a0a2020202020202020202020202020202020202020746869732e636869705f2e4765744d756c56616c756528746869732e646574756e65325f2c20746869732e6d756c7469706c655f29292c0a20202020202020202020202020202020202028746869732e70675f646966665f6c666f5f203d20746869732e70675f646966665f203e3e203131292c0a20202020202020202020202020202020202028746869732e6b65795f7363616c655f726174655f203d20746869732e626e5f203e3e202833202d20746869732e6b735f29292c0a20202020202020202020202020202020202028746869732e746c5f6f75745f203d20746869732e6d7574655f203f2031303233203a2038202a20746869732e746c5f292c0a202020202020202020202020202020202020746869732e65675f70686173655f290a2020202020202020202020202020202029207b0a2020202020202020202020202020202020206361736520652e454750686173652e61747461636b3a0a2020202020202020202020202020202020202020746869732e536574454752617465280a20202020202020202020202020202020202020202020746869732e61725f0a20202020202020202020202020202020202020204d0802202020203f204d6174682e6d696e2836332c20746869732e61725f202b20746869732e6b65795f7363616c655f726174655f290a2020202020202020202020202020202020202020202020203a20300a2020202020202020202020202020202020202020293b0a2020202020202020202020202020202020202020627265616b3b0a2020202020202020202020202020202020206361736520652e454750686173652e64656361793a0a2020202020202020202020202020202020202020746869732e536574454752617465280a20202020202020202020202020202020202020202020746869732e64725f0a2020202020202020202020202020202020202020202020203f204d6174682e6d696e2836332c20746869732e64725f202b20746869732e6b65795f7363616c655f726174655f290a2020202020202020202020202020202020202020202020203a20300a2020202020202020202020202020202020202020293b0a2020202020202020202020202020202020202020746869732e65675f6c6576656c5f6f6e5f6e6578745f70686173655f203d2038202a20746869732e736c5f3b0a2020202020202020202020202020202020202020627265616b3b0a2020202020202020202020202020202020206361736520652e454750686173652e7375737461696e3a0a2020202020202020202020202020202020202020746869732e534d08026574454752617465280a20202020202020202020202020202020202020202020746869732e73725f0a2020202020202020202020202020202020202020202020203f204d6174682e6d696e2836332c20746869732e73725f202b20746869732e6b65795f7363616c655f726174655f290a2020202020202020202020202020202020202020202020203a20300a2020202020202020202020202020202020202020293b0a2020202020202020202020202020202020202020627265616b3b0a2020202020202020202020202020202020206361736520652e454750686173652e72656c656173653a0a2020202020202020202020202020202020202020746869732e536574454752617465280a202020202020202020202020202020202020202020204d6174682e6d696e2836332c20746869732e72725f202b20746869732e6b65795f7363616c655f726174655f290a2020202020202020202020202020202020202020293b0a202020202020202020202020202020207d0a20202020202020202020202020202020746869732e616d735f203d0a202020202020202020202020202020202020742e616d7461626c655b746869732e747970655f5d5b746869732e616d6f6e5f203f2028746869732e6d735f203e3e20342920262033203a20305d3b0a20202020202020202020202020202020746869732e454755706461746528293b0a20204d08022020202020202020202020202020746869732e6462676f706f75745f203d20303b0a20202020202020202020202020207d0a2020202020202020202020207d3b0a202020202020202020202020652e70726f746f747970652e53686966745068617365203d2066756e6374696f6e20286e29207b0a202020202020202020202020202073776974636820286e29207b0a202020202020202020202020202020206361736520652e454750686173652e61747461636b3a0a20202020202020202020202020202020202069662028746869732e61725f202b20746869732e6b65795f7363616c655f726174655f203c20363229207b0a2020202020202020202020202020202020202020746869732e536574454752617465280a20202020202020202020202020202020202020202020746869732e61725f0a2020202020202020202020202020202020202020202020203f204d6174682e6d696e2836332c20746869732e61725f202b20746869732e6b65795f7363616c655f726174655f290a2020202020202020202020202020202020202020202020203a20300a2020202020202020202020202020202020202020293b0a2020202020202020202020202020202020202020746869732e65675f70686173655f203d20652e454750686173652e61747461636b3b0a2020202020202020202020202020202020202020627265616b3b0a2020204d08022020202020202020202020202020207d0a202020202020202020202020202020206361736520652e454750686173652e64656361793a0a20202020202020202020202020202020202069662028746869732e736c5f29207b0a2020202020202020202020202020202020202020746869732e65675f6c6576656c5f203d20303b0a2020202020202020202020202020202020202020746869732e65675f6c6576656c5f6f6e5f6e6578745f70686173655f203d2038202a20746869732e736c5f3b0a2020202020202020202020202020202020202020746869732e536574454752617465280a20202020202020202020202020202020202020202020746869732e64725f0a2020202020202020202020202020202020202020202020203f204d6174682e6d696e2836332c20746869732e64725f202b20746869732e6b65795f7363616c655f726174655f290a2020202020202020202020202020202020202020202020203a20300a2020202020202020202020202020202020202020293b0a2020202020202020202020202020202020202020746869732e65675f70686173655f203d20652e454750686173652e64656361793b0a2020202020202020202020202020202020202020627265616b3b0a2020202020202020202020202020202020207d0a202020202020202020202020202020206361736520652e454750686173652e737573744d080261696e3a0a202020202020202020202020202020202020746869732e65675f6c6576656c5f203d2038202a20746869732e736c5f3b0a202020202020202020202020202020202020746869732e65675f6c6576656c5f6f6e5f6e6578745f70686173655f203d20313032343b0a202020202020202020202020202020202020746869732e536574454752617465280a2020202020202020202020202020202020202020746869732e73725f203f204d6174682e6d696e2836332c20746869732e73725f202b20746869732e6b65795f7363616c655f726174655f29203a20300a202020202020202020202020202020202020293b0a202020202020202020202020202020202020746869732e65675f70686173655f203d20652e454750686173652e7375737461696e3b0a202020202020202020202020202020202020627265616b3b0a202020202020202020202020202020206361736520652e454750686173652e72656c656173653a0a202020202020202020202020202020202020696620280a2020202020202020202020202020202020202020746869732e65675f70686173655f203d3d3d20652e454750686173652e61747461636b207c7c0a2020202020202020202020202020202020202020746869732e65675f6c6576656c5f203c20742e464d5f45475f424f54544f4d0a20202020202020202020202020202020202029207b0a4d08022020202020202020202020202020202020202020746869732e65675f6c6576656c5f6f6e5f6e6578745f70686173655f203d20313032343b0a2020202020202020202020202020202020202020746869732e536574454752617465280a202020202020202020202020202020202020202020204d6174682e6d696e2836332c20746869732e72725f202b20746869732e6b65795f7363616c655f726174655f290a2020202020202020202020202020202020202020293b0a2020202020202020202020202020202020202020746869732e65675f70686173655f203d20652e454750686173652e72656c656173653b0a2020202020202020202020202020202020202020627265616b3b0a2020202020202020202020202020202020207d0a202020202020202020202020202020206361736520652e454750686173652e6f66663a0a2020202020202020202020202020202064656661756c743a0a202020202020202020202020202020202020746869732e65675f6c6576656c5f203d20742e464d5f45475f424f54544f4d3b0a202020202020202020202020202020202020746869732e65675f6c6576656c5f6f6e5f6e6578745f70686173655f203d20742e464d5f45475f424f54544f4d3b0a202020202020202020202020202020202020746869732e454755706461746528293b0a2020202020202020202020202020202020207468694d0802732e5365744547526174652830293b0a202020202020202020202020202020202020746869732e65675f70686173655f203d20652e454750686173652e6f66663b0a20202020202020202020202020207d0a2020202020202020202020207d3b0a202020202020202020202020652e70726f746f747970652e536574464e756d203d2066756e6374696f6e20287429207b0a2020202020202020202020202020746869732e64705f203d2028323034372026207429203c3c20282874203e3e2031312920262037293b0a2020202020202020202020202020746869732e626e5f203d20652e6e6f74657461626c655b2874203e3e2037292026203132375d3b0a2020202020202020202020202020746869732e706172616d5f6368616e6765645f203d20747275653b0a2020202020202020202020207d3b0a202020202020202020202020652e70726f746f747970652e4c6f67546f4c696e203d2066756e6374696f6e20286e29207b0a2020202020202020202020202020696620286e203c20742e464d5f434c454e545329207b0a2020202020202020202020202020202072657475726e20652e636c7461626c655b6e5d3b0a20202020202020202020202020207d20656c7365207b0a2020202020202020202020202020202072657475726e20303b0a20202020202020202020202020207d0a2020202020202020202020207d3b0a2020204d0802202020202020202020652e70726f746f747970652e4547557064617465203d2066756e6374696f6e202829207b0a2020202020202020202020202020746869732e65675f6f75745f203d204d6174682e6d696e28746869732e746c5f6f75745f202b20746869732e65675f6c6576656c5f2c203130323329203c3c20333b0a2020202020202020202020207d3b0a202020202020202020202020652e70726f746f747970652e536574454752617465203d2066756e6374696f6e20287429207b0a2020202020202020202020202020746869732e65675f726174655f203d20743b0a2020202020202020202020202020746869732e65675f636f756e745f646966665f203d0a20202020202020202020202020202020652e64656361797461626c65325b74203e3e20325d202a20746869732e636869705f2e476574526174696f28293b0a2020202020202020202020207d3b0a202020202020202020202020652e70726f746f747970652e454743616c63203d2066756e6374696f6e202829207b0a2020202020202020202020202020746869732e65675f636f756e745f203d2036313431203c3c20742e464d5f524154494f424954533b0a202020202020202020202020202069662028746869732e65675f70686173655f203d3d3d20652e454750686173652e61747461636b29207b0a20202020202020202020202020202020766172206e4d0802203d20652e61747461636b7461626c655b746869732e65675f726174655f5d5b37202620746869732e65675f63757276655f636f756e745f5d3b0a20202020202020202020202020202020696620286e203e3d203029207b0a202020202020202020202020202020202020746869732e65675f6c6576656c5f202d3d2031202b2028746869732e65675f6c6576656c5f203e3e206e293b0a20202020202020202020202020202020202069662028746869732e65675f6c6576656c5f203c3d203029207b0a2020202020202020202020202020202020202020746869732e5368696674506861736528652e454750686173652e6465636179293b0a2020202020202020202020202020202020207d0a202020202020202020202020202020207d0a20202020202020202020202020202020746869732e454755706461746528293b0a20202020202020202020202020207d20656c7365207b0a20202020202020202020202020202020746869732e65675f6c6576656c5f202b3d0a202020202020202020202020202020202020652e64656361797461626c65315b746869732e65675f726174655f5d5b37202620746869732e65675f63757276655f636f756e745f5d3b0a2020202020202020202020202020202069662028746869732e65675f6c6576656c5f203e3d20746869732e65675f6c6576656c5f6f6e5f6e6578745f70686173655f294d0802207b0a202020202020202020202020202020202020746869732e5368696674506861736528746869732e65675f70686173655f202b2031293b0a202020202020202020202020202020207d0a20202020202020202020202020202020746869732e454755706461746528293b0a20202020202020202020202020207d0a2020202020202020202020202020746869732e65675f63757276655f636f756e745f2b2b3b0a2020202020202020202020207d3b0a202020202020202020202020652e70726f746f747970652e454753746570203d2066756e6374696f6e202829207b0a2020202020202020202020202020746869732e65675f636f756e745f202d3d20746869732e65675f636f756e745f646966665f3b0a202020202020202020202020202069662028746869732e65675f636f756e745f203c3d203029207b0a20202020202020202020202020202020746869732e454743616c6328293b0a20202020202020202020202020207d0a2020202020202020202020207d3b0a202020202020202020202020652e70726f746f747970652e504743616c63203d2066756e6374696f6e202829207b0a20202020202020202020202020207661722074203d20746869732e70675f636f756e745f3b0a2020202020202020202020202020746869732e70675f636f756e745f202b3d20746869732e70675f646966665f3b0a202020202020204d080220202020202020746869732e64626770676f75745f203d20743b0a202020202020202020202020202072657475726e20743b0a2020202020202020202020207d3b0a202020202020202020202020652e70726f746f747970652e504743616c634c203d2066756e6374696f6e202829207b0a20202020202020202020202020207661722074203d20746869732e70675f636f756e745f3b0a2020202020202020202020202020746869732e70675f636f756e745f202b3d0a20202020202020202020202020202020746869732e70675f646966665f202b0a202020202020202020202020202020202828746869732e70675f646966665f6c666f5f202a20746869732e636869705f2e476574504d56282929203e3e2035293b0a2020202020202020202020202020746869732e64626770676f75745f203d20743b0a202020202020202020202020202072657475726e20743b0a2020202020202020202020207d3b0a202020202020202020202020652e70726f746f747970652e43616c63203d2066756e6374696f6e20286e29207b0a2020202020202020202020202020746869732e45475374657028293b0a2020202020202020202020202020746869732e6f7574325f203d20746869732e6f75745f3b0a20202020202020202020202020207661722072203d20746869732e504743616c632829203e3e20283230202b20742e464d5f50474d080242495453202d20742e464d5f4f5053494e42495453293b0a202020202020202020202020202072202b3d0a202020202020202020202020202020206e203e3e20283230202b20742e464d5f504742495453202d20742e464d5f4f5053494e42495453202d202832202b20742e49533245435f534849465429293b0a2020202020202020202020202020746869732e6f75745f203d20746869732e4c6f67546f4c696e280a20202020202020202020202020202020746869732e65675f6f75745f202b20652e73696e657461626c655b7220262028742e464d5f4f5053494e454e5453202d2031295d0a2020202020202020202020202020293b0a2020202020202020202020202020746869732e6462676f706f75745f203d20746869732e6f75745f3b0a202020202020202020202020202072657475726e20746869732e6f75745f3b0a2020202020202020202020207d3b0a202020202020202020202020652e70726f746f747970652e43616c634c203d2066756e6374696f6e20286e29207b0a2020202020202020202020202020746869732e45475374657028293b0a20202020202020202020202020207661722072203d20746869732e504743616c634c2829203e3e20283230202b20742e464d5f504742495453202d20742e464d5f4f5053494e42495453293b0a202020202020202020202020202072202b3d0a2020202020202020204d0802202020202020206e203e3e20283230202b20742e464d5f504742495453202d20742e464d5f4f5053494e42495453202d202832202b20742e49533245435f534849465429293b0a2020202020202020202020202020746869732e6f75745f203d20746869732e4c6f67546f4c696e280a20202020202020202020202020202020746869732e65675f6f75745f202b0a202020202020202020202020202020202020652e73696e657461626c655b7220262028742e464d5f4f5053494e454e5453202d2031295d202b0a202020202020202020202020202020202020746869732e616d735f5b746869732e636869705f2e476574414d4c28295d0a2020202020202020202020202020293b0a2020202020202020202020202020746869732e6462676f706f75745f203d20746869732e6f75745f3b0a202020202020202020202020202072657475726e20746869732e6f75745f3b0a2020202020202020202020207d3b0a202020202020202020202020652e70726f746f747970652e43616c634e203d2066756e6374696f6e20287429207b0a2020202020202020202020202020746869732e45475374657028293b0a20202020202020202020202020207661722065203d204d6174682e6d617828302c2031303233202d2028746869732e746c5f6f75745f202b20746869732e65675f6c6576656c5f2929203c3c20313b0a20202020202020204d080220202020202074203d2028312026207429202d20313b0a2020202020202020202020202020746869732e6f75745f203d202865202b207429205e20743b0a2020202020202020202020202020746869732e6462676f706f75745f203d20746869732e6f75745f3b0a202020202020202020202020202072657475726e20746869732e6f75745f3b0a2020202020202020202020207d3b0a202020202020202020202020652e70726f746f747970652e43616c634642203d2066756e6374696f6e20286e29207b0a2020202020202020202020202020746869732e45475374657028293b0a20202020202020202020202020207661722072203d20746869732e6f75745f202b20746869732e6f7574325f3b0a2020202020202020202020202020746869732e6f7574325f203d20746869732e6f75745f3b0a20202020202020202020202020207661722063203d20746869732e504743616c632829203e3e20283230202b20742e464d5f504742495453202d20742e464d5f4f5053494e42495453293b0a2020202020202020202020202020696620286e203c20333129207b0a2020202020202020202020202020202063202b3d0a202020202020202020202020202020202020282872203c3c202831202b20742e49533245435f53484946542929203e3e206e29203e3e0a202020202020202020202020202020202020283230202b20742e464d4d08025f504742495453202d20742e464d5f4f5053494e42495453293b0a20202020202020202020202020207d0a2020202020202020202020202020746869732e6f75745f203d20746869732e4c6f67546f4c696e280a20202020202020202020202020202020746869732e65675f6f75745f202b20652e73696e657461626c655b6320262028742e464d5f4f5053494e454e5453202d2031295d0a2020202020202020202020202020293b0a2020202020202020202020202020746869732e6462676f706f75745f203d20746869732e6f7574325f3b0a202020202020202020202020202072657475726e20746869732e6f7574325f3b0a2020202020202020202020207d3b0a202020202020202020202020652e70726f746f747970652e43616c6346424c203d2066756e6374696f6e20286e29207b0a2020202020202020202020202020746869732e45475374657028293b0a20202020202020202020202020207661722072203d20746869732e6f75745f202b20746869732e6f7574325f3b0a2020202020202020202020202020746869732e6f7574325f203d20746869732e6f75745f3b0a20202020202020202020202020207661722063203d20746869732e504743616c634c2829203e3e20283230202b20742e464d5f504742495453202d20742e464d5f4f5053494e42495453293b0a2020202020202020202020202020696620286e204d08023c20333129207b0a2020202020202020202020202020202063202b3d0a202020202020202020202020202020202020282872203c3c202831202b20742e49533245435f53484946542929203e3e206e29203e3e0a202020202020202020202020202020202020283230202b20742e464d5f504742495453202d20742e464d5f4f5053494e42495453293b0a20202020202020202020202020207d0a2020202020202020202020202020746869732e6f75745f203d20746869732e4c6f67546f4c696e280a20202020202020202020202020202020746869732e65675f6f75745f202b0a202020202020202020202020202020202020652e73696e657461626c655b6320262028742e464d5f4f5053494e454e5453202d2031295d202b0a202020202020202020202020202020202020746869732e616d735f5b746869732e636869705f2e476574414d4c28295d0a2020202020202020202020202020293b0a2020202020202020202020202020746869732e6462676f706f75745f203d20746869732e6f75745f3b0a202020202020202020202020202072657475726e20746869732e6f75745f3b0a2020202020202020202020207d3b0a202020202020202020202020652e70726f746f747970652e52657365744642203d2066756e6374696f6e202829207b0a2020202020202020202020202020746869732e6f75745f203d20746869732e6f4d08027574325f203d20303b0a2020202020202020202020207d3b0a202020202020202020202020652e70726f746f747970652e4b65794f6e203d2066756e6374696f6e202829207b0a20202020202020202020202020206966202821746869732e6b65796f6e5f29207b0a20202020202020202020202020202020746869732e6b65796f6e5f203d20747275653b0a20202020202020202020202020202020696620280a202020202020202020202020202020202020746869732e65675f70686173655f203d3d3d20652e454750686173652e6f6666207c7c0a202020202020202020202020202020202020746869732e65675f70686173655f203d3d3d20652e454750686173652e72656c656173650a2020202020202020202020202020202029207b0a202020202020202020202020202020202020746869732e5368696674506861736528652e454750686173652e61747461636b293b0a202020202020202020202020202020202020746869732e454755706461746528293b0a202020202020202020202020202020202020746869732e696e325f203d20746869732e6f75745f203d20746869732e6f7574325f203d20303b0a202020202020202020202020202020202020746869732e70675f636f756e745f203d20303b0a202020202020202020202020202020207d0a20202020202020202020202020207d0a20202020202020202020204d0802207d3b0a202020202020202020202020652e70726f746f747970652e4b65794f6666203d2066756e6374696f6e202829207b0a202020202020202020202020202069662028746869732e6b65796f6e5f29207b0a20202020202020202020202020202020746869732e6b65796f6e5f203d2066616c73653b0a20202020202020202020202020202020746869732e5368696674506861736528652e454750686173652e72656c65617365293b0a20202020202020202020202020207d0a2020202020202020202020207d3b0a202020202020202020202020652e70726f746f747970652e49734f6e203d2066756e6374696f6e202829207b0a202020202020202020202020202072657475726e20746869732e65675f70686173655f202d20652e454750686173652e6f66663b0a2020202020202020202020207d3b0a202020202020202020202020652e70726f746f747970652e5365744454203d2066756e6374696f6e20287429207b0a2020202020202020202020202020746869732e646574756e655f203d203332202a20743b0a2020202020202020202020202020746869732e706172616d5f6368616e6765645f203d20747275653b0a2020202020202020202020207d3b0a202020202020202020202020652e70726f746f747970652e536574445432203d2066756e6374696f6e20287429207b0a20202020202020202020202020204d0802746869732e646574756e65325f203d2033202620743b0a2020202020202020202020202020746869732e706172616d5f6368616e6765645f203d20747275653b0a2020202020202020202020207d3b0a202020202020202020202020652e70726f746f747970652e5365744d554c5449203d2066756e6374696f6e20287429207b0a2020202020202020202020202020746869732e6d756c7469706c655f203d20743b0a2020202020202020202020202020746869732e706172616d5f6368616e6765645f203d20747275653b0a2020202020202020202020207d3b0a202020202020202020202020652e70726f746f747970652e536574544c203d2066756e6374696f6e20287429207b0a2020202020202020202020202020746869732e746c5f203d20743b0a2020202020202020202020202020746869732e706172616d5f6368616e6765645f203d20747275653b0a2020202020202020202020207d3b0a202020202020202020202020652e70726f746f747970652e5365744152203d2066756e6374696f6e20287429207b0a2020202020202020202020202020746869732e61725f203d20743b0a2020202020202020202020202020746869732e706172616d5f6368616e6765645f203d20747275653b0a2020202020202020202020207d3b0a202020202020202020202020652e70726f746f747970652e5365744452203d2066756e4d08026374696f6e20287429207b0a2020202020202020202020202020746869732e64725f203d20743b0a2020202020202020202020202020746869732e706172616d5f6368616e6765645f203d20747275653b0a2020202020202020202020207d3b0a202020202020202020202020652e70726f746f747970652e5365745352203d2066756e6374696f6e20287429207b0a2020202020202020202020202020746869732e73725f203d20743b0a2020202020202020202020202020746869732e706172616d5f6368616e6765645f203d20747275653b0a2020202020202020202020207d3b0a202020202020202020202020652e70726f746f747970652e536574534c203d2066756e6374696f6e20287429207b0a2020202020202020202020202020746869732e736c5f203d20743b0a2020202020202020202020202020746869732e706172616d5f6368616e6765645f203d20747275653b0a2020202020202020202020207d3b0a202020202020202020202020652e70726f746f747970652e5365745252203d2066756e6374696f6e20287429207b0a2020202020202020202020202020746869732e72725f203d20743b0a2020202020202020202020202020746869732e706172616d5f6368616e6765645f203d20747275653b0a2020202020202020202020207d3b0a202020202020202020202020652e70726f746f747970652e5365744d08024b53203d2066756e6374696f6e20287429207b0a2020202020202020202020202020746869732e6b735f203d20743b0a2020202020202020202020202020746869732e706172616d5f6368616e6765645f203d20747275653b0a2020202020202020202020207d3b0a202020202020202020202020652e70726f746f747970652e536574414d4f4e203d2066756e6374696f6e20287429207b0a2020202020202020202020202020746869732e616d6f6e5f203d20743b0a2020202020202020202020202020746869732e706172616d5f6368616e6765645f203d20747275653b0a2020202020202020202020207d3b0a202020202020202020202020652e70726f746f747970652e4d757465203d2066756e6374696f6e20287429207b0a2020202020202020202020202020746869732e6d7574655f203d20743b0a2020202020202020202020202020746869732e706172616d5f6368616e6765645f203d20747275653b0a2020202020202020202020207d3b0a202020202020202020202020652e70726f746f747970652e5365744d53203d2066756e6374696f6e20287429207b0a2020202020202020202020202020746869732e6d735f203d20743b0a2020202020202020202020202020746869732e706172616d5f6368616e6765645f203d20747275653b0a2020202020202020202020207d3b0a202020202020202020202020652e4d080270726f746f747970652e4f7574203d2066756e6374696f6e202829207b0a202020202020202020202020202072657475726e20746869732e6f75745f3b0a2020202020202020202020207d3b0a202020202020202020202020652e6e6f74657461626c65203d205b0a2020202020202020202020202020302c20302c20302c20302c20302c20302c20302c20312c20322c20332c20332c20332c20332c20332c20332c20332c20342c20342c20342c20342c20342c20342c0a2020202020202020202020202020342c20352c20362c20372c20372c20372c20372c20372c20372c20372c20382c20382c20382c20382c20382c20382c20382c20392c2031302c2031312c2031312c0a202020202020202020202020202031312c2031312c2031312c2031312c2031312c2031322c2031322c2031322c2031322c2031322c2031322c2031322c2031332c2031342c2031352c2031352c0a202020202020202020202020202031352c2031352c2031352c2031352c2031352c2031362c2031362c2031362c2031362c2031362c2031362c2031362c2031372c2031382c2031392c2031392c0a202020202020202020202020202031392c2031392c2031392c2031392c2031392c2032302c2032302c2032302c2032302c2032302c2032302c2032302c2032312c2032322c2032332c2032332c0a202020202020202020202020202032332c2032332c4d08022032332c2032332c2032332c2032342c2032342c2032342c2032342c2032342c2032342c2032342c2032352c2032362c2032372c2032372c0a202020202020202020202020202032372c2032372c2032372c2032372c2032372c2032382c2032382c2032382c2032382c2032382c2032382c2032382c2032392c2033302c2033312c2033312c0a202020202020202020202020202033312c2033312c2033312c2033312c2033312c0a2020202020202020202020205d3b0a202020202020202020202020652e64747461626c65203d205b0a2020202020202020202020202020302c20302c20302c20302c20302c20302c20302c20302c20302c20302c20302c20302c20302c20302c20302c20302c20302c20302c20302c20302c20302c20302c0a2020202020202020202020202020302c20302c20302c20302c20302c20302c20302c20302c20302c20302c20302c20302c20302c20302c20322c20322c20322c20322c20322c20322c20322c20322c0a2020202020202020202020202020342c20342c20342c20342c20342c20362c20362c20362c20382c20382c20382c2031302c2031302c2031322c2031322c2031342c2031362c2031362c2031362c0a202020202020202020202020202031362c20322c20322c20322c20322c20342c20342c20342c20342c20342c20362c20362c20362c20382c20382c20382c2031302c2031302c204d080231322c2031322c0a202020202020202020202020202031342c2031362c2031362c2031382c2032302c2032322c2032342c2032362c2032382c2033322c2033322c2033322c2033322c20342c20342c20342c20342c20342c0a2020202020202020202020202020362c20362c20362c20382c20382c20382c2031302c2031302c2031322c2031322c2031342c2031362c2031362c2031382c2032302c2032322c2032342c2032362c0a202020202020202020202020202032382c2033322c2033342c2033382c2034302c2034342c2034342c2034342c2034342c20302c20302c20302c20302c20302c20302c20302c20302c20302c20302c0a2020202020202020202020202020302c20302c20302c20302c20302c20302c20302c20302c20302c20302c20302c20302c20302c20302c20302c20302c20302c20302c20302c20302c20302c20302c0a2020202020202020202020202020302c20302c20302c20302c202d322c202d322c202d322c202d322c202d322c202d322c202d322c202d322c202d342c202d342c202d342c202d342c202d342c0a20202020202020202020202020202d362c202d362c202d362c202d382c202d382c202d382c202d31302c202d31302c202d31322c202d31322c202d31342c202d31362c202d31362c202d31362c0a20202020202020202020202020202d31362c202d322c202d322c202d322c202d322c204d08022d342c202d342c202d342c202d342c202d342c202d362c202d362c202d362c202d382c202d382c202d382c0a20202020202020202020202020202d31302c202d31302c202d31322c202d31322c202d31342c202d31362c202d31362c202d31382c202d32302c202d32322c202d32342c202d32362c202d32382c0a20202020202020202020202020202d33322c202d33322c202d33322c202d33322c202d342c202d342c202d342c202d342c202d342c202d362c202d362c202d362c202d382c202d382c202d382c0a20202020202020202020202020202d31302c202d31302c202d31322c202d31322c202d31342c202d31362c202d31362c202d31382c202d32302c202d32322c202d32342c202d32362c202d32382c0a20202020202020202020202020202d33322c202d33342c202d33382c202d34302c202d34342c202d34342c202d34342c202d34342c0a2020202020202020202020205d3b0a202020202020202020202020652e64656361797461626c6531203d205b0a20202020202020202020202020205b302c20302c20302c20302c20302c20302c20302c20305d2c0a20202020202020202020202020205b302c20302c20302c20302c20302c20302c20302c20305d2c0a20202020202020202020202020205b312c20312c20312c20312c20312c20312c20312c20315d2c0a20202020202020202020202020205b312c20312c204d0802312c20312c20312c20312c20312c20315d2c0a20202020202020202020202020205b312c20312c20312c20312c20312c20312c20312c20315d2c0a20202020202020202020202020205b312c20312c20312c20312c20312c20312c20312c20315d2c0a20202020202020202020202020205b312c20312c20312c20302c20312c20312c20312c20305d2c0a20202020202020202020202020205b312c20312c20312c20302c20312c20312c20312c20305d2c0a20202020202020202020202020205b312c20302c20312c20302c20312c20302c20312c20305d2c0a20202020202020202020202020205b312c20312c20312c20302c20312c20302c20312c20305d2c0a20202020202020202020202020205b312c20312c20312c20302c20312c20312c20312c20305d2c0a20202020202020202020202020205b312c20312c20312c20312c20312c20312c20312c20305d2c0a20202020202020202020202020205b312c20302c20312c20302c20312c20302c20312c20305d2c0a20202020202020202020202020205b312c20312c20312c20302c20312c20302c20312c20305d2c0a20202020202020202020202020205b312c20312c20312c20302c20312c20312c20312c20305d2c0a20202020202020202020202020205b312c20312c20312c20312c20312c20312c20312c20305d2c0a20202020202020202020202020205b312c20302c204d0802312c20302c20312c20302c20312c20305d2c0a20202020202020202020202020205b312c20312c20312c20302c20312c20302c20312c20305d2c0a20202020202020202020202020205b312c20312c20312c20302c20312c20312c20312c20305d2c0a20202020202020202020202020205b312c20312c20312c20312c20312c20312c20312c20305d2c0a20202020202020202020202020205b312c20302c20312c20302c20312c20302c20312c20305d2c0a20202020202020202020202020205b312c20312c20312c20302c20312c20302c20312c20305d2c0a20202020202020202020202020205b312c20312c20312c20302c20312c20312c20312c20305d2c0a20202020202020202020202020205b312c20312c20312c20312c20312c20312c20312c20305d2c0a20202020202020202020202020205b312c20302c20312c20302c20312c20302c20312c20305d2c0a20202020202020202020202020205b312c20312c20312c20302c20312c20302c20312c20305d2c0a20202020202020202020202020205b312c20312c20312c20302c20312c20312c20312c20305d2c0a20202020202020202020202020205b312c20312c20312c20312c20312c20312c20312c20305d2c0a20202020202020202020202020205b312c20302c20312c20302c20312c20302c20312c20305d2c0a20202020202020202020202020205b312c20312c204d0802312c20302c20312c20302c20312c20305d2c0a20202020202020202020202020205b312c20312c20312c20302c20312c20312c20312c20305d2c0a20202020202020202020202020205b312c20312c20312c20312c20312c20312c20312c20305d2c0a20202020202020202020202020205b312c20302c20312c20302c20312c20302c20312c20305d2c0a20202020202020202020202020205b312c20312c20312c20302c20312c20302c20312c20305d2c0a20202020202020202020202020205b312c20312c20312c20302c20312c20312c20312c20305d2c0a20202020202020202020202020205b312c20312c20312c20312c20312c20312c20312c20305d2c0a20202020202020202020202020205b312c20302c20312c20302c20312c20302c20312c20305d2c0a20202020202020202020202020205b312c20312c20312c20302c20312c20302c20312c20305d2c0a20202020202020202020202020205b312c20312c20312c20302c20312c20312c20312c20305d2c0a20202020202020202020202020205b312c20312c20312c20312c20312c20312c20312c20305d2c0a20202020202020202020202020205b312c20302c20312c20302c20312c20302c20312c20305d2c0a20202020202020202020202020205b312c20312c20312c20302c20312c20302c20312c20305d2c0a20202020202020202020202020205b312c20312c204d0802312c20302c20312c20312c20312c20305d2c0a20202020202020202020202020205b312c20312c20312c20312c20312c20312c20312c20305d2c0a20202020202020202020202020205b312c20302c20312c20302c20312c20302c20312c20305d2c0a20202020202020202020202020205b312c20312c20312c20302c20312c20302c20312c20305d2c0a20202020202020202020202020205b312c20312c20312c20302c20312c20312c20312c20305d2c0a20202020202020202020202020205b312c20312c20312c20312c20312c20312c20312c20305d2c0a20202020202020202020202020205b312c20312c20312c20312c20312c20312c20312c20315d2c0a20202020202020202020202020205b322c20312c20312c20312c20322c20312c20312c20315d2c0a20202020202020202020202020205b322c20312c20322c20312c20322c20312c20322c20315d2c0a20202020202020202020202020205b322c20322c20322c20312c20322c20322c20322c20315d2c0a20202020202020202020202020205b322c20322c20322c20322c20322c20322c20322c20325d2c0a20202020202020202020202020205b342c20322c20322c20322c20342c20322c20322c20325d2c0a20202020202020202020202020205b342c20322c20342c20322c20342c20322c20342c20325d2c0a20202020202020202020202020205b342c20342c204d0802342c20322c20342c20342c20342c20325d2c0a20202020202020202020202020205b342c20342c20342c20342c20342c20342c20342c20345d2c0a20202020202020202020202020205b382c20342c20342c20342c20382c20342c20342c20345d2c0a20202020202020202020202020205b382c20342c20382c20342c20382c20342c20382c20345d2c0a20202020202020202020202020205b382c20382c20382c20342c20382c20382c20382c20345d2c0a20202020202020202020202020205b31362c2031362c2031362c2031362c2031362c2031362c2031362c2031365d2c0a20202020202020202020202020205b31362c2031362c2031362c2031362c2031362c2031362c2031362c2031365d2c0a20202020202020202020202020205b31362c2031362c2031362c2031362c2031362c2031362c2031362c2031365d2c0a20202020202020202020202020205b31362c2031362c2031362c2031362c2031362c2031362c2031362c2031365d2c0a2020202020202020202020205d3b0a202020202020202020202020652e64656361797461626c6532203d205b0a2020202020202020202020202020312c20322c20342c20382c2031362c2033322c2036342c203132382c203235362c203531322c20313032342c20323034372c20323034372c20323034372c0a2020202020202020202020202020323034372c20323034372c0a204d080220202020202020202020205d3b0a202020202020202020202020652e61747461636b7461626c65203d205b0a20202020202020202020202020205b2d312c202d312c202d312c202d312c202d312c202d312c202d312c202d315d2c0a20202020202020202020202020205b2d312c202d312c202d312c202d312c202d312c202d312c202d312c202d315d2c0a20202020202020202020202020205b342c20342c20342c20342c20342c20342c20342c20345d2c0a20202020202020202020202020205b342c20342c20342c20342c20342c20342c20342c20345d2c0a20202020202020202020202020205b342c20342c20342c20342c20342c20342c20342c20345d2c0a20202020202020202020202020205b342c20342c20342c20342c20342c20342c20342c20345d2c0a20202020202020202020202020205b342c20342c20342c202d312c20342c20342c20342c202d315d2c0a20202020202020202020202020205b342c20342c20342c202d312c20342c20342c20342c202d315d2c0a20202020202020202020202020205b342c202d312c20342c202d312c20342c202d312c20342c202d315d2c0a20202020202020202020202020205b342c20342c20342c202d312c20342c202d312c20342c202d315d2c0a20202020202020202020202020205b342c20342c20342c202d312c20342c20342c20342c202d315d2c0a202020202020204d0802202020202020205b342c20342c20342c20342c20342c20342c20342c202d315d2c0a20202020202020202020202020205b342c202d312c20342c202d312c20342c202d312c20342c202d315d2c0a20202020202020202020202020205b342c20342c20342c202d312c20342c202d312c20342c202d315d2c0a20202020202020202020202020205b342c20342c20342c202d312c20342c20342c20342c202d315d2c0a20202020202020202020202020205b342c20342c20342c20342c20342c20342c20342c202d315d2c0a20202020202020202020202020205b342c202d312c20342c202d312c20342c202d312c20342c202d315d2c0a20202020202020202020202020205b342c20342c20342c202d312c20342c202d312c20342c202d315d2c0a20202020202020202020202020205b342c20342c20342c202d312c20342c20342c20342c202d315d2c0a20202020202020202020202020205b342c20342c20342c20342c20342c20342c20342c202d315d2c0a20202020202020202020202020205b342c202d312c20342c202d312c20342c202d312c20342c202d315d2c0a20202020202020202020202020205b342c20342c20342c202d312c20342c202d312c20342c202d315d2c0a20202020202020202020202020205b342c20342c20342c202d312c20342c20342c20342c202d315d2c0a20202020202020202020202020205b342c4d080220342c20342c20342c20342c20342c20342c202d315d2c0a20202020202020202020202020205b342c202d312c20342c202d312c20342c202d312c20342c202d315d2c0a20202020202020202020202020205b342c20342c20342c202d312c20342c202d312c20342c202d315d2c0a20202020202020202020202020205b342c20342c20342c202d312c20342c20342c20342c202d315d2c0a20202020202020202020202020205b342c20342c20342c20342c20342c20342c20342c202d315d2c0a20202020202020202020202020205b342c202d312c20342c202d312c20342c202d312c20342c202d315d2c0a20202020202020202020202020205b342c20342c20342c202d312c20342c202d312c20342c202d315d2c0a20202020202020202020202020205b342c20342c20342c202d312c20342c20342c20342c202d315d2c0a20202020202020202020202020205b342c20342c20342c20342c20342c20342c20342c202d315d2c0a20202020202020202020202020205b342c202d312c20342c202d312c20342c202d312c20342c202d315d2c0a20202020202020202020202020205b342c20342c20342c202d312c20342c202d312c20342c202d315d2c0a20202020202020202020202020205b342c20342c20342c202d312c20342c20342c20342c202d315d2c0a20202020202020202020202020205b342c20342c20342c20342c204d0802342c20342c20342c202d315d2c0a20202020202020202020202020205b342c202d312c20342c202d312c20342c202d312c20342c202d315d2c0a20202020202020202020202020205b342c20342c20342c202d312c20342c202d312c20342c202d315d2c0a20202020202020202020202020205b342c20342c20342c202d312c20342c20342c20342c202d315d2c0a20202020202020202020202020205b342c20342c20342c20342c20342c20342c20342c202d315d2c0a20202020202020202020202020205b342c202d312c20342c202d312c20342c202d312c20342c202d315d2c0a20202020202020202020202020205b342c20342c20342c202d312c20342c202d312c20342c202d315d2c0a20202020202020202020202020205b342c20342c20342c202d312c20342c20342c20342c202d315d2c0a20202020202020202020202020205b342c20342c20342c20342c20342c20342c20342c202d315d2c0a20202020202020202020202020205b342c202d312c20342c202d312c20342c202d312c20342c202d315d2c0a20202020202020202020202020205b342c20342c20342c202d312c20342c202d312c20342c202d315d2c0a20202020202020202020202020205b342c20342c20342c202d312c20342c20342c20342c202d315d2c0a20202020202020202020202020205b342c20342c20342c20342c20342c20342c20342c202d4d0802315d2c0a20202020202020202020202020205b342c20342c20342c20342c20342c20342c20342c20345d2c0a20202020202020202020202020205b332c20342c20342c20342c20332c20342c20342c20345d2c0a20202020202020202020202020205b332c20342c20332c20342c20332c20342c20332c20345d2c0a20202020202020202020202020205b332c20332c20332c20342c20332c20332c20332c20345d2c0a20202020202020202020202020205b332c20332c20332c20332c20332c20332c20332c20335d2c0a20202020202020202020202020205b322c20332c20332c20332c20322c20332c20332c20335d2c0a20202020202020202020202020205b322c20332c20322c20332c20322c20332c20322c20335d2c0a20202020202020202020202020205b322c20322c20322c20332c20322c20322c20322c20335d2c0a20202020202020202020202020205b322c20322c20322c20322c20322c20322c20322c20325d2c0a20202020202020202020202020205b312c20322c20322c20322c20312c20322c20322c20325d2c0a20202020202020202020202020205b312c20322c20312c20322c20312c20322c20312c20325d2c0a20202020202020202020202020205b312c20312c20312c20322c20312c20312c20312c20325d2c0a20202020202020202020202020205b302c20302c20302c20302c20302c20302c20302c204d0802305d2c0a20202020202020202020202020205b302c20302c20302c20302c20302c20302c20302c20305d2c0a20202020202020202020202020205b302c20302c20302c20302c20302c20302c20302c20305d2c0a20202020202020202020202020205b302c20302c20302c20302c20302c20302c20302c20305d2c0a2020202020202020202020205d3b0a202020202020202020202020652e7461626c656861736d616465203d2066616c73653b0a202020202020202020202020652e73696e657461626c65203d206e65772041727261792831303234293b0a202020202020202020202020652e636c7461626c65203d206e657720417272617928742e464d5f434c454e5453293b0a202020202020202020202020652e45475068617365203d207b0a20202020202020202020202020206e6578743a20302c0a202020202020202020202020202061747461636b3a20312c0a202020202020202020202020202064656361793a20322c0a20202020202020202020202020207375737461696e3a20332c0a202020202020202020202020202072656c656173653a20342c0a20202020202020202020202020206f66663a20352c0a2020202020202020202020207d3b0a20202020202020202020202072657475726e20653b0a202020202020202020207d2928293b0a20202020202020202020742e4f70657261746f72203d20653b0a2020204d080220202020202020766172206e203d202866756e6374696f6e202829207b0a20202020202020202020202066756e6374696f6e206e2829207b0a2020202020202020202020202020746869732e6f70203d205b6e6577206528292c206e6577206528292c206e6577206528292c206e6577206528295d3b0a2020202020202020202020202020746869732e7461626c656861736d616465203d2066616c73653b0a2020202020202020202020202020746869732e6662203d20303b0a2020202020202020202020202020746869732e627566203d206e65772041727261792834293b0a2020202020202020202020202020746869732e696e6f70203d206e65772041727261792833293b0a2020202020202020202020202020746869732e6f75746f70203d206e65772041727261792833293b0a2020202020202020202020202020746869732e616c676f5f203d20303b0a2020202020202020202020202020746869732e636869705f203d206e756c6c3b0a20202020202020202020202020206966202821746869732e7461626c656861736d61646529207b0a20202020202020202020202020202020746869732e4d616b655461626c6528293b0a20202020202020202020202020207d0a2020202020202020202020202020746869732e536574416c676f726974686d2830293b0a2020202020202020202020202020746869732e706d73203d4d080220742e706d7461626c655b305d5b305d3b0a2020202020202020202020207d0a2020202020202020202020206e2e70726f746f747970652e4d616b655461626c65203d2066756e6374696f6e202829207b0a2020202020202020202020202020666f7220287661722074203d20303b2074203c2036343b20742b2b29207b0a202020202020202020202020202020206e2e6b667461626c655b745d203d20283635353336202a204d6174682e706f7728322c2074202f203736382929207c20303b0a20202020202020202020202020207d0a2020202020202020202020207d3b0a2020202020202020202020206e2e70726f746f747970652e53657443686970203d2066756e6374696f6e20287429207b0a2020202020202020202020202020746869732e636869705f203d20743b0a2020202020202020202020202020666f7220287661722065203d20303b2065203c20343b20652b2b29207b0a20202020202020202020202020202020746869732e6f705b655d2e536574436869702874293b0a20202020202020202020202020207d0a2020202020202020202020207d3b0a2020202020202020202020206e2e70726f746f747970652e5265736574203d2066756e6374696f6e202829207b0a2020202020202020202020202020666f7220287661722074203d20303b2074203c20343b20742b2b29207b0a2020202020202020202020204d080220202020746869732e6f705b745d2e526573657428293b0a20202020202020202020202020207d0a2020202020202020202020207d3b0a2020202020202020202020206e2e70726f746f747970652e50726570617265203d2066756e6374696f6e202829207b0a2020202020202020202020202020666f7220287661722065203d20303b2065203c20343b20652b2b29207b0a20202020202020202020202020202020746869732e6f705b655d2e5072657061726528293b0a20202020202020202020202020207d0a2020202020202020202020202020746869732e706d73203d20742e706d7461626c655b746869732e6f705b305d2e747970655f5d5b37202620746869732e6f705b305d2e6d735f5d3b0a202020202020202020202020202072657475726e20280a2020202020202020202020202020202028746869732e6f705b305d2e49734f6e2829207c0a20202020202020202020202020202020746869732e6f705b315d2e49734f6e2829207c0a20202020202020202020202020202020746869732e6f705b325d2e49734f6e2829207c0a20202020202020202020202020202020746869732e6f705b335d2e49734f6e28290a2020202020202020202020202020202020203f20310a2020202020202020202020202020202020203a203029207c0a2020202020202020202020202020202028746869732e6f705b305d2e6d735f204d0802260a2020202020202020202020202020202028746869732e6f705b305d2e616d6f6e5f207c7c0a20202020202020202020202020202020746869732e6f705b315d2e616d6f6e5f207c7c0a20202020202020202020202020202020746869732e6f705b325d2e616d6f6e5f207c7c0a20202020202020202020202020202020746869732e6f705b335d2e616d6f6e5f0a2020202020202020202020202020202020203f2035350a2020202020202020202020202020202020203a2037290a2020202020202020202020202020202020203f20320a2020202020202020202020202020202020203a2030290a2020202020202020202020202020293b0a2020202020202020202020207d3b0a2020202020202020202020206e2e70726f746f747970652e536574464e756d203d2066756e6374696f6e20287429207b0a2020202020202020202020202020666f7220287661722065203d20303b2065203c20343b20652b2b29207b0a20202020202020202020202020202020746869732e6f705b655d2e536574464e756d2874293b0a20202020202020202020202020207d0a2020202020202020202020207d3b0a2020202020202020202020206e2e70726f746f747970652e5365744b434b46203d2066756e6374696f6e2028742c206529207b0a20202020202020202020202020207661722072203d203139202d20282874203e3e20342920264d08022037293b0a20202020202020202020202020207661722063203d205b0a20202020202020202020202020202020353139372c20353530362c20353833332c20363138302c20363138302c20363534372c20363933372c20373334392c20373334392c20373738362c0a20202020202020202020202020202020383234392c20383734302c20383734302c20393235392c20393831302c2031303339342c0a20202020202020202020202020205d5b3135202620745d3b0a20202020202020202020202020207661722069203d202863203d20282863202b203229202f203429202a203429202a206e2e6b667461626c655b3633202620655d3b0a202020202020202020202020202069203e3e3d2031393b0a202020202020202020202020202069203c3c3d2031393b0a202020202020202020202020202069203e3e3d20723b0a20202020202020202020202020207661722061203d202874203e3e20322920262033313b0a2020202020202020202020202020746869732e6f705b305d2e5365744450424e28692c2061293b0a2020202020202020202020202020746869732e6f705b315d2e5365744450424e28692c2061293b0a2020202020202020202020202020746869732e6f705b325d2e5365744450424e28692c2061293b0a2020202020202020202020202020746869732e6f705b335d2e5365744450424e28692c2061293b0a20204d0802202020202020202020207d3b0a2020202020202020202020206e2e70726f746f747970652e4b6579436f6e74726f6c203d2066756e6374696f6e20287429207b0a202020202020202020202020202069662028312026207429207b0a20202020202020202020202020202020746869732e6f705b305d2e4b65794f6e28293b0a20202020202020202020202020207d20656c7365207b0a20202020202020202020202020202020746869732e6f705b305d2e4b65794f666628293b0a20202020202020202020202020207d0a202020202020202020202020202069662028322026207429207b0a20202020202020202020202020202020746869732e6f705b315d2e4b65794f6e28293b0a20202020202020202020202020207d20656c7365207b0a20202020202020202020202020202020746869732e6f705b315d2e4b65794f666628293b0a20202020202020202020202020207d0a202020202020202020202020202069662028342026207429207b0a20202020202020202020202020202020746869732e6f705b325d2e4b65794f6e28293b0a20202020202020202020202020207d20656c7365207b0a20202020202020202020202020202020746869732e6f705b325d2e4b65794f666628293b0a20202020202020202020202020207d0a202020202020202020202020202069662028382026207429207b0a20202020202020202020204d08022020202020746869732e6f705b335d2e4b65794f6e28293b0a20202020202020202020202020207d20656c7365207b0a20202020202020202020202020202020746869732e6f705b335d2e4b65794f666628293b0a20202020202020202020202020207d0a2020202020202020202020207d3b0a2020202020202020202020206e2e70726f746f747970652e536574416c676f726974686d203d2066756e6374696f6e20287429207b0a20202020202020202020202020207661722065203d205b0a202020202020202020202020202020205b302c20312c20312c20322c20322c20335d2c0a202020202020202020202020202020205b312c20302c20302c20312c20312c20325d2c0a202020202020202020202020202020205b312c20312c20312c20302c20302c20325d2c0a202020202020202020202020202020205b302c20312c20322c20312c20312c20325d2c0a202020202020202020202020202020205b302c20312c20322c20322c20322c20315d2c0a202020202020202020202020202020205b302c20312c20302c20312c20302c20315d2c0a202020202020202020202020202020205b302c20312c20322c20312c20322c20315d2c0a202020202020202020202020202020205b312c20302c20312c20302c20312c20305d2c0a20202020202020202020202020205d3b0a2020202020202020202020202020746869732e696e4d08026f705b305d203d20655b745d5b305d3b0a2020202020202020202020202020746869732e6f75746f705b305d203d20655b745d5b315d3b0a2020202020202020202020202020746869732e696e6f705b315d203d20655b745d5b325d3b0a2020202020202020202020202020746869732e6f75746f705b315d203d20655b745d5b335d3b0a2020202020202020202020202020746869732e696e6f705b325d203d20655b745d5b345d3b0a2020202020202020202020202020746869732e6f75746f705b325d203d20655b745d5b355d3b0a2020202020202020202020202020746869732e6f705b305d2e5265736574464228293b0a2020202020202020202020202020746869732e616c676f5f203d20743b0a2020202020202020202020207d3b0a2020202020202020202020206e2e70726f746f747970652e43616c63203d2066756e6374696f6e202829207b0a202020202020202020202020202076617220743b0a20202020202020202020202020207377697463682028746869732e616c676f5f29207b0a202020202020202020202020202020206361736520303a0a202020202020202020202020202020202020746869732e6f705b325d2e43616c6328746869732e6f705b315d2e4f75742829293b0a202020202020202020202020202020202020746869732e6f705b315d2e43616c6328746869732e6f705b305d2e4f757428294d0802293b0a20202020202020202020202020202020202074203d20746869732e6f705b335d2e43616c6328746869732e6f705b325d2e4f75742829293b0a202020202020202020202020202020202020746869732e6f705b305d2e43616c63464228746869732e6662293b0a202020202020202020202020202020202020627265616b3b0a202020202020202020202020202020206361736520313a0a202020202020202020202020202020202020746869732e6f705b325d2e43616c6328746869732e6f705b305d2e4f75742829202b20746869732e6f705b315d2e4f75742829293b0a202020202020202020202020202020202020746869732e6f705b315d2e43616c632830293b0a20202020202020202020202020202020202074203d20746869732e6f705b335d2e43616c6328746869732e6f705b325d2e4f75742829293b0a202020202020202020202020202020202020746869732e6f705b305d2e43616c63464228746869732e6662293b0a202020202020202020202020202020202020627265616b3b0a202020202020202020202020202020206361736520323a0a202020202020202020202020202020202020746869732e6f705b325d2e43616c6328746869732e6f705b315d2e4f75742829293b0a202020202020202020202020202020202020746869732e6f705b315d2e43616c632830293b0a2020202020202020202020204d080220202020202074203d20746869732e6f705b335d2e43616c6328746869732e6f705b305d2e4f75742829202b20746869732e6f705b325d2e4f75742829293b0a202020202020202020202020202020202020746869732e6f705b305d2e43616c63464228746869732e6662293b0a202020202020202020202020202020202020627265616b3b0a202020202020202020202020202020206361736520333a0a202020202020202020202020202020202020746869732e6f705b325d2e43616c632830293b0a202020202020202020202020202020202020746869732e6f705b315d2e43616c6328746869732e6f705b305d2e4f75742829293b0a20202020202020202020202020202020202074203d20746869732e6f705b335d2e43616c6328746869732e6f705b315d2e4f75742829202b20746869732e6f705b325d2e4f75742829293b0a202020202020202020202020202020202020746869732e6f705b305d2e43616c63464228746869732e6662293b0a202020202020202020202020202020202020627265616b3b0a202020202020202020202020202020206361736520343a0a202020202020202020202020202020202020746869732e6f705b325d2e43616c632830293b0a20202020202020202020202020202020202074203d20746869732e6f705b315d2e43616c6328746869732e6f705b305d2e4f75742829293b0a202020204d0802202020202020202020202020202074202b3d20746869732e6f705b335d2e43616c6328746869732e6f705b325d2e4f75742829293b0a202020202020202020202020202020202020746869732e6f705b305d2e43616c63464228746869732e6662293b0a202020202020202020202020202020202020627265616b3b0a202020202020202020202020202020206361736520353a0a20202020202020202020202020202020202074203d20746869732e6f705b325d2e43616c6328746869732e6f705b305d2e4f75742829293b0a20202020202020202020202020202020202074202b3d20746869732e6f705b315d2e43616c6328746869732e6f705b305d2e4f75742829293b0a20202020202020202020202020202020202074202b3d20746869732e6f705b335d2e43616c6328746869732e6f705b305d2e4f75742829293b0a202020202020202020202020202020202020746869732e6f705b305d2e43616c63464228746869732e6662293b0a202020202020202020202020202020202020627265616b3b0a202020202020202020202020202020206361736520363a0a20202020202020202020202020202020202074203d20746869732e6f705b325d2e43616c632830293b0a20202020202020202020202020202020202074202b3d20746869732e6f705b315d2e43616c6328746869732e6f705b305d2e4f75742829293b0a2020204d080220202020202020202020202020202074202b3d20746869732e6f705b335d2e43616c632830293b0a202020202020202020202020202020202020746869732e6f705b305d2e43616c63464228746869732e6662293b0a202020202020202020202020202020202020627265616b3b0a202020202020202020202020202020206361736520373a0a20202020202020202020202020202020202074203d20746869732e6f705b325d2e43616c632830293b0a20202020202020202020202020202020202074202b3d20746869732e6f705b315d2e43616c632830293b0a20202020202020202020202020202020202074202b3d20746869732e6f705b335d2e43616c632830293b0a20202020202020202020202020202020202074202b3d20746869732e6f705b305d2e43616c63464228746869732e6662293b0a20202020202020202020202020207d0a202020202020202020202020202072657475726e20743b0a2020202020202020202020207d3b0a2020202020202020202020206e2e70726f746f747970652e43616c634c203d2066756e6374696f6e202829207b0a202020202020202020202020202076617220743b0a202020202020202020202020202073776974636820280a2020202020202020202020202020202028746869732e636869705f2e536574504d5628746869732e706d735b746869732e636869705f2e476574504d4c4d080228295d292c20746869732e616c676f5f290a202020202020202020202020202029207b0a202020202020202020202020202020206361736520303a0a202020202020202020202020202020202020746869732e6f705b325d2e43616c634c28746869732e6f705b315d2e4f75742829293b0a202020202020202020202020202020202020746869732e6f705b315d2e43616c634c28746869732e6f705b305d2e4f75742829293b0a20202020202020202020202020202020202074203d20746869732e6f705b335d2e43616c634c28746869732e6f705b325d2e4f75742829293b0a202020202020202020202020202020202020746869732e6f705b305d2e43616c6346424c28746869732e6662293b0a202020202020202020202020202020202020627265616b3b0a202020202020202020202020202020206361736520313a0a202020202020202020202020202020202020746869732e6f705b325d2e43616c634c28746869732e6f705b305d2e4f75742829202b20746869732e6f705b315d2e4f75742829293b0a202020202020202020202020202020202020746869732e6f705b315d2e43616c634c2830293b0a20202020202020202020202020202020202074203d20746869732e6f705b335d2e43616c634c28746869732e6f705b325d2e4f75742829293b0a202020202020202020202020202020202020746869732e6f705b305d4d08022e43616c6346424c28746869732e6662293b0a202020202020202020202020202020202020627265616b3b0a202020202020202020202020202020206361736520323a0a202020202020202020202020202020202020746869732e6f705b325d2e43616c634c28746869732e6f705b315d2e4f75742829293b0a202020202020202020202020202020202020746869732e6f705b315d2e43616c634c2830293b0a20202020202020202020202020202020202074203d20746869732e6f705b335d2e43616c634c28746869732e6f705b305d2e4f75742829202b20746869732e6f705b325d2e4f75742829293b0a202020202020202020202020202020202020746869732e6f705b305d2e43616c6346424c28746869732e6662293b0a202020202020202020202020202020202020627265616b3b0a202020202020202020202020202020206361736520333a0a202020202020202020202020202020202020746869732e6f705b325d2e43616c634c2830293b0a202020202020202020202020202020202020746869732e6f705b315d2e43616c634c28746869732e6f705b305d2e4f75742829293b0a20202020202020202020202020202020202074203d20746869732e6f705b335d2e43616c634c28746869732e6f705b315d2e4f75742829202b20746869732e6f705b325d2e4f75742829293b0a202020202020202020202020202020204d08022020746869732e6f705b305d2e43616c6346424c28746869732e6662293b0a202020202020202020202020202020202020627265616b3b0a202020202020202020202020202020206361736520343a0a202020202020202020202020202020202020746869732e6f705b325d2e43616c634c2830293b0a20202020202020202020202020202020202074203d20746869732e6f705b315d2e43616c634c28746869732e6f705b305d2e4f75742829293b0a20202020202020202020202020202020202074202b3d20746869732e6f705b335d2e43616c634c28746869732e6f705b325d2e4f75742829293b0a202020202020202020202020202020202020746869732e6f705b305d2e43616c6346424c28746869732e6662293b0a202020202020202020202020202020202020627265616b3b0a202020202020202020202020202020206361736520353a0a20202020202020202020202020202020202074203d20746869732e6f705b325d2e43616c634c28746869732e6f705b305d2e4f75742829293b0a20202020202020202020202020202020202074202b3d20746869732e6f705b315d2e43616c634c28746869732e6f705b305d2e4f75742829293b0a20202020202020202020202020202020202074202b3d20746869732e6f705b335d2e43616c634c28746869732e6f705b305d2e4f75742829293b0a2020202020202020202020204d0802202020202020746869732e6f705b305d2e43616c6346424c28746869732e6662293b0a202020202020202020202020202020202020627265616b3b0a202020202020202020202020202020206361736520363a0a20202020202020202020202020202020202074203d20746869732e6f705b325d2e43616c634c2830293b0a20202020202020202020202020202020202074202b3d20746869732e6f705b315d2e43616c634c28746869732e6f705b305d2e4f75742829293b0a20202020202020202020202020202020202074202b3d20746869732e6f705b335d2e43616c634c2830293b0a202020202020202020202020202020202020746869732e6f705b305d2e43616c6346424c28746869732e6662293b0a202020202020202020202020202020202020627265616b3b0a202020202020202020202020202020206361736520373a0a20202020202020202020202020202020202074203d20746869732e6f705b325d2e43616c634c2830293b0a20202020202020202020202020202020202074202b3d20746869732e6f705b315d2e43616c634c2830293b0a20202020202020202020202020202020202074202b3d20746869732e6f705b335d2e43616c634c2830293b0a20202020202020202020202020202020202074202b3d20746869732e6f705b305d2e43616c6346424c28746869732e6662293b0a20202020202020202020204d08022020207d0a202020202020202020202020202072657475726e20743b0a2020202020202020202020207d3b0a2020202020202020202020206e2e70726f746f747970652e43616c634e203d2066756e6374696f6e20287429207b0a2020202020202020202020202020746869732e6275665b315d203d20746869732e6275665b325d203d20746869732e6275665b335d203d20303b0a2020202020202020202020202020746869732e6275665b305d203d20746869732e6f705b305d2e6f75745f3b0a2020202020202020202020202020746869732e6f705b305d2e43616c63464228746869732e6662293b0a2020202020202020202020202020746869732e6275665b746869732e6f75746f705b305d5d202b3d20746869732e6f705b315d2e43616c63280a20202020202020202020202020202020746869732e6275665b746869732e696e6f705b305d5d0a2020202020202020202020202020293b0a2020202020202020202020202020746869732e6275665b746869732e6f75746f705b315d5d202b3d20746869732e6f705b325d2e43616c63280a20202020202020202020202020202020746869732e6275665b746869732e696e6f705b315d5d0a2020202020202020202020202020293b0a20202020202020202020202020207661722065203d20746869732e6f705b335d2e6f75745f3b0a202020202020202020202020202074684d080269732e6f705b335d2e43616c634e2874293b0a202020202020202020202020202072657475726e20746869732e6275665b746869732e6f75746f705b325d5d202b20653b0a2020202020202020202020207d3b0a2020202020202020202020206e2e70726f746f747970652e43616c634c4e203d2066756e6374696f6e20287429207b0a2020202020202020202020202020746869732e636869705f2e536574504d5628746869732e706d735b746869732e636869705f2e476574504d4c28295d293b0a2020202020202020202020202020746869732e6275665b315d203d20746869732e6275665b325d203d20746869732e6275665b335d203d20303b0a2020202020202020202020202020746869732e6275665b305d203d20746869732e6f705b305d2e6f75745f3b0a2020202020202020202020202020746869732e6f705b305d2e43616c6346424c28746869732e6662293b0a2020202020202020202020202020746869732e6275665b746869732e6f75746f705b305d5d202b3d20746869732e6f705b315d2e43616c634c280a20202020202020202020202020202020746869732e6275665b746869732e696e6f705b305d5d0a2020202020202020202020202020293b0a2020202020202020202020202020746869732e6275665b746869732e6f75746f705b315d5d202b3d20746869732e6f705b325d2e43616c634c280a2020204d080220202020202020202020202020746869732e6275665b746869732e696e6f705b315d5d0a2020202020202020202020202020293b0a20202020202020202020202020207661722065203d20746869732e6f705b335d2e6f75745f3b0a2020202020202020202020202020746869732e6f705b335d2e43616c634e2874293b0a202020202020202020202020202072657475726e20746869732e6275665b746869732e6f75746f705b325d5d202b20653b0a2020202020202020202020207d3b0a2020202020202020202020206e2e70726f746f747970652e53657454797065203d2066756e6374696f6e20287429207b0a2020202020202020202020202020666f7220287661722065203d20303b2065203c20343b20652b2b29207b0a20202020202020202020202020202020746869732e6f705b655d2e747970655f203d20743b0a20202020202020202020202020207d0a2020202020202020202020207d3b0a2020202020202020202020206e2e70726f746f747970652e5365744642203d2066756e6374696f6e20287429207b0a2020202020202020202020202020746869732e6662203d206e2e66627461626c655b745d3b0a2020202020202020202020207d3b0a2020202020202020202020206e2e70726f746f747970652e5365744d53203d2066756e6374696f6e20287429207b0a2020202020202020202020202020666f7220284d08027661722065203d20303b2065203c20343b20652b2b29207b0a20202020202020202020202020202020746869732e6f705b655d2e5365744d532874293b0a20202020202020202020202020207d0a2020202020202020202020207d3b0a2020202020202020202020206e2e70726f746f747970652e4d757465203d2066756e6374696f6e20287429207b0a2020202020202020202020202020666f7220287661722065203d20303b2065203c20343b20652b2b29207b0a20202020202020202020202020202020746869732e6f705b655d2e4d7574652874293b0a20202020202020202020202020207d0a2020202020202020202020207d3b0a2020202020202020202020206e2e66627461626c65203d205b33312c20372c20362c20352c20342c20332c20322c20315d3b0a2020202020202020202020206e2e6b667461626c65203d206e6577204172726179283634293b0a20202020202020202020202072657475726e206e3b0a202020202020202020207d2928293b0a20202020202020202020742e4368616e6e656c34203d206e3b0a202020202020202020207661722072203d202866756e6374696f6e202829207b0a20202020202020202020202066756e6374696f6e20652829207b0a2020202020202020202020202020746869732e726174696f5f203d20303b0a2020202020202020202020202020746869732e616d6c5f203d4d080220303b0a2020202020202020202020202020746869732e706d6c5f203d20303b0a2020202020202020202020202020746869732e706d765f203d20303b0a2020202020202020202020207d0a202020202020202020202020652e70726f746f747970652e536574526174696f203d2066756e6374696f6e20287429207b0a202020202020202020202020202074203d204d6174682e726f756e642874293b0a202020202020202020202020202069662028746869732e726174696f5f20213d3d207429207b0a20202020202020202020202020202020746869732e726174696f5f203d20743b0a20202020202020202020202020202020746869732e4d616b655461626c6528293b0a20202020202020202020202020207d0a2020202020202020202020207d3b0a202020202020202020202020652e70726f746f747970652e536574414d4c203d2066756e6374696f6e20286529207b0a2020202020202020202020202020746869732e616d6c5f203d206520262028742e464d5f4c464f454e5453202d2031293b0a2020202020202020202020207d3b0a202020202020202020202020652e70726f746f747970652e536574504d4c203d2066756e6374696f6e20286529207b0a2020202020202020202020202020746869732e706d6c5f203d206520262028742e464d5f4c464f454e5453202d2031293b0a2020202020202020202020207d4d08023b0a202020202020202020202020652e70726f746f747970652e536574504d56203d2066756e6374696f6e20287429207b0a2020202020202020202020202020746869732e706d765f203d20743b0a2020202020202020202020207d3b0a202020202020202020202020652e70726f746f747970652e4765744d756c56616c7565203d2066756e6374696f6e2028742c206529207b0a202020202020202020202020202072657475726e20746869732e6d756c7461626c655f5b745d5b655d3b0a2020202020202020202020207d3b0a202020202020202020202020652e70726f746f747970652e476574414d4c203d2066756e6374696f6e202829207b0a202020202020202020202020202072657475726e20746869732e616d6c5f3b0a2020202020202020202020207d3b0a202020202020202020202020652e70726f746f747970652e476574504d4c203d2066756e6374696f6e202829207b0a202020202020202020202020202072657475726e20746869732e706d6c5f3b0a2020202020202020202020207d3b0a202020202020202020202020652e70726f746f747970652e476574504d56203d2066756e6374696f6e202829207b0a202020202020202020202020202072657475726e20746869732e706d765f3b0a2020202020202020202020207d3b0a202020202020202020202020652e70726f746f747970652e4765745261744d0802696f203d2066756e6374696f6e202829207b0a202020202020202020202020202072657475726e20746869732e726174696f5f3b0a2020202020202020202020207d3b0a202020202020202020202020652e70726f746f747970652e4d616b655461626c65203d2066756e6374696f6e202829207b0a2020202020202020202020202020766172206e3b0a20202020202020202020202020207661722072203d205b312c20312e3431342c20312e3538312c20312e3733325d3b0a2020202020202020202020202020746869732e6d756c7461626c655f203d206e65772041727261792834293b0a2020202020202020202020202020666f7220287661722065203d20303b2065203c20343b20652b2b29207b0a202020202020202020202020202020207661722063203d0a20202020202020202020202020202020202028725b655d202a20746869732e726174696f5f29202f0a2020202020202020202020202020202020202831203c3c202832202b20742e464d5f524154494f42495453202d20742e464d5f50474249545329293b0a20202020202020202020202020202020746869732e6d756c7461626c655f5b655d203d206e6577204172726179283136293b0a20202020202020202020202020202020666f7220286e203d20303b206e203c2031363b206e2b2b29207b0a2020202020202020202020202020202020207661722069204d08023d206e203f2032202a206e203a20313b0a202020202020202020202020202020202020746869732e6d756c7461626c655f5b655d5b6e5d203d202869202a206329207c20303b0a202020202020202020202020202020207d0a20202020202020202020202020207d0a2020202020202020202020207d3b0a20202020202020202020202072657475726e20653b0a202020202020202020207d2928293b0a20202020202020202020742e43686970203d20723b0a20202020202020202020742e4d616b654c464f5461626c65203d2066756e6374696f6e202829207b0a2020202020202020202020206966202821742e7461626c656d61646529207b0a202020202020202020202020202076617220653b0a2020202020202020202020202020742e7461626c656d616465203d20747275653b0a2020202020202020202020202020766172206e203d205b0a202020202020202020202020202020205b0a202020202020202020202020202020202020302c0a20202020202020202020202020202020202031202f203336302c0a20202020202020202020202020202020202032202f203336302c0a20202020202020202020202020202020202033202f203336302c0a20202020202020202020202020202020202034202f203336302c0a20202020202020202020202020202020202036202f203336302c0a20202020202020202020202020204d0802202020203132202f203336302c0a2020202020202020202020202020202020203234202f203336302c0a202020202020202020202020202020205d2c0a202020202020202020202020202020205b0a202020202020202020202020202020202020302c0a20202020202020202020202020202020202031202f203438302c0a20202020202020202020202020202020202032202f203438302c0a20202020202020202020202020202020202034202f203438302c0a2020202020202020202020202020202020203130202f203438302c0a2020202020202020202020202020202020203230202f203438302c0a2020202020202020202020202020202020203830202f203438302c0a202020202020202020202020202020202020313430202f203438302c0a202020202020202020202020202020205d2c0a20202020202020202020202020205d3b0a20202020202020202020202020207661722072203d205b0a202020202020202020202020202020205b33312c20362c20342c20335d2c0a202020202020202020202020202020205b33312c20322c20312c20305d2c0a20202020202020202020202020205d3b0a2020202020202020202020202020742e706d7461626c65203d206e65772041727261792832293b0a2020202020202020202020202020742e616d7461626c65203d206e65772041727261792832293b0a202020202020204d080220202020202020666f7220287661722063203d20303b2063203c20323b20632b2b29207b0a20202020202020202020202020202020742e706d7461626c655b635d203d206e65772041727261792838293b0a20202020202020202020202020202020666f72202865203d20303b2065203c20383b20652b2b29207b0a2020202020202020202020202020202020207661722069203d206e5b635d5b655d3b0a202020202020202020202020202020202020742e706d7461626c655b635d5b655d203d206e657720417272617928742e464d5f4c464f454e5453293b0a202020202020202020202020202020202020666f7220287661722061203d20303b2061203c20742e464d5f4c464f454e54533b20612b2b29207b0a20202020202020202020202020202020202020204d6174682e706f77280a20202020202020202020202020202020202020202020322c0a202020202020202020202020202020202020202020202869202a202832202a2061202d20742e464d5f4c464f454e5453202b20312929202f2028742e464d5f4c464f454e5453202d2031290a2020202020202020202020202020202020202020293b0a2020202020202020202020202020202020202020766172206f203d0a20202020202020202020202020202020202020202020302e36202a2069202a204d6174682e73696e282832202a2061202a204d6174682e504929204d08022f20742e464d5f4c464f454e545329202b20313b0a2020202020202020202020202020202020202020742e706d7461626c655b635d5b655d5b615d203d20283635353336202a20286f202d20312929207c20303b0a2020202020202020202020202020202020207d0a202020202020202020202020202020207d0a20202020202020202020202020202020742e616d7461626c655b635d203d206e65772041727261792834293b0a20202020202020202020202020202020666f72202865203d20303b2065203c20343b20652b2b29207b0a202020202020202020202020202020202020742e616d7461626c655b635d5b655d203d206e657720417272617928742e464d5f4c464f454e5453293b0a202020202020202020202020202020202020666f72202861203d20303b2061203c20742e464d5f4c464f454e54533b20612b2b29207b0a2020202020202020202020202020202020202020742e616d7461626c655b635d5b655d5b615d203d202832202a20282834202a206129203e3e20725b635d5b655d2929203c3c20323b0a2020202020202020202020202020202020207d0a202020202020202020202020202020207d0a20202020202020202020202020207d0a2020202020202020202020207d0a202020202020202020207d3b0a20202020202020207d2928293b0a20202020202020202866756e6374696f6e202829207b0a20204d080220202020202020207661722074203d206e74207c7c20286e74203d207b7d293b0a202020202020202020207661722065203d202866756e6374696f6e202829207b0a20202020202020202020202066756e6374696f6e20742829207b0a2020202020202020202020202020746869732e4f504d5f4c464f454e5453203d203531323b0a2020202020202020202020202020746869732e7265677463203d20303b0a2020202020202020202020202020746869732e7265677461203d206e65772041727261792832293b0a2020202020202020202020202020746869732e74696d657261203d20303b0a2020202020202020202020202020746869732e74696d6572615f636f756e74203d20303b0a2020202020202020202020202020746869732e74696d657262203d20303b0a2020202020202020202020202020746869732e74696d6572625f636f756e74203d20303b0a2020202020202020202020202020746869732e74696d65725f73746570203d20303b0a2020202020202020202020207d0a202020202020202020202020742e70726f746f747970652e5265736574203d2066756e6374696f6e202829207b0a2020202020202020202020202020746869732e74696d6572615f636f756e74203d20303b0a2020202020202020202020202020746869732e74696d6572625f636f756e74203d20303b0a2020202020202020202020207d4d08023b0a202020202020202020202020742e70726f746f747970652e53657454696d6572436f6e74726f6c203d2066756e6374696f6e20287429207b0a20202020202020202020202020207661722065203d20746869732e7265677463205e20743b0a2020202020202020202020202020746869732e7265677463203d20743b0a20202020202020202020202020206966202831362026207429207b0a20202020202020202020202020202020746869732e52657365745374617475732831293b0a20202020202020202020202020207d0a20202020202020202020202020206966202833322026207429207b0a20202020202020202020202020202020746869732e52657365745374617475732832293b0a20202020202020202020202020207d0a202020202020202020202020202069662028312026206529207b0a20202020202020202020202020202020746869732e74696d6572615f636f756e74203d203120262074203f20746869732e74696d657261203a20303b0a20202020202020202020202020207d0a202020202020202020202020202069662028322026206529207b0a20202020202020202020202020202020746869732e74696d6572625f636f756e74203d203220262074203f20746869732e74696d657262203a20303b0a20202020202020202020202020207d0a2020202020202020202020207d3b0a20202020202020204d080220202020742e70726f746f747970652e53657454696d657241203d2066756e6374696f6e2028742c206529207b0a2020202020202020202020202020746869732e72656774615b31202620745d203d20653b0a2020202020202020202020202020766172206e203d2028746869732e72656774615b305d203c3c203229202b202833202620746869732e72656774615b315d293b0a2020202020202020202020202020746869732e74696d657261203d202831303234202d206e29202a20746869732e74696d65725f737465703b0a2020202020202020202020207d3b0a202020202020202020202020742e70726f746f747970652e53657454696d657242203d2066756e6374696f6e20287429207b0a2020202020202020202020202020746869732e74696d657262203d2028323536202d207429202a20746869732e74696d65725f737465703b0a2020202020202020202020207d3b0a202020202020202020202020742e70726f746f747970652e436f756e74203d2066756e6374696f6e20287429207b0a20202020202020202020202020207661722065203d2066616c73653b0a202020202020202020202020202069662028746869732e74696d6572615f636f756e7429207b0a20202020202020202020202020202020746869732e74696d6572615f636f756e74202d3d2074203c3c2031363b0a20202020202020202020202020204d0802202069662028746869732e74696d6572615f636f756e74203c3d203029207b0a20202020202020202020202020202020202065203d20747275653b0a202020202020202020202020202020202020666f722028746869732e54696d65724128293b20746869732e74696d6572615f636f756e74203c3d20303b2029207b0a2020202020202020202020202020202020202020746869732e74696d6572615f636f756e74202b3d20746869732e74696d6572613b0a2020202020202020202020202020202020207d0a2020202020202020202020202020202020206966202834202620746869732e726567746329207b0a2020202020202020202020202020202020202020746869732e5365745374617475732831293b0a2020202020202020202020202020202020207d0a202020202020202020202020202020207d0a20202020202020202020202020207d0a202020202020202020202020202069662028746869732e74696d6572625f636f756e7429207b0a20202020202020202020202020202020746869732e74696d6572625f636f756e74202d3d2074203c3c2031323b0a2020202020202020202020202020202069662028746869732e74696d6572625f636f756e74203c3d203029207b0a202020202020202020202020202020202020666f72202865203d20747275653b20746869732e74696d6572625f636f756e74203c3d20303b4d08022029207b0a2020202020202020202020202020202020202020746869732e74696d6572625f636f756e74202b3d20746869732e74696d6572623b0a2020202020202020202020202020202020207d0a2020202020202020202020202020202020206966202838202620746869732e726567746329207b0a2020202020202020202020202020202020202020746869732e5365745374617475732832293b0a2020202020202020202020202020202020207d0a202020202020202020202020202020207d0a20202020202020202020202020207d0a202020202020202020202020202072657475726e20653b0a2020202020202020202020207d3b0a202020202020202020202020742e70726f746f747970652e4765744e6578744576656e74203d2066756e6374696f6e202829207b0a20202020202020202020202020207661722074203d202828746869732e74696d6572615f636f756e74202b20363535333529203e3e20313629202d20313b0a20202020202020202020202020207661722065203d202828746869732e74696d6572625f636f756e74202b203430393529203e3e20313229202d20313b0a202020202020202020202020202072657475726e202874203c2065203f2074203a206529202b20313b0a2020202020202020202020207d3b0a202020202020202020202020742e70726f746f747970652e53657454696d657242614d08027365203d2066756e6374696f6e20287429207b0a2020202020202020202020202020746869732e74696d65725f73746570203d202836353533366536202f207429207c20303b0a2020202020202020202020207d3b0a202020202020202020202020742e70726f746f747970652e536574537461747573203d2066756e6374696f6e20287429207b7d3b0a202020202020202020202020742e70726f746f747970652e5265736574537461747573203d2066756e6374696f6e20287429207b7d3b0a202020202020202020202020742e70726f746f747970652e54696d657241203d2066756e6374696f6e202829207b7d3b0a20202020202020202020202072657475726e20743b0a202020202020202020207d2928293b0a20202020202020202020742e54696d6572203d20653b0a20202020202020207d2928293b0a20202020202020202866756e6374696f6e202829207b0a202020202020202020207661722074203d206e74207c7c20286e74203d207b7d293b0a202020202020202020207661722065203d202866756e6374696f6e202829207b0a20202020202020202020202066756e6374696f6e206e2829207b0a2020202020202020202020202020652e63616c6c2874686973293b0a2020202020202020202020202020746869732e666d766f6c756d65203d20303b0a2020202020202020202020202020746869732e636c6f634d08026b203d20303b0a2020202020202020202020202020746869732e72617465203d20303b0a2020202020202020202020202020746869732e70636d72617465203d20303b0a2020202020202020202020202020746869732e706d64203d20303b0a2020202020202020202020202020746869732e616d64203d20303b0a2020202020202020202020202020746869732e6c666f636f756e74203d20303b0a2020202020202020202020202020746869732e6c666f64636f756e74203d20303b0a2020202020202020202020202020746869732e6c666f5f636f756e745f203d20303b0a2020202020202020202020202020746869732e6c666f5f636f756e745f646966665f203d20303b0a2020202020202020202020202020746869732e6c666f5f737465705f203d20303b0a2020202020202020202020202020746869732e6c666f5f636f756e745f707265765f203d20303b0a2020202020202020202020202020746869732e6c666f77617665666f726d203d20303b0a2020202020202020202020202020746869732e72617465726174696f203d20303b0a2020202020202020202020202020746869732e6e6f697365203d20303b0a2020202020202020202020202020746869732e6e6f697365636f756e74203d20303b0a2020202020202020202020202020746869732e6e6f69736564656c7461203d20303b0a202020202020202020204d080220202020746869732e696e746572706f6c6174696f6e203d2066616c73653b0a2020202020202020202020202020746869732e6c666f66726571203d20303b0a2020202020202020202020202020746869732e737461747573203d20303b0a2020202020202020202020202020746869732e7265673031203d20303b0a2020202020202020202020202020746869732e6b63203d206e65772041727261792838293b0a2020202020202020202020202020746869732e6b66203d206e65772041727261792838293b0a2020202020202020202020202020746869732e70616e203d206e65772041727261792838293b0a2020202020202020202020202020746869732e6368203d205b0a202020202020202020202020202020206e657720742e4368616e6e656c3428292c0a202020202020202020202020202020206e657720742e4368616e6e656c3428292c0a202020202020202020202020202020206e657720742e4368616e6e656c3428292c0a202020202020202020202020202020206e657720742e4368616e6e656c3428292c0a202020202020202020202020202020206e657720742e4368616e6e656c3428292c0a202020202020202020202020202020206e657720742e4368616e6e656c3428292c0a202020202020202020202020202020206e657720742e4368616e6e656c3428292c0a202020202020202020202020202020204d08026e657720742e4368616e6e656c3428292c0a20202020202020202020202020205d3b0a2020202020202020202020202020746869732e63686970203d206e657720742e4368697028293b0a2020202020202020202020202020746869732e6c666f5f636f756e745f203d20303b0a2020202020202020202020202020746869732e6c666f5f636f756e745f707265765f203d202d313b0a2020202020202020202020202020746869732e4275696c644c464f5461626c6528293b0a2020202020202020202020202020666f722028766172206e203d20303b206e203c20383b206e2b2b29207b0a20202020202020202020202020202020746869732e63685b6e5d2e5365744368697028746869732e63686970293b0a20202020202020202020202020202020746869732e63685b6e5d2e536574547970652831293b0a20202020202020202020202020207d0a2020202020202020202020207d0a2020202020202020202020207661722065203d20742e54696d65723b0a2020202020202020202020202866756e6374696f6e2028742c206529207b0a202020202020202020202020202066756e6374696f6e20722829207b0a20202020202020202020202020202020746869732e636f6e7374727563746f72203d20743b0a20202020202020202020202020207d0a2020202020202020202020202020666f722028766172206e20696e2065294d0802207b0a2020202020202020202020202020202069662028652e6861734f776e50726f7065727479286e2929207b0a202020202020202020202020202020202020745b6e5d203d20655b6e5d3b0a202020202020202020202020202020207d0a20202020202020202020202020207d0a2020202020202020202020202020722e70726f746f74797065203d20652e70726f746f747970653b0a2020202020202020202020202020742e70726f746f74797065203d206e6577207228293b0a2020202020202020202020207d29286e2c2065293b0a2020202020202020202020206e2e70726f746f747970652e496e6974203d2066756e6374696f6e2028742c206529207b0a20202020202020202020202020206966202821746869732e5365745261746528742c20652929207b0a2020202020202020202020202020202072657475726e2066616c73653b0a20202020202020202020202020207d0a2020202020202020202020202020746869732e526573657428293b0a2020202020202020202020202020746869732e536574566f6c756d652830293b0a2020202020202020202020202020746869732e5365744368616e6e656c4d61736b2830293b0a202020202020202020202020202072657475726e20747275653b0a2020202020202020202020207d3b0a2020202020202020202020206e2e70726f746f747970652e53657452617465204d08023d2066756e6374696f6e2028742c206529207b0a2020202020202020202020202020746869732e636c6f636b203d20743b0a2020202020202020202020202020746869732e70636d72617465203d20653b0a2020202020202020202020202020746869732e72617465203d20653b0a2020202020202020202020202020746869732e52656275696c6454696d655461626c6528293b0a202020202020202020202020202072657475726e20747275653b0a2020202020202020202020207d3b0a2020202020202020202020206e2e70726f746f747970652e5365744368616e6e656c4d61736b203d2066756e6374696f6e20287429207b0a2020202020202020202020202020666f7220287661722065203d20303b2065203c20383b20652b2b29207b0a20202020202020202020202020202020746869732e63685b655d2e4d75746528212128742026202831203c3c20652929293b0a20202020202020202020202020207d0a2020202020202020202020207d3b0a2020202020202020202020206e2e70726f746f747970652e5265736574203d2066756e6374696f6e202829207b0a2020202020202020202020202020666f7220287661722074203d20303b2074203c203235363b20742b2b29207b0a20202020202020202020202020202020746869732e53657452656728742c2030293b0a20202020202020202020202020207d0a2020204d08022020202020202020202020746869732e5365745265672832352c20313238293b0a2020202020202020202020202020652e70726f746f747970652e52657365742e63616c6c2874686973293b0a2020202020202020202020202020746869732e737461747573203d20303b0a2020202020202020202020202020746869732e6e6f697365203d2031323334353b0a2020202020202020202020202020746869732e6e6f697365636f756e74203d20303b0a2020202020202020202020202020666f72202874203d20303b2074203c20383b20742b2b29207b0a20202020202020202020202020202020746869732e63685b745d2e526573657428293b0a20202020202020202020202020207d0a2020202020202020202020207d3b0a2020202020202020202020206e2e70726f746f747970652e52656275696c6454696d655461626c65203d2066756e6374696f6e202829207b0a20202020202020202020202020207661722065203d20746869732e636c6f636b202f2036343b0a2020202020202020202020202020746869732e72617465726174696f203d0a20202020202020202020202020202020282865203c3c20742e464d5f524154494f4249545329202b20746869732e72617465202f203229202f20746869732e726174653b0a2020202020202020202020202020746869732e53657454696d6572426173652865293b0a202020204d080220202020202020202020746869732e636869702e536574526174696f28746869732e72617465726174696f293b0a2020202020202020202020207d3b0a2020202020202020202020206e2e70726f746f747970652e536574566f6c756d65203d2066756e6374696f6e20287429207b0a202020202020202020202020202074203d204d6174682e6d696e28742c203230293b0a2020202020202020202020202020746869732e666d766f6c756d65203d2074203e202d313932203f20283136333834202a204d6174682e706f772831302c2074202f2034302929207c2030203a20303b0a2020202020202020202020207d3b0a2020202020202020202020206e2e70726f746f747970652e536574537461747573203d2066756e6374696f6e20287429207b0a2020202020202020202020202020696620282128746869732e737461747573202620742929207b0a20202020202020202020202020202020746869732e737461747573207c3d20743b0a20202020202020202020202020202020746869732e496e74722874727565293b0a20202020202020202020202020207d0a2020202020202020202020207d3b0a2020202020202020202020206e2e70726f746f747970652e476574537461747573203d2066756e6374696f6e20287429207b0a202020202020202020202020202072657475726e20746869732e7374617475733b0a2020204d08022020202020202020207d3b0a2020202020202020202020206e2e70726f746f747970652e5265736574537461747573203d2066756e6374696f6e20287429207b0a202020202020202020202020202069662028746869732e7374617475732026207429207b0a20202020202020202020202020202020746869732e73746174757320263d207e743b0a202020202020202020202020202020206966202821746869732e73746174757329207b0a202020202020202020202020202020202020746869732e496e74722866616c7365293b0a202020202020202020202020202020207d0a20202020202020202020202020207d0a2020202020202020202020207d3b0a2020202020202020202020206e2e70726f746f747970652e536574526567203d2066756e6374696f6e2028652c206e29207b0a202020202020202020202020202069662028212865203e3d203235362929207b0a202020202020202020202020202020207661722072203d2037202620653b0a2020202020202020202020202020202073776974636820283235352026206529207b0a2020202020202020202020202020202020206361736520313a0a202020202020202020202020202020202020202069662028322026206e29207b0a20202020202020202020202020202020202020202020746869732e6c666f5f636f756e745f203d20303b0a202020202020202020204d0802202020202020202020202020746869732e6c666f5f636f756e745f707265765f203d202d313b0a20202020202020202020202020202020202020207d0a2020202020202020202020202020202020202020746869732e7265673031203d206e3b0a2020202020202020202020202020202020202020627265616b3b0a2020202020202020202020202020202020206361736520383a0a202020202020202020202020202020202020202069662028313238202620746869732e726567746329207b0a2020202020202020202020202020202020202020202072203d20372026206e3b0a20202020202020202020202020202020202020202020696620282128382026206e2929207b0a202020202020202020202020202020202020202020202020746869732e63685b725d2e6f705b305d2e4b65794f666628293b0a202020202020202020202020202020202020202020207d0a2020202020202020202020202020202020202020202069662028212831362026206e2929207b0a202020202020202020202020202020202020202020202020746869732e63685b725d2e6f705b315d2e4b65794f666628293b0a202020202020202020202020202020202020202020207d0a2020202020202020202020202020202020202020202069662028212833322026206e2929207b0a2020202020202020202020202020202020202020202020207468694d0802732e63685b725d2e6f705b325d2e4b65794f666628293b0a202020202020202020202020202020202020202020207d0a2020202020202020202020202020202020202020202069662028212836342026206e2929207b0a202020202020202020202020202020202020202020202020746869732e63685b725d2e6f705b335d2e4b65794f666628293b0a202020202020202020202020202020202020202020207d0a20202020202020202020202020202020202020207d20656c7365207b0a20202020202020202020202020202020202020202020746869732e63685b372026206e5d2e4b6579436f6e74726f6c286e203e3e2033293b0a20202020202020202020202020202020202020207d0a2020202020202020202020202020202020202020627265616b3b0a202020202020202020202020202020202020636173652031363a0a202020202020202020202020202020202020636173652031373a0a2020202020202020202020202020202020202020746869732e53657454696d65724128652c206e293b0a2020202020202020202020202020202020202020627265616b3b0a202020202020202020202020202020202020636173652031383a0a2020202020202020202020202020202020202020746869732e53657454696d657242286e293b0a2020202020202020202020202020202020202020627265616b3b0a202020202020204d08022020202020202020202020636173652032303a0a2020202020202020202020202020202020202020746869732e53657454696d6572436f6e74726f6c286e293b0a2020202020202020202020202020202020202020627265616b3b0a202020202020202020202020202020202020636173652032343a0a2020202020202020202020202020202020202020746869732e6c666f66726571203d206e3b0a2020202020202020202020202020202020202020746869732e6c666f5f636f756e745f646966665f203d0a2020202020202020202020202020202020202020202028746869732e72617465726174696f202a0a20202020202020202020202020202020202020202020202028283136202b20283135202620746869732e6c666f667265712929203c3c20283132202d20742e464d5f524154494f42495453292929202f0a202020202020202020202020202020202020202020202831203c3c20283135202d2028746869732e6c666f66726571203e3e20342929293b0a2020202020202020202020202020202020202020627265616b3b0a202020202020202020202020202020202020636173652032353a0a202020202020202020202020202020202020202069662028283132382026206e29203d3d203029207b0a20202020202020202020202020202020202020202020746869732e616d64203d203132372026206e3b0a202020204d0802202020202020202020202020202020207d20656c7365207b0a20202020202020202020202020202020202020202020746869732e706d64203d203132372026206e3b0a20202020202020202020202020202020202020207d0a2020202020202020202020202020202020202020627265616b3b0a202020202020202020202020202020202020636173652032373a0a2020202020202020202020202020202020202020746869732e6c666f77617665666f726d203d20332026206e3b0a2020202020202020202020202020202020202020627265616b3b0a202020202020202020202020202020202020636173652033323a0a202020202020202020202020202020202020636173652033333a0a202020202020202020202020202020202020636173652033343a0a202020202020202020202020202020202020636173652033353a0a202020202020202020202020202020202020636173652033363a0a202020202020202020202020202020202020636173652033373a0a202020202020202020202020202020202020636173652033383a0a202020202020202020202020202020202020636173652033393a0a2020202020202020202020202020202020202020746869732e63685b725d2e536574464228286e203e3e20332920262037293b0a2020202020202020202020202020202020202020746869732e63685b725d2e536574416c4d0802676f726974686d28372026206e293b0a2020202020202020202020202020202020202020746869732e70616e5b725d203d20286e203e3e203629202620333b0a2020202020202020202020202020202020202020627265616b3b0a202020202020202020202020202020202020636173652034303a0a202020202020202020202020202020202020636173652034313a0a202020202020202020202020202020202020636173652034323a0a202020202020202020202020202020202020636173652034333a0a202020202020202020202020202020202020636173652034343a0a202020202020202020202020202020202020636173652034353a0a202020202020202020202020202020202020636173652034363a0a202020202020202020202020202020202020636173652034373a0a2020202020202020202020202020202020202020746869732e6b635b725d203d206e3b0a2020202020202020202020202020202020202020746869732e63685b725d2e5365744b434b4628746869732e6b635b725d2c20746869732e6b665b725d293b0a2020202020202020202020202020202020202020627265616b3b0a202020202020202020202020202020202020636173652034383a0a202020202020202020202020202020202020636173652034393a0a202020202020202020202020202020202020636173652035303a0a20202020204d080220202020202020202020202020636173652035313a0a202020202020202020202020202020202020636173652035323a0a202020202020202020202020202020202020636173652035333a0a202020202020202020202020202020202020636173652035343a0a202020202020202020202020202020202020636173652035353a0a2020202020202020202020202020202020202020746869732e6b665b725d203d206e203e3e20323b0a2020202020202020202020202020202020202020746869732e63685b725d2e5365744b434b4628746869732e6b635b725d2c20746869732e6b665b725d293b0a2020202020202020202020202020202020202020627265616b3b0a202020202020202020202020202020202020636173652035363a0a202020202020202020202020202020202020636173652035373a0a202020202020202020202020202020202020636173652035383a0a202020202020202020202020202020202020636173652035393a0a202020202020202020202020202020202020636173652036303a0a202020202020202020202020202020202020636173652036313a0a202020202020202020202020202020202020636173652036323a0a202020202020202020202020202020202020636173652036333a0a2020202020202020202020202020202020202020746869732e63685b725d2e5365744d5328286e203c3c4d0802203429207c20286e203e3e203429293b0a2020202020202020202020202020202020202020627265616b3b0a202020202020202020202020202020202020636173652031353a0a2020202020202020202020202020202020202020746869732e6e6f69736564656c7461203d206e3b0a2020202020202020202020202020202020202020746869732e6e6f697365636f756e74203d20303b0a2020202020202020202020202020202020202020627265616b3b0a20202020202020202020202020202020202064656661756c743a0a20202020202020202020202020202020202020206966202865203e3d20363429207b0a20202020202020202020202020202020202020202020746869732e536574506172616d6574657228652c206e293b0a20202020202020202020202020202020202020207d0a202020202020202020202020202020207d0a20202020202020202020202020207d0a2020202020202020202020207d3b0a2020202020202020202020206e2e70726f746f747970652e536574506172616d65746572203d2066756e6374696f6e2028742c206529207b0a2020202020202020202020202020766172206e203d205b302c20322c20312c20335d5b2874203e3e203329202620335d3b0a20202020202020202020202020207661722072203d20746869732e63685b37202620745d2e6f705b6e5d3b0a2020202020202020204d0802202020202073776974636820282874203e3e2035292026203729207b0a202020202020202020202020202020206361736520323a0a202020202020202020202020202020202020722e5365744454282865203e3e20342920262037293b0a202020202020202020202020202020202020722e5365744d554c544928313520262065293b0a202020202020202020202020202020202020627265616b3b0a202020202020202020202020202020206361736520333a0a202020202020202020202020202020202020722e536574544c2831323720262065293b0a202020202020202020202020202020202020627265616b3b0a202020202020202020202020202020206361736520343a0a202020202020202020202020202020202020722e5365744b53282865203e3e20362920262033293b0a202020202020202020202020202020202020722e53657441522832202a202833312026206529293b0a202020202020202020202020202020202020627265616b3b0a202020202020202020202020202020206361736520353a0a202020202020202020202020202020202020722e53657444522832202a202833312026206529293b0a202020202020202020202020202020202020722e536574414d4f4e2828313238202620652920213d2030293b0a202020202020202020202020202020202020627265616b3b0a2020202020202020202020204d0802202020206361736520363a0a202020202020202020202020202020202020722e53657453522832202a202833312026206529293b0a202020202020202020202020202020202020722e536574445432282865203e3e20362920262033293b0a202020202020202020202020202020202020627265616b3b0a202020202020202020202020202020206361736520373a0a202020202020202020202020202020202020722e536574534c280a20202020202020202020202020202020202020205b0a20202020202020202020202020202020202020202020302c20342c20382c2031322c2031362c2032302c2032342c2032382c2033322c2033362c2034302c2034342c2034382c2035322c2035362c0a202020202020202020202020202020202020202020203132342c0a20202020202020202020202020202020202020205d5b2865203e3e20342920262031355d0a202020202020202020202020202020202020293b0a202020202020202020202020202020202020722e53657452522834202a202831352026206529202b2032293b0a20202020202020202020202020207d0a2020202020202020202020207d3b0a2020202020202020202020206e2e70726f746f747970652e4275696c644c464f5461626c65203d2066756e6374696f6e202829207b0a2020202020202020202020202020746869732e616d7461626c65203d206e6577204d080241727261792834293b0a2020202020202020202020202020746869732e706d7461626c65203d206e65772041727261792834293b0a2020202020202020202020202020666f7220287661722074203d20303b2074203c20343b20742b2b29207b0a202020202020202020202020202020207661722065203d20303b0a20202020202020202020202020202020746869732e616d7461626c655b745d203d206e657720417272617928746869732e4f504d5f4c464f454e5453293b0a20202020202020202020202020202020746869732e706d7461626c655b745d203d206e657720417272617928746869732e4f504d5f4c464f454e5453293b0a20202020202020202020202020202020666f722028766172206e203d20303b206e203c20746869732e4f504d5f4c464f454e54533b206e2b2b29207b0a20202020202020202020202020202020202076617220723b0a20202020202020202020202020202020202076617220633b0a20202020202020202020202020202020202073776974636820287429207b0a20202020202020202020202020202020202020206361736520303a0a2020202020202020202020202020202020202020202063203d2028286e202b203235362920262035313129202f2032202d203132383b0a2020202020202020202020202020202020202020202072203d20323535202d206e202f20323b0a2020202020204d080220202020202020202020202020202020627265616b3b0a20202020202020202020202020202020202020206361736520313a0a2020202020202020202020202020202020202020202072203d206e203c20323536203f20323535203a20303b0a2020202020202020202020202020202020202020202063203d206e203c20323536203f20313237203a202d3132383b0a20202020202020202020202020202020202020202020627265616b3b0a20202020202020202020202020202020202020206361736520323a0a2020202020202020202020202020202020202020202063203d202863203d20286e202b203132382920262035313129203c20323536203f2063202d20313238203a20333833202d20633b0a2020202020202020202020202020202020202020202072203d206e203c20323536203f20323535202d206e203a206e202d203235363b0a20202020202020202020202020202020202020202020627265616b3b0a20202020202020202020202020202020202020206361736520333a0a20202020202020202020202020202020202020202020696620282128332026206e2929207b0a20202020202020202020202020202020202020202020202065203d202828283332373638202a204d6174682e72616e646f6d282929207c203029202f203137292026203235353b0a202020202020202020202020202020202020202020204d08027d0a2020202020202020202020202020202020202020202072203d20653b0a2020202020202020202020202020202020202020202063203d2065202d203132383b0a2020202020202020202020202020202020207d0a202020202020202020202020202020202020746869732e616d7461626c655b745d5b6e5d203d2030207c20723b0a202020202020202020202020202020202020746869732e706d7461626c655b745d5b6e5d203d20282d63202d203129207c20303b0a202020202020202020202020202020207d0a20202020202020202020202020207d0a2020202020202020202020207d3b0a2020202020202020202020206e2e70726f746f747970652e4c464f203d2066756e6374696f6e202829207b0a202020202020202020202020202076617220743b0a202020202020202020202020202069662028746869732e6c666f77617665666f726d203d3d3d203329207b0a20202020202020202020202020202020696620282d31333130373220262028746869732e6c666f5f636f756e745f205e20746869732e6c666f5f636f756e745f707265765f2929207b0a20202020202020202020202020202020202074203d202828283332373638202a204d6174682e72616e646f6d282929207c203029202f203137292026203235353b0a202020202020202020202020202020202020746869732e636869702e536574504d4c2828284d080274202d2031323829202a20746869732e706d6429202f20313238202b20313238293b0a202020202020202020202020202020202020746869732e636869702e536574414d4c282874202a20746869732e616d6429202f20313238293b0a202020202020202020202020202020207d0a20202020202020202020202020207d20656c7365207b0a2020202020202020202020202020202074203d2028746869732e6c666f5f636f756e745f203e3e203135292026203531303b0a20202020202020202020202020202020746869732e636869702e536574504d4c280a20202020202020202020202020202020202028746869732e706d7461626c655b746869732e6c666f77617665666f726d5d5b745d202a20746869732e706d6429202f20313238202b203132380a20202020202020202020202020202020293b0a20202020202020202020202020202020746869732e636869702e536574414d4c280a20202020202020202020202020202020202028746869732e616d7461626c655b746869732e6c666f77617665666f726d5d5b745d202a20746869732e616d6429202f203132380a20202020202020202020202020202020293b0a20202020202020202020202020207d0a2020202020202020202020202020746869732e6c666f5f636f756e745f707265765f203d20746869732e6c666f5f636f756e745f3b0a20202020202020202020204d0802202020746869732e6c666f5f737465705f2b2b3b0a2020202020202020202020202020696620282837202620746869732e6c666f5f737465705f29203d3d203029207b0a20202020202020202020202020202020746869732e6c666f5f636f756e745f202b3d20746869732e6c666f5f636f756e745f646966665f3b0a20202020202020202020202020207d0a2020202020202020202020207d3b0a2020202020202020202020206e2e70726f746f747970652e4e6f697365203d2066756e6374696f6e202829207b0a2020202020202020202020202020746869732e6e6f697365636f756e74202b3d2032202a20746869732e72617465726174696f3b0a202020202020202020202020202069662028746869732e6e6f697365636f756e74203e3d203332203c3c20742e464d5f524154494f4249545329207b0a202020202020202020202020202020207661722065203d203332202d20283331202620746869732e6e6f69736564656c7461293b0a202020202020202020202020202020206966202865203d3d3d203129207b0a20202020202020202020202020202020202065203d20323b0a202020202020202020202020202020207d0a20202020202020202020202020202020746869732e6e6f697365636f756e74203d20746869732e6e6f697365636f756e74202d202865203c3c20742e464d5f524154494f42495453293b0a20204d0802202020202020202020202020202069662028283331202620746869732e6e6f69736564656c746129203d3d20333129207b0a202020202020202020202020202020202020746869732e6e6f697365636f756e74202d3d20742e464d5f524154494f424954533b0a202020202020202020202020202020207d0a20202020202020202020202020202020746869732e6e6f697365203d2028746869732e6e6f697365203e3e203129205e202831202620746869732e6e6f697365203f203333383030203a2030293b0a20202020202020202020202020207d0a202020202020202020202020202072657475726e20746869732e6e6f6973653b0a2020202020202020202020207d3b0a2020202020202020202020206e2e70726f746f747970652e4d6978537562203d2066756e6374696f6e2028742c206529207b0a20202020202020202020202020206966202831363338342026207429207b0a20202020202020202020202020202020655b746869732e70616e5b305d5d203d20746869732e63685b305d2e43616c6328293b0a20202020202020202020202020207d0a202020202020202020202020202069662028343039362026207429207b0a20202020202020202020202020202020655b746869732e70616e5b315d5d202b3d20746869732e63685b315d2e43616c6328293b0a20202020202020202020202020207d0a202020202020204d08022020202020202069662028313032342026207429207b0a20202020202020202020202020202020655b746869732e70616e5b325d5d202b3d20746869732e63685b325d2e43616c6328293b0a20202020202020202020202020207d0a2020202020202020202020202020696620283235362026207429207b0a20202020202020202020202020202020655b746869732e70616e5b335d5d202b3d20746869732e63685b335d2e43616c6328293b0a20202020202020202020202020207d0a20202020202020202020202020206966202836342026207429207b0a20202020202020202020202020202020655b746869732e70616e5b345d5d202b3d20746869732e63685b345d2e43616c6328293b0a20202020202020202020202020207d0a20202020202020202020202020206966202831362026207429207b0a20202020202020202020202020202020655b746869732e70616e5b355d5d202b3d20746869732e63685b355d2e43616c6328293b0a20202020202020202020202020207d0a202020202020202020202020202069662028342026207429207b0a20202020202020202020202020202020655b746869732e70616e5b365d5d202b3d20746869732e63685b365d2e43616c6328293b0a20202020202020202020202020207d0a202020202020202020202020202069662028312026207429207b0a202020202020202020202020204d080220202069662028313238202620746869732e6e6f69736564656c746129207b0a202020202020202020202020202020202020655b746869732e70616e5b375d5d202b3d20746869732e63685b375d2e43616c634e28746869732e4e6f6973652829293b0a202020202020202020202020202020207d20656c7365207b0a202020202020202020202020202020202020655b746869732e70616e5b375d5d202b3d20746869732e63685b375d2e43616c6328293b0a202020202020202020202020202020207d0a20202020202020202020202020207d0a2020202020202020202020207d3b0a2020202020202020202020206e2e70726f746f747970652e4d69785375624c203d2066756e6374696f6e2028742c206529207b0a20202020202020202020202020206966202831363338342026207429207b0a20202020202020202020202020202020655b746869732e70616e5b305d5d203d20746869732e63685b305d2e43616c634c28293b0a20202020202020202020202020207d0a202020202020202020202020202069662028343039362026207429207b0a20202020202020202020202020202020655b746869732e70616e5b315d5d202b3d20746869732e63685b315d2e43616c634c28293b0a20202020202020202020202020207d0a202020202020202020202020202069662028313032342026207429207b0a2020202020202020204d080220202020202020655b746869732e70616e5b325d5d202b3d20746869732e63685b325d2e43616c634c28293b0a20202020202020202020202020207d0a2020202020202020202020202020696620283235362026207429207b0a20202020202020202020202020202020655b746869732e70616e5b335d5d202b3d20746869732e63685b335d2e43616c634c28293b0a20202020202020202020202020207d0a20202020202020202020202020206966202836342026207429207b0a20202020202020202020202020202020655b746869732e70616e5b345d5d202b3d20746869732e63685b345d2e43616c634c28293b0a20202020202020202020202020207d0a20202020202020202020202020206966202831362026207429207b0a20202020202020202020202020202020655b746869732e70616e5b355d5d202b3d20746869732e63685b355d2e43616c634c28293b0a20202020202020202020202020207d0a202020202020202020202020202069662028342026207429207b0a20202020202020202020202020202020655b746869732e70616e5b365d5d202b3d20746869732e63685b365d2e43616c634c28293b0a20202020202020202020202020207d0a202020202020202020202020202069662028312026207429207b0a2020202020202020202020202020202069662028313238202620746869732e6e6f69736564656c744d08026129207b0a202020202020202020202020202020202020655b746869732e70616e5b375d5d202b3d20746869732e63685b375d2e43616c634c4e28746869732e4e6f6973652829293b0a202020202020202020202020202020207d20656c7365207b0a202020202020202020202020202020202020655b746869732e70616e5b375d5d202b3d20746869732e63685b375d2e43616c634c28293b0a202020202020202020202020202020207d0a20202020202020202020202020207d0a2020202020202020202020207d3b0a2020202020202020202020207661722072203d206e65772041727261792834293b0a2020202020202020202020206e2e70726f746f747970652e6d697853746572656f203d2066756e6374696f6e2028742c20652c206e29207b0a20202020202020202020202020207661722063203d20303b0a2020202020202020202020202020666f7220287661722069203d2028746869732e617474656e756174696f6e2c2030293b2069203c20383b20692b2b29207b0a2020202020202020202020202020202063203d202863203c3c203229207c20746869732e63685b695d2e5072657061726528293b0a20202020202020202020202020207d0a20202020202020202020202020206966202832202620746869732e726567303129207b0a202020202020202020202020202020206320263d2032313834353b0a2020204d080220202020202020202020207d0a20202020202020202020202020207661722061203d2030207c206e3b0a2020202020202020202020202020666f72202869203d20303b2069203c20653b20692b2b29207b0a20202020202020202020202020202020725b315d203d20725b325d203d20725b335d203d20303b0a20202020202020202020202020202020746869732e4c464f28293b0a202020202020202020202020202020206966202834333639302026206329207b0a202020202020202020202020202020202020746869732e4d69785375624c28632c2072293b0a202020202020202020202020202020207d20656c7365207b0a202020202020202020202020202020202020746869732e4d697853756228632c2072293b0a202020202020202020202020202020207d0a20202020202020202020202020202020745b612b2b5d203d202828725b315d202b20725b335d202b20725b325d202b20725b335d29202f2032353629202a20302e33333b0a20202020202020202020202020207d0a2020202020202020202020207d3b0a2020202020202020202020206e2e70726f746f747970652e496e7472203d2066756e6374696f6e20287429207b7d3b0a20202020202020202020202072657475726e206e3b0a202020202020202020207d2928293b0a20202020202020202020742e4f504d203d20653b0a20202020202020207d2928294d08023b0a2020202020202020766172206374203d206e6577206e742e4f504d28293b0a2020202020202020766172206974203d2063742e496e697428333537393534352c2034386533293b0a2020202020202020636f6e736f6c652e6c6f672827594d20496e69743a2027202b206974293b0a20202020202020206c6574206174203d206e657720417272617928323536293b0a2020202020202020766172207374203d20563b0a2020202020202020766172206674203d20583b0a2020202020202020766172207574203d206e657720417272617928313331303732293b0a2020202020202020766172206474203d2066616c73653b0a2020202020202020766172206c74203d2066616c73653b0a2020202020202020766172206874203d2066616c73653b0a2020202020202020766172204174203d2066616c73653b0a2020202020202020766172207074203d2066616c73653b0a2020202020202020766172206274203d2066616c73653b0a2020202020202020766172206774203d2066616c73653b0a2020202020202020766172207974203d2066616c73653b0a2020202020202020766172207774203d20303b0a2020202020202020766172206d74203d20303b0a2020202020202020766172204d74203d20303b0a2020202020202020766172207674203d20303b0a2020202020202020766172204c74203d20303b0a2020202020204d08022020766172204974203d20303b0a2020202020202020766172204574203d20303b0a2020202020202020766172205374203d20323b0a2020202020202020766172207874203d202d313b0a2020202020202020766172206b74203d207b7d3b0a2020202020202020766172204274203d206e756c6c3b0a20202020202020206a742e70726f746f74797065203d207b0a20202020202020202020676574546f7069633a2066756e6374696f6e202829207b0a20202020202020202020202072657475726e20746869732e746f7069633b0a202020202020202020207d2c0a202020202020202020206f6e4576656e743a2066756e6374696f6e20287429207b7d2c0a20202020202020207d3b0a2020202020202020766172204674203d206e756c6c3b0a2020202020202020766172204774203d206e756c6c3b0a2020202020202020766172207a74203d2066616c73653b0a2020202020202020766172205774203d203636323b0a2020202020202020766172205574203d20303b0a2020202020202020766172205a74203d20303b0a2020202020202020766172205174203d20303b0a2020202020202020766172204874203d20303b0a2020202020202020766172205974203d20303b0a2020202020202020766172205674203d20303b0a2020202020202020766172204a74203d20303b0a20202020202020205274280a202020202020204d08022020206e6577206a742827696e6974272c2066756e6374696f6e202829207b0a2020202020202020202020204674203d204e653b0a2020202020202020202020204774203d2059653b0a202020202020202020207d290a2020202020202020293b0a2020202020202020766172207465203d206e65772041727261792832303438293b0a2020202020202020766172206565203d205b312c20312c20302c20312c20312c20312c20302c20302c20302c20302c20312c20302c20312c20302c20305d3b0a2020202020202020766172206e65203d205b0a20202020202020202020302c20302c20312c20302c20312c20312c20302c20302c20312c20312c20312c20312c20312c20302c20302c20302c20312c20312c20302c20312c20312c20312c20302c0a20202020202020202020312c20302c20312c20302c20302c20302c20302c20312c0a20202020202020205d3b0a2020202020202020766172207265203d205b0a20202020202020202020302c20302c20312c20302c20312c20302c20302c20302c20312c20302c20302c20302c20302c20302c20302c20302c20312c20302c20312c20312c20312c20302c20302c0a20202020202020202020312c20302c20312c20302c20302c20312c20312c20312c20312c20312c20302c20302c20312c20312c20302c20312c20312c20302c20312c20302c20312c20312c20312c0a202020204d0802202020202020302c20312c20312c20302c20302c20312c20302c20302c20312c20312c20312c20312c20302c20312c20302c20302c20302c20302c20312c20312c20302c20312c20312c0a20202020202020202020302c20302c20302c20312c20302c20302c20302c20312c20312c20312c20312c20302c20312c20302c20312c20312c20302c20312c20302c20312c20302c20302c20302c0a20202020202020202020302c20312c20312c20302c20312c20302c20312c20302c20302c20302c20312c20302c20312c20302c20302c20302c20312c20312c20312c20302c20302c20312c20312c0a20202020202020202020302c20312c20312c20302c20302c20312c20312c20312c20312c20312c20302c20302c20312c20312c20302c20302c20302c20312c20312c20302c20312c20302c20302c0a20202020202020202020302c20312c20312c20302c20302c20312c20312c20312c20312c20302c20302c20312c20302c20302c20302c20312c20312c20312c20302c20302c20312c20312c20302c0a20202020202020202020312c20302c20312c20312c20302c20312c20312c20302c20312c20302c20302c20312c20302c20302c20312c20312c20312c20312c20312c20312c20302c20312c20312c0a20202020202020202020312c20312c20302c20312c20312c20302c20302c20302c20302c20312c20312c20312c20312c20314d08022c20302c20302c20302c20312c20302c20302c20302c20302c20312c0a20202020202020202020302c20302c20302c20312c20302c20312c20302c20312c20312c20302c20302c20302c20302c20312c20302c20312c20312c20312c20312c20302c20312c20302c20302c0a20202020202020202020302c20312c20312c20302c20302c20302c20312c20312c20312c20302c20312c20312c20312c20302c20312c20302c20302c20302c20302c20302c20302c20302c20302c0a20202020202020202020312c20302c20312c20302c20302c20312c20302c20302c20302c20302c20312c20312c20312c20302c20302c20302c20312c20312c20312c20302c20302c20312c20312c0a20202020202020202020302c20302c20312c20302c20302c20312c20302c20312c20312c20302c20302c20302c20302c20312c20302c20302c20302c20312c20302c20302c20302c20312c20302c0a20202020202020202020312c20312c20312c20312c20302c20302c20302c20312c20312c20312c20302c20302c20302c20312c20302c20302c20312c20312c20312c20312c20302c20312c20312c0a20202020202020202020312c20312c20312c20312c20312c20302c20312c20312c20312c20312c20312c20312c20302c20312c20312c20302c20312c20302c20312c20312c20312c20312c20302c0a20202020202020202020302c20312c20304d08022c20312c20302c20312c20312c20312c20302c20302c20302c20302c20302c20312c20312c20302c20312c20312c20302c20302c20302c20312c20302c0a20202020202020202020312c20302c20312c20302c20302c20302c20302c20312c20302c20312c20312c20312c20302c20302c20302c20302c20312c20302c20302c20312c20302c20312c20302c0a20202020202020202020302c20302c20312c20302c20312c20312c20312c20302c20302c20312c20312c20312c20312c20312c20312c20312c20302c20302c20302c20302c20302c20312c20302c0a20202020202020202020302c20312c20312c20302c20312c20302c20302c20312c20302c20302c20302c20312c20302c20302c20312c20302c20312c20302c20302c20302c20312c20312c20302c0a20202020202020202020312c20302c20302c20302c20302c20302c20312c20312c20312c20312c20302c20302c20312c20302c20302c20312c20302c20312c20312c20312c20312c20312c20312c0a20202020202020202020312c20302c20312c20302c20302c20312c20302c20302c20302c20312c20312c20302c20312c20312c20312c20302c20302c20302c20312c20302c20312c20302c20302c0a20202020202020202020312c20302c20312c20302c20312c20302c20312c20312c20312c20302c20302c20312c20302c20312c20312c20302c20302c20312c4d080220312c20312c20312c20312c20302c0a20202020202020202020302c20302c20312c20312c20302c0a20202020202020205d3b0a2020202020202020766172206365203d205b0a20202020202020202020312c20302c20302c20302c20302c20302c20302c20302c20302c20302c20302c20302c20302c20302c20302c20302c20302c20302c20312c20302c20302c20302c20302c0a20202020202020202020302c20302c20302c20302c20302c20302c20302c20302c0a20202020202020205d3b0a2020202020202020766172206965203d205b302c20305d3b0a2020202020202020766172206165203d205b302c20305d3b0a2020202020202020766172206f65203d205b302c20305d3b0a2020202020202020766172207365203d205b302c20305d3b0a2020202020202020766172206665203d205b302c20305d3b0a2020202020202020766172207565203d205b302c20305d3b0a2020202020202020766172206465203d205b302c20305d3b0a2020202020202020766172206c65203d205b302c20305d3b0a2020202020202020766172206865203d205b302c20305d3b0a2020202020202020766172204165203d20303b0a2020202020202020766172206765203d20583b0a2020202020202020766172207965203d20563b0a2020202020202020766172207765203d2066756e6374696f6e2028742c206529207b0a20202020204d08022020202020766172206e203d20303b0a202020202020202020207661722072203d20303b0a2020202020202020202073776974636820287429207b0a202020202020202020202020636173652032313a0a202020202020202020202020202073655b305d203d203135202620653b0a20202020202020202020202020206e203d20303b0a2020202020202020202020202020627265616b3b0a202020202020202020202020636173652032323a0a202020202020202020202020202073655b315d203d203135202620653b0a20202020202020202020202020206e203d20313b0a2020202020202020202020202020627265616b3b0a202020202020202020202020636173652032333a0a202020202020202020202020202066655b305d203d203331202620653b0a20202020202020202020202020206e203d20303b0a2020202020202020202020202020627265616b3b0a202020202020202020202020636173652032343a0a202020202020202020202020202066655b315d203d203331202620653b0a20202020202020202020202020206e203d20313b0a2020202020202020202020202020627265616b3b0a202020202020202020202020636173652032353a0a202020202020202020202020202075655b305d203d202831352026206529203c3c20323b0a20202020202020202020202020206e203d20303b0a2020202020202020204d08022020202020627265616b3b0a202020202020202020202020636173652032363a0a202020202020202020202020202075655b315d203d202831352026206529203c3c20323b0a20202020202020202020202020206e203d20313b0a2020202020202020202020202020627265616b3b0a20202020202020202020202064656661756c743a0a202020202020202020202020202072657475726e3b0a202020202020202020207d0a202020202020202020206966202873655b6e5d203d3d203029207b0a20202020202020202020202072203d20303b0a20202020202020202020202069655b6e5d203d2075655b6e5d3b0a202020202020202020207d20656c7365207b0a20202020202020202020202072203d202866655b6e5d202b2031292026203235353b0a2020202020202020202020206966202873655b6e5d203e20313129207b0a202020202020202020202020202072203d202833202a2072292026203235353b0a2020202020202020202020207d0a202020202020202020207d0a20202020202020202020696620287220213d2061655b6e5d29207b0a20202020202020202020202061655b6e5d203d20723b0a202020202020202020202020696620286f655b6e5d203d3d2030207c7c2072203d3d203029207b0a20202020202020202020202020206f655b6e5d203d20723b0a2020202020202020202020207d0a2020202020204d0802202020207d0a20202020202020207d3b0a2020202020202020766172206d65203d2071743b0a2020202020202020766172204d65203d2058743b0a2020202020202020766172207665203d2066756e6374696f6e2028742c206529207b0a20202020202020202020737769746368202828285774203d2074292c20285574203d2065292c20742929207b0a20202020202020202020202063617365203636333a0a20202020202020202020202020205a74203d20313032343b0a20202020202020202020202020207a74203d20747275653b0a2020202020202020202020202020627265616b3b0a20202020202020202020202063617365203636303a0a20202020202020202020202020205a74203d20313b0a20202020202020202020202020207a74203d20747275653b0a2020202020202020202020202020627265616b3b0a20202020202020202020202063617365203636313a0a20202020202020202020202020205a74203d20383b0a20202020202020202020202020207a74203d20747275653b0a2020202020202020202020202020627265616b3b0a20202020202020202020202063617365203636323a0a20202020202020202020202020205a74203d2036343b0a20202020202020202020202020207a74203d20747275653b0a202020202020202020207d0a20202020202020202020696620287a7429207b0a2020202020204d08022020202020204a742b2b3b0a2020202020202020202020205674203d205a74202a20653b0a2020202020202020202020205974203d2066616c73653b0a202020202020202020207d0a20202020202020207d3b0a2020202020202020766172204c65203d2044743b0a2020202020202020766172204965203d204e743b0a2020202020202020766172204365203d205f743b0a2020202020202020766172204565203d2066756e6374696f6e20287429207b0a20202020202020202020696620286c742026262074203e3d20313130342026262074203c203131323029207b0a2020202020202020202020207661722065203d2073742874202d2031313034202b203136333834293b0a20202020202020202020202072657475726e20653b0a202020202020202020207d0a202020202020202020206966202868742026262074203e3d20313132302026262074203c3d203131323129207b0a20202020202020202020202065203d203120262074203f2063742e4765745374617475732829203a20303b0a20202020202020202020202069662028787420213d202d3120262620312026207429207b0a2020202020202020202020202020696620287874203e203029207b0a2020202020202020202020202020202078742d2d3b0a20202020202020202020202020207d20656c736520696620287874203d3d2030202626205374203e2030294d0802207b0a2020202020202020202020202020202065203d20323b0a202020202020202020202020202020207874203d2045743b0a20202020202020202020202020202020696620282d2d5374203d3d3d203029207b0a2020202020202020202020202020202020207874203d202d313b0a202020202020202020202020202020207d0a20202020202020202020202020207d0a2020202020202020202020207d0a20202020202020202020202072657475726e20653b0a202020202020202020207d0a202020202020202020206966202864742026262074203e3d2031363338342026262074203c2033323736382026262021677429207b0a202020202020202020202020766172206e203d2074202d2031363338343b0a20202020202020202020202069662028417429207b0a202020202020202020202020202072657475726e206d5f72616d5b6e5d3b0a2020202020202020202020207d0a202020202020202020202020696620287074202626206e203c203831393229207b0a202020202020202020202020202069662028797429207b0a2020202020202020202020202020202072657475726e2075745b2828383139312026206e29202b2038313932202a202831352026204d742929207c20282831202620777429203c3c2038295d3b0a20202020202020202020202020207d20656c7365207b0a2020202020202020202020202020204d08022072657475726e2075745b2828383139312026206e29202b2038313932202a202831352026206d742929207c20282831202620777429203c3c2038295d3b0a20202020202020202020202020207d0a2020202020202020202020207d0a202020202020202020202020696620286274202626206e203e3d2038313932202626206e203c20313633383429207b0a202020202020202020202020202069662028797429207b0a2020202020202020202020202020202072657475726e2075745b0a2020202020202020202020202020202020202828383139312026206e29202b2038313932202a2028284d74203e3e20342920262031352929207c20282832202620777429203c3c2037290a202020202020202020202020202020205d3b0a20202020202020202020202020207d20656c7365207b0a2020202020202020202020202020202072657475726e2075745b0a2020202020202020202020202020202020202828383139312026206e29202b2038313932202a2028286d74203e3e20342920262031352929207c20282832202620777429203c3c2037290a202020202020202020202020202020205d3b0a20202020202020202020202020207d0a2020202020202020202020207d0a202020202020202020207d0a2020202020202020202072657475726e20303b0a20202020202020207d3b0a2020202020202020766172205365203d204d080266756e6374696f6e2028742c206529207b0a20202020202020202020696620286c742026262074203e3d20313130342026262074203c203131323029207b0a20202020202020202020202066742874202d2031313034202b2031363338342c2065293b0a202020202020202020207d20656c7365206966202868742026262074203e3d20313132302026262074203c3d203131323129207b0a20202020202020202020202069662028312026207429207b0a20202020202020202020202020206f742849742c2065293b0a2020202020202020202020202020696620284974203d3d3d2031382026262065203d3d3d2032353229207b0a202020202020202020202020202020207874203d204574203d203132393b0a20202020202020202020202020207d0a2020202020202020202020207d20656c7365207b0a20202020202020202020202020204974203d20653b0a2020202020202020202020207d0a202020202020202020207d20656c7365206966202864742026262074203e3d2031363338342026262074203c20333237363829207b0a202020202020202020202020766172206e203d2074202d2031363338343b0a20202020202020202020202069662028417429207b0a20202020202020202020202020206d5f72616d5b6e5d203d20653b0a2020202020202020202020207d20656c736520696620287074202626206e203c20384d080231393229207b0a202020202020202020202020202075745b28383139312026206e29202b2038313932202a202831352026206d74295d203d20653b0a2020202020202020202020207d20656c736520696620286274202626206e203e3d2038313932202626206e203c20313633383429207b0a202020202020202020202020202075745b28383139312026206e29202b2038313932202a2028286d74203e3e2034292026203135295d203d20653b0a2020202020202020202020207d0a202020202020202020207d20656c7365206966202874203e3d20313133362026262074203c203131353229207b0a2020202020202020202020206966202874203d3d203131333629207b0a20202020202020202020202020206c74203d203136202620287774203d2065293b0a20202020202020202020202020207074203d20333220262077743b0a20202020202020202020202020206274203d20363420262077743b0a20202020202020202020202020206874203d2031323820262077743b0a2020202020202020202020207d20656c7365206966202874203d3d203131343429207b0a20202020202020202020202020206d74203d20653b0a2020202020202020202020207d20656c7365206966202874203d3d203131343829207b0a20202020202020202020202020204d74203d20653b0a2020202020202020202020207d20656c73652069664d0802202874203d3d203131333729207b0a20202020202020202020202020207674203d20653b0a2020202020202020202020207d20656c7365206966202874203d3d203131333829207b0a20202020202020202020202020204174203d2031202620284c74203d2065293b0a20202020202020202020202020206774203d20322026204c743b0a2020202020202020202020207d0a2020202020202020202020206474203d204174207c7c207074207c7c2062743b0a202020202020202020207d0a20202020202020207d3b0a2020202020202020766172207865203d2066616c73653b0a2020202020202020766172204465203d206e756c6c3b0a2020202020202020766172204e65203d206e6577204172726179283635353336293b0a2020202020202020766172205f65203d206e6577204172726179283635353336293b0a2020202020202020766172205465203d206e6577204172726179283635353336293b0a2020202020202020766172206b65203d2066616c73653b0a2020202020202020766172204265203d2066616c73653b0a2020202020202020766172206a65203d2066616c73653b0a2020202020202020766172205265203d2066616c73653b0a2020202020202020766172205065203d2066616c73653b0a2020202020202020766172204f65203d2066616c73653b0a2020202020202020766172204665203d2066616c734d0802653b0a2020202020202020766172204765203d20303b0a2020202020202020766172207a65203d2066616c73653b0a2020202020202020766172205765203d2066616c73653b0a20202020202020205274280a202020202020202020206e6577206a7428276f6e4361727472696467654c6f61646564272c2066756e6374696f6e202829207b0a2020202020202020202020206b65203d20617228293b0a2020202020202020202020204265203d206f7228293b0a2020202020202020202020206a65203d20737228293b0a2020202020202020202020204665203d20647228293b0a202020202020202020202020677228293b0a2020202020202020202020205265203d20667228293b0a2020202020202020202020205065203d206c7228293b0a2020202020202020202020204f65203d20687228293b0a2020202020202020202020204765203d20437228293b0a202020202020202020207d290a2020202020202020293b0a20202020202020205274280a202020202020202020206e6577206a7428276f6e4869676853636f7265436172744c6f61646564272c2066756e6374696f6e20287429207b0a2020202020202020202020207865203d20743b0a202020202020202020207d290a2020202020202020293b0a20202020202020205274280a202020202020202020206e6577206a7428276869676853636f726543616c6c6261634d08026b4368616e676564272c2066756e6374696f6e20287429207b0a2020202020202020202020204465203d20743b0a202020202020202020207d290a2020202020202020293b0a202020202020202076617220726e203d202730313233343536373839616263646566272e73706c6974282727293b0a202020202020202069662028616e282768656c6c6f272920213d202735643431343032616263346232613736623937313964393131303137633539322729207b0a2020202020202020202066756e6374696f6e206f6e28742c206529207b0a202020202020202020202020766172206e203d202836353533352026207429202b2028363535333520262065293b0a20202020202020202020202072657475726e2028282874203e3e20313629202b202865203e3e20313629202b20286e203e3e2031362929203c3c20313629207c202836353533352026206e293b0a202020202020202020207d0a20202020202020207d0a202020202020202076617220736e203d206e756c6c3b0a202020202020202076617220666e203d206e756c6c3b0a202020202020202076617220756e203d206e756c6c3b0a202020202020202076617220646e203d206e756c6c3b0a2020202020202020766172206c6e203d206e756c6c3b0a202020202020202076617220686e203d20303b0a202020202020202076617220416e203d20313b0a2020202020204d0802202076617220706e203d20323b0a202020202020202076617220626e203d20333b0a202020202020202076617220676e203d20343b0a202020202020202076617220796e203d20373b0a202020202020202076617220776e203d2027273b0a2020202020202020766172206d6e203d2027273b0a2020202020202020766172204d6e203d20303b0a202020202020202076617220766e203d20303b0a2020202020202020766172204c6e203d2066616c73653b0a202020202020202076617220496e203d2066616c73653b0a202020202020202076617220436e203d205b312c20315d3b0a202020202020202076617220456e203d20303b0a202020202020202076617220536e203d20303b0a202020202020202076617220786e203d20303b0a202020202020202076617220446e203d20303b0a2020202020202020766172204e6e203d2066616c73653b0a2020202020202020766172205f6e203d2066616c73653b0a202020202020202076617220546e203d2032383b0a2020202020202020766172206b6e203d20313b0a202020202020202076617220426e203d20303b0a2020202020202020766172206a6e203d2066616c73653b0a202020202020202076617220526e203d2066616c73653b0a202020202020202076617220506e203d2066616c73653b0a2020202020202020766172204f6e203d20303b0a202020202020202076614d08027220466e203d20303b0a202020202020202076617220476e203d2066616c73653b0a2020202020202020766172207a6e203d2066616c73653b0a202020202020202076617220576e203d2066616c73653b0a202020202020202076617220556e203d20323b0a2020202020202020766172205a6e203d2066616c73653b0a202020202020202076617220516e203d206e756c6c3b0a202020202020202076617220486e203d20303b0a202020202020202076617220596e203d2066616c73653b0a20202020202020205274280a202020202020202020206e6577206a742827696e6974272c2066756e6374696f6e20287429207b0a2020202020202020202020206c6e203d20742e526567696f6e2e524547494f4e5f4e5453433b0a202020202020202020202020736e203d2056653b0a202020202020202020202020666e203d204a653b0a202020202020202020202020756e203d2059653b0a202020202020202020207d290a2020202020202020293b0a20202020202020205274280a202020202020202020206e6577206a7428276869676853636f726543616c6c6261636b4368616e676564272c2066756e6374696f6e20287429207b0a202020202020202020202020646e203d20743b0a202020202020202020207d290a2020202020202020293b0a2020202020202020766172206e63203d2066756e6374696f6e202829207b0a20204d08022020202020202020746869732e5f77203d20303b0a20202020202020202020746869732e77506c7573506c7573203d2066756e6374696f6e202829207b0a2020202020202020202020207661722074203d20746869732e5f773b0a202020202020202020202020746869732e7365745728746869732e5f77202b2031293b0a20202020202020202020202072657475726e20743b0a202020202020202020207d3b0a20202020202020202020746869732e774d696e75734d696e7573203d2066756e6374696f6e202829207b0a2020202020202020202020207661722074203d20746869732e5f773b0a202020202020202020202020746869732e7365745728746869732e5f77202d2031293b0a20202020202020202020202072657475726e20743b0a202020202020202020207d3b0a20202020202020202020746869732e77506c7573457175616c203d2066756e6374696f6e20287429207b0a202020202020202020202020746869732e7365745728746869732e5f77202b2074293b0a202020202020202020207d3b0a20202020202020202020746869732e774d696e7573457175616c203d2066756e6374696f6e20287429207b0a202020202020202020202020746869732e7365745728746869732e5f77202d2074293b0a202020202020202020207d3b0a20202020202020202020746869732e73657457203d2066756e6374696f6e4d080220287429207b0a202020202020202020202020746869732e5f77203d203635353335202620743b0a202020202020202020207d3b0a20202020202020202020746869732e67657457203d2066756e6374696f6e202829207b0a20202020202020202020202072657475726e20746869732e5f773b0a202020202020202020207d3b0a20202020202020202020746869732e676574424c203d2066756e6374696f6e202829207b0a20202020202020202020202072657475726e20323535202620746869732e5f773b0a202020202020202020207d3b0a20202020202020202020746869732e676574424c5369676e6564203d2066756e6374696f6e202829207b0a2020202020202020202020207661722074203d20746869732e676574424c28293b0a20202020202020202020202069662028283132382026207429203e203029207b0a202020202020202020202020202072657475726e2074202d203235363b0a2020202020202020202020207d20656c7365207b0a202020202020202020202020202072657475726e20743b0a2020202020202020202020207d0a202020202020202020207d3b0a20202020202020202020746869732e736574424c203d2066756e6374696f6e20287429207b0a202020202020202020202020746869732e7365745728283635323830202620746869732e5f7729207c20283235352026207429293b0a20204d080220202020202020207d3b0a20202020202020202020746869732e626c506c7573457175616c203d2066756e6374696f6e20287429207b0a202020202020202020202020746869732e736574424c28746869732e676574424c2829202b2074293b0a202020202020202020207d3b0a20202020202020202020746869732e6765744248203d2066756e6374696f6e202829207b0a20202020202020202020202072657475726e20283635323830202620746869732e5f7729203e3e3e20383b0a202020202020202020207d3b0a20202020202020202020746869732e7365744248203d2066756e6374696f6e20287429207b0a202020202020202020202020746869732e736574572828323535202620746869732e5f7729207c20282874203c3c203829202620363532383029293b0a202020202020202020207d3b0a20202020202020202020746869732e6268506c7573457175616c203d2066756e6374696f6e20287429207b0a202020202020202020202020746869732e736574424828746869732e67657442482829202b2074293b0a202020202020202020207d3b0a20202020202020202020746869732e636f7079203d2066756e6374696f6e20287429207b0a202020202020202020202020746869732e5f77203d20742e5f773b0a202020202020202020207d3b0a20202020202020207d3b0a2020202020202020766172207263203d4d08022051653b0a2020202020202020766172206363203d2059653b0a2020202020202020766172206963203d204e653b0a2020202020202020766172206163203d20303b0a2020202020202020766172206f63203d20303b0a2020202020202020766172207363203d20303b0a2020202020202020766172206663203d20303b0a2020202020202020766172207563203d20303b0a2020202020202020766172206463203d206e6577206e6328293b0a2020202020202020766172206c63203d20303b0a2020202020202020766172206863203d206e6577206e6328293b0a2020202020202020766172204163203d20303b0a2020202020202020766172207063203d2066616c73653b0a2020202020202020766172206263203d20313b0a2020202020202020766172206763203d20323b0a2020202020202020766172207963203d20343b0a2020202020202020766172207763203d20383b0a2020202020202020766172206d63203d2031363b0a2020202020202020766172204d63203d2033323b0a2020202020202020766172207663203d2036343b0a2020202020202020766172204c63203d203132383b0a2020202020202020766172204963203d2036353533333b0a2020202020202020766172204363203d2036353533323b0a2020202020202020766172204563203d2036353533313b0a2020202020202020766172205363203d20364d0802353533303b0a2020202020202020766172207863203d2036353533353b0a2020202020202020766172204463203d2036353533343b0a2020202020202020766172204e63203d205b0a20202020202020202020372c20362c20302c20302c20322c20332c20352c20302c20332c20322c20322c20322c20302c20342c20362c20302c20322c20352c20302c20302c20302c20342c20362c0a20202020202020202020302c20322c20342c20302c20302c20302c20342c20372c20302c20362c20362c20302c20302c20332c20332c20352c20302c20342c20322c20322c20322c20342c20342c0a20202020202020202020362c20302c20322c20352c20302c20302c20302c20342c20362c20302c20322c20342c20302c20302c20302c20342c20372c20302c20362c20362c20302c20302c20302c0a20202020202020202020332c20352c20302c20332c20322c20322c20322c20332c20342c20362c20302c20322c20352c20302c20302c20302c20342c20362c20302c20322c20342c20302c20302c0a20202020202020202020302c20342c20372c20302c20362c20362c20302c20302c20302c20332c20352c20302c20342c20322c20322c20302c20352c20342c20362c20302c20322c20352c20302c0a20202020202020202020302c20302c20342c20362c20302c20322c20342c20302c20302c20302c20342c20372c20302c20322c204d0802362c20302c20302c20332c20332c20332c20302c20322c20302c0a20202020202020202020322c20302c20342c20342c20342c20302c20322c20362c20302c20302c20342c20342c20342c20342c20322c20352c20322c20302c20302c20352c20302c20302c20322c0a20202020202020202020362c20322c20302c20332c20332c20332c20302c20322c20322c20322c20302c20342c20342c20342c20302c20322c20352c20302c20362c20342c20342c20342c20302c0a20202020202020202020322c20342c20322c20302c20342c20342c20342c20302c20322c20362c20302c20302c20332c20332c20352c20302c20322c20322c20322c20302c20342c20342c20362c0a20202020202020202020302c20322c20352c20302c20302c20302c20342c20362c20302c20322c20342c20302c20302c20302c20342c20372c20302c20322c20362c20302c20302c20332c20332c0a20202020202020202020352c20302c20322c20322c20322c20302c20342c20342c20362c20302c20322c20352c20302c20302c20302c20342c20362c20302c20322c20342c20302c20302c20302c0a20202020202020202020342c20372c20302c0a20202020202020205d3b0a2020202020202020766172204263203d206e6577206e6328293b0a2020202020202020766172205263203d206e6577206e6328293b0a20202020202020207661722050634d0802203d206e6577206e6328293b0a2020202020202020766172204c69203d20303b0a2020202020202020766172205369203d204e653b0a2020202020202020766172207869203d2051653b0a2020202020202020766172204469203d206e657720456928302c2031372c203331392c20323538293b0a2020202020202020766172204e69203d206e657720456928302c2032362c203331392c20323438293b0a2020202020202020766172205f69203d206e756c6c3b0a2020202020202020766172205469203d205b6e657720417272617928313630292c206e657720417272617928313630295d3b0a2020202020202020766172206b69203d20303b0a2020202020202020766172204269203d2054695b6b695d3b0a2020202020202020766172206a69203d20303b0a2020202020202020766172205269203d2066616c73653b0a2020202020202020766172205069203d206e6577206e6328293b0a2020202020202020766172204f69203d206e6577206e6328293b0a2020202020202020766172204669203d206e6577206e6328293b0a2020202020202020766172204769203d20303b0a2020202020202020766172207a69203d20303b0a2020202020202020766172205769203d20303b0a2020202020202020766172205569203d20303b0a2020202020202020766172205a69203d20303b0a2020202020202020766172205169203d204d0802303b0a2020202020202020766172204869203d2066616c73653b0a2020202020202020766172205969203d2066616c73653b0a2020202020202020766172205669203d2066616c73653b0a2020202020202020766172206561203d206e6577206e6328293b0a20202020202020205274280a202020202020202020206e6577206a7428276f6e4361727472696467654c6f61646564272c2066756e6374696f6e20287429207b0a2020202020202020202020204869203d2021742e4973586d456e61626c656428292026262021742e497342616e6b7365747328293b0a202020202020202020202020636f6e736f6c652e6c6f6728274d617269612052414d204469726563743a2027202b204869293b0a2020202020202020202020205669203d20742e497342616e6b7365747328293b0a202020202020202020207d290a2020202020202020293b0a2020202020202020766172206361203d206e657720417272617928373638293b0a2020202020202020766172206f61203d20623b0a2020202020202020766172207361203d2065743b0a2020202020202020766172206661203d2074653b0a2020202020202020766172207561203d2062653b0a2020202020202020766172206461203d2044743b0a2020202020202020766172206c61203d205f743b0a2020202020202020766172206861203d206e756c6c3b0a2020202020202020764d08026172204161203d206e756c6c3b0a2020202020202020766172207061203d20303b0a2020202020202020766172206261203d20303b0a2020202020202020766172206761203d20303b0a2020202020202020766172207961203d2066616c73653b0a2020202020202020766172207761203d2066616c73653b0a2020202020202020766172206d61203d206e65772041727261792838313932293b0a2020202020202020766172204d61203d206e65772041727261792838313932293b0a20202020202020205274280a202020202020202020206e6577206a742827696e6974272c2066756e6374696f6e202829207b0a2020202020202020202020206861203d20596f3b0a202020202020202020207d290a2020202020202020293b0a20202020202020205274280a202020202020202020206e6577206a7428276f6e4361727472696467654c6f61646564272c2066756e6374696f6e202829207b0a2020202020202020202020207961203d20617228293b0a202020202020202020207d290a2020202020202020293b0a2020202020202020766172204c61203d2033313434303b0a2020202020202020766172204961203d206e756c6c3b0a2020202020202020766172204361203d206e756c6c3b0a2020202020202020766172204561203d206e6577204172726179283136333834293b0a2020202020202020766172205361203d20304d08023b0a2020202020202020766172207861203d20303b0a20202020202020205274286e6577206a742827696e6974272c204e6129293b0a2020202020202020766172205461203d206161280a2020202020202020202027646174613a3b6261736536342c41414141414141414542415149794d6a4e54553152306448576c706162477873666e352b6b5a47526f364f6a74726132794d6a4932747261376533742f2f2f2f41514141464167414a686f414f537741537a38415856454163474d41676e59416c49674d70356f66756130787937394533744a57384f526f2f2f5a372f2f2b4e475141414c41414150676741554273415979304164554141683149416d6d51467248635976346b71305a733834363550397342682f394a302f2b57472f2f65594b4141414f774141545141415877734163683041684441416c6b49547156516c753263337a586c4b34497463387035752f3743422f384f542f39576c2f2b65344b77414150514141554141415967414a64524962687951756d54644172456c53766c746c304735333434434b395a4f632f3657752f3766422f3872542f397a6c495141464e41415852674170575141386177354f665342676b444a7a6f6b57467446655878326d7132587938363437502f7148682f37507a2f38582f2f396a2f44514179494142464d674258524142705678463861534f4f657a61676a6b697a6f467646734d08026d335978582f7131354c383671542f2f4c622f2f386e2f2f39762f414142534251426b467742334b516d4a504279625469367559454441633150546857586c6d486633716f722f764a7a2f7a362f2f3463482f3839502f2f2b622f41414265414142774141614344526d564943756e4d6a36355246444d56324c65615858776534662f6a706e2f6f4b7a2f7372372f7864442f312b502f3666582f4141425441415a6c414268334143714b43443263476b2b754c474842503354545559626d59356a346471762f694c332f6d74442f72654c2f762f542f30762f2f41414d7a41425a4741436859414470714145313943312b50485847694d49533051706247564b6a5a5a37767265633339692b442f6e764c2f73502f2f772f2f2f414138474143455941444d72414559394146685043477069476e31304c592b475036475a556253725a4d612b64746a51694f76696d2f333172662f2f762f2f2f41424d41414355414144674141456f4b41467764455738764a4946424e704e55534b5a6d573768356263754c674e32646b752b7770502f43742f2f5579662f6e4142414141434941414451414155634145316b414a6d73424f4834555370416d58614d346237564c676364646c4e70767075794375503655792f2b6d33662b35414155414142674143536f41484477414c6b38415147454155334d415a5959476435675969716f726e4c3039724d080273395077654a69302f523035762b472b502b5a41514141457767414a526f414f433041536a38415856494162325141675859416c496b4d70707366754b30787938424533644a57372b526f2f2f64372f2f2b4e270a2020202020202020293b0a2020202020202020766172206b61203d206161280a2020202020202020202027646174613a3b6261736536342c41414141414141414542415149794d6a4e54553152306448576c706162477873666e352b6b5a47526f364f6a74726132794d6a4932747261376533742f2f2f2f41514141464167414a686f414f537741537a38415856454163474d41676e59416c49674d70356f66756130787937394533744a57384f526f2f2f5a372f2f2b4e476741414c5141415077674155526f415a437741646a3841694645416d3251477258595a7634677230707339354b3151397239692f394a302f2b53482f2f615a4b5141414f7741415467414159416f4163687741685334456c30455771564d6f764759377a6e684e34597066383531792f362b452f3847572f3953702f2b61374b7741415051414154774141596741506442456968694d306d545a477130685a7656747230473139346e2b51395a4b692f3653302f3762482f386e5a2f3976734877414e4d514166517741795667424561413557657942706a544a376e30574e736c656778477179316e7a45365937582b3648702f3750372f38584d08022f2f396a2f434141364767424e4c5142665077427855524f455a435757646a656f694571376d317a4e72572f67774948793070502f354b622f39376a2f2f38722f2f39332f4141425841414270454142384967324f4e522b67527a477a5755544662466259666d6e716b4876386f34332f7461442f78374c2f3273542f374e662f2f2b6e2f414142644141427641417542426836554744436d4b6b4f355056584c543266645958727764497a2f6870372f6d4c482f7138502f7664582f7a2b6a2f3476722f4141424b41417464414235764144434241554b554646576d4a6d65344f486e4c53347a64585a3777634c442f6773502f6c4e582f702b6a2f7566722f792f2f2f4141676b41426f32414331494144396241464a744347522f473361534c596d6b503575325571334a5a4d446264744c756965542f6d2f662f72762f2f77502f2f4142454141435144414459574145676f41467336436d314e485839664c354a7851615345564c65575a736d7065647537692b374e6e662f6773502f7977762f2f41424941414355414144634141456b41423177484757345a4c49457250704d2b556156515937686964637031694e79486d752b5a72502b73762f2b2b30662f52414173414142344141444141446b4941494655414d6d634152586b4256347755615a346d664c41356a734e4c6f645664732b68777866714332502b5536762b6e4141414d08024142684141475349414b7a51415055634155466b41596d734164483441683541506d614d69724c553076736447304e705a342b7872396635392f2f2b5145414141496741414e42414152794d415754554161306341666c6f416b4777416f6e3451745a456978364d3132725a48374d685a2f7470732f2b312b2f2f2b52270a2020202020202020293b0a2020202020202020766172204261203d206161280a2020202020202020202027646174613a3b6261736536342c41414141414141414542415149794d6a4e54553152306448576c706162477873666e352b6b5a47526f364f6a74726132794d6a4932747261376533742f2f2f2f41514141464167414a686f414f537741537a38415856454163474d41676e59416c49674d70356f66756130787937394533744a57384f526f2f2f5a372f2f2b4e477741414c5141415141634155686b415a437741647a3441695645416d324d48726e55617749677330356f2b356178523937396a2f3946312f2b4f492f2f61614b674141504141415467414159516b4163787341685330486d45415a716c49727647552b7a33645134596c6a383578312f3636482f3843612f394f732f2b572b4b6741415041414154774144595141566378416f68694d366d44564d716b6466765670787a32794434583657394a476f2f364f362f37624e2f386a662f397278484141554c67416e515141355577424c5a4d080251356565434277696a4f436e4557567231656e7757713631487a4d356f37652b4b48782f37502f2f38622f2f396a2f41774242465142554b41426d4f674a345442574c5879656463546d7667307a436c6c37557148446d756f50357a5a582f3336662f3872722f2f387a2f2f392f2f41414261414142744351422f484243524c694f6b514457325530664a5a56726264327a74696e372f6e4a482f7271502f7762622f30386a2f3574722f2b4f332f41414261414142744142422f41434f524554576b4a4565324e6c724953477a6257333774625a482f6636502f6b72622f704d6a2f7474722f7965332f322f2f2f414142424142425441434e6c414456344145654b44317163495779764e48374252704854574b506d6137583466636a2f6b4e722f6f75332f74502f2f782f2f2f414177544142346d4144453441454e4b4146566442326876476e71434c49325550352b6d556247355938544c64746264694f6a776d76762f72662f2f762f2f2f41424d41414355414144634341456f554146776e443234354959464c4d354e6552715a77574c6943617371566664326e6a2b2b356f662f4d74502f6578762f774142414141434d41414455414145634145466f41493277474e5838595235457257714d39624c5a50663868696b6470306f2b324774762b5a79502b7232762b2b414159414142674143436f41477a30414c55384150324541554d08026e51415a49594864706b5a696173726d37302b72744251774f4a6a3076523135662b48392f2b6141674141464163414a786f414f537741537a3441586c454163474d41673355416c59674d70356f66757130787a4c3945337446573865526f2f2f5a372f2f2b4e477741414c6741415141634155686b415a537341647a3441695641416e474d49726e55617759637330356f2f356178522b4c356b2f3946322f2b4f492f2f5762270a2020202020202020293b0a2020202020202020766172206a61203d206161280a2020202020202020202027646174613a3b6261736536342c41414141414141414542415149794d6a4e54553152306448576c706162477873666e352b6b5a47526f364f6a74726132794d6a4932747261376533742f2f2f2f414141414252454146794d414b54554150456741546c6f415947774163333841685a45516d4b4d6971725931764d68487a39745a34653173382f392b2f2f2b5144514141494141414d68494152435141567a634161556b41653173416a6d34416f49415073704d687861553031376447367370592f4e78722f2b35392f2f2b50496741414e4141415267454157524d4161795541665467416b456f416f6c30537447386b78344532325a524a36365a622f7268742f3875412f3932532f2b2b6c4b7741415051414155414141596755416452634368796f556d54776d72453435766d464c30484e4d08026434345677395a69432f3671562f37326e2f382b352f2b484d4b4141414f6741415451414f587741686367387a684346466c6a525971555a71753168387a577550344832683870437a2f364c472f3754592f3866712f396e39475141624b77417550674241554142535977356c64534633687a4f4a6d6b576372466975766d724130587a5434342f6c396148332f37542f2f38622f2f396a2f41514244457742574a67426f4f414e375378574e58536966627a7179676b7a456c462f57706e4870755950377935622f33616a2f384c762f2f38332f2f392f2f41414261414142744351422f484243524c694f6b51545732553066495a56726265477a74696e372f6e4a482f7236502f7762582f30386a2f3574722f2b4f7a2f414142624141427541412b4141534753457a4f6c4a6b61334f466a4a536d76635858337562342f2f67614c2f6c4c542f7073622f75646e2f792b762f3366332f41414247414135594143427241444a3941455750455665694a476d304e6e7a475349375a573644726262502b674d582f6b746a2f704f722f742f7a2f79662f2f41416b6641427778414335444145425741464e6f43475637476e694e4c5971665035797955612f455a4d485764745070694f62376d2f6a2f72662f2f762f2f2f41424941414351414144595341456b6c414673334332314a485942634d4a4a7551715341564c65545a386d6c6564794d080233692b374b6e762f6373502f76772f2f2f41424941414355414144634141456b4143467746476d34594c49417150354d3855615650593768686473707a694e79476d2b2b5972662b71762f2b3930762f5041417341414234414144414144554941494655414d6d634152486b4356347755615a346d664c45356a734e4c6f4e5665732b687778667143312f2b5636762b6e414141414252414146794d414b6a554150456341546c6f415957774163333841685a45516d4b4d6971725930766368487a39705a346531733950392b2f2f2b51270a2020202020202020293b0a2020202020202020766172205261203d206161280a2020202020202020202027646174613a3b6261736536342c41414141414141414542415149794d6a4e54553152306448576c706162477873666e352b6b5a47526f364f6a74726132794d6a4932747261376533742f2f2f2f414141414252454146794d414b54554150456741546c6f415947774163333841685a45516d4b4d6971725931764d68487a39745a34653173382f392b2f2f2b5144674141494141414d7845415253514157445941616b6741664673416a3230416f5941507335496978715130324c644736736c5a2f6474722f2b35392f2f2b51497741414e514141527741415768494162435141666a63416b556b436f3173557457346d7949413532704a4c376156642f3764772f3871432f3979552f4d08022b366e4b774141506741415541414159675141645259486879675a6d6a73727245302b766d425130584a6934345231395a65482f366d612f3775732f38362b2f2b44524a7741414f514144537741575867416f634134366769464e6c544e6670305a78755669457a477157336e326f38592b372f36484e2f3754672f3862792f396a2f4651416a4b4141324f67424954414262587739746353462f677a53536c6b616b714669327532764a7a5833623335447438714c2f2f37542f2f38662f2f396e2f4141424b44514263494142764d675742525269555679716d6154793466452f4c6a6d48646f4850767334622f785a6a2f3136762f3672332f2f4d2f2f2f2b4c2f414142644141427641674b42465253554a79656d4f546d345445764c586c37646348447767344c2f6c5a582f714b662f75726e2f7a4d7a2f3339372f3866482f4141425841414671414252384143614f44546d684830757a4d56334652484459566f4c71614a54386536662f6a626e2f6e38762f7374372f7850442f31762f2f4141413741424e4e4143566741446479414571454456795848322b704d6f4737524a504f5671626761626a796538722f6a64332f6f4f2f2f73762f2f78662f2f4141304f4143416741444979414552464146645843476c70476e74384c49364f5036436755624b7a5938584664746659694f6e716d767a3872662f2f762f2f2f41424d41414d08024355414144674141456f514146776a45473831496f46484e4a4e6152365a735762682b613871526674326a6b4f2b316f2f2f4974662f61782f2f744142414141434d41414455414145634145566f414a4777454e6e3458534a457057364d376262564f663868676b74707a704f7946742f2b5879662b71322f2b38414159414142674143436f41477a30414c55384150324941556e51415a49594864706b5a696173736d37302b72644251774f4a6a3076523135502b48392f2b6141514141457767414a526f414f433041536a38415856494162325141675859416c496b4d70707366754b30787938424533644a57372b526f2f2f64372f2f2b4e270a2020202020202020293b0a2020202020202020766172205061203d206161280a2020202020202020202027646174613a3b6261736536342c41414141414141414542415149794d6a4e54553152306448576c706162477873666e352b6b5a47526f364f6a74726132794d6a4932747261376533742f2f2f2f414141414252454146794d414b54554150456741546c6f415947774163333841685a45516d4b4d6971725931764d68487a39745a34653173382f392b2f2f2b5144774141495141414e42454152694d41574455416130674166566f416b4777416f6e3851744a45697836513032625a483638685a2f7474732f2b312b2f2f2b514a4141414e674141534141415778454162534d4d080241674455416b6b674570466f5874323070795838373235464f377152672f375a792f3869462f3975582f2b32704c414141506741415541414159774d416452554d687963666d6a6f7872457844766c35573058466f34344e363970574e2f3669662f3771782f387a452f392f574a5141414e77414c535141655841417762673543675342566b7a4e6e705556357546654d796d71653348797737342f442f3648562f37506e2f3862362f396a2f455141734977412b4e6742525341426a5768423162534b49667a57616b5565737046712f746d7a527948376a323548323761502f2f37582f2f386a2f2f39722f414142514277426a475142314c4169485068756155433273597a2b2b64564c526832546a6d6e623172496e2f7670762f3061332f3438442f39744c2f2f2b582f41414265414142774141614344526d564943756e4d6a36355246444d56324c65615858776534662f6a706e2f6f4b7a2f7372372f7864442f312b502f3666582f414142524141646a41426c3241437949426a3661474643744b324f2f505858525434666b59707232644b7a2f68372f2f6d64482f712b502f7676622f30502f2f414155744142672f414370534144786b41453932436d474a48484f624c6f6175515a6a41553676535a62336c654d2f3369754c2f6e66542f722f2f2f77662f2f4142414141434d4e414455664145637841467045435778574733354d08026f4c704637514b4f4e557257665a63697964397245697533576e502f7072762f3777662f2f41424d41414355414144634141456f414246774e463238674b5945794f354e4654715a58594c6870637370386864324f6c2b2b6771762b7a76502f467a762f5841417741414238414144454143304d41485659414c326741516e6f46564930585a353871656249386938524f6e745a68734f6c7a7776754731662b59352f2b71414141414242454146794d414b5455414f306741546c6f4159473041636e3841685a45516c36516971725931764d68487a74745a34653173382f392b2f2f2b5244774141495141414d78454152694d41574459416130674166566f416a3230416f6e3851744a45697871513032625a4836386c5a2f6474722f2b312b2f2f2b51270a2020202020202020293b0a2020202020202020766172204f61203d206161280a2020202020202020202027646174613a3b6261736536342c4141414145524552496949694d7a4d7a52455245565656565a6d5a6d64336433694969496d5a6d5a71717171753775377a4d7a4d33643364377537752f2f2f2f46676f414a7873414f43774153543041576b344161313841664841416a5945466e70495772364d6e774c51343063564a34745a61382b64722f2f68382f2f2b4e4c67414150776b4155426f4159537341636a7741673030416c46344170573851746f416878354579324d08024b4a4436624e552b73526c2f3956322f2b61482f2f6559505141415467414158776f4163427341675377416b6a304f6f3034667446387778584242316f465335354a6a2b4b4e302f3753462f3857572f39616e2f2b653450774141554141415951414a63684161677945726c44493870554e4e746c52657832567632486141365965522b7069692f366d7a2f3772452f3876562f397a6d4e67415a52774171574141376151784d65683164697935756e44392f72564351766d47687a334b7934495044385a54552f36586c2f3762322f38662f2f396a2f495142484d67425951774270564139365a53434c646a476368304b746d464f2b71575450756e586779346278334a662f37616a2f2f726e2f2f38722f2f39762f4267426e467742344b416d4a4f52716153697572577a79386245334e665637656a6d2f766e34442f734a482f77614c2f3072502f3438542f394e582f2f2b622f41414279414165444442695548536d6c4c6a71325030764855467a5959573370636e373667342f2f6c4b442f7062482f74734c2f7839502f324f542f3666582f4141686e41426c344143714a42547561466b79724a3132384f47374e53582f65577044766136482f664c4c2f6a63502f6e74542f722b582f7750622f30662f2f4142684841436c5941447070414574364231794c474732634b5836744f6f2b2b53364450584c486762634c786674502f6a4d08022b542f6f50582f73662f2f77762f2f41434d5a414451714145553741465a4d42576464466e68754a346c2f4f4a7151536175685772797961383344664e37556a652f6c6e762f32722f2f2f77502f2f414363414144674141456b4941466f5a446d7371483377374d49314d515a3564557139755938422f644e475168654b686c764f79702f2f4475502f5579662f6c414351414144554141555941456c6341493267414e486b4f52596f66567073775a367842654c31536963356a6d743930712f434676502b577a662b6e33762b3441426b4143796f41484473414c557741506c30415432344159483841635a4151677145686b374979704d4e44746452557875566c312f5a3236502b482b662b5946676b414a786f414f43734153547741576b304161313441664738416a5941466e7045577236496e774c4d343063524a34745661382b5a722f2f64382f2f2b4e270a2020202020202020293b0a2020202020202020766172204661203d206161280a2020202020202020202027646174613a3b6261736536342c4141414145524552496949694d7a4d7a52455245565656565a6d5a6d64336433694969496d5a6d5a71717171753775377a4d7a4d33643364377537752f2f2f2f46676f414a7873414f43774153543041576b344161313841664841416a5945466e70495772364d6e774c51343063564a34745a61382b64722f2f68382f2f2b4d08024e4c7741415141674155526b4159696f41637a7341684577416c563041706d345274333869794a417a3261464536724a562b384e6d2f3952332f2b57492f2f615a505141415467414158776b4163426f41675373416b6a77526f3030697446347a78573945316f42563535466d2b4b4a332f374f492f38535a2f3957712f2b613750774141554141415951415063673867677941786c44464370554a54746c4e6b7832523132485747365961582b70656f2f3669352f376e4b2f3872622f3976734d77416852414179565142445a6778556478316c694335326d542b48716c4359753247707a484b363359504c377054632f3658742f37622b2f38662f2f396a2f484142504c514267506742785478474359434b5463544f6b676b53316b315847704762587458666f786f6a3531356e2f364b722f2b62762f2f387a2f2f39332f41414272455142384967794e4d7832655243367656542f415a6c44526432486969484c7a6d59502f7170542f7536582f7a4c622f3363662f37746a2f2f2b6e2f4141427841417943425232544669366b4a7a2b314f46444753574858576e4c6f61345035664a542f6a61582f6e72622f7238662f774e6a2f30656e2f3476722f414131664142357741432b42414543534546476a49574b304d6e504651345457564a586e5a6162346472662f68386a2f6d4e6e2f7165722f7576762f792f2f2f414230344143354d08024a414439614146427242574638466e4b4e4a344f654f4a5376536158415772625261386669664e6a7a6a656e2f6e76722f722f2f2f77502f2f41435946414463574145676e41466b344232704a474874614b5978724f7031385336364e584c2b6562644376667548416a2f4c526f502f6973662f7a77762f2f414363414144674141456b4142566f46466d73574a33776e4f493034535a354a5771396161384272664e46386a654b4e6e764f65722f2b7677502f4130662f52414341414144454144554941486c4d414c325141514855415559594f5970636663366777684c6c426c6370537074746a742b78307950324632662b5736762b6e4342494147534d414b6a51414f3055415446594158576341626e674166346b496b4a6f5a6f617371737277377738314d314e3564356539753976392f2f2f2b514a4141414e52454152694941567a4d416145514165565541696d59416d33634a72496761765a6b727a716f383337744e384d78652f3931762f2b36412f2f2b52270a2020202020202020293b0a2020202020202020766172204761203d206161280a2020202020202020202027646174613a3b6261736536342c4141414145524552496949694d7a4d7a52455245565656565a6d5a6d64336433694969496d5a6d5a71717171753775377a4d7a4d33643364377537752f2f2f2f46676f414a7873414f43774153543041576b3441614d0802313841664841416a5945466e70495772364d6e774c51343063564a34745a61382b64722f2f68382f2f2b4e4c7741415141674155526b4159696f41637a7341684577416c563042706d34537433386a794a41303261464636724a572b384e6e2f3952342f2b574a2f2f616150674141547741415941674163526b4167696f446b7a73557045776c74563032786d354831333959364a42702b6146362f374b4c2f384f632f3953742f2b572b5067414154774144594141556351346c676838326b7a42487045465974564a70786d4e363133534c364957632b5a61742f36652b2f376a502f386e672f3972784d414170515141365567424c59777863644231746853352b6c6a2b50703143677547477879584c43326f50543635546b2f4b58312f37622f2f38662f2f396a2f467742574b41426e4f514a3453684f4a5779536162445772665561386a6c664e6e326a6573486e767759722f3070762f34367a2f394c332f2f38372f2f392f2f4141427643674341477843524c43476950544b7a546b5045583154566347586d675862336b6f662f6f356a2f744b6e2f7862722f3173762f35397a2f2b4f332f414142764142474141434b52447a4f694945537a4d565845516d62565533666d5a496a33645a6e2f6871722f6c37762f714d7a2f7564332f7975372f322f2f2f41424a5641434e6d41445233414557494446615a485765714c6e6937504d0802346e4d554a72645961767563727a2f6738332f6c4e372f70652f2f74762f2f782f2f2f4143416f4144453541454a4b41464e6242475273465856394a6f614f4e356566534b697757626e42617372536539766a6a4f7a306e66332f72762f2f762f2f2f414363414144674341456b5441466f6b43327331484878474c5931585070356f54363935594d434b6364476267754b736b2f4f3970502f4f74662f6678762f77414355414144594141456341446c674148326b444d486f555159736c5570773259363148644c3559686339706c754236702f474c75502b6379662b7432762b2b41426f4143537341476a77414b3030415046344154573841586f414262354553674b496a6b624d306f73524673395657784f5a6e3166643435762b4a392f2b6146676b414a786f414f43734153547741576b304161313441664738416a5941466e7045577236496e774c4d343063524a34745661382b5a722f2f64382f2f2b4e4d414141515163415568674159796b4164446f41685573416c6c7743703230547548346b7959383132714247363746582f4d4a6f2f394e352f2b534b2f2f5762270a2020202020202020293b0a2020202020202020766172207a61203d206161280a2020202020202020202027646174613a3b6261736536342c4141414145524552496949694d7a4d7a52455245565656565a6d5a6d64336433694969496d5a6d5a7171714d080271753775377a4d7a4d33643364377537752f2f2f2f42784d41474351414b5455414f6b5941533163415847674162586b41666f6f496a35735a6f4b7771736230377773354d30393964355042753966392f2f2f2b51496749414d784d4152435141565455415a6b594164316341694767416d586b48716f6f59753573707a4b77363362314c377335632f3939742f2f422b2f2f2b504e6741415277494157424d4161535141656a5541693059416e46634c72576763766e6b747a346f2b344a7450386178672f3731782f3836432f392b542f2f436b50774141554141415951514163685541677959516c44636870556779746c6c44783270553248746c365978322b7032482f3636592f372b702f3943362f2b484c505141415467414f5877416663413077675235426b6939536f30426a7446463078574b46316e4f573534536e2b4a57342f36624a2f3766612f386a722f396e384c6741765077424155414252595178696368317a677936456c442b567056436d746d473378334c493249505a365a54712b7158372f37622f2f38662f2f396a2f466742584a77426f4f414a3553524f4b57695362617a5773664561396a56664f6e6d6a6672336e777749722f305a762f34717a2f3837332f2f38372f2f392f2f414142754377422f48412b514c534368506a477954304c44594650556357546c676e58326b34622f704a662f74616a2f78726e4d08022f3138722f364e762f2b657a2f4141427741412b4241534353456a476a49304b304e46504652575457566e586e5a346234654a662f69616a2f6d726e2f7138722f764e762f7a657a2f3376332f41413962414342734144463941454b4f446c4f66483253774d485842515962535570666a59366a30644c6e2f6863722f6c74762f702b7a2f7550332f79662f2f4142303041433546414439574146426e42574634466e4b4a4a344f614f4a5372536157385772624e61386665664e6a766a656e2f6e76722f722f2f2f77502f2f41435944414463554145676c41466b3242327048474874594b5978704f7031365336364c584c2b63626443746675472b6a2f4c506f502f6773662f7877762f2f414363414144674141456b4142566f46466d73574a33776e4f493034535a354a5771396161384272664e46386a654b4e6e764f65722f2b7677502f4130662f5241434141414445414445494148564d414c6d51415033554155495950595a63676371677867376c436c4d70547064746b74757831782f324732502b5836662b6f42684d41467951414b4455414f555941536c63415732674162486b4166596f4a6a7073616e367772734c30387763354e30743965342f427639502b412f2f2b52270a2020202020202020293b0a2020202020202020766172205761203d206161280a2020202020202020202027646174613a3b6261736536342c414d080241414145524552496949694d7a4d7a52455245565656565a6d5a6d64336433694969496d5a6d5a71717171753775377a4d7a4d33643364377537752f2f2f2f42784d41474351414b5455414f6b5941533163415847674162586b41666f6f496a35735a6f4b7771736230377773354d30393964355042753966392f2f2f2b51497745414e42494152534d41566a51415a30554165465941695763416d6e674971346b5a764a6f717a6173373372784d373831642f3935752f2b392f2f2f2b514e774141534141415752454161694941657a4d416a4551416e56554f726d59667633637730496842345a6c533871706a2f3774302f3879462f3932572f2b366e514141415551414159674d4163785146684355576c54596e706b63347431684a79476c6132587072366f74382b35794e2f3632652f3736762f382f412f2b44524f774147544141585851416f626777356678314b6b4335626f543973736c42397732474f31484b6635594f77397054422f3658532f37626a2f3866302f396a2f4b5141344f67424a53774261584131726252353866692b4e6a3043656f46477673574c41776e505230345469354a587a3961622f2f37662f2f386a2f2f396e2f44774266494142774d515742516861535579656a5a44693064556e46686c72576c32766e71487a347559332f7970372f32362f2f374d442f2f64482f2f2b4c2f4141427841674f43454d08027853544a43576b4e546131526b664756316a5861476e6f65587235696f762f6d357a2f724b332f7662372f7a732f2f332b442f3850482f41415272414256384143614e436a6565473069764c466e4150577252546e766958347a7a634a332f6761372f6b722f2f6f39442f744f482f78664c2f31762f2f4142564f41435a66414464774145694243566d53476d716a4b33753050497a46545a33575871376e62372f34674e442f6b65482f6f764c2f732f2f2f78502f2f4143496841444d79414552444146565542475a6c465864324a6f69484e356d59534b71705762753661737a4c653933636a4f37746e662f2b72762f2f762f2f2f414363414144674141456b4f41466f6644577377486e78424c343153514a356a556139305973434663394757684f4b6e6c664f3470762f4a742f2f6179502f7241435141414455414145594145466341495767414d6e6b5251346f69564a737a5a617845647231566838356d6d4e39337166434975762b5a792f2b7133502b3741426f4143697341477a77414c45304150563441546d384158344141634a4552676149696b724d7a6f385245744e565678655a6d31766433352f2b492b502b5a46676b414a786f414f43734153547741576b304161313441664738416a5941466e7045577236496e774c4d343063524a34745661382b5a722f2f64382f2f2b4e270a2020202020202020293b0a202020204d080220202020766172205561203d206161280a2020202020202020202027646174613a3b6261736536342c4141414145524552496949694d7a4d7a52455245565656565a6d5a6d64336433694969496d5a6d5a71717171753775377a4d7a4d33643364377537752f2f2f2f42784d41474351414b5455414f6b5941533163415847674162586b41666f6f496a35735a6f4b7771736230377773354d30393964355042753966392f2f2f2b514a4141414e52454152694941567a4d416145514165565541696d59416d3363497249675a765a6b717a716f373337744d384d78642f3931752f2b352f2f2f2b514f414141535141415768414161794541664449416a554d416e6c5152723255697748597a305964453470685638366c6d2f3770332f3875492f39795a2f2b327151414141555141415967494163784d4c684351636c545574706b592b743164507947686732586c78366f71432b3575542f36796b2f3732312f3837472f392f584f51414f536741665777417762417842665231536a69356a6e7a39307346434677574757306e4b6e34344f34394a544a2f3658612f3762722f3866382f396a2f4a5142424e6742535277426a5741353061522b46656a43576930476e6e464b347257504a766e54617a345872344a62383861662f2f376a2f2f386e2f2f39722f4341426c475142324b6769484f786d595443717058547536626b7a4c6631334d0802636b4737746f582f2b7370442f7736482f314c4c2f3563502f3974542f2f2b582f41414279414165444442695548536d6c4c6a71325030764855467a5959573370636e373667342f2f6c4b442f7062482f74734c2f7839502f324f542f3666582f41416c6c414270324143754842447959465532704a6c36364e322f4c53494463575a487461714c2b6537502f6a4d542f6e64582f7275622f762f662f30502f2f4142704141437452414478694145317a426c364546322b564b49436d4f5a473353714c495737505a624d5471666458376a75622f6e2f662f73502f2f77662f2f4143554e414459654145637641466841426d6c52463370694b49747a4f5a7945537132565737366d624d2b33666544496a76485a6e2f2f7173502f3777662f2f414363414144674141456b4141316f4b464773624a5877734e6f30395235354f574b39666163427765744742692b4b536e504f6a72662b3076762f467a2f2f5741434141414445414330494148464d414c575141506e554154345951594a63686361677967726c446b387055704e746c7465783278763248312f2b5936502b704278494147434d414b5451414f6b5541533159415847634162586741666f6b496a356f5a6f4b7371736277377773314d30393564354f39753966392f2f2f2b514a4141414e52454152694941567a4d416145514165565541696d59416d33634a72496761765a6b4d0802727a716f383337744e384d78652f3931762f2b36412f2f2b52270a2020202020202020293b0a2020202020202020766172205a61203d20303b0a2020202020202020766172205161203d20313b0a2020202020202020766172204861203d20323b0a2020202020202020766172205961203d2048613b0a2020202020202020766172205661203d206e657720456928302c2031362c203331392c20323538293b0a2020202020202020766172204a61203d206e657720456928302c2032372c203331392c20323530293b0a2020202020202020766172205861203d206e657720456928302c2031362c203331392c20333038293b0a2020202020202020766172207161203d206e657720456928302c2032362c203331392c20323937293b0a2020202020202020766172204b61203d205b0a20202020202020202020302c20302c20302c2033372c2033372c2033372c2035322c2035322c2035322c2037392c2037392c2037392c2039312c2039312c2039312c203130352c203130352c0a202020202020202020203130352c203132332c203132332c203132332c203133382c203133382c203133382c203136372c203136372c203136372c203138352c203138352c203138352c203139372c0a202020202020202020203139372c203139372c203230382c203230382c203230382c203231352c203231352c203231352c203232352c2032324d0802352c203232352c203234342c203234342c203234342c0a202020202020202020203235352c203235352c203235352c2037362c2035302c20302c2039382c2035382c20302c203132332c2037342c20302c203135342c2039362c20302c203138312c203131362c0a20202020202020202020302c203230342c203133332c20302c203233312c203135382c20382c203234372c203137352c2031362c203235352c203139352c2032342c203235352c203230382c2033322c0a202020202020202020203235352c203231362c2034302c203235352c203232332c2034382c203235352c203233302c2035392c203235352c203234342c2036342c203235352c203235302c2037352c0a202020202020202020203235352c203235352c2038302c203135332c2033372c20302c203137302c2033372c20302c203138302c2033372c20302c203231312c2034382c20302c203232312c2037322c0a20202020202020202020322c203232362c2038302c20392c203234342c203130332c20302c203234342c203131372c2031362c203235352c203135382c2031362c203235352c203137322c2033322c0a202020202020202020203235352c203138362c2035382c203235352c203139312c2038302c203235352c203139382c203130392c203235352c203231332c203132382c203235352c203232382c0a202020202020202020203134342c20324d080235352c203233302c203135332c203135322c2031322c2031322c203135332c2031322c2031322c203139342c2031392c20302c203231312c2031392c20302c0a202020202020202020203232362c2035332c20302c203232372c2036342c20302c203232382c2036342c2033322c203232392c2038322c2034382c203235332c203132302c2038342c203235352c0a202020202020202020203133382c203130362c203235352c203135322c203132342c203235352c203136342c203133392c203235352c203137392c203135382c203235352c203139342c203137382c0a202020202020202020203235352c203230382c203138362c203235352c203231352c203139322c203135332c20302c20302c203136392c20302c20302c203139342c20342c20302c203231312c20342c0a20202020202020202020302c203231382c20342c20302c203231392c20382c20302c203232382c2033322c2033322c203234362c2036342c2036342c203235312c203131322c203131322c203235312c0a202020202020202020203132362c203132362c203235312c203134332c203134332c203235352c203135392c203135392c203235352c203137312c203137312c203235352c203138352c203138352c0a202020202020202020203235352c203230312c203230312c203235352c203230372c203230372c203132362c20302c2038302c203132384d08022c20302c2038302c203132382c20302c2039352c203134392c0a2020202020202020202031312c203131362c203137302c2033342c203133362c203138372c2034372c203135342c203230362c2036332c203137332c203231352c2039302c203138322c203232382c0a202020202020202020203130332c203139352c203233392c203131342c203230362c203235312c203132362c203231382c203235352c203134312c203232352c203235352c203135372c203232392c0a202020202020202020203235352c203136352c203233312c203235352c203137352c203233342c203235352c203138342c203233362c2037322c20302c203130382c2039322c20342c203133362c0a202020202020202020203130312c2031332c203134342c203132332c2033352c203136372c203134372c2035392c203139312c203135372c2036392c203230312c203136372c2037392c203231312c0a202020202020202020203137382c2039302c203232322c203138392c203130312c203233332c203139372c203130392c203234312c203230362c203131382c203235302c203231332c203133312c0a202020202020202020203235352c203231382c203134342c203235352c203232322c203135362c203235352c203232362c203136392c203235352c203233302c203138322c203235352c2032372c0a20202020202020202020302c203131322c4d08022033342c2032372c203134312c2035352c2034382c203136322c2037322c2036352c203137392c2038392c2038322c203139362c2039392c2039322c0a202020202020202020203230362c203131312c203130342c203231382c203132352c203131382c203233322c203133352c203132382c203234382c203134372c203134302c203235352c203135372c0a202020202020202020203135312c203235352c203136382c203136332c203235352c203137392c203137352c203235352c203138382c203138342c203235352c203139362c203139332c203235352c0a202020202020202020203231382c203230392c203235352c20302c2031332c203132372c20302c2031382c203136372c20302c2032342c203139322c2031302c2034332c203230392c2032372c0a2020202020202020202037342c203232372c2034372c2038382c203234302c2035352c203130342c203235352c2037332c203132312c203235352c2039312c203133332c203235352c203130392c0a202020202020202020203135302c203235352c203132372c203136332c203235352c203134302c203137332c203235352c203135302c203138302c203235352c203136382c203139322c203235352c0a202020202020202020203138332c203230332c203235352c203139382c203231342c203235352c20302c2034312c2039302c20302c2035362c203131382c4d080220302c2037322c203134362c20302c0a2020202020202020202039322c203137322c20302c203131332c203139382c20302c203133342c203230382c2031302c203135352c203232332c2032362c203136382c203233362c2034332c0a202020202020202020203138322c203235352c2036332c203139342c203235352c2036392c203230332c203235352c2038392c203231312c203235352c203132372c203231382c203235352c0a202020202020202020203134332c203232322c203235352c203136302c203232362c203235352c203137362c203233352c203235352c20302c2035362c2035372c20302c2036302c2037322c20302c0a2020202020202020202036312c2039312c20322c203130322c203132372c20332c203131352c203133312c20302c203135362c203137302c20302c203136312c203138372c20312c203136342c0a202020202020202020203230342c20332c203138372c203235352c20352c203231382c203232362c2032342c203232392c203235352c2035322c203233342c203235352c2037332c203233392c0a202020202020202020203235352c203130322c203234322c203235352c203133322c203234342c203235352c203135382c203234392c203235352c20302c2037342c20302c20302c2039332c20302c0a20202020202020202020302c203131322c20302c20302c203133392c20302c20302c4d0802203136392c20302c20302c203138372c20352c20302c203138392c20302c20322c203230382c20352c2032362c0a202020202020202020203231332c2036342c2039302c203234312c203131392c203133302c203233392c203136372c203133322c203233372c203230392c203133372c203235352c203233372c0a202020202020202020203132352c203235352c203235352c203134372c203235352c203235352c203135352c203235352c203235352c2033342c2037342c20332c2033392c2038332c20342c2034382c0a202020202020202020203130302c20352c2036302c203131392c2031322c2036392c203134302c2031372c2039302c203136352c2031392c2032372c203231302c20392c2033312c203232312c20302c0a2020202020202020202036312c203230352c2034352c2036312c203230352c2034382c2038382c203230342c2036342c2039362c203231312c2038302c203136322c203233362c2038352c203137392c0a202020202020202020203234322c2037342c203138372c203234362c2039332c203139362c203234382c203131322c2034362c2036332c2031322c2035342c2037342c2031352c2036342c2038362c0a2020202020202020202032312c2037302c2039352c2032332c2038372c203131392c2032362c203130312c203133332c2032382c203131362c203134372c2032392c203134332c20314d080236352c2033372c0a202020202020202020203137332c203138332c2034342c203138382c203139392c2034382c203230312c203231332c2035312c203231322c203232342c2035392c203232342c203233362c2036362c0a202020202020202020203233342c203234362c2036392c203234302c203235332c2037312c203234342c203235352c203131312c2038352c2033362c20302c2039302c2034342c20302c203130382c0a2020202020202020202035392c20302c203132312c2037352c20302c203138352c203131372c20302c203138372c203133332c20302c203139332c203136312c2033322c203230382c203137362c0a2020202020202020202034372c203232322c203139302c2036332c203233302c203139382c2036392c203233372c203230352c2038372c203234352c203231392c2039382c203235312c203232392c0a202020202020202020203130352c203235322c203233382c203131312c203235332c203234332c203131392c203235332c203234332c203132372c2039322c2033392c20302c2039322c2034372c0a20202020202020202020302c203131332c2035392c20302c203132332c2037322c20302c203138352c203130342c2033322c203138372c203131342c2033322c203139372c203133342c2034312c0a202020202020202020203231352c203135302c2035312c203233302c203136342c20364d0802342c203234342c203137372c2037352c203235332c203139332c2038382c203235352c203230342c2038352c0a202020202020202020203235352c203231322c2039372c203235352c203232312c203130352c203235352c203233302c203132312c203235352c203233342c203135322c0a20202020202020205d3b0a2020202020202020766172202461203d205b0a20202020202020202020302c20302c20302c2032382c2032382c2032382c2035372c2035372c2035372c2038392c2038392c2038392c203132312c203132312c203132312c203134362c203134362c0a202020202020202020203134362c203137312c203137312c203137312c203138382c203138382c203138382c203230352c203230352c203230352c203231372c203231372c203231372c203233302c0a202020202020202020203233302c203233302c203233362c203233362c203233362c203234322c203234322c203234322c203234382c203234382c203234382c203235352c203235352c203235352c0a202020202020202020203235352c203235352c203235352c2033382c2034382c20312c2033362c2035362c20332c2033352c2036342c20352c2038312c2038342c2032372c203132382c203130352c0a2020202020202020202034392c203135312c203132392c2035332c203137352c203135332c2035382c203139342c203136372c2036322c204d08023231332c203138312c2036372c203231392c203139322c0a2020202020202020202036312c203232352c203230332c2035362c203232362c203231362c2035342c203232372c203232392c2035322c203233392c203234322c2038382c203235312c203235352c0a202020202020202020203132352c203235312c203235352c203132352c2035372c2032332c20312c2039342c2033352c20342c203133312c2034382c20382c203136352c2037312c2032322c0a202020202020202020203230302c2039352c2033362c203232372c203132302c2033322c203235352c203134352c2032392c203235352c203137312c2032392c203235352c203139372c2032392c0a202020202020202020203235352c203230362c2035322c203235352c203231362c2037362c203235352c203233302c2038312c203235352c203234342c2038362c203235352c203234392c203131392c0a202020202020202020203235352c203235352c203135322c203235352c203235352c203135322c2036392c2032352c20342c203131342c2033302c2031372c203135392c2033362c2033302c0a202020202020202020203137392c2035382c2033322c203230302c2038312c2033342c203232372c203130352c2033322c203235352c203132392c2033302c203235352c203134302c2033372c0a202020202020202020203235352c203135322c2034342c204d08023235352c203137342c2035362c203235352c203139372c2036392c203235352c203139372c2038392c203235352c203139382c203130392c0a202020202020202020203235352c203231332c203133352c203235352c203232382c203136312c203235352c203232382c203136312c2037342c2032332c20342c203132362c2032362c2031332c0a202020202020202020203137382c2032392c2032332c203230302c2033332c2032352c203232332c2033372c2032382c203233362c2035392c2035362c203235302c2038322c2038352c203235322c0a2020202020202020202039372c2039372c203235352c203131322c203131302c203235352c203132372c203132362c203235352c203134332c203134332c203235352c203135372c203135382c0a202020202020202020203235352c203137312c203137332c203235352c203138352c203138392c203235352c203139392c203230362c203235352c203139392c203230362c20352c20352c203130342c0a2020202020202020202035392c2031392c203130392c203131332c2033342c203131342c203133392c2034322c203134302c203136352c2035302c203136362c203138352c2035362c203138362c0a202020202020202020203230352c2036322c203230372c203231392c2037312c203232312c203233342c2038312c203233352c203234342c2039352c203234352c204d08023235342c203130392c203235352c0a202020202020202020203235342c203132322c203235332c203235352c203133352c203235312c203235352c203134392c203235332c203235352c203136342c203235352c203235352c203136342c0a202020202020202020203235352c2034302c20342c203132312c2036342c20392c203133322c2038392c2031352c203134342c203131322c2033362c203135372c203133362c2035372c203137302c0a202020202020202020203136342c2036352c203139352c203139322c2037342c203232302c203230382c2038342c203233372c203232342c2039342c203235352c203233332c203130392c203235352c0a202020202020202020203234322c203132342c203235352c203234382c203133382c203235352c203235352c203135322c203235352c203235342c203136312c203235352c203235342c203137312c0a202020202020202020203235352c203235342c203137312c203235352c2035332c20382c203133382c2036362c2031302c203137332c2038302c2031322c203230382c203130302c2034302c0a202020202020202020203230382c203132312c2036392c203230382c203134312c2037352c203231322c203136322c2038312c203231372c203137362c2038382c203233362c203139302c2039362c0a202020202020202020203235352c203139372c203130372c2032354d0802352c203230342c203131392c203235352c203230392c203133312c203235352c203231352c203134342c203235352c203231392c0a202020202020202020203135372c203235352c203232332c203137302c203235352c203232332c203137302c203235352c20352c2033302c203132392c20362c2033382c203136352c20382c2034372c0a202020202020202020203230322c2033382c2036312c203231322c2036382c2037362c203232322c2037392c2039302c203233382c2039302c203130342c203235352c203130312c203131372c0a202020202020202020203235352c203131332c203133312c203235352c203132382c203134352c203235352c203134342c203136302c203235352c203135312c203136392c203235352c203135392c0a202020202020202020203137382c203235352c203137352c203139302c203235352c203139322c203230332c203235352c203139322c203230332c203235352c20352c2033302c203132392c20362c0a2020202020202020202033382c203136352c20382c2034372c203230322c2033382c2036312c203231322c2036382c2037362c203232322c2037392c2039302c203233382c2039302c203130342c0a202020202020202020203235352c203130312c203131372c203235352c203131332c203133312c203235352c203132382c203134352c203235352c203134342c203136302c4d0802203235352c203135312c0a202020202020202020203136392c203235352c203135392c203137382c203235352c203137352c203139302c203235352c203139322c203230332c203235352c203139322c203230332c203235352c0a2020202020202020202031322c20342c203133392c2033342c2032342c203136302c2035362c2034352c203138312c2037322c2036322c203139392c2038382c2037392c203231382c2039372c0a2020202020202020202038392c203233362c203130372c203130302c203235352c203132322c203131362c203235352c203133382c203133322c203235352c203134352c203134322c203235352c0a202020202020202020203135332c203135322c203235352c203136352c203136332c203235352c203137372c203137342c203235352c203138342c203138342c203235352c203139322c203139342c0a202020202020202020203235352c203139322c203139342c203235352c2032392c2034312c2039302c2032392c2035362c203131382c2032392c2037322c203134362c2032382c2039322c203137322c0a2020202020202020202032382c203131332c203139382c2035302c203133342c203230372c2037322c203135352c203231372c2037382c203136382c203233362c2038352c203138322c203235352c0a202020202020202020203131322c203139392c203235352c203134302c20324d080231362c203235352c203134372c203231392c203235352c203135352c203232332c203235352c203137352c203232382c0a202020202020202020203235352c203139352c203233332c203235352c203139352c203233332c203235352c2034372c2036372c20322c2035372c2038322c20322c2036382c2039372c20332c0a2020202020202020202036352c203132322c2031382c2036322c203134382c2033332c2037342c203135392c2034362c2038372c203137312c2035392c2039322c203138392c2038352c2039372c0a202020202020202020203230382c203131322c203130352c203232362c203132322c203131342c203234352c203133322c203132342c203235302c203134312c203133352c203235352c203135312c0a202020202020202020203135342c203235352c203136362c203137332c203235352c203138322c203137332c203235352c203138322c2031302c2036352c20382c2031332c2038342c2031302c0a2020202020202020202031362c203130342c2031332c2031392c203132352c2031352c2032322c203134362c2031382c2032352c203136352c2032302c2032382c203138352c2032332c2033302c0a202020202020202020203230312c2032352c2033332c203231372c2032372c2037312c203232382c2034352c203131302c203234302c2036342c203132302c203234372c2037372c203133312c4d08020a202020202020202020203235352c2039312c203135342c203235352c203132322c203137382c203235352c203135342c203137382c203235352c203135342c20342c2036352c2031312c20352c0a2020202020202020202038332c2031342c20362c203130322c2031372c20372c203131392c2032302c20382c203133362c2032332c20392c203135352c2032362c2031312c203137352c2032392c0a2020202020202020202037322c203139362c2033312c203133342c203231372c2033342c203134332c203233332c2033362c203135332c203234392c2033392c203136382c203235322c2036352c0a202020202020202020203138332c203235352c2039312c203230312c203235352c203131302c203232302c203235352c203132392c203232302c203235352c203132392c20322c2035332c2031352c0a20202020202020202020372c2036332c2032312c2031322c2037342c2032382c2034352c2039352c2033302c2037392c203131362c2033322c2038392c203133312c2033362c203130302c203134362c0a2020202020202020202034302c203133302c203136312c2034362c203136312c203137362c2035322c203136392c203139332c2035382c203137382c203231302c2036352c203139362c203231372c0a2020202020202020202036392c203231342c203232352c2037332c203232382c203234302c2037382c204d08023234322c203235352c2038332c203234322c203235352c2038332c0a20202020202020205d3b0a202020202020202076617220746f203d207b20303a204b612c20313a2054612c20323a206b612c20333a2042612c20343a204f612c20353a2046612c20363a204761207d3b0a202020202020202076617220656f203d207b20303a2024612c20313a206a612c20323a2052612c20333a2050612c20343a207a612c20353a2057612c20363a205561207d3b0a2020202020202020766172206e6f203d20333b0a20202020202020206e657720417272617928313331303732293b0a202020202020202076617220666f203d2066756e6374696f6e20287429207b0a20202020202020202020666f7220287661722065203d20303b2065203c20743b20652b2b29207b0a202020202020202020202020696620286f655b305d203e203129207b0a20202020202020202020202020206f655b305d2d2d3b0a2020202020202020202020207d20656c736520696620286f655b305d203d3d203129207b0a20202020202020202020202020206f655b305d203d2061655b305d3b0a202020202020202020202020202070652830293b0a2020202020202020202020207d0a202020202020202020202020696620286f655b315d203e203129207b0a20202020202020202020202020206f655b315d2d2d3b0a2020202020202020202020207d20656c734d08026520696620286f655b315d203d3d203129207b0a20202020202020202020202020206f655b315d203d2061655b315d3b0a202020202020202020202020202070652831293b0a2020202020202020202020207d0a20202020202020202020202074655b41652b2b5d203d202869655b305d202b2069655b315d292026203235353b0a202020202020202020202020696620284165203e3d203230343829207b0a20202020202020202020202020204165203d20303b0a2020202020202020202020207d0a202020202020202020207d0a20202020202020207d3b0a202020202020202076617220756f203d2066756e6374696f6e202829207b7d3b0a2020202020202020766172206c6f203d2066756e6374696f6e20287429207b0a2020202020202020202076617220653b0a20202020202020202020766172206e203d20623b0a202020202020202020207661722072203d20793b0a202020202020202020207661722063203d206e657720417272617928312c2032382c20313134293b0a20202020202020202020666f7220287661722069203d20743b20743b2029207b0a2020202020202020202020207661722061203d20303b0a202020202020202020202020666f72202865203d20303b2065203c2070202f20383b20652b2b29207b0a2020202020202020202020202020766172206f3b0a20202020202020202020202020207661724d08022073203d206e657720417272617928302c20302c2030293b0a20202020202020202020202020207661722066203d20312026204d203f2032203a20313b0a202020202020202020202020202069662028332026204f29207b0a20202020202020202020202020202020666f7220286f203d20303b206f203c20333b206f2b2b29207b0a202020202020202020202020202020202020415b6f5d2b2b3b0a20202020202020202020202020202020202069662028415b6f5d203e3d20635b6f5d29207b0a2020202020202020202020202020202020202020415b6f5d203d20303b0a2020202020202020202020202020202020202020735b6f5d203d20313b0a2020202020202020202020202020202020207d0a202020202020202020202020202020207d0a2020202020202020202020202020202053203d202853202b20312920252031353b0a2020202020202020202020202020202078203d202878202b20312920252033313b0a2020202020202020202020202020202044203d202844202b2031292025203531313b0a202020202020202020202020202020204e203d20284e202b2031292025203133313037313b0a202020202020202020202020202020206966202836342026204d20262620735b305d29207b0a2020202020202020202020202020202020207128302c2031362026204d203f2037203a2034293b0a20202020202020204d080220202020202020207d0a2020202020202020202020202020202069662028212836342026204d29202626202121735b665d29207b0a2020202020202020202020202020202020207128302c2031293b0a202020202020202020202020202020207d0a202020202020202020202020202020206966202833322026204d20262620735b305d29207b0a2020202020202020202020202020202020207128322c20382026204d203f2037203a2034293b0a202020202020202020202020202020207d0a2020202020202020202020202020202069662028212833322026204d29202626202121735b665d29207b0a2020202020202020202020202020202020207128322c2031293b0a202020202020202020202020202020207d0a2020202020202020202020202020202069662028735b665d29207b0a20202020202020202020202020202020202069662028212831362026204d2929207b0a20202020202020202020202020202020202020207128312c2031293b0a2020202020202020202020202020202020207d0a202020202020202020202020202020202020696620282128382026204d2929207b0a20202020202020202020202020202020202020207128332c2031293b0a2020202020202020202020202020202020207d0a202020202020202020202020202020207d0a20202020202020202020202020207d0a202020202020202020204d080220202020696620284b28322929207b0a2020202020202020202020202020202069662028382026204d29207b0a2020202020202020202020202020202020207128332c2031293b0a202020202020202020202020202020207d20656c7365207b0a202020202020202020202020202020202020242832293b0a202020202020202020202020202020207d0a2020202020202020202020202020202074742832293b0a20202020202020202020202020202020515b305d203d20342026204d203f20765b305d203a20313b0a20202020202020202020202020207d0a2020202020202020202020202020696620284b28332929207b0a2020202020202020202020202020202069662028382026204d29207b0a202020202020202020202020202020202020242832293b0a202020202020202020202020202020207d0a20202020202020202020202020202020242833293b0a2020202020202020202020202020202074742833293b0a20202020202020202020202020202020515b315d203d20322026204d203f20765b315d203a20313b0a20202020202020202020202020207d0a202020202020202020202020202069662028382026204f20262620545b315d203d3d203129207b0a20202020202020202020202020202020242830293b0a20202020202020202020202020207d0a2020202020202020202020202020696620284b28302929204d08027b0a202020202020202020202020202020206966202831362026204d29207b0a2020202020202020202020202020202020207128312c2031293b0a202020202020202020202020202020207d20656c7365207b0a202020202020202020202020202020202020242830293b0a202020202020202020202020202020207d0a2020202020202020202020202020202074742830293b0a20202020202020202020202020207d0a2020202020202020202020202020696620284b28312929207b0a202020202020202020202020202020206966202831362026204d29207b0a202020202020202020202020202020202020242830293b0a202020202020202020202020202020207d0a20202020202020202020202020202020242831293b0a2020202020202020202020202020202074742831293b0a20202020202020202020202020207d0a2020202020202020202020202020666f7220287661722075203d20303b2075203c3d20333b20752b2b29207b0a2020202020202020202020202020202061202b3d2028765b755d205e20515b755d207c7c2031362026206d5b755d203f2031352026206d5b755d203a203029203c3c20323b0a20202020202020202020202020207d0a2020202020202020202020207d0a20202020202020202020202061202f3d20653b0a2020202020202020202020206b3b0a2020202020202020202020206e5b725d4d0802203d20613b0a202020202020202020202020722b2b3b0a202020202020202020202020742d2d3b0a202020202020202020207d0a20202020202020202020696620282879202b3d206929203e3d203135333629207b0a20202020202020202020202079203d20303b0a202020202020202020207d0a20202020202020207d3b0a202020202020202076617220686f203d2066756e6374696f6e202829207b0a2020202020202020202055202b3d20703b0a202020202020202020206966202857203c2032323829207b0a202020202020202020202020572b2b3b0a202020202020202020207d0a20202020202020207d3b0a202020202020202076617220416f203d2066756e6374696f6e20287429207b0a2020202020202020202046745b3634305d203d20323535202620287e46745b3634315d207c205174293b0a2020202020202020202069662028745b305d29207b0a20202020202020202020202046745b3634305d203d202d31323920262046745b3634305d2026203235353b0a202020202020202020207d0a2020202020202020202069662028745b315d29207b0a20202020202020202020202046745b3634305d203d202d363520262046745b3634305d2026203235353b0a202020202020202020207d0a2020202020202020202069662028745b325d29207b0a20202020202020202020202046745b3634305d203d202d3333204d0802262046745b3634305d2026203235353b0a202020202020202020207d0a2020202020202020202069662028745b335d29207b0a20202020202020202020202046745b3634305d203d202d313720262046745b3634305d2026203235353b0a202020202020202020207d0a2020202020202020202069662028745b365d29207b0a20202020202020202020202046745b3634305d203d202d3920262046745b3634305d2026203235353b0a202020202020202020207d0a2020202020202020202069662028745b375d29207b0a20202020202020202020202046745b3634305d203d202d3520262046745b3634305d2026203235353b0a202020202020202020207d0a2020202020202020202069662028745b385d29207b0a20202020202020202020202046745b3634305d203d202d3320262046745b3634305d2026203235353b0a202020202020202020207d0a2020202020202020202069662028745b395d29207b0a20202020202020202020202046745b3634305d203d202d3220262046745b3634305d2026203235353b0a202020202020202020207d0a2020202020202020202046745b3634325d203d20323535202620287e46745b3634335d207c204874293b0a20202020202020202020696620287420213d206e756c6c29207b0a20202020202020202020202069662028745b31325d29207b0a2020202020202020202020202020464d0802745b3634325d203d202d3220262046745b3634325d2026203235353b0a2020202020202020202020207d0a20202020202020202020202069662028745b31335d29207b0a202020202020202020202020202046745b3634325d203d202d3320262046745b3634325d2026203235353b0a2020202020202020202020207d0a20202020202020202020202069662028745b31345d29207b0a202020202020202020202020202046745b3634325d203d202d3920262046745b3634325d2026203235353b0a2020202020202020202020207d0a20202020202020202020202069662028745b31355d29207b0a202020202020202020202020202046745b3634325d203d202d363520262046745b3634325d2026203235353b0a2020202020202020202020207d0a20202020202020202020202069662028745b31365d29207b0a202020202020202020202020202046745b3634325d203d202d31323920262046745b3634325d2026203235353b0a2020202020202020202020207d0a202020202020202020207d0a20202020202020202020696620283420262046745b3634325d29207b0a20202020202020202020202046745b385d20263d203132373b0a20202020202020202020202046745b395d20263d203132373b0a20202020202020202020202069662028745b345d207c7c20745b355d29207b0a202020202020202020202020202046745b4d080231325d20263d203132373b0a2020202020202020202020207d20656c7365207b0a202020202020202020202020202046745b31325d207c3d203132383b0a2020202020202020202020207d0a202020202020202020207d20656c7365207b0a20202020202020202020202046745b31325d207c3d203132383b0a20202020202020202020202069662028745b345d29207b0a202020202020202020202020202046745b395d207c3d203132383b0a2020202020202020202020207d20656c7365207b0a202020202020202020202020202046745b395d20263d203132373b0a2020202020202020202020207d0a20202020202020202020202069662028745b355d29207b0a202020202020202020202020202046745b385d207c3d203132383b0a2020202020202020202020207d20656c7365207b0a202020202020202020202020202046745b385d20263d203132373b0a2020202020202020202020207d0a202020202020202020207d0a2020202020202020202069662028313620262046745b3634325d29207b0a20202020202020202020202046745b31305d20263d203132373b0a20202020202020202020202046745b31315d20263d203132373b0a20202020202020202020202069662028745b31305d207c7c20745b31315d29207b0a202020202020202020202020202046745b31335d20263d203132373b0a2020202020202020204d08022020207d20656c7365207b0a202020202020202020202020202046745b31335d207c3d203132383b0a2020202020202020202020207d0a202020202020202020207d20656c7365207b0a20202020202020202020202046745b31335d207c3d203132383b0a20202020202020202020202069662028745b31305d29207b0a202020202020202020202020202046745b31315d207c3d203132383b0a2020202020202020202020207d20656c7365207b0a202020202020202020202020202046745b31315d20263d203132373b0a2020202020202020202020207d0a20202020202020202020202069662028745b31315d29207b0a202020202020202020202020202046745b31305d207c3d203132383b0a2020202020202020202020207d20656c7365207b0a202020202020202020202020202046745b31305d20263d203132373b0a2020202020202020202020207d0a202020202020202020207d0a20202020202020207d3b0a202020202020202076617220706f203d2066756e6374696f6e202829207b0a2020202020202020202072657475726e207a743b0a20202020202020207d3b0a202020202020202076617220626f203d2066756e6374696f6e20287429207b0a202020202020202020205674202d3d20743b0a2020202020202020202069662028215974202626205674203e203029207b0a2020202020202020202020204774284d08023634342c20285674202f205a7429207c2030293b0a202020202020202020207d20656c73652069662028597429207b0a202020202020202020202020696620285674203e3d202d32353529207b0a20202020202020202020202020204774283634342c203235352026205674293b0a2020202020202020202020207d20656c7365207b0a20202020202020202020202020204774283634342c2030293b0a20202020202020202020202020207a74203d2066616c73653b0a2020202020202020202020207d0a202020202020202020207d20656c7365207b0a2020202020202020202020205674203d205a743b0a2020202020202020202020204774283634342c2030293b0a20202020202020202020202046745b3634355d207c3d203132383b0a20202020202020202020202046745b3636315d207c3d203132383b0a2020202020202020202020205974203d20747275653b0a202020202020202020207d0a20202020202020207d3b0a202020202020202076617220676f203d2044693b0a202020202020202076617220796f203d2066756e6374696f6e20287429207b0a2020202020202020202069662028566929207b0a2020202020202020202020207869203d2048653b0a202020202020202020207d0a202020202020202020206a69203d20303b0a202020202020202020205269203d2031323820262053695b36305d3b0a2020204d0802202020202020205969203d2066616c73653b0a202020202020202020206966202828393620262053695b36305d2920213d2036342026262074203e3d204e692e746f702026262074203c3d204e692e626f74746f6d29207b0a2020202020202020202020207661722065203d204b692830293b0a202020202020202020202020766172206e203d202874202d2044692e746f7029202a2044692e4765744c656e67746828293b0a202020202020202020202020666f7220287661722072203d20303b2072203c203136303b20722b2b29207b0a20202020202020202020202020205f695b6e2b2b5d203d20653b0a20202020202020202020202020205f695b6e2b2b5d203d20653b0a2020202020202020202020207d0a202020202020202020207d20656c736520696620280a20202020202020202020202028393620262053695b36305d29203d3d2036342026260a20202020202020202020202074203e3d2044692e746f702026260a20202020202020202020202074203c3d2044692e626f74746f6d2026260a2020202020202020202020202874203d3d2044692e746f702026260a20202020202020202020202020202850692e736574424c2853695b34385d292c0a202020202020202020202020202050692e73657442482853695b34345d292c0a2020202020202020202020202020285569203d203332202620284869203f2053695b4d080250692e6765745728295d203a2078692850692e6765745728292929292c0a2020202020202020202020202020285a69203d203634202620284869203f2053695b50692e6765745728295d203a2078692850692e6765745728292929292c0a2020202020202020202020202020285769203d203135202620284869203f2053695b50692e6765745728295d203a2078692850692e6765745728292929292c0a20202020202020202020202020204f692e736574424c284869203f2053695b50692e676574572829202b20325d203a2078692850692e676574572829202b203229292c0a20202020202020202020202020204f692e7365744248284869203f2053695b50692e676574572829202b20315d203a2078692850692e676574572829202b203129292c0a2020202020202020202020202020313238202620284869203f2053695b50692e6765745728295d203a2078692850692e676574572829292920262620285969203d207472756529292c0a20202020202020202020202074203e3d2044692e746f70202626207420213d2044692e626f74746f6d290a2020202020202020202029207b0a2020202020202020202020204f692e736574424c284869203f2053695b50692e676574572829202b20325d203a2078692850692e676574572829202b203229293b0a2020202020202020202020204f692e7365744248284869203f2053695b4d080250692e676574572829202b20315d203a2078692850692e676574572829202b203129293b0a2020202020202020202020204269203d2054695b6b695d3b0a2020202020202020202020202866756e6374696f6e202829207b0a20202020202020202020202020206a69202b3d2031363b0a2020202020202020202020202020666f7220280a202020202020202020202020202020207661722074203d204869203f2053695b4f692e676574572829202b20315d203a207869284f692e676574572829202b2031293b0a20202020202020202020202020202020393520262074202626206a69203c203432383b0a0a202020202020202020202020202029207b0a202020202020202020202020202020207661722065203d20303b0a20202020202020202020202020202020766172206e203d20303b0a2020202020202020202020202020202046692e736574424c284869203f2053695b4f692e6765745728295d203a207869284f692e67657457282929293b0a2020202020202020202020202020202046692e7365744248284869203f2053695b4f692e676574572829202b20325d203a207869284f692e676574572829202b203229293b0a202020202020202020202020202020206966202833312026207429207b0a2020202020202020202020202020202020206a69202b3d20383b0a2020202020202020202020202020202020207a69204d08023d0a20202020202020202020202020202020202020202828323234202620284869203f2053695b4f692e676574572829202b20315d203a207869284f692e676574572829202b2031292929203e3e3e0a20202020202020202020202020202020202020202020332920260a20202020202020202020202020202020202020203235353b0a2020202020202020202020202020202020204769203d204869203f2053695b4f692e676574572829202b20335d203a207869284f692e676574572829202b2033293b0a20202020202020202020202020202020202065203d0a20202020202020202020202020202020202020202831202b0a2020202020202020202020202020202020202020202028333120260a2020202020202020202020202020202020202020202020207e2865203d0a20202020202020202020202020202020202020202020202020203331202620284869203f2053695b4f692e676574572829202b20315d203a207869284f692e676574572829202b2031292929292920260a20202020202020202020202020202020202020203235353b0a2020202020202020202020202020202020204f692e77506c7573457175616c2834293b0a202020202020202020202020202020207d20656c7365207b0a2020202020202020202020202020202020206a69202b3d2031303b0a2020202020202020202020202020202020207a69204d08023d0a20202020202020202020202020202020202020202828323234202620284869203f2053695b4f692e676574572829202b20335d203a207869284f692e676574572829202b2033292929203e3e3e0a20202020202020202020202020202020202020202020332920260a20202020202020202020202020202020202020203235353b0a2020202020202020202020202020202020204769203d204869203f2053695b4f692e676574572829202b20345d203a207869284f692e676574572829202b2034293b0a2020202020202020202020202020202020206e203d203332202620284869203f2053695b4f692e676574572829202b20315d203a207869284f692e676574572829202b203129293b0a2020202020202020202020202020202020205169203d20313238202620284869203f2053695b4f692e676574572829202b20315d203a207869284f692e676574572829202b203129293b0a20202020202020202020202020202020202065203d0a202020202020202020202020202020202020202032353520260a2020202020202020202020202020202020202020282865203d203331202620284869203f2053695b4f692e676574572829202b20335d203a207869284f692e676574572829202b2033292929203d3d0a2020202020202020202020202020202020202020300a202020202020202020202020202020202020202020203f4d08022033320a202020202020202020202020202020202020202020203a2031202b202833312026207e6529293b0a2020202020202020202020202020202020204f692e77506c7573457175616c2835293b0a202020202020202020202020202020207d0a202020202020202020202020202020207661722072203d2066616c73653b0a20202020202020202020202020202020696620286e29207b0a2020202020202020202020202020202020207661722063203d20313620262053695b36305d3b0a20202020202020202020202020202020202065612e636f7079284669293b0a202020202020202020202020202020202020666f72202869203d20303b2069203c20652026262021286a69203e3d20343238293b20692b2b29207b0a202020202020202020202020202020202020202046692e736574424c284869203f2053695b65612e77506c7573506c757328295d203a2078692865612e77506c7573506c7573282929293b0a202020202020202020202020202020202020202046692e73657442482853695b35325d202b205769293b0a2020202020202020202020202020202020202020696620287169282929207b0a2020202020202020202020202020202020202020202069662028217229207b0a2020202020202020202020202020202020202020202020206a69202b3d20333b0a20202020202020202020202020202020202020204d08022020202072203d20747275653b0a202020202020202020202020202020202020202020207d0a20202020202020202020202020202020202020207d20656c7365207b0a202020202020202020202020202020202020202020206a69202b3d20363b0a20202020202020202020202020202020202020202020696620286329207b0a2020202020202020202020202020202020202020202020206a69202b3d20333b0a202020202020202020202020202020202020202020207d0a20202020202020202020202020202020202020207d0a2020202020202020202020202020202020202020246928293b0a2020202020202020202020202020202020202020696620286329207b0a20202020202020202020202020202020202020202020246928293b0a20202020202020202020202020202020202020207d0a2020202020202020202020202020202020207d0a202020202020202020202020202020207d20656c7365207b0a20202020202020202020202020202020202046692e6268506c7573457175616c285769293b0a202020202020202020202020202020202020666f7220287661722069203d20303b2069203c20652026262021286a69203e3d20343238293b20692b2b29207b0a2020202020202020202020202020202020202020696620287169282929207b0a202020202020202020202020202020202020202020206966202821724d080229207b0a2020202020202020202020202020202020202020202020206a69202b3d20333b0a20202020202020202020202020202020202020202020202072203d20747275653b0a202020202020202020202020202020202020202020207d0a20202020202020202020202020202020202020207d20656c7365207b0a202020202020202020202020202020202020202020206a69202b3d20333b0a20202020202020202020202020202020202020207d0a2020202020202020202020202020202020202020246928293b0a2020202020202020202020202020202020207d0a202020202020202020202020202020207d0a2020202020202020202020202020202074203d204869203f2053695b4f692e676574572829202b20315d203a207869284f692e676574572829202b2031293b0a20202020202020202020202020207d0a2020202020202020202020202020696620285769203d3d203029207b0a202020202020202020202020202020206a69202b3d20363b0a2020202020202020202020202020202069662028313238202620284869203f2053695b50692e676574572829202b20335d203a2078692850692e676574572829202b2033292929207b0a2020202020202020202020202020202020206a69202b3d2031373b0a202020202020202020202020202020207d0a20202020202020202020202020207d0a2020202020202020204d08022020207d2928293b0a2020202020202020202020204269203d2054695b286b69203d206b69203d3d2031203f2030203a2031295d3b0a2020202020202020202020206966202874203e3d204e692e746f702026262074203c3d204e692e626f74746f6d29207b0a20202020202020202020202020202866756e6374696f6e2028742c206529207b0a20202020202020202020202020202020766172206e203d203320262053695b36305d3b0a202020202020202020202020202020207661722072203d20653b0a20202020202020202020202020202020696620286e203d3d203029207b0a202020202020202020202020202020202020666f7220287661722063203d20303b2063203c203136303b2063202b3d203429207b0a202020202020202020202020202020202020202076617220693b0a202020202020202020202020202020202020202069203d204b692842695b63202b20305d293b0a2020202020202020202020202020202020202020745b722b2b5d203d20693b0a2020202020202020202020202020202020202020745b722b2b5d203d20693b0a202020202020202020202020202020202020202069203d204b692842695b63202b20315d293b0a2020202020202020202020202020202020202020745b722b2b5d203d20693b0a2020202020202020202020202020202020202020745b722b2b5d203d20693b0a20202020204d080220202020202020202020202020202069203d204b692842695b63202b20325d293b0a2020202020202020202020202020202020202020745b722b2b5d203d20693b0a2020202020202020202020202020202020202020745b722b2b5d203d20693b0a202020202020202020202020202020202020202069203d204b692842695b63202b20335d293b0a2020202020202020202020202020202020202020745b722b2b5d203d20693b0a2020202020202020202020202020202020202020745b722b2b5d203d20693b0a202020202020202020202020202020202020202069662028526929207b0a20202020202020202020202020202020202020202020746128742c2072202d2038293b0a20202020202020202020202020202020202020207d0a2020202020202020202020202020202020207d0a202020202020202020202020202020207d20656c736520696620286e203d3d203229207b0a202020202020202020202020202020202020666f72202863203d20303b2063203c203136303b2063202b3d203429207b0a2020202020202020202020202020202020202020745b722b2b5d203d204b69280a2020202020202020202020202020202020202020202028313620262042695b63202b20305d29207c0a20202020202020202020202020202020202020202020202028283820262042695b63202b20305d29203e3e3e203329207c0a204d08022020202020202020202020202020202020202020202020283220262042695b63202b20305d290a2020202020202020202020202020202020202020293b0a2020202020202020202020202020202020202020745b722b2b5d203d204b69280a2020202020202020202020202020202020202020202028313620262042695b63202b20305d29207c0a20202020202020202020202020202020202020202020202028283420262042695b63202b20305d29203e3e3e203229207c0a20202020202020202020202020202020202020202020202028283120262042695b63202b20305d29203c3c2031290a2020202020202020202020202020202020202020293b0a2020202020202020202020202020202020202020745b722b2b5d203d204b69280a2020202020202020202020202020202020202020202028313620262042695b63202b20315d29207c0a20202020202020202020202020202020202020202020202028283820262042695b63202b20315d29203e3e3e203329207c0a202020202020202020202020202020202020202020202020283220262042695b63202b20315d290a2020202020202020202020202020202020202020293b0a2020202020202020202020202020202020202020745b722b2b5d203d204b69280a2020202020202020202020202020202020202020202028313620262042695b63202b20315d29207c0a2020204d080220202020202020202020202020202020202020202028283420262042695b63202b20315d29203e3e3e203229207c0a20202020202020202020202020202020202020202020202028283120262042695b63202b20315d29203c3c2031290a2020202020202020202020202020202020202020293b0a2020202020202020202020202020202020202020745b722b2b5d203d204b69280a2020202020202020202020202020202020202020202028313620262042695b63202b20325d29207c0a20202020202020202020202020202020202020202020202028283820262042695b63202b20325d29203e3e3e203329207c0a202020202020202020202020202020202020202020202020283220262042695b63202b20325d290a2020202020202020202020202020202020202020293b0a2020202020202020202020202020202020202020745b722b2b5d203d204b69280a2020202020202020202020202020202020202020202028313620262042695b63202b20325d29207c0a20202020202020202020202020202020202020202020202028283420262042695b63202b20325d29203e3e3e203229207c0a20202020202020202020202020202020202020202020202028283120262042695b63202b20325d29203c3c2031290a2020202020202020202020202020202020202020293b0a2020202020202020202020202020202020202020745b4d0802722b2b5d203d204b69280a2020202020202020202020202020202020202020202028313620262042695b63202b20335d29207c0a20202020202020202020202020202020202020202020202028283820262042695b63202b20335d29203e3e3e203329207c0a202020202020202020202020202020202020202020202020283220262042695b63202b20335d290a2020202020202020202020202020202020202020293b0a2020202020202020202020202020202020202020745b722b2b5d203d204b69280a2020202020202020202020202020202020202020202028313620262042695b63202b20335d29207c0a20202020202020202020202020202020202020202020202028283420262042695b63202b20335d29203e3e3e203229207c0a20202020202020202020202020202020202020202020202028283120262042695b63202b20335d29203c3c2031290a2020202020202020202020202020202020202020293b0a202020202020202020202020202020202020202069662028526929207b0a20202020202020202020202020202020202020202020746128742c2072202d2038293b0a20202020202020202020202020202020202020207d0a2020202020202020202020202020202020207d0a202020202020202020202020202020207d20656c736520696620286e203d3d203329207b0a202020202020202020202020202020204d08022020666f72202863203d20303b2063203c203136303b2063202b3d203429207b0a2020202020202020202020202020202020202020745b722b2b5d203d204b6928333020262042695b63202b20305d293b0a2020202020202020202020202020202020202020745b722b2b5d203d204b692828323820262042695b63202b20305d29207c2028283120262042695b63202b20305d29203c3c203129293b0a2020202020202020202020202020202020202020745b722b2b5d203d204b6928333020262042695b63202b20315d293b0a2020202020202020202020202020202020202020745b722b2b5d203d204b692828323820262042695b63202b20315d29207c2028283120262042695b63202b20315d29203c3c203129293b0a2020202020202020202020202020202020202020745b722b2b5d203d204b6928333020262042695b63202b20325d293b0a2020202020202020202020202020202020202020745b722b2b5d203d204b692828323820262042695b63202b20325d29207c2028283120262042695b63202b20325d29203c3c203129293b0a2020202020202020202020202020202020202020745b722b2b5d203d204b6928333020262042695b63202b20335d293b0a2020202020202020202020202020202020202020745b722b2b5d203d204b692828323820262042695b63202b20335d29207c2028283120262042695b63202b4d080220335d29203c3c203129293b0a202020202020202020202020202020202020202069662028526929207b0a20202020202020202020202020202020202020202020746128742c2072202d2038293b0a20202020202020202020202020202020202020207d0a2020202020202020202020202020202020207d0a202020202020202020202020202020207d0a20202020202020202020202020207d29285f692c202874202d2044692e746f7029202a2044692e4765744c656e6774682829293b0a2020202020202020202020207d0a202020202020202020202020666f72202872203d20303b2072203c203136303b20722b2b29207b0a202020202020202020202020202042695b725d203d20303b0a2020202020202020202020207d0a2020202020202020202020206966202874203e2044692e746f7029207b0a2020202020202020202020202020696620285769203d3d203029207b0a2020202020202020202020202020202050692e77506c7573457175616c2833293b0a202020202020202020202020202020205569203d203332202620284869203f2053695b50692e6765745728295d203a2078692850692e67657457282929293b0a202020202020202020202020202020205a69203d203634202620284869203f2053695b50692e6765745728295d203a2078692850692e67657457282929293b0a20202020202020202020202020204d080220205769203d203135202620284869203f2053695b50692e6765745728295d203a2078692850692e67657457282929293b0a2020202020202020202020202020202069662028313238202620284869203f2053695b50692e6765745728295d203a2078692850692e676574572829292929207b0a2020202020202020202020202020202020205969203d20747275653b0a202020202020202020202020202020207d0a20202020202020202020202020207d20656c7365207b0a2020202020202020202020202020202057692d2d3b0a20202020202020202020202020207d0a2020202020202020202020207d0a202020202020202020207d0a2020202020202020202069662028566929207b0a2020202020202020202020207869203d2051653b0a202020202020202020207d0a2020202020202020202072657475726e206a693b0a20202020202020207d3b0a202020202020202076617220776f203d2066756e6374696f6e202829207b0a2020202020202020202072657475726e2059693b0a20202020202020207d3b0a2020202020202020766172206d6f203d204e653b0a2020202020202020766172204d6f203d2066756e6374696f6e202829207b0a202020202020202020207063203d2066616c73653b0a2020202020202020202076617220743b0a202020202020202020207661722065203d2064632e77506c7573506c7573284d0802293b0a2020202020202020202073776974636820280a20202020202020202020202028286c63203d207263286529292c0a202020202020202020202020284163203d204e635b6c635d29203d3d3d20766f696420300a20202020202020202020202020203f20636f6e736f6c652e6572726f72280a20202020202020202020202020202020202027556e6b6e6f776e206f70636f64652c206d656d206c6f636174696f6e3a2025642c202564272c0a202020202020202020202020202020202020652c0a2020202020202020202020202020202020206c632e746f537472696e67283136290a20202020202020202020202020202020290a20202020202020202020202020203a204c692d2d203e20302026260a20202020202020202020202020202020636f6e736f6c652e6c6f67280a202020202020202020202020202020202020274f70636f64653a2573202564202564202564202564272c0a2020202020202020202020202020202020206c632e746f537472696e67283136292c0a20202020202020202020202020202020202041632c0a2020202020202020202020202020202020204a6f28292c0a202020202020202020202020202020202020496f2c0a2020202020202020202020202020202020205f6f0a20202020202020202020202020202020292c0a2020202020202020202020206c63290a2020202020202020202029207b4d08020a2020202020202020202020206361736520303a0a202020202020202020202020202064632e77506c7573506c757328293b0a20202020202020202020202020206663207c3d206d633b0a20202020202020202020202020205f632864632e67657442482829293b0a20202020202020202020202020205f632864632e676574424c2829293b0a20202020202020202020202020205f63286663293b0a20202020202020202020202020206663207c3d2079633b0a202020202020202020202020202064632e736574424c2869635b44635d293b0a202020202020202020202020202064632e73657442482869635b78635d293b0a202020202020202020202020202072657475726e2041633b0a2020202020202020202020206361736520313a0a2020202020202020202020202020556328293b0a2020202020202020202020202020646928293b0a202020202020202020202020202072657475726e2041633b0a2020202020202020202020206361736520353a0a2020202020202020202020202020486328293b0a2020202020202020202020202020646928293b0a202020202020202020202020202072657475726e2041633b0a2020202020202020202020206361736520363a0a2020202020202020202020202020486328293b0a2020202020202020202020202020716328293b0a202020202020202020202020202072657475726e4d08022041633b0a2020202020202020202020206361736520383a0a2020202020202020202020202020686928293b0a202020202020202020202020202072657475726e2041633b0a2020202020202020202020206361736520393a0a2020202020202020202020202020576328293b0a2020202020202020202020202020646928293b0a202020202020202020202020202072657475726e2041633b0a202020202020202020202020636173652031303a0a202020202020202020202020202069662028313238202620616329207b0a202020202020202020202020202020206663207c3d2062633b0a20202020202020202020202020207d20656c7365207b0a202020202020202020202020202020206663203d2066632026207e62632026203235353b0a20202020202020202020202020207d0a20202020202020202020202020206b6328286163203d20286163203c3c20312920262032353529293b0a202020202020202020202020202072657475726e2041633b0a202020202020202020202020636173652031333a0a2020202020202020202020202020466328293b0a2020202020202020202020202020646928293b0a202020202020202020202020202072657475726e2041633b0a202020202020202020202020636173652031343a0a2020202020202020202020202020466328293b0a2020202020202020202020202020716328294d08023b0a202020202020202020202020202072657475726e2041633b0a202020202020202020202020636173652031363a0a2020202020202020202020202020516328293b0a20202020202020202020202020206a6328212866632026204c6329293b0a202020202020202020202020202072657475726e2041633b0a202020202020202020202020636173652031373a0a20202020202020202020202020205a6328293b0a2020202020202020202020202020646928293b0a20202020202020202020202020204f63287363293b0a202020202020202020202020202072657475726e2041633b0a202020202020202020202020636173652032313a0a2020202020202020202020202020596328293b0a2020202020202020202020202020646928293b0a202020202020202020202020202072657475726e2041633b0a202020202020202020202020636173652032323a0a2020202020202020202020202020596328293b0a2020202020202020202020202020716328293b0a202020202020202020202020202072657475726e2041633b0a202020202020202020202020636173652032343a0a20202020202020202020202020206663203d2066632026207e62632026203235353b0a202020202020202020202020202072657475726e2041633b0a202020202020202020202020636173652032353a0a20202020202020202020202020207a4d08026328293b0a2020202020202020202020202020646928293b0a20202020202020202020202020204f63287363293b0a202020202020202020202020202072657475726e2041633b0a202020202020202020202020636173652032393a0a2020202020202020202020202020476328293b0a2020202020202020202020202020646928293b0a20202020202020202020202020204f63286f63293b0a202020202020202020202020202072657475726e2041633b0a202020202020202020202020636173652033303a0a2020202020202020202020202020476328293b0a2020202020202020202020202020716328293b0a202020202020202020202020202072657475726e2041633b0a202020202020202020202020636173652033323a0a2020202020202020202020202020466328293b0a202020202020202020202020202064632e774d696e75734d696e757328293b0a20202020202020202020202020205f632864632e67657442482829293b0a20202020202020202020202020205f632864632e676574424c2829293b0a202020202020202020202020202064632e636f7079286863293b0a202020202020202020202020202072657475726e2041633b0a202020202020202020202020636173652033333a0a2020202020202020202020202020556328293b0a2020202020202020202020202020586328293b0a20202020202020204d080220202020202072657475726e2041633b0a202020202020202020202020636173652033363a0a2020202020202020202020202020486328293b0a20202020202020202020202020204b6328293b0a20202020202020202020202020206966202868632e676574572829203d3d20313229207b0a202020202020202020202020202020207063203d20747275653b0a20202020202020202020202020207d0a202020202020202020202020202072657475726e2041633b0a202020202020202020202020636173652033373a0a2020202020202020202020202020486328293b0a2020202020202020202020202020586328293b0a202020202020202020202020202072657475726e2041633b0a202020202020202020202020636173652033383a0a2020202020202020202020202020486328293b0a2020202020202020202020202020626928293b0a202020202020202020202020202072657475726e2041633b0a202020202020202020202020636173652034303a0a2020202020202020202020202020706928293b0a202020202020202020202020202072657475726e2041633b0a202020202020202020202020636173652034313a0a2020202020202020202020202020576328293b0a2020202020202020202020202020586328293b0a202020202020202020202020202072657475726e2041633b0a202020202020202020202020634d08026173652034323a0a20202020202020202020202020202866756e6374696f6e202829207b0a202020202020202020202020202020207661722074203d2066633b0a2020202020202020202020202020202069662028313238202620616329207b0a2020202020202020202020202020202020206663207c3d2062633b0a202020202020202020202020202020207d20656c7365207b0a2020202020202020202020202020202020206663203d2066632026207e62632026203235353b0a202020202020202020202020202020207d0a202020202020202020202020202020206163203d20286163203c3c2031292026203235353b0a202020202020202020202020202020206b6328286163207c3d2074202620626329293b0a20202020202020202020202020207d2928293b0a202020202020202020202020202072657475726e2041633b0a202020202020202020202020636173652034343a0a2020202020202020202020202020466328293b0a20202020202020202020202020204b6328293b0a202020202020202020202020202072657475726e2041633b0a202020202020202020202020636173652034353a0a2020202020202020202020202020466328293b0a2020202020202020202020202020586328293b0a202020202020202020202020202072657475726e2041633b0a202020202020202020202020636173652034363a0a204d080220202020202020202020202020466328293b0a2020202020202020202020202020626928293b0a202020202020202020202020202072657475726e2041633b0a202020202020202020202020636173652034383a0a2020202020202020202020202020516328293b0a20202020202020202020202020206a632866632026204c63293b0a202020202020202020202020202072657475726e2041633b0a202020202020202020202020636173652034393a0a20202020202020202020202020205a6328293b0a2020202020202020202020202020586328293b0a20202020202020202020202020204f63287363293b0a202020202020202020202020202072657475726e2041633b0a202020202020202020202020636173652035333a0a2020202020202020202020202020596328293b0a2020202020202020202020202020586328293b0a202020202020202020202020202072657475726e2041633b0a202020202020202020202020636173652035343a0a2020202020202020202020202020596328293b0a2020202020202020202020202020626928293b0a202020202020202020202020202072657475726e2041633b0a202020202020202020202020636173652035363a0a20202020202020202020202020206663207c3d2062633b0a202020202020202020202020202072657475726e2041633b0a202020202020202020202020634d08026173652035373a0a20202020202020202020202020207a6328293b0a2020202020202020202020202020586328293b0a20202020202020202020202020204f63287363293b0a202020202020202020202020202072657475726e2041633b0a202020202020202020202020636173652036313a0a2020202020202020202020202020476328293b0a2020202020202020202020202020586328293b0a20202020202020202020202020204f63286f63293b0a202020202020202020202020202072657475726e2041633b0a202020202020202020202020636173652036323a0a2020202020202020202020202020476328293b0a2020202020202020202020202020626928293b0a202020202020202020202020202072657475726e2041633b0a202020202020202020202020636173652036343a0a20202020202020202020202020206663203d20546328293b0a202020202020202020202020202064632e736574424c2854632829293b0a202020202020202020202020202064632e73657442482854632829293b0a202020202020202020202020202072657475726e2041633b0a202020202020202020202020636173652036353a0a2020202020202020202020202020556328293b0a2020202020202020202020202020726928293b0a202020202020202020202020202072657475726e2041633b0a20202020202020202020202063614d080273652036393a0a2020202020202020202020202020486328293b0a2020202020202020202020202020726928293b0a202020202020202020202020202072657475726e2041633b0a202020202020202020202020636173652037303a0a2020202020202020202020202020486328293b0a2020202020202020202020202020756928293b0a202020202020202020202020202072657475726e2041633b0a202020202020202020202020636173652037323a0a20202020202020202020202020206c6928293b0a202020202020202020202020202072657475726e2041633b0a202020202020202020202020636173652037333a0a2020202020202020202020202020576328293b0a2020202020202020202020202020726928293b0a202020202020202020202020202072657475726e2041633b0a202020202020202020202020636173652037343a0a2020202020202020202020202020666928293b0a202020202020202020202020202072657475726e2041633b0a202020202020202020202020636173652037363a0a2020202020202020202020202020466328293b0a2020202020202020202020202020696928293b0a202020202020202020202020202072657475726e2041633b0a202020202020202020202020636173652037373a0a2020202020202020202020202020466328293b0a20202020202020202020202020207269284d0802293b0a202020202020202020202020202072657475726e2041633b0a202020202020202020202020636173652037383a0a2020202020202020202020202020466328293b0a2020202020202020202020202020756928293b0a202020202020202020202020202072657475726e2041633b0a202020202020202020202020636173652038303a0a2020202020202020202020202020516328293b0a20202020202020202020202020206a632821286663202620766329293b0a202020202020202020202020202072657475726e2041633b0a202020202020202020202020636173652038313a0a20202020202020202020202020205a6328293b0a2020202020202020202020202020726928293b0a20202020202020202020202020204f63287363293b0a202020202020202020202020202072657475726e2041633b0a202020202020202020202020636173652038353a0a2020202020202020202020202020596328293b0a2020202020202020202020202020726928293b0a202020202020202020202020202072657475726e2041633b0a202020202020202020202020636173652038363a0a2020202020202020202020202020596328293b0a2020202020202020202020202020756928293b0a202020202020202020202020202072657475726e2041633b0a202020202020202020202020636173652038383a0a2020202020202020204d080220202020206663203d2066632026207e79632026203235353b0a202020202020202020202020202072657475726e2041633b0a202020202020202020202020636173652038393a0a20202020202020202020202020207a6328293b0a2020202020202020202020202020726928293b0a20202020202020202020202020204f63287363293b0a202020202020202020202020202072657475726e2041633b0a202020202020202020202020636173652039333a0a2020202020202020202020202020476328293b0a2020202020202020202020202020726928293b0a20202020202020202020202020204f63286f63293b0a202020202020202020202020202072657475726e2041633b0a202020202020202020202020636173652039343a0a2020202020202020202020202020476328293b0a2020202020202020202020202020756928293b0a202020202020202020202020202072657475726e2041633b0a202020202020202020202020636173652039363a0a202020202020202020202020202064632e736574424c2854632829293b0a202020202020202020202020202064632e73657442482854632829293b0a202020202020202020202020202064632e77506c7573506c757328293b0a202020202020202020202020202072657475726e2041633b0a202020202020202020202020636173652039373a0a202020202020202020204d080220202020556328293b0a20202020202020202020202020204a6328293b0a202020202020202020202020202072657475726e2041633b0a20202020202020202020202063617365203130313a0a2020202020202020202020202020486328293b0a20202020202020202020202020204a6328293b0a202020202020202020202020202072657475726e2041633b0a20202020202020202020202063617365203130323a0a2020202020202020202020202020486328293b0a2020202020202020202020202020676928293b0a202020202020202020202020202072657475726e2041633b0a20202020202020202020202063617365203130343a0a2020202020202020202020202020416928293b0a202020202020202020202020202072657475726e2041633b0a20202020202020202020202063617365203130353a0a2020202020202020202020202020576328293b0a20202020202020202020202020204a6328293b0a202020202020202020202020202072657475726e2041633b0a20202020202020202020202063617365203130363a0a20202020202020202020202020202866756e6374696f6e202829207b0a202020202020202020202020202020207661722074203d2066633b0a202020202020202020202020202020206663203d2066632026207e62632026203235353b0a202020202020202020202020202020206663207c3d4d0802203120262061633b0a202020202020202020202020202020206163203d20286163203e3e3e2031292026203235353b0a202020202020202020202020202020206966202874202620626329207b0a2020202020202020202020202020202020206163207c3d203132383b0a202020202020202020202020202020207d0a202020202020202020202020202020206b63286163293b0a20202020202020202020202020207d2928293b0a202020202020202020202020202072657475726e2041633b0a20202020202020202020202063617365203130383a0a20202020202020202020202020202874203d206e6577206e632829292e736574424c2872632864632e77506c7573506c7573282929293b0a2020202020202020202020202020742e73657442482872632864632e77506c7573506c7573282929293b0a202020202020202020202020202068632e736574424c28726328742e67657457282929293b0a202020202020202020202020202068632e736574424828726328742e676574572829202b203129293b0a2020202020202020202020202020696928293b0a202020202020202020202020202072657475726e2041633b0a20202020202020202020202063617365203130393a0a2020202020202020202020202020466328293b0a20202020202020202020202020204a6328293b0a2020202020202020202020202020726574754d0802726e2041633b0a20202020202020202020202063617365203131303a0a2020202020202020202020202020466328293b0a2020202020202020202020202020676928293b0a202020202020202020202020202072657475726e2041633b0a20202020202020202020202063617365203131323a0a2020202020202020202020202020516328293b0a20202020202020202020202020206a632866632026207663293b0a202020202020202020202020202072657475726e2041633b0a20202020202020202020202063617365203131333a0a20202020202020202020202020205a6328293b0a20202020202020202020202020204a6328293b0a20202020202020202020202020204f63287363293b0a202020202020202020202020202072657475726e2041633b0a20202020202020202020202063617365203131373a0a2020202020202020202020202020596328293b0a20202020202020202020202020204a6328293b0a202020202020202020202020202072657475726e2041633b0a20202020202020202020202063617365203131383a0a2020202020202020202020202020596328293b0a2020202020202020202020202020676928293b0a202020202020202020202020202072657475726e2041633b0a20202020202020202020202063617365203132303a0a20202020202020202020202020206663207c3d2079633b0a2020204d0802202020202020202020202072657475726e2041633b0a20202020202020202020202063617365203132313a0a20202020202020202020202020207a6328293b0a20202020202020202020202020204a6328293b0a20202020202020202020202020204f63287363293b0a202020202020202020202020202072657475726e2041633b0a20202020202020202020202063617365203132353a0a2020202020202020202020202020476328293b0a20202020202020202020202020204a6328293b0a20202020202020202020202020204f63286f63293b0a202020202020202020202020202072657475726e2041633b0a20202020202020202020202063617365203132363a0a2020202020202020202020202020476328293b0a2020202020202020202020202020676928293b0a202020202020202020202020202072657475726e2041633b0a20202020202020202020202063617365203132393a0a2020202020202020202020202020556328293b0a2020202020202020202020202020776928293b0a202020202020202020202020202072657475726e2041633b0a20202020202020202020202063617365203133323a0a2020202020202020202020202020486328293b0a20202020202020202020202020204d6928293b0a202020202020202020202020202072657475726e2041633b0a202020202020202020202020636173652031334d0802333a0a2020202020202020202020202020486328293b0a2020202020202020202020202020776928293b0a202020202020202020202020202072657475726e2041633b0a20202020202020202020202063617365203133343a0a2020202020202020202020202020486328293b0a20202020202020202020202020206d6928293b0a202020202020202020202020202072657475726e2041633b0a20202020202020202020202063617365203133363a0a20202020202020202020202020206b6328287363203d20287363202d20312920262032353529293b0a202020202020202020202020202072657475726e2041633b0a20202020202020202020202063617365203133383a0a20202020202020202020202020206b6328286163203d206f6329293b0a202020202020202020202020202072657475726e2041633b0a20202020202020202020202063617365203134303a0a2020202020202020202020202020466328293b0a20202020202020202020202020204d6928293b0a202020202020202020202020202072657475726e2041633b0a20202020202020202020202063617365203134313a0a2020202020202020202020202020466328293b0a2020202020202020202020202020776928293b0a202020202020202020202020202072657475726e2041633b0a20202020202020202020202063617365203134323a0a20202020204d0802202020202020202020466328293b0a20202020202020202020202020206d6928293b0a202020202020202020202020202072657475726e2041633b0a20202020202020202020202063617365203134343a0a2020202020202020202020202020516328293b0a20202020202020202020202020206a632821286663202620626329293b0a202020202020202020202020202072657475726e2041633b0a20202020202020202020202063617365203134353a0a20202020202020202020202020205a6328293b0a2020202020202020202020202020776928293b0a202020202020202020202020202072657475726e2041633b0a20202020202020202020202063617365203134383a0a2020202020202020202020202020596328293b0a20202020202020202020202020204d6928293b0a202020202020202020202020202072657475726e2041633b0a20202020202020202020202063617365203134393a0a2020202020202020202020202020596328293b0a2020202020202020202020202020776928293b0a202020202020202020202020202072657475726e2041633b0a20202020202020202020202063617365203135303a0a2020202020202020202020202020566328293b0a20202020202020202020202020206d6928293b0a202020202020202020202020202072657475726e2041633b0a2020202020202020202020206361734d080265203135323a0a20202020202020202020202020206b6328286163203d20736329293b0a202020202020202020202020202072657475726e2041633b0a20202020202020202020202063617365203135333a0a20202020202020202020202020207a6328293b0a2020202020202020202020202020776928293b0a202020202020202020202020202072657475726e2041633b0a20202020202020202020202063617365203135343a0a20202020202020202020202020207563203d206f633b0a202020202020202020202020202072657475726e2041633b0a20202020202020202020202063617365203135373a0a2020202020202020202020202020476328293b0a2020202020202020202020202020776928293b0a202020202020202020202020202072657475726e2041633b0a20202020202020202020202063617365203136303a0a2020202020202020202020202020576328293b0a2020202020202020202020202020736928293b0a202020202020202020202020202072657475726e2041633b0a20202020202020202020202063617365203136313a0a2020202020202020202020202020556328293b0a2020202020202020202020202020616928293b0a202020202020202020202020202072657475726e2041633b0a20202020202020202020202063617365203136323a0a2020202020202020202020202020576328293b4d08020a20202020202020202020202020206f6928293b0a202020202020202020202020202072657475726e2041633b0a20202020202020202020202063617365203136343a0a2020202020202020202020202020486328293b0a2020202020202020202020202020736928293b0a202020202020202020202020202072657475726e2041633b0a20202020202020202020202063617365203136353a0a2020202020202020202020202020486328293b0a2020202020202020202020202020616928293b0a202020202020202020202020202072657475726e2041633b0a20202020202020202020202063617365203136363a0a2020202020202020202020202020486328293b0a20202020202020202020202020206f6928293b0a202020202020202020202020202072657475726e2041633b0a20202020202020202020202063617365203136383a0a20202020202020202020202020206b6328287363203d20616329293b0a202020202020202020202020202072657475726e2041633b0a20202020202020202020202063617365203136393a0a2020202020202020202020202020576328293b0a2020202020202020202020202020616928293b0a202020202020202020202020202072657475726e2041633b0a20202020202020202020202063617365203137303a0a2020202020202020202020202020766928293b0a20202020202020204d080220202020202072657475726e2041633b0a20202020202020202020202063617365203137323a0a2020202020202020202020202020466328293b0a2020202020202020202020202020736928293b0a202020202020202020202020202072657475726e2041633b0a20202020202020202020202063617365203137333a0a2020202020202020202020202020466328293b0a2020202020202020202020202020616928293b0a202020202020202020202020202072657475726e2041633b0a20202020202020202020202063617365203137343a0a2020202020202020202020202020466328293b0a20202020202020202020202020206f6928293b0a202020202020202020202020202072657475726e2041633b0a20202020202020202020202063617365203137363a0a2020202020202020202020202020516328293b0a20202020202020202020202020206a632866632026206263293b0a202020202020202020202020202072657475726e2041633b0a20202020202020202020202063617365203137373a0a20202020202020202020202020205a6328293b0a2020202020202020202020202020616928293b0a20202020202020202020202020204f63287363293b0a202020202020202020202020202072657475726e2041633b0a20202020202020202020202063617365203138303a0a20202020202020202020202020205963284d0802293b0a2020202020202020202020202020736928293b0a202020202020202020202020202072657475726e2041633b0a20202020202020202020202063617365203138313a0a2020202020202020202020202020596328293b0a2020202020202020202020202020616928293b0a202020202020202020202020202072657475726e2041633b0a20202020202020202020202063617365203138323a0a2020202020202020202020202020566328293b0a20202020202020202020202020206f6928293b0a202020202020202020202020202072657475726e2041633b0a20202020202020202020202063617365203138343a0a20202020202020202020202020206663203d2066632026207e76632026203235353b0a202020202020202020202020202072657475726e2041633b0a20202020202020202020202063617365203138353a0a20202020202020202020202020207a6328293b0a2020202020202020202020202020616928293b0a20202020202020202020202020204f63287363293b0a202020202020202020202020202072657475726e2041633b0a20202020202020202020202063617365203138363a0a20202020202020202020202020206b6328286f63203d20756329293b0a202020202020202020202020202072657475726e2041633b0a20202020202020202020202063617365203138383a0a2020202020202020204d08022020202020476328293b0a2020202020202020202020202020736928293b0a20202020202020202020202020204f63286f63293b0a202020202020202020202020202072657475726e2041633b0a20202020202020202020202063617365203138393a0a2020202020202020202020202020476328293b0a2020202020202020202020202020616928293b0a20202020202020202020202020204f63286f63293b0a202020202020202020202020202072657475726e2041633b0a20202020202020202020202063617365203139303a0a20202020202020202020202020207a6328293b0a20202020202020202020202020206f6928293b0a20202020202020202020202020204f63287363293b0a202020202020202020202020202072657475726e2041633b0a20202020202020202020202063617365203139323a0a2020202020202020202020202020576328293b0a2020202020202020202020202020656928293b0a202020202020202020202020202072657475726e2041633b0a20202020202020202020202063617365203139333a0a2020202020202020202020202020556328293b0a2020202020202020202020202020246328293b0a202020202020202020202020202072657475726e2041633b0a20202020202020202020202063617365203139363a0a2020202020202020202020202020486328293b0a20202020202020204d0802202020202020656928293b0a202020202020202020202020202072657475726e2041633b0a20202020202020202020202063617365203139373a0a2020202020202020202020202020486328293b0a2020202020202020202020202020246328293b0a202020202020202020202020202072657475726e2041633b0a20202020202020202020202063617365203139383a0a2020202020202020202020202020486328293b0a20202020202020202020202020206e6928293b0a202020202020202020202020202072657475726e2041633b0a20202020202020202020202063617365203230303a0a20202020202020202020202020206b6328287363203d20287363202b20312920262032353529293b0a202020202020202020202020202072657475726e2041633b0a20202020202020202020202063617365203230313a0a2020202020202020202020202020576328293b0a2020202020202020202020202020246328293b0a202020202020202020202020202072657475726e2041633b0a20202020202020202020202063617365203230323a0a20202020202020202020202020206b6328286f63203d20286f63202d20312920262032353529293b0a202020202020202020202020202072657475726e2041633b0a20202020202020202020202063617365203230343a0a2020202020202020202020202020466328293b0a202020204d080220202020202020202020656928293b0a202020202020202020202020202072657475726e2041633b0a20202020202020202020202063617365203230353a0a2020202020202020202020202020466328293b0a2020202020202020202020202020246328293b0a202020202020202020202020202072657475726e2041633b0a20202020202020202020202063617365203230363a0a2020202020202020202020202020466328293b0a20202020202020202020202020206e6928293b0a202020202020202020202020202072657475726e2041633b0a20202020202020202020202063617365203230383a0a2020202020202020202020202020516328293b0a20202020202020202020202020206a632821286663202620676329293b0a202020202020202020202020202072657475726e2041633b0a20202020202020202020202063617365203230393a0a20202020202020202020202020205a6328293b0a2020202020202020202020202020246328293b0a20202020202020202020202020204f63287363293b0a202020202020202020202020202072657475726e2041633b0a20202020202020202020202063617365203231333a0a2020202020202020202020202020596328293b0a2020202020202020202020202020246328293b0a202020202020202020202020202072657475726e2041633b0a2020202020202020202020204d080263617365203231343a0a2020202020202020202020202020596328293b0a20202020202020202020202020206e6928293b0a202020202020202020202020202072657475726e2041633b0a20202020202020202020202063617365203231363a0a20202020202020202020202020206663203d2066632026207e77632026203235353b0a202020202020202020202020202072657475726e2041633b0a20202020202020202020202063617365203231373a0a20202020202020202020202020207a6328293b0a2020202020202020202020202020246328293b0a20202020202020202020202020204f63287363293b0a202020202020202020202020202072657475726e2041633b0a20202020202020202020202063617365203232313a0a2020202020202020202020202020476328293b0a2020202020202020202020202020246328293b0a20202020202020202020202020204f63286f63293b0a202020202020202020202020202072657475726e2041633b0a20202020202020202020202063617365203232323a0a2020202020202020202020202020476328293b0a20202020202020202020202020206e6928293b0a202020202020202020202020202072657475726e2041633b0a20202020202020202020202063617365203232343a0a2020202020202020202020202020576328293b0a202020202020202020202020202074694d080228293b0a202020202020202020202020202072657475726e2041633b0a20202020202020202020202063617365203232353a0a2020202020202020202020202020556328293b0a2020202020202020202020202020796928293b0a202020202020202020202020202072657475726e2041633b0a20202020202020202020202063617365203232383a0a2020202020202020202020202020486328293b0a2020202020202020202020202020746928293b0a202020202020202020202020202072657475726e2041633b0a20202020202020202020202063617365203232393a0a2020202020202020202020202020486328293b0a2020202020202020202020202020796928293b0a202020202020202020202020202072657475726e2041633b0a20202020202020202020202063617365203233303a0a2020202020202020202020202020486328293b0a2020202020202020202020202020636928293b0a202020202020202020202020202072657475726e2041633b0a20202020202020202020202063617365203233323a0a20202020202020202020202020206b6328286f63203d20286f63202b20312920262032353529293b0a202020202020202020202020202072657475726e2041633b0a20202020202020202020202063617365203233333a0a2020202020202020202020202020576328293b0a202020202020202020202020204d080220796928293b0a202020202020202020202020202072657475726e2041633b0a20202020202020202020202063617365203233343a0a202020202020202020202020202072657475726e2041633b0a20202020202020202020202063617365203233363a0a2020202020202020202020202020466328293b0a2020202020202020202020202020746928293b0a202020202020202020202020202072657475726e2041633b0a20202020202020202020202063617365203233373a0a2020202020202020202020202020466328293b0a2020202020202020202020202020796928293b0a202020202020202020202020202072657475726e2041633b0a20202020202020202020202063617365203233383a0a2020202020202020202020202020466328293b0a2020202020202020202020202020636928293b0a202020202020202020202020202072657475726e2041633b0a20202020202020202020202063617365203234303a0a2020202020202020202020202020516328293b0a20202020202020202020202020206a632866632026206763293b0a202020202020202020202020202072657475726e2041633b0a20202020202020202020202063617365203234313a0a20202020202020202020202020205a6328293b0a2020202020202020202020202020796928293b0a20202020202020202020202020204f63287363293b0a20204d080220202020202020202020202072657475726e2041633b0a20202020202020202020202063617365203234353a0a2020202020202020202020202020596328293b0a2020202020202020202020202020796928293b0a202020202020202020202020202072657475726e2041633b0a20202020202020202020202063617365203234363a0a2020202020202020202020202020596328293b0a2020202020202020202020202020636928293b0a202020202020202020202020202072657475726e2041633b0a20202020202020202020202063617365203234383a0a20202020202020202020202020206663207c3d2077633b0a202020202020202020202020202072657475726e2041633b0a20202020202020202020202063617365203234393a0a20202020202020202020202020207a6328293b0a2020202020202020202020202020796928293b0a20202020202020202020202020204f63287363293b0a202020202020202020202020202072657475726e2041633b0a20202020202020202020202063617365203235333a0a2020202020202020202020202020476328293b0a2020202020202020202020202020796928293b0a20202020202020202020202020204f63286f63293b0a202020202020202020202020202072657475726e2041633b0a20202020202020202020202063617365203235343a0a2020202020202020202020204d08022020476328293b0a2020202020202020202020202020636928293b0a202020202020202020202020202072657475726e2041633b0a202020202020202020202020636173652037353a0a2020202020202020202020202020576328293b0a2020202020202020202020202020586328293b0a2020202020202020202020202020666928293b0a202020202020202020202020202072657475726e2041633b0a202020202020202020202020636173652031313a0a202020202020202020202020636173652034333a0a2020202020202020202020202020576328293b0a2020202020202020202020202020586328293b0a202020202020202020202020202069662028313238202620616329207b0a202020202020202020202020202020206663207c3d2062633b0a20202020202020202020202020207d20656c7365207b0a202020202020202020202020202020206663203d2066632026207e62632026203235353b0a20202020202020202020202020207d0a202020202020202020202020202072657475726e2041633b0a20202020202020202020202063617365203137393a0a20202020202020202020202020205a6328293b0a2020202020202020202020202020616928293b0a2020202020202020202020202020766928293b0a202020202020202020202020202072657475726e2041633b0a2020202020202020202020206361734d080265203135313a0a2020202020202020202020202020566328293b0a2020202020202020202020202020686928293b0a20202020202020202020202020206c6928293b0a20202020202020202020202020206d6928293b0a2020202020202020202020202020586328293b0a2020202020202020202020202020776928293b0a2020202020202020202020202020416928293b0a2020202020202020202020202020706928293b0a202020202020202020202020202072657475726e2041633b0a20202020202020202020202063617365203130303a0a20202020202020202020202063617365203133373a0a202020202020202020202020202072657475726e2041633b0a2020202020202020202020206361736520343a0a20202020202020202020202063617365203132383a0a202020202020202020202020202072657475726e2041633b0a20202020202020202020202063617365203235323a0a20202020202020202020202063617365203235313a0a20202020202020202020202063617365203235303a0a20202020202020202020202063617365203234373a0a20202020202020202020202063617365203234343a0a20202020202020202020202063617365203234333a0a20202020202020202020202063617365203234323a0a20202020202020202020202063617365203233393a0a202020202020202020202020636173654d0802203233353a0a20202020202020202020202063617365203233313a0a20202020202020202020202063617365203232373a0a20202020202020202020202063617365203232363a0a20202020202020202020202063617365203232333a0a20202020202020202020202063617365203232303a0a20202020202020202020202063617365203231393a0a20202020202020202020202063617365203231383a0a20202020202020202020202063617365203231353a0a20202020202020202020202063617365203231323a0a20202020202020202020202063617365203231313a0a20202020202020202020202063617365203231303a0a20202020202020202020202063617365203230373a0a20202020202020202020202063617365203230333a0a20202020202020202020202063617365203139393a0a20202020202020202020202063617365203139353a0a20202020202020202020202063617365203139343a0a20202020202020202020202063617365203139313a0a20202020202020202020202063617365203138373a0a20202020202020202020202063617365203138333a0a20202020202020202020202063617365203137383a0a20202020202020202020202063617365203137353a0a20202020202020202020202063617365203137313a0a20202020202020202020202063617365203136373a0a20202020202020204d08022020202063617365203136333a0a20202020202020202020202063617365203135393a0a20202020202020202020202063617365203135383a0a20202020202020202020202063617365203135363a0a20202020202020202020202063617365203135353a0a20202020202020202020202063617365203134373a0a20202020202020202020202063617365203134363a0a20202020202020202020202063617365203134333a0a20202020202020202020202063617365203133393a0a20202020202020202020202063617365203133353a0a20202020202020202020202063617365203133313a0a20202020202020202020202063617365203133303a0a20202020202020202020202063617365203132373a0a20202020202020202020202063617365203132343a0a20202020202020202020202063617365203132333a0a20202020202020202020202063617365203132323a0a20202020202020202020202063617365203131393a0a20202020202020202020202063617365203131363a0a20202020202020202020202063617365203131353a0a20202020202020202020202063617365203131343a0a20202020202020202020202063617365203131313a0a20202020202020202020202063617365203130373a0a20202020202020202020202063617365203130333a0a202020202020202020202020636173652039393a0a204d08022020202020202020202020636173652039383a0a202020202020202020202020636173652039353a0a202020202020202020202020636173652039323a0a202020202020202020202020636173652039313a0a202020202020202020202020636173652039303a0a202020202020202020202020636173652038373a0a202020202020202020202020636173652038343a0a202020202020202020202020636173652038333a0a202020202020202020202020636173652038323a0a202020202020202020202020636173652037393a0a202020202020202020202020636173652037313a0a202020202020202020202020636173652036383a0a202020202020202020202020636173652036373a0a202020202020202020202020636173652036363a0a202020202020202020202020636173652036333a0a202020202020202020202020636173652036303a0a202020202020202020202020636173652035393a0a202020202020202020202020636173652035383a0a202020202020202020202020636173652035353a0a202020202020202020202020636173652035323a0a202020202020202020202020636173652035313a0a202020202020202020202020636173652035303a0a202020202020202020202020636173652034373a0a202020202020202020202020636173652033393a0a20202020202020202020202063617365204d080233353a0a202020202020202020202020636173652033343a0a202020202020202020202020636173652033313a0a202020202020202020202020636173652032383a0a202020202020202020202020636173652032373a0a202020202020202020202020636173652032363a0a202020202020202020202020636173652032333a0a202020202020202020202020636173652032303a0a202020202020202020202020636173652031393a0a202020202020202020202020636173652031383a0a202020202020202020202020636173652031353a0a202020202020202020202020636173652031323a0a2020202020202020202020206361736520373a0a2020202020202020202020206361736520333a0a2020202020202020202020206361736520323a0a202020202020202020202020202072657475726e2041633b0a202020202020202020207d0a2020202020202020202072657475726e2041633b0a20202020202020207d3b0a202020202020202076617220766f203d2066756e6374696f6e202829207b0a202020202020202020205f632864632e67657442482829293b0a202020202020202020205f632864632e676574424c2829293b0a202020202020202020205f6328286663203d2066632026207e6d6320262032353529293b0a202020202020202020206663207c3d2079633b0a2020202020202020202064632e7365744d0802424c2869635b53635d293b0a2020202020202020202064632e73657442482869635b45635d293b0a2020202020202020202072657475726e20373b0a20202020202020207d3b0a2020202020202020766172204c6f203d2062723b0a202020202020202076617220496f203d203435343b0a202020202020202076617220436f203d2066616c73653b0a202020202020202076617220456f203d2066616c73653b0a202020202020202076617220536f203d2036303b0a202020202020202076617220786f203d20303b0a202020202020202076617220446f203d203236323b0a2020202020202020766172204e6f203d20303b0a2020202020202020766172205f6f203d20313b0a202020202020202076617220546f203d2066616c73653b0a2020202020202020766172206b6f203d2066616c73653b0a202020202020202070203d20496f3b0a20202020202020206c657420426f203d206e756c6c3b0a202020202020202076617220506f203d20303b0a2020202020202020766172204f6f203d20303b0a202020202020202076617220466f203d20303b0a202020202020202076617220476f203d20303b0a20202020202020205274280a202020202020202020206e6577206a7428276f6e4361727472696467654c6f61646564272c2066756e6374696f6e202829207b0a202020202020202020202020546f203d20617228293b0a204d080220202020202020202020206b6f203d20647228293b0a202020202020202020207d290a2020202020202020293b0a2020202020202020766172204b6f3b0a202020202020202076617220246f3b0a2020202020202020766172207473203d203332303b0a2020202020202020766172206573203d20323b0a2020202020202020766172206e73203d203234303b0a2020202020202020766172207273203d2032363b0a2020202020202020766172206373203d203234303b0a2020202020202020766172206973203d203234303b0a2020202020202020766172206173203d20747275653b0a2020202020202020766172206f73203d206e657720417272617928333030202a207473293b0a2020202020202020766172207373203d206e756c6c3b0a2020202020202020766172206673203d206e756c6c3b0a2020202020202020766172207573203d206e756c6c3b0a2020202020202020766172206473203d206e756c6c3b0a2020202020202020766172206c73203d206e756c6c3b0a2020202020202020766172206873203d206e657720417272617928323536293b0a2020202020202020766172204173203d2027696e697469616c273b0a2020202020202020766172207073203d2066616c73653b0a2020202020202020766172206273203d20323b0a2020202020202020766172206773203d20313b0a2020202020202020766172204d08027973203d20303b0a2020202020202020766172207773203d20303b0a2020202020202020766172206d73203d20303b0a2020202020202020766172204d73203d20303b0a2020202020202020766172207673203d20303b0a2020202020202020766172204c73203d2066616c73653b0a2020202020202020766172204973203d20303b0a20202020202020205274280a202020202020202020206e6577206a742827696e6974272c2066756e6374696f6e20287429207b0a20202020202020202020202053732874293b0a202020202020202020207d290a2020202020202020293b0a202020202020202077696e646f772e6164644576656e744c697374656e65722827726573697a65272c2066756e6374696f6e202829207b0a202020202020202020204e7328293b0a2020202020202020202073657454696d656f7574284e732c20316533293b0a20202020202020207d293b0a20202020202020205274280a202020202020202020206e6577206a7428276f6e4361727472696467654c6f61646564272c2066756e6374696f6e202829207b0a2020202020202020202020204973203d20697228293b0a202020202020202020202020437328293b0a202020202020202020207d290a2020202020202020293b0a2020202020202020766172204a73203d20496f3b0a2020202020202020766172205873203d204e693b0a202020202020204d080220766172207173203d2044693b0a2020202020202020766172204b73203d205a613b0a2020202020202020766172202473203d2072733b0a2020202020202020766172207466203d2065733b0a2020202020202020766172206566203d206e733b0a2020202020202020766172206e66203d2063733b0a2020202020202020766172207266203d206e756c6c3b0a2020202020202020766172206366203d2074733b0a2020202020202020766172206166203d2069733b0a2020202020202020766172206f66203d20303b0a2020202020202020766172207366203d20303b0a2020202020202020766172206666203d2066616c73653b0a2020202020202020766172207566203d2066616c73653b0a2020202020202020766172206466203d20303b0a20202020202020205274280a202020202020202020206e6577206a7428276f6e4361727472696467654c6f61646564272c2066756e6374696f6e202829207b0a2020202020202020202020206c662866616c7365293b0a2020202020202020202020207566203d2066616c73653b0a2020202020202020202020206466203d20303b0a2020202020202020202020206f66203d20303b0a2020202020202020202020207366203d20303b0a202020202020202020207d290a2020202020202020293b0a2020202020202020766172206266203d2066756e6374696f6e2028742c20652c204d08026e2c20722c20632c206929207b0a202020202020202020207661722061203d202874203d2074293b0a20202020202020202020766172206f203d202865203d2065293b0a202020202020202020207661722073203d20286e203d206e293b0a202020202020202020207661722066203d202872203d2072293b0a202020202020202020207661722075203d202863203d2063293b0a202020202020202020207661722064203d202869203d2069293b0a20202020202020202020766172206c203d2066616c73653b0a202020202020202020207661722068203d2066616c73653b0a202020202020202020207661722041203d2066616c73653b0a202020202020202020207661722070203d2066616c73653b0a202020202020202020207661722062203d2066616c73653b0a202020202020202020207661722067203d2066616c73653b0a202020202020202020207661722079203d2066616c73653b0a202020202020202020207661722077203d2066616c73653b0a2020202020202020202072657475726e207b0a20202020202020202020202067657444656661756c744c6566743a2066756e6374696f6e202829207b0a202020202020202020202020202072657475726e20613b0a2020202020202020202020207d2c0a2020202020202020202020206765744c6566743a2066756e6374696f6e202829207b0a2020202020202020204d0802202020202072657475726e20743b0a2020202020202020202020207d2c0a2020202020202020202020207365744c6566743a2066756e6374696f6e20286529207b0a202020202020202020202020202074203d20653b0a2020202020202020202020207d2c0a20202020202020202020202067657444656661756c7452696768743a2066756e6374696f6e202829207b0a202020202020202020202020202072657475726e206f3b0a2020202020202020202020207d2c0a20202020202020202020202067657452696768743a2066756e6374696f6e202829207b0a202020202020202020202020202072657475726e20653b0a2020202020202020202020207d2c0a20202020202020202020202073657452696768743a2066756e6374696f6e20287429207b0a202020202020202020202020202065203d20743b0a2020202020202020202020207d2c0a20202020202020202020202067657444656661756c7455703a2066756e6374696f6e202829207b0a202020202020202020202020202072657475726e20733b0a2020202020202020202020207d2c0a20202020202020202020202067657455703a2066756e6374696f6e202829207b0a202020202020202020202020202072657475726e206e3b0a2020202020202020202020207d2c0a20202020202020202020202073657455703a2066756e6374696f6e20287429207b0a2020204d080220202020202020202020206e203d20743b0a2020202020202020202020207d2c0a20202020202020202020202067657444656661756c74446f776e3a2066756e6374696f6e202829207b0a202020202020202020202020202072657475726e20663b0a2020202020202020202020207d2c0a202020202020202020202020676574446f776e3a2066756e6374696f6e202829207b0a202020202020202020202020202072657475726e20723b0a2020202020202020202020207d2c0a202020202020202020202020736574446f776e3a2066756e6374696f6e20287429207b0a202020202020202020202020202072203d20743b0a2020202020202020202020207d2c0a20202020202020202020202067657444656661756c74427574746f6e313a2066756e6374696f6e202829207b0a202020202020202020202020202072657475726e20753b0a2020202020202020202020207d2c0a202020202020202020202020676574427574746f6e313a2066756e6374696f6e202829207b0a202020202020202020202020202072657475726e20633b0a2020202020202020202020207d2c0a202020202020202020202020736574427574746f6e313a2066756e6374696f6e20287429207b0a202020202020202020202020202063203d20743b0a2020202020202020202020207d2c0a20202020202020202020202067657444656661756c7442754d080274746f6e323a2066756e6374696f6e202829207b0a202020202020202020202020202072657475726e20643b0a2020202020202020202020207d2c0a202020202020202020202020676574427574746f6e323a2066756e6374696f6e202829207b0a202020202020202020202020202072657475726e20693b0a2020202020202020202020207d2c0a202020202020202020202020736574427574746f6e323a2066756e6374696f6e20287429207b0a202020202020202020202020202069203d20743b0a2020202020202020202020207d2c0a20202020202020202020202069734c6566743a2066756e6374696f6e202829207b0a202020202020202020202020202072657475726e206c20262620282168207c7c20212179293b0a2020202020202020202020207d2c0a202020202020202020202020697352696768743a2066756e6374696f6e202829207b0a202020202020202020202020202072657475726e20682026262028216c207c7c202179293b0a2020202020202020202020207d2c0a202020202020202020202020697355703a2066756e6374696f6e202829207b0a202020202020202020202020202072657475726e204120262620282170207c7c20212177293b0a2020202020202020202020207d2c0a2020202020202020202020206973446f776e3a2066756e6374696f6e202829207b0a2020202020202020202020204d0802202072657475726e207020262620282141207c7c202177293b0a2020202020202020202020207d2c0a2020202020202020202020206973427574746f6e313a2066756e6374696f6e202829207b0a202020202020202020202020202072657475726e20623b0a2020202020202020202020207d2c0a2020202020202020202020206973427574746f6e323a2066756e6374696f6e202829207b0a202020202020202020202020202072657475726e20673b0a2020202020202020202020207d2c0a20202020202020202020202068616e646c654b6579436f64653a2066756e6374696f6e2028612c206f29207b0a202020202020202020202020202073776974636820286129207b0a202020202020202020202020202020206361736520743a0a2020202020202020202020202020202020206c203d206f3b0a202020202020202020202020202020202020696620286f29207b0a202020202020202020202020202020202020202079203d20747275653b0a2020202020202020202020202020202020207d0a20202020202020202020202020202020202072657475726e20747275653b0a2020202020202020202020202020202063617365206e3a0a20202020202020202020202020202020202041203d206f3b0a202020202020202020202020202020202020696620286f29207b0a202020202020202020202020202020202020202077204d08023d20747275653b0a2020202020202020202020202020202020207d0a20202020202020202020202020202020202072657475726e20747275653b0a202020202020202020202020202020206361736520653a0a20202020202020202020202020202020202068203d206f3b0a202020202020202020202020202020202020696620286f29207b0a202020202020202020202020202020202020202079203d2066616c73653b0a2020202020202020202020202020202020207d0a20202020202020202020202020202020202072657475726e20747275653b0a202020202020202020202020202020206361736520723a0a20202020202020202020202020202020202070203d206f3b0a202020202020202020202020202020202020696620286f29207b0a202020202020202020202020202020202020202077203d2066616c73653b0a2020202020202020202020202020202020207d0a20202020202020202020202020202020202072657475726e20747275653b0a202020202020202020202020202020206361736520633a0a20202020202020202020202020202020202062203d206f3b0a20202020202020202020202020202020202072657475726e20747275653b0a202020202020202020202020202020206361736520693a0a20202020202020202020202020202020202067203d206f3b0a202020202020202020202020202020204d0802202072657475726e20747275653b0a20202020202020202020202020207d0a202020202020202020202020202072657475726e2066616c73653b0a2020202020202020202020207d2c0a20202020202020202020202072657365743a2066756e6374696f6e202829207b0a202020202020202020202020202079203d2066616c73653b0a202020202020202020202020202077203d2066616c73653b0a2020202020202020202020207d2c0a202020202020202020207d3b0a20202020202020207d3b0a2020202020202020766172206766203d206e65772062662833372c2033392c2033382c2034302c2039302c203838293b0a2020202020202020766172207966203d206e65772062662837342c2037362c2037332c2037352c2037382c203737293b0a2020202020202020766172207766203d2066616c73653b0a2020202020202020766172206d66203d2066616c73653b0a2020202020202020766172204d66203d2066616c73653b0a2020202020202020766172207666203d2066616c73653b0a2020202020202020766172204c66203d2066616c73653b0a2020202020202020766172204966203d20313b0a2020202020202020766172204366203d20303b0a2020202020202020766172204566203d203131333b0a2020202020202020766172205366203d2045663b0a2020202020202020766172207866203d203131343b0a204d080220202020202020766172204466203d2078663b0a2020202020202020766172204e66203d203131353b0a2020202020202020766172205f66203d204e663b0a20202020202020205274280a202020202020202020206e6577206a742827696e6974272c2066756e6374696f6e202829207b0a202020202020202020202020646f63756d656e742e6f6e6b6579646f776e203d2066756e6374696f6e20287429207b0a2020202020202020202020202020426628742c2074727565293b0a2020202020202020202020207d3b0a202020202020202020202020646f63756d656e742e6f6e6b65797570203d2066756e6374696f6e20287429207b0a2020202020202020202020202020426628742c2066616c7365293b0a2020202020202020202020207d3b0a202020202020202020207d290a2020202020202020293b0a20202020202020205274280a202020202020202020206e6577206a7428276f6e4361727472696467654c6f61646564272c2066756e6374696f6e202829207b0a2020202020202020202020204966203d20777228293b0a2020202020202020202020204366203d206d7228293b0a202020202020202020207d290a2020202020202020293b0a202020202020202069662028214f626a6563742e63726561746529207b0a202020202020202020204f626a6563742e637265617465203d2066756e6374696f6e20287429204d08027b0a20202020202020202020202066756e6374696f6e20652829207b7d0a202020202020202020202020652e70726f746f74797065203d20743b0a20202020202020202020202072657475726e206e6577206528293b0a202020202020202020207d3b0a20202020202020207d0a2020202020202020766172205966203d0a20202020202020202020276f6e746f75636873746172742720696e2077696e646f77207c7c0a202020202020202020206e6176696761746f722e6d6178546f756368506f696e7473203e2030207c7c0a202020202020202020206e6176696761746f722e6d734d6178546f756368506f696e7473203e20303b0a2020202020202020766172205666203d0a2020202020202020202059662026260a202020202020202020202f616e64726f69647c626c61636b62657272797c69656d6f62696c657c697061647c6970686f6e657c69706f647c6f70657261206d696e697c7765626f732f692e74657374280a2020202020202020202020206e6176696761746f722e757365724167656e740a20202020202020202020293b0a2020202020202020766172204a66203d0a202020202020202020202f697061647c6970686f6e657c69706f642f692e74657374286e6176696761746f722e757365724167656e7429202626202177696e646f772e4d5353747265616d3b0a2020202020202020766172204b66203d206e4d0802657720716628293b0a2020202020202020766172202466203d206e6577207166287b0a202020202020202020206973416e616c6f674c6566743a2066756e6374696f6e2028742c206529207b0a20202020202020202020202072657475726e20746869732e6973416e616c6f6744697228742c2065203f2032203a20302c2066616c7365293b0a202020202020202020207d2c0a202020202020202020206973416e616c6f6752696768743a2066756e6374696f6e2028742c206529207b0a20202020202020202020202072657475726e20746869732e6973416e616c6f6744697228742c2065203f2032203a20302c2074727565293b0a202020202020202020207d2c0a202020202020202020206973416e616c6f6755703a2066756e6374696f6e2028742c206529207b0a20202020202020202020202072657475726e20746869732e6973416e616c6f6744697228742c2065203f2033203a20312c2074727565293b0a202020202020202020207d2c0a202020202020202020206973416e616c6f67446f776e3a2066756e6374696f6e2028742c206529207b0a20202020202020202020202072657475726e20746869732e6973416e616c6f6744697228742c2065203f2033203a20312c2066616c7365293b0a202020202020202020207d2c0a2020202020202020202069734469676974616c4c6566743a2066756e6374696f6e2028744d080229207b0a20202020202020202020202072657475726e20746869732e6973416e616c6f6744697228742c20342c2066616c7365293b0a202020202020202020207d2c0a2020202020202020202069734469676974616c52696768743a2066756e6374696f6e20287429207b0a20202020202020202020202072657475726e20746869732e6973416e616c6f6744697228742c20342c2074727565293b0a202020202020202020207d2c0a2020202020202020202069734469676974616c55703a2066756e6374696f6e20287429207b0a20202020202020202020202072657475726e20746869732e6973416e616c6f6744697228742c20352c2074727565293b0a202020202020202020207d2c0a2020202020202020202069734469676974616c446f776e3a2066756e6374696f6e20287429207b0a20202020202020202020202072657475726e20746869732e6973416e616c6f6744697228742c20352c2066616c7365293b0a202020202020202020207d2c0a20202020202020202020697352657365743a2066756e6374696f6e20287429207b0a20202020202020202020202072657475726e20746869732e69735072657373656428742c2035293b0a202020202020202020207d2c0a20202020202020202020697353656c6563743a2066756e6374696f6e20287429207b0a20202020202020202020202072657475726e20746869732e4d080269735072657373656428742c2034293b0a202020202020202020207d2c0a20202020202020202020697350617573653a2066756e6374696f6e20287429207b0a20202020202020202020202072657475726e2066616c73653b0a202020202020202020207d2c0a20202020202020207d293b0a2020202020202020766172206575203d205b6e6577207475286e756c6c2c204b66292c206e6577207475286e756c6c2c204b66295d3b0a2020202020202020766172206375203d2062723b0a2020202020202020766172206975203d2066756e6374696f6e202829207b0a202020202020202020207661722074203d207566207c7c206466203e20303b0a20202020202020202020696620286466203e203029207b0a20202020202020202020202064662d2d3b0a202020202020202020207d0a2020202020202020202072657475726e20743b0a20202020202020207d3b0a2020202020202020766172206175203d2067663b0a2020202020202020766172206f75203d2079663b0a2020202020202020766172207375203d2066616c73653b0a2020202020202020766172206675203d2066616c73653b0a2020202020202020766172207575203d206e756c6c3b0a2020202020202020766172206475203d20747275653b0a20202020202020205274280a202020202020202020206e6577206a742827696e6974272c2066756e6374696f6e4d080220287429207b0a2020202020202020202020207661722065203d20742e6b6579626f617264446174613b0a2020202020202020202020207575203d20653b0a202020202020202020207d290a2020202020202020293b0a2020202020202020766172207075203d207b0a20202020202020202020273433333263323465346633626337326537666531623737616466363663326237273a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a20202020202020202020202070343a202766272c0a202020202020202020202020786d3a202766272c0a20202020202020202020202068733a202774272c0a202020202020202020207d2c0a20202020202020202020273062653939366432353134343936366435353431633965623439313962323839273a207b0a20202020202020202020202074793a202734272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a20274d080230272c0a202020202020202020207d2c0a2020202020202020202061616464653932306233616162613033626331306234306264303631396339343a207b0a20202020202020202020202074793a202734272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202731272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a20202020202020202020273837376463633937613737356564353530383138363462326462663566316532273a207b0a20202020202020202020202074793a202732272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202732272c0a20202020202020202020202063323a202732272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a20202020202020202020202063726f7373783a202738272c0a20202020202020202020202063726f7373793a202738272c0a202020202020202020207d2c0a2020202020202020202064653365393439366362373334316638363566323765356137326337663266353a207b0a20202020202020202020202074793a202732272c0a202020202020202020202020703a202766272c0a4d080220202020202020202020202063313a202732272c0a20202020202020202020202063323a202732272c0a202020202020202020202020723a202731272c0a202020202020202020202020663a202730272c0a20202020202020202020202063726f7373783a20273130272c0a20202020202020202020202063726f7373793a20272d36272c0a202020202020202020207d2c0a20202020202020202020273430346639353130336237303937356134326362303939343664633361646361273a207b0a20202020202020202020202074793a202733272c0a202020202020202020202020703a202774272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a20202020202020202020273563363632363164376265373431383461303437663737323333393139653036273a207b0a20202020202020202020202074793a202731272c0a202020202020202020202020703a202774272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a20202020202020202020202068626c616e6b4d08023a202738272c0a202020202020202020207d2c0a20202020202020202020273231326565326136653636643862623766626632366633343363633864633139273a207b0a20202020202020202020202074793a202731272c0a202020202020202020202020703a202774272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a20202020202020202020202070343a202774272c0a20202020202020202020202068626c616e6b3a202738272c0a202020202020202020207d2c0a20202020202020202020273037333432633738363139626136666663633631633130653930376533623530273a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a20202020202020202020202068733a202774272c0a202020202020202020207d2c0a20202020202020202020273866633361363935656165613339383439313264393865643461353433333736273a207b0a20202020202020202020202074793a20274d080230272c0a202020202020202020202020703a202774272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a20202020202020202020202068626c616e6b3a20273238272c0a202020202020202020207d2c0a2020202020202020202062353538383134643534393034636530353832653266366138303164303361663a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202774272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202731272c0a202020202020202020202020663a202730272c0a20202020202020202020202068626c616e6b3a20273238272c0a202020202020202020207d2c0a20202020202020202020273432363832343135393036633231633661663830653431393834303366666461273a207b0a20202020202020202020202074793a202731272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202732272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a20274d080230272c0a20202020202020202020202063726f7373783a202730272c0a20202020202020202020202063726f7373793a202738272c0a202020202020202020207d2c0a2020202020202020202062616265326263323937363638386261666238623233633139323635383132363a207b0a20202020202020202020202074793a202731272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202732272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202731272c0a202020202020202020202020663a202730272c0a20202020202020202020202063726f7373783a202730272c0a20202020202020202020202063726f7373793a20273132272c0a202020202020202020207d2c0a2020202020202020202066356636623639633565623462353566633136333135386431613662343233653a207b0a20202020202020202020202074793a202734272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a20202020202020202020666261303032303839666366613137363435346162353037653065624d0802373663623a207b0a20202020202020202020202074793a202734272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202731272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a20202020202020202020273365363362653138653438306661363366636535653463383233323836653533273a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202774272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202731272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a20202020202020202020273561303939343665353764626533303430386138663235336132386430376462273a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a20202020202020202020202068733a202774272c0a4d0802202020202020202020207d2c0a20202020202020202020273338633035366134383437326439613965313665626461356564393164616537273a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202731272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a20202020202020202020273933653433383738363462303134633135356437633137383737393930643165273a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a20202020202020202020273539643465646230323330623561636339313862393466366263393437373966273a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a20202020202020204d080220202020723a202731272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a20202020202020202020273265386532386636616438623962393236376435313864383830633733656262273a207b0a20202020202020202020202074793a202731272c0a202020202020202020202020703a202774272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a20202020202020202020273535646136633663333937346430313366353137653732356161363066343865273a207b0a20202020202020202020202074793a202731272c0a202020202020202020202020703a202774272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202731272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a2020202020202020202064623639313436393132386439613432313765633765333135393330623634363a207b0a20202020202020202020202074793a202731272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c4d08020a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a20202020202020202020273763626537386661303666343762613635313661363761346230303363396565273a207b0a20202020202020202020202074793a202731272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202731272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a2020202020202020202061393465343536306236616430353361316332346530393666313236326562663a207b0a20202020202020202020202074793a202732272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202732272c0a20202020202020202020202063323a202732272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a20202020202020202020202063726f7373783a20273133272c0a20202020202020202020202063726f7373793a202738272c0a202020202020202020207d2c0a202020202020202020202736336462333731643637613938646165634d0802353437623261626435653761613935273a207b0a20202020202020202020202074793a202732272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202732272c0a20202020202020202020202063323a202732272c0a202020202020202020202020723a202731272c0a202020202020202020202020663a202730272c0a20202020202020202020202063726f7373783a20273135272c0a20202020202020202020202063726f7373793a202737272c0a202020202020202020207d2c0a20202020202020202020273137396237366666373239643438343962386636366135303233393861636165273a207b0a20202020202020202020202074793a202731272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a2020202020202020202061326238653266313539363432633462393164653832653961323932383439343a207b0a20202020202020202020202074793a202731272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a4d0802202020202020202020202020723a202731272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a20202020202020202020273935616338313163376432376166303033326261303930663238633130376264273a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a20202020202020202020273264356439396239393361383835623036336639663232636535653635323364273a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202731272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a20202020202020202020273733313837396561383266633063613234356533396530333666653239336536273a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202766272c0a202020202020202020204d0802202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a20202020202020202020202068733a202774272c0a202020202020202020207d2c0a20202020202020202020273430386463613966633430653262356438303566343033666130353039343336273a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202731272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a20202020202020202020273565333332666266633165306663373432323364326537333237316365363530273a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a20202020202020202020273464633566383832343332353034363162643631303533623133373737303630273a204d08027b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202731272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a20202020202020202020273139663165653239326132333633366264353764343038623632646537396337273a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a20202020202020202020273865393665663134636539623564383462636263393936623636643664346337273a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202731272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a20202020202020202020273534334d08023438346330306261323333373336626361626132646132306565656139273a207b0a20202020202020202020202074793a202736272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a2020202020202020202064653265626166636630653337616161396430653935323561376634646436323a207b0a20202020202020202020202074793a202736272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202731272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a20202020202020202020273232353161366130663361656338346363306166663636666339666139316538273a207b0a20202020202020202020202074793a202735272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a2027304d0802272c0a202020202020202020207d2c0a2020202020202020202065373730396461386534396433373637333031393437613061306239643265363a207b0a20202020202020202020202074793a202735272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202731272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a2020202020202020202064323564356431393138386539663134393937376334396562303336376364313a207b0a20202020202020202020202074793a202734272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a20202020202020202020273233353035363531616332653437663336333731353230363663336161363266273a207b0a20202020202020202020202074793a202734272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a2020202020202020204d0802202020723a202731272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a20202020202020202020273037646262666536313261306132386532383363303135343565353966323565273a207b0a20202020202020202020202074793a202734272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a2020202020202020202065383066323465393533353633653662363135353637333764363764333833363a207b0a20202020202020202020202074793a202734272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202731272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a2020202020202020202063663736623030323434313035623865303363646333373637376563313037333a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20204d08022020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a20202020202020202020202068733a202774272c0a202020202020202020207d2c0a2020202020202020202064653064346635613962663163316264646565336564326637656335313230393a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202731272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a2020202020202020202066623864383033623332386232653434323534386637373939636661396134613a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a20202020202020202020202068733a202774272c0a202020202020202020207d2c0a2020202020202020202066356463376463386533383037326433643635626439306136363031343863654d08023a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202731272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a20202020202020202020273036323034646164633937356265356535653337653763633636663938346366273a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a2020202020202020202066643965373865323031623662616166646466643365316662666536626133313a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a20202020202020202020273062614d08026563393637383763653137663339306532303464653161313336653539273a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202731272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a2020202020202020202063333637323438326361393366373065616664393133346239333663336665623a207b0a20202020202020202020202074793a202734272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a20202020202020202020273863326332613165613665396139323861343463333135316261356331636533273a207b0a20202020202020202020202074793a202734272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202731272c0a202020202020202020202020663a2027304d0802272c0a202020202020202020207d2c0a2020202020202020202062616562633932343663303837653839336466613438393633323135373138303a207b0a20202020202020202020202074793a202733272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a20202020202020202020273830646561643031656132646235303435663666343434336661613666636538273a207b0a20202020202020202020202074793a202733272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202731272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a20202020202020202020273034356664313230353062376632623834326435393730663234313465393132273a207b0a20202020202020202020202074793a202733272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020204d08022020202020723a202730272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a2020202020202020202064666238366634643036663035616430306366343138663061353961323466373a207b0a20202020202020202020202074793a202733272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202731272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a2020202020202020202066313862336238393761323561623338383562343362346264313431623339363a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a20202020202020202020202068733a202774272c0a202020202020202020207d2c0a2020202020202020202066326461653032363461346234613733373632623964373137376539383966363a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202766272c0a20204d08022020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202731272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a2020202020202020202063336135613836393261343233643433643964323864643562376431303964393a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a20202020202020202020273565306131653833326262636561366661636238333266646532336134343061273a207b0a20202020202020202020202074793a202734272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202731272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a20202020202020202020273137623362373634643333656165396235323630663031646637626239643266273a207b0a202020202020202020202020744d0802793a202734272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a2020202020202020202066353764306166333233643465313733666234396564343437663035363364373a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a20202020202020202020273239333162373538313161643033663361633933333038333866336432333162273a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202731272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a202020202020202020202734333163613036303230316565316639656234394d0802643434393632383734303439273a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a2020202020202020202064326538363133303662653738653434323438626237316437343735643861333a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202731272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a20202020202020202020273337623536393265333361393831313565353734313835666138333938633232273a207b0a20202020202020202020202074793a202734272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a204d0802202020202020202020273638313963333762393630363362303234383938613139646261653264663534273a207b0a20202020202020202020202074793a202734272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202731272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a2020202020202020202066326635653538343165346464613839613266616638393333646333336561363a207b0a20202020202020202020202074793a202734272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a20202020202020202020273265396462616436633066613338316136636431626239616266393861313034273a207b0a20202020202020202020202074793a202734272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202731272c0a202020204d08022020202020202020663a202730272c0a202020202020202020207d2c0a2020202020202020202062656463333065633433353837653063393866633338633339633165663964303a207b0a20202020202020202020202074793a202734272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202732272c0a20202020202020202020202063323a202732272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a20202020202020202020202063726f7373783a20272d32272c0a20202020202020202020202063726f7373793a20273132272c0a202020202020202020207d2c0a2020202020202020202063383031353564376565633965336463623739616136623833633963636431653a207b0a20202020202020202020202074793a202734272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202732272c0a20202020202020202020202063323a202732272c0a202020202020202020202020723a202731272c0a202020202020202020202020663a202730272c0a20202020202020202020202063726f7373783a202730272c0a20202020202020202020202063726f7373793a20273130272c0a202020202020202020207d2c0a2020202020202020202062633165393035646231303038344d08023933613936333261613833616234363832623a207b0a20202020202020202020202074793a202734272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a20202020202020202020273637393465613331353730656261306238386130626631656164336633663162273a207b0a20202020202020202020202074793a202734272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202731272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a20202020202020202020273031373036366635323239303830383165633365653632346635653461386161273a207b0a20202020202020202020202074793a202732272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202733272c0a202020202020204d08022020207d2c0a20202020202020202020273362633866353534636638366638313332613632336363323230316135363462273a207b0a20202020202020202020202074793a202734272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a20202020202020202020273533333062666534323861366236303162376537366332636663346364303439273a207b0a20202020202020202020202074793a202734272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202731272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a2020202020202020202066633065613532613966616335353732353162363565653638306439353165353a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a2027304d0802272c0a202020202020202020202020663a202730272c0a20202020202020202020202068733a202774272c0a202020202020202020207d2c0a20202020202020202020273536343639653863356666383938336336636238646164633634656230333633273a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202731272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a20202020202020202020273232303132316637373166633462393863656639376463303430653864333738273a207b0a20202020202020202020202074793a202734272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a2020202020202020202065613063383539616135346665356561663463316633323766616230363232313a207b0a20202020202020202020202074793a202734272c0a202020202020202020202020703a202766272c0a20202020202020204d08022020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202731272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a20202020202020202020273734353639353731613230386638623062316363666232326437633931346531273a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a20202020202020202020273864626130343235663032363265353730343538316438373537613161366533273a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202731272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a20202020202020202020273161353230373837306465633666616539313131636237343765323064386533273a207b0a20202020202020202020202074793a20274d080230272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a20202020202020202020273338366264656434613934346261653435356665646635363230366464316464273a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202731272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a2020202020202020202065633230366338646234333136656231656263653966633936306461376438663a207b0a20202020202020202020202074793a202734272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a20202020202020202020273035663433323434343635393433636538313937383061374d08023161356235373261273a207b0a20202020202020202020202074793a202734272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a20202020202020202020273333616561316532623636333461316465633863373030366439616664613232273a207b0a20202020202020202020202074793a202734272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a20202020202020202020273238333761386664343962376663376363643730666434356236396335303939273a207b0a20202020202020202020202074793a202734272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202731272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a2020204d080220202020202020273836353436383038646336303936316364623162323065373631633530616231273a207b0a20202020202020202020202074793a202733272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a20202020202020202020273538343538326262303965653831323265376663303964633764316564383133273a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a20202020202020202020273836353435376530653066343832353362303866373762396531386639336232273a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202731272c0a202020204d08022020202020202020663a202730272c0a202020202020202020207d2c0a20202020202020202020273137343566656164616262323465376365666333373539303463373366613463273a207b0a20202020202020202020202074793a202733272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a2020202020202020202061633033383036636566323535386663373935613764356438646261376263303a207b0a20202020202020202020202074793a202736272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a20202020202020202020273434323736313635356262323564646665356637616231366266353931633666273a207b0a20202020202020202020202074793a202731272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a4d0802202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a2020202020202020202062666164303136643665373765616363656337346330333430616465643862393a207b0a20202020202020202020202074793a202731272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a20202020202020202020273338336564396264316566623962366362333338386137373736373863393238273a207b0a20202020202020202020202074793a202731272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a20202020202020202020273866376562313061643062643735343734616266306336633336633038343836273a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202766272c0a2020202020204d080220202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a20202020202020202020273636656361616665316238326165363866666339363236376161663761346437273a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a2020202020202020202020206475616c616e616c6f673a202774272c0a20202020202020202020202068733a202774272c0a202020202020202020207d2c0a20202020202020202020273938306333356165393632353737336134353061613765663531373531633034273a207b0a20202020202020202020202074793a202734272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a202020202020202020202735334d0802646233323263323031333233666532636138663037346330613262663836273a207b0a20202020202020202020202074793a202734272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202731272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a2020202020202020202062363937643963326431623966366362323130343132383664316262666137663a207b0a20202020202020202020202074793a202734272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202732272c0a20202020202020202020202063323a202732272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a20202020202020202020202063726f7373783a202735272c0a20202020202020202020202063726f7373793a20272d35272c0a202020202020202020207d2c0a20202020202020202020273534363962346465303630386632336135633466393866333331633965373566273a207b0a20202020202020202020202074793a202734272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202732272c0a2020202020204d080220202020202063323a202732272c0a202020202020202020202020723a202731272c0a202020202020202020202020663a202730272c0a20202020202020202020202063726f7373783a20273135272c0a20202020202020202020202063726f7373793a20273230272c0a202020202020202020207d2c0a20202020202020202020273264363433616335343863343065353863393964306665343333626134626130273a207b0a20202020202020202020202074793a202733272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a2020202020202020202063626230373436313932353430613133623463373737356337636532303231663a207b0a20202020202020202020202074793a202733272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a202020202020202020206363313865336233376135303763343231376562366362314d080264653863383533383a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a20202020202020202020273136326639633935336630363537363839636337346162323062343032383066273a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202731272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a20202020202020202020273539623537393362656365316338306637376235356436306662333963623934273a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a20202020202020202020202072696768744d08027377697463683a202731272c0a202020202020202020207d2c0a20202020202020202020273935643763333231646365386635373632336139633562343934376262333735273a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202731272c0a202020202020202020202020663a202730272c0a20202020202020202020202072696768747377697463683a202731272c0a202020202020202020207d2c0a20202020202020202020273434663836326263613737643638623536623332353334656461356331393864273a207b0a20202020202020202020202074793a202731272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a20202020202020202020273563346637353233373161353233663135653939383066656137336238373464273a207b0a20202020202020202020202074793a202731272c0a202020202020202020202020703a202766272c0a202020202020204d0802202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a20202020202020202020273161663437356666363432396131363037353262353932663066393262323837273a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a20202020202020202020273362623963386439616463393132646437663834373163393734343563643864273a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202731272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a2020202020202020202063333930336162303161353132323261353231393764626665363533386563663a207b0a20202020202020202020202074793a2027304d0802272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a20202020202020202020273638323333383336343234336230323365636339643234663061626663396137273a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202731272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a20202020202020202020273230386566393535666139306132393831356562303937626365383962616365273a207b0a20202020202020202020202074793a202734272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a202020202020202020206431326536363533343766333534303438623964313330394d080232663738363863393a207b0a20202020202020202020202074793a202733272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a20202020202020202020273864363437363364623331303061616463353532646235653638363835303661273a207b0a20202020202020202020202074793a202733272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a20202020202020202020273332613337323434613963366363393238646364663032623435333635616138273a207b0a20202020202020202020202074793a202733272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202731272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a202020204d080220202020202061636636333735386563663366336464303365396436353461653662363962373a207b0a20202020202020202020202074793a202731272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a20202020202020202020273432376362303564306131616262303638393938653237363064373766346662273a207b0a20202020202020202020202074793a202731272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a20202020202020202020273337393964373266373864646132656538376230656638626637623931313836273a207b0a20202020202020202020202074793a202733272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020204d08022020202020663a202730272c0a202020202020202020207d2c0a20202020202020202020273035666236393964623965656635363465326665343563353638373436646263273a207b0a20202020202020202020202074793a202734272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a20202020202020202020273730393337633331383466306265333364303666376634333832636135346465273a207b0a20202020202020202020202074793a202734272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202731272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a2020202020202020202064376463313733373961613235653561653363313462396537383063366636643a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a2027314d0802272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a20202020202020202020202068733a202774272c0a202020202020202020207d2c0a2020202020202020202062316139663139366365356634376361386361663866613762633463613436633a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202731272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a2020202020202020202065316630613730386662633130373030316663343963653438313531666566613a207b0a20202020202020202020202074793a202732272c0a202020202020202020202020703a202774272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a20202020202020202020202070343a202766272c0a202020202020202020202020786d3a202766272c0a2020202020202020202020206c6566747377697463683a202730272c0a2020202020202020202020207269676874737769744d080263683a202731272c0a202020202020202020207d2c0a20202020202020202020273334343833343332623932663536356634636564383261313431313139313634273a207b0a20202020202020202020202074793a202732272c0a202020202020202020202020703a202774272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a20202020202020202020202070343a202774272c0a202020202020202020202020786d3a202766272c0a2020202020202020202020206c6566747377697463683a202730272c0a20202020202020202020202072696768747377697463683a202731272c0a202020202020202020207d2c0a2020202020202020202061643335613938303430613266616362313065636231323062663833626363333a207b0a20202020202020202020202074793a202732272c0a202020202020202020202020703a202774272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a20202020202020202020202070343a202766272c0a202020202020202020202020786d3a202766272c0a20204d0802202020202020202020206c6566747377697463683a202730272c0a20202020202020202020202072696768747377697463683a202731272c0a202020202020202020207d2c0a20202020202020202020273730376539383939313339306134653838373435303865356564346564656566273a207b0a20202020202020202020202074793a202732272c0a202020202020202020202020703a202774272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a20202020202020202020202070343a202774272c0a202020202020202020202020786d3a202766272c0a2020202020202020202020206c6566747377697463683a202730272c0a20202020202020202020202072696768747377697463683a202731272c0a202020202020202020207d2c0a2020202020202020202065633831343638653331666465303462363762356239396237646138656462313a207b0a20202020202020202020202074793a202732272c0a202020202020202020202020703a202774272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a20274d080230272c0a20202020202020202020202070343a202774272c0a202020202020202020202020786d3a202766272c0a2020202020202020202020206c6566747377697463683a202730272c0a20202020202020202020202072696768747377697463683a202731272c0a202020202020202020207d2c0a20202020202020202020273837343834653534616238653435616163393738646363336566643932346535273a207b0a20202020202020202020202074793a202732272c0a202020202020202020202020703a202774272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202731272c0a202020202020202020202020663a202730272c0a20202020202020202020202070343a202774272c0a202020202020202020202020786d3a202766272c0a2020202020202020202020206c6566747377697463683a202730272c0a20202020202020202020202072696768747377697463683a202731272c0a202020202020202020207d2c0a20202020202020202020273139323662396233323261633066386633366531313962353234616134386264273a207b0a20202020202020202020202074793a202732272c0a202020202020202020202020703a202774272c0a20202020202020202020202063313a202731272c0a202020202020204d0802202020202063323a202731272c0a202020202020202020202020723a202731272c0a202020202020202020202020663a202730272c0a20202020202020202020202070343a202774272c0a202020202020202020202020786d3a202766272c0a2020202020202020202020206c6566747377697463683a202730272c0a20202020202020202020202072696768747377697463683a202731272c0a202020202020202020207d2c0a20202020202020202020273365346231316139393237316664383037623563366462343131646336363433273a207b0a20202020202020202020202074793a202732272c0a202020202020202020202020703a202774272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202731272c0a202020202020202020202020663a202730272c0a20202020202020202020202070343a202766272c0a202020202020202020202020786d3a202766272c0a2020202020202020202020206c6566747377697463683a202730272c0a20202020202020202020202072696768747377697463683a202731272c0a202020202020202020207d2c0a20202020202020202020273833383564616363656530326363646130383165656434356562613134373964273a207b0a20202020202020202020202074793a202734274d08022c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a20202020202020202020202070343a202766272c0a202020202020202020202020786d3a202766272c0a20202020202020202020202068733a202766272c0a202020202020202020207d2c0a20202020202020202020273965613733666430376534336636313230393837366433336536663664633034273a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a20202020202020202020202068733a202774272c0a202020202020202020207d2c0a20202020202020202020273930666132373566396632613635623334313739366531316232663535316166273a207b0a20202020202020202020202074793a202733272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020204d08022020202020202020723a202730272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a20202020202020202020273239396433316338653138316664643031316466323031343435316264663066273a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a2020202020202020202020206c6566747377697463683a202730272c0a20202020202020202020202072696768747377697463683a202731272c0a20202020202020202020202068733a202774272c0a202020202020202020207d2c0a20202020202020202020273332303930333931343865306237613262313932376264303562616534363835273a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a2020202020202020202020206c6566747377697463683a202730272c0a202020202020204d0802202020202072696768747377697463683a202731272c0a202020202020202020207d2c0a20202020202020202020273332653933376537373936646233613031653962636635666539333932396230273a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a2020202020202020202020206c6566747377697463683a202730272c0a20202020202020202020202072696768747377697463683a202731272c0a202020202020202020207d2c0a2020202020202020202061363065346236303835303564316662323031373033623236366637353461373a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a2020202020202020202020206475616c616e616c6f673a202774272c0a20202020202020202020202068733a202774272c0a202020202020202020207d2c0a2020202020202020204d08022064626234393362646334653938343336646262666434663265343431333339373a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202731272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a20202020202020202020273534383239666237343464346364376137393463636432353830646637633364273a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202731272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a2020202020202020202066323034376231343965373262653866393765393637313331343734386563343a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a4d0802202730272c0a202020202020202020207d2c0a20202020202020202020273432666134626438353461323831336231393039396461353234343631613634273a207b0a20202020202020202020202074793a202737272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202731272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a2020202020202020202066353135306330666331393438383332323131653537383532616262306336653a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a202020202020202020202020786d3a202774272c0a20202020202020202020202068733a202774272c0a202020202020202020207d2c0a2020202020202020202061383435386335313066646437316131663963633463306232343362313737613a207b0a20202020202020202020202074793a202737272c0a202020202020202020202020703a202766272c0a2020202020204d080220202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a20202020202020202020273637656530303131303930613661646133386633656566386133303230666234273a207b0a20202020202020202020202074793a202731272c0a202020202020202020202020703a202774272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a20202020202020202020273133663131633465386330313965653332366235373164303539616363656134273a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202774272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a20202020202020202020202070343a202774272c0a202020202020202020207d2c0a2020202020202020202027363038666135393966303666393335653035643434356666323336663664374d080261273a207b0a20202020202020202020202074793a202732272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a20202020202020202020202073623a202774272c0a202020202020202020207d2c0a2020202020202020202061363566373961643461306262646563643539643566376562333632336664373a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a20202020202020202020202068733a202774272c0a202020202020202020207d2c0a20202020202020202020273364333832383165643861386438633763643435376131386339326338363034273a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a2020204d0802202020202020202020663a202730272c0a20202020202020202020202068733a202774272c0a202020202020202020207d2c0a20202020202020202020273535666665353335383937633336386265376138306435383266366136386362273a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a20202020202020202020202068733a202774272c0a202020202020202020207d2c0a2020202020202020202061353165356466323861306665386335326539643238666235663865343461363a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a20202020202020202020202068733a202774272c0a202020202020202020207d2c0a2020202020202020202062346265396332356561303738363038333130663064646334303965376363313a207b0a20202020202020202020202074793a4d0802202730272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a20202020202020202020202068733a202774272c0a202020202020202020207d2c0a20202020202020202020273738623130363164363531656638303662656361633164643366646132396130273a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202774272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a20202020202020202020202068733a202774272c0a202020202020202020207d2c0a20202020202020202020273630313061333938303730646661636234633031373364373564373363353061273a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202774272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a20204d080220202020202020207d2c0a20202020202020202020273966613737343361303136633962373031356565316433383633323666383865273a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a20202020202020202020202068733a202774272c0a202020202020202020207d2c0a2020202020202020202061663163386638396630616566306439653265313539303164366530353339613a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202731272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a20202020202020202020273264326665346461396631626165313032666138636132643838333061363236273a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a2020202020202020202020204d080263323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a20202020202020202020202068733a202774272c0a202020202020202020207d2c0a20202020202020202020273130303535313336333032376463356630393364303439613566643030393333273a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a20202020202020202020202068733a202774272c0a202020202020202020207d2c0a20202020202020202020273430626432316339363938633662386537316237303366383630633131333539273a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a2020202020202020202063663363356133323230353530366166336330396536653063383263666130393a207b0a20204d08022020202020202020202074793a202732272c0a202020202020202020202020703a202774272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a20202020202020202020202070343a202774272c0a20202020202020202020202068733a202774272c0a202020202020202020207d2c0a2020202020202020202063393536643563653734313763633264616236316139616664386633373264303a207b0a20202020202020202020202074793a202732272c0a202020202020202020202020703a202774272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a20202020202020202020202070343a202774272c0a20202020202020202020202068733a202774272c0a202020202020202020207d2c0a2020202020202020202064663730303735336438626139333533613730343538363837373865656636643a207b0a20202020202020202020202074793a202732272c0a202020202020202020202020703a202774272c0a20202020202020202020202063313a202731272c0a2020202020202020202020204d080263323a202731272c0a202020202020202020202020723a202731272c0a202020202020202020202020663a202730272c0a20202020202020202020202070343a202774272c0a202020202020202020207d2c0a20202020202020202020273039386232303961616331323666326332656462633938326466303963643162273a207b0a20202020202020202020202074793a202736272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a20202020202020202020273435363538363761613665356363373130613765646166366434333462336166273a207b0a20202020202020202020202074793a202736272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a2020202020202020202066616231323930663961346334663262346438333163386135376639363966353a207b0a20202020202020202020202074793a202731272c0a20204d080220202020202020202020703a202774272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a2020202020202020202061396632393030343431323632316632306164396635633531636331313438363a207b0a20202020202020202020202074793a202734272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a2020202020202020202066613461656334303762393065393336306239636665623431383339623039613a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a20202020202020202020202068733a202774272c0a202020202020202020207d2c0a202020202020202020202736323837373237616233364d0802333931613632663732386262646565383836373563273a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a20202020202020202020202068733a202774272c0a202020202020202020207d2c0a20202020202020202020273834633462346564373566343134313761633763626365616337316533383536273a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202731272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a20202020202020202020273266623835636162366530663035383265333035376266316163333363373461273a207b0a20202020202020202020202074793a202734272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a20204d080220202020202020202020663a202730272c0a202020202020202020207d2c0a2020202020202020202065376438393636396137663932656332636339396439363633613238363731633a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a202020202020202020202020786d3a202766272c0a20202020202020202020202068733a202774272c0a202020202020202020207d2c0a20202020202020202020273630353332333363623539633062346361363333363233666437366334353736273a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202774272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a20202020202020202020202068733a202774272c0a202020202020202020207d2c0a2020202020202020202065653039373839643631613639336533383763636463396132663032356234333a207b0a20202020202020202020202074794d08023a202730272c0a202020202020202020202020703a202774272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a20202020202020202020273364313234383963353533636231613930633865626436353334333833666131273a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202774272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a20202020202020202020273165323162663164396437623363306365626161633537363936346339656232273a207b0a20202020202020202020202074793a202734272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a2020202020202020202027343664626335313038313531653936336231324d080230636461656464376436643463273a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a20202020202020202020202068733a202774272c0a202020202020202020207d2c0a20202020202020202020273235636531663564666339303962636234363038366534313464366130663330273a207b0a20202020202020202020202074793a202734272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a20202020202020202020273631383039363834656566643663626232393633353734666662306133666162273a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020204d08022020663a202730272c0a2020202020202020202020206475616c616e616c6f673a202774272c0a202020202020202020207d2c0a2020202020202020202062663037306630346338666337656337323162393530366236336234383437303a207b0a20202020202020202020202074793a202733272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a20202020202020202020273461383131643837643137333061333334613231653762646139666535333561273a207b0a20202020202020202020202074793a202733272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a20202020202020202020273035633231613838666437333664353964323862316439356537393834306236273a207b0a20202020202020202020202074793a202733272c0a202020202020202020202020703a202766272c0a202020202020202020202020634d0802313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a2020202020202020202064646535373033633438386334616435323638633236393637303466316336383a207b0a20202020202020202020202074793a202733272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a2020202020202020202066343231366362373763643664623135323235393638663331356339373933663a207b0a20202020202020202020202074793a202733272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a2020202020202020202065353465646332393965373264323264306261303564313666333339336538633a207b0a20202020202020202020202074793a202730272c0a202020202020204d08022020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a20202020202020202020202068733a202774272c0a202020202020202020207d2c0a2020202020202020202062646533616265343064333032643863346336356339363930633035646263343a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a20202020202020202020202068733a202774272c0a202020202020202020207d2c0a2020202020202020202065323734653732383562623866393764346439616364646338343937656439653a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202731272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a2020202020204d080220202020273566623830356632623639383230613962313936663566656432613233633939273a207b0a20202020202020202020202074793a202734272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a20202020202020202020273131346532313562386366633836393862633032383661373965316362396232273a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202774272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202730272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a2020202020202020202065623363313434336634613235383036646534363537653130366435303465383a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a2020202020202020204d0802202020663a202730272c0a202020202020202020207d2c0a2020202020202020202063336636323031643661393338386538363033323863393633613333303163633a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a20202020202020202020202068733a202774272c0a202020202020202020207d2c0a2020202020202020202064633062663532343735303330633035363731646431383765396139396630383a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202731272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a20202020202020202020273461373032623939356663613835393165326431343236386362313233343437273a207b0a20202020202020202020202074793a202733272c0a202020202020202020202020703a202774272c0a20202020202020202020202063313a202731272c0a204d0802202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a20202020202020202020202070343a202774272c0a20202020202020202020202068733a202766272c0a202020202020202020207d2c0a20202020202020202020273966663338656136323030343230316438373063616138626439343633353235273a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a20202020202020202020202068733a202774272c0a202020202020202020207d2c0a20202020202020202020273361313566653762656164336439623930663366623133643633653165653432273a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a20202020202020202020202068733a202774272c0a20202020202020204d080220207d2c0a20202020202020202020273637356335623739323338656161363431663265336665396335653232353839273a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202731272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a20202020202020202020273839663930623636316431623739653935366231306262366139373731663738273a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202774272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a2020202020202020202064386462623563346437643032653662303632376466386636353761313362343a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730274d08022c0a202020202020202020202020663a202730272c0a20202020202020202020202068733a202774272c0a202020202020202020207d2c0a20202020202020202020273237633133333936356466643830623361636231656435393838313761656130273a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a20202020202020202020202068733a202774272c0a202020202020202020207d2c0a2020202020202020202063663030373536336665393463616366356561353239356463393363653965663a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a20202020202020202020202068733a202774272c0a202020202020202020207d2c0a2020202020202020202063616431653733333938366263653165653463396461373364653164636666313a207b0a202020202020202020204d0802202074793a202730272c0a202020202020202020202020703a202774272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a2020202020202020202064623736383239373938353137386365633033346331326134316436663161373a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202774272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a20202020202020202020273838396663376537626135633830376265343465383562613761366264323665273a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202774272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a20202020202020202020202068733a202774272c0a202020202020202020207d2c0a202020202020204d080220202062633536663830336436353635386639326331376536633262323731613530373a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202774272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202731272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a20202020202020202020273261313764633561363162653334326464303061663731396363333335383532273a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202774272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a20202020202020202020202068733a202774272c0a202020202020202020207d2c0a20202020202020202020273939303535633365363237626263313766633831636265306233616531373663273a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202774272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a2020202020202020204d0802202020723a202731272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a2020202020202020202061363933343763386136383162386539346637396438643834383939383030373a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a20202020202020202020202068733a202774272c0a202020202020202020207d2c0a20202020202020202020273739323032636237643262633135306666636130633936613464386234326366273a207b0a20202020202020202020202074793a202731272c0a202020202020202020202020703a202774272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a20202020202020202020273034656466346633633662313836313437633131313733353963386635303736273a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202766272c0a4d080220202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a20202020202020202020202072696768747377697463683a202731272c0a20202020202020202020202068733a202774272c0a202020202020202020207d2c0a20202020202020202020273833333865636136313265656466366464656335376435343934323836336537273a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a20202020202020202020202072696768747377697463683a202731272c0a202020202020202020207d2c0a20202020202020202020273537356331386637376134323135333332626635366430303830613233346238273a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a2020202020202020204d0802202020663a202730272c0a20202020202020202020202072696768747377697463683a202731272c0a202020202020202020207d2c0a20202020202020202020273732656336383632376262376438373961653335613731643736373966373165273a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a20202020202020202020202072696768747377697463683a202731272c0a20202020202020202020202068733a202774272c0a202020202020202020207d2c0a20202020202020202020273630393832663433306237363233343364353365343866373061636661366430273a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202774272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a20202020202020202020202068733a202774272c0a202020202020202020207d2c0a20202020202020202020273138303132316563623461616263374d08026461613934356233353565313563323534273a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202774272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202731272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a20202020202020202020273466623131396636646232363338306162626130336534636533636130346338273a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a20202020202020202020202072696768747377697463683a202731272c0a202020202020202020207d2c0a20202020202020202020273062373633356430663339666639376431653834313838386531623233623762273a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a2027304d0802272c0a202020202020202020202020663a202730272c0a20202020202020202020202072696768747377697463683a202731272c0a202020202020202020207d2c0a20202020202020202020273336386333626661393163663262623834313339363765623063333932633663273a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202774272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a20202020202020202020202070343a202766272c0a202020202020202020202020786d3a202766272c0a20202020202020202020202068733a202774272c0a202020202020202020207d2c0a20202020202020202020273530313362363963623035623231613131393463653438353137646637626663273a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202774272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a20202020202020202020202070343a202766272c0a202020202020202020202020786d3a4d0802202766272c0a20202020202020202020202068733a202774272c0a202020202020202020207d2c0a20202020202020202020273666383063616335393032336136396166613236313832656162626466626164273a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202774272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a20202020202020202020202068733a202774272c0a202020202020202020207d2c0a2020202020202020202062313638356463626166316235373863623162363634333636366438313365343a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202774272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a20202020202020202020273437343861363264356336323866656664323864663564653535363765646563273a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202766272c0a202020204d0802202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a20202020202020202020202072696768747377697463683a202731272c0a202020202020202020207d2c0a20202020202020202020273164376436353939376437636430383538653962656537316465643237326161273a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a20202020202020202020202072696768747377697463683a202731272c0a202020202020202020207d2c0a20202020202020202020273739316535356462303339303339383832383033383835373361326663646331273a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a20202020202020202020202072694d08026768747377697463683a202731272c0a20202020202020202020202068733a202774272c0a202020202020202020207d2c0a2020202020202020202064306266336238343161643462626433353665393538383837343734396131333a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202774272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a20202020202020202020202070343a202774272c0a202020202020202020202020786d3a202766272c0a202020202020202020207d2c0a20202020202020202020273134383262656566376462646231323266366262346230333634303838386632273a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202774272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202731272c0a202020202020202020202020663a202730272c0a20202020202020202020202070343a202774272c0a202020202020202020202020786d3a202766272c0a202020202020202020207d2c0a20202020202020202020653834393736613335324d0802393931356163393162393634666162303361656462323a207b0a20202020202020202020202074793a202731272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202731272c0a20202020202020202020202070343a202766272c0a202020202020202020202020786d3a202774272c0a20202020202020202020202068733a202774272c0a202020202020202020207d2c0a20202020202020202020273038303535353931663935613534613334646439306439306165356465633234273a207b0a20202020202020202020202074793a202731272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202731272c0a20202020202020202020202070343a202766272c0a202020202020202020202020786d3a202774272c0a20202020202020202020202068733a202774272c0a202020202020202020207d2c0a20202020202020202020273966616337643034333364633364393336656663653563373133343838623038273a207b0a4d080220202020202020202020202074793a202731272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202731272c0a20202020202020202020202070343a202766272c0a202020202020202020202020786d3a202774272c0a20202020202020202020202068733a202774272c0a202020202020202020207d2c0a2020202020202020202066336634343832623335353136363761353264396236353765313563643262663a207b0a20202020202020202020202074793a202731272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202731272c0a20202020202020202020202070343a202766272c0a202020202020202020202020786d3a202774272c0a20202020202020202020202068733a202774272c0a202020202020202020207d2c0a20202020202020202020273034343635373239343435306338363963343565376566363166343837306465273a207b0a20202020202020202020202074793a202731272c0a202020202020204d08022020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202731272c0a20202020202020202020202070343a202766272c0a202020202020202020202020786d3a202774272c0a20202020202020202020202068733a202774272c0a202020202020202020207d2c0a2020202020202020202064303065363936326132663938363962313663623436633865623631323666633a207b0a20202020202020202020202074793a202731272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202731272c0a20202020202020202020202070343a202774272c0a202020202020202020202020786d3a202774272c0a20202020202020202020202068733a202774272c0a202020202020202020207d2c0a2020202020202020202063306663636535316661393566346531643639653163613661613263653561383a207b0a20202020202020202020202074793a202731272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a20274d080231272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202731272c0a20202020202020202020202070343a202774272c0a202020202020202020202020786d3a202774272c0a20202020202020202020202068733a202774272c0a202020202020202020207d2c0a20202020202020202020273165353265373364353836326137323437626130663933656666356230333730273a207b0a20202020202020202020202074793a202731272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202731272c0a20202020202020202020202070343a202774272c0a202020202020202020202020786d3a202774272c0a20202020202020202020202068733a202774272c0a202020202020202020207d2c0a2020202020202020202062656637383364313561313033623531646230336138363664376130623237333a207b0a20202020202020202020202074793a202731272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a2020204d0802202020202020202020723a202730272c0a202020202020202020202020663a202731272c0a20202020202020202020202070343a202774272c0a202020202020202020202020786d3a202774272c0a20202020202020202020202068733a202774272c0a202020202020202020207d2c0a20202020202020202020273631633566363534623334303337396636396164613462633463633264356430273a207b0a20202020202020202020202074793a202731272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202731272c0a20202020202020202020202070343a202774272c0a202020202020202020202020786d3a202774272c0a20202020202020202020202068733a202774272c0a202020202020202020207d2c0a20202020202020202020273633333564393463663631346633386135636438356334323139656232346631273a207b0a20202020202020202020202074793a202731272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a2020202020202020204d0802202020663a202731272c0a20202020202020202020202070343a202774272c0a202020202020202020202020786d3a202774272c0a20202020202020202020202068733a202774272c0a202020202020202020207d2c0a20202020202020202020273339646337663666333966396233653334316135666665613736653731666231273a207b0a20202020202020202020202074793a202731272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202731272c0a20202020202020202020202070343a202766272c0a202020202020202020202020786d3a202774272c0a20202020202020202020202068733a202774272c0a202020202020202020207d2c0a20202020202020202020273863623636633665643562333739313831623134323064386534373538383334273a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a2020202020202020202020206475614d08026c616e616c6f673a202774272c0a202020202020202020207d2c0a2020202020202020202063316163393938376139343833653230306333333863636264326565393462353a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a2020202020202020202020206475616c616e616c6f673a202774272c0a202020202020202020207d2c0a2020202020202020202062356339663062663562353736336139323362376633373033373662313834393a207b0a20202020202020202020202074793a202734272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a2020202020202020202062353565346432353531373365356232633265363230663331383661316563633a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202766272c0a202020202020202020202020634d0802313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a20202020202020202020202072696768747377697463683a202731272c0a202020202020202020207d2c0a20202020202020202020273236383937616234376238633564336235376433636332333564373633356438273a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a20202020202020202020202072696768747377697463683a202731272c0a202020202020202020207d2c0a20202020202020202020273262316637386161613262386465356461653365653462393361623637386634273a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a20202020202020202020202072696768747377697463684d08023a202731272c0a202020202020202020207d2c0a2020202020202020202061336134646264323763383065666639626566353166373363643236663164353a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a20202020202020202020202072696768747377697463683a202731272c0a202020202020202020207d2c0a20202020202020202020273433613030353966663162356266373665306337303233666465376333336135273a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a20202020202020202020202072696768747377697463683a202731272c0a202020202020202020207d2c0a2020202020202020202061386537353264313038656663656666353034616534656463343736366237353a207b0a20202020202020202020202074793a202730272c0a202020202020204d08022020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a20202020202020202020202072696768747377697463683a202731272c0a202020202020202020207d2c0a20202020202020202020273034633938356562626430626561346335353732303765363962386362643866273a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a20202020202020202020202072696768747377697463683a202731272c0a202020202020202020207d2c0a2020202020202020202062633166353664376363313466313564646663626135653231653139393337623a207b0a20202020202020202020202074793a202732272c0a202020202020202020202020703a202774272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c4d08020a2020202020202020202020206c6566747377697463683a202730272c0a20202020202020202020202072696768747377697463683a202731272c0a202020202020202020207d2c0a20202020202020202020273865306335666337376232373432326133396438366163326535376463373364273a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202774272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a2020202020202020202066396661353130376564323133653730393835386438383736333539333039653a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202774272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a20202020202020202020273233373066376365316239316663373735626365336537323435346639303861273a207b0a20202020202020202020202074793a202730272c0a2020202020202020202020204d0802703a202774272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a20202020202020202020202070343a202774272c0a202020202020202020207d2c0a2020202020202020202062346631333765383535383863653432643330323130326261373231353433373a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202774272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a20202020202020202020202070343a202774272c0a202020202020202020207d2c0a2020202020202020202065316230316464376538343264326236383265663438663638396435613465623a207b0a20202020202020202020202074793a202734272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a20202020202020202020274d08023433353235613034303531383438373563326563666430313936383836613334273a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a202020202020202020202020786d3a202766272c0a20202020202020202020202068733a202774272c0a202020202020202020207d2c0a20202020202020202020273830333734336665313836303066323932343536353339393036343634343231273a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a202020202020202020202020786d3a202766272c0a20202020202020202020202068733a202774272c0a202020202020202020207d2c0a20202020202020202020273130366234303963366634633231396231613362336430393965616433623262273a207b0a20202020202020202020202074793a202730272c0a202020202020202020204d08022020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202731272c0a202020202020202020202020663a202730272c0a202020202020202020202020786d3a202766272c0a202020202020202020207d2c0a20202020202020202020273033646161313962376161653264323765363166326134646265336239623739273a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202774272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202731272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a20202020202020202020273033393335623961316632353631626164613538666364356439666432376465273a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a2020202020202020202020206475616c616e616c6f673a202774272c0a202020202020202020204d08027d2c0a2020202020202020202064323765643866383833616639623465653362353537306633306539666637313a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a2020202020202020202020206475616c616e616c6f673a202774272c0a202020202020202020207d2c0a20202020202020202020273031633762633363643833373565333533633861613833376665313236326563273a207b0a20202020202020202020202074793a202734272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a2020202020202020202061336138356535303764366637313839373262313436346365316161663861343a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063324d08023a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a202020202020202020202020786d3a202766272c0a20202020202020202020202068733a202774272c0a202020202020202020207d2c0a20202020202020202020273331623230613437313065363931333030626234616136326366303232383463273a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a202020202020202020202020786d3a202766272c0a20202020202020202020202068733a202774272c0a202020202020202020207d2c0a20202020202020202020273332663161316235613765336234343933633362376236333761656561376438273a207b0a20202020202020202020202074793a202734272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a20202020202020204d08022020273665323766373362643461343962363437626364353862633566386237333964273a207b0a20202020202020202020202074793a202734272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a20202020202020202020273030373037353165646238626266346464346136383566353862356237326335273a207b0a20202020202020202020202074793a202734272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a20202020202020202020273962643730633036643333383666373666383136323838313639396137373761273a207b0a20202020202020202020202074793a202733272c0a202020202020202020202020703a202774272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a2020202020202020204d0802202020663a202730272c0a20202020202020202020202070343a202774272c0a20202020202020202020202068733a202766272c0a202020202020202020207d2c0a20202020202020202020273935633861373935653330363430633965633832363039383732633830353137273a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a20202020202020202020202072696768747377697463683a202731272c0a202020202020202020207d2c0a20202020202020202020273163383133396335383465316366356336616664643266333435356132343436273a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202731272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a2020202020202020202063613163323762353366636662396665643833626339653932393230373037633a207b0a202020202020202020204d0802202074793a202734272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202730272c0a20202020202020202020202063323a202730272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a20202020202020202020273737316362343630393334373635376636336536663065623236303336653335273a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a20202020202020202020202068733a202774272c0a202020202020202020207d2c0a2020202020202020202061383463316232333030666266626632316231633032333837663631336461643a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202731272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a202020202020204d0802202020273661646637393535386133643766356265636131626238643334333337343137273a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a20202020202020202020202068733a202774272c0a202020202020202020207d2c0a20202020202020202020273738336430396164393534326230626232386161346363366666636638616136273a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a20202020202020202020202068733a202774272c0a202020202020202020207d2c0a20202020202020202020273066346264353830303335396136326135383734623933646339326134376631273a207b0a20202020202020202020202074793a202732272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a202020202020204d0802202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a202020202020202020207d2c0a20202020202020202020273032353038653664663565313733623430363361376536653633323935383137273a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202774272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a20202020202020202020202070343a202774272c0a202020202020202020202020786d3a202766272c0a20202020202020202020202068733a202774272c0a202020202020202020207d2c0a20202020202020202020273831636565333236623939643638333164653130613536366533333862643235273a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202774272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a20202020202020202020202068733a202774272c0a202020202020202020207d2c0a204d0802202020202020202020273163396230626230323865363366383361326431633164656636373561636339273a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202774272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202731272c0a202020202020202020202020663a202730272c0a202020202020202020202020786d3a202766272c0a202020202020202020207d2c0a2020202020202020202066346164316131643733326332633863646264323164616261663338613436633a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202774272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202731272c0a202020202020202020202020663a202730272c0a20202020202020202020202070343a202766272c0a202020202020202020202020786d3a202766272c0a20202020202020202020202068733a202766272c0a202020202020202020207d2c0a2020202020202020202066343166363531343137633233343130346433373239363437376661323965623a207b0a20202020202020202020202074793a202730272c0a202020204d08022020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a20202020202020202020202070343a202766272c0a202020202020202020202020786d3a202766272c0a20202020202020202020202068733a202774272c0a202020202020202020207d2c0a20202020202020202020273761623533396262306539396531653561316338393233306264653634363130273a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a20202020202020202020202070343a202766272c0a202020202020202020202020786d3a202766272c0a20202020202020202020202068733a202774272c0a202020202020202020207d2c0a20202020202020202020273838623964653065626133376261353136353930666138623836303135356630273a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202766272c0a202020202020202020204d0802202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a20202020202020202020202070343a202766272c0a202020202020202020202020786d3a202766272c0a20202020202020202020202068733a202774272c0a202020202020202020207d2c0a20202020202020202020273631616134613037346164303863353234666265653838643135653336396561273a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202731272c0a202020202020202020202020663a202730272c0a20202020202020202020202070343a202766272c0a202020202020202020202020786d3a202766272c0a20202020202020202020202068733a202766272c0a202020202020202020207d2c0a20202020202020202020273336333266636337333261333335393162393166306565613263303165353939273a207b0a20202020202020202020202074793a202734272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a4d0802202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a20202020202020202020202070343a202766272c0a202020202020202020202020786d3a202766272c0a20202020202020202020202068733a202766272c0a202020202020202020207d2c0a2020202020202020202064306238376433343964366435653430393230636334666639353235333333393a207b0a20202020202020202020202074793a202734272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a20202020202020202020202070343a202766272c0a202020202020202020202020786d3a202766272c0a20202020202020202020202068733a202766272c0a202020202020202020207d2c0a20202020202020202020273963623338343834313665333965626636343233353764626565336535393730273a207b0a20202020202020202020202074793a202733272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202730272c0a202020202020202020202020723a202730272c0a20204d080220202020202020202020663a202730272c0a20202020202020202020202070343a202766272c0a202020202020202020202020786d3a202766272c0a20202020202020202020202068733a202766272c0a202020202020202020207d2c0a2020202020202020202062316563376264383039616233646562373436633561356562326566616563623a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202774272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a20202020202020202020202070343a202766272c0a202020202020202020202020786d3a202766272c0a20202020202020202020202068733a202766272c0a202020202020202020207d2c0a20202020202020202020273433663865396365633364393939313031373730396634386137616132326636273a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202774272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a202020202020202020204d0802202070343a202766272c0a202020202020202020202020786d3a202766272c0a20202020202020202020202068733a202766272c0a202020202020202020207d2c0a2020202020202020202066383564353036663539333334323763386465363634626530633535313061333a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a20202020202020202020202070343a202766272c0a202020202020202020202020786d3a202766272c0a20202020202020202020202068733a202774272c0a202020202020202020207d2c0a2020202020202020202066383338343963663366356163393538353665386639336565393064356138643a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a20202020202020202020202070343a202766272c0a202020202020202020202020786d3a202766274d08022c0a20202020202020202020202068733a202766272c0a20202020202020202020202072696768747377697463683a202731272c0a202020202020202020207d2c0a2020202020202020202063363236333235343563393138323366373266366631346231393736363830343a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202774272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a20202020202020202020202070343a202766272c0a202020202020202020202020786d3a202766272c0a20202020202020202020202068733a202766272c0a202020202020202020207d2c0a20202020202020202020273430393133646366323461363233633164633234393561316334393331623438273a207b0a20202020202020202020202074793a202734272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a20202020202020202020202070343a202766272c0a202020202020202020202020786d3a20274d080266272c0a20202020202020202020202068733a202766272c0a202020202020202020207d2c0a20202020202020202020273862343935343937363366346630653432613233393432623864663662323438273a207b0a20202020202020202020202074793a202734272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a20202020202020202020202070343a202766272c0a202020202020202020202020786d3a202766272c0a20202020202020202020202068733a202766272c0a202020202020202020207d2c0a20202020202020202020273764623033316631633464633935373731393831326665363865653432353331273a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202731272c0a202020202020202020202020663a202730272c0a20202020202020202020202070343a202766272c0a202020202020202020202020786d3a202766272c0a20202020202020202020202068733a202766272c0a204d08022020202020202020207d2c0a20202020202020202020273538333763346163386234383166623938333831616466643266653837393639273a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202774272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a20202020202020202020202070343a202766272c0a202020202020202020202020786d3a202766272c0a20202020202020202020202068733a202766272c0a202020202020202020207d2c0a20202020202020202020273035623034653938323261373563656565616132656231303666666537363865273a207b0a20202020202020202020202074793a202734272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a20202020202020202020202070343a202766272c0a202020202020202020202020786d3a202766272c0a20202020202020202020202068733a202766272c0a202020202020202020207d2c0a20202020202020202020273732374d08026236643434376532316166343262333736376639633263666636303132273a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a20202020202020202020202070343a202766272c0a202020202020202020202020786d3a202766272c0a20202020202020202020202068733a202774272c0a202020202020202020207d2c0a2020202020202020202063333130376433653365313764363765336131316434376135393436613466333a207b0a20202020202020202020202074793a202732272c0a202020202020202020202020703a202774272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a20202020202020202020202070343a202766272c0a202020202020202020202020786d3a202766272c0a20202020202020202020202068733a202774272c0a202020202020202020207d2c0a2020202020202020202027386361613239613864393231346361303236393762333335373130323330394d080261273a207b0a20202020202020202020202074793a202732272c0a202020202020202020202020703a202774272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202731272c0a202020202020202020202020663a202730272c0a20202020202020202020202070343a202766272c0a202020202020202020202020786d3a202766272c0a20202020202020202020202068733a202766272c0a202020202020202020207d2c0a2020202020202020202062333134336164626262376437643138396539313865356232396435356137323a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a20202020202020202020202070343a202766272c0a202020202020202020202020786d3a202766272c0a20202020202020202020202068733a202774272c0a202020202020202020207d2c0a2020202020202020202065353437343932656264333432653537633238626232333535343664613239393a207b0a20202020202020202020202074793a202730272c0a2020204d0802202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202731272c0a202020202020202020202020663a202730272c0a20202020202020202020202070343a202766272c0a202020202020202020202020786d3a202766272c0a20202020202020202020202068733a202766272c0a202020202020202020207d2c0a20202020202020202020273839623862336466343637333365306334643537616562396262323435653666273a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a20202020202020202020202070343a202766272c0a202020202020202020202020786d3a202766272c0a20202020202020202020202068733a202774272c0a202020202020202020207d2c0a2020202020202020202065656130343335396466363737306436366230643937633263656131393332663a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202766272c0a20202020202020202020204d08022063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a20202020202020202020202070343a202766272c0a202020202020202020202020786d3a202766272c0a20202020202020202020202068733a202774272c0a202020202020202020207d2c0a20202020202020202020273763646662653337363334653764636434646336376462376564626364336261273a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a20202020202020202020202070343a202766272c0a202020202020202020202020786d3a202766272c0a20202020202020202020202068733a202766272c0a202020202020202020207d2c0a20202020202020202020273161653062323764343766313964353936353231363866616433393636333735273a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202774272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a204d08022731272c0a202020202020202020202020723a202731272c0a202020202020202020202020663a202730272c0a20202020202020202020202070343a202766272c0a202020202020202020202020786d3a202766272c0a20202020202020202020202068733a202766272c0a202020202020202020207d2c0a20202020202020202020273335343333383638646665333833616532316664373735303765356134373864273a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202774272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a20202020202020202020202070343a202774272c0a202020202020202020202020786d3a202766272c0a20202020202020202020202068733a202766272c0a202020202020202020207d2c0a20202020202020202020273539663163316537663636353361346536366561383938636536656162353066273a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a204d08022020202020202020202020663a202730272c0a20202020202020202020202070343a202766272c0a202020202020202020202020786d3a202766272c0a20202020202020202020202068733a202774272c0a202020202020202020207d2c0a2020202020202020202063326234323633393731386430303561366430616566613038303966373764623a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202731272c0a202020202020202020202020663a202730272c0a20202020202020202020202070343a202766272c0a202020202020202020202020786d3a202766272c0a20202020202020202020202068733a202766272c0a202020202020202020207d2c0a20202020202020202020273830666661643365646235306630393730653738306137323761343532346464273a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202774272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a2020202020202020204d080220202070343a202766272c0a202020202020202020202020786d3a202766272c0a20202020202020202020202068733a202774272c0a202020202020202020207d2c0a2020202020202020202064396131313064383839633464343230383963363166616465323561663232303a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a20202020202020202020202070343a202766272c0a202020202020202020202020786d3a202766272c0a20202020202020202020202068733a202774272c0a202020202020202020207d2c0a20202020202020202020273739646632306565383661393839653636393135386263623964313133653861273a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a20202020202020202020202070343a202766272c0a202020202020202020202020786d3a204d08022766272c0a20202020202020202020202068733a202774272c0a202020202020202020207d2c0a2020202020202020202066393832633764626637346339633034396366376638373561343665643831383a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a20202020202020202020202070343a202766272c0a202020202020202020202020786d3a202766272c0a20202020202020202020202068733a202774272c0a202020202020202020207d2c0a2020202020202020202066663864383238333535336166356435646264616464623537383162343839363a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a20202020202020202020202070343a202766272c0a202020202020202020202020786d3a202766272c0a20202020202020202020202068733a202774272c0a202020204d08022020202020207d2c0a2020202020202020202061343636613639393332346431316531613235393463633839613966313865313a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202766272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a20202020202020202020202070343a202766272c0a202020202020202020202020786d3a202774272c0a20202020202020202020202068733a202766272c0a2020202020202020202020206c6566747377697463683a202730272c0a202020202020202020207d2c0a20202020202020202020273063303937626338633738366166313832393335303831616335636436333166273a207b0a20202020202020202020202074793a202730272c0a202020202020202020202020703a202774272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a20202020202020202020202070343a202766272c0a202020202020202020202020786d3a202774272c0a20202020202020202020202068733a202774272c0a2020204d0802202020202020207d2c0a2020202020202020202061363632383632663230333632666335656235633635313036356362643531633a207b0a20202020202020202020202074793a202733272c0a202020202020202020202020703a202774272c0a20202020202020202020202063313a202731272c0a20202020202020202020202063323a202731272c0a202020202020202020202020723a202730272c0a202020202020202020202020663a202730272c0a20202020202020202020202070343a202766272c0a202020202020202020202020786d3a202774272c0a20202020202020202020202068733a202766272c0a2020202020202020202020206475616c616e616c6f673a202774272c0a202020202020202020207d2c0a20202020202020207d3b0a2020202020202020766172206275203d2058663b0a202020202020202067752e70726f746f74797065203d207b0a20202020202020202020637265617465456c656d656e743a2066756e6374696f6e202829207b0a202020202020202020202020746869732e656c203d20746869732e646f437265617465456c656d656e7428293b0a2020202020202020202020207661722074203d20746869732e676574436c61737328293b0a202020202020202020202020696620287429207b0a2020202020202020202020202020746869732e656c2e636c6173734e616d65203d20743b4d08020a2020202020202020202020207d0a20202020202020202020202072657475726e20746869732e656c3b0a202020202020202020207d2c0a20202020202020202020676574436c6173733a2066756e6374696f6e202829207b0a20202020202020202020202072657475726e206e756c6c3b0a202020202020202020207d2c0a20202020202020202020676574456c656d656e743a2066756e6374696f6e202829207b0a20202020202020202020202072657475726e20746869732e656c3b0a202020202020202020207d2c0a20202020202020202020646f437265617465456c656d656e743a2066756e6374696f6e202829207b0a20202020202020202020202072657475726e206e756c6c3b0a202020202020202020207d2c0a20202020202020207d3b0a202020202020202079752e70726f746f74797065203d204f626a6563742e6372656174652867752e70726f746f74797065293b0a202020202020202062752879752e70726f746f747970652c207b0a20202020202020202020676574436c6173733a2066756e6374696f6e202829207b0a20202020202020202020202072657475726e20276a73373830305f5f636f6e74726f6c732d627574746f6e273b0a202020202020202020207d2c0a20202020202020202020646f437265617465456c656d656e743a2066756e6374696f6e202829207b0a2020202020202020202020204d08027661722074203d20646f63756d656e742e637265617465456c656d656e742827627574746f6e27293b0a2020202020202020202020207661722065203d20746869733b0a202020202020202020202020742e6f6e636c69636b203d2066756e6374696f6e20287429207b0a2020202020202020202020202020652e6f6e436c69636b2874293b0a2020202020202020202020207d3b0a202020202020202020202020742e6f6e6d6f757365646f776e203d2066756e6374696f6e20287429207b0a2020202020202020202020202020652e6f6e446f776e2874293b0a2020202020202020202020207d3b0a202020202020202020202020742e6f6e6d6f7573657570203d2066756e6374696f6e20287429207b0a2020202020202020202020202020652e6f6e55702874293b0a2020202020202020202020207d3b0a202020202020202020202020766172206e203d20646f63756d656e742e637265617465546578744e6f646528746869732e74657874293b0a202020202020202020202020742e617070656e644368696c64286e293b0a20202020202020202020202069662028746869732e7469746c6529207b0a2020202020202020202020202020742e73657441747472696275746528277469746c65272c20746869732e7469746c65293b0a2020202020202020202020207d0a20202020202020202020202072657475726e20743b0a204d08022020202020202020207d2c0a202020202020202020206f6e436c69636b3a2066756e6374696f6e20287429207b7d2c0a202020202020202020206f6e446f776e3a2066756e6374696f6e20287429207b7d2c0a202020202020202020206f6e55703a2066756e6374696f6e20287429207b7d2c0a20202020202020207d293b0a202020202020202077752e70726f746f74797065203d204f626a6563742e6372656174652867752e70726f746f74797065293b0a202020202020202062752877752e70726f746f747970652c207b0a20202020202020202020676574436c6173733a2066756e6374696f6e202829207b0a20202020202020202020202072657475726e20276a73373830305f5f636f6e74726f6c732d737769746368273b0a202020202020202020207d2c0a20202020202020202020646f437265617465456c656d656e743a2066756e6374696f6e202829207b0a2020202020202020202020207661722074203d20646f63756d656e742e637265617465456c656d656e7428276c6162656c27293b0a202020202020202020202020742e73657441747472696275746528277469746c65272c20746869732e7469746c65293b0a2020202020202020202020207661722065203d20646f63756d656e742e637265617465456c656d656e742827696e70757427293b0a202020202020202020202020746869732e6362203d20653b4d08020a202020202020202020202020652e736574417474726962757465282774797065272c2027636865636b626f7827293b0a202020202020202020202020766172206e203d20746869733b0a202020202020202020202020652e6f6e636c69636b203d2066756e6374696f6e20287429207b0a20202020202020202020202020206e2e6f6e436c69636b2874293b0a2020202020202020202020207d3b0a202020202020202020202020742e617070656e644368696c642865293b0a2020202020202020202020207661722072203d20646f63756d656e742e637265617465456c656d656e7428277370616e27293b0a202020202020202020202020722e636c6173734e616d65203d20746869732e676574436c6173732829202b20272d736c69646572273b0a202020202020202020202020742e617070656e644368696c642872293b0a20202020202020202020202072657475726e20743b0a202020202020202020207d2c0a2020202020202020202073657456616c7565287429207b0a202020202020202020202020746869732e63622e636865636b6564203d20743b0a202020202020202020207d2c0a2020202020202020202067657456616c75652829207b0a20202020202020202020202072657475726e20746869732e63622e636865636b65643b0a202020202020202020207d2c0a202020202020202020206f6e436c69636b3a204d080266756e6374696f6e20287429207b7d2c0a20202020202020207d293b0a2020202020202020766172206d75203d0a2020202020202020202027646174613a696d6167652f7376672b786d6c3b6261736536342c5044393462577767646d567963326c76626a30694d5334774969426c626d4e765a476c755a7a3069565652474c546769507a344e436a77685245394456466c515253427a646d63675546564354456c44494349744c7939584d304d764c30525552434254566b63674d5334784c79394654694967496d6830644841364c79393364336375647a4d7562334a6e4c3064795958426f61574e7a4c314e57527938784c6a4576524652454c334e325a7a45784c6d52305a43492b44516f3863335a6e494868746247357a50534a6f644852774f693876643364334c6e637a4c6d39795a7938794d4441774c334e325a79496765473173626e4d3665477870626d7339496d6830644841364c79393364336375647a4d7562334a6e4c7a45354f546b7665477870626d736949485a6c636e4e7062323439496a45754d534967494864705a48526f505349794e434967614756705a326830505349794e434967646d6c6c64304a76654430694d4341774944493049444930496a344e43694167494478775958526f49475a706247773949694e47526b5a47526b596949475139496b30784e5334354c4445344c6a5131517a45334c6a49314c4d08024445344c6a5131494445344c6a4d314c4445334c6a4d31494445344c6a4d314c444532517a45344c6a4d314c4445304c6a5931494445334c6a49314c44457a4c6a5531494445314c6a6b734d544d754e5456444d5451754e5451734d544d754e5455674d544d754e4455734d5451754e6a55674d544d754e4455734d545a444d544d754e4455734d5463754d7a55674d5451754e5451734d5467754e4455674d5455754f5377784f4334304e5530794d5334784c4445324c6a5934544449794c6a55344c4445334c6a6730517a49794c6a63784c4445334c6a6b31494449794c6a63314c4445344c6a457a494449794c6a59324c4445344c6a4935544449784c6a49324c4449774c6a6378517a49784c6a45334c4449774c6a6732494449784c4449774c6a6b79494449774c6a677a4c4449774c6a6732544445354c6a41354c4449774c6a4532517a45344c6a637a4c4449774c6a5130494445344c6a4d7a4c4449774c6a5933494445334c6a6b784c4449774c6a6731544445334c6a59304c4449794c6a64444d5463754e6a49734d6a49754f4463674d5463754e4463734d6a4d674d5463754d7977794d3067784e433431517a45304c6a4d794c44497a494445304c6a45344c4449794c6a6733494445304c6a45314c4449794c6a644d4d544d754f446b734d6a41754f4456444d544d754e4459734d6a41754e6a63674d544d754d4463734d4d08026a41754e4451674d5449754e7a45734d6a41754d545a4d4d5441754f5459734d6a41754f445a444d5441754f4445734d6a41754f5449674d5441754e6a49734d6a41754f4459674d5441754e5451734d6a41754e7a464d4f5334784e4377784f4334794f554d354c6a41314c4445344c6a457a49446b754d446b734d5463754f5455674f5334794d6977784e7934344e4577784d4334334c4445324c6a5934544445774c6a59314c444532544445774c6a63734d5455754d7a464d4f5334794d6977784e4334784e6b4d354c6a41354c4445304c6a413149446b754d4455734d544d754f4459674f5334784e4377784d7934334d5577784d4334314e4377784d5334794f554d784d4334324d6977784d5334784d7941784d4334344d5377784d5334774e7941784d4334354e6977784d5334784d3077784d6934334d5377784d5334344e454d784d7934774e7977784d5334314e6941784d7934304e6977784d53347a4d6941784d7934344f5377784d5334784e5577784e4334784e5377354c6a4935517a45304c6a45344c446b754d544d674d5451754d7a49734f5341784e4334314c446c494d5463754d304d784e7934304e797735494445334c6a59794c446b754d544d674d5463754e6a51734f5334794f5577784e7934354d5377784d5334784e554d784f43347a4d7977784d53347a4d6941784f4334334d7977784d5334314e6941784f4d08025334774f5377784d5334344e4577794d4334344d7977784d5334784d304d794d5377784d5334774e7941794d5334784e7977784d5334784d7941794d5334794e6977784d5334794f5577794d6934324e6977784d7934334d554d794d6934334e5377784d7934344e6941794d6934334d5377784e4334774e5341794d6934314f4377784e4334784e6b77794d5334784c4445314c6a4d78544449784c6a45314c444532544449784c6a45734d5459754e6a684e4e6934324f5377344c6a4133517a63754e5459734f4334774e7941344c6a49324c4463754d7a63674f4334794e6977324c6a56444f4334794e6977314c6a597a494463754e5459734e4334354d6941324c6a59354c4451754f544a424d5334314f4377784c6a5534494441674d437777494455754d5445734e693431517a55754d5445734e79347a4e7941314c6a67794c4467754d4463674e6934324f5377344c6a4133545445774c6a417a4c4459754f54524d4d5445734e7934324f454d784d5334774e7977334c6a6331494445784c6a41354c4463754f4463674d5445754d444d734e7934354e3077784d4334784d7977354c6a557a517a45774c6a41344c446b754e6a4d674f5334354e6977354c6a593349446b754f4459734f5334324d3077344c6a63304c446b754d54684d4f4377354c6a5979544463754f4445734d5441754f4446444e7934334f5377784d4334354d4d08026941334c6a63734d5445674e7934314f5377784d5567314c6a6335517a55754e6a63734d5445674e5334314f4377784d4334354d6941314c6a55324c4445774c6a6778544455754e4377354c6a5979544451754e6a51734f5334784f45777a4c6a55734f5334324d304d7a4c6a51784c446b754e6a63674d79347a4c446b754e6a4d674d7934794e4377354c6a557a544449754d7a51734e7934354e304d794c6a49344c4463754f4463674d69347a4d5377334c6a6331494449754d7a6b734e7934324f45777a4c6a4d304c4459754f54524d4d79347a4d5377324c6a564d4d79347a4e4377324c6a4132544449754d7a6b734e53347a4d6b4d794c6a4d784c4455754d6a55674d6934794f4377314c6a457a494449754d7a51734e5334774d30777a4c6a49304c444d754e4464444d79347a4c444d754d7a63674d7934304d53777a4c6a4d7a49444d754e53777a4c6a4d33544451754e6a4d734d7934344d6b77314c6a51734d79347a4f4577314c6a55324c4449754d546c444e5334314f4377794c6a4134494455754e6a63734d6941314c6a63354c444a494e7934314f554d334c6a63734d6941334c6a63354c4449754d4467674e7934344d5377794c6a4535544467734d79347a4f4577344c6a63304c444d754f444a4d4f5334344e69777a4c6a4d33517a6b754f5459734d79347a4d7941784d4334774f43777a4c6a4d33494445774c4d08026a457a4c444d754e44644d4d5445754d444d734e5334774d304d784d5334774f5377314c6a457a494445784c6a41334c4455754d6a55674d5445734e53347a4d6b77784d4334774d7977324c6a4132544445774c6a41324c4459754e5577784d4334774d7977324c6a6b30576949674c7a344e436a777663335a6e50673d3d273b0a2020202020202020766172204d75203d0a2020202020202020202027646174613a696d6167652f7376672b786d6c3b6261736536342c5044393462577767646d567963326c76626a30694d5334774969426c626d4e765a476c755a7a3069565652474c546769507a344e436a77685245394456466c515253427a646d63675546564354456c44494349744c7939584d304d764c30525552434254566b63674d5334784c79394654694967496d6830644841364c79393364336375647a4d7562334a6e4c3064795958426f61574e7a4c314e57527938784c6a4576524652454c334e325a7a45784c6d52305a43492b44516f3863335a6e494868746247357a50534a6f644852774f693876643364334c6e637a4c6d39795a7938794d4441774c334e325a79496765473173626e4d3665477870626d7339496d6830644841364c79393364336375647a4d7562334a6e4c7a45354f546b7665477870626d736949485a6c636e4e7062323439496a45754d534967494864705a48526f505349794e434967614756704d08025a326830505349794e434967646d6c6c64304a76654430694d4341774944493049444930496a344e43694167494478775958526f49475a706247773949694e6d5a6d5a6d5a6d596949475139496b30784d5377355344457a566a64494d54464e4d5449734d6a42444e7934314f5377794d4341304c4445324c6a5178494451734d544a444e4377334c6a5535494463754e546b734e4341784d697730517a45324c6a51784c4451674d6a41734e7934314f5341794d4377784d6b4d794d4377784e6934304d5341784e6934304d5377794d4341784d6977794d4530784d697779515445774c444577494441674d437777494449734d544a424d5441734d5441674d4341774c4441674d5449734d6a4a424d5441734d5441674d4341774c4441674d6a49734d544a424d5441734d5441674d4341774c4441674d5449734d6b30784d5377784e3067784d3159784d5567784d5659784e316f694943382b44516f384c334e325a7a343d273b0a2020202020202020766172207675203d0a2020202020202020202027646174613a696d6167652f7376672b786d6c3b6261736536342c5044393462577767646d567963326c76626a30694d5334774969426c626d4e765a476c755a7a3069565652474c546769507a344e436a77685245394456466c515253427a646d63675546564354456c44494349744c7939584d304d764c30525552434254566b634d0802674d5334784c79394654694967496d6830644841364c79393364336375647a4d7562334a6e4c3064795958426f61574e7a4c314e57527938784c6a4576524652454c334e325a7a45784c6d52305a43492b44516f3863335a6e494868746247357a50534a6f644852774f693876643364334c6e637a4c6d39795a7938794d4441774c334e325a79496765473173626e4d3665477870626d7339496d6830644841364c79393364336375647a4d7562334a6e4c7a45354f546b7665477870626d736949485a6c636e4e7062323439496a45754d534967494864705a48526f505349794e434967614756705a326830505349794e434967646d6c6c64304a76654430694d4341774944493049444930496a344e43694167494478775958526f49475a706247773949694e6d5a6d5a6d5a6d596949475139496b30794d437779534452574e4577354c6a67784c4467754d7a5a444e6934784e4377354c6a5533494451754d5451734d544d754e544d674e53347a4e5377784e793479517a59754e5459734d6a41754f4463674d5441754e5377794d6934344e7941784e4334784f5377794d5334324e6b4d784e7934344e6977794d4334304e5341784f5334344e6977784e693431494445344c6a59314c4445794c6a6779517a45334c6a6b314c4445774c6a6378494445324c6a4d734f5334774e5341784e4334784f5377344c6a4d32544449774c44524d0802574d6b30784e4334354e4377784f533431544445794c4445334c6a633454446b754d4459734d546b754e5577354c6a67304c4445324c6a4533544463754d6a55734d544d754f544e4d4d5441754e6a59734d544d754e6a524d4d5449734d5441754e5577784d79347a4e4377784d7934324e4577784e6934334e5377784d7934354d3077784e4334784e6977784e6934784e3077784e4334354e4377784f533431576949674c7a344e436a777663335a6e50673d3d273b0a2020202020202020766172204c75203d2058663b0a2020202020202020766172204975203d2067753b0a2020202020202020766172204375203d2079753b0a2020202020202020766172204575203d2077753b0a202020202020202053752e70726f746f74797065203d204f626a6563742e6372656174652849752e70726f746f74797065293b0a20202020202020204c752853752e70726f746f747970652c207b0a20202020202020202020676574436c6173733a2066756e6374696f6e202829207b0a20202020202020202020202072657475726e20276a73373830305f5f636f6e74726f6c732d67726f7570273b0a202020202020202020207d2c0a20202020202020202020646f437265617465456c656d656e743a2066756e6374696f6e202829207b0a2020202020202020202020207661722074203d20646f63756d656e742e637265617465456c656d654d08026e74282764697627293b0a202020202020202020202020666f7220287661722065203d20303b2065203c20746869732e6368696c6472656e2e6c656e6774683b20652b2b29207b0a2020202020202020202020202020742e617070656e644368696c6428746869732e6368696c6472656e5b655d2e637265617465456c656d656e742829293b0a2020202020202020202020207d0a20202020202020202020202072657475726e20743b0a202020202020202020207d2c0a202020202020202020206164644368696c643a2066756e6374696f6e20287429207b0a202020202020202020202020746869732e6368696c6472656e2e707573682874293b0a202020202020202020207d2c0a202020202020202020206164644368696c644174496e6465783a2066756e6374696f6e2028742c206529207b0a202020202020202020202020746869732e6368696c6472656e2e73706c69636528742c20302c2065293b0a202020202020202020207d2c0a20202020202020207d293b0a202020202020202078752e70726f746f74797065203d204f626a6563742e6372656174652853752e70726f746f74797065293b0a20202020202020204c752878752e70726f746f747970652c207b0a20202020202020202020676574436c6173733a2066756e6374696f6e202829207b0a20202020202020202020202072657475726e20276a73373830305f4d08025f636f6e74726f6c732d67726f75702d7374617274273b0a202020202020202020207d2c0a20202020202020207d293b0a202020202020202044752e70726f746f74797065203d204f626a6563742e6372656174652853752e70726f746f74797065293b0a20202020202020204c752844752e70726f746f747970652c207b0a20202020202020202020676574436c6173733a2066756e6374696f6e202829207b0a20202020202020202020202072657475726e20276a73373830305f5f636f6e74726f6c732d67726f75702d656e64273b0a202020202020202020207d2c0a20202020202020207d293b0a20202020202020204e752e70726f746f74797065203d204f626a6563742e6372656174652849752e70726f746f74797065293b0a20202020202020204c75284e752e70726f746f747970652c207b0a20202020202020202020676574436c6173733a2066756e6374696f6e202829207b0a20202020202020202020202072657475726e20276a73373830305f5f636f6e74726f6c732d696d672d627574746f6e273b0a202020202020202020207d2c0a20202020202020202020646f437265617465456c656d656e743a2066756e6374696f6e202829207b0a2020202020202020202020207661722074203d20746869733b0a2020202020202020202020207661722065203d20646f63756d656e742e637265617465456c656d656e4d08027428276127293b0a202020202020202020202020746869732e616e63686f72203d20653b0a202020202020202020202020652e7365744174747269627574652827647261676761626c65272c202766616c736527293b0a202020202020202020202020652e7365744174747269627574652827726f6c65272c2027627574746f6e27293b0a202020202020202020202020652e7365744174747269627574652827746162696e646578272c20273027293b0a202020202020202020202020652e6f6e6b6579646f776e203d2066756e6374696f6e20286529207b0a2020202020202020202020202020766172206e203d20652e77686963683b0a2020202020202020202020202020696620286e203d3d3d203133207c7c206e203d3d3d20333229207b0a20202020202020202020202020202020742e6f6e436c69636b2865293b0a20202020202020202020202020207d0a2020202020202020202020207d3b0a202020202020202020202020652e6f6e6d6f757365646f776e203d2066756e6374696f6e20287429207b0a2020202020202020202020202020742e70726576656e7444656661756c7428293b0a2020202020202020202020207d3b0a202020202020202020202020652e6f6e636c69636b203d2066756e6374696f6e20286529207b0a2020202020202020202020202020742e6f6e436c69636b2865293b0a20202020202020204d0802202020207d3b0a202020202020202020202020766172206e203d20646f63756d656e742e637265617465456c656d656e742827696d6727293b0a202020202020202020202020746869732e696d67203d206e3b0a2020202020202020202020206e2e7365744174747269627574652827647261676761626c65272c202766616c736527293b0a2020202020202020202020206e2e7365744174747269627574652827737263272c20746869732e696d616765537263293b0a2020202020202020202020206e2e73657441747472696275746528277469746c65272c20746869732e7469746c65293b0a202020202020202020202020652e617070656e644368696c64286e293b0a20202020202020202020202072657475726e20653b0a202020202020202020207d2c0a202020202020202020206f6e436c69636b287429207b7d2c0a20202020202020207d293b0a20202020202020205f752e70726f746f74797065203d204f626a6563742e637265617465284e752e70726f746f74797065293b0a20202020202020204c75285f752e70726f746f747970652c207b0a20202020202020202020646f437265617465456c656d656e743a2066756e6374696f6e202829207b0a2020202020202020202020207661722074203d204e752e70726f746f747970652e646f437265617465456c656d656e742e63616c6c2874686973293b0a202020204d080220202020202020207661722065203d20746869733b0a202020202020202020202020746869732e616e63686f722e6f6e636c69636b203d2066756e6374696f6e20287429207b0a2020202020202020202020202020652e73657456616c75652821652e76616c7565293b0a2020202020202020202020202020652e6f6e436c69636b2874293b0a2020202020202020202020207d3b0a20202020202020202020202072657475726e20743b0a202020202020202020207d2c0a2020202020202020202073657456616c75653a2066756e6374696f6e20287429207b0a202020202020202020202020746869732e76616c7565203d20743b0a202020202020202020202020746869732e696d672e737263203d20746869732e76616c7565203f20746869732e6f6e496d616765537263203a20746869732e696d6167655372633b0a202020202020202020202020746869732e696d672e7469746c65203d20746869732e76616c7565203f20746869732e6f6e5469746c65203a20746869732e7469746c653b0a202020202020202020207d2c0a2020202020202020202067657456616c75653a2066756e6374696f6e202829207b0a20202020202020202020202072657475726e20746869732e76616c75653b0a202020202020202020207d2c0a20202020202020207d293b0a2020202020202020766172205475203d206e657720787528293b0a4d08022020202020202020766172206b75203d206e6577205f75280a20202020202020202020275061757365272c0a2020202020202020202027646174613a696d6167652f7376672b786d6c3b6261736536342c5044393462577767646d567963326c76626a30694d5334774969426c626d4e765a476c755a7a3069565652474c546769507a344e436a77685245394456466c515253427a646d63675546564354456c44494349744c7939584d304d764c30525552434254566b63674d5334784c79394654694967496d6830644841364c79393364336375647a4d7562334a6e4c3064795958426f61574e7a4c314e57527938784c6a4576524652454c334e325a7a45784c6d52305a43492b44516f3863335a6e494868746247357a50534a6f644852774f693876643364334c6e637a4c6d39795a7938794d4441774c334e325a79496765473173626e4d3665477870626d7339496d6830644841364c79393364336375647a4d7562334a6e4c7a45354f546b7665477870626d736949485a6c636e4e7062323439496a45754d534967494864705a48526f505349794e434967614756705a326830505349794e434967646d6c6c64304a76654430694d4341774944493049444930496a344e43694167494478775958526f49475a706247773949694e47526b5a47526b596949475139496b30784e4377784f5567784f46593153444530545459734d546c4d0802494d5442574e556732566a4535576949674c7a344e436a777663335a6e50673d3d272c0a2020202020202020202027526573756d65272c0a2020202020202020202027646174613a696d6167652f7376672b786d6c3b6261736536342c5044393462577767646d567963326c76626a30694d5334774969426c626d4e765a476c755a7a3069565652474c546769507a344e436a77685245394456466c515253427a646d63675546564354456c44494349744c7939584d304d764c30525552434254566b63674d5334784c79394654694967496d6830644841364c79393364336375647a4d7562334a6e4c3064795958426f61574e7a4c314e57527938784c6a4576524652454c334e325a7a45784c6d52305a43492b44516f3863335a6e494868746247357a50534a6f644852774f693876643364334c6e637a4c6d39795a7938794d4441774c334e325a79496765473173626e4d3665477870626d7339496d6830644841364c79393364336375647a4d7562334a6e4c7a45354f546b7665477870626d736949485a6c636e4e7062323439496a45754d534967494864705a48526f505349794e434967614756705a326830505349794e434967646d6c6c64304a76654430694d4341774944493049444930496a344e43694167494478775958526f49475a706247773949694e6d5a6d5a6d5a6d596949475139496b30344c4455754d5452574d546b4d0802754d54524d4d546b734d5449754d54524d4f4377314c6a4530576949674c7a344e436a777663335a6e50673d3d270a2020202020202020293b0a20202020202020206b752e6f6e436c69636b203d2066756e6374696f6e202829207b0a202020202020202020207a6f28746869732e67657456616c75652829293b0a20202020202020207d3b0a202020202020202054752e6164644368696c64286b75293b0a2020202020202020766172204275203d206e6577205f75280a2020202020202020202027536f756e64204f6666272c0a2020202020202020202027646174613a696d6167652f7376672b786d6c3b6261736536342c5044393462577767646d567963326c76626a30694d5334774969426c626d4e765a476c755a7a3069565652474c546769507a344e436a77685245394456466c515253427a646d63675546564354456c44494349744c7939584d304d764c30525552434254566b63674d5334784c79394654694967496d6830644841364c79393364336375647a4d7562334a6e4c3064795958426f61574e7a4c314e57527938784c6a4576524652454c334e325a7a45784c6d52305a43492b44516f3863335a6e494868746247357a50534a6f644852774f693876643364334c6e637a4c6d39795a7938794d4441774c334e325a79496765473173626e4d3665477870626d7339496d6830644841364c79393364336375647a4d4d08027562334a6e4c7a45354f546b7665477870626d736949485a6c636e4e7062323439496a45754d534967494864705a48526f505349794e434967614756705a326830505349794e434967646d6c6c64304a76654430694d4341774944493049444930496a344e43694167494478775958526f49475a706247773949694e47526b5a47526b596949475139496b30784e43777a4c6a497a566a55754d6a6c444d5459754f446b734e6934784e5341784f5377344c6a677a494445354c444579517a45354c4445314c6a4533494445324c6a67354c4445334c6a6730494445304c4445344c6a64574d6a41754e7a64444d5467734d546b754f4459674d6a45734d5459754d6a67674d6a45734d544a444d6a45734e7934334d6941784f4377304c6a4530494445304c444d754d6a4e4e4d5459754e5377784d6b4d784e6934314c4445774c6a497a494445314c6a55734f4334334d5341784e4377334c6a6b33566a4532517a45314c6a55734d5455754d6a6b674d5459754e5377784d7934334e6941784e6934314c44457954544d734f5659784e556733544445794c444977566a524d4e79773553444e61496941765067304b5043397a646d632b272c0a2020202020202020202027536f756e64204f6e272c0a2020202020202020202027646174613a696d6167652f7376672b786d6c3b6261736536342c5044393462577767646d567963326c76624d08026a30694d5334774969426c626d4e765a476c755a7a3069565652474c546769507a344e436a77685245394456466c515253427a646d63675546564354456c44494349744c7939584d304d764c30525552434254566b63674d5334784c79394654694967496d6830644841364c79393364336375647a4d7562334a6e4c3064795958426f61574e7a4c314e57527938784c6a4576524652454c334e325a7a45784c6d52305a43492b44516f3863335a6e494868746247357a50534a6f644852774f693876643364334c6e637a4c6d39795a7938794d4441774c334e325a79496765473173626e4d3665477870626d7339496d6830644841364c79393364336375647a4d7562334a6e4c7a45354f546b7665477870626d736949485a6c636e4e7062323439496a45754d534967494864705a48526f505349794e434967614756705a326830505349794e434967646d6c6c64304a76654430694d4341774944493049444930496a344e43694167494478775958526f49475a706247773949694e6d5a6d5a6d5a6d596949475139496b30784d69773054446b754f5445734e6934774f5577784d6977344c6a4534545451754d6a63734d30777a4c4451754d6a644d4e7934334d79773553444e574d5456494e3077784d6977794d4659784d7934794e3077784e6934794e5377784e7934314d304d784e5334314f4377784f4334774e4341784e4334344d4d08027977784f4334304e6941784e4377784f433433566a49774c6a6333517a45314c6a4d344c4449774c6a5131494445324c6a597a4c4445354c6a6779494445334c6a59344c4445344c6a6b32544445354c6a637a4c444978544449784c4445354c6a637a544445794c4445774c6a637a545445354c444579517a45354c4445794c6a6b30494445344c6a67734d544d754f4449674d5467754e4459734d5451754e6a524d4d546b754f5463734d5459754d5456444d6a41754e6a49734d5451754f5445674d6a45734d544d754e5341794d5377784d6b4d794d5377334c6a6379494445344c4451754d5451674d5451734d7934794d3159314c6a4935517a45324c6a67354c4459754d5455674d546b734f4334344d7941784f5377784d6b30784e6934314c444579517a45324c6a55734d5441754d6a4d674d5455754e5377344c6a6378494445304c4463754f5464574d5441754d54684d4d5459754e4455734d5449754e6a4e444d5459754e5377784d6934304d7941784e6934314c4445794c6a4978494445324c6a55734d544a61496941765067304b5043397a646d632b270a2020202020202020293b0a202020202020202042752e6f6e436c69636b203d2066756e6374696f6e202829207b0a202020202020202020207661722074203d20746869732e67657456616c756528293b0a202020202020202020207761203d20743b0a202020204d0802202020207d3b0a202020202020202054752e6164644368696c64284275293b0a2020202020202020766172206a75203d206e6577204e75280a202020202020202020202752657374617274272c0a2020202020202020202027646174613a696d6167652f7376672b786d6c3b6261736536342c5044393462577767646d567963326c76626a30694d5334774969426c626d4e765a476c755a7a3069565652474c546769507a344e436a77685245394456466c515253427a646d63675546564354456c44494349744c7939584d304d764c30525552434254566b63674d5334784c79394654694967496d6830644841364c79393364336375647a4d7562334a6e4c3064795958426f61574e7a4c314e57527938784c6a4576524652454c334e325a7a45784c6d52305a43492b44516f3863335a6e494868746247357a50534a6f644852774f693876643364334c6e637a4c6d39795a7938794d4441774c334e325a79496765473173626e4d3665477870626d7339496d6830644841364c79393364336375647a4d7562334a6e4c7a45354f546b7665477870626d736949485a6c636e4e7062323439496a45754d534967494864705a48526f505349794e434967614756705a326830505349794e434967646d6c6c64304a76654430694d4341774944493049444930496a344e43694167494478775958526f49475a706247773949694e47526b5a47524d08026b596949475139496b30784d697730517a45304c6a45734e4341784e6934784c4451754f4341784e7934324c4459754d304d794d4334334c446b754e4341794d4334334c4445304c6a55674d5463754e6977784e793432517a45314c6a67734d546b754e5341784d79347a4c4449774c6a49674d5441754f5377784f533435544445784c6a51734d5463754f554d784d7934784c4445344c6a45674d5451754f5377784e793431494445324c6a49734d5459754d6b4d784f4334314c44457a4c6a6b674d5467754e5377784d433478494445324c6a49734e793433517a45314c6a45734e6934324944457a4c6a55734e6941784d697732566a45774c6a5a4d4e7977314c6a5a4d4d5449734d433432566a524e4e69347a4c4445334c6a5a444d7934334c44453149444d754d7977784d5341314c6a45734e793435544459754e6977354c6a52444e5334314c4445784c6a59674e5334354c4445304c6a51674e7934344c4445324c6a4a444f43347a4c4445324c6a63674f4334354c4445334c6a45674f5334324c4445334c6a524d4f5377784f533430517a67734d546b674e7934784c4445344c6a51674e69347a4c4445334c6a5a61496941765067304b5043397a646d632b270a2020202020202020293b0a20202020202020206a752e6f6e436c69636b203d2066756e6374696f6e202829207b0a20202020202020202020507428277265734d08027461727427293b0a20202020202020207d3b0a202020202020202054752e6164644368696c64286a75293b0a2020202020202020766172205275203d206e657720537528293b0a2020202020202020766172205075203d206e6577204375282753454c454354272c202753656c65637427293b0a202020202020202050752e6f6e446f776e203d2066756e6374696f6e202829207b0a2020202020202020202041752874727565293b0a20202020202020207d3b0a202020202020202050752e6f6e5570203d2066756e6374696f6e202829207b0a2020202020202020202041752866616c7365293b0a20202020202020207d3b0a202020202020202052752e6164644368696c64285075293b0a2020202020202020766172204f75203d206e657720437528275245534554272c2027526573657427293b0a20202020202020204f752e6f6e446f776e203d2066756e6374696f6e202829207b0a2020202020202020202068752874727565293b0a20202020202020207d3b0a20202020202020204f752e6f6e5570203d2066756e6374696f6e202829207b0a2020202020202020202068752866616c7365293b0a20202020202020207d3b0a202020202020202052752e6164644368696c64284f75293b0a2020202020202020766172204675203d206e657720457528274c65667420646966666963756c74792073776974636827293b0a20204d080220202020202046752e6f6e436c69636b203d2066756e6374696f6e202829207b0a2020202020202020202054662821746869732e67657456616c75652829293b0a20202020202020207d3b0a202020202020202052752e6164644368696c64284675293b0a2020202020202020766172204775203d206e65772045752827526967687420646966666963756c74792073776974636827293b0a202020202020202047752e6f6e436c69636b203d2066756e6374696f6e202829207b0a202020202020202020206b662821746869732e67657456616c75652829293b0a20202020202020207d3b0a202020202020202052752e6164644368696c64284775293b0a2020202020202020766172207a75203d206e657720447528293b0a2020202020202020766172205775203d206e6577204e7528274c6561646572626f617264272c207675293b0a202020202020202057752e6f6e436c69636b203d2066756e6374696f6e202829207b0a202020202020202020205074282773686f774572726f72272c20274e6f7420696d706c656d656e7465642e27293b0a20202020202020207d3b0a20202020202020207a752e6164644368696c64285775293b0a2020202020202020766172205575203d206e6577204e75282748656c70202f20496e666f272c204d75293b0a202020202020202055752e6f6e436c69636b203d2066756e6374696f6e20284d080229207b0a202020202020202020205074282773686f774572726f72272c20274e6f7420696d706c656d656e7465642e27293b0a20202020202020207d3b0a20202020202020207a752e6164644368696c64285575293b0a2020202020202020766172205a75203d206e6577204e75282753657474696e6773272c206d75293b0a20202020202020205a752e6f6e436c69636b203d2066756e6374696f6e202829207b0a202020202020202020205074282773686f774572726f72272c20274e6f7420696d706c656d656e7465642e27293b0a20202020202020207d3b0a20202020202020207a752e6164644368696c64285a75293b0a2020202020202020766172205175203d206e6577205f75280a202020202020202020202746756c6c73637265656e272c0a2020202020202020202027646174613a696d6167652f7376672b786d6c3b6261736536342c5044393462577767646d567963326c76626a30694d5334774969426c626d4e765a476c755a7a3069565652474c546769507a344e436a77685245394456466c515253427a646d63675546564354456c44494349744c7939584d304d764c30525552434254566b63674d5334784c79394654694967496d6830644841364c79393364336375647a4d7562334a6e4c3064795958426f61574e7a4c314e57527938784c6a4576524652454c334e325a7a45784c6d52305a43492b44516f384d080263335a6e494868746247357a50534a6f644852774f693876643364334c6e637a4c6d39795a7938794d4441774c334e325a79496765473173626e4d3665477870626d7339496d6830644841364c79393364336375647a4d7562334a6e4c7a45354f546b7665477870626d736949485a6c636e4e7062323439496a45754d534967494864705a48526f505349794e434967614756705a326830505349794e434967646d6c6c64304a76654430694d4341774944493049444930496a344e43694167494478775958526f49475a706247773949694e47526b5a47526b596949475139496b30314c4456494d5442574e306733566a4577534456574e5530784e43773153444535566a457753444533566a64494d5452574e5530784e7977784e4567784f5659784f5567784e4659784e3067784e3159784e4530784d4377784e3159784f556731566a4530534464574d5464494d544261496941765067304b5043397a646d632b272c0a2020202020202020202027457869742046756c6c73637265656e272c0a2020202020202020202027646174613a696d6167652f7376672b786d6c3b6261736536342c5044393462577767646d567963326c76626a30694d5334774969426c626d4e765a476c755a7a3069565652474c546769507a344e436a77685245394456466c515253427a646d63675546564354456c44494349744c7939584d304d764c30524d08025552434254566b63674d5334784c79394654694967496d6830644841364c79393364336375647a4d7562334a6e4c3064795958426f61574e7a4c314e57527938784c6a4576524652454c334e325a7a45784c6d52305a43492b44516f3863335a6e494868746247357a50534a6f644852774f693876643364334c6e637a4c6d39795a7938794d4441774c334e325a79496765473173626e4d3665477870626d7339496d6830644841364c79393364336375647a4d7562334a6e4c7a45354f546b7665477870626d736949485a6c636e4e7062323439496a45754d534967494864705a48526f505349794e434967614756705a326830505349794e434967646d6c6c64304a76654430694d4341774944493049444930496a344e43694167494478775958526f49475a706247773949694e47526b5a47526b596949475139496b30784e4377784e4567784f5659784e6b67784e6c59784f5567784e4659784e4530314c44453053444577566a4535534468574d545a494e5659784e4530344c4456494d5442574d5442494e565934534468574e5530784f537734566a457753444530566a56494d545a574f4567784f566f694943382b44516f384c334e325a7a343d270a2020202020202020293b0a202020202020202051752e6f6e436c69636b203d2066756e6374696f6e202829207b0a20202020202020202020696620285973282929207b0a204d08022020202020202020202020567328293b0a202020202020202020207d20656c7365207b0a202020202020202020202020487328293b0a202020202020202020207d0a20202020202020207d3b0a20202020202020207a752e6164644368696c64285175293b0a20202020202020205274280a202020202020202020206e6577206a742827696e6974272c2066756e6374696f6e202829207b0a2020202020202020202020207661722074203d20646f63756d656e742e676574456c656d656e744279496428276a73373830305f5f636f6e74726f6c7327293b0a2020202020202020202020207661722065203d20646f63756d656e742e637265617465456c656d656e74282764697627293b0a202020202020202020202020652e636c6173734e616d65203d20276a73373830305f5f636f6e74726f6c732d636f6e7461696e6572273b0a202020202020202020202020742e617070656e644368696c642865293b0a202020202020202020202020652e617070656e644368696c642854752e637265617465456c656d656e742829293b0a202020202020202020202020652e617070656e644368696c642852752e637265617465456c656d656e742829293b0a202020202020202020202020652e617070656e644368696c64287a752e637265617465456c656d656e742829293b0a2020202020202020202020205274280a20202020202020204d08022020202020206e6577206a74282766756c6c73637265656e272c2066756e6374696f6e20287429207b0a2020202020202020202020202020202051752e73657456616c75652874293b0a20202020202020202020202020207d290a202020202020202020202020293b0a202020202020202020207d290a2020202020202020293b0a20202020202020205274280a202020202020202020206e6577206a7428276f6e4361727472696467654c6f61646564272c2066756e6374696f6e202829207b0a2020202020202020202020206b752e73657456616c75652866616c7365293b0a202020202020202020207d290a2020202020202020293b0a20202020202020205274280a202020202020202020206e6577206a7428276f6e4c656674446966664368616e676564272c2066756e6374696f6e20287429207b0a20202020202020202020202046752e73657456616c7565282174293b0a202020202020202020207d290a2020202020202020293b0a20202020202020205274280a202020202020202020206e6577206a7428276f6e5269676874446966664368616e676564272c2066756e6374696f6e20287429207b0a20202020202020202020202047752e73657456616c7565282174293b0a202020202020202020207d290a2020202020202020293b0a20202020202020206e2830293b0a20202020202020206e2831293b0a20202020204d080220202056752e70726f746f74797065203d207b0a20202020202020202020676574526f6d3a2066756e6374696f6e202829207b0a20202020202020202020202072657475726e206e756c6c3b0a202020202020202020207d2c0a2020202020202020202077726974653a2066756e6374696f6e2028742c206529207b7d2c0a202020202020202020206c6f61645372616d3a2066756e6374696f6e20287429207b0a20202020202020202020202074286e756c6c293b0a202020202020202020207d2c0a20202020202020207d3b0a2020202020202020766172204a75203d2066756e6374696f6e20287429207b0a202020202020202020207661722065203d204c6f2829202626202839362026206d6f5b36305d2920213d2036343b0a20202020202020202020416f2874293b0a20202020202020202020506f203d20303b0a202020202020202020204f6f203d20303b0a20202020202020202020466f203d20303b0a20202020202020202020476f203d20303b0a2020202020202020202069662028546f207c7c206b6f29207b0a202020202020202020202020756f28293b0a202020202020202020207d0a20202020202020202020666f7220285f6f203d20313b205f6f203c3d20446f3b205f6f2b2b29207b0a202020202020202020202020696620285f6f203d3d20676f2e746f7029207b0a20202020202020202020202020206d6f4d08025b34305d203d20303b0a2020202020202020202020207d20656c736520696620285f6f203d3d20676f2e626f74746f6d29207b0a20202020202020202020202020206d6f5b34305d203d203132383b0a2020202020202020202020207d0a202020202020202020202020766172206e203d2066616c73653b0a2020202020202020202020207661722072203d20303b0a2020202020202020202020204e6f20253d20496f3b0a202020202020202020202020666f7220286520262620526f28293b204e6f203c2032383b2029207b0a202020202020202020202020202072203d204d6f2829203c3c20323b0a20202020202020202020202020204e6f202b3d20723b0a2020202020202020202020202020696620286529207b0a20202020202020202020202020202020526f28293b0a20202020202020202020202020207d0a2020202020202020202020202020696620284369282929207b0a202020202020202020202020202020204e6f202b3d20323b0a20202020202020202020202020202020696620286529207b0a202020202020202020202020202020202020526f28293b0a202020202020202020202020202020207d0a20202020202020202020202020207d0a202020202020202020202020202069662028706f282929207b0a20202020202020202020202020202020626f2872203e3e3e2032293b0a20202020202020202020204d08022020207d0a2020202020202020202020202020696620286d6f5b33365d29207b0a202020202020202020202020202020204f6f2b2b3b0a202020202020202020202020202020206d6f5b33365d203d20303b0a202020202020202020202020202020206e203d20747275653b0a20202020202020202020202020202020627265616b3b0a20202020202020202020202020207d0a2020202020202020202020207d0a20202020202020202020202054742874727565293b0a202020202020202020202020696620282872203d202828796f285f6f29202b203329203e3e3e203229203c3c203229203e2034323829207b0a20202020202020202020202020206e203d20747275653b0a2020202020202020202020207d0a20202020202020202020202054742866616c7365293b0a2020202020202020202020204e6f202b3d20723b0a202020202020202020202020466f202b3d20723b0a20202020202020202020202069662028706f282929207b0a2020202020202020202020202020626f2872203e3e3e2032293b0a2020202020202020202020207d0a202020202020202020202020666f7220280a2020202020202020202020202020776f28292026260a202020202020202020202020202028216e2026260a202020202020202020202020202020204e6f203c20496f2026260a20202020202020202020202020202020282872203d204d4d08026f2829203c3c2032292c0a20202020202020202020202020202020706f282920262620626f2872203e3e3e2032292c0a20202020202020202020202020202020284e6f202b3d2072292c0a202020202020202020202020202020206d6f5b33365d20262620284f6f2b2b2c20286d6f5b33365d203d2030292c20286e203d20747275652929292c0a2020202020202020202020202020766f2829293b0a2020202020202020202020202020216e202626204e6f203c20496f3b0a0a20202020202020202020202029207b0a202020202020202020202020202072203d204d6f2829203c3c20323b0a20202020202020202020202020204e6f202b3d20723b0a2020202020202020202020202020696620286529207b0a20202020202020202020202020202020526f28293b0a20202020202020202020202020207d0a2020202020202020202020202020696620284369282929207b0a202020202020202020202020202020204e6f202b3d20323b0a20202020202020202020202020202020696620286529207b0a202020202020202020202020202020202020526f28293b0a202020202020202020202020202020207d0a20202020202020202020202020207d0a202020202020202020202020202069662028706f282929207b0a20202020202020202020202020202020626f2872203e3e3e2032293b0a20202020202020202020202020207d4d08020a2020202020202020202020202020696620286d6f5b33365d29207b0a202020202020202020202020202020204f6f2b2b3b0a202020202020202020202020202020206d6f5b33365d203d20303b0a202020202020202020202020202020206e203d20747275653b0a20202020202020202020202020202020627265616b3b0a20202020202020202020202020207d0a2020202020202020202020207d0a202020202020202020202020696620286e202626204e6f203c20496f29207b0a202020202020202020202020202069662028706f282929207b0a20202020202020202020202020202020626f2828496f202d204e6f29203e3e3e2032293b0a20202020202020202020202020207d0a20202020202020202020202020204e6f203d20496f3b0a2020202020202020202020207d0a202020202020202020202020476f202b3d204e6f3b0a202020202020202020202020696620286529207b0a2020202020202020202020202020526f28293b0a2020202020202020202020207d0a202020202020202020202020666f2832293b0a20202020202020202020202069662028546f207c7c206b6f29207b0a20202020202020202020202020206c6f2832293b0a2020202020202020202020207d0a20202020202020202020202069662028546f207c7c206b6f29207b0a2020202020202020202020202020686f28293b0a202020202020204d080220202020207d0a202020202020202020207d0a20202020202020202020696620282b2b786f203e3d20536f29207b0a202020202020202020202020786f203d20303b0a202020202020202020207d0a20202020202020207d3b0a2020202020202020766172205875203d2066756e6374696f6e202829207b0a2020202020202020202076617220743b0a2020202020202020202076617220653b0a20202020202020202020766172206e3b0a202020202020202020207661722072203d207961207c7c20646128293b0a202020202020202020207661722063203d206c6128293b0a202020202020202020207661722069203d20686128293b0a202020202020202020207661722061203d202866756e6374696f6e202829207b0a2020202020202020202020207661722074203d2067613b0a2020202020202020202020207661722065203d20693b0a202020202020202020202020766172206e203d2070613b0a2020202020202020202020207661722072203d202874202f206e29207c20303b0a2020202020202020202020207661722063203d20742025206e207c20303b0a202020202020202020202020696620286320213d20302026262063203e3d206529207b0a2020202020202020202020202020722b2b3b0a2020202020202020202020207d0a20202020202020202020202072657475726e20723b0a202020202020202020207d4d08022928293b0a202020202020202020202866756e6374696f6e2028742c20652c206e2c207229207b0a2020202020202020202020207661722063203d2067613b0a2020202020202020202020207661722069203d20303b0a2020202020202020202020207661722061203d20303b0a202020202020202020202020666f722028766172206f203d20287061202a20626129203c3c20313b2061203c20723b2029207b0a20202020202020202020202020206966202863203e3d206f29207b0a202020202020202020202020202020206e5b612b2b5d203d20745b695d202b202865203f20655b695d203a2030293b0a2020202020202020202020202020202063202d3d206f3b0a20202020202020202020202020207d20656c7365207b0a20202020202020202020202020202020692b2b3b0a2020202020202020202020202020202063202b3d2067613b0a20202020202020202020202020207d0a2020202020202020202020207d0a202020202020202020207d292866612c2072203f206f61203a206e756c6c2c206d612c2061293b0a20202020202020202020756128293b0a20202020202020202020736128293b0a20202020202020202020696620286329207b0a20202020202020202020202074203d204d613b0a20202020202020202020202065203d20613b0a2020202020202020202020206e203d20303b0a202020202020202020204d0802202063742e6d697853746572656f28742c20652c206e293b0a20202020202020202020202063742e436f756e742865293b0a202020202020202020207d0a202020202020202020206966202821776129207b0a2020202020202020202020204161286d612c2063203f204d61203a206e756c6c2c2061293b0a202020202020202020207d0a2020202020202020202072657475726e20747275653b0a20202020202020207d3b0a2020202020202020766172207175203d2066756e6374696f6e202829207b0a202020202020202020207661722074203d206e756c6c3b0a20202020202020202020696620286375282929207b0a20202020202020202020202069662028647529207b0a20202020202020202020202020206475203d2066616c73653b0a202020202020202020202020202075755b335d203d20747275653b0a2020202020202020202020207d20656c7365207b0a202020202020202020202020202075755b335d203d2021697528293b0a2020202020202020202020207d0a202020202020202020207d20656c7365207b0a2020202020202020202020206e7528293b0a20202020202020202020202074203d2072752830293b0a2020202020202020202020206c7528302c2075752c2074293b0a2020202020202020202020206c7528312c2075752c2074293b0a202020202020202020207d0a2020202020202020202075754d08025b31325d203d207375207c7c2052662829207c7c20287420262620742e697352657365742829293b0a2020202020202020202075755b31335d203d206675207c7c206a662829207c7c20287420262620742e697353656c6563742829293b0a2020202020202020202075755b31345d203d2050662829207c7c20287420262620742e697350617573652829293b0a2020202020202020202075755b31355d203d204f6628293b0a2020202020202020202075755b31365d203d20466628293b0a20202020202020207d3b0a2020202020202020766172204b75203d2045733b0a2020202020202020766172202475203d206e756c6c3b0a2020202020202020766172207464203d206e756c6c3b0a2020202020202020766172206564203d206e756c6c3b0a2020202020202020766172206e64203d206e756c6c3b0a2020202020202020766172207264203d206e756c6c3b0a2020202020202020766172206364203d206e756c6c3b0a2020202020202020766172206964203d2066616c73653b0a2020202020202020766172206164203d206e756c6c3b0a20202020202020206e657720567528293b0a2020202020202020766172206f64203d2066616c73653b0a2020202020202020766172207364203d20747275653b0a2020202020202020766172206664203d20303b0a2020202020202020766172207564203d20303b0a2020202020204d08022020766172206464203d20303b0a2020202020202020766172206c64203d206e6577204172726179283139293b0a2020202020202020766172206864203d2066616c73653b0a2020202020202020766172204164203d2066616c73653b0a20202020202020207661722079643b0a20202020202020207661722077643b0a2020202020202020766172206d64203d206e756c6c3b0a202020202020202069662028646f63756d656e742e68696464656e203d3d3d20766f6964203029207b0a2020202020202020202069662028646f63756d656e742e6d7348696464656e203d3d3d20766f6964203029207b0a20202020202020202020202069662028646f63756d656e742e7765626b697448696464656e20213d3d20766f6964203029207b0a20202020202020202020202020207964203d20277765626b697448696464656e273b0a20202020202020202020202020207764203d20277765626b69747669736962696c6974796368616e6765273b0a2020202020202020202020207d0a202020202020202020207d20656c7365207b0a2020202020202020202020207964203d20276d7348696464656e273b0a2020202020202020202020207764203d20276d737669736962696c6974796368616e6765273b0a202020202020202020207d0a20202020202020207d20656c7365207b0a202020202020202020207964203d202768696464654d08026e273b0a202020202020202020207764203d20277669736962696c6974796368616e6765273b0a20202020202020207d0a2020202020202020646f63756d656e742e6164644576656e744c697374656e6572280a2020202020202020202077642c0a2020202020202020202066756e6374696f6e202829207b0a20202020202020202020202069662028646f63756d656e745b79645d29207b0a2020202020202020202020202020636f6e736f6c652e6c6f67282770616765206973206e6f206c6f6e6765722076697369626c652e27293b0a20202020202020202020202020207a6f2874727565293b0a20202020202020202020202020204164203d20747275653b0a2020202020202020202020207d20656c7365207b0a2020202020202020202020202020636f6e736f6c652e6c6f672827706167652076697369626c652e27293b0a202020202020202020202020202069662028215975282929207b0a202020202020202020202020202020207a6f2866616c7365293b0a20202020202020202020202020207d0a2020202020202020202020207d0a202020202020202020207d2c0a2020202020202020202066616c73650a2020202020202020293b0a2020202020202020766172204264203d207b0a20202020202020202020383a20274261636b272c0a20202020202020202020393a2027546162272c0a20202020202020202020314d0802333a2027456e746572272c0a2020202020202020202031363a20275368696674272c0a2020202020202020202031373a20274374726c272c0a2020202020202020202031383a2027416c74272c0a2020202020202020202031393a2027427265616b272c0a2020202020202020202032373a2027457363272c0a2020202020202020202033323a20275370616365272c0a2020202020202020202033333a2027505570272c0a2020202020202020202033343a202750446f776e272c0a2020202020202020202033353a2027456e64272c0a2020202020202020202033363a2027486f6d65272c0a2020202020202020202033373a20274c656674272c0a2020202020202020202033383a20275570272c0a2020202020202020202033393a20275269676874272c0a2020202020202020202034303a2027446f776e272c0a2020202020202020202034353a2027496e73657274272c0a2020202020202020202034363a202744656c657465272c0a2020202020202020202034383a202730272c0a2020202020202020202034393a202731272c0a2020202020202020202035303a202732272c0a2020202020202020202035313a202733272c0a2020202020202020202035323a202734272c0a2020202020202020202035333a202735272c0a2020202020202020202035343a202736272c0a2020202020202020202035353a202737272c0a204d080220202020202020202035363a202738272c0a2020202020202020202035373a202739272c0a2020202020202020202036353a202741272c0a2020202020202020202036363a202742272c0a2020202020202020202036373a202743272c0a2020202020202020202036383a202744272c0a2020202020202020202036393a202745272c0a2020202020202020202037303a202746272c0a2020202020202020202037313a202747272c0a2020202020202020202037323a202748272c0a2020202020202020202037333a202749272c0a2020202020202020202037343a20274a272c0a2020202020202020202037353a20274b272c0a2020202020202020202037363a20274c272c0a2020202020202020202037373a20274d272c0a2020202020202020202037383a20274e272c0a2020202020202020202037393a20274f272c0a2020202020202020202038303a202750272c0a2020202020202020202038313a202751272c0a2020202020202020202038323a202752272c0a2020202020202020202038333a202753272c0a2020202020202020202038343a202754272c0a2020202020202020202038353a202755272c0a2020202020202020202038363a202756272c0a2020202020202020202038373a202757272c0a2020202020202020202038383a202758272c0a2020202020202020202038393a202759272c0a20202020202020204d0802202039303a20275a272c0a2020202020202020202039363a20274e756d2030272c0a2020202020202020202039373a20274e756d2031272c0a2020202020202020202039383a20274e756d2032272c0a2020202020202020202039393a20274e756d2033272c0a202020202020202020203130303a20274e756d2034272c0a202020202020202020203130313a20274e756d2035272c0a202020202020202020203130323a20274e756d2036272c0a202020202020202020203130333a20274e756d2037272c0a202020202020202020203130343a20274e756d2038272c0a202020202020202020203130353a20274e756d2039272c0a202020202020202020203130363a20274e756d202a272c0a202020202020202020203130373a20274e756d202b272c0a202020202020202020203130393a20274e756d202d272c0a202020202020202020203131303a20274e756d202e272c0a202020202020202020203131313a20274e756d202f272c0a202020202020202020203131323a20274631272c0a202020202020202020203131333a20274632272c0a202020202020202020203131343a20274633272c0a202020202020202020203131353a20274634272c0a202020202020202020203131363a20274635272c0a202020202020202020203131373a20274636272c0a202020202020202020203131383a20274637272c0a2020202020204d0802202020203131393a20274638272c0a202020202020202020203132303a20274639272c0a202020202020202020203132313a2027463130272c0a202020202020202020203132323a2027463131272c0a202020202020202020203132333a2027463132272c0a202020202020202020203134343a20274e4c6f636b272c0a202020202020202020203134353a2027534c6f636b272c0a202020202020202020203138363a20273b272c0a202020202020202020203138373a20273d272c0a202020202020202020203138383a20272c272c0a202020202020202020203138393a20272d272c0a202020202020202020203139303a20272e272c0a202020202020202020203139313a20272f272c0a202020202020202020203139323a202760272c0a202020202020202020203231393a20275b272c0a202020202020202020203232303a20275c5c272c0a202020202020202020203232313a20275d272c0a202020202020202020203232323a202227222c0a20202020202020207d3b0a20202020202020206e2e6428652c20274d61696e272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e206c3b0a20202020202020207d293b0a20202020202020206e2e6428652c2027436172747269646765272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e20693b0a202020202020204d0802207d293b0a20202020202020206e2e6428652c2027436f6e74726f6c73426172272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e20643b0a20202020202020207d293b0a20202020202020206e2e6428652c20275574696c272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e20663b0a20202020202020207d293b0a20202020202020206e2e6428652c20274576656e7473272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e20723b0a20202020202020207d293b0a20202020202020206e2e6428652c20274b6579626f617264272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e20733b0a20202020202020207d293b0a20202020202020206e2e6428652c20274b657973272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e20683b0a20202020202020207d293b0a20202020202020206e2e6428652c202750616473272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e20753b0a20202020202020207d293b0a20202020202020206e2e6428652c20274d656d6f7279272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e20633b0a20202020202020207d293b0a20202020202020206e2e6428652c2027564d08026964656f272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e206f3b0a20202020202020207d293b0a20202020202020206e2e6428652c2027526567696f6e272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e20613b0a20202020202020207d293b0a20202020202020206e2e6428652c202750726f53797374656d272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e20613b0a20202020202020207d293b0a20202020202020206e2e6428652c20276d6435272c2066756e6374696f6e202829207b0a2020202020202020202072657475726e20616e3b0a20202020202020207d293b0a2020202020207d2c0a202020205d3b0a202020207661722065203d207b7d3b0a202020206e2e6d203d20743b0a202020206e2e63203d20653b0a202020206e2e64203d2066756e6374696f6e2028742c20652c207229207b0a20202020202069662028216e2e6f28742c20652929207b0a20202020202020204f626a6563742e646566696e6550726f706572747928742c20652c207b20656e756d657261626c653a20747275652c206765743a2072207d293b0a2020202020207d0a202020207d3b0a202020206e2e72203d2066756e6374696f6e20287429207b0a20202020202069662028747970656f662053796d626f6c20213d2027756e6465664d0802696e6564272026262053796d626f6c2e746f537472696e6754616729207b0a20202020202020204f626a6563742e646566696e6550726f706572747928742c2053796d626f6c2e746f537472696e675461672c207b2076616c75653a20274d6f64756c6527207d293b0a2020202020207d0a2020202020204f626a6563742e646566696e6550726f706572747928742c20275f5f65734d6f64756c65272c207b2076616c75653a2074727565207d293b0a202020207d3b0a202020206e2e74203d2066756e6374696f6e2028742c206529207b0a20202020202069662028312026206529207b0a202020202020202074203d206e2874293b0a2020202020207d0a20202020202069662028382026206529207b0a202020202020202072657475726e20743b0a2020202020207d0a20202020202069662028342026206520262620747970656f662074203d3d20276f626a65637427202626207420262620742e5f5f65734d6f64756c6529207b0a202020202020202072657475726e20743b0a2020202020207d0a2020202020207661722072203d204f626a6563742e637265617465286e756c6c293b0a2020202020206e2e722872293b0a2020202020204f626a6563742e646566696e6550726f706572747928722c202764656661756c74272c207b20656e756d657261626c653a20747275652c2076616c75653a2074207d293b0a202020204d0802202069662028322026206520262620747970656f66207420213d2027737472696e672729207b0a2020202020202020666f722028766172206320696e207429207b0a202020202020202020206e2e64280a202020202020202020202020722c0a202020202020202020202020632c0a20202020202020202020202066756e6374696f6e20286529207b0a202020202020202020202020202072657475726e20745b655d3b0a2020202020202020202020207d2e62696e64286e756c6c2c2063290a20202020202020202020293b0a20202020202020207d0a2020202020207d0a20202020202072657475726e20723b0a202020207d3b0a202020206e2e6e203d2066756e6374696f6e20287429207b0a2020202020207661722065203d0a20202020202020207420262620742e5f5f65734d6f64756c650a202020202020202020203f2066756e6374696f6e202829207b0a202020202020202020202020202072657475726e20742e64656661756c743b0a2020202020202020202020207d0a202020202020202020203a2066756e6374696f6e202829207b0a202020202020202020202020202072657475726e20743b0a2020202020202020202020207d3b0a2020202020206e2e6428652c202761272c2065293b0a20202020202072657475726e20653b0a202020207d3b0a202020206e2e6f203d2066756e6374696f6e2028742c206529204d8e017b0a20202020202072657475726e204f626a6563742e70726f746f747970652e6861734f776e50726f70657274792e63616c6c28742c2065293b0a202020207d3b0a202020206e2e70203d2027273b0a2020202072657475726e206e28286e2e73203d203529293b0a20207d3b0a202069662028747970656f66206578706f727473203d3d20276f626a6563742720262620747970656f66206d6f64756c65203d3d20276f626a6563742729207b0a202020206d6f64756c652e6578706f727473203d206528293b0a20207d20656c73652069662028747970656f6620646566696e65203d3d202766756e6374696f6e2720262620646566696e652e616d6429207b0a20202020646566696e6528276a7337383030272c205b5d2c2065293b0a20207d20656c73652069662028747970656f66206578706f727473203d3d20276f626a6563742729207b0a202020206578706f7274732e6a7337383030203d206528293b0a20207d20656c7365207b0a20202020742e6a7337383030203d206528293b0a20207d0a7d2928293b0a68 #2utf8�eŢ/w6�l�
�
}��HM�ܙ+}���s�eŢ/w6�l�
�
}��HM�ܙ+}���sascii@eE"/w6Clo
}syHM\+}j_Hs@eE"/w6Clo
}syHM\+}j_Hshexc065c5a22f7736c30c6c08ef0a8e0d7df313f9480c4d88dc992b7dea94dfc8731ac065c5a22f7736c30c6c08ef0a8e0d7df313f9480c4d88dc992b7dea94dfc8731a |
|---|