Transaction

bbaced3b0e8c5416335acc28f45ebde09bf55ebc8a523e2d4f0e5c8005ddb901

Summary

Block
125,239(1331k)
Date / Time
2024-01-14(2.1y ago)
Fee Rate(sat/vB)
1,000
Total Fee
0.89146000BTC

Technical Details

Version
1
Size(vB)
89,146(356,302)
Raw Data(hex)
010000…00000
Weight(wu)
356,584

1 Input, 1 Output

Input Scripts

Input
0
witness
#0
utf8����J��+L ���o�Ʉ�{�/� ?�mV�jP>&1tT�͒ *o��� �����|������J��+L ���o�Ʉ�{�/� ?�mV�jP>&1tT�͒ *o��� �����|��
#1
utf8 eŢ/w6� l� � }��H M�ܙ+}���s�cordtext/javascriptM(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� � }��H M�ܙ+}���s�cordtext/javascriptM(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
#2
utf8�eŢ/w6� l� � }��H M�ܙ+}���s�eŢ/w6� l� � }��H M�ܙ+}���s

Output Scripts

Script Pub Key
0
hex
hexa1d23715519564f1e65c28e57609fa0bb354f28bc7e9cd9b7622216287f3253da1d23715519564f1e65c28e57609fa0bb354f28bc7e9cd9b7622216287f3253d
This transaction is very large. Displaying it's data here may cause problems. Instead, see it's raw data via the internal API:
bbaced3b0e8c5416335acc28f45ebde09bf55ebc8a523e2d4f0e5c8005ddb901