Added a few PDP-10 byte pointer fixes, along with the ability to pass MACRO-10 text directly into the MACRO-10 assembler (use the Debugger's "as" command)

This commit is contained in:
Jeff 2017-04-04 10:42:41 -07:00 committed by Jeff Parsons
commit d28d1ee940
10 changed files with 481 additions and 375 deletions

View file

@ -7,7 +7,7 @@ machines:
type: pdp10
config: /devices/pdp10/machine/ka10/test/debugger/machine.xml
debugger: true
commands: a dakam.mac
commands: a dakam.mac;g 033352
---
PDP-10 KA10 Basic Instruction Diagnostic #13

View file

@ -257,7 +257,16 @@ PDP10.opFSC = function(op, ac)
*
* From the DEC PDP-10 System Reference Manual (May 1968), p. 2-16:
*
* Increment the byte pointer in location E as explained [below].
* Increment the byte pointer in location E as explained [below]. The pointer has the format:
*
* 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 3 3 3 3 3 3
* 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5
* P P P P P P S S S S S S - I X X X X Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y
*
* where S is the size of the byte as a number of bits, and P is its position as the number of bits
* remaining at the right of the byte in the word (eg if P is 3 the rightmost bit of the byte is bit 32
* of the word). The rest of the pointer is interpreted in the same way as in an instruction: I, X and Y
* are used to calculate the address of the location that is the source or destination of the byte.
*
* To facilitate processing a series of bytes, several of the byte instructions increment the
* pointer, ie, modify it so that it points to the next byte position in a set of memory locations.
@ -277,9 +286,6 @@ PDP10.opFSC = function(op, ac)
* a byte of size 36 - P is loaded from position P, or the right 36 - P bits of the byte are deposited
* in position P.
*
* NOTE: Until I can conduct real-world testing, I'm assuming when they say "100 - S", DEC really meant "64 - S",
* which is 100 [base 8], which makes much more sense, since P is limited to a range of 00-77 [base 8].
*
* @this {CPUStatePDP10}
* @param {number} op
* @param {number} ac
@ -294,7 +300,7 @@ PDP10.opIBP = function(op, ac)
if (p < 0) {
inc++;
p = 36 - s;
if (p < 0) p = 64 - s; // see SPECIAL CONSIDERATIONS and NOTE above
if (p < 0) p = 100 - s; // see SPECIAL CONSIDERATIONS and NOTE above
}
/*
* Since the documentation above makes clear that the effect of the increment (of w) extends past the Y
@ -378,7 +384,7 @@ PDP10.opLDB = function(op, ac)
}
var p = (this.regBP / PDP10.OPCODE.P_SCALE) & PDP10.OPCODE.P_MASK;
var s = (this.regBP >> PDP10.OPCODE.S_SHIFT) & PDP10.OPCODE.S_MASK;
if (p + s <= 32) {
if (p + s < 32) {
/*
* WARNING: When using JavaScript's 32-bit operators with values that could set bit 31 and produce a
* negative value, it's critical to perform a final right-shift of 0, ensuring that the final result is
@ -389,7 +395,7 @@ PDP10.opLDB = function(op, ac)
/*
* Regarding the SPECIAL CONSIDERATIONS above, even if the P ("shift") and/or S ("mask") values are
* over-large, that should be fine, because nothing but additional zero bits will be included (provided
* our memory is working properly and didn't give us more than 36 bits).
* our memory is working properly and didn't give us more than 36 bits of unsigned data).
*/
w = Math.trunc(w / Math.pow(2, p)) % Math.pow(2, s);
}

View file

@ -910,7 +910,7 @@ class CPUStatePDP10 extends CPUPDP10 {
* non-DEBUGGER builds.
*/
if (DEBUGGER && (this.opFlags & PDP10.OPFLAG.DEBUGGER)) {
if (this.dbg.checkInstruction(this.getPC(), nDebugState)) {
if (this.dbg.checkInstruction(this.getXC(), nDebugState)) {
this.stopCPU();
break;
}
@ -927,7 +927,7 @@ class CPUStatePDP10 extends CPUPDP10 {
*/
if ((this.opFlags & (PDP10.OPFLAG.IRQ_MASK | PDP10.OPFLAG.WAIT)) /* && nDebugState >= 0 */) {
if (this.checkInterrupts()) {
if ((this.opFlags & PDP10.OPFLAG.DEBUGGER) && this.dbg.checkInstruction(this.getPC(), nDebugState)) {
if ((this.opFlags & PDP10.OPFLAG.DEBUGGER) && this.dbg.checkInstruction(this.getXC(), nDebugState)) {
this.stopCPU();
break;
}

View file

@ -2669,8 +2669,8 @@ class DebuggerPDP10 extends Debugger {
return true;
}
var match = sOpcode.match(/^(['"]?)(.*\.klm|.*\.mac|.*\.html|.*\.txt)\1$/i);
if (match) {
var match = sOpcode.match(/^(['"]?)(.*?)(\.klm|\.mac|\.html|\.txt|)\1$/i);
if (match && (match[1] || match[3])) {
var dbg = this;
var cpu = this.cpu;
dbgAddr = this.parseAddr(sAddr);
@ -2678,9 +2678,11 @@ class DebuggerPDP10 extends Debugger {
dbg.println("assembly already in progress");
}
else {
var sFile = match[2];
var sFile = match[2] + match[3];
if (!match[3]) sOptions += 's';
var addrLoad = dbgAddr.addr;
var macro10 = this.macro10 = new Macro10(sFile, addrLoad, sOptions, dbg, function doneMacro10(nErrorCode, sURL) {
var macro10 = this.macro10 = new Macro10(dbg);
macro10.assembleFiles(sFile, addrLoad, sOptions, function doneMacro10(nErrorCode, sURL) {
if (!nErrorCode) {
/*
* NOTE: Most Debugger operations run in the context of doCommand(), which catches any exceptions;
@ -3706,21 +3708,48 @@ class DebuggerPDP10 extends Debugger {
}
/**
* splitArgs(sCmd)
* splitArgs(sCmd, sDelim)
*
* @this {DebuggerPDP10}
* @param {string} sCmd
* @param {string} [sDelim]
* @return {Array.<string>}
*/
splitArgs(sCmd)
splitArgs(sCmd, sDelim = " ")
{
var asArgs = sCmd.replace(/ +/g, ' ').split(' ');
var asArgs = [];
var chQuote = "";
var i = 0, iLast = 0;
while (i < sCmd.length) {
var ch = sCmd[i++];
if (chQuote) {
if (ch == chQuote) {
chQuote = "";
asArgs.push(sCmd.substr(iLast, i - iLast));
iLast = i;
}
continue;
}
if (ch == '"' || ch == "'") {
chQuote = ch;
continue;
}
if (sDelim.indexOf(ch) >= 0) {
asArgs.push(sCmd.substr(iLast, i - iLast - 1));
iLast = i;
}
}
if (iLast < i) {
asArgs.push(sCmd.substr(iLast, i - iLast));
}
asArgs[0] = asArgs[0].toLowerCase();
if (asArgs && asArgs.length) {
var s0 = asArgs[0];
var ch0 = s0.charAt(0);
for (var i = 1; i < s0.length; i++) {
var ch = s0.charAt(i);
for (i = 1; i < s0.length; i++) {
ch = s0.charAt(i);
if (ch0 == '?' || ch0 == 'r' || ch < 'a' || ch > 'z') {
asArgs[0] = s0.substr(i);
asArgs.unshift(s0.substr(0, i));

View file

@ -91,66 +91,87 @@ var Scope;
/**
* @class Macro10
* @property {string} sURL
* @property {number} addrLoad
* @property {number|null} addrLoad
* @property {string} sOptions
* @property {DebuggerPDP10} dbg
* @property {function(...)} done
* @property {function(...)|undefined} done
* @property {number} iURL
* @property {Array.<string>} asURLs
* @property {Array.<string>} aURLs
* @property {Array.<number>} anLines
* @property {Array.<string>} asLines
* @property {number|null|undefined} addrStart
* @unrestricted
*/
class Macro10 {
/**
* Macro10(sURL, addrLoad, sOptions, dbg, done)
* Macro10(dbg)
*
* A "mini" version of DEC's MACRO-10 assembler, with just enough features to support the handful
* of DEC diagnostic source code files that we choose to throw at it.
*
* Requests the resource(s) specified by sURL; multiple resources can be requested by separating
* them with semicolons.
*
* The done() callback is called after the resource(s) have been loaded and parsed. The caller
* must use other methods to obtain further results (eg, getImage(), getStart()).
*
* The callback includes a non-zero error code if there was an error (and the URL):
*
* done(nErrorCode, sURL)
*
* We rely on the calling component (dbg) to provide a variety of helper services (eg, println(),
* parseExpression(), etc). This is NOT a subclass of Component, so Component services are not part
* of this class.
*
* @this {Macro10}
* @param {DebuggerPDP10} dbg (used to provide helper services to the Macro10 class)
*/
constructor(dbg)
{
this.dbg = dbg;
}
/**
* init(addrLoad, sOptions, done)
*
* Initializes all instance properties. Called by assembleFiles() and assembleString().
*
* Supported options include:
*
* 'd': leave all symbols in the debugger's variable table
* 'p': print the preprocessed resource(s) without assembling them
* 'l': print lines as they are parsed
* 's': treat the URL as a string and assemble it (assembleFiles() only)
*
* The done() callback is called after the resource(s) have been loaded (if necessary), parsed, and
* assembled. The caller must use other methods to obtain further results (eg, getImage(), getStart()).
*
* The callback includes a non-zero error code if there was an error (and the URL):
*
* done(nErrorCode, sURL)
*
* @this {Macro10}
* @param {string} sURL (the URL(s) of the resource to be assembled)
* @param {number|null} addrLoad (the absolute address to assemble the code at, if any)
* @param {string|null} sOptions (zero or more letter codes to control the assembly process)
* @param {DebuggerPDP10} dbg (used to provide helper services to the Macro10 class)
* @param {function(...)} done
* @param {number|null} [addrLoad] (the absolute address to assemble the code at, if any)
* @param {string|undefined} [sOptions] (zero or more letter codes to control the assembly process)
* @param {function(...)|undefined} [done]
*/
constructor(sURL, addrLoad, sOptions, dbg, done)
init(addrLoad, sOptions, done)
{
this.sURL = sURL;
this.addrLoad = addrLoad;
this.sOptions = sOptions || "";
this.dbg = dbg;
this.sOptions = (sOptions || "").toLowerCase();
this.done = done;
/*
* The next set of properties may be updated by the assembly process and queried by the caller.
this.iURL = 0;
this.aURLs = [];
/**
* Number of lines per file.
*
* @type {Array.<number>}
*/
this.addrStart = null;
this.anLines = [];
/**
* Lines from all the resources.
*
* @type {Array.<string>}
*/
this.asLines = [];
if (MAXDEBUG) this.println("starting PCjs MACRO-10 Mini-Assembler...");
/*
* Initialize all the tables that MACRO-10 uses.
* Initialize all the tables and other data structures that MACRO-10 uses.
*
* The Macros (tblMacros) and Symbols (tblSymbols) tables are fairly straightforward: they are
* indexed by a macro or symbol name, and each element is a Mac or Sym object, respectively.
@ -266,18 +287,65 @@ class Macro10 {
*/
this.sASCII = "";
/**
* @type {Array.<string>}
*/
this.asLines = [];
this.addrStart = null;
}
this.iURL = 0;
this.asURLs = sURL.split(';');
this.anLines = []; // keeps track of the number of lines per file
/**
* assembleFiles(sURL, addrLoad, sOptions, done)
*
* Requests the resource(s) specified by sURL; multiple resources can be requested by separating
* them with semicolons. The resources are requested and combined in the same order they are listed,
* and after the last resource has been received, they are assembled as a single unit.
*
* As a courtesy to the Debugger's doAssemble() function, we allow it to select between assembleFiles()
* and assembleString() by specifying an 's' option here, rather than having two separate code paths.
*
* @this {Macro10}
* @param {string} sURL (the URL(s) of the resource to be assembled)
* @param {number|null} [addrLoad] (the absolute address to assemble the code at, if any)
* @param {string|undefined} [sOptions] (zero or more letter codes to control the assembly process)
* @param {function(...)|undefined} [done]
*/
assembleFiles(sURL, addrLoad, sOptions, done)
{
if (sOptions && sOptions.indexOf('s') >= 0) {
this.assembleString(sURL, addrLoad, sOptions, done);
return;
}
this.init(addrLoad, sOptions, done);
this.aURLs = sURL.split(';');
this.loadNextResource();
}
/**
* assembleString(sText, addrLoad, sOptions, done)
*
* Assembles the given text.
*
* @this {Macro10}
* @param {string} sText
* @param {number|null} [addrLoad] (the absolute address to assemble the code at, if any)
* @param {string|undefined} [sOptions] (zero or more letter codes to control the assembly process)
* @param {function(...)|undefined} [done]
* @return {number}
*/
assembleString(sText, addrLoad, sOptions, done)
{
this.init(addrLoad, sOptions, done);
this.asLines = sText.split(/(\r?\n)/);
this.anLines.push(this.asLines.length);
this.parseResources();
if (this.done) this.done(this.nError);
return this.nError;
}
/**
* loadNextResource()
*
@ -285,13 +353,14 @@ class Macro10 {
*/
loadNextResource()
{
if (this.iURL == this.asURLs.length) {
this.done(this.parseResources());
if (this.iURL == this.aURLs.length) {
this.parseResources();
if (this.done) this.done(this.nError);
return;
}
var macro10 = this;
var sURL = this.asURLs[this.iURL];
var sURL = this.aURLs[this.iURL];
this.println("loading " + Str.getBaseName(sURL));
@ -305,7 +374,7 @@ class Macro10 {
Web.getResource(sURL, null, true, function processMacro10(sFile, sResource, nErrorCode) {
if (nErrorCode) {
macro10.done(nErrorCode, sFile);
if (macro10.done) macro10.done(nErrorCode, sFile);
return;
}
var sText = sResource;
@ -1100,13 +1169,13 @@ class Macro10 {
var iURL = 0;
while (nLine > this.anLines[iURL]) {
nLine -= this.anLines[iURL];
if (iURL < this.asURLs.length - 1) {
if (iURL < this.aURLs.length - 1) {
iURL++;
} else {
break;
}
}
return Str.getBaseName(this.asURLs[iURL] + " line " + nLine);
return Str.getBaseName(this.aURLs[iURL] + " line " + nLine);
}
/**

View file

@ -34,8 +34,8 @@ for(var aa="function"==typeof Object.defineProperties?Object.defineProperty:func
var ga=ca[ca.length-1],ha=ba[ga],ia=ha?ha:function(a){a=Number(a);if(isNaN(a)||Infinity===a||-Infinity===a||!a)return a;var b=Math.floor(Math.abs(a));return 0>a?-b:b};ia!=ha&&null!=ia&&aa(ba,ga,{configurable:!0,writable:!0,value:ia});
var n={Yd:0,ae:1,be:2,ce:3,de:4,ee:5,fe:6,ge:7,he:8,ie:9,je:10,ke:11,le:12,me:13,ne:14,oe:15,pe:16,qe:17,re:18,se:19,te:20,ue:21,ve:22,we:23,xe:24,ye:25,ze:26," ":32,"!":33,'"':34,"#":35,$:36,"%":37,"&":38,"'":39,"(":40,")":41,"*":42,"+":43,",":44,"-":45,".":46,"/":47,0:48,1:49,2:50,3:51,4:52,5:53,6:54,7:55,8:56,9:57,":":58,";":59,"<":60,"=":61,">":62,"?":63,"@":64,Ia:65,sb:66,tb:67,kb:68,E:69,wb:70,xb:71,yb:72,zb:73,Ab:74,Bb:75,lb:76,Fb:77,Gb:78,Jb:79,Kb:80,Q:81,Lb:82,Nb:83,Ob:84,Pb:85,Rb:86,Sb:87,
Ub:88,Vb:89,$a:90,"[":91,"\\":92,"]":93,"^":94,_:95,"`":96,Wb:97,Rc:98,Tc:99,d:100,e:101,Xc:102,Yc:103,Zc:104,$c:105,jd:106,k:107,kd:108,ld:109,n:110,md:111,p:112,q:113,r:114,Kd:115,t:116,Ld:117,Md:118,Nd:119,x:120,y:121,z:122,"{":123,"|":124,"}":125,"~":126,Ae:127},ja={59:186,61:187,173:189,224:91};
function ka(a){var b=16,c;if(a){b||(b=10);var d,e,f=0<a.indexOf(",");f&&(a=a.replace(/,/g,""));d=e=a.charAt(0);"#"==e?(b=8,e=""):"$"==e&&(b=16,e="");d!=e?a=a.substr(1):(d=e=a.substr(0,2),"0b"==e&&f||"^B"==e?(b=2,e=""):"0o"==e||"^O"==e?(b=8,e=""):"^D"==e?(b=10,e=""):"0x"==e&&(b=16,e=""),d!=e&&(a=a.substr(2)));d=e=a.slice(-1);"Y"==e||"y"==e?(b=2,e=""):"."==e?(b=10,e=""):"H"==e||"h"==e?(b=16,e=""):"K"==e?e="000":"M"==e?e="000000":"G"==e&&(e="000000000");d!=e&&(a=a.slice(0,-1)+e);var g;d=0;if(e=a.match(/(-?[0-9]+)B([0-9]*)/))a=
e[1],d=35-((e[2]||35)&255);e=a;((f=b)&&10!=f?16==f?e.match(/^-?[0-9a-f]+$/i):8==f?e.match(/^-?[0-7]+$/):2==f&&e.match(/^-?[01]+$/):e.match(/^-?[0-9]+$/))&&!isNaN(g=parseInt(a,b))&&(d&&(0>g&&(g+=Math.pow(2,36)),g=0<d?g*Math.pow(2,d):Math.trunc(g/Math.pow(2,-d))),c=g)}return c}
function ka(a){var b=16,c;if(a){b||(b=10);var d,e,f=0<a.indexOf(",");f&&(a=a.replace(/,/g,""));d=e=a.charAt(0);"#"==e?(b=8,e=""):"$"==e&&(b=16,e="");d!=e?a=a.substr(1):(d=e=a.substr(0,2),"0b"==e&&f||"^B"==e?(b=2,e=""):"0o"==e||"^O"==e?(b=8,e=""):"^D"==e?(b=10,e=""):"0x"==e&&(b=16,e=""),d!=e&&(a=a.substr(2)));d=e=a.slice(-1);"Y"==e||"y"==e?(b=2,e=""):"."==e?(b=10,e=""):"H"==e||"h"==e?(b=16,e=""):"K"==e?e="000":"M"==e?e="000000":"G"==e&&(e="000000000");d!=e&&(a=a.slice(0,-1)+e);var g;d=0;10>=b&&(e=
a.match(/(-?[0-9]+)B([0-9]*)/))&&(a=e[1],d=35-((e[2]||35)&255));e=a;((f=b)&&10!=f?16==f?e.match(/^-?[0-9a-f]+$/i):8==f?e.match(/^-?[0-7]+$/):2==f&&e.match(/^-?[01]+$/):e.match(/^-?[0-9]+$/))&&!isNaN(g=parseInt(a,b))&&(d&&(0>g&&(g+=Math.pow(2,36)),g=0<d?g*Math.pow(2,d):Math.trunc(g/Math.pow(2,-d))),c=g)}return c}
function p(a,b,c){b?9<b&&(b=9):(b=Math.abs(a),b=65535>=b?4:4294967295>=b?8:9);c=c?"0x":"";var d;d=void 0===d?0:d;var e="";isNaN(a)?a=null:null!=a&&(0>a&&-1<a&&(a=-1),0>a&&(a+=Math.pow(16,b)),a>=Math.pow(16,b)&&(b=Math.ceil(Math.log(a)/Math.log(16))));for(var f=d||-1;0<b--;){f||(e=","+e,f=d);if(null==a)e="?"+e;else{var g=a%16,g=g+(0<=g&&9>=g?48:55),e=String.fromCharCode(g)+e;a=Math.trunc(a/16)}f--}return(void 0===c?"":c)+e}
function la(a){var b=a,c=a.lastIndexOf("/");0<=c&&(b=a.substr(c+1));c=b.indexOf("&");0<c&&(b=b.substr(0,c));return b}function ma(a){var b="",c=a.lastIndexOf(".");0<=c&&(b=a.substr(c+1).toLowerCase());return b}function na(){var a=oa();return-1!==a.indexOf("pcjs.org",a.length-8)}function pa(a){return a.replace(/[&<>"']/g,function(a){return qa[a]})}function ra(a){return String.prototype.trim?a.trim():a.replace(/^\s+|\s+$/g,"")}
var qa={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#039;"},sa={0:"NUL",1:"SOH",2:"STX",3:"ETX",4:"EOT",5:"ENQ",6:"ACK",7:"BEL",8:"BS",9:"TAB",10:"LF",11:"VT",12:"FF",13:"CR",14:"SO",15:"SI",16:"DLE",17:"XON",18:"DC2",19:"XOFF",20:"DC4",21:"NAK",22:"SYN",23:"ETB",24:"CAN",25:"EM",26:"SUB",27:"ESC",28:"FS",29:"GS",30:"RS",31:"US"};

View file

@ -50,8 +50,8 @@ var la={163840:[40,1,8,,254],184320:[40,1,9,,252],327680:[40,2,8,,255],368640:[4
"(":40,")":41,"*":42,"+":43,",":44,"-":45,".":46,"/":47,0:48,1:49,2:50,3:51,4:52,5:53,6:54,7:55,8:56,9:57,":":58,";":59,"<":60,"=":61,">":62,"?":63,"@":64,Bd:65,wh:66,xh:67,zh:68,E:69,Ah:70,Bh:71,Ch:72,Dh:73,Eh:74,Fh:75,Gh:76,Hh:77,Ih:78,Jh:79,Kh:80,Q:81,Lh:82,Mh:83,Nh:84,Oh:85,Ph:86,Qh:87,Rh:88,Sh:89,sf:90,"[":91,"\\":92,"]":93,"^":94,_:95,"`":96,Cd:97,jk:98,kk:99,d:100,e:101,vk:102,wk:103,xk:104,yk:105,Jl:106,k:107,Ll:108,Pl:109,n:110,Vl:111,p:112,q:113,r:114,pn:115,t:116,sn:117,tn:118,un:119,x:120,
y:121,z:122,"{":123,"|":124,"}":125,"~":126,po:127},ma={};ma[173]=n["-"];ma[186]=n[";"];ma[187]=n["="];ma[189]=n["-"];ma[188]=n[","];ma[190]=n["."];ma[191]=n["/"];ma[192]=n["`"];ma[219]=n["["];ma[220]=n["\\"];ma[221]=n["]"];ma[222]=n["'"];var p={};p[n["1"]]=n["!"];p[n["2"]]=n["@"];p[n["3"]]=n["#"];p[n["4"]]=n.$;p[n["5"]]=n["%"];p[n["6"]]=n["^"];p[n["7"]]=n["&"];p[n["8"]]=n["*"];p[n["9"]]=n["("];p[n["0"]]=n[")"];p[186]=n[":"];p[187]=n["+"];p[188]=n["<"];p[189]=n._;p[190]=n[">"];p[191]=n["?"];
p[192]=n["~"];p[219]=n["{"];p[220]=n["|"];p[221]=n["}"];p[222]=n['"'];p[173]=n._;p[61]=n["+"];p[59]=n[":"];
function na(a,b){var c;if(a){b||(b=10);var d,e,f=0<a.indexOf(",");f&&(a=a.replace(/,/g,""));d=e=a.charAt(0);"#"==e?(b=8,e=""):"$"==e&&(b=16,e="");d!=e?a=a.substr(1):(d=e=a.substr(0,2),"0b"==e&&f||"^B"==e?(b=2,e=""):"0o"==e||"^O"==e?(b=8,e=""):"^D"==e?(b=10,e=""):"0x"==e&&(b=16,e=""),d!=e&&(a=a.substr(2)));d=e=a.slice(-1);"Y"==e||"y"==e?(b=2,e=""):"."==e?(b=10,e=""):"H"==e||"h"==e?(b=16,e=""):"K"==e?e="000":"M"==e?e="000000":"G"==e&&(e="000000000");d!=e&&(a=a.slice(0,-1)+e);var g;d=0;if(e=a.match(/(-?[0-9]+)B([0-9]*)/))a=
e[1],d=35-((e[2]||35)&255);e=a;((f=b)&&10!=f?16==f?e.match(/^-?[0-9a-f]+$/i):8==f?e.match(/^-?[0-7]+$/):2==f&&e.match(/^-?[01]+$/):e.match(/^-?[0-9]+$/))&&!isNaN(g=parseInt(a,b))&&(d&&(0>g&&(g+=Math.pow(2,36)),g=0<d?g*Math.pow(2,d):Math.trunc(g/Math.pow(2,-d))),c=g)}return c}
function na(a,b){var c;if(a){b||(b=10);var d,e,f=0<a.indexOf(",");f&&(a=a.replace(/,/g,""));d=e=a.charAt(0);"#"==e?(b=8,e=""):"$"==e&&(b=16,e="");d!=e?a=a.substr(1):(d=e=a.substr(0,2),"0b"==e&&f||"^B"==e?(b=2,e=""):"0o"==e||"^O"==e?(b=8,e=""):"^D"==e?(b=10,e=""):"0x"==e&&(b=16,e=""),d!=e&&(a=a.substr(2)));d=e=a.slice(-1);"Y"==e||"y"==e?(b=2,e=""):"."==e?(b=10,e=""):"H"==e||"h"==e?(b=16,e=""):"K"==e?e="000":"M"==e?e="000000":"G"==e&&(e="000000000");d!=e&&(a=a.slice(0,-1)+e);var g;d=0;10>=b&&(e=a.match(/(-?[0-9]+)B([0-9]*)/))&&
(a=e[1],d=35-((e[2]||35)&255));e=a;((f=b)&&10!=f?16==f?e.match(/^-?[0-9a-f]+$/i):8==f?e.match(/^-?[0-7]+$/):2==f&&e.match(/^-?[01]+$/):e.match(/^-?[0-9]+$/))&&!isNaN(g=parseInt(a,b))&&(d&&(0>g&&(g+=Math.pow(2,36)),g=0<d?g*Math.pow(2,d):Math.trunc(g/Math.pow(2,-d))),c=g)}return c}
function oa(a,b,c){b?9<b&&(b=9):(b=Math.abs(a),b=65535>=b?4:4294967295>=b?8:9);c=c?"0x":"";var d;d=void 0===d?0:d;var e="";isNaN(a)?a=null:null!=a&&(0>a&&-1<a&&(a=-1),0>a&&(a+=Math.pow(16,b)),a>=Math.pow(16,b)&&(b=Math.ceil(Math.log(a)/Math.log(16))));for(var f=d||-1;0<b--;){f||(e=","+e,f=d);if(null==a)e="?"+e;else{var g=a%16,g=g+(0<=g&&9>=g?48:55),e=String.fromCharCode(g)+e;a=Math.trunc(a/16)}f--}return(void 0===c?"":c)+e}
function pa(a,b){var c=a,d=a.lastIndexOf("/");0<=d&&(c=a.substr(d+1));d=c.indexOf("&");0<d&&(c=c.substr(0,d));b&&(d=c.lastIndexOf("."),0<d&&(c=c.substring(0,d)));return c}function qa(a){var b="",c=a.lastIndexOf(".");0<=c&&(b=a.substr(c+1).toLowerCase());return b}function ra(a,b){return-1!==a.indexOf(b,a.length-b.length)}function sa(a){return a.replace(/[&<>"']/g,function(a){return ta[a]})}function ua(a){return String.prototype.trim?a.trim():a.replace(/^\s+|\s+$/g,"")}
var ta={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#039;"},va={0:"NUL",1:"SOH",2:"STX",3:"ETX",4:"EOT",5:"ENQ",6:"ACK",7:"BEL",8:"BS",9:"TAB",10:"LF",11:"VT",12:"FF",13:"CR",14:"SO",15:"SI",16:"DLE",17:"XON",18:"DC2",19:"XOFF",20:"DC4",21:"NAK",22:"SYN",23:"ETB",24:"CAN",25:"EM",26:"SUB",27:"ESC",28:"FS",29:"GS",30:"RS",31:"US"};

View file

@ -29,273 +29,274 @@
*/
var m,aa="function"==typeof Object.defineProperties?Object.defineProperty:function(a,b,c){if(c.get||c.set)throw new TypeError("ES3 does not support getters and setters.");a!=Array.prototype&&a!=Object.prototype&&(a[b]=c.value)},ba="undefined"!=typeof window&&window===this?this:"undefined"!=typeof global?global:this;function ca(){ca=function(){};ba.Symbol||(ba.Symbol=da)}var ea=0;function da(a){return"jscomp_symbol_"+(a||"")+ea++}
function ga(){ca();var a=ba.Symbol.iterator;a||(a=ba.Symbol.iterator=ba.Symbol("iterator"));"function"!=typeof Array.prototype[a]&&aa(Array.prototype,a,{configurable:!0,writable:!0,value:function(){return ha(this)}});ga=function(){}}function ha(a){var b=0;return ia(function(){return b<a.length?{done:!1,value:a[b++]}:{done:!0}})}function ia(a){ga();a={next:a};a[ba.Symbol.iterator]=function(){return this};return a}
function ja(a,b){function c(){}c.prototype=b.prototype;a.prototype=new c;a.prototype.constructor=a;for(var d in b)if(Object.defineProperties){var e=Object.getOwnPropertyDescriptor(b,d);e&&Object.defineProperty(a,d,e)}else a[d]=b[d]}function la(a,b){if(b){var c=ba;a=a.split(".");for(var d=0;d<a.length-1;d++){var e=a[d];e in c||(c[e]={});c=c[e]}a=a[a.length-1];d=c[a];b=b(d);b!=d&&null!=b&&aa(c,a,{configurable:!0,writable:!0,value:b})}}
la("Math.trunc",function(a){return a?a:function(a){a=Number(a);if(isNaN(a)||Infinity===a||-Infinity===a||!a)return a;var b=Math.floor(Math.abs(a));return 0>a?-b:b}});la("Math.log2",function(a){return a?a:function(a){return Math.log(a)/Math.LN2}});
var ma={uc:0,Nb:1,wc:2,xc:3,yc:4,zc:5,Ac:6,Bc:7,xb:8,Cc:9,Ob:10,Dc:11,Ec:12,Pb:13,Fc:14,Gc:15,Hc:16,Ic:17,Jc:18,Kc:19,Lc:20,Mc:21,Nc:22,Oc:23,Pc:24,Qc:25,Rc:26," ":32,"!":33,'"':34,"#":35,$:36,"%":37,"&":38,"'":39,"(":40,")":41,"*":42,"+":43,",":44,"-":45,".":46,"/":47,0:48,1:49,2:50,3:51,4:52,5:53,6:54,7:55,8:56,9:57,":":58,";":59,"<":60,"=":61,">":62,"?":63,"@":64,wb:65,tc:66,vc:67,Sc:68,E:69,Tc:70,Uc:71,Vc:72,Wc:73,Xc:74,Yc:75,Zc:76,$c:77,ad:78,bd:79,cd:80,Q:81,dd:82,ed:83,fd:84,gd:85,hd:86,jd:87,
function ja(a,b){function c(){}c.prototype=b.prototype;a.prototype=new c;a.prototype.constructor=a;for(var d in b)if(Object.defineProperties){var e=Object.getOwnPropertyDescriptor(b,d);e&&Object.defineProperty(a,d,e)}else a[d]=b[d]}function ma(a,b){if(b){var c=ba;a=a.split(".");for(var d=0;d<a.length-1;d++){var e=a[d];e in c||(c[e]={});c=c[e]}a=a[a.length-1];d=c[a];b=b(d);b!=d&&null!=b&&aa(c,a,{configurable:!0,writable:!0,value:b})}}
ma("Math.trunc",function(a){return a?a:function(a){a=Number(a);if(isNaN(a)||Infinity===a||-Infinity===a||!a)return a;var b=Math.floor(Math.abs(a));return 0>a?-b:b}});ma("Math.log2",function(a){return a?a:function(a){return Math.log(a)/Math.LN2}});
var na={uc:0,Nb:1,wc:2,xc:3,yc:4,zc:5,Ac:6,Bc:7,xb:8,Cc:9,Ob:10,Dc:11,Ec:12,Pb:13,Fc:14,Gc:15,Hc:16,Ic:17,Jc:18,Kc:19,Lc:20,Mc:21,Nc:22,Oc:23,Pc:24,Qc:25,Rc:26," ":32,"!":33,'"':34,"#":35,$:36,"%":37,"&":38,"'":39,"(":40,")":41,"*":42,"+":43,",":44,"-":45,".":46,"/":47,0:48,1:49,2:50,3:51,4:52,5:53,6:54,7:55,8:56,9:57,":":58,";":59,"<":60,"=":61,">":62,"?":63,"@":64,wb:65,tc:66,vc:67,Sc:68,E:69,Tc:70,Uc:71,Vc:72,Wc:73,Xc:74,Yc:75,Zc:76,$c:77,ad:78,bd:79,cd:80,Q:81,dd:82,ed:83,fd:84,gd:85,hd:86,jd:87,
kd:88,ld:89,Rb:90,"[":91,"\\":92,"]":93,"^":94,_:95,"`":96,md:97,nd:98,od:99,d:100,e:101,pd:102,qd:103,rd:104,sd:105,td:106,k:107,ud:108,vd:109,n:110,wd:111,p:112,q:113,r:114,xd:115,t:116,zd:117,Ad:118,Bd:119,x:120,y:121,z:122,"{":123,"|":124,"}":125,"~":126,Qb:127};
function na(a,b){var c;if(a){b||(b=10);var d,e,f=0<a.indexOf(",");f&&(a=a.replace(/,/g,""));d=e=a.charAt(0);"#"==e?(b=8,e=""):"$"==e&&(b=16,e="");d!=e?a=a.substr(1):(d=e=a.substr(0,2),"0b"==e&&f||"^B"==e?(b=2,e=""):"0o"==e||"^O"==e?(b=8,e=""):"^D"==e?(b=10,e=""):"0x"==e&&(b=16,e=""),d!=e&&(a=a.substr(2)));d=e=a.slice(-1);"Y"==e||"y"==e?(b=2,e=""):"."==e?(b=10,e=""):"H"==e||"h"==e?(b=16,e=""):"K"==e?e="000":"M"==e?e="000000":"G"==e&&(e="000000000");d!=e&&(a=a.slice(0,-1)+e);var g;d=0;10>=b&&(e=a.match(/(-?[0-9]+)B([0-9]*)/))&&
function oa(a,b){var c;if(a){b||(b=10);var d,e,f=0<a.indexOf(",");f&&(a=a.replace(/,/g,""));d=e=a.charAt(0);"#"==e?(b=8,e=""):"$"==e&&(b=16,e="");d!=e?a=a.substr(1):(d=e=a.substr(0,2),"0b"==e&&f||"^B"==e?(b=2,e=""):"0o"==e||"^O"==e?(b=8,e=""):"^D"==e?(b=10,e=""):"0x"==e&&(b=16,e=""),d!=e&&(a=a.substr(2)));d=e=a.slice(-1);"Y"==e||"y"==e?(b=2,e=""):"."==e?(b=10,e=""):"H"==e||"h"==e?(b=16,e=""):"K"==e?e="000":"M"==e?e="000000":"G"==e&&(e="000000000");d!=e&&(a=a.slice(0,-1)+e);var g;d=0;10>=b&&(e=a.match(/(-?[0-9]+)B([0-9]*)/))&&
(a=e[1],d=35-((e[2]||35)&255));e=a;((f=b)&&10!=f?16==f?e.match(/^-?[0-9a-f]+$/i):8==f?e.match(/^-?[0-7]+$/):2==f&&e.match(/^-?[01]+$/):e.match(/^-?[0-9]+$/))&&!isNaN(g=parseInt(a,b))&&(d&&(0>g&&(g+=Math.pow(2,36)),g=0<d?g*Math.pow(2,d):Math.trunc(g/Math.pow(2,-d))),c=g)}return c}
function oa(a,b,c,d,e){e=void 0===e?0:e;var f="";isNaN(a)?a=null:null!=a&&(0>a&&-1<a&&(a=-1),0>a&&(a+=Math.pow(b,c)),a>=Math.pow(b,c)&&(c=Math.ceil(Math.log(a)/Math.log(b))));for(var g=e||-1;0<c--;){g||(f=","+f,g=e);if(null==a)f="?"+f;else{var h=a%b,h=h+(0<=h&&9>=h?48:55),f=String.fromCharCode(h)+f;a=Math.trunc(a/b)}g--}return(void 0===d?"":d)+f}function ua(a,b,c){b?12<b&&(b=12):(b=Math.abs(a),b=262143>=b?6:16777215>=b?8:12);return oa(a,8,b,c?"0o":"")}
function va(a,b){b?11<b&&(b=11):b=99999>=Math.abs(a)?5:11;return oa(a,10,b)}function n(a,b,c){b?9<b&&(b=9):(b=Math.abs(a),b=65535>=b?4:4294967295>=b?8:9);return oa(a,16,b,c?"0x":"")}function wa(a){var b=a,c=a.lastIndexOf("/");0<=c&&(b=a.substr(c+1));c=b.indexOf("&");0<c&&(b=b.substr(0,c));return b}function xa(a){var b="",c=a.lastIndexOf(".");0<=c&&(b=a.substr(c+1).toLowerCase());return b}function ya(a,b){return-1!==a.indexOf(b,a.length-b.length)}
function za(a){return a.replace(/[&<>"']/g,function(a){return Aa[a]})}function Ba(a,b){return(a+" ").slice(0,b)}function Ca(a){return String.prototype.trim?a.trim():a.replace(/^\s+|\s+$/g,"")}var Aa={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#039;"};function Fa(a,b,c){var d=0,e=a.length,f=0;for(c||(c=function(a,b){return a>b?1:a<b?-1:0});d<e;){var g=d+e>>1,h;h=c(b,a[g]);0<h?d=g+1:(e=g,f=!h)}return f?d:~d}
function Ga(){function a(a){return(10>a?"0":"")+a}var b=new Date;return b.getFullYear()+"-"+a(b.getMonth()+1)+"-"+a(b.getDate())+" "+a(b.getHours())+":"+a(b.getMinutes())+":"+a(b.getSeconds())}
function Ha(a,b,c,d){c=void 0===c?!1:c;var e=0,f=null,g=null;if("object"==typeof resources&&(f=resources[a]))return d&&d(a,f,e),[f,e];if(c&&"function"==typeof resources)return resources(a,function(b,c){d&&d(a,b,c)}),g;var h=window.XMLHttpRequest?new window.XMLHttpRequest:new window.ActiveXObject("Microsoft.XMLHTTP");c&&(h.onreadystatechange=function(){4===h.readyState&&(f=h.responseText,200==h.status||!h.status&&f.length&&"file:"==(window?window.location.protocol:"file:")||(e=h.status||-1),d&&d(a,
function pa(a,b,c,d,e){e=void 0===e?0:e;var f="";isNaN(a)?a=null:null!=a&&(0>a&&-1<a&&(a=-1),0>a&&(a+=Math.pow(b,c)),a>=Math.pow(b,c)&&(c=Math.ceil(Math.log(a)/Math.log(b))));for(var g=e||-1;0<c--;){g||(f=","+f,g=e);if(null==a)f="?"+f;else{var h=a%b,h=h+(0<=h&&9>=h?48:55),f=String.fromCharCode(h)+f;a=Math.trunc(a/b)}g--}return(void 0===d?"":d)+f}function wa(a,b,c){b?12<b&&(b=12):(b=Math.abs(a),b=262143>=b?6:16777215>=b?8:12);return pa(a,8,b,c?"0o":"")}
function xa(a,b){b?11<b&&(b=11):b=99999>=Math.abs(a)?5:11;return pa(a,10,b)}function n(a,b,c){b?9<b&&(b=9):(b=Math.abs(a),b=65535>=b?4:4294967295>=b?8:9);return pa(a,16,b,c?"0x":"")}function ya(a){var b=a,c=a.lastIndexOf("/");0<=c&&(b=a.substr(c+1));c=b.indexOf("&");0<c&&(b=b.substr(0,c));return b}function za(a){var b="",c=a.lastIndexOf(".");0<=c&&(b=a.substr(c+1).toLowerCase());return b}function Aa(a,b){return-1!==a.indexOf(b,a.length-b.length)}
function Ba(a){return a.replace(/[&<>"']/g,function(a){return Ca[a]})}function Da(a,b){return(a+" ").slice(0,b)}function Ea(a){return String.prototype.trim?a.trim():a.replace(/^\s+|\s+$/g,"")}var Ca={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#039;"};function Ha(a,b,c){var d=0,e=a.length,f=0;for(c||(c=function(a,b){return a>b?1:a<b?-1:0});d<e;){var g=d+e>>1,h;h=c(b,a[g]);0<h?d=g+1:(e=g,f=!h)}return f?d:~d}
function Ia(){function a(a){return(10>a?"0":"")+a}var b=new Date;return b.getFullYear()+"-"+a(b.getMonth()+1)+"-"+a(b.getDate())+" "+a(b.getHours())+":"+a(b.getMinutes())+":"+a(b.getSeconds())}
function Ja(a,b,c,d){c=void 0===c?!1:c;var e=0,f=null,g=null;if("object"==typeof resources&&(f=resources[a]))return d&&d(a,f,e),[f,e];if(c&&"function"==typeof resources)return resources(a,function(b,c){d&&d(a,b,c)}),g;var h=window.XMLHttpRequest?new window.XMLHttpRequest:new window.ActiveXObject("Microsoft.XMLHTTP");c&&(h.onreadystatechange=function(){4===h.readyState&&(f=h.responseText,200==h.status||!h.status&&f.length&&"file:"==(window?window.location.protocol:"file:")||(e=h.status||-1),d&&d(a,
f,e))});if(b&&"object"==typeof b){var k="",l;for(l in b)b.hasOwnProperty(l)&&(k&&(k+="&"),k+=l+"="+encodeURIComponent(b[l]));k=k.replace(/%20/g,"+");h.open("POST",a,c);h.setRequestHeader("Content-type","application/x-www-form-urlencoded");h.send(k)}else h.open("GET",a,c),"bytes"==b&&h.overrideMimeType("text/plain; charset=x-user-defined"),h.send();c||(f=h.responseText,200!=h.status&&(e=h.status||-1),d&&d(a,f,e),g=[f,e]);return g}
function Ia(a,b){var c,d={da:null,aa:null,la:null,ya:null};if("["==b.charAt(0)||"{"==b.charAt(0))try{var e,f,g;if("<"==b.substr(0,1))throw Error(b);g=0>b.indexOf("0x")&&0>b.indexOf("0o")&&'["'!=b.substr(0,2)?JSON.parse(b.replace(/([a-z]+):/gm,'"$1":').replace(/\/\/[^\n]*/gm,"")):eval("("+b+")");d.la=g.load;d.ya=g.exec;if(e=g.bytes)d.da=e;else if(e=g.words)for(d.da=Array(2*e.length),f=c=0;c<e.length;c++)d.da[f++]=e[c]&255,d.da[f++]=e[c]>>8&255;else if(e=g.longs)for(d.da=Array(4*e.length),f=c=0;c<e.length;c++)d.da[f++]=
e[c]&255,d.da[f++]=e[c]>>8&255,d.da[f++]=e[c]>>16&255,d.da[f++]=e[c]>>24&255;else(e=g.data)?d.Pa=e:d.da=g;d.da&&(d.da.length?1==d.da.length&&(q(d.da[0]),d=null):(q("Empty resource: "+a),d=null));d.aa=g.symbols}catch(h){q("Resource data error ("+a+"): "+h.message),d=null}else{e=[];b=b.replace(/\n/gm," ").replace(/ +$/,"").split(" ");for(c=0;c<b.length;c++){f=parseInt(b[c],16);if(isNaN(f)){q("Resource data error ("+a+"): invalid hex byte ("+b[c]+")");break}e.push(f&255)}c==b.length&&(d.da=e)}return d}
function Ja(){return"http://"+(window?window.location.host:"www.pcjs.org")}function Ka(){if(null==La){var a=!1;if(window)try{window.localStorage.setItem("PCjs.localStorage","PCjs.localStorage"),a="PCjs.localStorage"==window.localStorage.getItem("PCjs.localStorage"),window.localStorage.removeItem("PCjs.localStorage")}catch(b){a=!1}La=a}return La}function Ma(a){var b;if(window)try{b=window.localStorage.getItem(a)}catch(c){}return b}
function Qa(a,b){try{return window.localStorage.setItem(a,b),!0}catch(c){}return!1}function Ra(a){if(window){var b=window?window.navigator.userAgent:"";return"iOS"==a&&!!b.match(/(iPod|iPhone|iPad)/)&&!!b.match(/AppleWebKit/)||"MSIE"==a&&!!b.match(/(MSIE|Trident)/)||0<=b.indexOf(a)}return!1}
function Sa(a){if(!Ta){var b,c={};if(window){b||(b=window.location.search.substr(1));for(var d,e=/\+/g,f=/([^&=]+)=?([^&]*)/g;d=f.exec(b);)c[decodeURIComponent(d[1].replace(e," "))]=decodeURIComponent(d[2].replace(e," "))}Ta=c}return Ta[a]}function Ua(a,b,c){function d(){--a;0<=a&&(b()||(a=0));0<a?setTimeout(d,0):c()}d()}
function Va(a,b){function c(){b(100===d)&&(e=setTimeout(c,d),d=100)}var d=0,e=null,f=!1;a.onmousedown=function(){f||e||(d=500,c())};a.ontouchstart=function(){e||(d=500,c())};a.onmouseup=a.onmouseout=function(){e&&(clearTimeout(e),e=null)};a.ontouchend=a.ontouchcancel=function(){e&&(clearTimeout(e),e=null);f=!0}}function Wa(a,b){if(window){var c=window[a];window[a]="function"!==typeof c?b:function(){c&&c();b()}}}function Xa(a){Ya.init.push(a)}
function Za(a){if($a)try{for(var b=0;b<a.length;b++)a[b]()}catch(c){q(""+("An unexpected exception occurred:\n\n"+c.message+"\n\nPlease send this information to support@pcjs.org. Thanks."))}}function ab(a){!$a&&a?($a=!0,bb&&cb("init"),db&&cb("show")):$a=a}function cb(a){Ya[a]&&Za(Ya[a])}var Ta=null,Ya={init:[],show:[],exit:[]},bb=!1,db=!1,$a=!0,La=null;Wa("onload",function(){bb=!0;Za(Ya.init)});Wa("onpageshow",function(){db=!0;Za(Ya.show)});Wa(Ra("Opera")||Ra("iOS")?"onunload":"onbeforeunload",function(){Za(Ya.exit)});
function r(a,b,c){this.type=a;b||(b={id:"",name:""});this.id=b.id||"";this.name=b.name;this.Db=b.comment;this.Ub=b;this.exports={};this.J=this.bindings={};a=this.id.indexOf(".");0>a?this.ab=this.id:(this.bb=this.id.substr(0,a),this.ab=this.id.substr(a+1));this.A={ready:!1,Va:!1,qb:!1,ba:!1,error:!1};this.fb=null;this.A.error=!1;this.ca=c||0;this.D=this.v=this.G=this.H=this.za=null;eb.push(this)}function fb(a,b,c){gb[a]&&b&&(gb[a][b]=c)}function nb(){return Date.now()||+new Date}
function q(a){window&&window.alert(a)}function ob(a){var b=!1;window&&(b=window.confirm(a));return b}function pb(a){var b,c=[];a&&(a=0<(b=a.indexOf("."))?a.substr(0,b+1):"");for(b=0;b<eb.length;b++){var d=eb[b];a&&d.id.indexOf(a)||c.push(d)}return c}function qb(a){if(void 0!==a){var b;for(b=0;b<eb.length;b++)if(eb[b].id===a)return eb[b]}return null}
function rb(a,b){var c;if(void 0!==a){var d;b&&(b=0<(d=b.indexOf("."))?b.substr(0,d+1):"");for(d=0;d<eb.length;d++)if(c)c==eb[d]&&(c=null);else if(!(a!=eb[d].type||b&&eb[d].id.indexOf(b)))return eb[d]}return null}function t(a){var b=null;if(a=a.getAttribute("data-value"))try{b=eval("("+a+")")}catch(c){q(c.message+" ("+a+")")}return b}
function sb(a,b){var c=v;b=w(b.parentNode,c+"-control");for(var d=0;d<b.length;d++)for(var e=b[d].childNodes,f=0;f<e.length;f++){var g=e[f];if(1===g.nodeType){var h=g.getAttribute("class");if(h)for(var k=h.split(" "),l=0;l<k.length;l++)switch(h=k[l],h){case c+"-binding":(h=t(g))&&h.binding&&a.sa(h.type,h.binding,g,h.value),l=k.length}}}}
function Ka(a,b){var c,d={da:null,aa:null,la:null,ya:null};if("["==b.charAt(0)||"{"==b.charAt(0))try{var e,f,g;if("<"==b.substr(0,1))throw Error(b);g=0>b.indexOf("0x")&&0>b.indexOf("0o")&&'["'!=b.substr(0,2)?JSON.parse(b.replace(/([a-z]+):/gm,'"$1":').replace(/\/\/[^\n]*/gm,"")):eval("("+b+")");d.la=g.load;d.ya=g.exec;if(e=g.bytes)d.da=e;else if(e=g.words)for(d.da=Array(2*e.length),f=c=0;c<e.length;c++)d.da[f++]=e[c]&255,d.da[f++]=e[c]>>8&255;else if(e=g.longs)for(d.da=Array(4*e.length),f=c=0;c<e.length;c++)d.da[f++]=
e[c]&255,d.da[f++]=e[c]>>8&255,d.da[f++]=e[c]>>16&255,d.da[f++]=e[c]>>24&255;else(e=g.data)?d.Pa=e:d.da=g;d.da&&(d.da.length?1==d.da.length&&(r(d.da[0]),d=null):(r("Empty resource: "+a),d=null));d.aa=g.symbols}catch(h){r("Resource data error ("+a+"): "+h.message),d=null}else{e=[];b=b.replace(/\n/gm," ").replace(/ +$/,"").split(" ");for(c=0;c<b.length;c++){f=parseInt(b[c],16);if(isNaN(f)){r("Resource data error ("+a+"): invalid hex byte ("+b[c]+")");break}e.push(f&255)}c==b.length&&(d.da=e)}return d}
function La(){return"http://"+(window?window.location.host:"www.pcjs.org")}function Ma(){if(null==Na){var a=!1;if(window)try{window.localStorage.setItem("PCjs.localStorage","PCjs.localStorage"),a="PCjs.localStorage"==window.localStorage.getItem("PCjs.localStorage"),window.localStorage.removeItem("PCjs.localStorage")}catch(b){a=!1}Na=a}return Na}function Oa(a){var b;if(window)try{b=window.localStorage.getItem(a)}catch(c){}return b}
function Ta(a,b){try{return window.localStorage.setItem(a,b),!0}catch(c){}return!1}function Ua(a){if(window){var b=window?window.navigator.userAgent:"";return"iOS"==a&&!!b.match(/(iPod|iPhone|iPad)/)&&!!b.match(/AppleWebKit/)||"MSIE"==a&&!!b.match(/(MSIE|Trident)/)||0<=b.indexOf(a)}return!1}
function Va(a){if(!Wa){var b,c={};if(window){b||(b=window.location.search.substr(1));for(var d,e=/\+/g,f=/([^&=]+)=?([^&]*)/g;d=f.exec(b);)c[decodeURIComponent(d[1].replace(e," "))]=decodeURIComponent(d[2].replace(e," "))}Wa=c}return Wa[a]}function Xa(a,b,c){function d(){--a;0<=a&&(b()||(a=0));0<a?setTimeout(d,0):c()}d()}
function Ya(a,b){function c(){b(100===d)&&(e=setTimeout(c,d),d=100)}var d=0,e=null,f=!1;a.onmousedown=function(){f||e||(d=500,c())};a.ontouchstart=function(){e||(d=500,c())};a.onmouseup=a.onmouseout=function(){e&&(clearTimeout(e),e=null)};a.ontouchend=a.ontouchcancel=function(){e&&(clearTimeout(e),e=null);f=!0}}function Za(a,b){if(window){var c=window[a];window[a]="function"!==typeof c?b:function(){c&&c();b()}}}function $a(a){ab.init.push(a)}
function bb(a){if(cb)try{for(var b=0;b<a.length;b++)a[b]()}catch(c){r(""+("An unexpected exception occurred:\n\n"+c.message+"\n\nPlease send this information to support@pcjs.org. Thanks."))}}function db(a){!cb&&a?(cb=!0,eb&&fb("init"),gb&&fb("show")):cb=a}function fb(a){ab[a]&&bb(ab[a])}var Wa=null,ab={init:[],show:[],exit:[]},eb=!1,gb=!1,cb=!0,Na=null;Za("onload",function(){eb=!0;bb(ab.init)});Za("onpageshow",function(){gb=!0;bb(ab.show)});Za(Ua("Opera")||Ua("iOS")?"onunload":"onbeforeunload",function(){bb(ab.exit)});
function t(a,b,c){this.type=a;b||(b={id:"",name:""});this.id=b.id||"";this.name=b.name;this.Db=b.comment;this.Ub=b;this.exports={};this.J=this.bindings={};a=this.id.indexOf(".");0>a?this.ab=this.id:(this.bb=this.id.substr(0,a),this.ab=this.id.substr(a+1));this.A={ready:!1,Va:!1,qb:!1,ba:!1,error:!1};this.fb=null;this.A.error=!1;this.ca=c||0;this.D=this.v=this.G=this.H=this.za=null;hb.push(this)}function ib(a,b,c){jb[a]&&b&&(jb[a][b]=c)}function pb(){return Date.now()||+new Date}
function r(a){window&&window.alert(a)}function qb(a){var b=!1;window&&(b=window.confirm(a));return b}function rb(a){var b,c=[];a&&(a=0<(b=a.indexOf("."))?a.substr(0,b+1):"");for(b=0;b<hb.length;b++){var d=hb[b];a&&d.id.indexOf(a)||c.push(d)}return c}function sb(a){if(void 0!==a){var b;for(b=0;b<hb.length;b++)if(hb[b].id===a)return hb[b]}return null}
function tb(a,b){var c;if(void 0!==a){var d;b&&(b=0<(d=b.indexOf("."))?b.substr(0,d+1):"");for(d=0;d<hb.length;d++)if(c)c==hb[d]&&(c=null);else if(!(a!=hb[d].type||b&&hb[d].id.indexOf(b)))return hb[d]}return null}function u(a){var b=null;if(a=a.getAttribute("data-value"))try{b=eval("("+a+")")}catch(c){r(c.message+" ("+a+")")}return b}
function ub(a,b){var c=v;b=w(b.parentNode,c+"-control");for(var d=0;d<b.length;d++)for(var e=b[d].childNodes,f=0;f<e.length;f++){var g=e[f];if(1===g.nodeType){var h=g.getAttribute("class");if(h)for(var k=h.split(" "),l=0;l<k.length;l++)switch(h=k[l],h){case c+"-binding":(h=u(g))&&h.binding&&a.sa(h.type,h.binding,g,h.value),l=k.length}}}}
function w(a,b,c){c&&(b+="-"+c+"-object");if(a.getElementsByClassName)return a.getElementsByClassName(b);var d;c=[];a=a.getElementsByTagName("*");var e=new RegExp("(^| )"+b+"( |$)");b=0;for(d=a.length;b<d;b++)e.test(a[b].className)&&c.push(a[b]);return c}
function tb(a){for(var b=!0,c=ub[a];c&&c.length;){var d=c.splice(0,1)[0],e=d[0],f=null;0<=vb.indexOf(e)&&(f=function(){return function(){tb(a)}}());var g=wb[e];if(g)if(!f)b=g(d[1],d[2],d[3]);else{if(!g(f,d[1],d[2],d[3]))break}else{var b=!1,h=rb(d[1],a);if(h)if(g=xb[e])b=g(h,d[2],d[3]);else{var k=h.exports;if(k&&(g=k[e]))if(b=!0,!f)b=g.call(h,d[2],d[3]);else if(!g.call(h,f,d[2],d[3]))break}}if(!b){q("Script error: "+e+(g?" failed":" unrecognized"));break}}c&&!c.length&&delete ub[a];return b}m=r.prototype;
function vb(a){for(var b=!0,c=wb[a];c&&c.length;){var d=c.splice(0,1)[0],e=d[0],f=null;0<=xb.indexOf(e)&&(f=function(){return function(){vb(a)}}());var g=yb[e];if(g)if(!f)b=g(d[1],d[2],d[3]);else{if(!g(f,d[1],d[2],d[3]))break}else{var b=!1,h=tb(d[1],a);if(h)if(g=zb[e])b=g(h,d[2],d[3]);else{var k=h.exports;if(k&&(g=k[e]))if(b=!0,!f)b=g.call(h,d[2],d[3]);else if(!g.call(h,f,d[2],d[3]))break}}if(!b){r("Script error: "+e+(g?" failed":" unrecognized"));break}}c&&!c.length&&delete wb[a];return b}m=t.prototype;
m.toString=function(){return this.name?this.name:this.id||this.type};
m.sa=function(a,b,c){switch(b){case "clear":return this.J[b]||(this.J[b]=c,c.onclick=function(a){return function(){a.J.print&&(a.J.print.value="")}}(this)),!0;case "print":return this.J[b]||(this.za=this.J[b]=c,c.value="",this.u=function(a){return function(b,c){8192<a.value.length&&(a.value=a.value.substr(a.value.length-4096));a.value+=(void 0!==c?c+": ":"")+(b||"")+"\n";a.scrollTop=a.scrollHeight}}(c),this.ja=function(a){this.u(a,this.ab)}),!0;default:return!1}};m.log=function(){};m.u=function(){};
m.status=function(a){this.u(this.ab+": "+a)};m.ja=function(a,b,c){c=c||this.type;b||q((c?c+": ":"")+a)};function yb(a,b){a.A.error=!0;a.ja(b)}function zb(a){return a.A.error?(a.u(a.toString()+" error"),!0):!1}function Ab(a,b){b&&(a.A.ready?b():a.fb=b);return a.A.ready}function Bb(a){if(!a.A.error&&(a.A.ready=!0,a.A.ready)){var b=a.fb;a.fb=null;b&&b()}}function Db(a,b){a.A.Va&&(b?a.A.qb=!0:void 0===b&&a.u(a.toString()+" busy"));return a.A.Va}
function Ob(a,b){if(a.A.qb)return a.A.Va=!1,a.A.qb=!1;if(a.A.error)return a.u(a.toString()+" error"),!1;a.A.Va=b;return a.A.Va}m.Ba=function(){return this.A.ba=!0};m.ra=function(a,b){b&&(this.A.ba=!1);return!0};function Pb(a,b){if(a.D){a===a.D?b|=0:b=b||a.ca;var c=a.D.ca&b;return!!b&&c===b||!!(c&a.D.Eb)}return!1}function Qb(a,b,c,d){a.D&&(!0===c||Pb(a,c|0))&&a.D.message(b,d)}
m.status=function(a){this.u(this.ab+": "+a)};m.ja=function(a,b,c){c=c||this.type;b||r((c?c+": ":"")+a)};function Ab(a,b){a.A.error=!0;a.ja(b)}function Bb(a){return a.A.error?(a.u(a.toString()+" error"),!0):!1}function Cb(a,b){b&&(a.A.ready?b():a.fb=b);return a.A.ready}function Db(a){if(!a.A.error&&(a.A.ready=!0,a.A.ready)){var b=a.fb;a.fb=null;b&&b()}}function Eb(a,b){a.A.Va&&(b?a.A.qb=!0:void 0===b&&a.u(a.toString()+" busy"));return a.A.Va}
function Pb(a,b){if(a.A.qb)return a.A.Va=!1,a.A.qb=!1;if(a.A.error)return a.u(a.toString()+" error"),!1;a.A.Va=b;return a.A.Va}m.Ba=function(){return this.A.ba=!0};m.ra=function(a,b){b&&(this.A.ba=!1);return!0};function Qb(a,b){if(a.D){a===a.D?b|=0:b=b||a.ca;var c=a.D.ca&b;return!!b&&c===b||!!(c&a.D.Eb)}return!1}function Rb(a,b,c,d){a.D&&(!0===c||Qb(a,c|0))&&a.D.message(b,d)}
window&&(window.PCjs||(window.PCjs={}),window.PCjs.Machines||(window.PCjs.Machines={}),window.PCjs.Components||(window.PCjs.Components=[]),window.PCjs.Commands||(window.PCjs.Commands={}));
var gb=window?window.PCjs.Machines:{},eb=window?window.PCjs.Components:[],ub=window?window.PCjs.Commands:{},vb=["hold","sleep","wait"],wb={alert:function(a){q(a);return!0},sleep:function(a,b){setTimeout(a,+b);return!1}},xb={select:function(a,b,c){var d=!1;if(a=a.bindings[b])for(b=0;b<a.options.length;b++)if(a.options[b].textContent==c){a.selectedIndex!=b&&(a.selectedIndex=b);d=!0;break}return d}};
var jb=window?window.PCjs.Machines:{},hb=window?window.PCjs.Components:[],wb=window?window.PCjs.Commands:{},xb=["hold","sleep","wait"],yb={alert:function(a){r(a);return!0},sleep:function(a,b){setTimeout(a,+b);return!1}},zb={select:function(a,b,c){var d=!1;if(a=a.bindings[b])for(b=0;b<a.options.length;b++)if(a.options[b].textContent==c){a.selectedIndex!=b&&(a.selectedIndex=b);d=!0;break}return d}};
Array.prototype.indexOf||(Array.prototype.indexOf=function(a,b){b=b||0;for(var c=this.length;b<c;b++)if(this[b]===a)return b;return-1});Array.isArray||(Array.isArray=function(a){return"[object Array]"===Object.prototype.toString.call(a)});
Function.prototype.bind||(Function.prototype.bind=function(a){function b(){return e.apply(this instanceof c&&a?this:a,d.concat(Array.prototype.slice.call(arguments)))}function c(){}if("function"!=typeof this)throw new TypeError("Function.prototype.bind: non-callable object");var d=Array.prototype.slice.call(arguments,1),e=this;c.prototype=this.prototype;b.prototype=new c;return b});
var v="pdp10",Rb="PDPjs",Sb=Math.pow(2,18)-1,Tb=Math.pow(2,18),Ub=Math.pow(2,17)-1,Vb=Math.pow(2,17),x=Math.pow(2,18)-1,y=Math.pow(2,18),z=Math.pow(2,35)-1,B=Math.pow(2,35),C=Math.pow(2,36)-1,D=Math.pow(2,36),F=Math.pow(2,32),Wb=Math.pow(2,34),Xb=Math.pow(2,36),Yb=Math.pow(2,21),Zb=Math.pow(2,26),$b=Math.pow(2,23),ac=Math.pow(2,30),v="pdp10",Rb="PDPjs",bc={cpu:1,trap:2,fault:4,"int":8,bus:16,memory:32,mmu:64,rom:128,device:256,panel:512,keyboard:1024,key:2048,paper:4096,read:16384,write:32768,serial:1048576,
var v="pdp10",Sb="PDPjs",Tb=Math.pow(2,18)-1,Ub=Math.pow(2,18),Vb=Math.pow(2,17)-1,Wb=Math.pow(2,17),x=Math.pow(2,18)-1,y=Math.pow(2,18),z=Math.pow(2,35)-1,A=Math.pow(2,35),B=Math.pow(2,36)-1,C=Math.pow(2,36),E=Math.pow(2,32),Xb=Math.pow(2,34),Yb=Math.pow(2,36),Zb=Math.pow(2,21),$b=Math.pow(2,26),ac=Math.pow(2,23),bc=Math.pow(2,30),v="pdp10",Sb="PDPjs",cc={cpu:1,trap:2,fault:4,"int":8,bus:16,memory:32,mmu:64,rom:128,device:256,panel:512,keyboard:1024,key:2048,paper:4096,read:16384,write:32768,serial:1048576,
timer:2097152,speaker:16777216,computer:33554432,log:268435456,warn:536870912,buffer:1073741824,halt:-2147483648};
function cc(a,b){r.call(this,"Panel",a,512);this.K=this.L=0;this.V=b;this.i=this.I=this.j=this.w=0;this.M=this.N=-1;this.O=this.R=this.F=!1;this.U=dc;this.C={};this.b={START:[1,1,!0,!1,this.ec],STEP:[1,1,!1,!1,this.fc],ENABLE:[1,1,!1,!1,this.$b],CONT:[1,1,!0,!1,this.Yb],DEP:[0,0,!0,!1,this.Zb],EXAM:[1,1,!0,!1,this.ac],LOAD:[1,1,!0,!1,this.cc],TEST:[0,0,!0,!1,this.bc]};for(a=0;22>a;a++)this.b["S"+a]=[0,0,!1,!1,this.dc,a];this.D=this.v=this.G=this.H=null;this.exports={hold:this.Vb,toggle:this.oc,reset:this.kc,
set:this.nc};Bb(this)}ja(cc,r);m=cc.prototype;m.reset=function(a){this.stop();a&&ec(this,this.w=0)};
m.sa=function(a,b,c,d){if(this.H&&this.H.sa(a,b,c,d)||this.v&&this.v.sa(a,b,c,d)||this.D&&this.D.sa(a,b,c,d))return!0;switch(b){case "PC":return this.J[b]=c,this.L++,!0;default:return"led"==a||"rled"==a?(this.J[b]=c,this.C[b]=d?1:0,this.L++,!0):"switch"==a?(void 0===this.b[b]&&(this.b[b]=[d?1:0,d?1:0]),this.J[b]=c,a=c.parentElement||c,a=a.parentElement||a,a.onmousedown=function(a,b){return function(){fc(a,b)}}(this,b),a.onmouseup=a.onmouseout=function(a,b){return function(){gc(a,b)}}(this,b),a.ontouchstart=
function(a,b){return function(c){fc(a,b);c.preventDefault()}}(this,b),a.ontouchend=function(a,b){return function(){gc(a,b)}}(this,b),!0):r.prototype.sa.call(this,a,b,c,d)}};m.Ma=function(a,b,c,d){this.H=a;this.G=b;this.v=c;this.D=d;hc(this);ic(this)};m.Ba=function(a,b){if(!b)if(this.V&&jc(),!a)this.reset(!0);else if(!this.restore(a))return!1;return!0};m.ra=function(a){return a?this.save():!0};m.save=function(){var a=new G(this);a.set(0,[this.i,this.w,this.j]);return a.data()};
m.restore=function(a){if(a=a[0])kc(this,this.i=a[0]),ec(this,this.w=a[1]),lc(this,a[2]);return!0};m.kc=function(){for(var a in this.b){var b=this.b[a];b[1]=b[0]}ic(this);return!0};function mc(a,b,c){if(a=a.J[b])a.style.backgroundColor=c?"#ff0000":"#000000"}function hc(a,b){for(var c in a.C)mc(a,c,null!=b?b:a.C[c])}function nc(a,b,c){if(a=a.J[b])a.style.marginTop=c?"0px":"20px",a.style.backgroundColor=c?"#00ff00":"#228B22"}function ic(a){for(var b in a.b)nc(a,b,a.b[b][1])}
m.Vb=function(a,b,c){if(fc(this,b)){if(c){var d=this;setTimeout(function(){gc(d,b);a&&a()},+c);return!1}gc(this,b)}return!0};m.nc=function(a,b){if("SR"==a)return lc(this,na(b,8));var c=this.b[a];return c?(c[1]=+b?1:0,nc(this,a,c[1]),!0):!1};m.oc=function(a){return fc(this,a)?(gc(this,a),!0):!1};function fc(a,b){var c=a.b[b];return c?(nc(a,b,c[1]=1-c[1]),c[3]=!0,c[4]&&c[4].call(a,c[1],c[5]),b!=oc&&(a.O=b==pc,a.R=b==qc),!0):!1}
function gc(a,b){var c=a.b[b];c&&(c[2]&&c[3]&&(nc(a,b,c[1]=c[0]),c[4]&&c[4].call(a,c[1],c[5])),c[3]=!1)}m.ec=function(a){a||this.v.A.P||(H(this.v,this.i),this.b[rc]&&this.b[rc][1]&&sc(this.v))};m.fc=function(){};m.$b=function(a){a||this.v.Y()};
m.Yb=function(a){if(!a&&!this.v.A.P)if(this.b[rc]&&this.b[rc][1])sc(this.v);else{if((a=this.D)&&!Db(a,!0))Ob(a,!0),tc(a,0,null),Ob(a,!1);else try{var b=this.v.Za(1);0<b&&(uc(this.v,b),vc(this.v,b,!0),wc(this.v,b))}catch(c){"number"!=typeof c&&yb(this.v,c.stack||c.message)}this.stop();this.H&&K(this.H)}};m.Zb=function(a){a&&!this.v.A.P&&(this.O&&xc(this),a=ec(this,this.w=this.j),this.U==dc?yc(this.G,this.i,a):this.v.g(this.i,a))};
m.ac=function(a){if(!a&&!this.v.A.P){var b;this.R&&xc(this);this.U==dc?b=zc(this.G,this.i):b=this.v.f(this.i);ec(this,this.w=b)}};m.cc=function(a){a||this.v.A.P||kc(this,this.j)};m.bc=function(a){a?(this.F=!0,hc(this,!0)):(this.F=!1,hc(this),lc(this,0))};m.dc=function(a,b){this.j=a?this.j|1<<b:this.j&~(1<<b)};function xc(a){var b=1,c=a.G.j;a.b[oc]&&a.b[oc][1]||(b=-b);kc(a,a.i&~c|a.i+b&c)}
function kc(a,b){a.i=b&a.G.j;if(a.M!==a.i){a.M=a.i;b=a.M;for(var c=0;22>c;c++){var d=a,e="A"+c,f=b&1<<c;d.C[e]=f;d.F||mc(d,e,f)}}}function ec(a,b){a.I=b%D;if(a.N!==a.I){a.N=a.I;b=a.N;for(var c=0;16>c;c++){var d=a,e="D"+c,f=b&1<<c;d.C[e]=f;d.F||mc(d,e,f)}}return a.I}function lc(a,b){a.j=b|0;for(b=0;22>b;b++)a.b["S"+b][1]=a.j&1<<b?1:0;ic(a);return!0}m.stop=function(){kc(this,this.v.i)};
function jc(){for(var a=w(document,v,"panel"),b=0;b<a.length;b++){var c=a[b],d=t(c),e=qb(d.id);e||(e=new cc(d,!0));sb(e,c)}}var dc=7,pc="DEP",rc="ENABLE",qc="EXAM",oc="STEP";Xa(jc);function Ac(a,b,c){r.call(this,"Bus",a,16);this.v=b;this.D=c;this.F=+a.busWidth||18;this.I=1<<this.F;this.j=this.I-1;this.i=Math.log2(16384);this.C=this.I/16384|0;this.w=0;this.b=[];a=new Bc(this);Cc(a,this.D);this.b=Array(this.C);for(b=0;b<this.C;b++)this.b[b]=a;Bb(this)}ja(Ac,r);m=Ac.prototype;m.reset=function(){};
m.Ba=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};m.ra=function(a){return a?this.save():!0};m.save=function(){var a=new G(this);a.set(0,Dc(this));return a.data()};m.restore=function(a){a:{a=a[0];var b;for(b=0;b<a.length-1;b+=2){var c=a[b],d=a[b+1];if(d&&4096>d.length){for(var e=0,f=Array(4096),g=0;g<d.length-1;)for(var h=d[g++],k=d[g++];h--;)f[e++]=k;d=f}e=this.b[c];if(!e||!e.restore(d)){q("Unable to restore memory block "+c);a=!1;break a}}a=!0}return a};
function Ec(a,b,c,d){for(var e=b,f=c,g=e>>>a.i;0<f&&g<a.b.length;){var h=a.b[g],k=16384*g,l=16384-(e-k);l>f&&(l=f);if(h&&h.size){if(h.type==d){if(e+f<=h.B)return h.Xa+=h.B-e,h.B=e,!0;if(e>=h.B+h.Xa){l=h.size-(e-k);l>f&&(l=f);h.Xa=e-h.B+l;e=k+16384;f-=l;g++;continue}}return Fc(Gc,e,f)}e=new Bc(a,e,l,16384,d);Cc(e,a.D,h);a.b[g++]=e;e=k+16384;f-=l}return 0>=f?(a.status("Added "+(c>>10)+"Kb "+Hc[d]+" at "+ua(b)),!0):Fc(Ic,b,c)}
function zc(a,b){var c=a.b[(b&a.j)>>>a.i];a.w++;b=c.w(b&16383,b);a.w--;return b}function yc(a,b,c){var d=a.b[(b&a.j)>>>a.i];a.w++;d.D(c,b&16383,b);a.w--}function Dc(a){for(var b=0,c=[],d=0;d<a.C;d++){var e=a.b[d];if(e.sb||e.Tb){c[b++]=d;var f=b++;if(e=e.save()){for(var g=0,h=0,k=[];g<e.length;){for(var l=e[g],p=g+1;p<e.length&&e[p]===l;)p++;k[h++]=p-g;k[h++]=l;g=p}k.length<e.length&&(e=k)}c[f]=e}}return c}
m.Jb=function(a){if(!this.w)throw this.D&&Pb(this.D,4)&&Qb(this.D,"memory fault on "+L(this.D,a),!0,!0),this.v.Y(),-1;};function Fc(a,b,c){q("Memory block error ("+a+": "+n(b)+","+n(c)+")");return!1}var Gc=1,Ic=2;function Jc(a){r.call(this,"Device",a,256)}ja(Jc,r);m=Jc.prototype;m.Ma=function(a,b,c,d){this.G=b;this.H=a;this.v=c;this.D=d;Bb(this)};m.Ba=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};m.ra=function(a){return a?this.save():!0};m.reset=function(){};
m.save=function(){return(new G(this)).data()};m.restore=function(){return!0};Xa(function(){for(var a=w(document,v,"device"),b=0;b<a.length;b++){var c,d=a[b];c=t(d);switch(c.type){case "default":c=new Jc(c),sb(c,d)}}});
function Bc(a,b,c,d,e){this.H=a;this.id=Nc+=2;this.B=b;this.Xa=c;this.size=d||0;this.type=e||Oc;this.G=e==Pc;this.b=null;this.f=this.w=this.vb;this.g=this.D=this.Ya;this.i=this.v=0;Cc(this);this.sb=this.Tb=!1;if(this.size){a=this.j=Array(this.size);for(b=0;b<a.length;b++)a[b]=0;Qc(this,Rc)}else Qc(this)}m=Bc.prototype;m.save=function(){return this.j};m.restore=function(a){return a&&this.size==a.length?(this.j=a,this.sb=!0):!1};function Qc(a,b){b||(b=Sc);Tc(a,b,void 0);Uc(a,b,void 0)}
function Tc(a,b,c){c&&a.i||(a.f=b[0]||a.vb);if(c||void 0===c)a.w=b[0]||a.vb}function Uc(a,b,c){c&&a.v||(a.g=!a.G&&b[1]||a.Ya);if(c||void 0===c)a.D=b[1]||a.Ya}m.Ra=function(a,b){b?this.v++||Uc(this,Vc,!1):this.i++||Tc(this,Vc,!1)};function Wc(a,b){b?--a.v||(a.g=a.G?a.Ya:a.D):--a.i||(a.f=a.w)}function Cc(a,b,c){a.b=b;a.i=a.v=0;c&&((a.i=c.i)&&Tc(a,Vc,!1),(a.v=c.v)&&Uc(a,Vc,!1))}m.vb=function(a,b){this.b&&Pb(this.b,32)&&Qb(this.b,"attempt to read invalid address "+L(this.b,b),!0);this.H.Jb(b);return-1};
m.Ya=function(a,b,c){this.b&&Pb(this.b,32)&&Qb(this.b,"attempt to write "+L(this.b,a)+" to invalid addresses "+L(this.b,c),!0);this.H.Jb(c)};m.ic=function(a){return this.j[a]};m.rc=function(a,b){this.j[b]!=a&&(this.j[b]=a,this.sb=!0)};m.gc=function(a,b){if(this.b&&null!=this.B){var c=this.b;Xc(c,this.B+a,2,c.N)&&c.Y(!1)}return this.w(a,b)};m.qc=function(a,b,c){if(this.b&&null!=this.B){var d=this.b;Xc(d,this.B+b,2,d.K)&&d.Y(!1)}this.G?this.Ya(a,0,c):this.D(a,b,c)};
var Oc=0,Pc=2,Hc=["NONE","RAM","ROM"],Nc=0,Sc=[],Rc=[Bc.prototype.ic,Bc.prototype.rc],Vc=[Bc.prototype.gc,Bc.prototype.qc];
function Yc(a,b){r.call(this,"CPU",a,1);b=+a.cycles||b;var c=+a.multiplier||1;this.kb=0;this.ob=b;this.ha=c;this.lb=Math.round(this.ob/1E4)/100;this.ga=this.lb*this.ha;this.nb=this.Ja=this.ma=this.cb=0;this.A.P=this.A.ib=!1;this.A.fa=a.autoStart;"string"==typeof this.A.fa&&(this.A.fa="true"==this.A.fa);this.A.Ua=!1;this.Ha=this.ta=0;this.Ia=+a.csStart;this.pa=+a.csInterval;this.ua=+a.csStop;this.R=[];this.Fb=this.lc.bind(this);this.X=this.M=this.V=this.N=this.L=this.Ga=this.U=this.va=this.pb=this.Z=
0;this.Oa=null;Bb(this)}ja(Yc,r);m=Yc.prototype;m.Ma=function(a,b,c,d){this.H=a;this.G=b;this.D=d;this.Oa=a.j;for(a=0;a<Zc.length;a++)(b=this.J[Zc[a]])&&this.H.sa(null,Zc[a],b);Bb(this)};m.reset=function(){};m.save=function(){return null};m.restore=function(){return!1};
m.Ba=function(a,b){var c=$c(this.H,"autoStart");null!=c?this.A.fa="true"==c?!0:"false"==c?!1:!!c:null==this.A.fa&&(this.A.fa=!this.D&&void 0===this.J.run);if(!b){if(a){ad(this);if(!this.restore(a))return!1;bd(this)}else this.reset();this.D?(a=this.D,b=this.A.fa,a.Ja=!0,a.u("Type ? for help with PDPjs Debugger commands"),cd(a),b||dd(a),a.ua&&(b=a.ua,a.ua=null,ed(a,b,!0))):this.status("No debugger detected");this.A.fa||this.u("CPU will not be auto-started "+(this.Oa?"(click Run to start)":"(type 'go' to start)"))}return!0};
m.ra=function(a){return a?this.save():!0};m.fa=function(){return this.A.P?!0:this.A.fa?(sc(this),!0):!1};m.Kb=function(){return 0};function bd(a){void 0===a.Ia&&(a.Ia=0);void 0===a.pa&&(a.pa=-1);void 0===a.ua&&(a.ua=-1);a.A.Ua=0<=a.Ia&&0<a.pa;a.A.Ua&&(a.Ha=0,a.ta=a.Ia-a.X)}function wc(a,b){if(a.A.Ua){var c=!1;a.Ha=a.Ha+a.Kb()|0;a.ta-=b;0>=a.ta&&(a.ta+=a.pa,c=!0);0<=a.ua&&a.ua<=fd(a)&&(a.pa=a.ua=-1,bd(a),a.Y(),c=!0);c&&a.u(fd(a)+" cycles: checksum="+n(a.Ha))}}
m.sa=function(a,b,c){var d=this;switch(b){case "power":case "reset":return this.J[b]=c,!0;case "run":return this.J[b]=c,c.onclick=function(){var a;if(a=d.H)if(a=d.H,a.A.ba)a=!0;else{var b=null,c,h=pb(a.id);for(c=0;c<h.length&&(b=h[c],b===a||b.A.ready);c++);if(c==h.length)for(c=0;c<h.length&&(b=h[c],b===a||b.A.ba);c++);c==h.length&&(b=a);q("The "+b.type+" component ("+b.id+") is not "+(b.A.ready?"powered yet":"ready yet"+(b.fb?" (waiting for notification)":""))+".");a=!1}a&&(d.A.P?d.Y():sc(d))},!0;
case "speed":return this.J[b]=c,!0;case "setSpeed":return this.J[b]=c,c.onclick=function(){gd(d,d.ha<<1,!0)},c.textContent=this.ga.toFixed(2)+"Mhz",!0}return!1};function vc(a,b,c){a.X+=b;c&&(a.V=a.N=0)}function hd(a,b){var c=1;b&&1<a.ha&&a.Z&&(c=a.Z/a.lb);a.nb=Math.round(1E3/id);a.Ja=Math.floor(a.ob/id*c);b||(a.ma=a.Ja);a.cb=0}function fd(a){return a.X+a.M+a.V-a.N}function ad(a){a.Z=0;a.pb=0;a.X=a.M=a.V=a.N=0;bd(a);gd(a,1)}
function gd(a,b,c){var d=!1;if(void 0!==b){.8>a.Z/a.ga?b=1:d=!0;a.ha=b;b=a.lb*a.ha;if(a.ga!=b){a.ga=b;b=a.ga.toFixed(2)+"Mhz";var e=a.J.setSpeed;e&&(e.textContent=b);a.u("target speed: "+b)}c&&a.H&&jd(a.H)}vc(a,a.M);a.M=0;a.L=nb();a.U=0;hd(a);return d}function kd(a,b){for(var c=a.R.length-1;0<=c;c--){var d=a.R[c];0>d[0]||b>d[0]&&(b=d[0])}return b}function ld(a){for(var b=[],c=0;c<a.R.length;c++)b.push(a.R[c][0]);return b}
function uc(a,b){for(var c=a.R.length-1;0<=c;c--){var d=a.R[c];0>d[0]||(d[0]-=b,0>=d[0]&&(d[0]=-1,d[1]()))}}function md(a,b){var c=a.V-=a.N;a.N=0;b&&(a.V=0);return c}
m.lc=function(){if(this.A.P){this.cb>=this.ob&&hd(this,!0);this.va=0;this.Ga=nb();if(this.U){var a=this.Ga-this.U;a>this.nb&&(this.L+=a,this.L>this.Ga&&(this.L=this.Ga))}try{do{var b=kd(this,this.A.Ua?1:this.Ja);try{this.Za(b)}catch(e){if("number"!=typeof e)throw e;}b=md(this,!0);this.va+=b;this.M+=b;wc(this,b);uc(this,b);this.ma-=b;if(0>=this.ma){this.ma+=this.Ja;++this.pb>=nd&&(this.H&&K(this.H,void 0),this.pb=0);break}}while(this.A.P)}catch(e){this.Y();this.H&&this.H.stop(nb(),fd(this));yb(this,
e.stack||e.message);return}if(this.A.P){a=setTimeout;b=this.Fb;this.U=nb();var c=this.nb;this.va&&(c=Math.round(c*this.va/this.Ja));var c=c-(this.U-this.Ga),d=this.U-this.L;d&&(this.Z=Math.round(this.M/(10*d))/100,864E5<=d&&(this.X=0,gd(this)));if(0>c||this.Z<this.ga)-1E3>c&&(this.L-=c),c=0;this.cb+=this.va;this.U+=c;a(b,c)}}};
function sc(a,b){if(!zb(a))if(a.A.P)a.u(a.toString()+" busy");else{gd(a);a.A.P=!0;a.A.ib=!0;var c=a.J.run;c&&(c.textContent="Halt");a.H&&(b&&jd(a.H,!0),a.H.start(a.L,fd(a)));a.D||a.status("Started");setTimeout(a.Fb,0)}}m.Za=function(){return 0};m.Y=function(a){var b=!1;if(this.A.P){md(this);vc(this,this.M);this.M=0;this.A.P=!1;if(b=this.J.run)b.textContent="Run";this.H&&this.H.stop(nb(),fd(this));b=!0;this.D||this.status("Stopped")}this.A.complete=a;return b};var id=30,nd=15,Zc=["power","reset"];
function od(a){var b=+a.model||1001;Yc.call(this,a,1E6);this.mb=b;this.$a=+a.addrReset||0;this.Sb=pd.bind(this);this.w=M.bind(this);this.Da=null;this.Cb=[];this.A.complete=!1}ja(od,Yc);m=od.prototype;
m.reset=function(){this.status("Model "+this.mb);this.A.P&&this.Y();this.Ka=this.La=this.b=this.I=0;this.i=this.oa=this.$a;this.K=this.O=-1;this.F=this.j=0;this.jb=[0,0];this.wa=[0,0];this.na=[0,0];this.xa=[0,0];this.Ca=this.i;this.C=0;this.f=this.hc;this.g=this.sc;this.Da=null;ad(this);this.A.error=!1;Yc.prototype.reset.call(this)};m.Kb=function(){return 0};
m.save=function(){var a=new G(this);a.set(0,[this.b,this.I,this.Ka,this.La,this.i,this.O,this.K,this.j,this.C,this.oa,this.Ca,this.$a]);a.set(1,[]);a.set(2,[this.X,this.ha,this.A.fa]);a.set(3,qd(this));a.set(4,ld(this));return a.data()};
m.restore=function(a){var b;b=a[0];ga();ca();ga();var c=b[Symbol.iterator];b=c?c.call(b):ha(b);this.b=b.next().value;this.I=b.next().value;this.Ka=b.next().value;this.La=b.next().value;this.i=b.next().value;this.O=b.next().value;this.K=b.next().value;this.j=b.next().value;this.C=b.next().value;this.oa=b.next().value;this.Ca=b.next().value;this.$a=b.next().value;b=a[2];this.X=b[0];gd(this,b[1]);this.A.fa=b[2];b=a[3];for(c=b.length-1;0<=c;c--){var d;a:{for(d=0;d<this.Cb.length;d++){var e=this.Cb[d];
if(e.pc===b[c]){d=e;break a}}d=null}d&&(d.next=this.Da,this.Da=d)}a=a[4];for(b=0;b<this.R.length&&b<a.length;b++)this.R[b][0]=a[b];return!0};function rd(a,b){a.j=a.j&-254049|b&254048;a.j|=b&4096;b&2048?a.j&4096||(a.j|=2048):a.j&=-2049}function sd(a,b){var c=a.i;a.i=(c+b)%Tb;return c}function H(a,b){a.I=0;a.O=-1;a.i=b%Tb}function qd(a){var b=[];for(a=a.Da;a;)b.push(a.pc),a=a.next;return b}m.hc=function(a){var b=this.G;a=this.Ca=a;return b.b[(a&b.j)>>>b.i].f(a&16383,a)};
m.sc=function(a,b){var c=this.G;a=this.Ca=a;c.b[(a&c.j)>>>c.i].g(b,a&16383,a);return b};
m.Za=function(a){this.A.complete=!0;var b=this.D?td(this.D)?1:this.A.ib?-1:0:0,c=a?this.A.ib?0:1:-1;this.A.ib=!1;this.V=this.N=a;this.C=this.C&-5|(b?4:0);do{if(this.C){if(this.C&4){if(ud(this.D,this.i,c)){this.Y();break}++b||(this.C&=-5);c||c++}if(a=this.C&11)this.C&2?this.Da||(this.C&=-3):this.C&1&&this.C++,a=!1;if(a){if(this.C&4&&ud(this.D,this.i,c)){this.Y();break}if(0>c)break}}this.C&=15;this.I&4194304?this.I=this.Ka=this.f(this.b):0<=this.O?(this.I=this.La=this.f(this.O),this.O=-1):(this.I=this.La=
this.f(this.oa=this.i),this.i=(this.i+1)%Tb);this.I&=8388607;this.b=this.I&262143;if(a=this.I>>18&15)this.b=this.b+(this.Ka=this.f(a))&Sb;a=this.I&4194304?-1:this.La/$b|0;0<=a&&this.Sb(a);this.N--}while(0<this.N);return this.A.complete?this.V-this.N:!1===this.A.complete?-1:0};Xa(function(){for(var a=w(document,v,"cpu"),b=0;b<a.length;b++){var c=a[b],d=t(c),d=new od(d);sb(d,c)}});function pd(a){vd[a>>4].call(this,a,a&15)}function O(a){this.w(a)}
function wd(){var a=0,b=this.f(this.b),c=b/ac&63,d=b>>24&63,c=c-d;0>c&&(a++,c=36-d,0>c&&(c=64-d));b=c*ac+(d<<24)+(b&16777215);a&&(b=(b+a)%D);this.g(this.b,b)}function xd(a,b){a=this.f(this.b);if(0>this.K)this.K=a,this.I=this.b|4194304;else{var c=this.K/ac&63,d=this.K>>24&63;a=32>=c+d?(a>>c&(1<<d)-1)>>>0:Math.trunc(a/Math.pow(2,c))%Math.pow(2,d);this.g(b,a);this.j&=-8193;this.K=-1}}
function yd(a,b){a=this.f(this.b);if(0>this.K)this.K=a,this.I=this.b|4194304;else{var c=this.K/ac&63,d=this.K>>24&63;b=this.f(b)%Math.pow(2,d)*Math.pow(2,c)%D;a=a-a%Math.pow(2,c+d)+b+a%Math.pow(2,c);this.g(this.b,a);this.j&=-8193;this.K=-1}}function zd(a,b){this.g(b,this.f(this.b))}function Ad(a,b){this.g(b,this.b)}function Bd(a,b){this.g(this.b,this.f(b))}function Cd(a,b){this.g(b,0)}function Dd(a,b){this.g(b,C-this.f(b))}function Ed(a,b){this.g(b,C)}
function Fd(a,b){var c=this.f(this.b),d=this.f(b);this.g(b,Gd(a,d,c)+(c-(c&x)))}function Hd(a,b){var c=this.f(b);this.g(b,Gd(a,c,0))}function Id(a,b){b=this.f(b);var c=this.f(this.b);this.g(this.b,Gd(a,c,b)+(b-(b&x)))}function Jd(a,b){var c=this.f(this.b),d=c;if(a&=384)switch(d-=d&x,a){case 256:d+=x;break;case 384:d+=c>z?x:0}c=d;this.g(this.b,c);b&&this.g(b,c)}function Kd(a,b){var c=(this.f(this.b)&x)*y,d=this.f(b);this.g(b,Gd(a,d,c)+c)}
function Ld(a,b){var c=this.b*y,d=this.f(b);this.g(b,Gd(a,d,c)+c)}function Md(a,b){b=(this.f(b)&x)*y;var c=this.f(this.b);this.g(this.b,Gd(a,c,b)+b)}function Nd(a,b){var c=this.f(this.b),d=(c&x)*y,c=Gd(a,c,d)+d;this.g(this.b,c);b&&this.g(b,c)}function ee(a,b){var c=this.f(this.b)&x,d=this.f(b);this.g(b,fe(a,d,c)+c)}function ge(a,b){var c=this.f(b);this.g(b,fe(a,c,this.b)+this.b)}function he(a,b){b=this.f(b)&x;var c=this.f(this.b);this.g(this.b,fe(a,c,b)+b)}
function ie(a,b){var c=this.f(this.b),d=c;if(a&=384)switch(d&=x,a){case 256:d+=x*y;break;case 384:d+=c>Ub?x*y:0}c=d;this.g(this.b,c);b&&this.g(b,c)}function je(a,b){var c=this.f(this.b)/y|0,d=this.f(b);this.g(b,fe(a,d,c)+c)}function ke(a,b){var c=this.f(b);this.g(b,fe(a,c,0))}function le(a,b){b=this.f(b)/y|0;var c=this.f(this.b);this.g(this.b,fe(a,c,b)+b)}function me(a,b){var c=this.f(this.b),d=c/y|0,c=fe(a,c,d)+d;this.g(this.b,c);b&&this.g(b,c)}function P(a){ne[a&7].call(this,a,a>>3&127)}
function oe(){}function pe(){}function M(a){this.u("undefined opcode: "+ua(a));sd(this,-1);this.Y()}function qe(a){a>z&&(a!=B?a=Xb-a:this.j|=163840);return a}function Q(a,b){var c=(a+b)%D;re.call(this,a,b,c);return c}
function se(a,b,c){var d=!1,e=!1;if(void 0===c){if(!a)return this.j|=131104,-1;c=b>z?C:0}else if((c<B?c:Xb-c-(b?1:0))>=(a<B?a:Xb-a))return this.j|=131104,-1;var f=c-c%B;b=b%B+(c&1)*B;c=this.F=f+Math.trunc(c/2);a>z&&(a=D-a,d=!d);c>z&&(b?(c=C-c,b=D-b):c&&(c=D-c),e=!0,d=!d);f=this.jb;f[0]=0;f[1]=0;f=this.wa;f[0]=1;f[1]=0;f=this.na;f[0]=a;f[1]=0;a=this.xa;a[0]=b;for(a[1]=c;0<te(this.xa,this.na);)ue(this.na,this.na),ue(this.wa,this.wa);do{if(0<=te(this.xa,this.na)&&(c=this.xa,a=this.na,c[0]-=a[0],c[1]-=
a[1],0>c[0]&&(c[0]+=D,c[1]--),ue(this.jb,this.wa),ve(this.xa)))break;we(this.na);we(this.wa)}while(!ve(this.wa));b=this.jb[0];this.F=this.xa[0];d&&b&&(b=D-b);e&&this.F&&(this.F=D-this.F);return b}
function xe(a,b,c,d){var e=a,f=b;b=!1;var g;e>z&&(d||1001!=this.mb||e!=B)&&(e=D-e,b=!b);f>z&&(f=D-f,b=!b);if(e<y&&f<y)a=e*f,g=0;else{a=e&x;e=Math.trunc(e/y);g=f&x;var f=Math.trunc(f/y),h=a*g,k=e*g+Math.trunc(h/y);g=Math.trunc(k/y);k=(k&x)+a*f;a=(k*y+(h&x))%D;g+=Math.trunc(k/y)+e*f}b&&(a?(g=C-g,a=D-a):g&&(g=D-g));b=a;a=g;e=a-a%B;a=2*a%D+Math.trunc(b/B);b=e+b%B;a-a%B!=e&&(b=a);d?g=b:(b==B&&a==B&&(this.j|=131072),this.F=b,g=a);c&&(a=this.F,!d&&(g||a>z)&&(g!=C||a<=z)&&(this.j|=131072),g=a);return g}
function ye(a){a?a==B?this.j|=163840:a=Xb-a:this.j|=98304;return a}function ze(a,b){var c=a-b;0>c&&(c+=D);re.call(this,c,b,a);return c}function re(a,b,c){a=Math.trunc(a/Wb);b=Math.trunc(b/Wb);c=Math.trunc(c/Wb);var d=a^(a^b)&(b^c);this.j=this.j|(d&2?65536:0)|(d&1?32768:0)|((a^c)&(b^c)&2?131072:0)}function R(a,b){return((a/F|0)&(b/F|0))*F+((a&b)>>>0)}function S(a,b){return R(a,(~(b/F|0)&15)*F+(~b>>>0))}function Ae(a,b){return(a<B?a:a-D)-(b<B?b:b-D)}
function Be(a,b){return(~((a/F|0)^(b/F|0))&15)*F+(~(a^b)>>>0)}function T(a,b){return(a/F|0|b/F|0)*F+((a|b)>>>0)}function U(a){return a<B?a:a-D}function V(a,b){return((a/F|0)^(b/F|0))*F+((a^b)>>>0)}function W(a){return(a/y|0)+(a&x)*y}function fe(a,b,c){switch(a&384){case 0:b-=b&x;break;case 128:b=0;break;case 256:b=x*y;break;case 384:b=c>Ub?x*y:0}return b}function Gd(a,b,c){switch(a&384){case 0:b&=x;break;case 128:b=0;break;case 256:b=x;break;case 384:b=c>z?x:0}return b}
function ue(a,b){a[0]+=b[0];a[1]+=b[1];a[0]>=D&&(a[0]%=D,a[1]++)}function te(a,b){var c=a[1]-b[1];c||(c=a[0]-b[0]);return c}function we(a){a[1]%2&&(a[0]+=D);a[0]=Math.trunc(a[0]/2);a[1]=Math.trunc(a[1]/2)}function ve(a){return!a[0]&&!a[1]}
var vd=[O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)},wd,function(a,b){this.j&8192||(wd.call(this),this.j|=8192);xd.call(this,0,b)},xd,function(a,b){this.j&8192||(wd.call(this),this.j|=8192);yd.call(this,0,b)},yd,function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)},
function dc(a,b){t.call(this,"Panel",a,512);this.K=this.L=0;this.V=b;this.i=this.I=this.j=this.w=0;this.M=this.N=-1;this.O=this.R=this.F=!1;this.S=ec;this.C={};this.b={START:[1,1,!0,!1,this.ec],STEP:[1,1,!1,!1,this.fc],ENABLE:[1,1,!1,!1,this.$b],CONT:[1,1,!0,!1,this.Yb],DEP:[0,0,!0,!1,this.Zb],EXAM:[1,1,!0,!1,this.ac],LOAD:[1,1,!0,!1,this.cc],TEST:[0,0,!0,!1,this.bc]};for(a=0;22>a;a++)this.b["S"+a]=[0,0,!1,!1,this.dc,a];this.D=this.v=this.G=this.H=null;this.exports={hold:this.Vb,toggle:this.oc,reset:this.kc,
set:this.nc};Db(this)}ja(dc,t);m=dc.prototype;m.reset=function(a){this.stop();a&&fc(this,this.w=0)};
m.sa=function(a,b,c,d){if(this.H&&this.H.sa(a,b,c,d)||this.v&&this.v.sa(a,b,c,d)||this.D&&this.D.sa(a,b,c,d))return!0;switch(b){case "PC":return this.J[b]=c,this.L++,!0;default:return"led"==a||"rled"==a?(this.J[b]=c,this.C[b]=d?1:0,this.L++,!0):"switch"==a?(void 0===this.b[b]&&(this.b[b]=[d?1:0,d?1:0]),this.J[b]=c,a=c.parentElement||c,a=a.parentElement||a,a.onmousedown=function(a,b){return function(){gc(a,b)}}(this,b),a.onmouseup=a.onmouseout=function(a,b){return function(){hc(a,b)}}(this,b),a.ontouchstart=
function(a,b){return function(c){gc(a,b);c.preventDefault()}}(this,b),a.ontouchend=function(a,b){return function(){hc(a,b)}}(this,b),!0):t.prototype.sa.call(this,a,b,c,d)}};m.Ma=function(a,b,c,d){this.H=a;this.G=b;this.v=c;this.D=d;ic(this);jc(this)};m.Ba=function(a,b){if(!b)if(this.V&&kc(),!a)this.reset(!0);else if(!this.restore(a))return!1;return!0};m.ra=function(a){return a?this.save():!0};m.save=function(){var a=new H(this);a.set(0,[this.i,this.w,this.j]);return a.data()};
m.restore=function(a){if(a=a[0])lc(this,this.i=a[0]),fc(this,this.w=a[1]),mc(this,a[2]);return!0};m.kc=function(){for(var a in this.b){var b=this.b[a];b[1]=b[0]}jc(this);return!0};function nc(a,b,c){if(a=a.J[b])a.style.backgroundColor=c?"#ff0000":"#000000"}function ic(a,b){for(var c in a.C)nc(a,c,null!=b?b:a.C[c])}function oc(a,b,c){if(a=a.J[b])a.style.marginTop=c?"0px":"20px",a.style.backgroundColor=c?"#00ff00":"#228B22"}function jc(a){for(var b in a.b)oc(a,b,a.b[b][1])}
m.Vb=function(a,b,c){if(gc(this,b)){if(c){var d=this;setTimeout(function(){hc(d,b);a&&a()},+c);return!1}hc(this,b)}return!0};m.nc=function(a,b){if("SR"==a)return mc(this,oa(b,8));var c=this.b[a];return c?(c[1]=+b?1:0,oc(this,a,c[1]),!0):!1};m.oc=function(a){return gc(this,a)?(hc(this,a),!0):!1};function gc(a,b){var c=a.b[b];return c?(oc(a,b,c[1]=1-c[1]),c[3]=!0,c[4]&&c[4].call(a,c[1],c[5]),b!=pc&&(a.O=b==qc,a.R=b==rc),!0):!1}
function hc(a,b){var c=a.b[b];c&&(c[2]&&c[3]&&(oc(a,b,c[1]=c[0]),c[4]&&c[4].call(a,c[1],c[5])),c[3]=!1)}m.ec=function(a){a||this.v.A.P||(I(this.v,this.i),this.b[sc]&&this.b[sc][1]&&tc(this.v))};m.fc=function(){};m.$b=function(a){a||this.v.Y()};
m.Yb=function(a){if(!a&&!this.v.A.P)if(this.b[sc]&&this.b[sc][1])tc(this.v);else{if((a=this.D)&&!Eb(a,!0))Pb(a,!0),uc(a,0,null),Pb(a,!1);else try{var b=this.v.Za(1);0<b&&(vc(this.v,b),wc(this.v,b,!0),xc(this.v,b))}catch(c){"number"!=typeof c&&Ab(this.v,c.stack||c.message)}this.stop();this.H&&K(this.H)}};m.Zb=function(a){a&&!this.v.A.P&&(this.O&&yc(this),a=fc(this,this.w=this.j),this.S==ec?zc(this.G,this.i,a):this.v.g(this.i,a))};
m.ac=function(a){if(!a&&!this.v.A.P){var b;this.R&&yc(this);this.S==ec?b=Ac(this.G,this.i):b=this.v.f(this.i);fc(this,this.w=b)}};m.cc=function(a){a||this.v.A.P||lc(this,this.j)};m.bc=function(a){a?(this.F=!0,ic(this,!0)):(this.F=!1,ic(this),mc(this,0))};m.dc=function(a,b){this.j=a?this.j|1<<b:this.j&~(1<<b)};function yc(a){var b=1,c=a.G.j;a.b[pc]&&a.b[pc][1]||(b=-b);lc(a,a.i&~c|a.i+b&c)}
function lc(a,b){a.i=b&a.G.j;if(a.M!==a.i){a.M=a.i;b=a.M;for(var c=0;22>c;c++){var d=a,e="A"+c,f=b&1<<c;d.C[e]=f;d.F||nc(d,e,f)}}}function fc(a,b){a.I=b%C;if(a.N!==a.I){a.N=a.I;b=a.N;for(var c=0;16>c;c++){var d=a,e="D"+c,f=b&1<<c;d.C[e]=f;d.F||nc(d,e,f)}}return a.I}function mc(a,b){a.j=b|0;for(b=0;22>b;b++)a.b["S"+b][1]=a.j&1<<b?1:0;jc(a);return!0}m.stop=function(){lc(this,this.v.i)};
function kc(){for(var a=w(document,v,"panel"),b=0;b<a.length;b++){var c=a[b],d=u(c),e=sb(d.id);e||(e=new dc(d,!0));ub(e,c)}}var ec=7,qc="DEP",sc="ENABLE",rc="EXAM",pc="STEP";$a(kc);function Bc(a,b,c){t.call(this,"Bus",a,16);this.v=b;this.D=c;this.F=+a.busWidth||18;this.I=1<<this.F;this.j=this.I-1;this.i=Math.log2(16384);this.C=this.I/16384|0;this.w=0;this.b=[];a=new Cc(this);Dc(a,this.D);this.b=Array(this.C);for(b=0;b<this.C;b++)this.b[b]=a;Db(this)}ja(Bc,t);m=Bc.prototype;m.reset=function(){};
m.Ba=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};m.ra=function(a){return a?this.save():!0};m.save=function(){var a=new H(this);a.set(0,Ec(this));return a.data()};m.restore=function(a){a:{a=a[0];var b;for(b=0;b<a.length-1;b+=2){var c=a[b],d=a[b+1];if(d&&4096>d.length){for(var e=0,f=Array(4096),g=0;g<d.length-1;)for(var h=d[g++],k=d[g++];h--;)f[e++]=k;d=f}e=this.b[c];if(!e||!e.restore(d)){r("Unable to restore memory block "+c);a=!1;break a}}a=!0}return a};
function Fc(a,b,c,d){for(var e=b,f=c,g=e>>>a.i;0<f&&g<a.b.length;){var h=a.b[g],k=16384*g,l=16384-(e-k);l>f&&(l=f);if(h&&h.size){if(h.type==d){if(e+f<=h.B)return h.Xa+=h.B-e,h.B=e,!0;if(e>=h.B+h.Xa){l=h.size-(e-k);l>f&&(l=f);h.Xa=e-h.B+l;e=k+16384;f-=l;g++;continue}}return Gc(Hc,e,f)}e=new Cc(a,e,l,16384,d);Dc(e,a.D,h);a.b[g++]=e;e=k+16384;f-=l}return 0>=f?(a.status("Added "+(c>>10)+"Kb "+Ic[d]+" at "+wa(b)),!0):Gc(Jc,b,c)}
function Ac(a,b){var c=a.b[(b&a.j)>>>a.i];a.w++;b=c.w(b&16383,b);a.w--;return b}function zc(a,b,c){var d=a.b[(b&a.j)>>>a.i];a.w++;d.D(c,b&16383,b);a.w--}function Ec(a){for(var b=0,c=[],d=0;d<a.C;d++){var e=a.b[d];if(e.sb||e.Tb){c[b++]=d;var f=b++;if(e=e.save()){for(var g=0,h=0,k=[];g<e.length;){for(var l=e[g],p=g+1;p<e.length&&e[p]===l;)p++;k[h++]=p-g;k[h++]=l;g=p}k.length<e.length&&(e=k)}c[f]=e}}return c}
m.Jb=function(a){if(!this.w)throw this.D&&Qb(this.D,4)&&Rb(this.D,"memory fault on "+L(this.D,a),!0,!0),this.v.Y(),-1;};function Gc(a,b,c){r("Memory block error ("+a+": "+n(b)+","+n(c)+")");return!1}var Hc=1,Jc=2;function Kc(a){t.call(this,"Device",a,256)}ja(Kc,t);m=Kc.prototype;m.Ma=function(a,b,c,d){this.G=b;this.H=a;this.v=c;this.D=d;Db(this)};m.Ba=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};m.ra=function(a){return a?this.save():!0};m.reset=function(){};
m.save=function(){return(new H(this)).data()};m.restore=function(){return!0};$a(function(){for(var a=w(document,v,"device"),b=0;b<a.length;b++){var c,d=a[b];c=u(d);switch(c.type){case "default":c=new Kc(c),ub(c,d)}}});
function Cc(a,b,c,d,e){this.H=a;this.id=Pc+=2;this.B=b;this.Xa=c;this.size=d||0;this.type=e||Qc;this.G=e==Rc;this.b=null;this.f=this.w=this.vb;this.g=this.D=this.Ya;this.i=this.v=0;Dc(this);this.sb=this.Tb=!1;if(this.size){a=this.j=Array(this.size);for(b=0;b<a.length;b++)a[b]=0;Sc(this,Tc)}else Sc(this)}m=Cc.prototype;m.save=function(){return this.j};m.restore=function(a){return a&&this.size==a.length?(this.j=a,this.sb=!0):!1};function Sc(a,b){b||(b=Uc);Vc(a,b,void 0);Wc(a,b,void 0)}
function Vc(a,b,c){c&&a.i||(a.f=b[0]||a.vb);if(c||void 0===c)a.w=b[0]||a.vb}function Wc(a,b,c){c&&a.v||(a.g=!a.G&&b[1]||a.Ya);if(c||void 0===c)a.D=b[1]||a.Ya}m.Ra=function(a,b){b?this.v++||Wc(this,Xc,!1):this.i++||Vc(this,Xc,!1)};function Yc(a,b){b?--a.v||(a.g=a.G?a.Ya:a.D):--a.i||(a.f=a.w)}function Dc(a,b,c){a.b=b;a.i=a.v=0;c&&((a.i=c.i)&&Vc(a,Xc,!1),(a.v=c.v)&&Wc(a,Xc,!1))}m.vb=function(a,b){this.b&&Qb(this.b,32)&&Rb(this.b,"attempt to read invalid address "+L(this.b,b),!0);this.H.Jb(b);return-1};
m.Ya=function(a,b,c){this.b&&Qb(this.b,32)&&Rb(this.b,"attempt to write "+L(this.b,a)+" to invalid addresses "+L(this.b,c),!0);this.H.Jb(c)};m.ic=function(a){return this.j[a]};m.rc=function(a,b){this.j[b]!=a&&(this.j[b]=a,this.sb=!0)};m.gc=function(a,b){if(this.b&&null!=this.B){var c=this.b;Zc(c,this.B+a,2,c.N)&&c.Y(!1)}return this.w(a,b)};m.qc=function(a,b,c){if(this.b&&null!=this.B){var d=this.b;Zc(d,this.B+b,2,d.K)&&d.Y(!1)}this.G?this.Ya(a,0,c):this.D(a,b,c)};
var Qc=0,Rc=2,Ic=["NONE","RAM","ROM"],Pc=0,Uc=[],Tc=[Cc.prototype.ic,Cc.prototype.rc],Xc=[Cc.prototype.gc,Cc.prototype.qc];
function $c(a,b){t.call(this,"CPU",a,1);b=+a.cycles||b;var c=+a.multiplier||1;this.kb=0;this.ob=b;this.ha=c;this.lb=Math.round(this.ob/1E4)/100;this.ga=this.lb*this.ha;this.nb=this.Ja=this.ma=this.cb=0;this.A.P=this.A.ib=!1;this.A.fa=a.autoStart;"string"==typeof this.A.fa&&(this.A.fa="true"==this.A.fa);this.A.Ua=!1;this.Ha=this.ta=0;this.Ia=+a.csStart;this.pa=+a.csInterval;this.ua=+a.csStop;this.R=[];this.Fb=this.lc.bind(this);this.W=this.M=this.V=this.N=this.L=this.Ga=this.S=this.va=this.pb=this.Z=
0;this.Oa=null;Db(this)}ja($c,t);m=$c.prototype;m.Ma=function(a,b,c,d){this.H=a;this.G=b;this.D=d;this.Oa=a.j;for(a=0;a<ad.length;a++)(b=this.J[ad[a]])&&this.H.sa(null,ad[a],b);Db(this)};m.reset=function(){};m.save=function(){return null};m.restore=function(){return!1};
m.Ba=function(a,b){var c=bd(this.H,"autoStart");null!=c?this.A.fa="true"==c?!0:"false"==c?!1:!!c:null==this.A.fa&&(this.A.fa=!this.D&&void 0===this.J.run);if(!b){if(a){cd(this);if(!this.restore(a))return!1;dd(this)}else this.reset();this.D?(a=this.D,b=this.A.fa,a.Ja=!0,a.u("Type ? for help with PDPjs Debugger commands"),ed(a),b||fd(a),a.ua&&(b=a.ua,a.ua=null,gd(a,b,!0))):this.status("No debugger detected");this.A.fa||this.u("CPU will not be auto-started "+(this.Oa?"(click Run to start)":"(type 'go' to start)"))}return!0};
m.ra=function(a){return a?this.save():!0};m.fa=function(){return this.A.P?!0:this.A.fa?(tc(this),!0):!1};m.Kb=function(){return 0};function dd(a){void 0===a.Ia&&(a.Ia=0);void 0===a.pa&&(a.pa=-1);void 0===a.ua&&(a.ua=-1);a.A.Ua=0<=a.Ia&&0<a.pa;a.A.Ua&&(a.Ha=0,a.ta=a.Ia-a.W)}function xc(a,b){if(a.A.Ua){var c=!1;a.Ha=a.Ha+a.Kb()|0;a.ta-=b;0>=a.ta&&(a.ta+=a.pa,c=!0);0<=a.ua&&a.ua<=hd(a)&&(a.pa=a.ua=-1,dd(a),a.Y(),c=!0);c&&a.u(hd(a)+" cycles: checksum="+n(a.Ha))}}
m.sa=function(a,b,c){var d=this;switch(b){case "power":case "reset":return this.J[b]=c,!0;case "run":return this.J[b]=c,c.onclick=function(){var a;if(a=d.H)if(a=d.H,a.A.ba)a=!0;else{var b=null,c,h=rb(a.id);for(c=0;c<h.length&&(b=h[c],b===a||b.A.ready);c++);if(c==h.length)for(c=0;c<h.length&&(b=h[c],b===a||b.A.ba);c++);c==h.length&&(b=a);r("The "+b.type+" component ("+b.id+") is not "+(b.A.ready?"powered yet":"ready yet"+(b.fb?" (waiting for notification)":""))+".");a=!1}a&&(d.A.P?d.Y():tc(d))},!0;
case "speed":return this.J[b]=c,!0;case "setSpeed":return this.J[b]=c,c.onclick=function(){id(d,d.ha<<1,!0)},c.textContent=this.ga.toFixed(2)+"Mhz",!0}return!1};function wc(a,b,c){a.W+=b;c&&(a.V=a.N=0)}function jd(a,b){var c=1;b&&1<a.ha&&a.Z&&(c=a.Z/a.lb);a.nb=Math.round(1E3/kd);a.Ja=Math.floor(a.ob/kd*c);b||(a.ma=a.Ja);a.cb=0}function hd(a){return a.W+a.M+a.V-a.N}function cd(a){a.Z=0;a.pb=0;a.W=a.M=a.V=a.N=0;dd(a);id(a,1)}
function id(a,b,c){var d=!1;if(void 0!==b){.8>a.Z/a.ga?b=1:d=!0;a.ha=b;b=a.lb*a.ha;if(a.ga!=b){a.ga=b;b=a.ga.toFixed(2)+"Mhz";var e=a.J.setSpeed;e&&(e.textContent=b);a.u("target speed: "+b)}c&&a.H&&ld(a.H)}wc(a,a.M);a.M=0;a.L=pb();a.S=0;jd(a);return d}function md(a,b){for(var c=a.R.length-1;0<=c;c--){var d=a.R[c];0>d[0]||b>d[0]&&(b=d[0])}return b}function nd(a){for(var b=[],c=0;c<a.R.length;c++)b.push(a.R[c][0]);return b}
function vc(a,b){for(var c=a.R.length-1;0<=c;c--){var d=a.R[c];0>d[0]||(d[0]-=b,0>=d[0]&&(d[0]=-1,d[1]()))}}function od(a,b){var c=a.V-=a.N;a.N=0;b&&(a.V=0);return c}
m.lc=function(){if(this.A.P){this.cb>=this.ob&&jd(this,!0);this.va=0;this.Ga=pb();if(this.S){var a=this.Ga-this.S;a>this.nb&&(this.L+=a,this.L>this.Ga&&(this.L=this.Ga))}try{do{var b=md(this,this.A.Ua?1:this.Ja);try{this.Za(b)}catch(e){if("number"!=typeof e)throw e;}b=od(this,!0);this.va+=b;this.M+=b;xc(this,b);vc(this,b);this.ma-=b;if(0>=this.ma){this.ma+=this.Ja;++this.pb>=pd&&(this.H&&K(this.H,void 0),this.pb=0);break}}while(this.A.P)}catch(e){this.Y();this.H&&this.H.stop(pb(),hd(this));Ab(this,
e.stack||e.message);return}if(this.A.P){a=setTimeout;b=this.Fb;this.S=pb();var c=this.nb;this.va&&(c=Math.round(c*this.va/this.Ja));var c=c-(this.S-this.Ga),d=this.S-this.L;d&&(this.Z=Math.round(this.M/(10*d))/100,864E5<=d&&(this.W=0,id(this)));if(0>c||this.Z<this.ga)-1E3>c&&(this.L-=c),c=0;this.cb+=this.va;this.S+=c;a(b,c)}}};
function tc(a,b){if(!Bb(a))if(a.A.P)a.u(a.toString()+" busy");else{id(a);a.A.P=!0;a.A.ib=!0;var c=a.J.run;c&&(c.textContent="Halt");a.H&&(b&&ld(a.H,!0),a.H.start(a.L,hd(a)));a.D||a.status("Started");setTimeout(a.Fb,0)}}m.Za=function(){return 0};m.Y=function(a){var b=!1;if(this.A.P){od(this);wc(this,this.M);this.M=0;this.A.P=!1;if(b=this.J.run)b.textContent="Run";this.H&&this.H.stop(pb(),hd(this));b=!0;this.D||this.status("Stopped")}this.A.complete=a;return b};var kd=30,pd=15,ad=["power","reset"];
function qd(a){var b=+a.model||1001;$c.call(this,a,1E6);this.mb=b;this.$a=+a.addrReset||0;this.Sb=rd.bind(this);this.w=M.bind(this);this.Da=null;this.Cb=[];this.A.complete=!1}ja(qd,$c);m=qd.prototype;
m.reset=function(){this.status("Model "+this.mb);this.A.P&&this.Y();this.Ka=this.La=this.b=this.I=0;this.i=this.oa=this.$a;this.K=this.O=-1;this.F=this.j=0;this.jb=[0,0];this.wa=[0,0];this.na=[0,0];this.xa=[0,0];this.Ca=this.i;this.C=0;this.f=this.hc;this.g=this.sc;this.Da=null;cd(this);this.A.error=!1;$c.prototype.reset.call(this)};m.Kb=function(){return 0};
m.save=function(){var a=new H(this);a.set(0,[this.b,this.I,this.Ka,this.La,this.i,this.O,this.K,this.j,this.C,this.oa,this.Ca,this.$a]);a.set(1,[]);a.set(2,[this.W,this.ha,this.A.fa]);a.set(3,sd(this));a.set(4,nd(this));return a.data()};
m.restore=function(a){var b;b=a[0];ga();ca();ga();var c=b[Symbol.iterator];b=c?c.call(b):ha(b);this.b=b.next().value;this.I=b.next().value;this.Ka=b.next().value;this.La=b.next().value;this.i=b.next().value;this.O=b.next().value;this.K=b.next().value;this.j=b.next().value;this.C=b.next().value;this.oa=b.next().value;this.Ca=b.next().value;this.$a=b.next().value;b=a[2];this.W=b[0];id(this,b[1]);this.A.fa=b[2];b=a[3];for(c=b.length-1;0<=c;c--){var d;a:{for(d=0;d<this.Cb.length;d++){var e=this.Cb[d];
if(e.pc===b[c]){d=e;break a}}d=null}d&&(d.next=this.Da,this.Da=d)}a=a[4];for(b=0;b<this.R.length&&b<a.length;b++)this.R[b][0]=a[b];return!0};function td(a,b){a.j=a.j&-254049|b&254048;a.j|=b&4096;b&2048?a.j&4096||(a.j|=2048):a.j&=-2049}function ud(a,b){var c=a.i;a.i=(c+b)%Ub;return c}function vd(a){return 0<=a.O?a.O:a.I&4194304?a.oa:a.i}function I(a,b){a.I=0;a.O=-1;a.i=b%Ub}function sd(a){var b=[];for(a=a.Da;a;)b.push(a.pc),a=a.next;return b}
m.hc=function(a){var b=this.G;a=this.Ca=a;return b.b[(a&b.j)>>>b.i].f(a&16383,a)};m.sc=function(a,b){var c=this.G;a=this.Ca=a;c.b[(a&c.j)>>>c.i].g(b,a&16383,a);return b};
m.Za=function(a){this.A.complete=!0;var b=this.D?wd(this.D)?1:this.A.ib?-1:0:0,c=a?this.A.ib?0:1:-1;this.A.ib=!1;this.V=this.N=a;this.C=this.C&-5|(b?4:0);do{if(this.C){if(this.C&4){if(xd(this.D,vd(this),c)){this.Y();break}++b||(this.C&=-5);c||c++}if(a=this.C&11)this.C&2?this.Da||(this.C&=-3):this.C&1&&this.C++,a=!1;if(a){if(this.C&4&&xd(this.D,vd(this),c)){this.Y();break}if(0>c)break}}this.C&=15;this.I&4194304?this.I=this.Ka=this.f(this.b):0<=this.O?(this.I=this.La=this.f(this.O),this.O=-1):(this.I=
this.La=this.f(this.oa=this.i),this.i=(this.i+1)%Ub);this.I&=8388607;this.b=this.I&262143;if(a=this.I>>18&15)this.b=this.b+(this.Ka=this.f(a))&Tb;a=this.I&4194304?-1:this.La/ac|0;0<=a&&this.Sb(a);this.N--}while(0<this.N);return this.A.complete?this.V-this.N:!1===this.A.complete?-1:0};$a(function(){for(var a=w(document,v,"cpu"),b=0;b<a.length;b++){var c=a[b],d=u(c),d=new qd(d);ub(d,c)}});function rd(a){yd[a>>4].call(this,a,a&15)}function O(a){this.w(a)}
function zd(){var a=0,b=this.f(this.b),c=b/bc&63,d=b>>24&63,c=c-d;0>c&&(a++,c=36-d,0>c&&(c=100-d));b=c*bc+(d<<24)+(b&16777215);a&&(b=(b+a)%C);this.g(this.b,b)}function Ad(a,b){a=this.f(this.b);if(0>this.K)this.K=a,this.I=this.b|4194304;else{var c=this.K/bc&63,d=this.K>>24&63;a=32>c+d?(a>>c&(1<<d)-1)>>>0:Math.trunc(a/Math.pow(2,c))%Math.pow(2,d);this.g(b,a);this.j&=-8193;this.K=-1}}
function Bd(a,b){a=this.f(this.b);if(0>this.K)this.K=a,this.I=this.b|4194304;else{var c=this.K/bc&63,d=this.K>>24&63;b=this.f(b)%Math.pow(2,d)*Math.pow(2,c)%C;a=a-a%Math.pow(2,c+d)+b+a%Math.pow(2,c);this.g(this.b,a);this.j&=-8193;this.K=-1}}function Cd(a,b){this.g(b,this.f(this.b))}function Dd(a,b){this.g(b,this.b)}function Ed(a,b){this.g(this.b,this.f(b))}function Fd(a,b){this.g(b,0)}function Gd(a,b){this.g(b,B-this.f(b))}function Hd(a,b){this.g(b,B)}
function Id(a,b){var c=this.f(this.b),d=this.f(b);this.g(b,Jd(a,d,c)+(c-(c&x)))}function Kd(a,b){var c=this.f(b);this.g(b,Jd(a,c,0))}function Ld(a,b){b=this.f(b);var c=this.f(this.b);this.g(this.b,Jd(a,c,b)+(b-(b&x)))}function Md(a,b){var c=this.f(this.b),d=c;if(a&=384)switch(d-=d&x,a){case 256:d+=x;break;case 384:d+=c>z?x:0}c=d;this.g(this.b,c);b&&this.g(b,c)}function Nd(a,b){var c=(this.f(this.b)&x)*y,d=this.f(b);this.g(b,Jd(a,d,c)+c)}
function Od(a,b){var c=this.b*y,d=this.f(b);this.g(b,Jd(a,d,c)+c)}function Pd(a,b){b=(this.f(b)&x)*y;var c=this.f(this.b);this.g(this.b,Jd(a,c,b)+b)}function Qd(a,b){var c=this.f(this.b),d=(c&x)*y,c=Jd(a,c,d)+d;this.g(this.b,c);b&&this.g(b,c)}function ie(a,b){var c=this.f(this.b)&x,d=this.f(b);this.g(b,je(a,d,c)+c)}function ke(a,b){var c=this.f(b);this.g(b,je(a,c,this.b)+this.b)}function le(a,b){b=this.f(b)&x;var c=this.f(this.b);this.g(this.b,je(a,c,b)+b)}
function me(a,b){var c=this.f(this.b),d=c;if(a&=384)switch(d&=x,a){case 256:d+=x*y;break;case 384:d+=c>Vb?x*y:0}c=d;this.g(this.b,c);b&&this.g(b,c)}function ne(a,b){var c=this.f(this.b)/y|0,d=this.f(b);this.g(b,je(a,d,c)+c)}function oe(a,b){var c=this.f(b);this.g(b,je(a,c,0))}function pe(a,b){b=this.f(b)/y|0;var c=this.f(this.b);this.g(this.b,je(a,c,b)+b)}function qe(a,b){var c=this.f(this.b),d=c/y|0,c=je(a,c,d)+d;this.g(this.b,c);b&&this.g(b,c)}function P(a){re[a&7].call(this,a,a>>3&127)}
function se(){}function te(){}function M(a){this.u("undefined opcode: "+wa(a));ud(this,-1);this.Y()}function ue(a){a>z&&(a!=A?a=Yb-a:this.j|=163840);return a}function Q(a,b){var c=(a+b)%C;ve.call(this,a,b,c);return c}
function we(a,b,c){var d=!1,e=!1;if(void 0===c){if(!a)return this.j|=131104,-1;c=b>z?B:0}else if((c<A?c:Yb-c-(b?1:0))>=(a<A?a:Yb-a))return this.j|=131104,-1;var f=c-c%A;b=b%A+(c&1)*A;c=this.F=f+Math.trunc(c/2);a>z&&(a=C-a,d=!d);c>z&&(b?(c=B-c,b=C-b):c&&(c=C-c),e=!0,d=!d);f=this.jb;f[0]=0;f[1]=0;f=this.wa;f[0]=1;f[1]=0;f=this.na;f[0]=a;f[1]=0;a=this.xa;a[0]=b;for(a[1]=c;0<xe(this.xa,this.na);)ye(this.na,this.na),ye(this.wa,this.wa);do{if(0<=xe(this.xa,this.na)&&(c=this.xa,a=this.na,c[0]-=a[0],c[1]-=
a[1],0>c[0]&&(c[0]+=C,c[1]--),ye(this.jb,this.wa),ze(this.xa)))break;Ae(this.na);Ae(this.wa)}while(!ze(this.wa));b=this.jb[0];this.F=this.xa[0];d&&b&&(b=C-b);e&&this.F&&(this.F=C-this.F);return b}
function Be(a,b,c,d){var e=a,f=b;b=!1;var g;e>z&&(d||1001!=this.mb||e!=A)&&(e=C-e,b=!b);f>z&&(f=C-f,b=!b);if(e<y&&f<y)a=e*f,g=0;else{a=e&x;e=Math.trunc(e/y);g=f&x;var f=Math.trunc(f/y),h=a*g,k=e*g+Math.trunc(h/y);g=Math.trunc(k/y);k=(k&x)+a*f;a=(k*y+(h&x))%C;g+=Math.trunc(k/y)+e*f}b&&(a?(g=B-g,a=C-a):g&&(g=C-g));b=a;a=g;e=a-a%A;a=2*a%C+Math.trunc(b/A);b=e+b%A;a-a%A!=e&&(b=a);d?g=b:(b==A&&a==A&&(this.j|=131072),this.F=b,g=a);c&&(a=this.F,!d&&(g||a>z)&&(g!=B||a<=z)&&(this.j|=131072),g=a);return g}
function Ce(a){a?a==A?this.j|=163840:a=Yb-a:this.j|=98304;return a}function De(a,b){var c=a-b;0>c&&(c+=C);ve.call(this,c,b,a);return c}function ve(a,b,c){a=Math.trunc(a/Xb);b=Math.trunc(b/Xb);c=Math.trunc(c/Xb);var d=a^(a^b)&(b^c);this.j=this.j|(d&2?65536:0)|(d&1?32768:0)|((a^c)&(b^c)&2?131072:0)}function R(a,b){return((a/E|0)&(b/E|0))*E+((a&b)>>>0)}function S(a,b){return R(a,(~(b/E|0)&15)*E+(~b>>>0))}function Ee(a,b){return(a<A?a:a-C)-(b<A?b:b-C)}
function Fe(a,b){return(~((a/E|0)^(b/E|0))&15)*E+(~(a^b)>>>0)}function T(a,b){return(a/E|0|b/E|0)*E+((a|b)>>>0)}function U(a){return a<A?a:a-C}function V(a,b){return((a/E|0)^(b/E|0))*E+((a^b)>>>0)}function W(a){return(a/y|0)+(a&x)*y}function je(a,b,c){switch(a&384){case 0:b-=b&x;break;case 128:b=0;break;case 256:b=x*y;break;case 384:b=c>Vb?x*y:0}return b}function Jd(a,b,c){switch(a&384){case 0:b&=x;break;case 128:b=0;break;case 256:b=x;break;case 384:b=c>z?x:0}return b}
function ye(a,b){a[0]+=b[0];a[1]+=b[1];a[0]>=C&&(a[0]%=C,a[1]++)}function xe(a,b){var c=a[1]-b[1];c||(c=a[0]-b[0]);return c}function Ae(a){a[1]%2&&(a[0]+=C);a[0]=Math.trunc(a[0]/2);a[1]=Math.trunc(a[1]/2)}function ze(a){return!a[0]&&!a[1]}
var yd=[O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)},zd,function(a,b){this.j&8192||(zd.call(this),this.j|=8192);Ad.call(this,0,b)},Ad,function(a,b){this.j&8192||(zd.call(this),this.j|=8192);Bd.call(this,0,b)},Bd,function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)},
function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)},
function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)},zd,Ad,Bd,function(a,b){b&&this.g(b,this.f(this.b))},function(a,b){a=this.f(this.b);a=(a/y|0)+(a&x)*y;this.g(b,a)},function(a,b){this.g(b,this.b*y)},function(a,b){a=this.f(b);a=(a/y|0)+(a&x)*y;this.g(this.b,a)},function(a,b){a=this.f(this.b);a=(a/y|0)+(a&x)*y;this.g(this.b,a);b&&this.g(b,a)},function(a,b){this.g(b,ye.call(this,this.f(this.b)))},function(a,b){this.g(b,
ye.call(this,this.b))},function(a,b){this.g(this.b,ye.call(this,this.f(b)))},function(a,b){a=ye.call(this,this.f(this.b));this.g(this.b,a);b&&this.g(b,a)},function(a,b){this.g(b,qe.call(this,this.f(this.b)))},function(a,b){this.g(b,this.b)},function(a,b){this.g(this.b,qe.call(this,this.f(b)))},function(a,b){a=qe.call(this,this.f(this.b));this.g(this.b,a);b&&this.g(b,a)},function(a,b){this.g(b,xe.call(this,this.f(b),this.f(this.b),!0))},function(a,b){this.g(b,xe.call(this,this.f(b),this.b,!0))},function(a,
b){this.g(this.b,xe.call(this,this.f(b),this.f(this.b),!0))},function(a,b){this.g(this.b,this.g(b,xe.call(this,this.f(b),this.f(this.b),!0)))},function(a,b){this.g(b,xe.call(this,this.f(b),this.f(this.b)));this.g(b+1&15,this.F)},function(a,b){this.g(b,xe.call(this,this.f(b),this.b));this.g(b+1&15,this.F)},function(a,b){this.g(this.b,xe.call(this,this.f(b),this.f(this.b)))},function(a,b){this.g(this.b,this.g(b,xe.call(this,this.f(b),this.f(this.b))));this.g(b+1&15,this.F)},function(a,b){a=se.call(this,
this.f(this.b),this.f(b));0>a||(this.g(b,a),this.g(b+1&15,this.F))},function(a,b){a=se.call(this,this.b,this.f(b));0>a||(this.g(b,a),this.g(b+1&15,this.F))},function(a,b){a=se.call(this,this.f(this.b),this.f(b));0>a||this.g(this.b,a)},function(a,b){a=se.call(this,this.f(this.b),this.f(b));0>a||(this.g(this.b,this.g(b,a)),this.g(b+1&15,this.F))},function(a,b){a=this.f(b);var c=this.f(b+1&15),c=se.call(this,this.f(this.b),c,a);0>c||(this.g(b,c),this.g(b+1&15,this.F))},function(a,b){a=this.f(b);var c=
this.f(b+1&15),c=se.call(this,this.b,c,a);0>c||(this.g(b,c),this.g(b+1&15,this.F))},function(a,b){a=this.f(b);b=this.f(b+1&15);b=se.call(this,this.f(this.b),b,a);0>b||this.g(this.b,b)},function(a,b){a=this.f(b);var c=this.f(b+1&15),c=se.call(this,this.f(this.b),c,a);0>c||(this.g(b,this.g(this.b,c)),this.g(b+1&15,this.F))},function(a,b){if(a=(this.b&Vb)<<14>>23|this.b&255){var c,d,e=this.f(b);0<a?(d=z,c=e<B?0:B,35>a&&(c+=e*Math.pow(2,a)%B,d=B-Math.pow(2,35-a)),e<B?e+d>z&&(this.j|=131072):e-d<B&&(this.j|=
131072)):-35>=a?c=e<B?0:z:(c=Math.trunc(e/Math.pow(2,-a)),e>z&&(d=D-Math.pow(2,36+a),c+=d));this.g(b,c)}},function(a,b){if(a=((this.b&Vb)<<14>>23|this.b&255)%36){var c=this.f(b);0>a&&(a=36+a);c=c*Math.pow(2,a)%D+Math.trunc(c/Math.pow(2,36-a));this.g(b,c)}},function(a,b){if(a=(this.b&Vb)<<14>>23|this.b&255){var c=this.f(b),c=0<a?36<=a?0:c*Math.pow(2,a)%D:-36>=a?0:Math.trunc(c/Math.pow(2,-a));this.g(b,c)}},function(a,b){a=0;var c=this.f(b);if(c){for(;c<B;)a++,c*=2;H(this,this.b)}this.g(b+1&15,a)},function(a,
b){if(a=(this.b&Vb)<<14>>23|this.b&255){var c,d=this.f(b),e=this.f(b+1&15);if(0<a){var f=d;if(36<=a){if(0<d&&d<B||d>z&&d<C)this.j|=131072;if(71<=a){if(0<e&&e<B||e>z&&e<C)this.j|=131072;d=0}else d=e*Math.pow(2,a-35)%B,c=B-Math.pow(2,70-a),f<=z?e+c>z&&(this.j|=131072):e-c<=z&&(this.j|=131072);e=0;f>z&&(d+=B,e+=B)}else d=d*Math.pow(2,a)%B+Math.trunc(e%B/Math.pow(2,35-a)),e=e*Math.pow(2,a)%B,c=B-Math.pow(2,35-a),f<=z?f+c>z&&(this.j|=131072):(f-c<=z&&(this.j|=131072),d+=B,e+=B)}else-36>=a?(e=-72>=a?d>
z?C:0:Math.trunc(d%B/Math.pow(2,-a-35)),d<=z?d=0:(d=C,e+=B)):(c=d>z?D-Math.pow(2,36+a):0,e=Math.trunc(e%B/Math.pow(2,-a))+d%B*Math.pow(2,35+a)%B,d=Math.trunc(d/Math.pow(2,-a))+c,d>z&&(e+=B));this.g(b,d);this.g(b+1&15,e)}},function(a,b){if(a=((this.b&Vb)<<14>>23|this.b&255)%72){var c=this.f(b),d=this.f(b+1&15),e=c;0>a&&(a=72+a);36>a?(c=c*Math.pow(2,a)%D+Math.trunc(d/Math.pow(2,36-a)),d=d*Math.pow(2,a)%D+Math.trunc(e/Math.pow(2,36-a))):(c=d*Math.pow(2,a-36)%D+Math.trunc(c/Math.pow(2,72-a)),d=e*Math.pow(2,
a-36)%D+Math.trunc(d/Math.pow(2,72-a)));this.g(b,c);this.g(b+1&15,d)}},function(a,b){if(a=(this.b&Vb)<<14>>23|this.b&255){var c=this.f(b),d=this.f(b+1&15);0<a?36<=a?(c=72<=a?0:d*Math.pow(2,a-36)%D,d=0):(c=c*Math.pow(2,a)%D+Math.trunc(d/Math.pow(2,36-a)),d=d*Math.pow(2,a)%D):-36>=a?(d=-72>=a?0:Math.trunc(c/Math.pow(2,-a-36)),c=0):(d=Math.trunc(d/Math.pow(2,-a))+c*Math.pow(2,36+a)%D,c=Math.trunc(c/Math.pow(2,-a)));this.g(b,c);this.g(b+1&15,d)}},M,function(a,b){a=this.f(b);this.g(b,this.f(this.b));this.g(this.b,
a)},function(a,b){a=!1;for(var c=this.f(b),d=c/y|0,c=c&x;!a;)this.g(c,this.f(d)),c==this.b&&(a=!0),d=d+1&x,c=c+1&x,this.A.P||(this.g(b,d*y+c),a||sd(this,-1),a=!0)},function(a,b){a=(this.f(b)+262145)%D;this.g(b,a);a<B&&H(this,this.b)},function(a,b){a=(this.f(b)+262145)%D;this.g(b,a);a>=B&&H(this,this.b)},function(a,b){b&1&&(this.j|=4096);b&2&&rd(this,this.Ka/y|0);b&4&&this.Y();b&8&&this.w(a);H(this,this.b)},function(a,b){a=b<<14;this.j&a&&(this.j&=~a,H(this,this.b))},function(){this.O=this.b},M,function(a,
b){a=(this.f(b)+262145)%D;this.g(b,a);a/y|0||(this.j|=262144);this.g(a&Sb,(this.j&x)*y+this.i);this.j&=-8193;H(this,this.b)},function(a,b){a=this.f(b);a+=262145;this.g(a&Sb,this.f(this.b));a>=D&&(a-=D);a/y|0||(this.j|=262144);this.g(b,a)},function(a,b){a=this.f(b);var c=this.f(a&Sb);this.g(this.b,c);this.b==b&&(a=c);a-=262145;0>a&&(a+=D);(a/y|0)==x&&(this.j|=262144);this.g(b,a)},function(a,b){a=this.f(b);var c=this.f(a&Sb);a-=262145;0>a&&(a+=D);(a/y|0)==x&&(this.j|=262144);this.g(b,a);H(this,c&Sb)},
function(){this.g(this.b,(this.j&x)*y+this.i);this.j&=-8193;H(this,this.b+1)},function(a,b){this.g(b,(this.j&x)*y+this.i);this.j&=-8193;H(this,this.b)},function(a,b){this.g(this.b,this.f(b));this.g(b,this.b*y+this.i);H(this,this.b+1)},function(a,b){a=this.f(b);this.g(b,this.f(a/y|0));H(this,this.b)},function(a,b){this.g(b,Q.call(this,this.f(b),this.f(this.b)))},function(a,b){this.g(b,Q.call(this,this.f(b),this.b))},function(a,b){this.g(this.b,Q.call(this,this.f(b),this.f(this.b)))},function(a,b){this.g(this.b,
this.g(b,Q.call(this,this.f(b),this.f(this.b))))},function(a,b){this.g(b,ze.call(this,this.f(b),this.f(this.b)))},function(a,b){this.g(b,ze.call(this,this.f(b),this.b))},function(a,b){this.g(this.b,ze.call(this,this.f(b),this.f(this.b)))},function(a,b){this.g(this.b,this.g(b,ze.call(this,this.f(b),this.f(this.b))))},oe,function(a,b){0>Ae(this.f(b),this.b)&&H(this,this.i+1)},function(a,b){Ae(this.f(b),this.b)||H(this,this.i+1)},function(a,b){0>=Ae(this.f(b),this.b)&&H(this,this.i+1)},function(){H(this,
this.i+1)},function(a,b){0<=Ae(this.f(b),this.b)&&H(this,this.i+1)},function(a,b){Ae(this.f(b),this.b)&&H(this,this.i+1)},function(a,b){0<Ae(this.f(b),this.b)&&H(this,this.i+1)},pe,function(a,b){0>Ae(this.f(b),this.f(this.b))&&H(this,this.i+1)},function(a,b){Ae(this.f(b),this.f(this.b))||H(this,this.i+1)},function(a,b){0>=Ae(this.f(b),this.f(this.b))&&H(this,this.i+1)},function(){H(this,this.i+1)},function(a,b){0<=Ae(this.f(b),this.f(this.b))&&H(this,this.i+1)},function(a,b){Ae(this.f(b),this.f(this.b))&&
H(this,this.i+1)},function(a,b){0<Ae(this.f(b),this.f(this.b))&&H(this,this.i+1)},oe,function(a,b){0>U(this.f(b))&&H(this,this.b)},function(a,b){U(this.f(b))||H(this,this.b)},function(a,b){0>=U(this.f(b))&&H(this,this.b)},function(){H(this,this.b)},function(a,b){0<=U(this.f(b))&&H(this,this.b)},function(a,b){U(this.f(b))&&H(this,this.b)},function(a,b){0<U(this.f(b))&&H(this,this.b)},function(a,b){b&&this.g(b,this.f(this.b))},function(a,b){a=this.f(this.b);0>U(a)&&H(this,this.i+1);b&&this.g(b,a)},
function(a,b){a=this.f(this.b);U(a)||H(this,this.i+1);b&&this.g(b,a)},function(a,b){a=this.f(this.b);0>=U(a)&&H(this,this.i+1);b&&this.g(b,a)},function(a,b){H(this,this.i+1);b&&this.g(b,this.f(this.b))},function(a,b){a=this.f(this.b);0<=U(a)&&H(this,this.i+1);b&&this.g(b,a)},function(a,b){a=this.f(this.b);U(a)&&H(this,this.i+1);b&&this.g(b,a)},function(a,b){a=this.f(this.b);0<U(a)&&H(this,this.i+1);b&&this.g(b,a)},function(a,b){this.g(b,Q.call(this,this.f(b),1))},function(a,b){a=this.g(b,Q.call(this,
this.f(b),1));0>U(a)&&H(this,this.b)},function(a,b){a=this.g(b,Q.call(this,this.f(b),1));U(a)||H(this,this.b)},function(a,b){a=this.g(b,Q.call(this,this.f(b),1));0>=U(a)&&H(this,this.b)},function(a,b){this.g(b,Q.call(this,this.f(b),1));H(this,this.b)},function(a,b){a=this.g(b,Q.call(this,this.f(b),1));0<=U(a)&&H(this,this.b)},function(a,b){a=this.g(b,Q.call(this,this.f(b),1));U(a)&&H(this,this.b)},function(a,b){a=this.g(b,Q.call(this,this.f(b),1));0<U(a)&&H(this,this.b)},function(a,b){a=this.g(this.b,
Q.call(this,this.f(this.b),1));b&&this.g(b,a)},function(a,b){a=this.g(this.b,Q.call(this,this.f(this.b),1));0>U(a)&&H(this,this.i+1);b&&this.g(b,a)},function(a,b){a=this.g(this.b,Q.call(this,this.f(this.b),1));U(a)||H(this,this.i+1);b&&this.g(b,a)},function(a,b){a=this.g(this.b,Q.call(this,this.f(this.b),1));0>=U(a)&&H(this,this.i+1);b&&this.g(b,a)},function(a,b){a=this.g(this.b,Q.call(this,this.f(this.b),1));H(this,this.i+1);b&&this.g(b,a)},function(a,b){a=this.g(this.b,Q.call(this,this.f(this.b),
1));0<=U(a)&&H(this,this.i+1);b&&this.g(b,a)},function(a,b){a=this.g(this.b,Q.call(this,this.f(this.b),1));U(a)&&H(this,this.i+1);b&&this.g(b,a)},function(a,b){a=this.g(this.b,Q.call(this,this.f(this.b),1));0<U(a)&&H(this,this.i+1);b&&this.g(b,a)},function(a,b){this.g(b,Q.call(this,this.f(b),C))},function(a,b){a=this.g(b,Q.call(this,this.f(b),C));0>U(a)&&H(this,this.b)},function(a,b){a=this.g(b,Q.call(this,this.f(b),C));U(a)||H(this,this.b)},function(a,b){a=this.g(b,Q.call(this,this.f(b),C));0>=U(a)&&
H(this,this.b)},function(a,b){this.g(b,Q.call(this,this.f(b),C));H(this,this.b)},function(a,b){a=this.g(b,Q.call(this,this.f(b),C));0<=U(a)&&H(this,this.b)},function(a,b){a=this.g(b,Q.call(this,this.f(b),C));U(a)&&H(this,this.b)},function(a,b){a=this.g(b,Q.call(this,this.f(b),C));0<U(a)&&H(this,this.b)},function(a,b){a=this.g(this.b,Q.call(this,this.f(this.b),C));b&&this.g(b,a)},function(a,b){a=this.g(this.b,Q.call(this,this.f(this.b),C));0>U(a)&&H(this,this.i+1);b&&this.g(b,a)},function(a,b){a=this.g(this.b,
Q.call(this,this.f(this.b),C));U(a)||H(this,this.i+1);b&&this.g(b,a)},function(a,b){a=this.g(this.b,Q.call(this,this.f(this.b),C));0>=U(a)&&H(this,this.i+1);b&&this.g(b,a)},function(a,b){a=this.g(this.b,Q.call(this,this.f(this.b),C));H(this,this.i+1);b&&this.g(b,a)},function(a,b){a=this.g(this.b,Q.call(this,this.f(this.b),C));0<=U(a)&&H(this,this.i+1);b&&this.g(b,a)},function(a,b){a=this.g(this.b,Q.call(this,this.f(this.b),C));U(a)&&H(this,this.i+1);b&&this.g(b,a)},function(a,b){a=this.g(this.b,Q.call(this,
this.f(this.b),C));0<U(a)&&H(this,this.i+1);b&&this.g(b,a)},Cd,Cd,function(){this.g(this.b,0)},function(a,b){this.g(this.b,this.g(b,0))},function(a,b){this.g(b,R(this.f(b),this.f(this.b)))},function(a,b){this.g(b,R(this.f(b),this.b))},function(a,b){this.g(this.b,R(this.f(b),this.f(this.b)))},function(a,b){this.g(this.b,this.g(b,R(this.f(b),this.f(this.b))))},function(a,b){this.g(b,R(C-this.f(b),this.f(this.b)))},function(a,b){this.g(b,R(C-this.f(b),this.b))},function(a,b){this.g(this.b,R(C-this.f(b),
this.f(this.b)))},function(a,b){this.g(this.b,this.g(b,R(C-this.f(b),this.f(this.b))))},zd,Ad,pe,zd,function(a,b){this.g(b,R(this.f(b),C-this.f(this.b)))},function(a,b){this.g(b,R(this.f(b),C-this.b))},function(a,b){this.g(this.b,R(this.f(b),C-this.f(this.b)))},function(a,b){this.g(this.b,this.g(b,R(this.f(b),C-this.f(this.b))))},oe,oe,Bd,Bd,function(a,b){this.g(b,V(this.f(b),this.f(this.b)))},function(a,b){this.g(b,V(this.f(b),this.b))},function(a,b){this.g(this.b,V(this.f(b),this.f(this.b)))},function(a,
b){this.g(this.b,this.g(b,V(this.f(b),this.f(this.b))))},function(a,b){this.g(b,T(this.f(b),this.f(this.b)))},function(a,b){this.g(b,T(this.f(b),this.b))},function(a,b){this.g(this.b,T(this.f(b),this.f(this.b)))},function(a,b){this.g(this.b,this.g(b,T(this.f(b),this.f(this.b))))},function(a,b){this.g(b,R(C-this.f(b),C-this.f(this.b)))},function(a,b){this.g(b,R(C-this.f(b),C-this.b))},function(a,b){this.g(this.b,R(C-this.f(b),C-this.f(this.b)))},function(a,b){this.g(this.b,this.g(b,R(C-this.f(b),C-
this.f(this.b))))},function(a,b){this.g(b,Be(this.f(b),this.f(this.b)))},function(a,b){this.g(b,Be(this.f(b),this.b))},function(a,b){this.g(this.b,Be(this.f(b),this.f(this.b)))},function(a,b){this.g(this.b,this.g(b,Be(this.f(b),this.f(this.b))))},Dd,Dd,function(a,b){this.g(this.b,C-this.f(b))},function(a,b){this.g(this.b,this.g(b,C-this.f(b)))},function(a,b){this.g(b,T(C-this.f(b),this.f(this.b)))},function(a,b){this.g(b,T(C-this.f(b),this.b))},function(a,b){this.g(this.b,T(C-this.f(b),this.f(this.b)))},
function(a,b){this.g(this.b,this.g(b,T(C-this.f(b),this.f(this.b))))},function(a,b){this.g(b,C-this.f(this.b))},function(a,b){this.g(b,C-this.b)},function(){this.g(this.b,C-this.f(this.b))},function(a,b){this.g(this.b,this.g(b,C-this.f(this.b)))},function(a,b){this.g(b,T(this.f(b),C-this.f(this.b)))},function(a,b){this.g(b,T(this.f(b),C-this.b))},function(a,b){this.g(this.b,T(this.f(b),C-this.f(this.b)))},function(a,b){this.g(this.b,this.g(b,T(this.f(b),C-this.f(this.b))))},function(a,b){this.g(b,
T(C-this.f(b),C-this.f(this.b)))},function(a,b){this.g(b,T(C-this.f(b),C-this.b))},function(a,b){this.g(this.b,T(C-this.f(b),C-this.f(this.b)))},function(a,b){this.g(this.b,this.g(b,T(C-this.f(b),C-this.f(this.b))))},Ed,Ed,function(){this.g(this.b,C)},function(a,b){this.g(this.b,this.g(b,C))},Fd,Hd,Id,Jd,Kd,Ld,Md,Nd,Fd,Hd,Id,Jd,Kd,Ld,Md,Nd,Fd,Hd,Id,Jd,Kd,Ld,Md,Nd,Fd,Hd,Id,Jd,Kd,Ld,Md,Nd,ee,ge,he,ie,je,ke,le,me,ee,ge,he,ie,je,ke,le,me,ee,ge,he,ie,je,ke,le,me,ee,ge,he,ie,je,ke,le,me,oe,oe,function(a,
b){R(this.f(b),this.b)||H(this,this.i+1)},function(a,b){R(this.f(b),this.b*y)||H(this,this.i+1)},function(){H(this,this.i+1)},function(){H(this,this.i+1)},function(a,b){R(this.f(b),this.b)&&H(this,this.i+1)},function(a,b){R(this.f(b),this.b*y)&&H(this,this.i+1)},pe,pe,function(a,b){R(this.f(b),this.f(this.b))||H(this,this.i+1)},function(a,b){R(this.f(b),W(this.f(this.b)))||H(this,this.i+1)},function(){H(this,this.i+1)},function(){H(this,this.i+1)},function(a,b){R(this.f(b),this.f(this.b))&&H(this,
this.i+1)},function(a,b){R(this.f(b),W(this.f(this.b)))&&H(this,this.i+1)},function(a,b){this.g(b,S(this.f(b),this.b))},function(a,b){this.g(b,S(this.f(b),this.b*y))},function(a,b){a=this.f(b);R(a,this.b)||H(this,this.i+1);this.g(b,S(a,this.b))},function(a,b){a=this.f(b);var c=this.b*y;R(a,c)||H(this,this.i+1);this.g(b,S(a,c))},function(a,b){H(this,this.i+1);this.g(b,S(this.f(b),this.b))},function(a,b){H(this,this.i+1);this.g(b,S(this.f(b),this.b*y))},function(a,b){a=this.f(b);R(a,this.b)&&H(this,
this.i+1);this.g(b,S(a,this.b))},function(a,b){a=this.f(b);var c=this.b*y;R(a,c)&&H(this,this.i+1);this.g(b,S(a,c))},function(a,b){this.g(b,S(this.f(b),this.f(this.b)))},function(a,b){this.g(b,S(this.f(b),W(this.f(this.b))))},function(a,b){a=this.f(b);var c=this.f(this.b);R(a,c)||H(this,this.i+1);this.g(b,S(a,c))},function(a,b){a=this.f(b);var c=W(this.f(this.b));R(a,c)||H(this,this.i+1);this.g(b,S(a,c))},function(a,b){H(this,this.i+1);this.g(b,S(this.f(b),this.f(this.b)))},function(a,b){H(this,this.i+
1);this.g(b,S(this.f(b),W(this.f(this.b))))},function(a,b){a=this.f(b);var c=this.f(this.b);R(a,c)&&H(this,this.i+1);this.g(b,S(a,c))},function(a,b){a=this.f(b);var c=W(this.f(this.b));R(a,c)&&H(this,this.i+1);this.g(b,S(a,c))},function(a,b){this.g(b,V(this.f(b),this.b))},function(a,b){this.g(b,V(this.f(b),this.b*y))},function(a,b){a=this.f(b);R(a,this.b)||H(this,this.i+1);this.g(b,V(a,this.b))},function(a,b){a=this.f(b);var c=this.b*y;R(a,c)||H(this,this.i+1);this.g(b,V(a,c))},function(a,b){H(this,
this.i+1);this.g(b,V(this.f(b),this.b))},function(a,b){H(this,this.i+1);this.g(b,V(this.f(b),this.b*y))},function(a,b){a=this.f(b);R(a,this.b)&&H(this,this.i+1);this.g(b,V(a,this.b))},function(a,b){a=this.f(b);var c=this.b*y;R(a,c)&&H(this,this.i+1);this.g(b,V(a,c))},function(a,b){this.g(b,V(this.f(b),this.f(this.b)))},function(a,b){this.g(b,V(this.f(b),W(this.f(this.b))))},function(a,b){a=this.f(b);var c=this.f(this.b);R(a,c)||H(this,this.i+1);this.g(b,V(a,c))},function(a,b){a=this.f(b);var c=W(this.f(this.b));
R(a,c)||H(this,this.i+1);this.g(b,V(a,c))},function(a,b){H(this,this.i+1);this.g(b,V(this.f(b),this.f(this.b)))},function(a,b){H(this,this.i+1);this.g(b,V(this.f(b),W(this.f(this.b))))},function(a,b){a=this.f(b);var c=this.f(this.b);R(a,c)&&H(this,this.i+1);this.g(b,V(a,c))},function(a,b){a=this.f(b);var c=W(this.f(this.b));R(a,c)&&H(this,this.i+1);this.g(b,V(a,c))},function(a,b){this.g(b,T(this.f(b),this.b))},function(a,b){this.g(b,T(this.f(b),this.b*y))},function(a,b){a=this.f(b);R(a,this.b)||H(this,
this.i+1);this.g(b,T(a,this.b))},function(a,b){a=this.f(b);R(a,this.b*y)||H(this,this.i+1);this.g(b,T(a,this.b*y))},function(a,b){H(this,this.i+1);this.g(b,T(this.f(b),this.b))},function(a,b){H(this,this.i+1);this.g(b,T(this.f(b),this.b*y))},function(a,b){a=this.f(b);R(a,this.b)&&H(this,this.i+1);this.g(b,T(a,this.b))},function(a,b){a=this.f(b);var c=this.b*y;R(a,c)&&H(this,this.i+1);this.g(b,T(a,c))},function(a,b){this.g(b,T(this.f(b),this.f(this.b)))},function(a,b){this.g(b,T(this.f(b),W(this.f(this.b))))},
function(a,b){a=this.f(b);var c=this.f(this.b);R(a,c)||H(this,this.i+1);this.g(b,T(a,c))},function(a,b){a=this.f(b);var c=W(this.f(this.b));R(a,c)||H(this,this.i+1);this.g(b,T(a,c))},function(a,b){H(this,this.i+1);this.g(b,T(this.f(b),this.f(this.b)))},function(a,b){H(this,this.i+1);this.g(b,T(this.f(b),W(this.f(this.b))))},function(a,b){a=this.f(b);var c=this.f(this.b);R(a,c)&&H(this,this.i+1);this.g(b,T(a,c))},function(a,b){a=this.f(b);var c=W(this.f(this.b));R(a,c)&&H(this,this.i+1);this.g(b,T(a,
c))},P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P],ne=[function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)},function(a,b){switch(b){case 0:a=this.f(this.b);a&8&&(this.j&=-131073);a&131072&&(this.j&=-262145);break;default:this.w(a)}},function(a,b){switch(b){case 0:a=0;this.j&131072&&(a|=8);this.j&262144&&(a|=65536);this.g(this.b,a);break;default:this.w(a)}},function(a){this.w(a)},
function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)},Cd,Dd,Ed,function(a,b){b&&this.g(b,this.f(this.b))},function(a,b){a=this.f(this.b);a=(a/y|0)+(a&x)*y;this.g(b,a)},function(a,b){this.g(b,this.b*y)},function(a,b){a=this.f(b);a=(a/y|0)+(a&x)*y;this.g(this.b,a)},function(a,b){a=this.f(this.b);a=(a/y|0)+(a&x)*y;this.g(this.b,a);b&&this.g(b,a)},function(a,b){this.g(b,Ce.call(this,this.f(this.b)))},function(a,b){this.g(b,
Ce.call(this,this.b))},function(a,b){this.g(this.b,Ce.call(this,this.f(b)))},function(a,b){a=Ce.call(this,this.f(this.b));this.g(this.b,a);b&&this.g(b,a)},function(a,b){this.g(b,ue.call(this,this.f(this.b)))},function(a,b){this.g(b,this.b)},function(a,b){this.g(this.b,ue.call(this,this.f(b)))},function(a,b){a=ue.call(this,this.f(this.b));this.g(this.b,a);b&&this.g(b,a)},function(a,b){this.g(b,Be.call(this,this.f(b),this.f(this.b),!0))},function(a,b){this.g(b,Be.call(this,this.f(b),this.b,!0))},function(a,
b){this.g(this.b,Be.call(this,this.f(b),this.f(this.b),!0))},function(a,b){this.g(this.b,this.g(b,Be.call(this,this.f(b),this.f(this.b),!0)))},function(a,b){this.g(b,Be.call(this,this.f(b),this.f(this.b)));this.g(b+1&15,this.F)},function(a,b){this.g(b,Be.call(this,this.f(b),this.b));this.g(b+1&15,this.F)},function(a,b){this.g(this.b,Be.call(this,this.f(b),this.f(this.b)))},function(a,b){this.g(this.b,this.g(b,Be.call(this,this.f(b),this.f(this.b))));this.g(b+1&15,this.F)},function(a,b){a=we.call(this,
this.f(this.b),this.f(b));0>a||(this.g(b,a),this.g(b+1&15,this.F))},function(a,b){a=we.call(this,this.b,this.f(b));0>a||(this.g(b,a),this.g(b+1&15,this.F))},function(a,b){a=we.call(this,this.f(this.b),this.f(b));0>a||this.g(this.b,a)},function(a,b){a=we.call(this,this.f(this.b),this.f(b));0>a||(this.g(this.b,this.g(b,a)),this.g(b+1&15,this.F))},function(a,b){a=this.f(b);var c=this.f(b+1&15),c=we.call(this,this.f(this.b),c,a);0>c||(this.g(b,c),this.g(b+1&15,this.F))},function(a,b){a=this.f(b);var c=
this.f(b+1&15),c=we.call(this,this.b,c,a);0>c||(this.g(b,c),this.g(b+1&15,this.F))},function(a,b){a=this.f(b);b=this.f(b+1&15);b=we.call(this,this.f(this.b),b,a);0>b||this.g(this.b,b)},function(a,b){a=this.f(b);var c=this.f(b+1&15),c=we.call(this,this.f(this.b),c,a);0>c||(this.g(b,this.g(this.b,c)),this.g(b+1&15,this.F))},function(a,b){if(a=(this.b&Wb)<<14>>23|this.b&255){var c,d,e=this.f(b);0<a?(d=z,c=e<A?0:A,35>a&&(c+=e*Math.pow(2,a)%A,d=A-Math.pow(2,35-a)),e<A?e+d>z&&(this.j|=131072):e-d<A&&(this.j|=
131072)):-35>=a?c=e<A?0:z:(c=Math.trunc(e/Math.pow(2,-a)),e>z&&(d=C-Math.pow(2,36+a),c+=d));this.g(b,c)}},function(a,b){if(a=((this.b&Wb)<<14>>23|this.b&255)%36){var c=this.f(b);0>a&&(a=36+a);c=c*Math.pow(2,a)%C+Math.trunc(c/Math.pow(2,36-a));this.g(b,c)}},function(a,b){if(a=(this.b&Wb)<<14>>23|this.b&255){var c=this.f(b),c=0<a?36<=a?0:c*Math.pow(2,a)%C:-36>=a?0:Math.trunc(c/Math.pow(2,-a));this.g(b,c)}},function(a,b){a=0;var c=this.f(b);if(c){for(;c<A;)a++,c*=2;I(this,this.b)}this.g(b+1&15,a)},function(a,
b){if(a=(this.b&Wb)<<14>>23|this.b&255){var c,d=this.f(b),e=this.f(b+1&15);if(0<a){var f=d;if(36<=a){if(0<d&&d<A||d>z&&d<B)this.j|=131072;if(71<=a){if(0<e&&e<A||e>z&&e<B)this.j|=131072;d=0}else d=e*Math.pow(2,a-35)%A,c=A-Math.pow(2,70-a),f<=z?e+c>z&&(this.j|=131072):e-c<=z&&(this.j|=131072);e=0;f>z&&(d+=A,e+=A)}else d=d*Math.pow(2,a)%A+Math.trunc(e%A/Math.pow(2,35-a)),e=e*Math.pow(2,a)%A,c=A-Math.pow(2,35-a),f<=z?f+c>z&&(this.j|=131072):(f-c<=z&&(this.j|=131072),d+=A,e+=A)}else-36>=a?(e=-72>=a?d>
z?B:0:Math.trunc(d%A/Math.pow(2,-a-35)),d<=z?d=0:(d=B,e+=A)):(c=d>z?C-Math.pow(2,36+a):0,e=Math.trunc(e%A/Math.pow(2,-a))+d%A*Math.pow(2,35+a)%A,d=Math.trunc(d/Math.pow(2,-a))+c,d>z&&(e+=A));this.g(b,d);this.g(b+1&15,e)}},function(a,b){if(a=((this.b&Wb)<<14>>23|this.b&255)%72){var c=this.f(b),d=this.f(b+1&15),e=c;0>a&&(a=72+a);36>a?(c=c*Math.pow(2,a)%C+Math.trunc(d/Math.pow(2,36-a)),d=d*Math.pow(2,a)%C+Math.trunc(e/Math.pow(2,36-a))):(c=d*Math.pow(2,a-36)%C+Math.trunc(c/Math.pow(2,72-a)),d=e*Math.pow(2,
a-36)%C+Math.trunc(d/Math.pow(2,72-a)));this.g(b,c);this.g(b+1&15,d)}},function(a,b){if(a=(this.b&Wb)<<14>>23|this.b&255){var c=this.f(b),d=this.f(b+1&15);0<a?36<=a?(c=72<=a?0:d*Math.pow(2,a-36)%C,d=0):(c=c*Math.pow(2,a)%C+Math.trunc(d/Math.pow(2,36-a)),d=d*Math.pow(2,a)%C):-36>=a?(d=-72>=a?0:Math.trunc(c/Math.pow(2,-a-36)),c=0):(d=Math.trunc(d/Math.pow(2,-a))+c*Math.pow(2,36+a)%C,c=Math.trunc(c/Math.pow(2,-a)));this.g(b,c);this.g(b+1&15,d)}},M,function(a,b){a=this.f(b);this.g(b,this.f(this.b));this.g(this.b,
a)},function(a,b){a=!1;for(var c=this.f(b),d=c/y|0,c=c&x;!a;)this.g(c,this.f(d)),c==this.b&&(a=!0),d=d+1&x,c=c+1&x,this.A.P||(this.g(b,d*y+c),a||ud(this,-1),a=!0)},function(a,b){a=(this.f(b)+262145)%C;this.g(b,a);a<A&&I(this,this.b)},function(a,b){a=(this.f(b)+262145)%C;this.g(b,a);a>=A&&I(this,this.b)},function(a,b){b&1&&(this.j|=4096);b&2&&td(this,this.Ka/y|0);b&4&&this.Y();b&8&&this.w(a);I(this,this.b)},function(a,b){a=b<<14;this.j&a&&(this.j&=~a,I(this,this.b))},function(){this.O=this.b},M,function(a,
b){a=(this.f(b)+262145)%C;this.g(b,a);a/y|0||(this.j|=262144);this.g(a&Tb,(this.j&x)*y+this.i);this.j&=-8193;I(this,this.b)},function(a,b){a=this.f(b);a+=262145;this.g(a&Tb,this.f(this.b));a>=C&&(a-=C);a/y|0||(this.j|=262144);this.g(b,a)},function(a,b){a=this.f(b);var c=this.f(a&Tb);this.g(this.b,c);this.b==b&&(a=c);a-=262145;0>a&&(a+=C);(a/y|0)==x&&(this.j|=262144);this.g(b,a)},function(a,b){a=this.f(b);var c=this.f(a&Tb);a-=262145;0>a&&(a+=C);(a/y|0)==x&&(this.j|=262144);this.g(b,a);I(this,c&Tb)},
function(){this.g(this.b,(this.j&x)*y+this.i);this.j&=-8193;I(this,this.b+1)},function(a,b){this.g(b,(this.j&x)*y+this.i);this.j&=-8193;I(this,this.b)},function(a,b){this.g(this.b,this.f(b));this.g(b,this.b*y+this.i);I(this,this.b+1)},function(a,b){a=this.f(b);this.g(b,this.f(a/y|0));I(this,this.b)},function(a,b){this.g(b,Q.call(this,this.f(b),this.f(this.b)))},function(a,b){this.g(b,Q.call(this,this.f(b),this.b))},function(a,b){this.g(this.b,Q.call(this,this.f(b),this.f(this.b)))},function(a,b){this.g(this.b,
this.g(b,Q.call(this,this.f(b),this.f(this.b))))},function(a,b){this.g(b,De.call(this,this.f(b),this.f(this.b)))},function(a,b){this.g(b,De.call(this,this.f(b),this.b))},function(a,b){this.g(this.b,De.call(this,this.f(b),this.f(this.b)))},function(a,b){this.g(this.b,this.g(b,De.call(this,this.f(b),this.f(this.b))))},se,function(a,b){0>Ee(this.f(b),this.b)&&I(this,this.i+1)},function(a,b){Ee(this.f(b),this.b)||I(this,this.i+1)},function(a,b){0>=Ee(this.f(b),this.b)&&I(this,this.i+1)},function(){I(this,
this.i+1)},function(a,b){0<=Ee(this.f(b),this.b)&&I(this,this.i+1)},function(a,b){Ee(this.f(b),this.b)&&I(this,this.i+1)},function(a,b){0<Ee(this.f(b),this.b)&&I(this,this.i+1)},te,function(a,b){0>Ee(this.f(b),this.f(this.b))&&I(this,this.i+1)},function(a,b){Ee(this.f(b),this.f(this.b))||I(this,this.i+1)},function(a,b){0>=Ee(this.f(b),this.f(this.b))&&I(this,this.i+1)},function(){I(this,this.i+1)},function(a,b){0<=Ee(this.f(b),this.f(this.b))&&I(this,this.i+1)},function(a,b){Ee(this.f(b),this.f(this.b))&&
I(this,this.i+1)},function(a,b){0<Ee(this.f(b),this.f(this.b))&&I(this,this.i+1)},se,function(a,b){0>U(this.f(b))&&I(this,this.b)},function(a,b){U(this.f(b))||I(this,this.b)},function(a,b){0>=U(this.f(b))&&I(this,this.b)},function(){I(this,this.b)},function(a,b){0<=U(this.f(b))&&I(this,this.b)},function(a,b){U(this.f(b))&&I(this,this.b)},function(a,b){0<U(this.f(b))&&I(this,this.b)},function(a,b){b&&this.g(b,this.f(this.b))},function(a,b){a=this.f(this.b);0>U(a)&&I(this,this.i+1);b&&this.g(b,a)},
function(a,b){a=this.f(this.b);U(a)||I(this,this.i+1);b&&this.g(b,a)},function(a,b){a=this.f(this.b);0>=U(a)&&I(this,this.i+1);b&&this.g(b,a)},function(a,b){I(this,this.i+1);b&&this.g(b,this.f(this.b))},function(a,b){a=this.f(this.b);0<=U(a)&&I(this,this.i+1);b&&this.g(b,a)},function(a,b){a=this.f(this.b);U(a)&&I(this,this.i+1);b&&this.g(b,a)},function(a,b){a=this.f(this.b);0<U(a)&&I(this,this.i+1);b&&this.g(b,a)},function(a,b){this.g(b,Q.call(this,this.f(b),1))},function(a,b){a=this.g(b,Q.call(this,
this.f(b),1));0>U(a)&&I(this,this.b)},function(a,b){a=this.g(b,Q.call(this,this.f(b),1));U(a)||I(this,this.b)},function(a,b){a=this.g(b,Q.call(this,this.f(b),1));0>=U(a)&&I(this,this.b)},function(a,b){this.g(b,Q.call(this,this.f(b),1));I(this,this.b)},function(a,b){a=this.g(b,Q.call(this,this.f(b),1));0<=U(a)&&I(this,this.b)},function(a,b){a=this.g(b,Q.call(this,this.f(b),1));U(a)&&I(this,this.b)},function(a,b){a=this.g(b,Q.call(this,this.f(b),1));0<U(a)&&I(this,this.b)},function(a,b){a=this.g(this.b,
Q.call(this,this.f(this.b),1));b&&this.g(b,a)},function(a,b){a=this.g(this.b,Q.call(this,this.f(this.b),1));0>U(a)&&I(this,this.i+1);b&&this.g(b,a)},function(a,b){a=this.g(this.b,Q.call(this,this.f(this.b),1));U(a)||I(this,this.i+1);b&&this.g(b,a)},function(a,b){a=this.g(this.b,Q.call(this,this.f(this.b),1));0>=U(a)&&I(this,this.i+1);b&&this.g(b,a)},function(a,b){a=this.g(this.b,Q.call(this,this.f(this.b),1));I(this,this.i+1);b&&this.g(b,a)},function(a,b){a=this.g(this.b,Q.call(this,this.f(this.b),
1));0<=U(a)&&I(this,this.i+1);b&&this.g(b,a)},function(a,b){a=this.g(this.b,Q.call(this,this.f(this.b),1));U(a)&&I(this,this.i+1);b&&this.g(b,a)},function(a,b){a=this.g(this.b,Q.call(this,this.f(this.b),1));0<U(a)&&I(this,this.i+1);b&&this.g(b,a)},function(a,b){this.g(b,Q.call(this,this.f(b),B))},function(a,b){a=this.g(b,Q.call(this,this.f(b),B));0>U(a)&&I(this,this.b)},function(a,b){a=this.g(b,Q.call(this,this.f(b),B));U(a)||I(this,this.b)},function(a,b){a=this.g(b,Q.call(this,this.f(b),B));0>=U(a)&&
I(this,this.b)},function(a,b){this.g(b,Q.call(this,this.f(b),B));I(this,this.b)},function(a,b){a=this.g(b,Q.call(this,this.f(b),B));0<=U(a)&&I(this,this.b)},function(a,b){a=this.g(b,Q.call(this,this.f(b),B));U(a)&&I(this,this.b)},function(a,b){a=this.g(b,Q.call(this,this.f(b),B));0<U(a)&&I(this,this.b)},function(a,b){a=this.g(this.b,Q.call(this,this.f(this.b),B));b&&this.g(b,a)},function(a,b){a=this.g(this.b,Q.call(this,this.f(this.b),B));0>U(a)&&I(this,this.i+1);b&&this.g(b,a)},function(a,b){a=this.g(this.b,
Q.call(this,this.f(this.b),B));U(a)||I(this,this.i+1);b&&this.g(b,a)},function(a,b){a=this.g(this.b,Q.call(this,this.f(this.b),B));0>=U(a)&&I(this,this.i+1);b&&this.g(b,a)},function(a,b){a=this.g(this.b,Q.call(this,this.f(this.b),B));I(this,this.i+1);b&&this.g(b,a)},function(a,b){a=this.g(this.b,Q.call(this,this.f(this.b),B));0<=U(a)&&I(this,this.i+1);b&&this.g(b,a)},function(a,b){a=this.g(this.b,Q.call(this,this.f(this.b),B));U(a)&&I(this,this.i+1);b&&this.g(b,a)},function(a,b){a=this.g(this.b,Q.call(this,
this.f(this.b),B));0<U(a)&&I(this,this.i+1);b&&this.g(b,a)},Fd,Fd,function(){this.g(this.b,0)},function(a,b){this.g(this.b,this.g(b,0))},function(a,b){this.g(b,R(this.f(b),this.f(this.b)))},function(a,b){this.g(b,R(this.f(b),this.b))},function(a,b){this.g(this.b,R(this.f(b),this.f(this.b)))},function(a,b){this.g(this.b,this.g(b,R(this.f(b),this.f(this.b))))},function(a,b){this.g(b,R(B-this.f(b),this.f(this.b)))},function(a,b){this.g(b,R(B-this.f(b),this.b))},function(a,b){this.g(this.b,R(B-this.f(b),
this.f(this.b)))},function(a,b){this.g(this.b,this.g(b,R(B-this.f(b),this.f(this.b))))},Cd,Dd,te,Cd,function(a,b){this.g(b,R(this.f(b),B-this.f(this.b)))},function(a,b){this.g(b,R(this.f(b),B-this.b))},function(a,b){this.g(this.b,R(this.f(b),B-this.f(this.b)))},function(a,b){this.g(this.b,this.g(b,R(this.f(b),B-this.f(this.b))))},se,se,Ed,Ed,function(a,b){this.g(b,V(this.f(b),this.f(this.b)))},function(a,b){this.g(b,V(this.f(b),this.b))},function(a,b){this.g(this.b,V(this.f(b),this.f(this.b)))},function(a,
b){this.g(this.b,this.g(b,V(this.f(b),this.f(this.b))))},function(a,b){this.g(b,T(this.f(b),this.f(this.b)))},function(a,b){this.g(b,T(this.f(b),this.b))},function(a,b){this.g(this.b,T(this.f(b),this.f(this.b)))},function(a,b){this.g(this.b,this.g(b,T(this.f(b),this.f(this.b))))},function(a,b){this.g(b,R(B-this.f(b),B-this.f(this.b)))},function(a,b){this.g(b,R(B-this.f(b),B-this.b))},function(a,b){this.g(this.b,R(B-this.f(b),B-this.f(this.b)))},function(a,b){this.g(this.b,this.g(b,R(B-this.f(b),B-
this.f(this.b))))},function(a,b){this.g(b,Fe(this.f(b),this.f(this.b)))},function(a,b){this.g(b,Fe(this.f(b),this.b))},function(a,b){this.g(this.b,Fe(this.f(b),this.f(this.b)))},function(a,b){this.g(this.b,this.g(b,Fe(this.f(b),this.f(this.b))))},Gd,Gd,function(a,b){this.g(this.b,B-this.f(b))},function(a,b){this.g(this.b,this.g(b,B-this.f(b)))},function(a,b){this.g(b,T(B-this.f(b),this.f(this.b)))},function(a,b){this.g(b,T(B-this.f(b),this.b))},function(a,b){this.g(this.b,T(B-this.f(b),this.f(this.b)))},
function(a,b){this.g(this.b,this.g(b,T(B-this.f(b),this.f(this.b))))},function(a,b){this.g(b,B-this.f(this.b))},function(a,b){this.g(b,B-this.b)},function(){this.g(this.b,B-this.f(this.b))},function(a,b){this.g(this.b,this.g(b,B-this.f(this.b)))},function(a,b){this.g(b,T(this.f(b),B-this.f(this.b)))},function(a,b){this.g(b,T(this.f(b),B-this.b))},function(a,b){this.g(this.b,T(this.f(b),B-this.f(this.b)))},function(a,b){this.g(this.b,this.g(b,T(this.f(b),B-this.f(this.b))))},function(a,b){this.g(b,
T(B-this.f(b),B-this.f(this.b)))},function(a,b){this.g(b,T(B-this.f(b),B-this.b))},function(a,b){this.g(this.b,T(B-this.f(b),B-this.f(this.b)))},function(a,b){this.g(this.b,this.g(b,T(B-this.f(b),B-this.f(this.b))))},Hd,Hd,function(){this.g(this.b,B)},function(a,b){this.g(this.b,this.g(b,B))},Id,Kd,Ld,Md,Nd,Od,Pd,Qd,Id,Kd,Ld,Md,Nd,Od,Pd,Qd,Id,Kd,Ld,Md,Nd,Od,Pd,Qd,Id,Kd,Ld,Md,Nd,Od,Pd,Qd,ie,ke,le,me,ne,oe,pe,qe,ie,ke,le,me,ne,oe,pe,qe,ie,ke,le,me,ne,oe,pe,qe,ie,ke,le,me,ne,oe,pe,qe,se,se,function(a,
b){R(this.f(b),this.b)||I(this,this.i+1)},function(a,b){R(this.f(b),this.b*y)||I(this,this.i+1)},function(){I(this,this.i+1)},function(){I(this,this.i+1)},function(a,b){R(this.f(b),this.b)&&I(this,this.i+1)},function(a,b){R(this.f(b),this.b*y)&&I(this,this.i+1)},te,te,function(a,b){R(this.f(b),this.f(this.b))||I(this,this.i+1)},function(a,b){R(this.f(b),W(this.f(this.b)))||I(this,this.i+1)},function(){I(this,this.i+1)},function(){I(this,this.i+1)},function(a,b){R(this.f(b),this.f(this.b))&&I(this,
this.i+1)},function(a,b){R(this.f(b),W(this.f(this.b)))&&I(this,this.i+1)},function(a,b){this.g(b,S(this.f(b),this.b))},function(a,b){this.g(b,S(this.f(b),this.b*y))},function(a,b){a=this.f(b);R(a,this.b)||I(this,this.i+1);this.g(b,S(a,this.b))},function(a,b){a=this.f(b);var c=this.b*y;R(a,c)||I(this,this.i+1);this.g(b,S(a,c))},function(a,b){I(this,this.i+1);this.g(b,S(this.f(b),this.b))},function(a,b){I(this,this.i+1);this.g(b,S(this.f(b),this.b*y))},function(a,b){a=this.f(b);R(a,this.b)&&I(this,
this.i+1);this.g(b,S(a,this.b))},function(a,b){a=this.f(b);var c=this.b*y;R(a,c)&&I(this,this.i+1);this.g(b,S(a,c))},function(a,b){this.g(b,S(this.f(b),this.f(this.b)))},function(a,b){this.g(b,S(this.f(b),W(this.f(this.b))))},function(a,b){a=this.f(b);var c=this.f(this.b);R(a,c)||I(this,this.i+1);this.g(b,S(a,c))},function(a,b){a=this.f(b);var c=W(this.f(this.b));R(a,c)||I(this,this.i+1);this.g(b,S(a,c))},function(a,b){I(this,this.i+1);this.g(b,S(this.f(b),this.f(this.b)))},function(a,b){I(this,this.i+
1);this.g(b,S(this.f(b),W(this.f(this.b))))},function(a,b){a=this.f(b);var c=this.f(this.b);R(a,c)&&I(this,this.i+1);this.g(b,S(a,c))},function(a,b){a=this.f(b);var c=W(this.f(this.b));R(a,c)&&I(this,this.i+1);this.g(b,S(a,c))},function(a,b){this.g(b,V(this.f(b),this.b))},function(a,b){this.g(b,V(this.f(b),this.b*y))},function(a,b){a=this.f(b);R(a,this.b)||I(this,this.i+1);this.g(b,V(a,this.b))},function(a,b){a=this.f(b);var c=this.b*y;R(a,c)||I(this,this.i+1);this.g(b,V(a,c))},function(a,b){I(this,
this.i+1);this.g(b,V(this.f(b),this.b))},function(a,b){I(this,this.i+1);this.g(b,V(this.f(b),this.b*y))},function(a,b){a=this.f(b);R(a,this.b)&&I(this,this.i+1);this.g(b,V(a,this.b))},function(a,b){a=this.f(b);var c=this.b*y;R(a,c)&&I(this,this.i+1);this.g(b,V(a,c))},function(a,b){this.g(b,V(this.f(b),this.f(this.b)))},function(a,b){this.g(b,V(this.f(b),W(this.f(this.b))))},function(a,b){a=this.f(b);var c=this.f(this.b);R(a,c)||I(this,this.i+1);this.g(b,V(a,c))},function(a,b){a=this.f(b);var c=W(this.f(this.b));
R(a,c)||I(this,this.i+1);this.g(b,V(a,c))},function(a,b){I(this,this.i+1);this.g(b,V(this.f(b),this.f(this.b)))},function(a,b){I(this,this.i+1);this.g(b,V(this.f(b),W(this.f(this.b))))},function(a,b){a=this.f(b);var c=this.f(this.b);R(a,c)&&I(this,this.i+1);this.g(b,V(a,c))},function(a,b){a=this.f(b);var c=W(this.f(this.b));R(a,c)&&I(this,this.i+1);this.g(b,V(a,c))},function(a,b){this.g(b,T(this.f(b),this.b))},function(a,b){this.g(b,T(this.f(b),this.b*y))},function(a,b){a=this.f(b);R(a,this.b)||I(this,
this.i+1);this.g(b,T(a,this.b))},function(a,b){a=this.f(b);R(a,this.b*y)||I(this,this.i+1);this.g(b,T(a,this.b*y))},function(a,b){I(this,this.i+1);this.g(b,T(this.f(b),this.b))},function(a,b){I(this,this.i+1);this.g(b,T(this.f(b),this.b*y))},function(a,b){a=this.f(b);R(a,this.b)&&I(this,this.i+1);this.g(b,T(a,this.b))},function(a,b){a=this.f(b);var c=this.b*y;R(a,c)&&I(this,this.i+1);this.g(b,T(a,c))},function(a,b){this.g(b,T(this.f(b),this.f(this.b)))},function(a,b){this.g(b,T(this.f(b),W(this.f(this.b))))},
function(a,b){a=this.f(b);var c=this.f(this.b);R(a,c)||I(this,this.i+1);this.g(b,T(a,c))},function(a,b){a=this.f(b);var c=W(this.f(this.b));R(a,c)||I(this,this.i+1);this.g(b,T(a,c))},function(a,b){I(this,this.i+1);this.g(b,T(this.f(b),this.f(this.b)))},function(a,b){I(this,this.i+1);this.g(b,T(this.f(b),W(this.f(this.b))))},function(a,b){a=this.f(b);var c=this.f(this.b);R(a,c)&&I(this,this.i+1);this.g(b,T(a,c))},function(a,b){a=this.f(b);var c=W(this.f(this.b));R(a,c)&&I(this,this.i+1);this.g(b,T(a,
c))},P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P],re=[function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)},function(a,b){switch(b){case 0:a=this.f(this.b);a&8&&(this.j&=-131073);a&131072&&(this.j&=-262145);break;default:this.w(a)}},function(a,b){switch(b){case 0:a=0;this.j&131072&&(a|=8);this.j&262144&&(a|=65536);this.g(this.b,a);break;default:this.w(a)}},function(a){this.w(a)},
function(a){this.w(a)}];
function Ce(a){r.call(this,"ROM",a,128);this.aa=this.b=null;this.C=+a.addr;this.j=+a.size;this.i=a.alias;"string"==typeof this.i&&(this.i=eval(this.i));this.w=a.file;this.F=wa(this.w);if(this.w){a=this.w;var b=xa(this.F);"json"!=b&&"hex"!=b&&(a=Ja()+"/api/v1/dump?file="+this.w+"&format=bytes&decimal=true");var c=this;Ha(a,null,!0,function(a,b,f){f?(c.ja("Unable to load ROM resource (error "+f+": "+a+")"),c.w=null):(fb(c.bb,a,b),(a=Ia(a,b))?(c.b=a.da,c.aa=a.aa):c.w=null);De(c)})}}ja(Ce,r);
Ce.prototype.Ma=function(a,b,c,d){this.G=b;this.v=c;this.D=d;De(this)};Ce.prototype.Ba=function(){this.aa&&(this.D&&Ee(this.D,this.id,this.C,this.j,this.aa),delete this.aa);return!0};Ce.prototype.ra=function(){return!0};
function De(a){if(!Ab(a)){if(a.w){if(!a.b||!a.G)return;a.j||(a.j=a.b.length);if(a.b.length!=a.j)yb(a,"ROM size ("+n(a.b.length,8,!0)+") does not match specified size ("+n(a.j,8,!0)+")");else{var b;b=a.C;if(Ec(a.G,b,a.j,Pc)){var c;for(c=0;c<a.b.length;c++)yc(a.G,b+c,a.b[c]);b=!0}else b=!1;if(b){b=[];"number"==typeof a.i?b.push(a.i):null!=a.i&&a.i.length&&(b=a.i);for(c=0;c<b.length;c++){for(var d=a,e=b[c],f=d.G,g=d.j,h=[],k=d.C>>>f.i;0<g&&k<f.b.length;)h.push(f.b[k++]),g-=16384;f=d.G;d=d.j;g=0;for(e>>>=
f.i;0<d&&e<f.b.length;){k=h[g++];if(!k)break;f.b[e++]=k;d-=16384}}delete a.b}}}Bb(a)}}Xa(function(){for(var a=w(document,v,"rom"),b=0;b<a.length;b++){var c=a[b],d=t(c),d=new Ce(d);sb(d,c)}});
function Fe(a){r.call(this,"RAM",a);this.aa=this.Pa=null;this.i=+a.addr;this.j=+a.size;this.la=a.load;this.ya=a.exec;null!=this.la&&(this.la=+this.la);null!=this.ya&&(this.ya=+this.ya);this.w=this.F=!1;this.b=a.file;this.C=wa(this.b);if(this.b){a=this.b;var b=xa(this.C);"json"!=b&&"hex"!=b&&(a=Ja()+"/api/v1/dump?file="+this.b+"&format=bytes&decimal=true");var c=this;Ha(a,null,!0,function(a,b,f){f?(c.ja("Unable to load RAM resource (error "+f+": "+a+")"),c.b=null):(fb(c.bb,a,b),(a=Ia(a,b))?(c.Pa=a.Pa,
c.aa=a.aa,null==c.la&&(c.la=a.la),null==c.ya&&(c.ya=a.ya)):c.b=null);Ge(c)})}}ja(Fe,r);Fe.prototype.Ma=function(a,b,c,d){this.G=b;this.v=c;this.D=d;Ge(this)};Fe.prototype.Ba=function(a,b){this.aa&&(this.D&&Ee(this.D,this.id,this.i,this.j,this.aa),delete this.aa);b||this.reset();return!0};Fe.prototype.ra=function(){return!0};
function Ge(a){if(a.G&&(!a.w&&a.j&&(Ec(a.G,a.i,a.j,1)?a.w=!0:a.j=0),!Ab(a))){if(!a.w)q("No RAM allocated");else if(a.b){if(!a.Pa)return;He(a,a.Pa,a.la,a.ya,a.i)?a.status('Loaded image "'+a.C+'"'):a.ja('Error loading image "'+a.C+'"')}a.F=!0;Bb(a)}}
Fe.prototype.reset=function(){if(this.w&&!this.F){for(var a=this.G,b=this.i,c=this.j,d=b&16383,b=b>>>a.i;0<c&&b<a.b.length;){var e=a.b[b],f=c,g=0,g=void 0===g?0:g,d=d||0;void 0===f&&(f=e.size);0>g&&g>=-B&&(g+=D);for(var g=Math.trunc(Math.abs(g))%D,h=d;f--&&h<e.size;h++)e.D(g,d,e.B+d);c-=16384;b++;d=0}this.Pa&&He(this,this.Pa,this.la,this.ya,this.i,!this.D)}this.F=!1};
function He(a,b,c,d,e,f){var g=!1;null==c&&(c=e);if(null!=c){for(g=0;g<b.length;g++)yc(a.G,c+g,b[g]);g=!0}g&&(null==d&&(a.v.Y(),f=!1),null!=d&&(a=a.v,a.$a=d,H(a,d),f?a.A.ba?a.A.P||sc(a):a.A.fa=!0:a.D&&a.A.ba?a.Y()||a.H.A.reset||(cd(a.D),K(a.H,-1)):!1===f&&a.Y(),!a.A.P&&a.Oa&&a.Oa.stop()));return g}Xa(function(){for(var a=w(document,v,"ram"),b=0;b<a.length;b++){var c=a[b],d=t(c),d=new Fe(d);sb(d,c)}});
function Ie(a){r.call(this,"SerialPort",a,1048576);this.w=a.upperCase;"string"==typeof this.w&&(this.w="true"==this.w);this.j=!0;this.i=[];var b=a.binding;if("console"!=b){var c;a=Je;b&&(void 0===c&&(c="Panel"),(c=rb(c,this.id))&&(b=c.J[b])&&this.sa(null,a,b))}this.b=this.C=null;this.exports={connect:this.Lb,receiveData:this.gb,receiveStatus:this.jc,setConnection:this.mc}}ja(Ie,r);m=Ie.prototype;
m.sa=function(a,b,c){var d=this;switch(b){case Je:return this.J[b]=c,c.onkeydown=function(a){a=a||window.event;var b=0,c=a.keyCode;8==c?b=a.altKey?ma.xb:ma.Qb:46==c?b=ma.xb:a.ctrlKey&&c>=ma.wb&&c<=ma.Rb&&(b=c-(ma.wb-ma.Nb));b&&(a.preventDefault&&a.preventDefault(),d.gb(b));return!0},c.onkeypress=function(a){a=a||window.event;if(!a.metaKey){var b=a.which||a.keyCode;a.altKey&&b==ma.Pb&&(b=ma.Ob);d.gb(b);a.preventDefault&&a.preventDefault()}return!0},c.onpaste=function(a){a.stopPropagation&&a.stopPropagation();
a.preventDefault&&a.preventDefault();(a=a.clipboardData||window.clipboardData)&&d.gb(a.getData("Text"))},c.removeAttribute("readonly"),!0}return!1};m.Ma=function(a,b,c,d){this.H=a;this.G=b;this.v=c;this.D=d;Bb(this)};
m.Lb=function(a){if(!this.b){var b=$c(this.H,"connection");if(b){var c=b.split("->");if(2==c.length){var d=Ca(c[0]);if(d!=this.ab)return;c=Ca(c[1]);if(this.b=qb(c)){var e=this.b.exports;if(e){var f=e.connect;f&&f.call(this.b,this.j);if(this.C=e.receiveData){this.j=a;this.status("Connected "+this.bb+"."+d+" to "+c);return}}}}this.status("Unable to establish connection: "+b)}}};m.Ba=function(a,b){if(!b)if(this.Lb(this.j),!a)this.reset();else if(!this.restore(a))return!1;return!0};
m.ra=function(a){return a?this.save():!0};m.reset=function(){};m.save=function(){var a=new G(this);a.set(0,[]);return a.data()};m.restore=function(){return!0};m.gb=function(a){if("number"==typeof a)this.i.push(a);else if("string"==typeof a)for(var b=0,c,d=0;d<a.length;d++){c=b;b=a.charCodeAt(d);if(10==b){if(13==c)continue;b=13}this.i.push(b)}else this.i=this.i.concat(a);return!0};m.jc=function(){};m.mc=function(a,b){return this.b?!1:(this.b=a,this.C=b,!0)};var Je="buffer";
Xa(function(){for(var a=w(document,v,"serial"),b=0;b<a.length;b++){var c=a[b],d=t(c),d=new Ie(d);sb(d,c)}});function Ke(a){r.call(this,"Debugger",a);this.T=+a.base||16;this.L=32;this.U=["{","}"];this.ta=["[","]"];this.F=0;this.V=!1;this.C=-1;this.w=[];this.b={}}ja(Ke,r);Ke.prototype.tb=function(){return-1};Ke.prototype.ub=function(){};
function Le(a,b,c,d){if(c)if(b){0>a.C&&a.w.length&&(a.C=0);if(0>a.C||b!=a.w[a.C])a.w.splice(0,0,b),a.C=0;a.C--}else a.V?b="end":b=a.w[a.C+1];a=[];if(b){b=b.replace(/""/g,"'");c=0;var e=null;d=d||";";for(var f=0;f<=b.length;f++){var g=b.charAt(f);if('"'==g||"'"==g)e?g==e&&(e=null):e=g;else if(g==d&&!e||!g)a.push(Ca(b.substring(c,f))),c=f+1}}return a}function Me(a,b,c){if(32>=a.L)return b&c;b=X(a,b,0,!0);c=X(a,c,0,!0);return((b/Ne|0)&(c/Ne|0))*Ne+((b&c)>>>0)}
function Oe(a,b,c){if(32>=a.L)return b|c;b=X(a,b,0,!0);c=X(a,c,0,!0);return((b/Ne|0)^(c/Ne|0))*Ne+((b^c)>>>0)}Ke.prototype.Ib=function(a,b){return a*b};function X(a,b,c,d){var e=b;c=c||a.L;if(d)if(32==c)e=b>>>0;else if(32>c)e=b&(1<<c)-1;else{if(a=Math.pow(2,c),0>b||b>=a)e=b%a,0>e&&(e+=a)}else 32>=c?e=b<<32-c>>32-c:(a=Math.pow(2,c-1),b>=a?(e=b%a,(b/a|0)&1&&(e-=a)):b<-a&&(e=b%a,((-b-1)/a|0)&1?e&&(e+=a):e||(e-=a)));b!=e&&(b=e);return b}
function Pe(a,b,c,d){for(d=void 0===d?-1:d;d--&&c.length;){var e=c.pop();if(2>b.length)return!1;var f,g=b.pop();f=b.pop();switch(e){case "*":f=a.Ib(f,g);break;case "/":if(!g)return!1;f=Math.trunc(f/g);break;case "^/":if(!g)return!1;f%=g;break;case "+":f+=g;break;case "-":f-=g;break;case "<<":f<<=g;break;case ">>":f>>=g;break;case ">>>":f>>>=g;break;case "<":f=f<g?1:0;break;case "<=":f=f<=g?1:0;break;case ">":f=f>g?1:0;break;case ">=":f=f>=g?1:0;break;case "==":f=f==g?1:0;break;case "!=":f=f!=g?1:
0;break;case "&":f=Me(a,f,g);break;case "!":case "|":e=a;32>=e.L?f|=g:(f=X(e,f,0,!0),g=X(e,g,0,!0),f=(f/Ne|0|g/Ne|0)*Ne+((f|g)>>>0));break;case "^!":f=Oe(a,f,g);break;case "&&":f=f&&g?1:0;break;case "||":f=f||g?1:0;break;case ",,":f=X(a,f,18,!0)*Math.pow(2,18)+X(a,g,18,!0);break;case "_":case "^_":"^_"==e&&(g=35-(g&255));g&&(f=X(a,f,0,!0),f=0<g?f*Math.pow(2,g):Math.trunc(f/Math.pow(2,-g)));break;default:return!1}b.push(X(a,f))}return!0}
function Qe(a,b,c,d,e,f){var g,h,k,l=!1,p=0,u=[],E=[],J=a.T;for(a.T=e;c<d;){var I;h=b[c++].trim();k=c<d?b[c++]:"";if(h)I=Re(a,h,null,f,p);else if("{"==k){h=1;for(I=c;c<d;)if(c++,k=c<b.length?b[c++]:"","{"==k)h++;else if("}"==k&&!--h)break;I=Qe(a,b,I,c-1,a.T,f);null!=I&&p&&(I=Se(a,I,p));h=c<d?b[c++].trim():"";k=c<d?b[c++]:""}else{if(" "==k)continue;if("^B"==k){a.T=2;continue}if("^O"==k){a.T=8;continue}if("^D"==k){a.T=10;continue}if(!(p&-1073741824)){if("+"==k)continue;if("-"==k){p=p<<2|1;continue}if("~"==
k||"^-"==k){p=p<<2|2;continue}if("^L"==k){p=p<<2|3;continue}}l=!0;break}if(void 0===I)if(f)f.push(h),I=0;else{l=!0;f=[];break}u.push(X(a,I));if(" "==k)if(c<b.length-1&&!b[c])c++,k=b[c++];else{l=!0;break}if(!k)break;p="<"==a.U[0]?Te:Ue;if(!p[k]){l=!0;break}E.length&&p[k]<=p[E[E.length-1]]&&Pe(a,u,E,1);E.push(k);a.T="^_"==k?10:e;p=0}if(l||!Pe(a,u,E)||1!=u.length)l=!0;l?f||a.u("parse error ("+(h||k)+")"):g=u.pop();a.T=J;return g}
function Ve(a,b,c,d,e){for(var f;0<=(f=b.indexOf(c));){for(var g=0,h=f+1,k=e;h<b.length;){var l=b[h++];if(l==c){k=-1;break}if(!k)break;k--;l=l.charCodeAt(0);7==d?l&=127:l=l-32&63;g=X(a,g*Math.pow(2,d)+l,d*e,!0)}if(0<=k){a.u("parse error ("+c+b+c+")");break}else b=b.substr(0,f)+L(a,g,-1)+b.substr(h)}return b}
function We(a,b,c){var d=void 0,e=!1===c;c=Array.isArray(c)?c:void 0;if(b){"{"!=a.U[0]&&(b=b.split(a.U[0]).join("{").split(a.U[1]).join("}"));b=Ve(a,b,'"',7,5);if(!b)return d;b=Ve(a,b,"'",6,6);if(!b)return d;b=b.replace(/(^|[^A-Z0-9$%.])([0-9]+)B/,"$1$2^_").replace(/\s+/g," ");b=b.split(/({|}|\|\||&&|\||\^!|\^B|\^O|\^D|\^L|\^-|~|\^_|_|&|!=|!|==|>=|>>>|>>|>|<=|<<|<|-|\+|\^\/|\/|\*|,,| )/);d=Qe(a,b,0,b.length,a.T,c);void 0!==d&&e&&Xe(a,null,d)}return d}
function Se(a,b,c){for(;c;){switch(c&3){case 1:b=-X(a,b);break;case 2:b=Oe(a,b,-1);break;case 3:for(var d=35;0<=d&&!Me(a,b,Math.pow(2,d));)d--;b=35-d}c>>>=2}return b}
function Re(a,b,c,d,e){e=void 0===e?0:e;var f,g=Array.isArray(d)?d:void 0;if(null!=b){f=a.tb(b);if(0<=f)f=a.ub(f);else if(f=b,a.b[f]?f=a.b[f].value:(f=f.substr(0,6),f=a.b[f]&&a.b[f].value),null!=f){var h=a.b[b]&&a.b[b].Mb;h&&(g?g.push(h):(a.u(b+" is undefined ("+h+")"),f=void 0))}else f=na(b,1<b.length||10<a.T?a.T:10);null!=f?f=X(a,Se(a,f,e)):d||a.u("invalid "+(c?c:"value")+": "+b)}else d||a.u("missing "+(c||"value"));return f}
function Xe(a,b,c){var d,e=!1;void 0!==c&&(e=!0,d=8==a.T?L(a,c,a.L,8,1)+" "+c+".":L(a,c,a.L,16,1)+" "+L(a,c,a.L,8,1)+" "+L(a,c,a.L,2,32>=a.L?8:6)+" "+c+".",32<=c&&127>c&&(d+=" '"+String.fromCharCode(c)+"'"));a.u((null!=b?b+": ":"")+d);return e}function Ye(a){var b=a.b;a.b={};return b}function Ze(a,b){var c=0;if(a.b){if(b)return Xe(a,b,a.b[b]&&a.b[b].value);b=Object.keys(a.b);b.sort();for(var d=0;d<b.length;d++)Xe(a,b[d],a.b[b[d]].value),c++}return 0<c}
function L(a,b,c,d,e){c=void 0===c?0:c;e=void 0===e?0:e;switch((void 0===d?0:d)||a.T){case 2:(a=0<c?c:0)?36<a&&(a=36):(a=Math.abs(b),a=255>=a?8:262143>=a?18:36);b=oa(b,2,a,"",e);break;case 8:b=ua(b,0<c?(c+2)/3|0:0,!!e);break;case 10:b=va(b,0<c?Math.ceil(.3*c):0);break;default:b=n(b,0<c?c+3>>2:0,!!e)}0>c?c=b.replace(/^0+([0-9A-F]+)$/i,"$1"):c=b;return c}
var Ue={"||":5,"&&":6,"!":7,"|":7,"^!":8,"&":9,"!=":10,"==":10,">=":11,">":11,"<=":11,"<":11,">>>":12,">>":12,"<<":12,"-":13,"+":13,"^/":14,"/":14,"*":14,_:19,"^_":19,"{":20,"}":20},Te={",,":1,"||":5,"&&":6,"!=":10,"==":10,">=":11,">":11,"<=":11,"<":11,">>>":12,">>":12,"<<":12,"-":13,"+":13,"^/":14,"/":14,"*":14,"!":15,"|":15,"^!":15,"&":15,_:19,"^_":19,"{":20,"}":20},Ne=Math.pow(2,32);
function $e(a){Ke.call(this,a);this.Ja=!1;this.Ga=18;this.L=36;this.U=["<",">"];this.ta=[];this.Ia=Y();this.M=Y(0);this.oa=Y(0);this.ha=Y(0);this.I=[];this.i=this.N=this.K=[];af(this);this.X=this.pa=0;this.j=[];this.Ca=void 0;bf(this);this.D=this;this.va={};this.ca=this.Eb=0;this.Z=null;this.R=[];cf(this,a.messages);this.ua=a.commands;this.Ha=[];this.O=0;this.Oa=this.Da=null;this.F=this.La=this.Ka=this.na=this.xa=0;this.wa=this.ma=this.ga=null;var b=this;window?void 0===window[v]&&(window[v]=function(a){return ed(b,
a)}):void 0===global[v]&&(global[v]=function(a){return ed(b,a)})}ja($e,Ke);function df(a){a=a&&a.B;null==a&&(a=-1);return a}function Y(a,b,c){return{B:void 0===a?null:a,eb:void 0===b?!1:b,qa:!1,T:c}}function ef(a,b,c,d){a.B=b;a.eb=c||!1;a.qa=!1;a.T=d}function ff(a){return[a.B,a.eb,a.qa,a.T,a.hb]}function gf(a,b){var c=Y(b[0],b[1],b[2]);c.qa=b[3];b[4]&&(c.zb=Le(a,c.hb=b[4]));return c}m=$e.prototype;
m.Ma=function(a,b,c,d){this.G=b;this.H=a;this.v=c;this.ma=a.j;this.Ga=b.F;(b=$c(a,"messages"))&&cf(this,b);if(a=$c(a,"commands"))this.ua=a;hf(this,function(a){a:{var b=d.G.b,c=a[0],e=a=0,k=b.length;if(c){a=df(jf(d,c,d.oa));if(-1===a){d.u("invalid address: "+c);break a}e=a>>>d.G.i;k=1}d.u("blockid physical blockaddr used size type");d.u("-------- --------- --------- ------ ------ ----");for(var c=-1,l=0;k--;){var p=b[e];p.type==c?l++||d.u("..."):(c=p.type,l=Hc[c],p&&d.u(n(p.id,8)+" %"+
n(e<<d.G.i,8)+" %"+n(p.B,8)+" "+n(p.Xa,4,!0)+" "+n(p.size,4,!0)+" "+l),c!=Oc&&(c=-1),l=0);a+=16384;e++}}});Bb(this)};
m.sa=function(a,b,c){var d=this;switch(b){case "debugInput":return this.ga=this.J[b]=c,c.onkeydown=function(a){var b;if(13==a.keyCode)b=c.value,c.value="",ed(d,b,!0);else if(27==a.keyCode)c.value=b="";else if(38==a.keyCode?(b=null,d.C<d.w.length-1&&(b=d.w[++d.C])):40==a.keyCode&&(0<d.C?b=d.w[--d.C]:(b="",d.C=-1)),null!=b){var e=b.length;c.value=b;c.setSelectionRange(e,e)}null!=b&&a.preventDefault&&a.preventDefault()},!0;case "debugEnter":return this.J[b]=c,Va(c,function(){if(d.ga){var a=d.ga.value;
d.ga.value="";ed(d,a,!0);return!0}return!1}),!0;case "step":return this.J[b]=c,Va(c,function(a){var b=!1;Db(d,!0)||(Ob(d,!0),b=tc(d,a?1:0,null),Ob(d,!1));return b}),!0}return!1};function dd(a){if(a.ga){var b=0,c=0;window&&(b=window.scrollX,c=window.scrollY);a.ga.focus();window&&window.scrollTo(b,c)}}m.Na=function(a,b){var c=-1,d=df(a);-1!==d&&(c=zc(this.G,d),b&&null!=a.B&&(a.B+=b||1));return c};m.yb=function(a,b,c){var d=df(a);-1!==d&&(yc(this.G,d,b),c&&null!=a.B&&(a.B+=c||1),K(this.H,-1))};
m.Ib=function(a,b){0>a&&(a+=D);0>b&&(b+=D);a=xe.call(this.v,a,b,!1,!0);a>=B&&(a-=D);return a};
function jf(a,b,c){var d,e;c||(c=Y());var f=c.B;if(void 0!==b){a:{var g,f=a.U[0],h=a.U[1];g="("==f||"{"==f||"["==f?"\\":"";for(var k="["==f?"\\":"",k=new RegExp(g+f+"([^"+k+f+k+h+"]+)"+g+h);g=b.match(k);){var l=We(a,g[1]);if(void 0===l){b=void 0;break a}b=b.replace(f+g[1]+h,null!=l?L(a,l):"undefined")}if(a.ta.length)for(f=a.ta[0],h=a.ta[1],g="("==f||"{"==f||"["==f?"\\":"",k="["==f?"\\":"",k=new RegExp(g+f+"([^"+k+f+k+h+"]+)"+g+h);g=b.match(k);)b=b.replace("["+g[1]+"]","unimplemented");for(;f=b.match(/\$([a-z]+)/i);){h=
null;switch(f[1].toLowerCase()){case "ops":h=0}if(null==h)break;b=b.replace(f[0],h.toString())}}"%"==b.charAt(0)&&(d=!0,b=b.substr(1));var p,f=b,u;if(f.match(/^[a-z_][a-z0-9_]*$/i))for(f=f.toUpperCase(),h=0;h<a.I.length;h++)if(g=a.I[h].aa[f],null!=g){u=g.o;break}null!=u&&(p=Y(u));if(p)return p;0<=b.indexOf("0x")?e=16:0<=b.indexOf("0o")?e=8:0<=b.indexOf(".")&&(e=10);f=We(a,b)}null!=f&&(f=kf(f,a.Ga),ef(c,f,d,e));return c}function lf(a,b,c){c&&(c=c.match(/(['"])(.*?)\1/))&&(b.zb=Le(a,b.hb=c[2]))}
function kf(a,b){0>a&&a>=-B&&(a+=D);return Math.trunc(Math.abs(a))%Math.pow(2,void 0===b?36:b)}function mf(a,b){return L(a,b/Tb,18)+" "+L(a,b%Tb,18)}
function cf(a,b){a.D=a;a.ca=a.Eb=536870916;a.Z=null;a.R=[];b=Le(a,b.replace("keys","key").replace("kbd","keyboard"),!1,"|");if(b.length)for(var c in bc){var d;a:if(d=void 0,Array.prototype.indexOf)d=b.indexOf(c,d);else{d=d||0;0>d&&(d+=b.length);0>d&&(d=0);for(var e=b.length;d<e;d++)if(d in b&&b[d]===c)break a;d=-1}0<=d&&(a.ca|=bc[c],a.u(c+" messages enabled"))}}function hf(a,b){for(var c in bc)if(16==bc[c]){a.va[c]=b;break}}m.tb=function(a){return nf.indexOf(a.toUpperCase())};
m.ub=function(a){var b,c=this.v;switch(a){case of:b=c.i;break;case pf:b=c.I;break;case qf:b=c.b;break;case rf:b=c.j&x;break;case sf:b=c.j&131072?1:0;break;case tf:b=c.j&65536?1:0;break;case uf:b=c.j&32768?1:0;break;case vf:b=c.j&32?1:0;break;case wf:b=c.j&262144?1:0}return b};
m.message=function(a,b){b&&(a+=" @"+L(this,Y(this.v.oa).B,18));if(!this.Z||a!=this.Z)if(this.Z=a,this.ca&1073741824)this.R.push(a);else{var c;if(this.ca&-2147483648&&this.v&&(c=this.v.A.P)||Db(this,!0))this.Y(),c&&(a+=" (cpu halted)");this.u(a);this.v&&(a=this.v,md(a),a.ma=0,a.H&&K(a.H,void 0))}};
function bf(a){var b;if(!td(a))a.j&&a.j.length&&a.u("instruction history buffer freed"),a.X=0,a.j=[];else if(!a.j||!a.j.length){a.j=Array(xf);for(b=0;b<a.j.length;b++)a.j[b]=Y();a.X=0;a.u("instruction history buffer allocated")}}function yf(a,b,c){if(!zf(a,c))return!1;sc(a.v,b);return!0}
function tc(a,b,c,d){if(!zf(a))return!1;var e="";null===c&&(e=(c=!a.Da||"tr"==a.Da)?"tr":"t");a.F=0;b||td(a)&&ud(a,a.v.i,0);try{b=kd(a.v,b);var f=a.v.Za(b);0<f&&(uc(a.v,f),a.F+=f,vc(a.v,f,!0),wc(a.v,f),a.na++)}catch(g){"number"!=typeof g&&(a.F=0,yb(a.v,g.stack||g.message))}!1!==d&&(a.ma&&a.ma.stop(),K(a.H,-1));cd(a,c||!1,e);return 0<a.F}m.Y=function(a){this.v&&this.v.Y(a)};function cd(a,b,c){b=void 0===b?!0:b;a.Ja&&(c&&a.u(Af+c),ef(a.M,a.v.i),b&&1!=a.O?Bf(a):Cf(a))}
function zf(a,b){var c;(c=!a.v||!Ab(a.v))||(c=a.v,c.A.ba?c=!0:(c.u(c.toString()+" not powered"),c=!1),c=!c);return c||a.v.A.P?(b||a.u("cpu busy or unavailable, command ignored"),!1):!zb(a.v)}m.Ba=function(a,b){return!b&&(this.reset(!0),a)?this.restore(a):!0};m.ra=function(a,b){b&&this.u(a?"suspending":"shutting down");return a?this.save():!0};m.reset=function(a){bf(this);this.na=0;this.Z=null;this.F=0;ef(this.M,this.v.i);this.A.P=!1;Df(this);a||cd(this)};
m.save=function(){var a=new G(this);a.set(0,ff(this.M));a.set(1,ff(this.oa));a.set(2,ff(this.ha));a.set(3,[this.w,this.V,this.ca]);a.set(4,this.I);return a.data()};m.restore=function(a){var b=0;void 0!==a[3]&&(this.M=gf(this,a[b++]),this.oa=gf(this,a[b++]),this.ha=gf(this,a[b++]),this.w=a[b][0],"string"==typeof this.w&&(this.w=[this.w]),this.V=a[b][1],this.ca|=a[b][2]);a[4]&&(this.I=a[4]);return!0};m.start=function(a,b){this.O||this.u("running");this.A.P=!0;this.Ka=a;this.La=b};
m.stop=function(a,b){if(this.A.P){this.A.P=!1;this.F=b-this.La;if(!this.O){b="stopped";if(this.F){a-=this.Ka;var c=0<a?Math.round(1E3*this.F/a):0;b+=" (";td(this)&&(b+=this.na+" instructions, ",this.na=0);b+=this.F+" cycles, "+a+" ms, "+c+" hz)"}else Pb(this,-2147483648)&&(b+=" (use the 't' command to execute blocked faults)");this.u(b)}cd(this,!0);dd(this);Df(this,this.v.i);this.Z=null}};function td(a){return 1<a.i.length||!!a.pa}
function ud(a,b,c){var d=-1;c||(d=a.v.f(b),2756==d>>23&&a.v.oa==b&&(b=sd(a.v,1)));if(0<c&&(a.pa&&!--a.pa||Xc(a,b,1,a.i)))return!0;0<=c&&a.j.length&&(a.na++,0>d&&(d=a.v.f(b)),0<=d&&(ef(a.j[a.X],b),++a.X==a.j.length&&(a.X=0)));return!1}
function Ef(a,b,c,d){var e=Y(b.B),f=a.Na(b,1),g,h,k,l=0,p=f/Yb|0,u;for(u in Ff)if(g=Ff[u][p&u]){h=+u;p>>=6;switch(h){case 32512:k=Gf;l=p&3;break;case 32256:k=Hf;l=p&7;break;case 29248:k=If,l=(p&48)>>2|(p&6)>>1}break}k=k&&k[l]||"";"S"==k&&g>Jf&&(k="B");k=Kf[g||0]+k;if(g){if(28700==h)h=f/Zb&127,l=L(a,h,-1);else for(h=f>>23&15,l=L(a,h,-1),p=0;l&&p<Lf.length;p++)if(g==Lf[p][0]&&(u=Lf[p][h])){k=Kf[u];l="";break}k=Ba(k,8)+(l?l+",":"");f&4194304&&(k+="@");k+=L(a,f&262143,-1);(f=f>>18&15)&&(k+="("+L(a,f,
-1)+")")}else k=Ba(k,8)+mf(a,f);f=k;g="";h=L(a,e.B,18)+":";if(-1!==e.B&&-1!==b.B){do if(k=a.Na(e,1),g+=" "+mf(a,k),null==e.B)break;while(e.B!=b.B)}h+=Ba(g,16)+f;c&&(h=Ba(h,48)+";"+(c||""),h=a.v.A.Ua?h+("cycles="+fd(a.v).toString()+" cs="+n(a.v.Ha)):h+(null!=d?"="+d.toString():""));return h}
function Mf(a,b,c,d,e){var f=-1,g,h;if(b){for(var k=b.toUpperCase(),l=0;l<Lf.length;l++)for(var p in Lf[l])if(+p&&(h=Lf[l][p],k==Kf[h])){k=Kf[Lf[l][0]];c&&(c=L(a,+p)+","+c);break}for(var u in Ff){g=+u;p=Ff[u];switch(g){case 32512:l=Gf;break;case 32256:l=Hf;break;case 29248:l=If;break;default:l=[""]}for(var E in p){h=p[E];for(var J=0;J<l.length;J++){var I=l[J];"S"==I&&h>Jf&&(I="B");if(k==Kf[h]+I){f=29248!=g?J:(J&3)<<1|(J&12)<<2;f=(E|f<<6)*Yb;break}}if(0<=f)break}if(0<=f)break}!(0>f)||c&&c.match(/^[0-9A-Z$%.?]/i)||
(c=b+c,b="",f=0)}else c&&(f=g=0);if(0<=f&&c)for(k=c.split(","),2<k.length&&(e||a.u("too many operands: "+c),k.length=0,f=-1),u=0;u<k.length;u++)if(h=k[u].trim()){E=h.match(/(@?)([^(]*)\(?([^)]*)\)?/);if(!E){e||a.u("unknown operand: "+h);f=-1;break}E[1]&&(f+=4194304);if(h=E[3]){h=We(a,h,e);if(void 0==h){f=-1;break}if(0>h||15<h)h&=15;f+=h<<18}h=E[2];if(u||1==k.length)h=h?h.replace(/(^|[^0-9])\./g,"$1"+L(a,d,18)):"0";h=We(a,h,e);if(void 0==h){f=-1;break}if(!u&&1<k.length)if(28700==g){if(0>h||127<h)h&=
127;f+=h*Zb}else{if(0>h||15<h)h&=15;f+=h<<23}else{if(b||u)if(0>h||262143<h)h&=Sb;f+=h}}0>f&&!e&&a.u("unknown instruction: "+b+" "+c);return f}function af(a){var b,c;a.i=["bp"];if(a.N)for(b=1;b<a.N.length;b++){c=a.N[b];c=df(c);var d=a.G;Wc(d.b[c>>>d.i],!1)}a.N=["br"];if(a.K)for(b=1;b<a.K.length;b++)c=a.K[b],c=df(c),d=a.G,Wc(d.b[c>>>d.i],!0);a.K=["bw"];a.xa=0;a.pa=0}
m.Ra=function(a,b,c){var d=!0;c||Nf(this,a,b,!1,!0);if(a!=this.i){var e=df(b);if(-1===e)this.u("invalid address: "+L(this,b.B,18)),d=!1;else{var f=this.G;f.b[e>>>f.i].Ra(e&16383,a==this.K)}}d&&(a.push(b),c?b.qa=!0:(Of(this,a,a.length-1,"set"),bf(this)));return d};function Nf(a,b,c,d,e){var f=!1;c=df(c);for(var g=1;g<b.length;g++){var h=b[g];if(c==df(h)&&(!d||h.qa)){f=!0;h.qa||e||Of(a,b,g,"cleared");b.splice(g,1);b!=a.i&&(d=a.G,Wc(d.b[c>>>d.i],b==a.K));h.qa||bf(a);break}}return f}
function Pf(a,b){for(var c=1;c<b.length;c++)Of(a,b,c);return b.length-1}function Of(a,b,c,d){c=b[c];a.u(b[0]+" "+L(a,c.B,18)+(d?" "+d:c.hb?' "'+c.hb+'"':""))}function Df(a,b){if(void 0!==b)Xc(a,b,1,a.i,!0),a.O=0;else for(b=1;b<a.i.length;b++){var c=a.i[b];if(c.qa){if(!Nf(a,a.i,c,!0))break;b=0}}}
function Xc(a,b,c,d,e){var f=!1;if(!a.xa++)for(var g=1;!f&&g<d.length;g++){var h=d[g];if(!e||h.qa)for(var k=df(h)&(d==a.i?65535:-1),l=0;l<c;l++)if(b+l==k){var p,f=!0;h.qa&&(Nf(a,d,h,!0),e=!0);if(p=h.zb){for(var f=!1,u=0;u<p.length;u++)if(!Qf(a,p[u],!0)){if(p[u].indexOf("if")){f=!0;break}for(var E=u+1;E<p.length&&p[E].indexOf("else");E++)u++;if(E==p.length){f=!0;break}}a.v.A.P||(f=!0)}if(f){e||Of(a,d,g,"hit");break}}}a.xa--;return f}
function Rf(a,b){b=void 0===b?!0:b;for(var c="",d=0;16>d;d++){!d||d&3||(c+="\n");var e=a,f=ua(d,2);ef(e.Ia,d);f+="="+L(e,e.Na(e.Ia),36)+" ";c+=f}if(b){b="";for(d=0;d<nf.length;d++)(e=nf[d]||"")&&(e+="="+L(a,a.ub(d),d>=sf?1:d==pf?23:18)+" "),b+=e;c+="\n"+b}return c}m.Gb=function(a,b){return a[0]>b[0]?1:a[0]<b[0]?-1:0};
function Ee(a,b,c,d,e){var f=[],g;for(g in e){var h=e[g];"number"==typeof h&&(e[g]=h={o:h});var k=h.o,l=h.a;if(void 0!==k){var p=f,k=[k>>>0,g],u=Fa(p,k,a.Gb);0>u&&p.splice(-(u+1),0,k)}l&&(h.a=l.replace(/''/g,'"'))}a.I.push({yd:b,B:c,Wb:d,aa:e,Bb:f})}function Sf(a,b,c){var d=[],e=df(b)>>>0;for(b=0;b<a.I.length;b++){var f=a.I[b],g=f.B>>>0,h=f.Wb;if(e>=g&&e<g+h){e=Fa(f.Bb,[e-g],a.Gb);0<=e?Tf(a,b,e,d):c&&(e=~e,Tf(a,b,e-1,d),Tf(a,b,e,d));break}}return d}
function Uf(a,b,c){var d=a.G,e=0,f=null,g=0;b.forEach(function(a,b){d.b[(b&d.j)>>>d.i].g(a,b&16383,b);null==f&&(f=b);b>g&&(g=b);e++});e?(b="start address ",null!=c?(H(a.v,c),b+=L(a,c)):b+="unspecified",a.u(e+" words loaded at "+L(a,f)+"-"+L(a,g)+", "+b),cd(a)):a.u("no data")}function Tf(a,b,c,d){var e={},f=a.I[b].Bb,g=0,h=null;0<=c&&c<f.length&&(g=f[c][0],h=f[c][1]);h&&(e=a.I[b].aa[h],h="."==h.charAt(0)?null:e.l||h);d.push(h);d.push(g);d.push(e.a);d.push(e.c)}
function Vf(a,b){var c=b[0].substr(1),d=b[1]&&"0"<=b[1][0]&&"9">=b[1][0]?b[1]:void 0,e=d?b[2]:b[1],f=jf(a,d,a.ha);if(!e)return a.u("begin assemble at "+L(a,f.B,18)),a.V=!0,K(a.H),!0;var g=e.match(/^(['"]?)(.*\.klm|.*\.mac|.*\.html|.*\.txt)\1$/i);if(g){f=jf(a,d);if(a.wa)a.u("assembly already in progress");else var h=g[2],k=f.B,l=a.wa=new vg(h,k,c,a,function(b,c){if(!b)try{var d=l.H;null==d&&(d=k);Uf(a,l.S,d)}catch(J){"number"==typeof J?b=J||-1:(a.u(J.message),b=-1)}b&&a.u("error ("+b+") processing "+
(c||h));a.wa=null;b||ed(a)});return!1}b.shift();b.shift();b.shift();b=Mf(a,e,b.join(""),f.B||0);0<=b&&(a.yb(f,b),a.u(Ef(a,f)));return!0}function xg(a,b){var c=b.match(/^\s*([A-Z_]?[A-Z0-9_]*)\s*(=?)\s*(.*)$/i);if(c){if(!c[1])return Ze(a)||a.u("no variables"),!0;if(!c[2])return Ze(a,c[1]);if(!c[3])return delete a.b[c[1]],!0;b=We(a,c[3]);return void 0!==b?(a.b[c[1]]={value:b,Mb:void 0},!0):!1}a.u("invalid assignment:"+b);return!1}
function yg(a,b,c){var d=null;b=jf(a,b);var e=Sf(a,b,!0);if(e.length){var f,g;e[0]&&(g="",(f=b.B-e[1])&&(g=" + "+n(f,4,!0)),f=e[0]+" ("+L(a,e[1],18)+")"+g,c&&a.u(f),d=f);4<e.length&&e[4]&&(g="",(f=e[5]-b.B)&&(g=" - "+n(f,4,!0)),f=e[4]+" ("+L(a,e[5],18)+")"+g,c&&a.u(f),d||(d=f))}else c&&a.u("no symbols");return d}
function Bf(a,b){var c;if(b&&"?"==b[1])a.u("register commands:"),a.u("\tr\tdump registers"),a.u("\trm\tdump misc registers"),a.u("\trx [#]\tset flag or register x to [#]");else{var d=a.v,e=void 0;null==c&&(c=!0);if(b&&1<b.length){var f=b[1];if("m"==f)e=!0;else{var g=f.indexOf("=");if(0<g)b=f.substr(g+1),f=f.substr(0,g);else if(2<b.length)b=b[2];else{a.u("missing value for "+b[1]);return}g=We(a,b);if(void 0===g)return;b=a.tb(f);if(0>b){a.u("unknown register: "+f);return}var f=0,h=a.v;switch(b){case of:H(h,
g);ef(a.M,h.i);break;case rf:rd(h,g);break;case sf:f=131072;break;case tf:f=65536;break;case uf:f=32768;break;case vf:f=32;break;case wf:f=262144}f&&(h.j=g?h.j|f:h.j&~f);K(a.H);a.u("updated registers:")}}a.u(Rf(a,e));c&&(ef(a.M,0<=d.O?d.O:d.I&4194304?d.oa:d.i),Cf(a,L(a,a.M.B,18)))}}function zg(a,b){b=Ca(b);var c=b.match(/^(['"])(.*?)\1$/);c?1<c[2].length?a.u(c[2]):Xe(a,null,c[2].charCodeAt(0)):We(a,b,!1)}
function Ag(a,b,c){if("?"==c)a.u("trace commands:"),a.u("\tt [#]\ttrace # instructions"),a.u("\ttr [#]\ttrace # instructions with register updates"),a.u("\ttc [#]\ttrace # cycles"),a.u("note: bn [#] breaks after # instructions without updates");else{var d="t"!=b;c=Re(a,c,null,!0)||1;var e=0;"tc"==b&&(e=c,c=1);a.Da=b;Ua(c,function(){return Ob(a,!0)&&tc(a,e,d,!1)},function(){a.ma&&a.ma.stop();K(a.H,-1);Ob(a,!1)})}}
function Cf(a,b,c,d){b=jf(a,b,a.M);void 0===d&&(d=1);var e=256;if(void 0!==c)if("l"==c.charAt(0))c=Re(a,c.substr(1)),null!=c&&(d=c);else{d=jf(a,c);if(d.B<b.B)return;e=d.B-b.B;if(256<e){a.u("range too large");return}d=-1}for(c=0;0<e&&d--;){var f=Db(a,!1)||a.O?a.F:null,g=null!=f?"cycles":null,h=Sf(a,b),k=b.B;if(h[0]&&d&&(!c&&d||0>h[0].indexOf("+"))){var l=h[0]+":";h[2]&&(l+=" "+h[2]);a.u(l)}h[3]&&(g=h[3],f=null);h=a.ha;l=b;h.B=l.B;h.eb=l.eb;h.qa=l.qa;h.T=l.T;a.u(Ef(a,b,g,f));e-=b.B-k;c++}}
function Qf(a,b,c){var d=!0;try{b.length&&"end"!=b?c||a.u(Af+b):(a.V&&(a.u("ended assemble at "+L(a,a.ha.B,18)),a.V=!1),b="");var e=b.charAt(0);if('"'==e||"'"==e)return!0;a.Z=null;if(Ab(a)&&0<b.length){a.V&&(b="a "+L(a,a.ha.B,18)+" "+b);var f=!1,g=b.replace(/ +/g," ").split(" ");g[0]=g[0].toLowerCase();if(g&&g.length)for(var h=g[0],k=h.charAt(0),l=1;l<h.length;l++){var p=h.charAt(l);if("?"==k||"r"==k||"a">p||"z"<p){g[0]=h.substr(l);g.unshift(h.substr(0,l));break}}switch(g[0].charAt(0)){case "a":d=
Vf(a,g);break;case "b":var u=g[0],E=g[1],J=b;if("?"==E)a.u("breakpoint commands:"),a.u("\tbp #\tset exec breakpoint"),a.u("\tbr #\tset read breakpoint"),a.u("\tbw #\tset write breakpoint"),a.u("\tbc #\tclear breakpoint (* to clear all)"),a.u("\tbl\tlist all breakpoints"),a.u("\tbn [#]\tbreak after # instruction(s)");else{var I=u.charAt(1);if("l"==I){var hb;hb=0+Pf(a,a.i);hb+=Pf(a,a.N);(hb+=Pf(a,a.K))||a.u("no breakpoints")}else if("n"==I){var Cb=+E||0;E&&(a.pa=Cb);a.u("break after "+Cb+" instruction(s)")}else if(void 0===
E)a.u("missing breakpoint address");else{var A="*"==E?Y():jf(a,E,a.M);"c"==I?null==A.B?(af(a),a.u("all breakpoints cleared")):Nf(a,a.i,A)||Nf(a,a.N,A)||Nf(a,a.K,A)||a.u("breakpoint missing: "+L(a,A.B,18)):null!=A.B&&(lf(a,A,J),"p"==I?a.Ra(a.i,A):"r"==I?a.Ra(a.N,A):"w"==I?a.Ra(a.K,A):a.u("unknown breakpoint command: "+I))}}break;case "c":a.za&&(a.za.value="");break;case "d":a:{var ib,jb=g[0],pa=g[1],Da=g[2],Qh=g[3];if("?"==pa){var kb="";for(ib in bc)a.va[ib]&&(kb&&(kb+=","),kb+=ib);kb+=",state,symbols";
a.u("dump memory commands:");a.u("\tdw [a] [n] dump n words at address a");a.u("\tds [a] [n] dump n words at address a as JSON");a.u("\tdh [p] [n] dump n instructions from history position p");kb.length&&a.u("dump extension commands:\n\t"+kb)}else if("state"==pa){var Od=Bg(a.H,!0);"console"==Da?console.log(Od):(a.za&&(a.za.value=""),Od&&a.u(Od))}else if("symbols"==pa)for(var Pd=0;Pd<a.I.length;Pd++){var Qd=a.I[Pd],lb;for(lb in Qd.aa)if("."!=lb.charAt(0)){var Wf=Qd.aa[lb].o;if(void 0!==Wf){var Xf=
Qd.aa[lb].l;Xf&&(lb=Xf);a.u(L(a,Wf,18)+" "+lb)}}}else{if("d"==jb){for(ib in bc)if(g[1]==ib){var Yf=a.va[ib];Yf?(g.shift(),g.shift(),Yf(g)):a.u("no dump registered for "+pa);break a}pa||(jb=a.Oa||"dw")}else a.Oa=jb;if("dh"==jb){var Zf=pa,$f=Da,ag="",bg=0,ka=a.X,qa=a.j;if(qa.length){var fa=+Zf||a.Ca,Eb=+$f||10;isNaN(fa)?fa=Eb:ag="more ";fa>qa.length&&(a.u("note: only "+qa.length+" available"),fa=qa.length);ka-=fa;0>ka&&(null==qa[qa.length-1].B?(fa=ka+fa,ka=0):ka+=qa.length);var Rd=[];"call"==$f&&(Eb=
1E5,Rd=["CALL"]);for(void 0!==Zf&&a.u(fa+" instructions earlier:");0<Eb&&ka!=a.X;){var cg=qa[ka++];if(null==cg.B)break;var Fb=Y(cg.B),Rh=fa--,dg=Ef(a,Fb,"history",Rh);(!Rd.length||0<=dg.indexOf(Rd[0]))&&a.u(dg);Fb.rb&&(ka+=Fb.rb,Eb-=Fb.rb,fa-=Fb.rb);ka>=qa.length&&(ka=0);a.Ca=fa;bg++;Eb--}}bg||(a.u("no "+ag+"history available"),a.Ca=void 0)}else{var Na=0,eg="ds"==jb,Gb=jf(a,pa,a.oa);Da&&("l"==Da.charAt(0)?(Da=Da.substr(1)||Qh,Na=Re(a,Da)):Na=jf(a,Da).B-Gb.B,0>Na&&(Na=0),65536<Na&&(Na=65536));var Sh=
a.T;Gb.T&&(a.T=Gb.T);for(var fg="db"==jb?1:2,Sd=Na||32,Td=1==fg?1:4,Th=(Sd+Td-1)/Td|0||1,Oa="";Th--&&0<Sd;){for(var ra="",Ud="",pa=L(a,Gb.B,18),gg=Td;0<gg--&&0<Sd--;){var Vd=a.Na(Gb,1);eg?(ra&&(ra+=","),ra+=Vd):(ra+=mf(a,Vd),ra+=" ");for(var Kc=29,Uh=0;1==fg&&0<=Kc;Uh++)var Hb=Vd/Math.pow(2,Kc)%Math.pow(2,7),ra=ra+(L(a,Hb,7)+" "),Hb=Hb+0,Ud=Ud+(32>Hb?".":String.fromCharCode(Hb)),Kc=Kc-7}Oa&&(Oa+="\n");Oa=eg?Oa+(ra+","):Oa+(pa+": "+ra+(0>gg?" "+Ud:""))}Oa&&a.u(Oa);a.T=Sh}}}break;case "e":if("else"==
g[0])break;var hg,ig,jg=g[0],Wd=g[1];"e"==jg||"ew"==jg?(hg=a.Na,ig=a.yb):Wd=null;if(null==Wd)a.u("edit memory commands:"),a.u("\tew [a] [...] edit words at address a");else for(var Xd=jf(a,Wd,a.oa),Yd=2;Yd<g.length;Yd++){var Ib=We(a,g[Yd]);if(void 0===Ib)break;Ib=kf(Ib);a.u("changing "+L(a,Xd.B,18)+" from "+mf(a,hg.call(a,Xd))+" to "+mf(a,Ib));ig.call(a,Xd,Ib,1)}break;case "g":var kg=g[1],Vh=b;if(void 0!==kg){var lg=jf(a,kg);lf(a,lg,Vh);a.Ra(a.i,lg,!0)}yf(a,!0,c);break;case "h":a.A.P?(c||a.u("halting"),
a.Y()):Db(a,!0)||c||a.u("already halted");break;case "i":if("if"==g[0]){var Zd;var Jb=b.substr(2),Jb=Ca(Jb);We(a,Jb)?(c||a.u("true: "+Jb),Zd=!0):(c||a.u("false: "+Jb),Zd=!1);Zd||(d=!1);break}f=!0;break;case "k":var Wh=g[0];if("?"==g[1])a.u("stack trace commands:"),a.u("\tk\tshow frame addresses"),a.u("\tks\tshow symbol information");else{var $d=0,ae=Y(),Kb=Y();for(a.u("stack trace for "+L(a,Kb.B,18));10>$d;){for(var Pa=null,Xh=256;65536>Kb.B>>>0;){ae.B=a.Na(Kb,2);if(null==Kb.B||!Xh--)break;if(!(ae.B&
1)){for(var Yh=a,Lc=ae,mg=null,Lb=Lc.B,ng=Lb,be=1;6>=be&&Lb;be++){if(2<be){Lc.B=Lb;var Mc=Ef(Yh,Lc);if(0<=Mc.indexOf("JSR")){var og=Mc.indexOf(" ");if(Lb+(Mc.indexOf(" ",og+1)-og-1)/2==ng){mg=Mc;break}}}Lb-=2}Lc.B=ng;if(Pa=mg)break}}if(!Pa||null==Pa)break;var pg=null;if("ks"==Wh){var qg=Pa.match(/[0-9A-F]+$/);qg&&(pg=yg(a,qg[0]))}Pa=Ba(Pa,50)+" ;"+(pg||"stack="+L(a,Kb.B,18));a.u(Pa);$d++}$d||a.u("no return addresses found")}break;case "l":if("ln"==g[0]){yg(a,g[1],!0);break}f=!0;break;case "m":a:{var sa,
ta=null,N=g[1];"?"==N&&(N=void 0);if(void 0!==N){var Ea=0;if("all"==N)Ea=1879046143,N=null;else if("on"==N)ta=!0,N=null;else if("off"==N)ta=!1,N=null;else{"keys"==N&&(N="key");"kbd"==N&&(N="keyboard");for(sa in bc)if(N==sa){Ea=bc[sa];ta=!!(a.ca&Ea);break}if(!Ea){a.u("unknown message category: "+N);break a}}if(Ea)if("on"==g[2])a.ca|=Ea,ta=!0;else if("off"==g[2]&&(a.ca&=~Ea,ta=!1,1073741824==Ea)){for(var rg=1E3<=a.R.length?a.R.length-1E3:0;rg<a.R.length;)a.u(a.R[rg++]);a.R=[]}}var Zh=0,Mb="";for(sa in bc)if(!N||
N==sa){var $h=!!(a.ca&bc[sa]);if(null===ta||ta==$h)Mb&&(Mb+=","),++Zh%10||(Mb+="\n\t"),"key"==sa&&(sa="keys"),Mb+=sa}void 0===N&&a.u("message commands:\n\tm [category] [on|off]\tturn categories on/off");a.u((null!==ta?ta?"messages on: ":"messages off: ":"message categories:\n\t")+(Mb||"none"));bf(a)}break;case "p":if("print"==g[0]){zg(a,b.substr(5));break}var sg=g[0],tg="p"==sg?0:"pr"==sg?1:-1;if("?"==g[1]||0>tg)a.u("step commands:"),a.u("\tp\tstep over instruction"),a.u("\tpr\tstep over instruction with register update");
else if(a.O)a.u("step in progress");else{var ug=Y(a.v.i);a.Na(ug);a.O?(a.Ra(a.i,ug,!0),yf(a)||(a.H&&jd(a.H),a.O=0)):Ag(a,tg?"tr":"t")}break;case "r":if("reset"==b){a.H&&a.H.reset();break}Bf(a,g);break;case "s":a:switch(g[1]){case "base":if(g[2]){var mb=+g[2];if(2==mb||8==mb||10==mb||16==mb)a.T=mb;else{a.u("invalid base: "+mb);break}}a.u("default base: "+a.T);break;case "cs":var Nb;void 0!==g[3]&&(Nb=+g[3]);switch(g[2]){case "int":a.v.pa=Nb;break;case "start":a.v.Ia=Nb;break;case "stop":a.v.ua=Nb;
break;default:a.u("unknown cs option");break a}void 0!==Nb&&bd(a.v);a.u("checksums "+(a.v.A.Ua?"enabled":"disabled"));break;case "sp":void 0!==g[2]&&(gd(a.v,+g[2])||a.u("warning: using 1x multiplier, previous target not reached"));a.u("target speed: "+(a.v.ga.toFixed(2)+"Mhz")+" ("+a.v.ha+"x)");break;default:if(g[1]){a.u("unknown option: "+g[1]);break}case "?":a.u("debugger options:"),a.u("\tbase #\t\tset default base to #"),a.u("\tcs int #\tset checksum cycle interval to #"),a.u("\tcs start #\tset checksum cycle start count to #"),
a.u("\tcs stop #\tset checksum cycle stop count to #"),a.u("\tsp #\t\tset speed multiplier to #")}break;case "t":Ag(a,g[0],g[1]);break;case "u":Cf(a,g[1],g[2],8);break;case "v":if("var"==g[0]){xg(a,b.substr(3))||(d=!1);break}if("ver"==g[0]){a.u((Rb||"PDP10")+" version 1.34.3 ("+a.v.mb+",RELEASE)");a.u(window?window.navigator.userAgent:"");break}f=!0;break;case "?":if(g[1]){zg(a,b.substr(1));break}var ce="commands:",de;for(de in Cg)ce+="\n"+Ba(de,9)+Cg[de];td(a)||(ce+="\nnote: history disabled if no exec breakpoints");
a.u(ce);break;default:f=!0}f&&(a.u("unknown command: "+b),d=!1)}}catch(wg){a.u("Debugger "+(wg.stack||wg.message)),d=!1}return d}function ed(a,b,c){null!=b&&(a.Ha=Le(a,b,c));for(;b=a.Ha.shift();)if(!Qf(a,b))return!1;return!0}
var Cg={"?":"help/print","a [#]":"assemble","b [#]":"breakpoint",c:"clear output","d [#]":"dump memory","e [#]":"edit memory","g [#]":"go [to #]",h:"halt","if":"eval expression","int [#]":"request interrupt",k:"stack trace",ln:"list nearest symbol(s)",m:"messages",p:"step over",print:"print expression",r:"dump/set registers",reset:"reset machine",s:"set options","t [#]":"trace","u [#]":"unassemble","var":"assign variable",ver:"print version"},Jf=20,Kf=".WORD HLL HLLZ HLLO HLLE HRL HRLZ HRLO HRLE HRR HRRZ HRRO HRRE HLR HLRZ HLRO HLRE MOVE MOVS MOVN MOVM EXCH BLT PUSH POP LDB DPB IBP ILDB IDPB SETZ SETO SETA SETCA SETM SETCM AND ANDCA ANDCM ANDCB IOR ORCA ORCM ORCB XOR EQV LSH LSHC ROT ROTC ADD SUB MUL IMUL DIV IDIV ASH ASHC FSC FADR FSBR FMPR FDVR DFN UFA FAD FSB FMP FDV AOBJP AOBJN CAI CAM JUMP SKIP AOJ AOS SOJ SOS TR TL TD TS XCT JFFO JFCL JSR JSP JRST JSA JRA PUSHJ POPJ BLKI DATAI BLKO DATAO CONO CONI CONSZ CONSO UUO JOV JCRY0 JCRY1 JCRY JFOV HALT JRSTF JEN".split(" "),
of=0,pf=1,qf=2,rf=3,sf=4,tf=5,uf=6,vf=7,wf=8,nf="PC RA EA PS OV C0 C1 ND PD".split(" "),Dg={},Ff=(Dg[28672]={0:101},Dg[32704]={5632:64,5696:63,5760:58,5824:27,5888:28,5952:25,6016:29,6080:26,10240:56,10304:48,10368:46,10432:84,10496:57,10560:49,10624:47,10752:21,10816:22,10880:69,10944:70,11008:88,11072:85,11136:83,11264:91,11328:23,11392:24,11456:92,11520:86,11584:87,11648:89,11712:90},Dg[32512]={6144:65,6400:59,6656:66,6912:60,7168:67,7424:61,7680:68,7936:62,8192:17,8448:18,8704:19,8960:Jf,9216:53,
9472:52,9728:55,9984:54,11776:50,12032:51,16384:30,16640:36,16896:37,17152:34,17408:38,17664:32,17920:44,18176:40,18432:39,18688:45,18944:33,19200:41,19456:35,19712:42,19968:43,20224:31,20480:1,20736:5,20992:2,21248:6,21504:3,21760:7,22016:4,22272:8,22528:9,22784:13,23040:10,23296:14,23552:11,23808:15,24064:12,24320:16},Dg[32256]={12288:71,12800:72,13312:73,13824:74,14336:75,14848:76,15360:77,15872:78},Dg[29248]={24576:79,24640:80,25088:81,25152:82},Dg[28700]={28672:93,28676:94,28680:95,28684:96,
28688:97,28692:98,28696:99,28700:100},Dg),Gf=["","I","M","S"],Hf=" L E LE A GE N G".split(" "),If="N NE NA NN Z ZE ZA ZN C CE CA CN O OE OA ON".split(" "),Lf=[{0:85,8:102,4:103,2:104,6:105,1:106},{0:88,4:107,2:108,10:109}],xf=1E3,Af=">> ";Xa(function(){for(var a=w(document,v,"debugger"),b=0;b<a.length;b++){var c=a[b],d=t(c),d=new $e(d);sb(d,c)}});
function vg(a,b,c,d,e){this.la=b;this.V=c||"";this.b=d;this.done=e;this.H=null;this.v={};this.F={};this.K=[];this.I=[];this.S=[];this.ea=[];this.X=[];this.ga=this.Z=this.ia=0;this.W=this.la||0;this.Ea=-1;this.w=[];this.R=null;this.i=0;this.O=null;this.J=this.M="";this.ha=/^[ \t]*([A-Z$%.?][0-9A-Z$%.]*:|)[ \t]*([A-Z$%.][0-9A-Z$%.]*|)([ \t]*)([^;]+|)(;?[\s\S]*)/i;this.D=this.j=null;this.C="";this.G=[];this.N=0;this.L=a.split(";");this.U=[];Eg(this)}
function Eg(a){if(a.N==a.L.length)a.done(Fg(a));else{var b=a.L[a.N];a.u("loading "+wa(b));0>b.indexOf(":")&&0<=".MAC.KLM".indexOf(b.slice(-4).toUpperCase())&&(b+=".txt");Ha(b,null,!0,function(b,d,e){if(e)a.done(e,b);else{e=d;if(ya(b,".html")){e="";var c;for(b=/<pre>([\s\S]*?)<\/pre>/gi;c=b.exec(d);)c=c[1],0<=c.indexOf("&")&&(c=c.replace(/&lt;/gi,"<").replace(/&gt;/gi,">").replace(/&amp;/gi,"&")),e+=c;(c=e.match(/&[a-z]+;/i))&&Gg(a,"unrecognized HTML entity '"+c[0]+"'")}d=e.split(/(\r?\n)/);if(d.length&
1){if(c=d.pop())Gg(a,"unexpected line '"+c+"'"),d.push(c),d.push("")}else Gg(a,"unexpected number of lines ("+d.length+")");a.G=a.G.concat(d);a.U[a.N]=d.length>>1;a.N++;setTimeout(function(){Eg(a)},0)}})}}
function Fg(a){if(0<=a.V.indexOf("p"))return a.u(a.G.join("")),0;var b=Ye(a.b);Hg(a,"APR",0);Hg(a,"PI",4);try{for(var c=0;c<a.G.length;c+=2){a.ia++;0<=a.V.indexOf("l")&&a.u(Ig(a)+": "+a.G[c]);if(!Jg(a,a.G[c]+"\r\n"))break;if(null!==a.H)break}a.i&&a.error("open block",a.v[a.O].ia);a.w.length&&a.error("open scope",a.w[0].ia);Kg(a);Lg(a);a.ea.forEach(function(b,c){b=Mg(a,b,void 0,c,a.X[c]);void 0!==b&&(b+=a.S[c],a.S[c]=Ng(a,b,c))})}catch(d){a.u(d.message),a.Z=-1}0>a.V.indexOf("d")&&(a.b.b=b);return a.Z}
function Jg(a,b,c,d,e){var f,g;null!=a.D&&(b=Og(a,b));for(var h=!0,k="";h;){g=b.match(a.ha);if(!g||g[5]&&";"!=g[5].slice(0,1))return a.error("failed to parse line '"+b+"'"),!1;h=!1;k=g[2].toUpperCase();if(k==Pg||k==Qg)c=null;if(c){for(f=0;f<c.length;f++)for(var l=c[f],p=d[f]||e[f]||"",u=0,E=b.length-g[5].length;u<E;){var J=b.indexOf(l,u);if(0>J)break;var u=J+1,I=J+l.length,hb="",Cb="";J&&(hb=b[J-1]).match(/[0-9A-Z$%.]/i)||!(I>=b.length)&&(Cb=b[I]).match(/[0-9A-Z$%.]/i)||("'"==hb&&J--,"'"==Cb&&I++,
b=b.substr(0,J)+p+b.substr(I),u=J+p.length,h=!0)}c=null}if(a.i&&(1==a.i&&(f=b.indexOf(a.J),0<=f?(a.i++,b=b.substr(f+1)):a.error("expected "+a.R+" definition in '"+b+"'")),1<a.i&&(b=Rg(a,b),h=!0),a.i))return!0}d=g[1];b=g[3];c=g[4].trim();g=g[4]+g[5];d&&(d=d.slice(0,-1),Hg(a,d,a.W,Sg));var A;k&&(A=c.match(/^([=:]+)(.*)/))&&(e=0,d=k,k=A[1],c=A[2],"=="==k?e|=Tg:"=:"==k&&(e|=Ug),Hg(a,d,c,e),k=c="");if(!k&&!c)return!0;a.R=k;if(A=Vg(a,c))c=c.replace(A,Wg(a,Xg,Vg(a,g))),b||(b="\t");for(;A=Yg(a,c);)c=c.replace(A,
A.slice(0,-1));if(!Zg(a,k,c))switch(k){case $g:case ah:case bh:Og(a,g);break;case ch:k=c;A=Mg(a,k);void 0!==A&&0<=A&&262143>=A?a.W+=A:a.error("unrecognized BLOCK expression '"+k+"'");break;case dh:k=c;b=g=0;for(c=36;A=eh(a,k);){k=k.substr(A.length).trim();d=A;if(e=A.match(/^\((.*)\)\s*(.*)$/))e[1]&&(g=Mg(a,"^D"+e[1])),d=e[2];if(g){d=d?Mg(a,d):0;if(void 0===d||0>g||36<g){a.error("unexpected BYTE operand: "+A);break}d=X(a.b,d,g,!0);c<g&&(fh(a,b),b=0,c=36);b+=d*Math.pow(2,c-g);c-=g}else fh(a,0)}36>c&&
fh(a,b);break;case gh:(k=c)?(a.H=Mg(a,k),void 0===a.H&&a.error("unrecognized END expression '"+k+"'")):a.H=a.la;break;case hh:ih(a,c);break;case jh:Kg(a);break;case kh:a.W=Mg(a,c)||0;break;case lh:Lg(a);break;case mh:ih(a,c.replace(",",",,"));break;case nh:case oh:case ph:case qh:case rh:case sh:case th:case uh:case vh:case wh:case xh:case yh:case Pg:case Qg:case zh:case Ah:Wg(a,k,g);break;case Bh:k=Ch(a,c);for(A=0;A<k.length;A++)delete a.b.b[k[A]],delete a.F[k[A]];break;case Dh:case Eh:case Fh:case Gh:case Hh:case Ih:case Jh:break;
default:A=[],k=(k+b+c).trim(),g=Mg(a,k,A),void 0!==g?fh(a,g,A[0]):a.error("unrecognized word expression '"+k+"'")}return!0}
function Zg(a,b,c){var d=a.v[b];if(!d)return!1;if(null!=c){if(d.Fa==Kh){var e=a.W;Z(a,d.ka);if(e<a.W){if(!c)return!0;Lh(a);Z(a,c);var d=a.S[0],f=a.ea[0];Mh(a);if(void 0!==d)return a.S[e]+=d&130023423,a.S[e]|=d&4194304,f&&(a.ea[e]=a.ea[e]?a.ea[e]+("+"+f):f),!0}a.error("OPDEF '"+b+"' ("+c+") failed");return!1}b=a.j;a.j=d;d.Qa=Ch(a,c,!0);Z(a,d.ka,d.Ta,d.Qa,d.Ab);a.j=b;return!0}if("?"!=b[0])return!1;switch(b.substr(1)){case rh:case qh:case yh:d.Fa||Z(a,d.ka);break;case sh:0<d.Fa&&Z(a,d.ka);break;case th:0<=
d.Fa&&Z(a,d.ka);break;case vh:0>d.Fa&&Z(a,d.ka);break;case wh:0>=d.Fa&&Z(a,d.ka);break;case oh:case xh:case ph:case uh:d.Fa&&Z(a,d.ka);break;case Pg:case Qg:for(b=0;b<d.Qa.length;b++)Z(a,d.ka,d.Ta,[d.Qa[b]],[]);break;case Ah:for(;0<d.Fa--;)Z(a,d.ka);break;default:c=d.ka,Lh(a,b),Z(a,c),Mh(a)}return!0}function Z(a,b,c,d,e){b=b.split(/\r?\n/);for(var f=0;f<b.length&&Jg(a,b[f]+"\r\n",c,d,e);f++);}
function Lh(a,b){a.w.push({name:b,S:a.S,ea:a.ea,W:a.W,Ea:a.Ea,ia:a.ia});a.S=[];a.ea=[];0>a.Ea&&(a.Ea=a.W);a.W=0}function Mh(a){if(a.w.length){var b=a.w[a.w.length-1].name;b&&a.K.push({name:b,S:a.S,ea:a.ea});b=a.w.pop();a.S=b.S;a.ea=b.ea;a.W=b.W;a.Ea=b.Ea;a.w.length||-1==a.Ea||a.error("scope restore error")}else a.error("scope nesting error")}
function eh(a,b){var c;c=void 0===c?",":c;for(var d=0,e=!1,f=null,g=0;d<b.length;){var h=b[d++];if('"'==h)e=!e;else if(!e){if(!g&&0<=c.indexOf(h)){d--;break}if("<"==h)g++;else if(">"==h&&0>--g){a.error("missing bracket(s) in '"+b+"'");break}}}g?0<g&&a.error("extra bracket(s) in '"+b+"'"):f=b.substr(0,d);return f}
function Mg(a,b,c,d,e){var f=-1;void 0===d&&(d=0<=a.Ea?a.Ea:a.W);var g=b.replace(/SIXBIT\s*(\S)(.*?)\1/g,"'$2'").replace(/ASCII\s*(\S)(.*?)\1/g,'"$2"');if(c){var h="",k=g;if(f=g.match(/^([^\s]+)\s*(.*?)\s*$/))h=f[1],k=f[2];f=Mf(a.b,h,k,d,c)}0>f&&(g=g.replace(/\.([^0-9]|$)/g,L(a.b,d,-1)+"$1"),f=We(a.b,g,c),void 0===f&&a.error("unable to parse expression '"+b+"'",e));return f}
function Vg(a,b){for(var c=0,d="",e=0,f=-1,g=b.length;e<b.length;){var h=b[e];if(";"==h)break;"["==h&&(c++||(f=e));e++;if("]"==h&&0>=--c){g=e;break}}0>c&&a.error("missing bracket(s) in '"+b+"'");0<=f&&(d=b.substr(f,g-f));return d}function Ig(a,b){b=void 0===b?a.ia:b;for(var c=0;b>a.U[c];)if(b-=a.U[c],c<a.L.length-1)c++;else break;return wa(a.L[c]+" line "+b)}
function Yg(a,b){var c=null;if(b=b.match(/([A-Z$%.][0-9A-Z$%.]*)#/i)){c=b[0];b=b[1];var d="?"+b;if(!a.v[d]){var e,f,g;e=f=g=[];a.v[d]={name:d,Fa:Nh,Ta:e,Ab:f,Qa:g,ka:b+": 0",ia:a.ia};a.I.push(d)}}return c}
function Ch(a,b,c){var d=[];for(c&&(b=b.replace(/^\(?(.*?)\)?$/,"$1"));b;){b=b.trim();c=eh(a,b);if(!c)break;var e=c;if("\\"==c[0]){var f=1,g=0;"'"==c[1]?(f++,g=6):'"'==c[1]&&(f++,g=7);var e=a,f=c.substr(f),g=void 0===g?0:g,h=Mg(e,f);if(void 0!==h){var k=5;switch(g){case 0:f=L(e.b,h,-1);break;case 6:k++;case 7:for(;h&&k--;)h=Math.trunc(h/Math.pow(2,g))}}e=f}d.push(e);b=b.substr(c.length+1)}return d}
function Og(a,b){var c=b;null==a.D&&(a.D=a.C="",b&&(a.D=b[0],c=b=b.substr(1)));if(a.D){var d=b.indexOf(a.D);0>d?c="":(c=b.substr(d+1),b=b.substr(0,d),a.D=null);a.C+=b}if(null==a.D){var d=b=0,e,f,g=a.C.length;a.R==ah&&g++;for(var h=0;h<g;h++){b||(d=0,f=29,e=7,a.R==bh&&(e--,f++));var k=a.C.charCodeAt(h)&127;6==e&&(97<=k&&122>=k&&(k-=32),k=k+32&63);d+=k*Math.pow(2,f);f-=e;b++;0>f&&(fh(a,d),b=0)}b&&fh(a,d)}return c}
function Wg(a,b,c){var d,e,f,g,h,k;a.J="<";a.M=">";g=h=k=[];if(b==nh){e=c.match(/([A-Z$%.][0-9A-Z$%.]*)\s*(\([^)]*\)|)\s*,?\s*(<|)([\s\S]*)/i);if(!e)return a.error("unrecognized "+b+" in '"+c+"'"),c;f=e[1];if(e[2]&&","!=e[2]){h=g=Ch(a,e[2],!0);b=[];for(c=0;c<h.length;c++)if(d=h[c].indexOf("<"),0<=d){var l=h[c].lastIndexOf(">");0>l&&(l=h[c].length);b[c]=h[c].substr(d,l-d);h[c]=h[c].substr(0,d)}h=b}d=Oh;b=3}else if(b==zh){a.J="[";a.M="]";e=c.match(/([A-Z$%.][0-9A-Z$%.]*)\s*(\[)([\s\S]*)/i);if(!e)return a.error("unrecognized "+
b+" in '"+c+"'"),c;f=e[1];d=Kh;b=2}else if(b==Xg)a.J="[",a.M="]",f="?"+va(++a.ga,5),a.v[f]&&a.error("literal symbol '"+f+"' redefined"),e=[c[0],c.substr(1)],d=Ph,b=0;else if(b==Pg||b==Qg){a.j||a.error(b+" outside of macro");e=c.match(/([A-Z$%.][0-9A-Z$%.]*)\s*,\s*(<|)([\s\S]*)/i);if(!e)return a.error("unrecognized "+b+" operands '"+c+"'"),c;for(d=0;d<a.j.Ta.length&&e[1]!=a.j.Ta[d];d++);if(d==a.j.Ta.length)return a.error("invalid "+b+" parameter '"+e[1]+"'"),c;f="?"+b;g=[e[1]];b==Qg?k=a.j.Qa[d].split(""):
k=Ch(a,a.j.Qa[d]);d=k.length;b=2}else{if(b==oh)d=1,","==c[0]&&(c=c.substr(1).trim());else{e=eh(a,c);if(!e)return a.error("missing "+b+" expression '"+c+"'"),c;c=c.substr(e.length+1);e=e.trim();if(b==qh||b==uh){f=eh(a,c);if(!f)return a.error("missing second "+b+" expression '"+c+"'"),c;c=c.substr(f.length+1)}d=b==ph||b==yh?a.v[e]||a.F[e]||void 0!==a.b.b[e]?1:0:Mg(a,e)||0}e=c.match(/\s*(<|)([\s\S]*)/i);f="?"+b;b=1}f=f.toUpperCase();a.i=1;a.O=f;a.v[f]={name:f,Fa:d,Ta:g,Ab:h,Qa:k,ka:"",ia:a.ia};e[b]&&
(a.i=2,Rg(a,e[b+1]));return f}function Rg(a,b){for(var c="",d=0;d<b.length;d++)if(b[d]==a.J)a.i++;else if(b[d]==a.M&&(a.i--,1==a.i)){a.i=0;c=b.substr(d+1);b=b.substr(0,d);break}d=a.O||"";a.v[d].ka+=b;a.i||(a.O=null,Zg(a,d));return c}
function Hg(a,b,c,d){d=void 0===d?0:d;b=b.toUpperCase().substr(0,6);if(d&Sg&&a.F[b])a.error("label '"+b+"' redefined");else{var e=void 0;if("string"==typeof c){var e=[],f=Mg(a,c,e);if(void 0===f){a.error("symbol error ("+c+")");return}c=f;e=e[0]}(f=a.F[b])?(f.value=c,f.Xb=d,f.ia=a.ia):a.F[b]={name:b,value:c,Xb:d,ia:a.ia};a.b.b[b]={value:c,Mb:e}}}function ih(a,b){var c=[],d=Mg(a,b,c);void 0!==d?fh(a,d,c[0]):a.error("unrecognized EXP expression '"+b+"'")}
function Kg(a){for(var b=a.W,c={},d=0;d<a.K.length;c={S:c.S,Sa:c.Sa,Aa:c.Aa},d++){c.Aa=a.K[d];c.S=[];c.Sa=0;c.Aa.S.forEach(function(a){return function(b,c){c===a.S.length&&a.S.push(b);a.Sa++}}(c));if(c.Sa==c.S.length)for(var e=b;e+c.Sa<=a.W;e++){for(var f=void 0,f=0;f<c.Sa&&c.S[f]===a.S[e+f]&&c.Aa.ea[f]==a.ea[e];f++);if(f==c.Sa){Hg(a,c.Aa.name,e,Sg);c.Aa=null;break}}if(c.Aa){var g=a;Hg(a,c.Aa.name,a.W,Sg);c.Aa.S.forEach(function(a){return function(b,c){fh(g,b,a.Aa.ea[c])}}(c))}}a.K=[]}
function Lg(a){for(var b=0;b<a.I.length;b++){var c=a.I[b],d=a.v[c];d?Z(a,d.ka):a.error("missing definition for variable '"+c+"'")}a.I=[]}function fh(a,b,c){a.S[a.W]=Ng(a,b);void 0!==c&&(a.ea[a.W]=c);a.X[a.W]=a.ia;a.W++}function Ng(a,b,c){c=void 0===c?a.W:c;var d=X(a.b,b||0,36,!0);(b<-B||b>=D)&&Gg(a,"truncated value "+ua(b)+" at location "+ua(c)+" to "+ua(d));return d}vg.prototype.error=function(a,b){throw Error("error in "+Ig(this,b)+": "+a);};
function Gg(a,b){a.u("warning in "+Ig(a,void 0)+": "+b)}vg.prototype.u=function(a){this.b?this.b.u(a):console.log(a)};
var Sg=1,Tg=2,Ug=4,$g="ASCII",ah="ASCIZ",ch="BLOCK",dh="BYTE",nh="DEFINE",gh="END",hh="EXP",oh="IF1",ph="IFDEF",qh="IFDIF",rh="IFE",sh="IFG",th="IFGE",uh="IFIDN",vh="IFL",wh="IFLE",xh="IFN",yh="IFNDEF",Pg="IRP",Qg="IRPC",Dh="LALL",jh="LIT",Xg="LITERAL",Eh="LIST",kh="LOC",Fh="NOSYM",zh="OPDEF",Gh="PAGE",Bh="PURGE",Ah="REPEAT",bh="SIXBIT",Hh="SUBTTL",Ih="TITLE",lh="VAR",mh="XWD",Jh="XLIST",Oh=-1,Kh=-2,Ph=-3,Nh=-4;
function ai(a,b,c){r.call(this,"Computer",a,33554432);this.A.ba=!1;this.R=null;bi(this,b);this.N=$c(this,"autoPower",a,6);this.w=0;this.X=+a.busWidth||+a.buswidth;this.L=this.F=this.M=null;this.K=this.V=!1;this.I=this.C=null;this.U=this.O=!1;this.Z=$c(this,"url")||"";(Math.random()+.1).toString(36);this.i=ci(this);if(this.v=rb("CPU",this.id)){this.D=rb("Debugger",this.id);this.G=new Ac({id:this.bb+".bus",busWidth:this.X},this.v,this.D);var d,e=pb(this.id);if((this.j=rb("Panel",this.id))&&this.j.za)for(b=
0;b<e.length;b++)d=e[b],d.ja=this.j.ja,d.u=this.j.u,d.za=this.j.za;this.u(Rb+" v1.34.3\nCopyright \u00a9 2012-2017 Jeff Parsons <Jeff@pcjs.org>\nLicense: GPL version 3 or later <http://gnu.org/licenses/gpl.html>");for(b=0;b<e.length;b++)d=e[b],d.Ma&&d.Ma(this,this.G,this.v,this.D);b=null;d=$c(this,"resume",a);void 0!==d&&(1<d.length?b=this.F=d:this.b=parseInt(d,10));var f;if(a=$c(this,"state")||(f=!0,a.state))this.M=b=a,f||(this.K=!0,this.b=di),this.b&&(this.I=new G(this,"1.34.3"),ei(this.I)?b=null:
delete this.I);!b&&this.b&&(b=fi(this))&&(this.K=!0);if(b){var g=this;Ha(b,null,!0,function(a,b,c){c?(g.F=null,g.K=!1,g.ja("Unable to load machine state from server (error "+c+(b?": "+Ca(b):"")+")")):(g.L=b,g.V=!0);Bb(g)})}else Bb(this);this.J.power||(this.N=!0);!c&&this.N&&gi(this,this.Wa)}else q("Unable to find CPU component")}ja(ai,r);function bi(a,b){if(!b){var c;if("object"==typeof resources&&(c=resources.parms))try{b=eval("("+c+")")}catch(d){q(d.message+" ("+c+")")}}a.R=b}
function $c(a,b,c,d){var e=b.toLowerCase(),e=Sa(b)||Sa(e);void 0===e&&a.R&&(e=a.R[b]);void 0===e&&c&&(e=c[b]);void 0===e&&"object"==typeof resources&&resources[b]&&(e=b);void 0===e&&(e=void 0);if("string"==typeof e&&d)switch(d){case 4:e=+e;isNaN(e)&&(e=0);break;case 6:e="true"==e}return e}function gi(a,b,c){for(var d=pb(a.id),e=0;e<=d.length;e++){var f=e<d.length?d[e]:a;if(!Ab(f)){Ab(f,function(){gi(a,b,c)});return}}b.call(a,c)}
function hi(a,b){var c=new G(a,"1.34.3",ii);if(ei(c)&&ji(c)){var d=c.get(ki),e=b?b.get(ki):"unknown";d!=e&&(a.ja("Machine state may be out-of-date\n("+d+" vs. "+e+")\nCheck your browser's local storage limits"),b||c.clear())}}m=ai.prototype;
m.Wa=function(a){void 0===a&&(a=this.b||(this.L?li:di));if(!this.w){this.w++;var b=!1,c=!1;this.O=!1;var d=this.I||new G(this,"1.34.3");if(a==mi)b=!0;else if(a>di){if(ei(d,this.L)){this.C=new G(this,"1.34.3",ni);ei(this.C)&&(oi(this,d),a=pi,qi(this.C));this.C.set(ki,Ga());ri(this.C);var e=this.b&&!this.K;if(a==li||ob("Click OK to restore the previous "+Rb+" machine state, or CANCEL to reset the machine.")){if(c=ji(d)){var f=d.get("code"),g=d.get("data");f&&("ok"==f?ei(d,g):("error"==f&&"no machine state"!=
g?(this.ja("Error: "+g),"unable to verify user"==g&&(Qa(si,""),this.i=null)):this.u(f+": "+g),qi(d),ei(d)?(c=ji(d),e=!0):c=!1))}e&&hi(this,c?d:null)}else a==pi&&d.clear()}else hi(this);delete this.L;delete this.I}e=pb(this.id);for(f=0;f<e.length;f++)g=e[f],g!==this&&g!=this.v&&(c=ti(this,g,d,b,c));b=[d,a,c];a!=mi?gi(this,this.Hb,b):this.Hb(b)}};
function ti(a,b,c,d,e){if(!b.A.ba){b.A.ba=!0;var f=null;try{if(e&&((f=c.get(b.id))||(f=c.get(b.id.replace(/[a-z0-9]\./i,".")))),"string"===typeof f&&(f=null),!b.Ba(f,d)&&f&&(q("Unable to restore state for "+b.type),a.M&&!a.V?(c.clear(),a.b=di,window&&window.location.reload()):a.O=!0,b.Ba(null),e=!1),!d&&b.Db){var g=b.Db.split("|");for(a=0;a<g.length;a++)b.status(g[a])}}catch(h){q("Error restoring state for "+b.type+" ("+h.message+")")}}return e}
m.Hb=function(a){var b=a[0],c=0>a[1];a=a[2];this.U=!0;this.A.ba=!0;var d=this.J.power;d&&(d.textContent="Shutdown");this.v&&(ti(this,this.v,b,c,a),K(this,-2),this.v.fa());this.O&&(oi(this,b),b.clear());!c&&this.C&&(this.C.clear(),delete this.C);this.w=0};
function oi(a,b){if(ob("There may be a problem with your "+Rb+" machine.\n\nTo help us diagnose it, click OK to send this "+Rb+" machine state to http://www.pcjs.org.")){var c=a.Z;a=a.i||"";b=b.toString();var d={};d.app=Rb;d.ver="1.34.3";d.url=c;d.user=a;d.type="bug";d.data=b;Ha("http://www.pcjs.org/api/v1/report",d,!0)}}
function Bg(a,b,c){var d,e="none";if(a.w)return null;a.w--;var f=new G(a,"1.34.3"),g=new G(a,"1.34.3",ii),h=Ga();g.set(ki,h);f.set(ki,h);f.set(ui,"1.34.3");f.set(vi,window?window.location.href:null);f.set(wi,window?window.navigator.userAgent:"");a.v&&a.v.ra&&(c&&(b&&(a.v.A.fa=a.v.A.P),a.v.Y()),d=a.v.ra(b,c),"object"===typeof d&&f.set(a.v.id,d),c&&(a.v.A.ba=!1,!1===d&&(e=null)));for(var h=pb(a.id),k=0;k<h.length;k++){var l=h[k];l.A.ba&&(l.ra&&(d=l.ra(b,c),"object"===typeof d&&f.set(l.id,d)),c&&(l.A.ba=
!1,!1===d&&(e=null)))}e&&(c?(h=d=!1,b?(a.i&&xi(a,a.i,f.toString()),ri(g)&&ri(f)||(e=null,d=h=!0)):a.b&&(d=!0,h=a.b==yi),d&&f.clear(h)):e=f.toString());c&&(a.A.ba=!1,b=a.J.power)&&(b.textContent="Power");a.w=0;return e}
m.reset=function(){this.A.reset=!0;this.G&&this.G.reset&&(Qb(this,"Resetting "+this.G.type),this.G.reset());this.v&&this.v.reset&&(Qb(this,"Resetting "+this.v.type),this.v.reset());for(var a=pb(this.id),b=0;b<a.length;b++){var c=a[b];c!==this&&c!==this.G&&c!==this.v&&c.reset&&(Qb(this,"Resetting "+c.type),c.reset())}this.A.reset=!1;K(this,-1)};m.start=function(a,b){for(var c=pb(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.start&&e.start(a,b)}K(this,-1)};
m.stop=function(a,b){for(var c=pb(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.stop&&e.stop(a,b)}K(this,-1)};
function K(a,b){if(a.v){var c=a.v,d=b||0,e=c.J.speed;e&&(0>=d||30<=(c.kb+=d))&&(e.textContent=c.A.P?c.Z.toFixed(2)+"Mhz":"Stopped",c.kb=0)}if(a.j&&(a=a.j,b=b||0,a.L)){c=a.v.A.P;d=!!(a.v.C&8);if(0>=b||60<=(a.K+=b)){e=a.v.i;if(a.J.PC){var f=a.D&&a.D.T||8,e=e||0,e=8==f?ua(e,void 0):n(e,void 0);a.J.PC.textContent!=e&&(a.J.PC.textContent=e)}a.K=0}-1>b?a.i=a.v.i:0<b&&c&&!d&&(a.i=a.v.Ca);kc(a,a.i);ec(a,a.w)}}
m.sa=function(a,b,c){var d=this;switch(b){case "power":return this.J[b]=c,c.onclick=function(){d.w||(d.A.ba?Bg(d,!1,!0):gi(d,d.Wa))},!0;case "reset":return this.J[b]=c,c.onclick=function(){if(d.A.ba&&!d.w)if(d.b&&!d.F){var a=ob("Click OK to save changes to this "+Rb+" machine.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");Bg(d,a,!0);!a&&d.M?window&&window.location.reload():d.Wa(di)}else d.reset(),d.v&&!d.D&&d.v.fa()},!0;case "save":if(ya(Ja(),"pcjs.org"))c.parentNode.removeChild(c);
else return this.J[b]=c,c.onclick=function(){var a=ci(d,!0);if(a){var b=!!(d.b&&!d.F||d.M),c=Bg(d,b);b?xi(d,a,c):d.ja("Resume disabled, machine state not saved")}},!0}return!1};
function ci(a,b){var c=a.i;c||((c=Ma(si),void 0!==c)?!c&&b&&(b=null,window&&(b=window.prompt("Saving machine states on the pcjs.org server is currently unsupported.\n\nIf you're running your own server, enter your user ID below.","")),c=b)&&((c=zi(a,c))||a.ja("The user ID is invalid.")):b&&a.ja("Browser local storage is not available"));return c}
function zi(a,b){a.i=null;b=Ha(Ja()+"/api/v1/user?req=verify&user="+b);var c=b[1];if(!b[0]&&c)try{b=eval("("+c+")"),b.code&&"ok"==b.code&&(Qa(si,b.data),a.i=b.data)}catch(d){q(d.message+" ("+c+")")}return a.i}function fi(a){var b=null;a.i&&(b=Ja()+"/api/v1/user?req=load&user="+a.i+"&state="+Ai(a,"1.34.3"));return b}
function xi(a,b,c){if(c){var d={req:"store"};d.user=b;d.state=Ai(a,"1.34.3");d.data=c;b=Ha(Ja()+"/api/v1/user",d);d=b[0];if(b[1]){if(d){var e=d.indexOf("\n");0<e&&(d=d.substr(0,e));d.indexOf("Error: ")||(d=d.substr(7))}d='{"code":'+b[1]+',"data":"'+d+'"}'}b=JSON.parse(d);b&&"ok"==b.code?a.ja("Machine state saved to server"):c&&(c=b&&b.data||"unable to save machine state",c="error"==b.code?"Error: "+c:"Error "+b.code+": "+c,a.ja(c),Qa(si,""),a.i=null)}}
function jd(a,b){if(a.za){var c=0,d=0;!b&&window&&(c=window.scrollX,d=window.scrollY);a.za.focus();!b&&window&&window.scrollTo(c,d)}}var ni="failsafe",ii="validate",ki="timestamp",ui="version",vi="url",wi="browser",si="user",mi=-1,di=0,li=1,pi=2,yi=3;Xa(function(){for(var a=w(document,v+"-machine"),b=0;b<a.length;b++)for(var c=a[b],d=t(c),c=w(c,v,"computer"),e=0;e<c.length;e++){var f=c[e],g=t(f),g=new ai(g,d,!0);sb(g,f);g.N&&gi(g,g.Wa)}});
Ya.show.push(function(){for(var a=w(document,v,"computer"),b=0;b<a.length;b++){var c=t(a[b]);(c=rb("Computer",c.id))&&c.U&&!c.A.ba&&c.Wa(mi)}});Ya.exit.push(function(){for(var a=w(document,v,"computer"),b=0;b<a.length;b++){var c=t(a[b]);(c=rb("Computer",c.id))&&c.A.ba&&Bg(c,!(!c.b||c.F),!0)}});function G(a,b,c){this.id=a.id;this.i="";this.b={};this.v=this.j=!1;this.key=Ai(a,b,c);qi(this,a.Ub)}m=G.prototype;m.set=function(a,b){try{this.b[a]=b}catch(c){}};m.get=function(a){return this.b[a]||null};
m.data=function(){return this.b};function ei(a,b){return b?(a.i=b,a.v=!0,a.j=!1,!0):a.v?!0:Ka()&&(b=Ma(a.key))?(a.i=b,a.v=!0):!1}function ji(a){var b=!0;if(!a.j)try{a.b=JSON.parse(a.i),a.j=!0}catch(c){q(c.message||c),b=!1}return b}function ri(a){var b=!0;if(Ka()){var c=JSON.stringify(a.b);Qa(a.key,c)||(q("Unable to store "+c.length+" bytes in browser local storage"),b=!1)}return b}m.toString=function(){return this.b?JSON.stringify(this.b):this.i};
function qi(a,b){a.i="";a.b={};a.v=a.j=!1;b&&a.set("parms",b)}m.clear=function(a){qi(this);var b=[];try{for(var c=0,d=window.localStorage.length;c<d;c++)b.push(window.localStorage.key(c))}catch(e){}for(c=0;c<b.length;c++)if((d=b[c])&&(a||d.substr(0,this.key.length)==this.key)){try{window.localStorage.removeItem(d)}catch(e){}b.splice(c,1);c=0}};function Ai(a,b,c){a=a.id;if(b){var d=b.indexOf(".");0<d&&(a+=".v"+b.substr(0,d))}c&&(a+="."+c);return a}var Bi=0;
function Ci(a,b,c,d,e,f,g){f("Loading "+a+"...");Ha(a,null,!0,function(h,k,l){l?(k||(k="unable to load "+a+" ("+l+")"),g(k,null)):Di(k,a,b,c,d,e,f,g)})}
function Di(a,b,c,d,e,f,g,h){function k(a,g){if(g)h(g,null);else{c&&(fb(c,b,a),(g=b)&&0>g.indexOf("/")&&"/"==window.location.pathname.slice(-1)&&(g=window.location.pathname+g),e?"}"==e.slice(-1)?(e=e.slice(0,-1),1<e.length&&(e+=",")):e='{state:"'+e+'",':e="{",e+='url:"'+g+'"}',"object"==typeof resources&&(g=null),a=a.replace(/(<machine[^>]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(e?" parms='"+e+"'":"")+(g?' url="'+g+'"':"")));f||(a=a.replace(/(<xsl:variable name="APPNAME">).*?(<\/xsl:variable>)/,"$1PDPjs$2"),
a=a.replace(/(<xsl:variable name="APPCLASS">).*?(<\/xsl:variable>)/,"$1"+d+"$2"));g=null;if("<"==a.charAt(0))try{f||(a=a.replace(/<!DOCTYPE(.|[\r\n])*]>\s*/g,"")),window.ActiveXObject||"ActiveXObject"in window?(g=new window.ActiveXObject("Microsoft.XMLDOM"),g.async=!1,g.loadXML(a)):g=(new window.DOMParser).parseFromString(a,"text/xml")}catch(u){g=null,a=u.message}else a="unrecognized XML: "+(255<a.length?a.substr(0,255)+"...":a);h(a,g)}}a?f?Ei(a,g,k):k(a,null):h("no data"+(b?" for file: "+b:""),null)}
function Ei(a,b,c){var d;if(d=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g.exec(a)){var e=d[2];b("Loading "+e+"...");Ha(e,null,!0,function(f,g,h){if(h||!g)c(a,"unable to resolve XML reference: "+d[0]+" ("+h+")");else{if(f=d[3])if(h=g.match(new RegExp("<"+d[1]+"[^>]*>"))){for(var k=h[0],l,p=/( [a-z]+=)(['"])(.*?)\2/g;l=p.exec(f);)k=0>k.indexOf(l[1])?k.replace(">",l[0]+">"):k.replace(new RegExp(l[1]+"(['\"])(.*?)\\1"),l[0]);h[0]!=k&&(g=g.replace(h[0],k))}else{c(a,"missing <"+d[1]+"> in "+e);return}g=g.replace(/<\?xml[^>]*>[\r\n]*/,
"");a=a.replace(d[0],g);Ei(a,b,c)}})}else c(a,null)}
function Fi(a,b,c,d,e){function f(a){if(void 0===k){var b=h&&w(h,"machine-warning");k=b&&b[0]||h}k&&(k.innerHTML=za(a))}function g(a){f("Error: "+a);l&&(--Bi||ab(!0));l=!1}var h,k,l=!0;Bi++;gb[b]={};try{if(h=document.getElementById(b)){var p;if("object"==typeof resources&&(p=resources.css)){var u=document.head||document.getElementsByTagName("head")[0],E=document.createElement("style");E.type="text/css";E.styleSheet?E.styleSheet.cssText=p:E.appendChild(document.createTextNode(p));u.appendChild(E)}d||
(p=a,"pdp"==a.substr(0,3)&&(p="pdpjs"),d="/versions/"+p+"/1.34.3/components.xsl");p=function(e,k){k?Ci(d,null,a,null,!1,f,function(a,e){e?(fb(b,d,a),f("Processing "+c+"..."),window.ActiveXObject||"ActiveXObject"in window?(e=k.transformNode(e))?(h.outerHTML=e,--Bi||ab(!0)):g("transformNodeToObject failed"):document.implementation&&document.implementation.createDocument?(a=new XSLTProcessor,a.importStylesheet(e),(e=a.transformToFragment(k,document))?h.parentNode?(h.parentNode.replaceChild(e,h),--Bi||
ab(!0)):g("invalid machine element: "+b):g("transformToFragment failed")):g("unable to transform XML: unsupported browser")):g(a)}):g(e)};"<"!=c.charAt(0)?Ci(c,b,a,e,!0,f,p):Di(c,null,b,a,e,!1,f,p)}else g("missing machine element: "+b)}catch(J){g(J.message)}return l}window.embedPDP10=function(a,b,c,d){ab(!1);return Fi("pdp10",a,b,c,d)};window.embedPDP11=function(a,b,c,d){ab(!1);return Fi("pdp11",a,b,c,d)};window.findMachineComponent=function(a,b){return rb(b,a+".machine")};
window.processMachineScript=function(a,b){var c=!1;a+=".machine";if("string"==typeof b&&!ub[a]){for(var c=!0,d=ub,e=a,f=b.length,g=[],h=[],k="",l=null,p=0;p<f;p++){var u=b[p];if('"'==u||"'"==u)l&&u!=l?k+=u:(l?l=null:l=u,k&&(h.push(k),k=""));else{if(!l){if("\r"==u||"\n"==u)u=";";if(" "==u||"\t"==u||";"==u){k&&(h.push(k),k="");";"==u&&h.length&&(g.push(h),h=[]);continue}}k+=u}}k&&h.push(k);h.length&&g.push(h);d[e]=g;tb(a)||(c=!1)}return c};window.enableEvents=ab;window.sendEvent=cb;})();//# sourceMappingURL=/tmp/pdpjs/1.34.3/pdp10-dbg.map
function Ge(a){t.call(this,"ROM",a,128);this.aa=this.b=null;this.C=+a.addr;this.j=+a.size;this.i=a.alias;"string"==typeof this.i&&(this.i=eval(this.i));this.w=a.file;this.F=ya(this.w);if(this.w){a=this.w;var b=za(this.F);"json"!=b&&"hex"!=b&&(a=La()+"/api/v1/dump?file="+this.w+"&format=bytes&decimal=true");var c=this;Ja(a,null,!0,function(a,b,f){f?(c.ja("Unable to load ROM resource (error "+f+": "+a+")"),c.w=null):(ib(c.bb,a,b),(a=Ka(a,b))?(c.b=a.da,c.aa=a.aa):c.w=null);He(c)})}}ja(Ge,t);
Ge.prototype.Ma=function(a,b,c,d){this.G=b;this.v=c;this.D=d;He(this)};Ge.prototype.Ba=function(){this.aa&&(this.D&&Ie(this.D,this.id,this.C,this.j,this.aa),delete this.aa);return!0};Ge.prototype.ra=function(){return!0};
function He(a){if(!Cb(a)){if(a.w){if(!a.b||!a.G)return;a.j||(a.j=a.b.length);if(a.b.length!=a.j)Ab(a,"ROM size ("+n(a.b.length,8,!0)+") does not match specified size ("+n(a.j,8,!0)+")");else{var b;b=a.C;if(Fc(a.G,b,a.j,Rc)){var c;for(c=0;c<a.b.length;c++)zc(a.G,b+c,a.b[c]);b=!0}else b=!1;if(b){b=[];"number"==typeof a.i?b.push(a.i):null!=a.i&&a.i.length&&(b=a.i);for(c=0;c<b.length;c++){for(var d=a,e=b[c],f=d.G,g=d.j,h=[],k=d.C>>>f.i;0<g&&k<f.b.length;)h.push(f.b[k++]),g-=16384;f=d.G;d=d.j;g=0;for(e>>>=
f.i;0<d&&e<f.b.length;){k=h[g++];if(!k)break;f.b[e++]=k;d-=16384}}delete a.b}}}Db(a)}}$a(function(){for(var a=w(document,v,"rom"),b=0;b<a.length;b++){var c=a[b],d=u(c),d=new Ge(d);ub(d,c)}});
function Je(a){t.call(this,"RAM",a);this.aa=this.Pa=null;this.i=+a.addr;this.j=+a.size;this.la=a.load;this.ya=a.exec;null!=this.la&&(this.la=+this.la);null!=this.ya&&(this.ya=+this.ya);this.w=this.F=!1;this.b=a.file;this.C=ya(this.b);if(this.b){a=this.b;var b=za(this.C);"json"!=b&&"hex"!=b&&(a=La()+"/api/v1/dump?file="+this.b+"&format=bytes&decimal=true");var c=this;Ja(a,null,!0,function(a,b,f){f?(c.ja("Unable to load RAM resource (error "+f+": "+a+")"),c.b=null):(ib(c.bb,a,b),(a=Ka(a,b))?(c.Pa=a.Pa,
c.aa=a.aa,null==c.la&&(c.la=a.la),null==c.ya&&(c.ya=a.ya)):c.b=null);Ke(c)})}}ja(Je,t);Je.prototype.Ma=function(a,b,c,d){this.G=b;this.v=c;this.D=d;Ke(this)};Je.prototype.Ba=function(a,b){this.aa&&(this.D&&Ie(this.D,this.id,this.i,this.j,this.aa),delete this.aa);b||this.reset();return!0};Je.prototype.ra=function(){return!0};
function Ke(a){if(a.G&&(!a.w&&a.j&&(Fc(a.G,a.i,a.j,1)?a.w=!0:a.j=0),!Cb(a))){if(!a.w)r("No RAM allocated");else if(a.b){if(!a.Pa)return;Le(a,a.Pa,a.la,a.ya,a.i)?a.status('Loaded image "'+a.C+'"'):a.ja('Error loading image "'+a.C+'"')}a.F=!0;Db(a)}}
Je.prototype.reset=function(){if(this.w&&!this.F){for(var a=this.G,b=this.i,c=this.j,d=b&16383,b=b>>>a.i;0<c&&b<a.b.length;){var e=a.b[b],f=c,g=0,g=void 0===g?0:g,d=d||0;void 0===f&&(f=e.size);0>g&&g>=-A&&(g+=C);for(var g=Math.trunc(Math.abs(g))%C,h=d;f--&&h<e.size;h++)e.D(g,d,e.B+d);c-=16384;b++;d=0}this.Pa&&Le(this,this.Pa,this.la,this.ya,this.i,!this.D)}this.F=!1};
function Le(a,b,c,d,e,f){var g=!1;null==c&&(c=e);if(null!=c){for(g=0;g<b.length;g++)zc(a.G,c+g,b[g]);g=!0}g&&(null==d&&(a.v.Y(),f=!1),null!=d&&(a=a.v,a.$a=d,I(a,d),f?a.A.ba?a.A.P||tc(a):a.A.fa=!0:a.D&&a.A.ba?a.Y()||a.H.A.reset||(ed(a.D),K(a.H,-1)):!1===f&&a.Y(),!a.A.P&&a.Oa&&a.Oa.stop()));return g}$a(function(){for(var a=w(document,v,"ram"),b=0;b<a.length;b++){var c=a[b],d=u(c),d=new Je(d);ub(d,c)}});
function Me(a){t.call(this,"SerialPort",a,1048576);this.w=a.upperCase;"string"==typeof this.w&&(this.w="true"==this.w);this.j=!0;this.i=[];var b=a.binding;if("console"!=b){var c;a=Ne;b&&(void 0===c&&(c="Panel"),(c=tb(c,this.id))&&(b=c.J[b])&&this.sa(null,a,b))}this.b=this.C=null;this.exports={connect:this.Lb,receiveData:this.gb,receiveStatus:this.jc,setConnection:this.mc}}ja(Me,t);m=Me.prototype;
m.sa=function(a,b,c){var d=this;switch(b){case Ne:return this.J[b]=c,c.onkeydown=function(a){a=a||window.event;var b=0,c=a.keyCode;8==c?b=a.altKey?na.xb:na.Qb:46==c?b=na.xb:a.ctrlKey&&c>=na.wb&&c<=na.Rb&&(b=c-(na.wb-na.Nb));b&&(a.preventDefault&&a.preventDefault(),d.gb(b));return!0},c.onkeypress=function(a){a=a||window.event;if(!a.metaKey){var b=a.which||a.keyCode;a.altKey&&b==na.Pb&&(b=na.Ob);d.gb(b);a.preventDefault&&a.preventDefault()}return!0},c.onpaste=function(a){a.stopPropagation&&a.stopPropagation();
a.preventDefault&&a.preventDefault();(a=a.clipboardData||window.clipboardData)&&d.gb(a.getData("Text"))},c.removeAttribute("readonly"),!0}return!1};m.Ma=function(a,b,c,d){this.H=a;this.G=b;this.v=c;this.D=d;Db(this)};
m.Lb=function(a){if(!this.b){var b=bd(this.H,"connection");if(b){var c=b.split("->");if(2==c.length){var d=Ea(c[0]);if(d!=this.ab)return;c=Ea(c[1]);if(this.b=sb(c)){var e=this.b.exports;if(e){var f=e.connect;f&&f.call(this.b,this.j);if(this.C=e.receiveData){this.j=a;this.status("Connected "+this.bb+"."+d+" to "+c);return}}}}this.status("Unable to establish connection: "+b)}}};m.Ba=function(a,b){if(!b)if(this.Lb(this.j),!a)this.reset();else if(!this.restore(a))return!1;return!0};
m.ra=function(a){return a?this.save():!0};m.reset=function(){};m.save=function(){var a=new H(this);a.set(0,[]);return a.data()};m.restore=function(){return!0};m.gb=function(a){if("number"==typeof a)this.i.push(a);else if("string"==typeof a)for(var b=0,c,d=0;d<a.length;d++){c=b;b=a.charCodeAt(d);if(10==b){if(13==c)continue;b=13}this.i.push(b)}else this.i=this.i.concat(a);return!0};m.jc=function(){};m.mc=function(a,b){return this.b?!1:(this.b=a,this.C=b,!0)};var Ne="buffer";
$a(function(){for(var a=w(document,v,"serial"),b=0;b<a.length;b++){var c=a[b],d=u(c),d=new Me(d);ub(d,c)}});function Oe(a){t.call(this,"Debugger",a);this.U=+a.base||16;this.L=32;this.S=["{","}"];this.ta=["[","]"];this.F=0;this.V=!1;this.C=-1;this.w=[];this.b={}}ja(Oe,t);Oe.prototype.tb=function(){return-1};Oe.prototype.ub=function(){};
function Pe(a,b,c,d){if(c)if(b){0>a.C&&a.w.length&&(a.C=0);if(0>a.C||b!=a.w[a.C])a.w.splice(0,0,b),a.C=0;a.C--}else a.V?b="end":b=a.w[a.C+1];a=[];if(b){b=b.replace(/""/g,"'");c=0;var e=null;d=d||";";for(var f=0;f<=b.length;f++){var g=b.charAt(f);if('"'==g||"'"==g)e?g==e&&(e=null):e=g;else if(g==d&&!e||!g)a.push(Ea(b.substring(c,f))),c=f+1}}return a}function Qe(a,b,c){if(32>=a.L)return b&c;b=X(a,b,0,!0);c=X(a,c,0,!0);return((b/Re|0)&(c/Re|0))*Re+((b&c)>>>0)}
function Se(a,b,c){if(32>=a.L)return b|c;b=X(a,b,0,!0);c=X(a,c,0,!0);return((b/Re|0)^(c/Re|0))*Re+((b^c)>>>0)}Oe.prototype.Ib=function(a,b){return a*b};function X(a,b,c,d){var e=b;c=c||a.L;if(d)if(32==c)e=b>>>0;else if(32>c)e=b&(1<<c)-1;else{if(a=Math.pow(2,c),0>b||b>=a)e=b%a,0>e&&(e+=a)}else 32>=c?e=b<<32-c>>32-c:(a=Math.pow(2,c-1),b>=a?(e=b%a,(b/a|0)&1&&(e-=a)):b<-a&&(e=b%a,((-b-1)/a|0)&1?e&&(e+=a):e||(e-=a)));b!=e&&(b=e);return b}
function Te(a,b,c,d){for(d=void 0===d?-1:d;d--&&c.length;){var e=c.pop();if(2>b.length)return!1;var f,g=b.pop();f=b.pop();switch(e){case "*":f=a.Ib(f,g);break;case "/":if(!g)return!1;f=Math.trunc(f/g);break;case "^/":if(!g)return!1;f%=g;break;case "+":f+=g;break;case "-":f-=g;break;case "<<":f<<=g;break;case ">>":f>>=g;break;case ">>>":f>>>=g;break;case "<":f=f<g?1:0;break;case "<=":f=f<=g?1:0;break;case ">":f=f>g?1:0;break;case ">=":f=f>=g?1:0;break;case "==":f=f==g?1:0;break;case "!=":f=f!=g?1:
0;break;case "&":f=Qe(a,f,g);break;case "!":case "|":e=a;32>=e.L?f|=g:(f=X(e,f,0,!0),g=X(e,g,0,!0),f=(f/Re|0|g/Re|0)*Re+((f|g)>>>0));break;case "^!":f=Se(a,f,g);break;case "&&":f=f&&g?1:0;break;case "||":f=f||g?1:0;break;case ",,":f=X(a,f,18,!0)*Math.pow(2,18)+X(a,g,18,!0);break;case "_":case "^_":"^_"==e&&(g=35-(g&255));g&&(f=X(a,f,0,!0),f=0<g?f*Math.pow(2,g):Math.trunc(f/Math.pow(2,-g)));break;default:return!1}b.push(X(a,f))}return!0}
function Ue(a,b,c,d,e,f){var g,h,k,l=!1,p=0,q=[],D=[],F=a.U;for(a.U=e;c<d;){var J;h=b[c++].trim();k=c<d?b[c++]:"";if(h)J=Ve(a,h,null,f,p);else if("{"==k){h=1;for(J=c;c<d;)if(c++,k=c<b.length?b[c++]:"","{"==k)h++;else if("}"==k&&!--h)break;J=Ue(a,b,J,c-1,a.U,f);null!=J&&p&&(J=We(a,J,p));h=c<d?b[c++].trim():"";k=c<d?b[c++]:""}else{if(" "==k)continue;if("^B"==k){a.U=2;continue}if("^O"==k){a.U=8;continue}if("^D"==k){a.U=10;continue}if(!(p&-1073741824)){if("+"==k)continue;if("-"==k){p=p<<2|1;continue}if("~"==
k||"^-"==k){p=p<<2|2;continue}if("^L"==k){p=p<<2|3;continue}}l=!0;break}if(void 0===J)if(f)f.push(h),J=0;else{l=!0;f=[];break}q.push(X(a,J));if(" "==k)if(c<b.length-1&&!b[c])c++,k=b[c++];else{l=!0;break}if(!k)break;p="<"==a.S[0]?Xe:Ye;if(!p[k]){l=!0;break}D.length&&p[k]<=p[D[D.length-1]]&&Te(a,q,D,1);D.push(k);a.U="^_"==k?10:e;p=0}if(l||!Te(a,q,D)||1!=q.length)l=!0;l?f||a.u("parse error ("+(h||k)+")"):g=q.pop();a.U=F;return g}
function Ze(a,b,c,d,e){for(var f;0<=(f=b.indexOf(c));){for(var g=0,h=f+1,k=e;h<b.length;){var l=b[h++];if(l==c){k=-1;break}if(!k)break;k--;l=l.charCodeAt(0);7==d?l&=127:l=l-32&63;g=X(a,g*Math.pow(2,d)+l,d*e,!0)}if(0<=k){a.u("parse error ("+c+b+c+")");break}else b=b.substr(0,f)+L(a,g,-1)+b.substr(h)}return b}
function $e(a,b,c){var d=void 0,e=!1===c;c=Array.isArray(c)?c:void 0;if(b){"{"!=a.S[0]&&(b=b.split(a.S[0]).join("{").split(a.S[1]).join("}"));b=Ze(a,b,'"',7,5);if(!b)return d;b=Ze(a,b,"'",6,6);if(!b)return d;b=b.replace(/(^|[^A-Z0-9$%.])([0-9]+)B/,"$1$2^_").replace(/\s+/g," ");b=b.split(/({|}|\|\||&&|\||\^!|\^B|\^O|\^D|\^L|\^-|~|\^_|_|&|!=|!|==|>=|>>>|>>|>|<=|<<|<|-|\+|\^\/|\/|\*|,,| )/);d=Ue(a,b,0,b.length,a.U,c);void 0!==d&&e&&af(a,null,d)}return d}
function We(a,b,c){for(;c;){switch(c&3){case 1:b=-X(a,b);break;case 2:b=Se(a,b,-1);break;case 3:for(var d=35;0<=d&&!Qe(a,b,Math.pow(2,d));)d--;b=35-d}c>>>=2}return b}
function Ve(a,b,c,d,e){e=void 0===e?0:e;var f,g=Array.isArray(d)?d:void 0;if(null!=b){f=a.tb(b);if(0<=f)f=a.ub(f);else if(f=b,a.b[f]?f=a.b[f].value:(f=f.substr(0,6),f=a.b[f]&&a.b[f].value),null!=f){var h=a.b[b]&&a.b[b].Mb;h&&(g?g.push(h):(a.u(b+" is undefined ("+h+")"),f=void 0))}else f=oa(b,1<b.length||10<a.U?a.U:10);null!=f?f=X(a,We(a,f,e)):d||a.u("invalid "+(c?c:"value")+": "+b)}else d||a.u("missing "+(c||"value"));return f}
function af(a,b,c){var d,e=!1;void 0!==c&&(e=!0,d=8==a.U?L(a,c,a.L,8,1)+" "+c+".":L(a,c,a.L,16,1)+" "+L(a,c,a.L,8,1)+" "+L(a,c,a.L,2,32>=a.L?8:6)+" "+c+".",32<=c&&127>c&&(d+=" '"+String.fromCharCode(c)+"'"));a.u((null!=b?b+": ":"")+d);return e}function bf(a){var b=a.b;a.b={};return b}function cf(a,b){var c=0;if(a.b){if(b)return af(a,b,a.b[b]&&a.b[b].value);b=Object.keys(a.b);b.sort();for(var d=0;d<b.length;d++)af(a,b[d],a.b[b[d]].value),c++}return 0<c}
function L(a,b,c,d,e){c=void 0===c?0:c;e=void 0===e?0:e;switch((void 0===d?0:d)||a.U){case 2:(a=0<c?c:0)?36<a&&(a=36):(a=Math.abs(b),a=255>=a?8:262143>=a?18:36);b=pa(b,2,a,"",e);break;case 8:b=wa(b,0<c?(c+2)/3|0:0,!!e);break;case 10:b=xa(b,0<c?Math.ceil(.3*c):0);break;default:b=n(b,0<c?c+3>>2:0,!!e)}0>c?c=b.replace(/^0+([0-9A-F]+)$/i,"$1"):c=b;return c}
var Ye={"||":5,"&&":6,"!":7,"|":7,"^!":8,"&":9,"!=":10,"==":10,">=":11,">":11,"<=":11,"<":11,">>>":12,">>":12,"<<":12,"-":13,"+":13,"^/":14,"/":14,"*":14,_:19,"^_":19,"{":20,"}":20},Xe={",,":1,"||":5,"&&":6,"!=":10,"==":10,">=":11,">":11,"<=":11,"<":11,">>>":12,">>":12,"<<":12,"-":13,"+":13,"^/":14,"/":14,"*":14,"!":15,"|":15,"^!":15,"&":15,_:19,"^_":19,"{":20,"}":20},Re=Math.pow(2,32);
function df(a){Oe.call(this,a);this.Ja=!1;this.Ga=18;this.L=36;this.S=["<",">"];this.ta=[];this.Ia=Y();this.M=Y(0);this.oa=Y(0);this.ha=Y(0);this.I=[];this.i=this.N=this.K=[];ef(this);this.W=this.pa=0;this.j=[];this.Ca=void 0;ff(this);this.D=this;this.va={};this.ca=this.Eb=0;this.Z=null;this.R=[];gf(this,a.messages);this.ua=a.commands;this.Ha=[];this.O=0;this.Oa=this.Da=null;this.F=this.La=this.Ka=this.na=this.xa=0;this.wa=this.ma=this.ga=null;var b=this;window?void 0===window[v]&&(window[v]=function(a){return gd(b,
a)}):void 0===global[v]&&(global[v]=function(a){return gd(b,a)})}ja(df,Oe);function hf(a){a=a&&a.B;null==a&&(a=-1);return a}function Y(a,b,c){return{B:void 0===a?null:a,eb:void 0===b?!1:b,qa:!1,U:c}}function jf(a,b,c,d){a.B=b;a.eb=c||!1;a.qa=!1;a.U=d}function kf(a){return[a.B,a.eb,a.qa,a.U,a.hb]}function lf(a,b){var c=Y(b[0],b[1],b[2]);c.qa=b[3];b[4]&&(c.zb=Pe(a,c.hb=b[4]));return c}m=df.prototype;
m.Ma=function(a,b,c,d){this.G=b;this.H=a;this.v=c;this.ma=a.j;this.Ga=b.F;(b=bd(a,"messages"))&&gf(this,b);if(a=bd(a,"commands"))this.ua=a;mf(this,function(a){a:{var b=d.G.b,c=a[0],e=a=0,k=b.length;if(c){a=hf(nf(d,c,d.oa));if(-1===a){d.u("invalid address: "+c);break a}e=a>>>d.G.i;k=1}d.u("blockid physical blockaddr used size type");d.u("-------- --------- --------- ------ ------ ----");for(var c=-1,l=0;k--;){var p=b[e];p.type==c?l++||d.u("..."):(c=p.type,l=Ic[c],p&&d.u(n(p.id,8)+" %"+
n(e<<d.G.i,8)+" %"+n(p.B,8)+" "+n(p.Xa,4,!0)+" "+n(p.size,4,!0)+" "+l),c!=Qc&&(c=-1),l=0);a+=16384;e++}}});Db(this)};
m.sa=function(a,b,c){var d=this;switch(b){case "debugInput":return this.ga=this.J[b]=c,c.onkeydown=function(a){var b;if(13==a.keyCode)b=c.value,c.value="",gd(d,b,!0);else if(27==a.keyCode)c.value=b="";else if(38==a.keyCode?(b=null,d.C<d.w.length-1&&(b=d.w[++d.C])):40==a.keyCode&&(0<d.C?b=d.w[--d.C]:(b="",d.C=-1)),null!=b){var e=b.length;c.value=b;c.setSelectionRange(e,e)}null!=b&&a.preventDefault&&a.preventDefault()},!0;case "debugEnter":return this.J[b]=c,Ya(c,function(){if(d.ga){var a=d.ga.value;
d.ga.value="";gd(d,a,!0);return!0}return!1}),!0;case "step":return this.J[b]=c,Ya(c,function(a){var b=!1;Eb(d,!0)||(Pb(d,!0),b=uc(d,a?1:0,null),Pb(d,!1));return b}),!0}return!1};function fd(a){if(a.ga){var b=0,c=0;window&&(b=window.scrollX,c=window.scrollY);a.ga.focus();window&&window.scrollTo(b,c)}}m.Na=function(a,b){var c=-1,d=hf(a);-1!==d&&(c=Ac(this.G,d),b&&null!=a.B&&(a.B+=b||1));return c};m.yb=function(a,b,c){var d=hf(a);-1!==d&&(zc(this.G,d,b),c&&null!=a.B&&(a.B+=c||1),K(this.H,-1))};
m.Ib=function(a,b){0>a&&(a+=C);0>b&&(b+=C);a=Be.call(this.v,a,b,!1,!0);a>=A&&(a-=C);return a};
function nf(a,b,c){var d,e;c||(c=Y());var f=c.B;if(void 0!==b){a:{var g,f=a.S[0],h=a.S[1];g="("==f||"{"==f||"["==f?"\\":"";for(var k="["==f?"\\":"",k=new RegExp(g+f+"([^"+k+f+k+h+"]+)"+g+h);g=b.match(k);){var l=$e(a,g[1]);if(void 0===l){b=void 0;break a}b=b.replace(f+g[1]+h,null!=l?L(a,l):"undefined")}if(a.ta.length)for(f=a.ta[0],h=a.ta[1],g="("==f||"{"==f||"["==f?"\\":"",k="["==f?"\\":"",k=new RegExp(g+f+"([^"+k+f+k+h+"]+)"+g+h);g=b.match(k);)b=b.replace("["+g[1]+"]","unimplemented");for(;f=b.match(/\$([a-z]+)/i);){h=
null;switch(f[1].toLowerCase()){case "ops":h=0}if(null==h)break;b=b.replace(f[0],h.toString())}}"%"==b.charAt(0)&&(d=!0,b=b.substr(1));var p,f=b,q;if(f.match(/^[a-z_][a-z0-9_]*$/i))for(f=f.toUpperCase(),h=0;h<a.I.length;h++)if(g=a.I[h].aa[f],null!=g){q=g.o;break}null!=q&&(p=Y(q));if(p)return p;0<=b.indexOf("0x")?e=16:0<=b.indexOf("0o")?e=8:0<=b.indexOf(".")&&(e=10);f=$e(a,b)}null!=f&&(f=of(f,a.Ga),jf(c,f,d,e));return c}function pf(a,b,c){c&&(c=c.match(/(['"])(.*?)\1/))&&(b.zb=Pe(a,b.hb=c[2]))}
function of(a,b){0>a&&a>=-A&&(a+=C);return Math.trunc(Math.abs(a))%Math.pow(2,void 0===b?36:b)}function qf(a,b){return L(a,b/Ub,18)+" "+L(a,b%Ub,18)}
function gf(a,b){a.D=a;a.ca=a.Eb=536870916;a.Z=null;a.R=[];b=Pe(a,b.replace("keys","key").replace("kbd","keyboard"),!1,"|");if(b.length)for(var c in cc){var d;a:if(d=void 0,Array.prototype.indexOf)d=b.indexOf(c,d);else{d=d||0;0>d&&(d+=b.length);0>d&&(d=0);for(var e=b.length;d<e;d++)if(d in b&&b[d]===c)break a;d=-1}0<=d&&(a.ca|=cc[c],a.u(c+" messages enabled"))}}function mf(a,b){for(var c in cc)if(16==cc[c]){a.va[c]=b;break}}m.tb=function(a){return rf.indexOf(a.toUpperCase())};
m.ub=function(a){var b,c=this.v;switch(a){case sf:b=c.i;break;case tf:b=c.I;break;case uf:b=c.b;break;case vf:b=c.j&x;break;case wf:b=c.j&131072?1:0;break;case xf:b=c.j&65536?1:0;break;case yf:b=c.j&32768?1:0;break;case zf:b=c.j&32?1:0;break;case Af:b=c.j&262144?1:0}return b};
m.message=function(a,b){b&&(a+=" @"+L(this,Y(this.v.oa).B,18));if(!this.Z||a!=this.Z)if(this.Z=a,this.ca&1073741824)this.R.push(a);else{var c;if(this.ca&-2147483648&&this.v&&(c=this.v.A.P)||Eb(this,!0))this.Y(),c&&(a+=" (cpu halted)");this.u(a);this.v&&(a=this.v,od(a),a.ma=0,a.H&&K(a.H,void 0))}};
function ff(a){var b;if(!wd(a))a.j&&a.j.length&&a.u("instruction history buffer freed"),a.W=0,a.j=[];else if(!a.j||!a.j.length){a.j=Array(Bf);for(b=0;b<a.j.length;b++)a.j[b]=Y();a.W=0;a.u("instruction history buffer allocated")}}function Cf(a,b,c){if(!Df(a,c))return!1;tc(a.v,b);return!0}
function uc(a,b,c,d){if(!Df(a))return!1;var e="";null===c&&(e=(c=!a.Da||"tr"==a.Da)?"tr":"t");a.F=0;b||wd(a)&&xd(a,a.v.i,0);try{b=md(a.v,b);var f=a.v.Za(b);0<f&&(vc(a.v,f),a.F+=f,wc(a.v,f,!0),xc(a.v,f),a.na++)}catch(g){"number"!=typeof g&&(a.F=0,Ab(a.v,g.stack||g.message))}!1!==d&&(a.ma&&a.ma.stop(),K(a.H,-1));ed(a,c||!1,e);return 0<a.F}m.Y=function(a){this.v&&this.v.Y(a)};function ed(a,b,c){b=void 0===b?!0:b;a.Ja&&(c&&a.u(Ef+c),jf(a.M,a.v.i),b&&1!=a.O?Ff(a):Gf(a))}
function Df(a,b){var c;(c=!a.v||!Cb(a.v))||(c=a.v,c.A.ba?c=!0:(c.u(c.toString()+" not powered"),c=!1),c=!c);return c||a.v.A.P?(b||a.u("cpu busy or unavailable, command ignored"),!1):!Bb(a.v)}m.Ba=function(a,b){return!b&&(this.reset(!0),a)?this.restore(a):!0};m.ra=function(a,b){b&&this.u(a?"suspending":"shutting down");return a?this.save():!0};m.reset=function(a){ff(this);this.na=0;this.Z=null;this.F=0;jf(this.M,this.v.i);this.A.P=!1;Hf(this);a||ed(this)};
m.save=function(){var a=new H(this);a.set(0,kf(this.M));a.set(1,kf(this.oa));a.set(2,kf(this.ha));a.set(3,[this.w,this.V,this.ca]);a.set(4,this.I);return a.data()};m.restore=function(a){var b=0;void 0!==a[3]&&(this.M=lf(this,a[b++]),this.oa=lf(this,a[b++]),this.ha=lf(this,a[b++]),this.w=a[b][0],"string"==typeof this.w&&(this.w=[this.w]),this.V=a[b][1],this.ca|=a[b][2]);a[4]&&(this.I=a[4]);return!0};m.start=function(a,b){this.O||this.u("running");this.A.P=!0;this.Ka=a;this.La=b};
m.stop=function(a,b){if(this.A.P){this.A.P=!1;this.F=b-this.La;if(!this.O){b="stopped";if(this.F){a-=this.Ka;var c=0<a?Math.round(1E3*this.F/a):0;b+=" (";wd(this)&&(b+=this.na+" instructions, ",this.na=0);b+=this.F+" cycles, "+a+" ms, "+c+" hz)"}else Qb(this,-2147483648)&&(b+=" (use the 't' command to execute blocked faults)");this.u(b)}ed(this,!0);fd(this);Hf(this,this.v.i);this.Z=null}};function wd(a){return 1<a.i.length||!!a.pa}
function xd(a,b,c){var d=-1;c||(d=a.v.f(b),2756==d>>23&&a.v.oa==b&&(b=ud(a.v,1)));if(0<c&&(a.pa&&!--a.pa||Zc(a,b,1,a.i)))return!0;0<=c&&a.j.length&&(a.na++,0>d&&(d=a.v.f(b)),0<=d&&(jf(a.j[a.W],b),++a.W==a.j.length&&(a.W=0)));return!1}
function If(a,b,c,d){var e=Y(b.B),f=a.Na(b,1),g,h,k,l=0,p=f/Zb|0,q;for(q in Jf)if(g=Jf[q][p&q]){h=+q;p>>=6;switch(h){case 32512:k=Kf;l=p&3;break;case 32256:k=Lf;l=p&7;break;case 29248:k=Mf,l=(p&48)>>2|(p&6)>>1}break}k=k&&k[l]||"";"S"==k&&g>Nf&&(k="B");k=Of[g||0]+k;if(g){if(28700==h)h=f/$b&127,l=L(a,h,-1);else for(h=f>>23&15,l=L(a,h,-1),p=0;l&&p<Pf.length;p++)if(g==Pf[p][0]&&(q=Pf[p][h])){k=Of[q];l="";break}k=Da(k,8)+(l?l+",":"");f&4194304&&(k+="@");k+=L(a,f&262143,-1);(f=f>>18&15)&&(k+="("+L(a,f,
-1)+")")}else k=Da(k,8)+qf(a,f);f=k;g="";h=L(a,e.B,18)+":";if(-1!==e.B&&-1!==b.B){do if(k=a.Na(e,1),g+=" "+qf(a,k),null==e.B)break;while(e.B!=b.B)}h+=Da(g,16)+f;c&&(h=Da(h,48)+";"+(c||""),h=a.v.A.Ua?h+("cycles="+hd(a.v).toString()+" cs="+n(a.v.Ha)):h+(null!=d?"="+d.toString():""));return h}
function Qf(a,b,c,d,e){var f=-1,g,h;if(b){for(var k=b.toUpperCase(),l=0;l<Pf.length;l++)for(var p in Pf[l])if(+p&&(h=Pf[l][p],k==Of[h])){k=Of[Pf[l][0]];c&&(c=L(a,+p)+","+c);break}for(var q in Jf){g=+q;p=Jf[q];switch(g){case 32512:l=Kf;break;case 32256:l=Lf;break;case 29248:l=Mf;break;default:l=[""]}for(var D in p){h=p[D];for(var F=0;F<l.length;F++){var J=l[F];"S"==J&&h>Nf&&(J="B");if(k==Of[h]+J){f=29248!=g?F:(F&3)<<1|(F&12)<<2;f=(D|f<<6)*Zb;break}}if(0<=f)break}if(0<=f)break}!(0>f)||c&&c.match(/^[0-9A-Z$%.?]/i)||
(c=b+c,b="",f=0)}else c&&(f=g=0);if(0<=f&&c)for(k=c.split(","),2<k.length&&(e||a.u("too many operands: "+c),k.length=0,f=-1),q=0;q<k.length;q++)if(h=k[q].trim()){D=h.match(/(@?)([^(]*)\(?([^)]*)\)?/);if(!D){e||a.u("unknown operand: "+h);f=-1;break}D[1]&&(f+=4194304);if(h=D[3]){h=$e(a,h,e);if(void 0==h){f=-1;break}if(0>h||15<h)h&=15;f+=h<<18}h=D[2];if(q||1==k.length)h=h?h.replace(/(^|[^0-9])\./g,"$1"+L(a,d,18)):"0";h=$e(a,h,e);if(void 0==h){f=-1;break}if(!q&&1<k.length)if(28700==g){if(0>h||127<h)h&=
127;f+=h*$b}else{if(0>h||15<h)h&=15;f+=h<<23}else{if(b||q)if(0>h||262143<h)h&=Tb;f+=h}}0>f&&!e&&a.u("unknown instruction: "+b+" "+c);return f}function ef(a){var b,c;a.i=["bp"];if(a.N)for(b=1;b<a.N.length;b++){c=a.N[b];c=hf(c);var d=a.G;Yc(d.b[c>>>d.i],!1)}a.N=["br"];if(a.K)for(b=1;b<a.K.length;b++)c=a.K[b],c=hf(c),d=a.G,Yc(d.b[c>>>d.i],!0);a.K=["bw"];a.xa=0;a.pa=0}
m.Ra=function(a,b,c){var d=!0;c||Rf(this,a,b,!1,!0);if(a!=this.i){var e=hf(b);if(-1===e)this.u("invalid address: "+L(this,b.B,18)),d=!1;else{var f=this.G;f.b[e>>>f.i].Ra(e&16383,a==this.K)}}d&&(a.push(b),c?b.qa=!0:(Sf(this,a,a.length-1,"set"),ff(this)));return d};function Rf(a,b,c,d,e){var f=!1;c=hf(c);for(var g=1;g<b.length;g++){var h=b[g];if(c==hf(h)&&(!d||h.qa)){f=!0;h.qa||e||Sf(a,b,g,"cleared");b.splice(g,1);b!=a.i&&(d=a.G,Yc(d.b[c>>>d.i],b==a.K));h.qa||ff(a);break}}return f}
function Tf(a,b){for(var c=1;c<b.length;c++)Sf(a,b,c);return b.length-1}function Sf(a,b,c,d){c=b[c];a.u(b[0]+" "+L(a,c.B,18)+(d?" "+d:c.hb?' "'+c.hb+'"':""))}function Hf(a,b){if(void 0!==b)Zc(a,b,1,a.i,!0),a.O=0;else for(b=1;b<a.i.length;b++){var c=a.i[b];if(c.qa){if(!Rf(a,a.i,c,!0))break;b=0}}}
function Zc(a,b,c,d,e){var f=!1;if(!a.xa++)for(var g=1;!f&&g<d.length;g++){var h=d[g];if(!e||h.qa)for(var k=hf(h)&(d==a.i?65535:-1),l=0;l<c;l++)if(b+l==k){var p,f=!0;h.qa&&(Rf(a,d,h,!0),e=!0);if(p=h.zb){for(var f=!1,q=0;q<p.length;q++)if(!Uf(a,p[q],!0)){if(p[q].indexOf("if")){f=!0;break}for(var D=q+1;D<p.length&&p[D].indexOf("else");D++)q++;if(D==p.length){f=!0;break}}a.v.A.P||(f=!0)}if(f){e||Sf(a,d,g,"hit");break}}}a.xa--;return f}
function Vf(a,b){b=void 0===b?!0:b;for(var c="",d=0;16>d;d++){!d||d&3||(c+="\n");var e=a,f=wa(d,2);jf(e.Ia,d);f+="="+L(e,e.Na(e.Ia),36)+" ";c+=f}if(b){b="";for(d=0;d<rf.length;d++)(e=rf[d]||"")&&(e+="="+L(a,a.ub(d),d>=wf?1:d==tf?23:18)+" "),b+=e;c+="\n"+b}return c}m.Gb=function(a,b){return a[0]>b[0]?1:a[0]<b[0]?-1:0};
function Ie(a,b,c,d,e){var f=[],g;for(g in e){var h=e[g];"number"==typeof h&&(e[g]=h={o:h});var k=h.o,l=h.a;if(void 0!==k){var p=f,k=[k>>>0,g],q=Ha(p,k,a.Gb);0>q&&p.splice(-(q+1),0,k)}l&&(h.a=l.replace(/''/g,'"'))}a.I.push({yd:b,B:c,Wb:d,aa:e,Bb:f})}function Wf(a,b,c){var d=[],e=hf(b)>>>0;for(b=0;b<a.I.length;b++){var f=a.I[b],g=f.B>>>0,h=f.Wb;if(e>=g&&e<g+h){e=Ha(f.Bb,[e-g],a.Gb);0<=e?Xf(a,b,e,d):c&&(e=~e,Xf(a,b,e-1,d),Xf(a,b,e,d));break}}return d}
function Yf(a,b,c){var d=a.G,e=0,f=null,g=0;b.forEach(function(a,b){d.b[(b&d.j)>>>d.i].g(a,b&16383,b);null==f&&(f=b);b>g&&(g=b);e++});e?(b="start address ",null!=c?(I(a.v,c),b+=L(a,c)):b+="unspecified",a.u(e+" words loaded at "+L(a,f)+"-"+L(a,g)+", "+b),ed(a)):a.u("no data")}function Xf(a,b,c,d){var e={},f=a.I[b].Bb,g=0,h=null;0<=c&&c<f.length&&(g=f[c][0],h=f[c][1]);h&&(e=a.I[b].aa[h],h="."==h.charAt(0)?null:e.l||h);d.push(h);d.push(g);d.push(e.a);d.push(e.c)}
function Zf(a,b){var c=b[0].substr(1),d=b[1]&&"0"<=b[1][0]&&"9">=b[1][0]?b[1]:void 0,e=d?b[2]:b[1],f=nf(a,d,a.ha);if(!e)return a.u("begin assemble at "+L(a,f.B,18)),a.V=!0,K(a.H),!0;var g=e.match(/^(['"]?)(.*?)(\.klm|\.mac|\.html|\.txt|)\1$/i);if(g&&(g[1]||g[3])){f=nf(a,d);if(a.wa)a.u("assembly already in progress");else{var h=g[2]+g[3];g[3]||(c+="s");var k=f.B,l=a.wa=new Ag(a);Cg(l,h,k,c,function(b,c){if(!b)try{var d=l.J;null==d&&(d=k);Yf(a,l.T,d)}catch(F){"number"==typeof F?b=F||-1:(a.u(F.message),
b=-1)}b&&a.u("error ("+b+") processing "+(c||h));a.wa=null;b||gd(a)})}return!1}b.shift();b.shift();b.shift();b=Qf(a,e,b.join(""),f.B||0);0<=b&&(a.yb(f,b),a.u(If(a,f)));return!0}function Dg(a,b){var c=b.match(/^\s*([A-Z_]?[A-Z0-9_]*)\s*(=?)\s*(.*)$/i);if(c){if(!c[1])return cf(a)||a.u("no variables"),!0;if(!c[2])return cf(a,c[1]);if(!c[3])return delete a.b[c[1]],!0;b=$e(a,c[3]);return void 0!==b?(a.b[c[1]]={value:b,Mb:void 0},!0):!1}a.u("invalid assignment:"+b);return!1}
function Eg(a,b,c){var d=null;b=nf(a,b);var e=Wf(a,b,!0);if(e.length){var f,g;e[0]&&(g="",(f=b.B-e[1])&&(g=" + "+n(f,4,!0)),f=e[0]+" ("+L(a,e[1],18)+")"+g,c&&a.u(f),d=f);4<e.length&&e[4]&&(g="",(f=e[5]-b.B)&&(g=" - "+n(f,4,!0)),f=e[4]+" ("+L(a,e[5],18)+")"+g,c&&a.u(f),d||(d=f))}else c&&a.u("no symbols");return d}
function Ff(a,b){var c;if(b&&"?"==b[1])a.u("register commands:"),a.u("\tr\tdump registers"),a.u("\trm\tdump misc registers"),a.u("\trx [#]\tset flag or register x to [#]");else{var d=a.v,e=void 0;null==c&&(c=!0);if(b&&1<b.length){var f=b[1];if("m"==f)e=!0;else{var g=f.indexOf("=");if(0<g)b=f.substr(g+1),f=f.substr(0,g);else if(2<b.length)b=b[2];else{a.u("missing value for "+b[1]);return}g=$e(a,b);if(void 0===g)return;b=a.tb(f);if(0>b){a.u("unknown register: "+f);return}var f=0,h=a.v;switch(b){case sf:I(h,
g);jf(a.M,h.i);break;case vf:td(h,g);break;case wf:f=131072;break;case xf:f=65536;break;case yf:f=32768;break;case zf:f=32;break;case Af:f=262144}f&&(h.j=g?h.j|f:h.j&~f);K(a.H);a.u("updated registers:")}}a.u(Vf(a,e));c&&(jf(a.M,vd(d)),Gf(a,L(a,a.M.B,18)))}}function Fg(a,b){b=Ea(b);var c=b.match(/^(['"])(.*?)\1$/);c?1<c[2].length?a.u(c[2]):af(a,null,c[2].charCodeAt(0)):$e(a,b,!1)}
function Gg(a,b,c){if("?"==c)a.u("trace commands:"),a.u("\tt [#]\ttrace # instructions"),a.u("\ttr [#]\ttrace # instructions with register updates"),a.u("\ttc [#]\ttrace # cycles"),a.u("note: bn [#] breaks after # instructions without updates");else{var d="t"!=b;c=Ve(a,c,null,!0)||1;var e=0;"tc"==b&&(e=c,c=1);a.Da=b;Xa(c,function(){return Pb(a,!0)&&uc(a,e,d,!1)},function(){a.ma&&a.ma.stop();K(a.H,-1);Pb(a,!1)})}}
function Gf(a,b,c,d){b=nf(a,b,a.M);void 0===d&&(d=1);var e=256;if(void 0!==c)if("l"==c.charAt(0))c=Ve(a,c.substr(1)),null!=c&&(d=c);else{d=nf(a,c);if(d.B<b.B)return;e=d.B-b.B;if(256<e){a.u("range too large");return}d=-1}for(c=0;0<e&&d--;){var f=Eb(a,!1)||a.O?a.F:null,g=null!=f?"cycles":null,h=Wf(a,b),k=b.B;if(h[0]&&d&&(!c&&d||0>h[0].indexOf("+"))){var l=h[0]+":";h[2]&&(l+=" "+h[2]);a.u(l)}h[3]&&(g=h[3],f=null);h=a.ha;l=b;h.B=l.B;h.eb=l.eb;h.qa=l.qa;h.U=l.U;a.u(If(a,b,g,f));e-=b.B-k;c++}}
function Uf(a,b,c){var d=!0;try{b.length&&"end"!=b?c||a.u(Ef+b):(a.V&&(a.u("ended assemble at "+L(a,a.ha.B,18)),a.V=!1),b="");var e=b.charAt(0);if('"'==e||"'"==e)return!0;a.Z=null;if(Cb(a)&&0<b.length){a.V&&(b="a "+L(a,a.ha.B,18)+" "+b);var f=!1,g=b,h;h=void 0===h?" ":h;for(var k=[],l="",p=0,q=0;p<g.length;){var D=g[p++];l?D==l&&(l="",k.push(g.substr(q,p-q)),q=p):'"'==D||"'"==D?l=D:0<=h.indexOf(D)&&(k.push(g.substr(q,p-q-1)),q=p)}q<p&&k.push(g.substr(q,p-q));k[0]=k[0].toLowerCase();if(k&&k.length)for(var F=
k[0],J=F.charAt(0),p=1;p<F.length;p++)if(D=F.charAt(p),"?"==J||"r"==J||"a">D||"z"<D){k[0]=F.substr(p);k.unshift(F.substr(0,p));break}switch(k[0].charAt(0)){case "a":d=Zf(a,k);break;case "b":var Lc=k[0],qa=k[1],G=b;if("?"==qa)a.u("breakpoint commands:"),a.u("\tbp #\tset exec breakpoint"),a.u("\tbr #\tset read breakpoint"),a.u("\tbw #\tset write breakpoint"),a.u("\tbc #\tclear breakpoint (* to clear all)"),a.u("\tbl\tlist all breakpoints"),a.u("\tbn [#]\tbreak after # instruction(s)");else{var Pa=Lc.charAt(1);
if("l"==Pa){var Rd;Rd=0+Tf(a,a.i);Rd+=Tf(a,a.N);(Rd+=Tf(a,a.K))||a.u("no breakpoints")}else if("n"==Pa){var $f=+qa||0;qa&&(a.pa=$f);a.u("break after "+$f+" instruction(s)")}else if(void 0===qa)a.u("missing breakpoint address");else{var ka="*"==qa?Y():nf(a,qa,a.M);"c"==Pa?null==ka.B?(ef(a),a.u("all breakpoints cleared")):Rf(a,a.i,ka)||Rf(a,a.N,ka)||Rf(a,a.K,ka)||a.u("breakpoint missing: "+L(a,ka.B,18)):null!=ka.B&&(pf(a,ka,G),"p"==Pa?a.Ra(a.i,ka):"r"==Pa?a.Ra(a.N,ka):"w"==Pa?a.Ra(a.K,ka):a.u("unknown breakpoint command: "+
Pa))}}break;case "c":a.za&&(a.za.value="");break;case "d":a:{var kb,lb=k[0],ra=k[1],Fa=k[2],Yh=k[3];if("?"==ra){var mb="";for(kb in cc)a.va[kb]&&(mb&&(mb+=","),mb+=kb);mb+=",state,symbols";a.u("dump memory commands:");a.u("\tdw [a] [n] dump n words at address a");a.u("\tds [a] [n] dump n words at address a as JSON");a.u("\tdh [p] [n] dump n instructions from history position p");mb.length&&a.u("dump extension commands:\n\t"+mb)}else if("state"==ra){var Sd=Hg(a.H,!0);"console"==Fa?console.log(Sd):
(a.za&&(a.za.value=""),Sd&&a.u(Sd))}else if("symbols"==ra)for(var Td=0;Td<a.I.length;Td++){var Ud=a.I[Td],nb;for(nb in Ud.aa)if("."!=nb.charAt(0)){var ag=Ud.aa[nb].o;if(void 0!==ag){var bg=Ud.aa[nb].l;bg&&(nb=bg);a.u(L(a,ag,18)+" "+nb)}}}else{if("d"==lb){for(kb in cc)if(k[1]==kb){var cg=a.va[kb];cg?(k.shift(),k.shift(),cg(k)):a.u("no dump registered for "+ra);break a}ra||(lb=a.Oa||"dw")}else a.Oa=lb;if("dh"==lb){var dg=ra,eg=Fa,fg="",gg=0,la=a.W,sa=a.j;if(sa.length){var fa=+dg||a.Ca,Fb=+eg||10;isNaN(fa)?
fa=Fb:fg="more ";fa>sa.length&&(a.u("note: only "+sa.length+" available"),fa=sa.length);la-=fa;0>la&&(null==sa[sa.length-1].B?(fa=la+fa,la=0):la+=sa.length);var Vd=[];"call"==eg&&(Fb=1E5,Vd=["CALL"]);for(void 0!==dg&&a.u(fa+" instructions earlier:");0<Fb&&la!=a.W;){var hg=sa[la++];if(null==hg.B)break;var Gb=Y(hg.B),Zh=fa--,ig=If(a,Gb,"history",Zh);(!Vd.length||0<=ig.indexOf(Vd[0]))&&a.u(ig);Gb.rb&&(la+=Gb.rb,Fb-=Gb.rb,fa-=Gb.rb);la>=sa.length&&(la=0);a.Ca=fa;gg++;Fb--}}gg||(a.u("no "+fg+"history available"),
a.Ca=void 0)}else{var Qa=0,jg="ds"==lb,Hb=nf(a,ra,a.oa);Fa&&("l"==Fa.charAt(0)?(Fa=Fa.substr(1)||Yh,Qa=Ve(a,Fa)):Qa=nf(a,Fa).B-Hb.B,0>Qa&&(Qa=0),65536<Qa&&(Qa=65536));var $h=a.U;Hb.U&&(a.U=Hb.U);for(var kg="db"==lb?1:2,Wd=Qa||32,Xd=1==kg?1:4,ai=(Wd+Xd-1)/Xd|0||1,Ra="";ai--&&0<Wd;){for(var ta="",Yd="",ra=L(a,Hb.B,18),lg=Xd;0<lg--&&0<Wd--;){var Zd=a.Na(Hb,1);jg?(ta&&(ta+=","),ta+=Zd):(ta+=qf(a,Zd),ta+=" ");for(var Mc=29,bi=0;1==kg&&0<=Mc;bi++)var Ib=Zd/Math.pow(2,Mc)%Math.pow(2,7),ta=ta+(L(a,Ib,7)+
" "),Ib=Ib+0,Yd=Yd+(32>Ib?".":String.fromCharCode(Ib)),Mc=Mc-7}Ra&&(Ra+="\n");Ra=jg?Ra+(ta+","):Ra+(ra+": "+ta+(0>lg?" "+Yd:""))}Ra&&a.u(Ra);a.U=$h}}}break;case "e":if("else"==k[0])break;var mg,ng,og=k[0],$d=k[1];"e"==og||"ew"==og?(mg=a.Na,ng=a.yb):$d=null;if(null==$d)a.u("edit memory commands:"),a.u("\tew [a] [...] edit words at address a");else for(var ae=nf(a,$d,a.oa),be=2;be<k.length;be++){var Jb=$e(a,k[be]);if(void 0===Jb)break;Jb=of(Jb);a.u("changing "+L(a,ae.B,18)+" from "+qf(a,mg.call(a,
ae))+" to "+qf(a,Jb));ng.call(a,ae,Jb,1)}break;case "g":var pg=k[1],ci=b;if(void 0!==pg){var qg=nf(a,pg);pf(a,qg,ci);a.Ra(a.i,qg,!0)}Cf(a,!0,c);break;case "h":a.A.P?(c||a.u("halting"),a.Y()):Eb(a,!0)||c||a.u("already halted");break;case "i":if("if"==k[0]){var ce;var Kb=b.substr(2),Kb=Ea(Kb);$e(a,Kb)?(c||a.u("true: "+Kb),ce=!0):(c||a.u("false: "+Kb),ce=!1);ce||(d=!1);break}f=!0;break;case "k":var di=k[0];if("?"==k[1])a.u("stack trace commands:"),a.u("\tk\tshow frame addresses"),a.u("\tks\tshow symbol information");
else{var de=0,ee=Y(),Lb=Y();for(a.u("stack trace for "+L(a,Lb.B,18));10>de;){for(var Sa=null,ei=256;65536>Lb.B>>>0;){ee.B=a.Na(Lb,2);if(null==Lb.B||!ei--)break;if(!(ee.B&1)){for(var fi=a,Nc=ee,rg=null,Mb=Nc.B,sg=Mb,fe=1;6>=fe&&Mb;fe++){if(2<fe){Nc.B=Mb;var Oc=If(fi,Nc);if(0<=Oc.indexOf("JSR")){var tg=Oc.indexOf(" ");if(Mb+(Oc.indexOf(" ",tg+1)-tg-1)/2==sg){rg=Oc;break}}}Mb-=2}Nc.B=sg;if(Sa=rg)break}}if(!Sa||null==Sa)break;var ug=null;if("ks"==di){var vg=Sa.match(/[0-9A-F]+$/);vg&&(ug=Eg(a,vg[0]))}Sa=
Da(Sa,50)+" ;"+(ug||"stack="+L(a,Lb.B,18));a.u(Sa);de++}de||a.u("no return addresses found")}break;case "l":if("ln"==k[0]){Eg(a,k[1],!0);break}f=!0;break;case "m":a:{var ua,va=null,N=k[1];"?"==N&&(N=void 0);if(void 0!==N){var Ga=0;if("all"==N)Ga=1879046143,N=null;else if("on"==N)va=!0,N=null;else if("off"==N)va=!1,N=null;else{"keys"==N&&(N="key");"kbd"==N&&(N="keyboard");for(ua in cc)if(N==ua){Ga=cc[ua];va=!!(a.ca&Ga);break}if(!Ga){a.u("unknown message category: "+N);break a}}if(Ga)if("on"==k[2])a.ca|=
Ga,va=!0;else if("off"==k[2]&&(a.ca&=~Ga,va=!1,1073741824==Ga)){for(var wg=1E3<=a.R.length?a.R.length-1E3:0;wg<a.R.length;)a.u(a.R[wg++]);a.R=[]}}var gi=0,Nb="";for(ua in cc)if(!N||N==ua){var hi=!!(a.ca&cc[ua]);if(null===va||va==hi)Nb&&(Nb+=","),++gi%10||(Nb+="\n\t"),"key"==ua&&(ua="keys"),Nb+=ua}void 0===N&&a.u("message commands:\n\tm [category] [on|off]\tturn categories on/off");a.u((null!==va?va?"messages on: ":"messages off: ":"message categories:\n\t")+(Nb||"none"));ff(a)}break;case "p":if("print"==
k[0]){Fg(a,b.substr(5));break}var xg=k[0],yg="p"==xg?0:"pr"==xg?1:-1;if("?"==k[1]||0>yg)a.u("step commands:"),a.u("\tp\tstep over instruction"),a.u("\tpr\tstep over instruction with register update");else if(a.O)a.u("step in progress");else{var zg=Y(a.v.i);a.Na(zg);a.O?(a.Ra(a.i,zg,!0),Cf(a)||(a.H&&ld(a.H),a.O=0)):Gg(a,yg?"tr":"t")}break;case "r":if("reset"==b){a.H&&a.H.reset();break}Ff(a,k);break;case "s":a:switch(k[1]){case "base":if(k[2]){var ob=+k[2];if(2==ob||8==ob||10==ob||16==ob)a.U=ob;else{a.u("invalid base: "+
ob);break}}a.u("default base: "+a.U);break;case "cs":var Ob;void 0!==k[3]&&(Ob=+k[3]);switch(k[2]){case "int":a.v.pa=Ob;break;case "start":a.v.Ia=Ob;break;case "stop":a.v.ua=Ob;break;default:a.u("unknown cs option");break a}void 0!==Ob&&dd(a.v);a.u("checksums "+(a.v.A.Ua?"enabled":"disabled"));break;case "sp":void 0!==k[2]&&(id(a.v,+k[2])||a.u("warning: using 1x multiplier, previous target not reached"));a.u("target speed: "+(a.v.ga.toFixed(2)+"Mhz")+" ("+a.v.ha+"x)");break;default:if(k[1]){a.u("unknown option: "+
k[1]);break}case "?":a.u("debugger options:"),a.u("\tbase #\t\tset default base to #"),a.u("\tcs int #\tset checksum cycle interval to #"),a.u("\tcs start #\tset checksum cycle start count to #"),a.u("\tcs stop #\tset checksum cycle stop count to #"),a.u("\tsp #\t\tset speed multiplier to #")}break;case "t":Gg(a,k[0],k[1]);break;case "u":Gf(a,k[1],k[2],8);break;case "v":if("var"==k[0]){Dg(a,b.substr(3))||(d=!1);break}if("ver"==k[0]){a.u((Sb||"PDP10")+" version 1.34.3 ("+a.v.mb+",RELEASE)");a.u(window?
window.navigator.userAgent:"");break}f=!0;break;case "?":if(k[1]){Fg(a,b.substr(1));break}var ge="commands:",he;for(he in Ig)ge+="\n"+Da(he,9)+Ig[he];wd(a)||(ge+="\nnote: history disabled if no exec breakpoints");a.u(ge);break;default:f=!0}f&&(a.u("unknown command: "+b),d=!1)}}catch(Bg){a.u("Debugger "+(Bg.stack||Bg.message)),d=!1}return d}function gd(a,b,c){null!=b&&(a.Ha=Pe(a,b,c));for(;b=a.Ha.shift();)if(!Uf(a,b))return!1;return!0}
var Ig={"?":"help/print","a [#]":"assemble","b [#]":"breakpoint",c:"clear output","d [#]":"dump memory","e [#]":"edit memory","g [#]":"go [to #]",h:"halt","if":"eval expression","int [#]":"request interrupt",k:"stack trace",ln:"list nearest symbol(s)",m:"messages",p:"step over",print:"print expression",r:"dump/set registers",reset:"reset machine",s:"set options","t [#]":"trace","u [#]":"unassemble","var":"assign variable",ver:"print version"},Nf=20,Of=".WORD HLL HLLZ HLLO HLLE HRL HRLZ HRLO HRLE HRR HRRZ HRRO HRRE HLR HLRZ HLRO HLRE MOVE MOVS MOVN MOVM EXCH BLT PUSH POP LDB DPB IBP ILDB IDPB SETZ SETO SETA SETCA SETM SETCM AND ANDCA ANDCM ANDCB IOR ORCA ORCM ORCB XOR EQV LSH LSHC ROT ROTC ADD SUB MUL IMUL DIV IDIV ASH ASHC FSC FADR FSBR FMPR FDVR DFN UFA FAD FSB FMP FDV AOBJP AOBJN CAI CAM JUMP SKIP AOJ AOS SOJ SOS TR TL TD TS XCT JFFO JFCL JSR JSP JRST JSA JRA PUSHJ POPJ BLKI DATAI BLKO DATAO CONO CONI CONSZ CONSO UUO JOV JCRY0 JCRY1 JCRY JFOV HALT JRSTF JEN".split(" "),
sf=0,tf=1,uf=2,vf=3,wf=4,xf=5,yf=6,zf=7,Af=8,rf="PC RA EA PS OV C0 C1 ND PD".split(" "),Jg={},Jf=(Jg[28672]={0:101},Jg[32704]={5632:64,5696:63,5760:58,5824:27,5888:28,5952:25,6016:29,6080:26,10240:56,10304:48,10368:46,10432:84,10496:57,10560:49,10624:47,10752:21,10816:22,10880:69,10944:70,11008:88,11072:85,11136:83,11264:91,11328:23,11392:24,11456:92,11520:86,11584:87,11648:89,11712:90},Jg[32512]={6144:65,6400:59,6656:66,6912:60,7168:67,7424:61,7680:68,7936:62,8192:17,8448:18,8704:19,8960:Nf,9216:53,
9472:52,9728:55,9984:54,11776:50,12032:51,16384:30,16640:36,16896:37,17152:34,17408:38,17664:32,17920:44,18176:40,18432:39,18688:45,18944:33,19200:41,19456:35,19712:42,19968:43,20224:31,20480:1,20736:5,20992:2,21248:6,21504:3,21760:7,22016:4,22272:8,22528:9,22784:13,23040:10,23296:14,23552:11,23808:15,24064:12,24320:16},Jg[32256]={12288:71,12800:72,13312:73,13824:74,14336:75,14848:76,15360:77,15872:78},Jg[29248]={24576:79,24640:80,25088:81,25152:82},Jg[28700]={28672:93,28676:94,28680:95,28684:96,
28688:97,28692:98,28696:99,28700:100},Jg),Kf=["","I","M","S"],Lf=" L E LE A GE N G".split(" "),Mf="N NE NA NN Z ZE ZA ZN C CE CA CN O OE OA ON".split(" "),Pf=[{0:85,8:102,4:103,2:104,6:105,1:106},{0:88,4:107,2:108,10:109}],Bf=1E3,Ef=">> ";$a(function(){for(var a=w(document,v,"debugger"),b=0;b<a.length;b++){var c=a[b],d=u(c),d=new df(d);ub(d,c)}});function Ag(a){this.b=a}
function Kg(a,b,c,d){a.la=b;a.W=(c||"").toLowerCase();a.done=d;a.O=0;a.H=[];a.M=[];a.D=[];a.v={};a.I={};a.L=[];a.K=[];a.T=[];a.ea=[];a.Z=[];a.ia=0;a.V=0;a.ga=0;a.X=a.la||0;a.Ea=-1;a.G=[];a.S=null;a.i=0;a.R=null;a.C=a.N="";a.ha=/^[ \t]*([A-Z$%.?][0-9A-Z$%.]*:|)[ \t]*([A-Z$%.][0-9A-Z$%.]*|)([ \t]*)([^;]+|)(;?[\s\S]*)/i;a.j=null;a.w=null;a.F="";a.J=null}
function Cg(a,b,c,d,e){d&&0<=d.indexOf("s")?(Kg(a,c,d,e),a.D=b.split(/(\r?\n)/),a.M.push(a.D.length),Lg(a),a.done&&a.done(a.V)):(Kg(a,c,d,e),a.H=b.split(";"),Mg(a))}
function Mg(a){if(a.O==a.H.length)Lg(a),a.done&&a.done(a.V);else{var b=a.H[a.O];a.u("loading "+ya(b));0>b.indexOf(":")&&0<=".MAC.KLM".indexOf(b.slice(-4).toUpperCase())&&(b+=".txt");Ja(b,null,!0,function(b,d,e){if(e)a.done&&a.done(e,b);else{e=d;if(Aa(b,".html")){e="";var c;for(b=/<pre>([\s\S]*?)<\/pre>/gi;c=b.exec(d);)c=c[1],0<=c.indexOf("&")&&(c=c.replace(/&lt;/gi,"<").replace(/&gt;/gi,">").replace(/&amp;/gi,"&")),e+=c;(c=e.match(/&[a-z]+;/i))&&Ng(a,"unrecognized HTML entity '"+c[0]+"'")}d=e.split(/(\r?\n)/);
if(d.length&1){if(c=d.pop())Ng(a,"unexpected line '"+c+"'"),d.push(c),d.push("")}else Ng(a,"unexpected number of lines ("+d.length+")");a.D=a.D.concat(d);a.M[a.O]=d.length>>1;a.O++;setTimeout(function(){Mg(a)},0)}})}}
function Lg(a){if(0<=a.W.indexOf("p"))a.u(a.D.join(""));else{var b=bf(a.b);Og(a,"APR",0);Og(a,"PI",4);try{for(var c=0;c<a.D.length;c+=2){a.ia++;0<=a.W.indexOf("l")&&a.u(Pg(a)+": "+a.D[c]);if(!Qg(a,a.D[c]+"\r\n"))break;if(null!==a.J)break}a.i&&a.error("open block",a.v[a.R].ia);a.G.length&&a.error("open scope",a.G[0].ia);Rg(a);Sg(a);a.ea.forEach(function(b,c){b=Tg(a,b,void 0,c,a.Z[c]);void 0!==b&&(b+=a.T[c],a.T[c]=Ug(a,b,c))})}catch(d){a.u(d.message),a.V=-1}0>a.W.indexOf("d")&&(a.b.b=b)}}
function Qg(a,b,c,d,e){var f,g;null!=a.w&&(b=Vg(a,b));for(var h=!0,k="";h;){g=b.match(a.ha);if(!g||g[5]&&";"!=g[5].slice(0,1))return a.error("failed to parse line '"+b+"'"),!1;h=!1;k=g[2].toUpperCase();if(k==Wg||k==Xg)c=null;if(c){for(f=0;f<c.length;f++)for(var l=c[f],p=d[f]||e[f]||"",q=0,D=b.length-g[5].length;q<D;){var F=b.indexOf(l,q);if(0>F)break;var q=F+1,J=F+l.length,Lc="",qa="";F&&(Lc=b[F-1]).match(/[0-9A-Z$%.]/i)||!(J>=b.length)&&(qa=b[J]).match(/[0-9A-Z$%.]/i)||("'"==Lc&&F--,"'"==qa&&J++,
b=b.substr(0,F)+p+b.substr(J),q=F+p.length,h=!0)}c=null}if(a.i&&(1==a.i&&(f=b.indexOf(a.C),0<=f?(a.i++,b=b.substr(f+1)):a.error("expected "+a.S+" definition in '"+b+"'")),1<a.i&&(b=Yg(a,b),h=!0),a.i))return!0}d=g[1];b=g[3];c=g[4].trim();g=g[4]+g[5];d&&(d=d.slice(0,-1),Og(a,d,a.X,Zg));var G;k&&(G=c.match(/^([=:]+)(.*)/))&&(e=0,d=k,k=G[1],c=G[2],"=="==k?e|=$g:"=:"==k&&(e|=ah),Og(a,d,c,e),k=c="");if(!k&&!c)return!0;a.S=k;if(G=bh(a,c))c=c.replace(G,ch(a,dh,bh(a,g))),b||(b="\t");for(;G=eh(a,c);)c=c.replace(G,
G.slice(0,-1));if(!fh(a,k,c))switch(k){case gh:case hh:case ih:Vg(a,g);break;case jh:k=c;G=Tg(a,k);void 0!==G&&0<=G&&262143>=G?a.X+=G:a.error("unrecognized BLOCK expression '"+k+"'");break;case kh:k=c;b=g=0;for(c=36;G=lh(a,k);){k=k.substr(G.length).trim();d=G;if(e=G.match(/^\((.*)\)\s*(.*)$/))e[1]&&(g=Tg(a,"^D"+e[1])),d=e[2];if(g){d=d?Tg(a,d):0;if(void 0===d||0>g||36<g){a.error("unexpected BYTE operand: "+G);break}d=X(a.b,d,g,!0);c<g&&(mh(a,b),b=0,c=36);b+=d*Math.pow(2,c-g);c-=g}else mh(a,0)}36>c&&
mh(a,b);break;case nh:(k=c)?(a.J=Tg(a,k),void 0===a.J&&a.error("unrecognized END expression '"+k+"'")):a.J=a.la;break;case oh:ph(a,c);break;case qh:Rg(a);break;case rh:a.X=Tg(a,c)||0;break;case sh:Sg(a);break;case th:ph(a,c.replace(",",",,"));break;case uh:case vh:case wh:case xh:case yh:case zh:case Ah:case Bh:case Ch:case Dh:case Eh:case Fh:case Wg:case Xg:case Gh:case Hh:ch(a,k,g);break;case Ih:k=Jh(a,c);for(G=0;G<k.length;G++)delete a.b.b[k[G]],delete a.I[k[G]];break;case Kh:case Lh:case Mh:case Nh:case Oh:case Ph:case Qh:break;
default:G=[],k=(k+b+c).trim(),g=Tg(a,k,G),void 0!==g?mh(a,g,G[0]):a.error("unrecognized word expression '"+k+"'")}return!0}
function fh(a,b,c){var d=a.v[b];if(!d)return!1;if(null!=c){if(d.Fa==Rh){var e=a.X;Z(a,d.ka);if(e<a.X){if(!c)return!0;Sh(a);Z(a,c);var d=a.T[0],f=a.ea[0];Th(a);if(void 0!==d)return a.T[e]+=d&130023423,a.T[e]|=d&4194304,f&&(a.ea[e]=a.ea[e]?a.ea[e]+("+"+f):f),!0}a.error("OPDEF '"+b+"' ("+c+") failed");return!1}b=a.j;a.j=d;d.Qa=Jh(a,c,!0);Z(a,d.ka,d.Ta,d.Qa,d.Ab);a.j=b;return!0}if("?"!=b[0])return!1;switch(b.substr(1)){case yh:case xh:case Fh:d.Fa||Z(a,d.ka);break;case zh:0<d.Fa&&Z(a,d.ka);break;case Ah:0<=
d.Fa&&Z(a,d.ka);break;case Ch:0>d.Fa&&Z(a,d.ka);break;case Dh:0>=d.Fa&&Z(a,d.ka);break;case vh:case Eh:case wh:case Bh:d.Fa&&Z(a,d.ka);break;case Wg:case Xg:for(b=0;b<d.Qa.length;b++)Z(a,d.ka,d.Ta,[d.Qa[b]],[]);break;case Hh:for(;0<d.Fa--;)Z(a,d.ka);break;default:c=d.ka,Sh(a,b),Z(a,c),Th(a)}return!0}function Z(a,b,c,d,e){b=b.split(/\r?\n/);for(var f=0;f<b.length&&Qg(a,b[f]+"\r\n",c,d,e);f++);}
function Sh(a,b){a.G.push({name:b,T:a.T,ea:a.ea,X:a.X,Ea:a.Ea,ia:a.ia});a.T=[];a.ea=[];0>a.Ea&&(a.Ea=a.X);a.X=0}function Th(a){if(a.G.length){var b=a.G[a.G.length-1].name;b&&a.L.push({name:b,T:a.T,ea:a.ea});b=a.G.pop();a.T=b.T;a.ea=b.ea;a.X=b.X;a.Ea=b.Ea;a.G.length||-1==a.Ea||a.error("scope restore error")}else a.error("scope nesting error")}
function lh(a,b){var c;c=void 0===c?",":c;for(var d=0,e=!1,f=null,g=0;d<b.length;){var h=b[d++];if('"'==h)e=!e;else if(!e){if(!g&&0<=c.indexOf(h)){d--;break}if("<"==h)g++;else if(">"==h&&0>--g){a.error("missing bracket(s) in '"+b+"'");break}}}g?0<g&&a.error("extra bracket(s) in '"+b+"'"):f=b.substr(0,d);return f}
function Tg(a,b,c,d,e){var f=-1;void 0===d&&(d=0<=a.Ea?a.Ea:a.X);var g=b.replace(/SIXBIT\s*(\S)(.*?)\1/g,"'$2'").replace(/ASCII\s*(\S)(.*?)\1/g,'"$2"');if(c){var h="",k=g;if(f=g.match(/^([^\s]+)\s*(.*?)\s*$/))h=f[1],k=f[2];f=Qf(a.b,h,k,d,c)}0>f&&(g=g.replace(/\.([^0-9]|$)/g,L(a.b,d,-1)+"$1"),f=$e(a.b,g,c),void 0===f&&a.error("unable to parse expression '"+b+"'",e));return f}
function bh(a,b){for(var c=0,d="",e=0,f=-1,g=b.length;e<b.length;){var h=b[e];if(";"==h)break;"["==h&&(c++||(f=e));e++;if("]"==h&&0>=--c){g=e;break}}0>c&&a.error("missing bracket(s) in '"+b+"'");0<=f&&(d=b.substr(f,g-f));return d}function Pg(a,b){b=void 0===b?a.ia:b;for(var c=0;b>a.M[c];)if(b-=a.M[c],c<a.H.length-1)c++;else break;return ya(a.H[c]+" line "+b)}
function eh(a,b){var c=null;if(b=b.match(/([A-Z$%.][0-9A-Z$%.]*)#/i)){c=b[0];b=b[1];var d="?"+b;if(!a.v[d]){var e,f,g;e=f=g=[];a.v[d]={name:d,Fa:Uh,Ta:e,Ab:f,Qa:g,ka:b+": 0",ia:a.ia};a.K.push(d)}}return c}
function Jh(a,b,c){var d=[];for(c&&(b=b.replace(/^\(?(.*?)\)?$/,"$1"));b;){b=b.trim();c=lh(a,b);if(!c)break;var e=c;if("\\"==c[0]){var f=1,g=0;"'"==c[1]?(f++,g=6):'"'==c[1]&&(f++,g=7);var e=a,f=c.substr(f),g=void 0===g?0:g,h=Tg(e,f);if(void 0!==h){var k=5;switch(g){case 0:f=L(e.b,h,-1);break;case 6:k++;case 7:for(;h&&k--;)h=Math.trunc(h/Math.pow(2,g))}}e=f}d.push(e);b=b.substr(c.length+1)}return d}
function Vg(a,b){var c=b;null==a.w&&(a.w=a.F="",b&&(a.w=b[0],c=b=b.substr(1)));if(a.w){var d=b.indexOf(a.w);0>d?c="":(c=b.substr(d+1),b=b.substr(0,d),a.w=null);a.F+=b}if(null==a.w){var d=b=0,e,f,g=a.F.length;a.S==hh&&g++;for(var h=0;h<g;h++){b||(d=0,f=29,e=7,a.S==ih&&(e--,f++));var k=a.F.charCodeAt(h)&127;6==e&&(97<=k&&122>=k&&(k-=32),k=k+32&63);d+=k*Math.pow(2,f);f-=e;b++;0>f&&(mh(a,d),b=0)}b&&mh(a,d)}return c}
function ch(a,b,c){var d,e,f,g,h,k;a.C="<";a.N=">";g=h=k=[];if(b==uh){e=c.match(/([A-Z$%.][0-9A-Z$%.]*)\s*(\([^)]*\)|)\s*,?\s*(<|)([\s\S]*)/i);if(!e)return a.error("unrecognized "+b+" in '"+c+"'"),c;f=e[1];if(e[2]&&","!=e[2]){h=g=Jh(a,e[2],!0);b=[];for(c=0;c<h.length;c++)if(d=h[c].indexOf("<"),0<=d){var l=h[c].lastIndexOf(">");0>l&&(l=h[c].length);b[c]=h[c].substr(d,l-d);h[c]=h[c].substr(0,d)}h=b}d=Vh;b=3}else if(b==Gh){a.C="[";a.N="]";e=c.match(/([A-Z$%.][0-9A-Z$%.]*)\s*(\[)([\s\S]*)/i);if(!e)return a.error("unrecognized "+
b+" in '"+c+"'"),c;f=e[1];d=Rh;b=2}else if(b==dh)a.C="[",a.N="]",f="?"+xa(++a.ga,5),a.v[f]&&a.error("literal symbol '"+f+"' redefined"),e=[c[0],c.substr(1)],d=Wh,b=0;else if(b==Wg||b==Xg){a.j||a.error(b+" outside of macro");e=c.match(/([A-Z$%.][0-9A-Z$%.]*)\s*,\s*(<|)([\s\S]*)/i);if(!e)return a.error("unrecognized "+b+" operands '"+c+"'"),c;for(d=0;d<a.j.Ta.length&&e[1]!=a.j.Ta[d];d++);if(d==a.j.Ta.length)return a.error("invalid "+b+" parameter '"+e[1]+"'"),c;f="?"+b;g=[e[1]];b==Xg?k=a.j.Qa[d].split(""):
k=Jh(a,a.j.Qa[d]);d=k.length;b=2}else{if(b==vh)d=1,","==c[0]&&(c=c.substr(1).trim());else{e=lh(a,c);if(!e)return a.error("missing "+b+" expression '"+c+"'"),c;c=c.substr(e.length+1);e=e.trim();if(b==xh||b==Bh){f=lh(a,c);if(!f)return a.error("missing second "+b+" expression '"+c+"'"),c;c=c.substr(f.length+1)}d=b==wh||b==Fh?a.v[e]||a.I[e]||void 0!==a.b.b[e]?1:0:Tg(a,e)||0}e=c.match(/\s*(<|)([\s\S]*)/i);f="?"+b;b=1}f=f.toUpperCase();a.i=1;a.R=f;a.v[f]={name:f,Fa:d,Ta:g,Ab:h,Qa:k,ka:"",ia:a.ia};e[b]&&
(a.i=2,Yg(a,e[b+1]));return f}function Yg(a,b){for(var c="",d=0;d<b.length;d++)if(b[d]==a.C)a.i++;else if(b[d]==a.N&&(a.i--,1==a.i)){a.i=0;c=b.substr(d+1);b=b.substr(0,d);break}d=a.R||"";a.v[d].ka+=b;a.i||(a.R=null,fh(a,d));return c}
function Og(a,b,c,d){d=void 0===d?0:d;b=b.toUpperCase().substr(0,6);if(d&Zg&&a.I[b])a.error("label '"+b+"' redefined");else{var e=void 0;if("string"==typeof c){var e=[],f=Tg(a,c,e);if(void 0===f){a.error("symbol error ("+c+")");return}c=f;e=e[0]}(f=a.I[b])?(f.value=c,f.Xb=d,f.ia=a.ia):a.I[b]={name:b,value:c,Xb:d,ia:a.ia};a.b.b[b]={value:c,Mb:e}}}function ph(a,b){var c=[],d=Tg(a,b,c);void 0!==d?mh(a,d,c[0]):a.error("unrecognized EXP expression '"+b+"'")}
function Rg(a){for(var b=a.X,c={},d=0;d<a.L.length;c={T:c.T,Sa:c.Sa,Aa:c.Aa},d++){c.Aa=a.L[d];c.T=[];c.Sa=0;c.Aa.T.forEach(function(a){return function(b,c){c===a.T.length&&a.T.push(b);a.Sa++}}(c));if(c.Sa==c.T.length)for(var e=b;e+c.Sa<=a.X;e++){for(var f=void 0,f=0;f<c.Sa&&c.T[f]===a.T[e+f]&&c.Aa.ea[f]==a.ea[e];f++);if(f==c.Sa){Og(a,c.Aa.name,e,Zg);c.Aa=null;break}}if(c.Aa){var g=a;Og(a,c.Aa.name,a.X,Zg);c.Aa.T.forEach(function(a){return function(b,c){mh(g,b,a.Aa.ea[c])}}(c))}}a.L=[]}
function Sg(a){for(var b=0;b<a.K.length;b++){var c=a.K[b],d=a.v[c];d?Z(a,d.ka):a.error("missing definition for variable '"+c+"'")}a.K=[]}function mh(a,b,c){a.T[a.X]=Ug(a,b);void 0!==c&&(a.ea[a.X]=c);a.Z[a.X]=a.ia;a.X++}function Ug(a,b,c){c=void 0===c?a.X:c;var d=X(a.b,b||0,36,!0);(b<-A||b>=C)&&Ng(a,"truncated value "+wa(b)+" at location "+wa(c)+" to "+wa(d));return d}Ag.prototype.error=function(a,b){throw Error("error in "+Pg(this,b)+": "+a);};
function Ng(a,b){a.u("warning in "+Pg(a,void 0)+": "+b)}Ag.prototype.u=function(a){this.b?this.b.u(a):console.log(a)};
var Zg=1,$g=2,ah=4,gh="ASCII",hh="ASCIZ",jh="BLOCK",kh="BYTE",uh="DEFINE",nh="END",oh="EXP",vh="IF1",wh="IFDEF",xh="IFDIF",yh="IFE",zh="IFG",Ah="IFGE",Bh="IFIDN",Ch="IFL",Dh="IFLE",Eh="IFN",Fh="IFNDEF",Wg="IRP",Xg="IRPC",Kh="LALL",qh="LIT",dh="LITERAL",Lh="LIST",rh="LOC",Mh="NOSYM",Gh="OPDEF",Nh="PAGE",Ih="PURGE",Hh="REPEAT",ih="SIXBIT",Oh="SUBTTL",Ph="TITLE",sh="VAR",th="XWD",Qh="XLIST",Vh=-1,Rh=-2,Wh=-3,Uh=-4;
function Xh(a,b,c){t.call(this,"Computer",a,33554432);this.A.ba=!1;this.R=null;ii(this,b);this.N=bd(this,"autoPower",a,6);this.w=0;this.W=+a.busWidth||+a.buswidth;this.L=this.F=this.M=null;this.K=this.V=!1;this.I=this.C=null;this.S=this.O=!1;this.Z=bd(this,"url")||"";(Math.random()+.1).toString(36);this.i=ji(this);if(this.v=tb("CPU",this.id)){this.D=tb("Debugger",this.id);this.G=new Bc({id:this.bb+".bus",busWidth:this.W},this.v,this.D);var d,e=rb(this.id);if((this.j=tb("Panel",this.id))&&this.j.za)for(b=
0;b<e.length;b++)d=e[b],d.ja=this.j.ja,d.u=this.j.u,d.za=this.j.za;this.u(Sb+" v1.34.3\nCopyright \u00a9 2012-2017 Jeff Parsons <Jeff@pcjs.org>\nLicense: GPL version 3 or later <http://gnu.org/licenses/gpl.html>");for(b=0;b<e.length;b++)d=e[b],d.Ma&&d.Ma(this,this.G,this.v,this.D);b=null;d=bd(this,"resume",a);void 0!==d&&(1<d.length?b=this.F=d:this.b=parseInt(d,10));var f;if(a=bd(this,"state")||(f=!0,a.state))this.M=b=a,f||(this.K=!0,this.b=ki),this.b&&(this.I=new H(this,"1.34.3"),li(this.I)?b=null:
delete this.I);!b&&this.b&&(b=mi(this))&&(this.K=!0);if(b){var g=this;Ja(b,null,!0,function(a,b,c){c?(g.F=null,g.K=!1,g.ja("Unable to load machine state from server (error "+c+(b?": "+Ea(b):"")+")")):(g.L=b,g.V=!0);Db(g)})}else Db(this);this.J.power||(this.N=!0);!c&&this.N&&ni(this,this.Wa)}else r("Unable to find CPU component")}ja(Xh,t);function ii(a,b){if(!b){var c;if("object"==typeof resources&&(c=resources.parms))try{b=eval("("+c+")")}catch(d){r(d.message+" ("+c+")")}}a.R=b}
function bd(a,b,c,d){var e=b.toLowerCase(),e=Va(b)||Va(e);void 0===e&&a.R&&(e=a.R[b]);void 0===e&&c&&(e=c[b]);void 0===e&&"object"==typeof resources&&resources[b]&&(e=b);void 0===e&&(e=void 0);if("string"==typeof e&&d)switch(d){case 4:e=+e;isNaN(e)&&(e=0);break;case 6:e="true"==e}return e}function ni(a,b,c){for(var d=rb(a.id),e=0;e<=d.length;e++){var f=e<d.length?d[e]:a;if(!Cb(f)){Cb(f,function(){ni(a,b,c)});return}}b.call(a,c)}
function oi(a,b){var c=new H(a,"1.34.3",pi);if(li(c)&&qi(c)){var d=c.get(ri),e=b?b.get(ri):"unknown";d!=e&&(a.ja("Machine state may be out-of-date\n("+d+" vs. "+e+")\nCheck your browser's local storage limits"),b||c.clear())}}m=Xh.prototype;
m.Wa=function(a){void 0===a&&(a=this.b||(this.L?si:ki));if(!this.w){this.w++;var b=!1,c=!1;this.O=!1;var d=this.I||new H(this,"1.34.3");if(a==ti)b=!0;else if(a>ki){if(li(d,this.L)){this.C=new H(this,"1.34.3",ui);li(this.C)&&(vi(this,d),a=wi,xi(this.C));this.C.set(ri,Ia());yi(this.C);var e=this.b&&!this.K;if(a==si||qb("Click OK to restore the previous "+Sb+" machine state, or CANCEL to reset the machine.")){if(c=qi(d)){var f=d.get("code"),g=d.get("data");f&&("ok"==f?li(d,g):("error"==f&&"no machine state"!=
g?(this.ja("Error: "+g),"unable to verify user"==g&&(Ta(zi,""),this.i=null)):this.u(f+": "+g),xi(d),li(d)?(c=qi(d),e=!0):c=!1))}e&&oi(this,c?d:null)}else a==wi&&d.clear()}else oi(this);delete this.L;delete this.I}e=rb(this.id);for(f=0;f<e.length;f++)g=e[f],g!==this&&g!=this.v&&(c=Ai(this,g,d,b,c));b=[d,a,c];a!=ti?ni(this,this.Hb,b):this.Hb(b)}};
function Ai(a,b,c,d,e){if(!b.A.ba){b.A.ba=!0;var f=null;try{if(e&&((f=c.get(b.id))||(f=c.get(b.id.replace(/[a-z0-9]\./i,".")))),"string"===typeof f&&(f=null),!b.Ba(f,d)&&f&&(r("Unable to restore state for "+b.type),a.M&&!a.V?(c.clear(),a.b=ki,window&&window.location.reload()):a.O=!0,b.Ba(null),e=!1),!d&&b.Db){var g=b.Db.split("|");for(a=0;a<g.length;a++)b.status(g[a])}}catch(h){r("Error restoring state for "+b.type+" ("+h.message+")")}}return e}
m.Hb=function(a){var b=a[0],c=0>a[1];a=a[2];this.S=!0;this.A.ba=!0;var d=this.J.power;d&&(d.textContent="Shutdown");this.v&&(Ai(this,this.v,b,c,a),K(this,-2),this.v.fa());this.O&&(vi(this,b),b.clear());!c&&this.C&&(this.C.clear(),delete this.C);this.w=0};
function vi(a,b){if(qb("There may be a problem with your "+Sb+" machine.\n\nTo help us diagnose it, click OK to send this "+Sb+" machine state to http://www.pcjs.org.")){var c=a.Z;a=a.i||"";b=b.toString();var d={};d.app=Sb;d.ver="1.34.3";d.url=c;d.user=a;d.type="bug";d.data=b;Ja("http://www.pcjs.org/api/v1/report",d,!0)}}
function Hg(a,b,c){var d,e="none";if(a.w)return null;a.w--;var f=new H(a,"1.34.3"),g=new H(a,"1.34.3",pi),h=Ia();g.set(ri,h);f.set(ri,h);f.set(Bi,"1.34.3");f.set(Ci,window?window.location.href:null);f.set(Di,window?window.navigator.userAgent:"");a.v&&a.v.ra&&(c&&(b&&(a.v.A.fa=a.v.A.P),a.v.Y()),d=a.v.ra(b,c),"object"===typeof d&&f.set(a.v.id,d),c&&(a.v.A.ba=!1,!1===d&&(e=null)));for(var h=rb(a.id),k=0;k<h.length;k++){var l=h[k];l.A.ba&&(l.ra&&(d=l.ra(b,c),"object"===typeof d&&f.set(l.id,d)),c&&(l.A.ba=
!1,!1===d&&(e=null)))}e&&(c?(h=d=!1,b?(a.i&&Ei(a,a.i,f.toString()),yi(g)&&yi(f)||(e=null,d=h=!0)):a.b&&(d=!0,h=a.b==Fi),d&&f.clear(h)):e=f.toString());c&&(a.A.ba=!1,b=a.J.power)&&(b.textContent="Power");a.w=0;return e}
m.reset=function(){this.A.reset=!0;this.G&&this.G.reset&&(Rb(this,"Resetting "+this.G.type),this.G.reset());this.v&&this.v.reset&&(Rb(this,"Resetting "+this.v.type),this.v.reset());for(var a=rb(this.id),b=0;b<a.length;b++){var c=a[b];c!==this&&c!==this.G&&c!==this.v&&c.reset&&(Rb(this,"Resetting "+c.type),c.reset())}this.A.reset=!1;K(this,-1)};m.start=function(a,b){for(var c=rb(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.start&&e.start(a,b)}K(this,-1)};
m.stop=function(a,b){for(var c=rb(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.stop&&e.stop(a,b)}K(this,-1)};
function K(a,b){if(a.v){var c=a.v,d=b||0,e=c.J.speed;e&&(0>=d||30<=(c.kb+=d))&&(e.textContent=c.A.P?c.Z.toFixed(2)+"Mhz":"Stopped",c.kb=0)}if(a.j&&(a=a.j,b=b||0,a.L)){c=a.v.A.P;d=!!(a.v.C&8);if(0>=b||60<=(a.K+=b)){e=a.v.i;if(a.J.PC){var f=a.D&&a.D.U||8,e=e||0,e=8==f?wa(e,void 0):n(e,void 0);a.J.PC.textContent!=e&&(a.J.PC.textContent=e)}a.K=0}-1>b?a.i=a.v.i:0<b&&c&&!d&&(a.i=a.v.Ca);lc(a,a.i);fc(a,a.w)}}
m.sa=function(a,b,c){var d=this;switch(b){case "power":return this.J[b]=c,c.onclick=function(){d.w||(d.A.ba?Hg(d,!1,!0):ni(d,d.Wa))},!0;case "reset":return this.J[b]=c,c.onclick=function(){if(d.A.ba&&!d.w)if(d.b&&!d.F){var a=qb("Click OK to save changes to this "+Sb+" machine.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");Hg(d,a,!0);!a&&d.M?window&&window.location.reload():d.Wa(ki)}else d.reset(),d.v&&!d.D&&d.v.fa()},!0;case "save":if(Aa(La(),"pcjs.org"))c.parentNode.removeChild(c);
else return this.J[b]=c,c.onclick=function(){var a=ji(d,!0);if(a){var b=!!(d.b&&!d.F||d.M),c=Hg(d,b);b?Ei(d,a,c):d.ja("Resume disabled, machine state not saved")}},!0}return!1};
function ji(a,b){var c=a.i;c||((c=Oa(zi),void 0!==c)?!c&&b&&(b=null,window&&(b=window.prompt("Saving machine states on the pcjs.org server is currently unsupported.\n\nIf you're running your own server, enter your user ID below.","")),c=b)&&((c=Gi(a,c))||a.ja("The user ID is invalid.")):b&&a.ja("Browser local storage is not available"));return c}
function Gi(a,b){a.i=null;b=Ja(La()+"/api/v1/user?req=verify&user="+b);var c=b[1];if(!b[0]&&c)try{b=eval("("+c+")"),b.code&&"ok"==b.code&&(Ta(zi,b.data),a.i=b.data)}catch(d){r(d.message+" ("+c+")")}return a.i}function mi(a){var b=null;a.i&&(b=La()+"/api/v1/user?req=load&user="+a.i+"&state="+Hi(a,"1.34.3"));return b}
function Ei(a,b,c){if(c){var d={req:"store"};d.user=b;d.state=Hi(a,"1.34.3");d.data=c;b=Ja(La()+"/api/v1/user",d);d=b[0];if(b[1]){if(d){var e=d.indexOf("\n");0<e&&(d=d.substr(0,e));d.indexOf("Error: ")||(d=d.substr(7))}d='{"code":'+b[1]+',"data":"'+d+'"}'}b=JSON.parse(d);b&&"ok"==b.code?a.ja("Machine state saved to server"):c&&(c=b&&b.data||"unable to save machine state",c="error"==b.code?"Error: "+c:"Error "+b.code+": "+c,a.ja(c),Ta(zi,""),a.i=null)}}
function ld(a,b){if(a.za){var c=0,d=0;!b&&window&&(c=window.scrollX,d=window.scrollY);a.za.focus();!b&&window&&window.scrollTo(c,d)}}var ui="failsafe",pi="validate",ri="timestamp",Bi="version",Ci="url",Di="browser",zi="user",ti=-1,ki=0,si=1,wi=2,Fi=3;$a(function(){for(var a=w(document,v+"-machine"),b=0;b<a.length;b++)for(var c=a[b],d=u(c),c=w(c,v,"computer"),e=0;e<c.length;e++){var f=c[e],g=u(f),g=new Xh(g,d,!0);ub(g,f);g.N&&ni(g,g.Wa)}});
ab.show.push(function(){for(var a=w(document,v,"computer"),b=0;b<a.length;b++){var c=u(a[b]);(c=tb("Computer",c.id))&&c.S&&!c.A.ba&&c.Wa(ti)}});ab.exit.push(function(){for(var a=w(document,v,"computer"),b=0;b<a.length;b++){var c=u(a[b]);(c=tb("Computer",c.id))&&c.A.ba&&Hg(c,!(!c.b||c.F),!0)}});function H(a,b,c){this.id=a.id;this.i="";this.b={};this.v=this.j=!1;this.key=Hi(a,b,c);xi(this,a.Ub)}m=H.prototype;m.set=function(a,b){try{this.b[a]=b}catch(c){}};m.get=function(a){return this.b[a]||null};
m.data=function(){return this.b};function li(a,b){return b?(a.i=b,a.v=!0,a.j=!1,!0):a.v?!0:Ma()&&(b=Oa(a.key))?(a.i=b,a.v=!0):!1}function qi(a){var b=!0;if(!a.j)try{a.b=JSON.parse(a.i),a.j=!0}catch(c){r(c.message||c),b=!1}return b}function yi(a){var b=!0;if(Ma()){var c=JSON.stringify(a.b);Ta(a.key,c)||(r("Unable to store "+c.length+" bytes in browser local storage"),b=!1)}return b}m.toString=function(){return this.b?JSON.stringify(this.b):this.i};
function xi(a,b){a.i="";a.b={};a.v=a.j=!1;b&&a.set("parms",b)}m.clear=function(a){xi(this);var b=[];try{for(var c=0,d=window.localStorage.length;c<d;c++)b.push(window.localStorage.key(c))}catch(e){}for(c=0;c<b.length;c++)if((d=b[c])&&(a||d.substr(0,this.key.length)==this.key)){try{window.localStorage.removeItem(d)}catch(e){}b.splice(c,1);c=0}};function Hi(a,b,c){a=a.id;if(b){var d=b.indexOf(".");0<d&&(a+=".v"+b.substr(0,d))}c&&(a+="."+c);return a}var Ii=0;
function Ji(a,b,c,d,e,f,g){f("Loading "+a+"...");Ja(a,null,!0,function(h,k,l){l?(k||(k="unable to load "+a+" ("+l+")"),g(k,null)):Ki(k,a,b,c,d,e,f,g)})}
function Ki(a,b,c,d,e,f,g,h){function k(a,g){if(g)h(g,null);else{c&&(ib(c,b,a),(g=b)&&0>g.indexOf("/")&&"/"==window.location.pathname.slice(-1)&&(g=window.location.pathname+g),e?"}"==e.slice(-1)?(e=e.slice(0,-1),1<e.length&&(e+=",")):e='{state:"'+e+'",':e="{",e+='url:"'+g+'"}',"object"==typeof resources&&(g=null),a=a.replace(/(<machine[^>]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(e?" parms='"+e+"'":"")+(g?' url="'+g+'"':"")));f||(a=a.replace(/(<xsl:variable name="APPNAME">).*?(<\/xsl:variable>)/,"$1PDPjs$2"),
a=a.replace(/(<xsl:variable name="APPCLASS">).*?(<\/xsl:variable>)/,"$1"+d+"$2"));g=null;if("<"==a.charAt(0))try{f||(a=a.replace(/<!DOCTYPE(.|[\r\n])*]>\s*/g,"")),window.ActiveXObject||"ActiveXObject"in window?(g=new window.ActiveXObject("Microsoft.XMLDOM"),g.async=!1,g.loadXML(a)):g=(new window.DOMParser).parseFromString(a,"text/xml")}catch(q){g=null,a=q.message}else a="unrecognized XML: "+(255<a.length?a.substr(0,255)+"...":a);h(a,g)}}a?f?Li(a,g,k):k(a,null):h("no data"+(b?" for file: "+b:""),null)}
function Li(a,b,c){var d;if(d=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g.exec(a)){var e=d[2];b("Loading "+e+"...");Ja(e,null,!0,function(f,g,h){if(h||!g)c(a,"unable to resolve XML reference: "+d[0]+" ("+h+")");else{if(f=d[3])if(h=g.match(new RegExp("<"+d[1]+"[^>]*>"))){for(var k=h[0],l,p=/( [a-z]+=)(['"])(.*?)\2/g;l=p.exec(f);)k=0>k.indexOf(l[1])?k.replace(">",l[0]+">"):k.replace(new RegExp(l[1]+"(['\"])(.*?)\\1"),l[0]);h[0]!=k&&(g=g.replace(h[0],k))}else{c(a,"missing <"+d[1]+"> in "+e);return}g=g.replace(/<\?xml[^>]*>[\r\n]*/,
"");a=a.replace(d[0],g);Li(a,b,c)}})}else c(a,null)}
function Mi(a,b,c,d,e){function f(a){if(void 0===k){var b=h&&w(h,"machine-warning");k=b&&b[0]||h}k&&(k.innerHTML=Ba(a))}function g(a){f("Error: "+a);l&&(--Ii||db(!0));l=!1}var h,k,l=!0;Ii++;jb[b]={};try{if(h=document.getElementById(b)){var p;if("object"==typeof resources&&(p=resources.css)){var q=document.head||document.getElementsByTagName("head")[0],D=document.createElement("style");D.type="text/css";D.styleSheet?D.styleSheet.cssText=p:D.appendChild(document.createTextNode(p));q.appendChild(D)}d||
(p=a,"pdp"==a.substr(0,3)&&(p="pdpjs"),d="/versions/"+p+"/1.34.3/components.xsl");p=function(e,k){k?Ji(d,null,a,null,!1,f,function(a,e){e?(ib(b,d,a),f("Processing "+c+"..."),window.ActiveXObject||"ActiveXObject"in window?(e=k.transformNode(e))?(h.outerHTML=e,--Ii||db(!0)):g("transformNodeToObject failed"):document.implementation&&document.implementation.createDocument?(a=new XSLTProcessor,a.importStylesheet(e),(e=a.transformToFragment(k,document))?h.parentNode?(h.parentNode.replaceChild(e,h),--Ii||
db(!0)):g("invalid machine element: "+b):g("transformToFragment failed")):g("unable to transform XML: unsupported browser")):g(a)}):g(e)};"<"!=c.charAt(0)?Ji(c,b,a,e,!0,f,p):Ki(c,null,b,a,e,!1,f,p)}else g("missing machine element: "+b)}catch(F){g(F.message)}return l}window.embedPDP10=function(a,b,c,d){db(!1);return Mi("pdp10",a,b,c,d)};window.embedPDP11=function(a,b,c,d){db(!1);return Mi("pdp11",a,b,c,d)};window.findMachineComponent=function(a,b){return tb(b,a+".machine")};
window.processMachineScript=function(a,b){var c=!1;a+=".machine";if("string"==typeof b&&!wb[a]){for(var c=!0,d=wb,e=a,f=b.length,g=[],h=[],k="",l=null,p=0;p<f;p++){var q=b[p];if('"'==q||"'"==q)l&&q!=l?k+=q:(l?l=null:l=q,k&&(h.push(k),k=""));else{if(!l){if("\r"==q||"\n"==q)q=";";if(" "==q||"\t"==q||";"==q){k&&(h.push(k),k="");";"==q&&h.length&&(g.push(h),h=[]);continue}}k+=q}}k&&h.push(k);h.length&&g.push(h);d[e]=g;vb(a)||(c=!1)}return c};window.enableEvents=db;window.sendEvent=fb;})();//# sourceMappingURL=/tmp/pdpjs/1.34.3/pdp10-dbg.map

View file

@ -44,7 +44,7 @@ function pa(){return"http://"+(window?window.location.host:"www.pcjs.org")}funct
function ya(a,b){try{return window.localStorage.setItem(a,b),!0}catch(c){}return!1}function za(a){if(window){var b=window?window.navigator.userAgent:"";return"iOS"==a&&!!b.match(/(iPod|iPhone|iPad)/)&&!!b.match(/AppleWebKit/)||"MSIE"==a&&!!b.match(/(MSIE|Trident)/)||0<=b.indexOf(a)}return!1}
function Aa(a){if(!Ba){var b,c={};if(window){b||(b=window.location.search.substr(1));for(var d,e=/\+/g,f=/([^&=]+)=?([^&]*)/g;d=f.exec(b);)c[decodeURIComponent(d[1].replace(e," "))]=decodeURIComponent(d[2].replace(e," "))}Ba=c}return Ba[a]}function Ca(a,b){if(window){var c=window[a];window[a]="function"!==typeof c?b:function(){c&&c();b()}}}function Da(a){r.init.push(a)}
function Fa(a){if(Ga)try{for(var b=0;b<a.length;b++)a[b]()}catch(c){q(""+("An unexpected exception occurred:\n\n"+c.message+"\n\nPlease send this information to support@pcjs.org. Thanks."))}}function Ha(a){!Ga&&a?(Ga=!0,Ia&&Ja("init"),Ka&&Ja("show")):Ga=a}function Ja(a){r[a]&&Fa(r[a])}var Ba=null,r={init:[],show:[],exit:[]},Ia=!1,Ka=!1,Ga=!0,wa=null;Ca("onload",function(){Ia=!0;Fa(r.init)});Ca("onpageshow",function(){Ka=!0;Fa(r.show)});Ca(za("Opera")||za("iOS")?"onunload":"onbeforeunload",function(){Fa(r.exit)});
function t(a,b){this.type=a;b||(b={id:"",name:""});this.id=b.id||"";this.name=b.name;this.Va=b.comment;this.ib=b;this.exports={};this.m=this.bindings={};a=this.id.indexOf(".");0>a?this.va=this.id:(this.wa=this.id.substr(0,a),this.va=this.id.substr(a+1));this.h={ready:!1,Aa:!1,Oa:!1,F:!1,error:!1};this.Ca=null;this.h.error=!1;this.w=this.j=this.s=this.v=this.ga=null;v.push(this)}function La(a,b,c){Ma[a]&&b&&(Ma[a][b]=c)}function Na(){return Date.now()||+new Date}
function t(a,b){this.type=a;b||(b={id:"",name:""});this.id=b.id||"";this.name=b.name;this.Va=b.comment;this.ib=b;this.exports={};this.m=this.bindings={};a=this.id.indexOf(".");0>a?this.va=this.id:(this.wa=this.id.substr(0,a),this.va=this.id.substr(a+1));this.h={ready:!1,Ba:!1,Oa:!1,F:!1,error:!1};this.Da=null;this.h.error=!1;this.w=this.j=this.s=this.v=this.ga=null;v.push(this)}function La(a,b,c){Ma[a]&&b&&(Ma[a][b]=c)}function Na(){return Date.now()||+new Date}
function q(a){window&&window.alert(a)}function Oa(a){var b=!1;window&&(b=window.confirm(a));return b}function w(a){var b,c=[];a&&(a=0<(b=a.indexOf("."))?a.substr(0,b+1):"");for(b=0;b<v.length;b++){var d=v[b];a&&d.id.indexOf(a)||c.push(d)}return c}function Pa(a){if(void 0!==a){var b;for(b=0;b<v.length;b++)if(v[b].id===a)return v[b]}return null}
function x(a,b){var c;if(void 0!==a){var d;b&&(b=0<(d=b.indexOf("."))?b.substr(0,d+1):"");for(d=0;d<v.length;d++)if(c)c==v[d]&&(c=null);else if(!(a!=v[d].type||b&&v[d].id.indexOf(b)))return v[d]}return null}function y(a){var b=null;if(a=a.getAttribute("data-value"))try{b=eval("("+a+")")}catch(c){q(c.message+" ("+a+")")}return b}
function Qa(a,b){var c=z;b=A(b.parentNode,c+"-control");for(var d=0;d<b.length;d++)for(var e=b[d].childNodes,f=0;f<e.length;f++){var g=e[f];if(1===g.nodeType){var h=g.getAttribute("class");if(h)for(var m=h.split(" "),u=0;u<m.length;u++)switch(h=m[u],h){case c+"-binding":(h=y(g))&&h.binding&&a.U(h.type,h.binding,g,h.value),u=m.length}}}}
@ -52,57 +52,58 @@ function A(a,b,c){c&&(b+="-"+c+"-object");if(a.getElementsByClassName)return a.g
function Ra(a){for(var b=!0,c=Sa[a];c&&c.length;){var d=c.splice(0,1)[0],e=d[0],f=null;0<=Ta.indexOf(e)&&(f=function(){return function(){Ra(a)}}());var g=Ua[e];if(g)if(!f)b=g(d[1],d[2],d[3]);else{if(!g(f,d[1],d[2],d[3]))break}else{var b=!1,h=x(d[1],a);if(h)if(g=Va[e])b=g(h,d[2],d[3]);else{var m=h.exports;if(m&&(g=m[e]))if(b=!0,!f)b=g.call(h,d[2],d[3]);else if(!g.call(h,f,d[2],d[3]))break}}if(!b){q("Script error: "+e+(g?" failed":" unrecognized"));break}}c&&!c.length&&delete Sa[a];return b}k=t.prototype;
k.toString=function(){return this.name?this.name:this.id||this.type};
k.U=function(a,b,c){switch(b){case "clear":return this.m[b]||(this.m[b]=c,c.onclick=function(a){return function(){a.m.print&&(a.m.print.value="")}}(this)),!0;case "print":return this.m[b]||(this.ga=this.m[b]=c,c.value="",this.M=function(a){return function(b,c){8192<a.value.length&&(a.value=a.value.substr(a.value.length-4096));a.value+=(void 0!==c?c+": ":"")+(b||"")+"\n";a.scrollTop=a.scrollHeight}}(c),this.G=function(a){this.M(a,this.va)}),!0;default:return!1}};k.log=function(){};k.M=function(){};
k.status=function(a){this.M(this.va+": "+a)};k.G=function(a,b,c){c=c||this.type;b||q((c?c+": ":"")+a)};function Wa(a,b){b&&(a.h.ready?b():a.Ca=b);return a.h.ready}function B(a){if(!a.h.error&&(a.h.ready=!0,a.h.ready)){var b=a.Ca;a.Ca=null;b&&b()}}function Xa(a,b){a.h.Oa?(a.h.Aa=!1,a.h.Oa=!1):a.h.error?a.M(a.toString()+" error"):a.h.Aa=b}k.V=function(){return this.h.F=!0};k.R=function(a,b){b&&(this.h.F=!1);return!0};
k.status=function(a){this.M(this.va+": "+a)};k.G=function(a,b,c){c=c||this.type;b||q((c?c+": ":"")+a)};function Wa(a,b){b&&(a.h.ready?b():a.Da=b);return a.h.ready}function B(a){if(!a.h.error&&(a.h.ready=!0,a.h.ready)){var b=a.Da;a.Da=null;b&&b()}}function Xa(a,b){a.h.Oa?(a.h.Ba=!1,a.h.Oa=!1):a.h.error?a.M(a.toString()+" error"):a.h.Ba=b}k.W=function(){return this.h.F=!0};k.R=function(a,b){b&&(this.h.F=!1);return!0};
window&&(window.PCjs||(window.PCjs={}),window.PCjs.Machines||(window.PCjs.Machines={}),window.PCjs.Components||(window.PCjs.Components=[]),window.PCjs.Commands||(window.PCjs.Commands={}));
var Ma=window?window.PCjs.Machines:{},v=window?window.PCjs.Components:[],Sa=window?window.PCjs.Commands:{},Ta=["hold","sleep","wait"],Ua={alert:function(a){q(a);return!0},sleep:function(a,b){setTimeout(a,+b);return!1}},Va={select:function(a,b,c){var d=!1;if(a=a.bindings[b])for(b=0;b<a.options.length;b++)if(a.options[b].textContent==c){a.selectedIndex!=b&&(a.selectedIndex=b);d=!0;break}return d}};
Array.prototype.indexOf||(Array.prototype.indexOf=function(a,b){b=b||0;for(var c=this.length;b<c;b++)if(this[b]===a)return b;return-1});Array.isArray||(Array.isArray=function(a){return"[object Array]"===Object.prototype.toString.call(a)});
Function.prototype.bind||(Function.prototype.bind=function(a){function b(){return e.apply(this instanceof c&&a?this:a,d.concat(Array.prototype.slice.call(arguments)))}function c(){}if("function"!=typeof this)throw new TypeError("Function.prototype.bind: non-callable object");var d=Array.prototype.slice.call(arguments,1),e=this;c.prototype=this.prototype;b.prototype=new c;return b});
var z="pdp10",Ya="PDPjs",Za=Math.pow(2,18)-1,$a=Math.pow(2,18),ab=Math.pow(2,17)-1,bb=Math.pow(2,17),C=Math.pow(2,18)-1,E=Math.pow(2,18),F=Math.pow(2,35)-1,G=Math.pow(2,35),I=Math.pow(2,36)-1,J=Math.pow(2,36),K=Math.pow(2,32),cb=Math.pow(2,34),db=Math.pow(2,36),eb=Math.pow(2,23),fb=Math.pow(2,30),z="pdp10",Ya="PDPjs";
function gb(a,b){t.call(this,"Panel",a);this.A=this.C=0;this.P=b;this.f=this.u=this.g=this.i=0;this.D=this.H=-1;this.K=this.L=this.o=!1;this.N=hb;this.l={};this.a={START:[1,1,!0,!1,this.rb],STEP:[1,1,!1,!1,this.sb],ENABLE:[1,1,!1,!1,this.mb],CONT:[1,1,!0,!1,this.kb],DEP:[0,0,!0,!1,this.lb],EXAM:[1,1,!0,!1,this.nb],LOAD:[1,1,!0,!1,this.pb],TEST:[0,0,!0,!1,this.ob]};for(a=0;22>a;a++)this.a["S"+a]=[0,0,!1,!1,this.qb,a];this.w=this.j=this.s=this.v=null;this.exports={hold:this.jb,toggle:this.Bb,reset:this.xb,
function gb(a,b){t.call(this,"Panel",a);this.A=this.C=0;this.P=b;this.f=this.u=this.g=this.i=0;this.D=this.H=-1;this.J=this.L=this.o=!1;this.N=hb;this.l={};this.a={START:[1,1,!0,!1,this.rb],STEP:[1,1,!1,!1,this.sb],ENABLE:[1,1,!1,!1,this.mb],CONT:[1,1,!0,!1,this.kb],DEP:[0,0,!0,!1,this.lb],EXAM:[1,1,!0,!1,this.nb],LOAD:[1,1,!0,!1,this.pb],TEST:[0,0,!0,!1,this.ob]};for(a=0;22>a;a++)this.a["S"+a]=[0,0,!1,!1,this.qb,a];this.w=this.j=this.s=this.v=null;this.exports={hold:this.jb,toggle:this.Bb,reset:this.xb,
set:this.Ab};B(this)}l(gb,t);k=gb.prototype;k.reset=function(a){this.stop();a&&ib(this,this.i=0)};
k.U=function(a,b,c,d){if(this.v&&this.v.U(a,b,c,d)||this.j&&this.j.U(a,b,c,d))return!0;switch(b){case "PC":return this.m[b]=c,this.C++,!0;default:return"led"==a||"rled"==a?(this.m[b]=c,this.l[b]=d?1:0,this.C++,!0):"switch"==a?(void 0===this.a[b]&&(this.a[b]=[d?1:0,d?1:0]),this.m[b]=c,a=c.parentElement||c,a=a.parentElement||a,a.onmousedown=function(a,b){return function(){jb(a,b)}}(this,b),a.onmouseup=a.onmouseout=function(a,b){return function(){kb(a,b)}}(this,b),a.ontouchstart=function(a,b){return function(c){jb(a,
b);c.preventDefault()}}(this,b),a.ontouchend=function(a,b){return function(){kb(a,b)}}(this,b),!0):t.prototype.U.call(this,a,b,c,d)}};k.Z=function(a,b,c,d){this.v=a;this.s=b;this.j=c;this.w=d;lb(this);mb(this)};k.V=function(a,b){if(!b)if(this.P&&nb(),!a)this.reset(!0);else if(!this.restore(a))return!1;return!0};k.R=function(a){return a?this.save():!0};k.save=function(){var a=new L(this);a.set(0,[this.f,this.i,this.g]);return a.data()};
b);c.preventDefault()}}(this,b),a.ontouchend=function(a,b){return function(){kb(a,b)}}(this,b),!0):t.prototype.U.call(this,a,b,c,d)}};k.Z=function(a,b,c,d){this.v=a;this.s=b;this.j=c;this.w=d;lb(this);mb(this)};k.W=function(a,b){if(!b)if(this.P&&nb(),!a)this.reset(!0);else if(!this.restore(a))return!1;return!0};k.R=function(a){return a?this.save():!0};k.save=function(){var a=new L(this);a.set(0,[this.f,this.i,this.g]);return a.data()};
k.restore=function(a){if(a=a[0])ob(this,this.f=a[0]),ib(this,this.i=a[1]),pb(this,a[2]);return!0};k.xb=function(){for(var a in this.a){var b=this.a[a];b[1]=b[0]}mb(this);return!0};function qb(a,b,c){if(a=a.m[b])a.style.backgroundColor=c?"#ff0000":"#000000"}function lb(a,b){for(var c in a.l)qb(a,c,null!=b?b:a.l[c])}function rb(a,b,c){if(a=a.m[b])a.style.marginTop=c?"0px":"20px",a.style.backgroundColor=c?"#00ff00":"#228B22"}function mb(a){for(var b in a.a)rb(a,b,a.a[b][1])}
k.jb=function(a,b,c){if(jb(this,b)){if(c){var d=this;setTimeout(function(){kb(d,b);a&&a()},+c);return!1}kb(this,b)}return!0};
k.Ab=function(a,b){if("SR"==a){a=b;b=8;var c;if(a){b||(b=10);var d,e,f=0<a.indexOf(",");f&&(a=a.replace(/,/g,""));d=e=a.charAt(0);"#"==e?(b=8,e=""):"$"==e&&(b=16,e="");d!=e?a=a.substr(1):(d=e=a.substr(0,2),"0b"==e&&f||"^B"==e?(b=2,e=""):"0o"==e||"^O"==e?(b=8,e=""):"^D"==e?(b=10,e=""):"0x"==e&&(b=16,e=""),d!=e&&(a=a.substr(2)));d=e=a.slice(-1);"Y"==e||"y"==e?(b=2,e=""):"."==e?(b=10,e=""):"H"==e||"h"==e?(b=16,e=""):"K"==e?e="000":"M"==e?e="000000":"G"==e&&(e="000000000");d!=e&&(a=a.slice(0,-1)+e);var g;
d=0;if(e=a.match(/(-?[0-9]+)B([0-9]*)/))a=e[1],d=35-((e[2]||35)&255);e=a;((f=b)&&10!=f?16==f?e.match(/^-?[0-9a-f]+$/i):8==f?e.match(/^-?[0-7]+$/):2==f&&e.match(/^-?[01]+$/):e.match(/^-?[0-9]+$/))&&!isNaN(g=parseInt(a,b))&&(d&&(0>g&&(g+=Math.pow(2,36)),g=0<d?g*Math.pow(2,d):Math.trunc(g/Math.pow(2,-d))),c=g)}return pb(this,c)}return(c=this.a[a])?(c[1]=+b?1:0,rb(this,a,c[1]),!0):!1};k.Bb=function(a){return jb(this,a)?(kb(this,a),!0):!1};
function jb(a,b){var c=a.a[b];return c?(rb(a,b,c[1]=1-c[1]),c[3]=!0,c[4]&&c[4].call(a,c[1],c[5]),b!=sb&&(a.K=b==tb,a.L=b==ub),!0):!1}function kb(a,b){var c=a.a[b];c&&(c[2]&&c[3]&&(rb(a,b,c[1]=c[0]),c[4]&&c[4].call(a,c[1],c[5])),c[3]=!1)}k.rb=function(a){a||this.j.h.B||(M(this.j,this.f),this.a[vb]&&this.a[vb][1]&&wb(this.j))};k.sb=function(){};k.mb=function(a){a||N(this.j)};
k.kb=function(a){if(!a&&!this.j.h.B)if(this.a[vb]&&this.a[vb][1])wb(this.j);else{a=this.w;var b;if(b=a)a.h.Aa&&(a.h.Oa=!0),b=!a.h.Aa;if(b)Xa(a,!0),a.f(0,null),Xa(a,!1);else try{var c=this.j.Ga(1);0<c&&(xb(this.j,c),yb(this.j,c,!0),zb(this.j,c))}catch(d){"number"!=typeof d&&(c=this.j,a=d.stack||d.message,c.h.error=!0,c.G(a))}this.stop();this.v&&Ab(this.v)}};k.lb=function(a){a&&!this.j.h.B&&(this.K&&Bb(this),a=ib(this,this.i=this.g),this.N==hb?Cb(this.s,this.f,a):this.j.c(this.f,a))};
d=0;10>=b&&(e=a.match(/(-?[0-9]+)B([0-9]*)/))&&(a=e[1],d=35-((e[2]||35)&255));e=a;((f=b)&&10!=f?16==f?e.match(/^-?[0-9a-f]+$/i):8==f?e.match(/^-?[0-7]+$/):2==f&&e.match(/^-?[01]+$/):e.match(/^-?[0-9]+$/))&&!isNaN(g=parseInt(a,b))&&(d&&(0>g&&(g+=Math.pow(2,36)),g=0<d?g*Math.pow(2,d):Math.trunc(g/Math.pow(2,-d))),c=g)}return pb(this,c)}return(c=this.a[a])?(c[1]=+b?1:0,rb(this,a,c[1]),!0):!1};k.Bb=function(a){return jb(this,a)?(kb(this,a),!0):!1};
function jb(a,b){var c=a.a[b];return c?(rb(a,b,c[1]=1-c[1]),c[3]=!0,c[4]&&c[4].call(a,c[1],c[5]),b!=sb&&(a.J=b==tb,a.L=b==ub),!0):!1}function kb(a,b){var c=a.a[b];c&&(c[2]&&c[3]&&(rb(a,b,c[1]=c[0]),c[4]&&c[4].call(a,c[1],c[5])),c[3]=!1)}k.rb=function(a){a||this.j.h.B||(M(this.j,this.f),this.a[vb]&&this.a[vb][1]&&wb(this.j))};k.sb=function(){};k.mb=function(a){a||N(this.j)};
k.kb=function(a){if(!a&&!this.j.h.B)if(this.a[vb]&&this.a[vb][1])wb(this.j);else{a=this.w;var b;if(b=a)a.h.Ba&&(a.h.Oa=!0),b=!a.h.Ba;if(b)Xa(a,!0),a.f(0,null),Xa(a,!1);else try{var c=this.j.Ha(1);0<c&&(xb(this.j,c),yb(this.j,c,!0),zb(this.j,c))}catch(d){"number"!=typeof d&&(c=this.j,a=d.stack||d.message,c.h.error=!0,c.G(a))}this.stop();this.v&&Ab(this.v)}};k.lb=function(a){a&&!this.j.h.B&&(this.J&&Bb(this),a=ib(this,this.i=this.g),this.N==hb?Cb(this.s,this.f,a):this.j.c(this.f,a))};
k.nb=function(a){if(!a&&!this.j.h.B){this.L&&Bb(this);if(this.N==hb){a=this.s;var b=this.f,c=a.a[(b&a.g)>>>a.f];a.i++;b=c.i(b&16383,b);a.i--;a=b}else a=this.j.b(this.f);ib(this,this.i=a)}};k.pb=function(a){a||this.j.h.B||ob(this,this.g)};k.ob=function(a){a?(this.o=!0,lb(this,!0)):(this.o=!1,lb(this),pb(this,0))};k.qb=function(a,b){this.g=a?this.g|1<<b:this.g&~(1<<b)};function Bb(a){var b=1,c=a.s.g;a.a[sb]&&a.a[sb][1]||(b=-b);ob(a,a.f&~c|a.f+b&c)}
function ob(a,b){a.f=b&a.s.g;if(a.D!==a.f){a.D=a.f;b=a.D;for(var c=0;22>c;c++){var d=a,e="A"+c,f=b&1<<c;d.l[e]=f;d.o||qb(d,e,f)}}}function ib(a,b){a.u=b%J;if(a.H!==a.u){a.H=a.u;b=a.H;for(var c=0;16>c;c++){var d=a,e="D"+c,f=b&1<<c;d.l[e]=f;d.o||qb(d,e,f)}}return a.u}function pb(a,b){a.g=b|0;for(b=0;22>b;b++)a.a["S"+b][1]=a.g&1<<b?1:0;mb(a);return!0}k.stop=function(){ob(this,this.j.f)};
function nb(){for(var a=A(document,z,"panel"),b=0;b<a.length;b++){var c=a[b],d=y(c),e=Pa(d.id);e||(e=new gb(d,!0));Qa(e,c)}}var hb=7,tb="DEP",vb="ENABLE",ub="EXAM",sb="STEP";Da(nb);function Db(a,b,c){t.call(this,"Bus",a);this.j=b;this.w=c;this.u=+a.busWidth||18;this.o=1<<this.u;this.g=this.o-1;this.f=Math.log2(16384);this.l=this.o/16384|0;this.i=0;this.a=[];a=new Eb(this);Fb(a);this.a=Array(this.l);for(b=0;b<this.l;b++)this.a[b]=a;B(this)}l(Db,t);k=Db.prototype;k.reset=function(){};
k.V=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};k.R=function(a){return a?this.save():!0};k.save=function(){var a=new L(this);a.set(0,Gb(this));return a.data()};k.restore=function(a){a:{a=a[0];var b;for(b=0;b<a.length-1;b+=2){var c=a[b],d=a[b+1];if(d&&4096>d.length){for(var e=0,f=Array(4096),g=0;g<d.length-1;)for(var h=d[g++],m=d[g++];h--;)f[e++]=m;d=f}e=this.a[c];if(!e||!e.restore(d)){q("Unable to restore memory block "+c);a=!1;break a}}a=!0}return a};
function Hb(a,b,c,d){for(var e=b,f=c,g=e>>>a.f;0<f&&g<a.a.length;){var h=a.a[g],m=16384*g,u=16384-(e-m);u>f&&(u=f);if(h&&h.size){if(h.type==d){if(e+f<=h.fa)return h.Ea+=h.fa-e,h.fa=e,!0;if(e>=h.fa+h.Ea){u=h.size-(e-m);u>f&&(u=f);h.Ea=e-h.fa+u;e=m+16384;f-=u;g++;continue}}return Ib(Jb,e,f)}e=new Eb(a,e,u,16384,d);Fb(e,h);a.a[g++]=e;e=m+16384;f-=u}return 0>=f?(a.status("Added "+(c>>10)+"Kb "+Kb[d]+" at "+ka(b)),!0):Ib(Lb,b,c)}
k.W=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};k.R=function(a){return a?this.save():!0};k.save=function(){var a=new L(this);a.set(0,Gb(this));return a.data()};k.restore=function(a){a:{a=a[0];var b;for(b=0;b<a.length-1;b+=2){var c=a[b],d=a[b+1];if(d&&4096>d.length){for(var e=0,f=Array(4096),g=0;g<d.length-1;)for(var h=d[g++],m=d[g++];h--;)f[e++]=m;d=f}e=this.a[c];if(!e||!e.restore(d)){q("Unable to restore memory block "+c);a=!1;break a}}a=!0}return a};
function Hb(a,b,c,d){for(var e=b,f=c,g=e>>>a.f;0<f&&g<a.a.length;){var h=a.a[g],m=16384*g,u=16384-(e-m);u>f&&(u=f);if(h&&h.size){if(h.type==d){if(e+f<=h.fa)return h.Fa+=h.fa-e,h.fa=e,!0;if(e>=h.fa+h.Fa){u=h.size-(e-m);u>f&&(u=f);h.Fa=e-h.fa+u;e=m+16384;f-=u;g++;continue}}return Ib(Jb,e,f)}e=new Eb(a,e,u,16384,d);Fb(e,h);a.a[g++]=e;e=m+16384;f-=u}return 0>=f?(a.status("Added "+(c>>10)+"Kb "+Kb[d]+" at "+ka(b)),!0):Ib(Lb,b,c)}
function Cb(a,b,c){var d=a.a[(b&a.g)>>>a.f];a.i++;d.j(c,b&16383,b);a.i--}function Gb(a){for(var b=0,c=[],d=0;d<a.l;d++){var e=a.a[d];if(e.Pa||e.hb){c[b++]=d;var f=b++;if(e=e.save()){for(var g=0,h=0,m=[];g<e.length;){for(var u=e[g],D=g+1;D<e.length&&e[D]===u;)D++;m[h++]=D-g;m[h++]=u;g=D}m.length<e.length&&(e=m)}c[f]=e}}return c}function Ib(a,b,c){q("Memory block error ("+a+": "+la(b)+","+la(c)+")");return!1}var Jb=1,Lb=2;function Mb(a){t.call(this,"Device",a)}l(Mb,t);k=Mb.prototype;
k.Z=function(a,b,c,d){this.s=b;this.v=a;this.j=c;this.w=d;B(this)};k.V=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};k.R=function(a){return a?this.save():!0};k.reset=function(){};k.save=function(){return(new L(this)).data()};k.restore=function(){return!0};Da(function(){for(var a=A(document,z,"device"),b=0;b<a.length;b++){var c,d=a[b];c=y(d);switch(c.type){case "default":c=new Mb(c),Qa(c,d)}}});
function Eb(a,b,c,d,e){this.m=a;this.id=Nb+=2;this.fa=b;this.Ea=c;this.size=d||0;this.type=e||Ob;this.s=e==Pb;this.b=this.i=this.Qa;this.c=this.j=this.Fa;this.f=this.g=0;Fb(this);this.Pa=this.hb=!1;if(this.size){a=this.a=Array(this.size);for(b=0;b<a.length;b++)a[b]=0;Qb(this,Rb)}else Qb(this)}k=Eb.prototype;k.save=function(){return this.a};k.restore=function(a){return a&&this.size==a.length?(this.a=a,this.Pa=!0):!1};function Qb(a,b){b||(b=Sb);Tb(a,b,void 0);Ub(a,b,void 0)}
function Tb(a,b,c){c&&a.f||(a.b=b[0]||a.Qa);if(c||void 0===c)a.i=b[0]||a.Qa}function Ub(a,b,c){c&&a.g||(a.c=!a.s&&b[1]||a.Fa);if(c||void 0===c)a.j=b[1]||a.Fa}function Fb(a,b){a.f=a.g=0;b&&((a.f=b.f)&&Tb(a,Vb,!1),(a.g=b.g)&&Ub(a,Vb,!1))}k.Qa=function(){var a=this.m;if(!a.i)throw N(a.j),-1;return-1};k.Fa=function(){var a=this.m;if(!a.i)throw N(a.j),-1;};k.vb=function(a){return this.a[a]};k.Eb=function(a,b){this.a[b]!=a&&(this.a[b]=a,this.Pa=!0)};k.tb=function(a,b){return this.i(a,b)};
k.Db=function(a,b,c){this.s?this.Fa():this.j(a,b,c)};var Ob=0,Pb=2,Kb=["NONE","RAM","ROM"],Nb=0,Sb=[],Rb=[Eb.prototype.vb,Eb.prototype.Eb],Vb=[Eb.prototype.tb,Eb.prototype.Db];
function Wb(a,b){t.call(this,"CPU",a);b=+a.cycles||b;var c=+a.multiplier||1;this.Ha=0;this.La=b;this.ja=c;this.Ja=Math.round(this.La/1E4)/100;this.ha=this.Ja*this.ja;this.Ka=this.pa=this.ba=this.za=0;this.h.B=this.h.Ra=!1;this.h.J=a.autoStart;"string"==typeof this.h.J&&(this.h.J="true"==this.h.J);this.h.Ba=!1;this.xa=this.ia=0;this.ya=+a.csStart;this.na=+a.csInterval;this.oa=+a.csStop;this.K=[];this.Xa=this.yb.bind(this);this.P=this.D=this.N=this.H=this.C=this.ma=this.L=this.ca=this.Ma=this.W=0;this.ta=
k.Z=function(a,b,c,d){this.s=b;this.v=a;this.j=c;this.w=d;B(this)};k.W=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};k.R=function(a){return a?this.save():!0};k.reset=function(){};k.save=function(){return(new L(this)).data()};k.restore=function(){return!0};Da(function(){for(var a=A(document,z,"device"),b=0;b<a.length;b++){var c,d=a[b];c=y(d);switch(c.type){case "default":c=new Mb(c),Qa(c,d)}}});
function Eb(a,b,c,d,e){this.m=a;this.id=Nb+=2;this.fa=b;this.Fa=c;this.size=d||0;this.type=e||Ob;this.s=e==Pb;this.b=this.i=this.Qa;this.c=this.j=this.Ga;this.f=this.g=0;Fb(this);this.Pa=this.hb=!1;if(this.size){a=this.a=Array(this.size);for(b=0;b<a.length;b++)a[b]=0;Qb(this,Rb)}else Qb(this)}k=Eb.prototype;k.save=function(){return this.a};k.restore=function(a){return a&&this.size==a.length?(this.a=a,this.Pa=!0):!1};function Qb(a,b){b||(b=Sb);Tb(a,b,void 0);Ub(a,b,void 0)}
function Tb(a,b,c){c&&a.f||(a.b=b[0]||a.Qa);if(c||void 0===c)a.i=b[0]||a.Qa}function Ub(a,b,c){c&&a.g||(a.c=!a.s&&b[1]||a.Ga);if(c||void 0===c)a.j=b[1]||a.Ga}function Fb(a,b){a.f=a.g=0;b&&((a.f=b.f)&&Tb(a,Vb,!1),(a.g=b.g)&&Ub(a,Vb,!1))}k.Qa=function(){var a=this.m;if(!a.i)throw N(a.j),-1;return-1};k.Ga=function(){var a=this.m;if(!a.i)throw N(a.j),-1;};k.vb=function(a){return this.a[a]};k.Eb=function(a,b){this.a[b]!=a&&(this.a[b]=a,this.Pa=!0)};k.tb=function(a,b){return this.i(a,b)};
k.Db=function(a,b,c){this.s?this.Ga():this.j(a,b,c)};var Ob=0,Pb=2,Kb=["NONE","RAM","ROM"],Nb=0,Sb=[],Rb=[Eb.prototype.vb,Eb.prototype.Eb],Vb=[Eb.prototype.tb,Eb.prototype.Db];
function Wb(a,b){t.call(this,"CPU",a);b=+a.cycles||b;var c=+a.multiplier||1;this.Ia=0;this.La=b;this.ja=c;this.Ja=Math.round(this.La/1E4)/100;this.ha=this.Ja*this.ja;this.Ka=this.pa=this.ba=this.Aa=0;this.h.B=this.h.Ra=!1;this.h.K=a.autoStart;"string"==typeof this.h.K&&(this.h.K="true"==this.h.K);this.h.Ca=!1;this.ya=this.ia=0;this.za=+a.csStart;this.na=+a.csInterval;this.oa=+a.csStop;this.L=[];this.Xa=this.yb.bind(this);this.V=this.D=this.P=this.H=this.C=this.ma=this.N=this.ca=this.Ma=this.X=0;this.ta=
null;B(this)}l(Wb,t);k=Wb.prototype;k.Z=function(a,b,c,d){this.v=a;this.s=b;this.w=d;this.ta=a.g;for(a=0;a<Xb.length;a++)(b=this.m[Xb[a]])&&this.v.U(null,Xb[a],b);B(this)};k.reset=function(){};k.save=function(){return null};k.restore=function(){return!1};
k.V=function(a,b){var c=Yb(this.v,"autoStart");null!=c?this.h.J="true"==c?!0:"false"==c?!1:!!c:null==this.h.J&&(this.h.J=void 0===this.m.run);if(!b){if(a){Zb(this);if(!this.restore(a))return!1;$b(this)}else this.reset();this.status("No debugger detected");this.h.J||this.M("CPU will not be auto-started "+(this.ta?"(click Run to start)":"(type 'go' to start)"))}return!0};k.R=function(a){return a?this.save():!0};k.J=function(){return this.h.B?!0:this.h.J?(wb(this),!0):!1};k.Za=function(){return 0};
function $b(a){void 0===a.ya&&(a.ya=0);void 0===a.na&&(a.na=-1);void 0===a.oa&&(a.oa=-1);a.h.Ba=0<=a.ya&&0<a.na;a.h.Ba&&(a.xa=0,a.ia=a.ya-a.P)}function zb(a,b){if(a.h.Ba){var c=!1;a.xa=a.xa+a.Za()|0;a.ia-=b;0>=a.ia&&(a.ia+=a.na,c=!0);0<=a.oa&&a.oa<=ac(a)&&(a.na=a.oa=-1,$b(a),N(a),c=!0);c&&a.M(ac(a)+" cycles: checksum="+la(a.xa))}}
k.U=function(a,b,c){var d=this;switch(b){case "power":case "reset":return this.m[b]=c,!0;case "run":return this.m[b]=c,c.onclick=function(){var a;if(a=d.v)if(a=d.v,a.h.F)a=!0;else{var b=null,c,h=w(a.id);for(c=0;c<h.length&&(b=h[c],b===a||b.h.ready);c++);if(c==h.length)for(c=0;c<h.length&&(b=h[c],b===a||b.h.F);c++);c==h.length&&(b=a);q("The "+b.type+" component ("+b.id+") is not "+(b.h.ready?"powered yet":"ready yet"+(b.Ca?" (waiting for notification)":""))+".");a=!1}a&&(d.h.B?N(d):wb(d))},!0;case "speed":return this.m[b]=
c,!0;case "setSpeed":return this.m[b]=c,c.onclick=function(){bc(d,d.ja<<1,!0)},c.textContent=this.ha.toFixed(2)+"Mhz",!0}return!1};function yb(a,b,c){a.P+=b;c&&(a.N=a.H=0)}function cc(a,b){var c=1;b&&1<a.ja&&a.W&&(c=a.W/a.Ja);a.Ka=Math.round(1E3/dc);a.pa=Math.floor(a.La/dc*c);b||(a.ba=a.pa);a.za=0}function ac(a){return a.P+a.D+a.N-a.H}function Zb(a){a.W=0;a.Ma=0;a.P=a.D=a.N=a.H=0;$b(a);bc(a,1)}
function bc(a,b,c){if(void 0!==b){.8>a.W/a.ha&&(b=1);a.ja=b;b=a.Ja*a.ja;if(a.ha!=b){a.ha=b;b=a.ha.toFixed(2)+"Mhz";var d=a.m.setSpeed;d&&(d.textContent=b);a.M("target speed: "+b)}c&&a.v&&(c=a.v,c.ga&&(d=b=0,window&&(b=window.scrollX,d=window.scrollY),c.ga.focus(),window&&window.scrollTo(b,d)))}yb(a,a.D);a.D=0;a.C=Na();a.L=0;cc(a)}function ec(a){for(var b=[],c=0;c<a.K.length;c++)b.push(a.K[c][0]);return b}
function xb(a,b){for(var c=a.K.length-1;0<=c;c--){var d=a.K[c];0>d[0]||(d[0]-=b,0>=d[0]&&(d[0]=-1,d[1]()))}}function fc(a,b){var c=a.N-=a.H;a.H=0;b&&(a.N=0);return c}
k.yb=function(){if(this.h.B){this.za>=this.La&&cc(this,!0);this.ca=0;this.ma=Na();if(this.L){var a=this.ma-this.L;a>this.Ka&&(this.C+=a,this.C>this.ma&&(this.C=this.ma))}try{do{for(var b,c=this.h.Ba?1:this.pa,d=this.K.length-1;0<=d;d--){var e=this.K[d];0>e[0]||c>e[0]&&(c=e[0])}b=c;try{this.Ga(b)}catch(f){if("number"!=typeof f)throw f;}b=fc(this,!0);this.ca+=b;this.D+=b;zb(this,b);xb(this,b);this.ba-=b;if(0>=this.ba){this.ba+=this.pa;++this.Ma>=gc&&(this.v&&Ab(this.v,void 0),this.Ma=0);break}}while(this.h.B)}catch(f){N(this);
this.v&&this.v.stop(Na(),ac(this));a=f.stack||f.message;this.h.error=!0;this.G(a);return}if(this.h.B){a=setTimeout;b=this.Xa;this.L=Na();c=this.Ka;this.ca&&(c=Math.round(c*this.ca/this.pa));c-=this.L-this.ma;if(d=this.L-this.C)this.W=Math.round(this.D/(10*d))/100,864E5<=d&&(this.P=0,bc(this));if(0>c||this.W<this.ha)-1E3>c&&(this.C-=c),c=0;this.za+=this.ca;this.L+=c;a(b,c)}}};
function wb(a){var b;a.h.error?(a.M(a.toString()+" error"),b=!0):b=!1;if(!b)if(a.h.B)a.M(a.toString()+" busy");else{bc(a);a.h.B=!0;a.h.Ra=!0;if(b=a.m.run)b.textContent="Halt";a.v&&a.v.start(a.C,ac(a));a.w||a.status("Started");setTimeout(a.Xa,0)}}k.Ga=function(){return 0};function N(a){var b=!1;if(a.h.B){fc(a);yb(a,a.D);a.D=0;a.h.B=!1;if(b=a.m.run)b.textContent="Run";a.v&&a.v.stop(Na(),ac(a));b=!0;a.w||a.status("Stopped")}a.h.complete=void 0;return b}var dc=30,gc=15,Xb=["power","reset"];
k.W=function(a,b){var c=Yb(this.v,"autoStart");null!=c?this.h.K="true"==c?!0:"false"==c?!1:!!c:null==this.h.K&&(this.h.K=void 0===this.m.run);if(!b){if(a){Zb(this);if(!this.restore(a))return!1;$b(this)}else this.reset();this.status("No debugger detected");this.h.K||this.M("CPU will not be auto-started "+(this.ta?"(click Run to start)":"(type 'go' to start)"))}return!0};k.R=function(a){return a?this.save():!0};k.K=function(){return this.h.B?!0:this.h.K?(wb(this),!0):!1};k.Za=function(){return 0};
function $b(a){void 0===a.za&&(a.za=0);void 0===a.na&&(a.na=-1);void 0===a.oa&&(a.oa=-1);a.h.Ca=0<=a.za&&0<a.na;a.h.Ca&&(a.ya=0,a.ia=a.za-a.V)}function zb(a,b){if(a.h.Ca){var c=!1;a.ya=a.ya+a.Za()|0;a.ia-=b;0>=a.ia&&(a.ia+=a.na,c=!0);0<=a.oa&&a.oa<=ac(a)&&(a.na=a.oa=-1,$b(a),N(a),c=!0);c&&a.M(ac(a)+" cycles: checksum="+la(a.ya))}}
k.U=function(a,b,c){var d=this;switch(b){case "power":case "reset":return this.m[b]=c,!0;case "run":return this.m[b]=c,c.onclick=function(){var a;if(a=d.v)if(a=d.v,a.h.F)a=!0;else{var b=null,c,h=w(a.id);for(c=0;c<h.length&&(b=h[c],b===a||b.h.ready);c++);if(c==h.length)for(c=0;c<h.length&&(b=h[c],b===a||b.h.F);c++);c==h.length&&(b=a);q("The "+b.type+" component ("+b.id+") is not "+(b.h.ready?"powered yet":"ready yet"+(b.Da?" (waiting for notification)":""))+".");a=!1}a&&(d.h.B?N(d):wb(d))},!0;case "speed":return this.m[b]=
c,!0;case "setSpeed":return this.m[b]=c,c.onclick=function(){bc(d,d.ja<<1,!0)},c.textContent=this.ha.toFixed(2)+"Mhz",!0}return!1};function yb(a,b,c){a.V+=b;c&&(a.P=a.H=0)}function cc(a,b){var c=1;b&&1<a.ja&&a.X&&(c=a.X/a.Ja);a.Ka=Math.round(1E3/dc);a.pa=Math.floor(a.La/dc*c);b||(a.ba=a.pa);a.Aa=0}function ac(a){return a.V+a.D+a.P-a.H}function Zb(a){a.X=0;a.Ma=0;a.V=a.D=a.P=a.H=0;$b(a);bc(a,1)}
function bc(a,b,c){if(void 0!==b){.8>a.X/a.ha&&(b=1);a.ja=b;b=a.Ja*a.ja;if(a.ha!=b){a.ha=b;b=a.ha.toFixed(2)+"Mhz";var d=a.m.setSpeed;d&&(d.textContent=b);a.M("target speed: "+b)}c&&a.v&&(c=a.v,c.ga&&(d=b=0,window&&(b=window.scrollX,d=window.scrollY),c.ga.focus(),window&&window.scrollTo(b,d)))}yb(a,a.D);a.D=0;a.C=Na();a.N=0;cc(a)}function ec(a){for(var b=[],c=0;c<a.L.length;c++)b.push(a.L[c][0]);return b}
function xb(a,b){for(var c=a.L.length-1;0<=c;c--){var d=a.L[c];0>d[0]||(d[0]-=b,0>=d[0]&&(d[0]=-1,d[1]()))}}function fc(a,b){var c=a.P-=a.H;a.H=0;b&&(a.P=0);return c}
k.yb=function(){if(this.h.B){this.Aa>=this.La&&cc(this,!0);this.ca=0;this.ma=Na();if(this.N){var a=this.ma-this.N;a>this.Ka&&(this.C+=a,this.C>this.ma&&(this.C=this.ma))}try{do{for(var b,c=this.h.Ca?1:this.pa,d=this.L.length-1;0<=d;d--){var e=this.L[d];0>e[0]||c>e[0]&&(c=e[0])}b=c;try{this.Ha(b)}catch(f){if("number"!=typeof f)throw f;}b=fc(this,!0);this.ca+=b;this.D+=b;zb(this,b);xb(this,b);this.ba-=b;if(0>=this.ba){this.ba+=this.pa;++this.Ma>=gc&&(this.v&&Ab(this.v,void 0),this.Ma=0);break}}while(this.h.B)}catch(f){N(this);
this.v&&this.v.stop(Na(),ac(this));a=f.stack||f.message;this.h.error=!0;this.G(a);return}if(this.h.B){a=setTimeout;b=this.Xa;this.N=Na();c=this.Ka;this.ca&&(c=Math.round(c*this.ca/this.pa));c-=this.N-this.ma;if(d=this.N-this.C)this.X=Math.round(this.D/(10*d))/100,864E5<=d&&(this.V=0,bc(this));if(0>c||this.X<this.ha)-1E3>c&&(this.C-=c),c=0;this.Aa+=this.ca;this.N+=c;a(b,c)}}};
function wb(a){var b;a.h.error?(a.M(a.toString()+" error"),b=!0):b=!1;if(!b)if(a.h.B)a.M(a.toString()+" busy");else{bc(a);a.h.B=!0;a.h.Ra=!0;if(b=a.m.run)b.textContent="Halt";a.v&&a.v.start(a.C,ac(a));a.w||a.status("Started");setTimeout(a.Xa,0)}}k.Ha=function(){return 0};function N(a){var b=!1;if(a.h.B){fc(a);yb(a,a.D);a.D=0;a.h.B=!1;if(b=a.m.run)b.textContent="Run";a.v&&a.v.stop(Na(),ac(a));b=!0;a.w||a.status("Stopped")}a.h.complete=void 0;return b}var dc=30,gc=15,Xb=["power","reset"];
function hc(a){var b=+a.model||1001;Wb.call(this,a,1E6);this.Wa=b;this.ua=+a.addrReset||0;this.gb=ic.bind(this);this.i=O.bind(this);this.la=null;this.Sa=[];this.h.complete=!1}l(hc,Wb);k=hc.prototype;
k.reset=function(){this.status("Model "+this.Wa);this.h.B&&N(this);this.qa=this.ra=this.a=this.u=0;this.f=this.Ia=this.ua;this.A=this.aa=-1;this.l=this.g=0;this.Na=[0,0];this.da=[0,0];this.X=[0,0];this.ea=[0,0];this.ka=this.f;this.o=0;this.b=this.ub;this.c=this.Fb;this.la=null;Zb(this);this.h.error=!1;Wb.prototype.reset.call(this)};k.Za=function(){return 0};
k.save=function(){var a=new L(this);a.set(0,[this.a,this.u,this.qa,this.ra,this.f,this.aa,this.A,this.g,this.o,this.Ia,this.ka,this.ua]);a.set(1,[]);a.set(2,[this.P,this.ja,this.h.J]);a.set(3,jc(this));a.set(4,ec(this));return a.data()};
k.restore=function(a){var b;b=a[0];fa();ca();fa();var c=b[Symbol.iterator];b=c?c.call(b):ga(b);this.a=b.next().value;this.u=b.next().value;this.qa=b.next().value;this.ra=b.next().value;this.f=b.next().value;this.aa=b.next().value;this.A=b.next().value;this.g=b.next().value;this.o=b.next().value;this.Ia=b.next().value;this.ka=b.next().value;this.ua=b.next().value;b=a[2];this.P=b[0];bc(this,b[1]);this.h.J=b[2];b=a[3];for(c=b.length-1;0<=c;c--){var d;a:{for(d=0;d<this.Sa.length;d++){var e=this.Sa[d];
if(e.Cb===b[c]){d=e;break a}}d=null}d&&(d.next=this.la,this.la=d)}a=a[4];for(b=0;b<this.K.length&&b<a.length;b++)this.K[b][0]=a[b];return!0};function M(a,b){a.u=0;a.aa=-1;a.f=b%$a}function jc(a){var b=[];for(a=a.la;a;)b.push(a.Cb),a=a.next;return b}k.ub=function(a){var b=this.s;a=this.ka=a;return b.a[(a&b.g)>>>b.f].b(a&16383,a)};k.Fb=function(a,b){var c=this.s;a=this.ka=a;c.a[(a&c.g)>>>c.f].c(b,a&16383,a);return b};
k.Ga=function(a){this.h.complete=!0;var b=a?this.h.Ra?0:1:-1;this.h.Ra=!1;this.N=this.H=a;this.o=this.o&-5|0;do{if(a=this.o)if(a=this.o&11)this.o&2?this.la||(this.o&=-3):this.o&1&&this.o++,a=!1;if(a){if(this.o&4&&this.w.i(this.f,b)){N(this);break}if(0>b)break}this.o&=15;this.u&4194304?this.u=this.qa=this.b(this.a):0<=this.aa?(this.u=this.ra=this.b(this.aa),this.aa=-1):(this.u=this.ra=this.b(this.Ia=this.f),this.f=(this.f+1)%$a);this.u&=8388607;this.a=this.u&262143;if(a=this.u>>18&15)this.a=this.a+
(this.qa=this.b(a))&Za;a=this.u&4194304?-1:this.ra/eb|0;0<=a&&this.gb(a);this.H--}while(0<this.H);return this.h.complete?this.N-this.H:!1===this.h.complete?-1:0};Da(function(){for(var a=A(document,z,"cpu"),b=0;b<a.length;b++){var c=a[b],d=y(c),d=new hc(d);Qa(d,c)}});function ic(a){kc[a>>4].call(this,a,a&15)}function P(a){this.i(a)}function lc(){var a=0,b=this.b(this.a),c=b/fb&63,d=b>>24&63,c=c-d;0>c&&(a++,c=36-d,0>c&&(c=64-d));b=c*fb+(d<<24)+(b&16777215);a&&(b=(b+a)%J);this.c(this.a,b)}
function mc(a,b){a=this.b(this.a);if(0>this.A)this.A=a,this.u=this.a|4194304;else{var c=this.A/fb&63,d=this.A>>24&63;a=32>=c+d?(a>>c&(1<<d)-1)>>>0:Math.trunc(a/Math.pow(2,c))%Math.pow(2,d);this.c(b,a);this.g&=-8193;this.A=-1}}function nc(a,b){a=this.b(this.a);if(0>this.A)this.A=a,this.u=this.a|4194304;else{var c=this.A/fb&63,d=this.A>>24&63;b=this.b(b)%Math.pow(2,d)*Math.pow(2,c)%J;a=a-a%Math.pow(2,c+d)+b+a%Math.pow(2,c);this.c(this.a,a);this.g&=-8193;this.A=-1}}
function oc(a,b){this.c(b,this.b(this.a))}function pc(a,b){this.c(b,this.a)}function qc(a,b){this.c(this.a,this.b(b))}function rc(a,b){this.c(b,0)}function sc(a,b){this.c(b,I-this.b(b))}function tc(a,b){this.c(b,I)}function uc(a,b){var c=this.b(this.a),d=this.b(b);this.c(b,vc(a,d,c)+(c-(c&C)))}function wc(a,b){var c=this.b(b);this.c(b,vc(a,c,0))}function xc(a,b){b=this.b(b);var c=this.b(this.a);this.c(this.a,vc(a,c,b)+(b-(b&C)))}
function yc(a,b){var c=this.b(this.a),d=c;if(a&=384)switch(d-=d&C,a){case 256:d+=C;break;case 384:d+=c>F?C:0}c=d;this.c(this.a,c);b&&this.c(b,c)}function zc(a,b){var c=(this.b(this.a)&C)*E,d=this.b(b);this.c(b,vc(a,d,c)+c)}function Ac(a,b){var c=this.a*E,d=this.b(b);this.c(b,vc(a,d,c)+c)}function Bc(a,b){b=(this.b(b)&C)*E;var c=this.b(this.a);this.c(this.a,vc(a,c,b)+b)}function Cc(a,b){var c=this.b(this.a),d=(c&C)*E,c=vc(a,c,d)+d;this.c(this.a,c);b&&this.c(b,c)}
function Dc(a,b){var c=this.b(this.a)&C,d=this.b(b);this.c(b,Ec(a,d,c)+c)}function Fc(a,b){var c=this.b(b);this.c(b,Ec(a,c,this.a)+this.a)}function Gc(a,b){b=this.b(b)&C;var c=this.b(this.a);this.c(this.a,Ec(a,c,b)+b)}function Hc(a,b){var c=this.b(this.a),d=c;if(a&=384)switch(d&=C,a){case 256:d+=C*E;break;case 384:d+=c>ab?C*E:0}c=d;this.c(this.a,c);b&&this.c(b,c)}function Ic(a,b){var c=this.b(this.a)/E|0,d=this.b(b);this.c(b,Ec(a,d,c)+c)}function Jc(a,b){var c=this.b(b);this.c(b,Ec(a,c,0))}
function Kc(a,b){b=this.b(b)/E|0;var c=this.b(this.a);this.c(this.a,Ec(a,c,b)+b)}function Lc(a,b){var c=this.b(this.a),d=c/E|0,c=Ec(a,c,d)+d;this.c(this.a,c);b&&this.c(b,c)}function Q(a){Mc[a&7].call(this,a,a>>3&127)}function Nc(){}function Oc(){}function O(a){this.M("undefined opcode: "+ka(a));this.f=(this.f+-1)%$a;N(this)}function Pc(a){a>F&&(a!=G?a=db-a:this.g|=163840);return a}function R(a,b){var c=(a+b)%J;Qc.call(this,a,b,c);return c}
function S(a,b,c){var d=!1,e=!1;if(void 0===c){if(!a)return this.g|=131104,-1;c=b>F?I:0}else if((c<G?c:db-c-(b?1:0))>=(a<G?a:db-a))return this.g|=131104,-1;var f=c-c%G;b=b%G+(c&1)*G;c=this.l=f+Math.trunc(c/2);a>F&&(a=J-a,d=!d);c>F&&(b?(c=I-c,b=J-b):c&&(c=J-c),e=!0,d=!d);f=this.Na;f[0]=0;f[1]=0;f=this.da;f[0]=1;f[1]=0;f=this.X;f[0]=a;f[1]=0;a=this.ea;a[0]=b;for(a[1]=c;0<Rc(this.ea,this.X);)Sc(this.X,this.X),Sc(this.da,this.da);do{if(0<=Rc(this.ea,this.X)&&(c=this.ea,a=this.X,c[0]-=a[0],c[1]-=a[1],
0>c[0]&&(c[0]+=J,c[1]--),Sc(this.Na,this.da),Tc(this.ea)))break;Uc(this.X);Uc(this.da)}while(!Tc(this.da));b=this.Na[0];this.l=this.ea[0];d&&b&&(b=J-b);e&&this.l&&(this.l=J-this.l);return b}
k.reset=function(){this.status("Model "+this.Wa);this.h.B&&N(this);this.qa=this.ra=this.a=this.u=0;this.f=this.xa=this.ua;this.A=this.J=-1;this.l=this.g=0;this.Na=[0,0];this.da=[0,0];this.aa=[0,0];this.ea=[0,0];this.ka=this.f;this.o=0;this.b=this.ub;this.c=this.Fb;this.la=null;Zb(this);this.h.error=!1;Wb.prototype.reset.call(this)};k.Za=function(){return 0};
k.save=function(){var a=new L(this);a.set(0,[this.a,this.u,this.qa,this.ra,this.f,this.J,this.A,this.g,this.o,this.xa,this.ka,this.ua]);a.set(1,[]);a.set(2,[this.V,this.ja,this.h.K]);a.set(3,jc(this));a.set(4,ec(this));return a.data()};
k.restore=function(a){var b;b=a[0];fa();ca();fa();var c=b[Symbol.iterator];b=c?c.call(b):ga(b);this.a=b.next().value;this.u=b.next().value;this.qa=b.next().value;this.ra=b.next().value;this.f=b.next().value;this.J=b.next().value;this.A=b.next().value;this.g=b.next().value;this.o=b.next().value;this.xa=b.next().value;this.ka=b.next().value;this.ua=b.next().value;b=a[2];this.V=b[0];bc(this,b[1]);this.h.K=b[2];b=a[3];for(c=b.length-1;0<=c;c--){var d;a:{for(d=0;d<this.Sa.length;d++){var e=this.Sa[d];
if(e.Cb===b[c]){d=e;break a}}d=null}d&&(d.next=this.la,this.la=d)}a=a[4];for(b=0;b<this.L.length&&b<a.length;b++)this.L[b][0]=a[b];return!0};function M(a,b){a.u=0;a.J=-1;a.f=b%$a}function jc(a){var b=[];for(a=a.la;a;)b.push(a.Cb),a=a.next;return b}k.ub=function(a){var b=this.s;a=this.ka=a;return b.a[(a&b.g)>>>b.f].b(a&16383,a)};k.Fb=function(a,b){var c=this.s;a=this.ka=a;c.a[(a&c.g)>>>c.f].c(b,a&16383,a);return b};
k.Ha=function(a){this.h.complete=!0;var b=a?this.h.Ra?0:1:-1;this.h.Ra=!1;this.P=this.H=a;this.o=this.o&-5|0;do{if(a=this.o)if(a=this.o&11)this.o&2?this.la||(this.o&=-3):this.o&1&&this.o++,a=!1;if(a){if(this.o&4&&this.w.i(0<=this.J?this.J:this.u&4194304?this.xa:this.f,b)){N(this);break}if(0>b)break}this.o&=15;this.u&4194304?this.u=this.qa=this.b(this.a):0<=this.J?(this.u=this.ra=this.b(this.J),this.J=-1):(this.u=this.ra=this.b(this.xa=this.f),this.f=(this.f+1)%$a);this.u&=8388607;this.a=this.u&262143;
if(a=this.u>>18&15)this.a=this.a+(this.qa=this.b(a))&Za;a=this.u&4194304?-1:this.ra/eb|0;0<=a&&this.gb(a);this.H--}while(0<this.H);return this.h.complete?this.P-this.H:!1===this.h.complete?-1:0};Da(function(){for(var a=A(document,z,"cpu"),b=0;b<a.length;b++){var c=a[b],d=y(c),d=new hc(d);Qa(d,c)}});function ic(a){kc[a>>4].call(this,a,a&15)}function P(a){this.i(a)}
function lc(){var a=0,b=this.b(this.a),c=b/fb&63,d=b>>24&63,c=c-d;0>c&&(a++,c=36-d,0>c&&(c=100-d));b=c*fb+(d<<24)+(b&16777215);a&&(b=(b+a)%J);this.c(this.a,b)}function mc(a,b){a=this.b(this.a);if(0>this.A)this.A=a,this.u=this.a|4194304;else{var c=this.A/fb&63,d=this.A>>24&63;a=32>c+d?(a>>c&(1<<d)-1)>>>0:Math.trunc(a/Math.pow(2,c))%Math.pow(2,d);this.c(b,a);this.g&=-8193;this.A=-1}}
function nc(a,b){a=this.b(this.a);if(0>this.A)this.A=a,this.u=this.a|4194304;else{var c=this.A/fb&63,d=this.A>>24&63;b=this.b(b)%Math.pow(2,d)*Math.pow(2,c)%J;a=a-a%Math.pow(2,c+d)+b+a%Math.pow(2,c);this.c(this.a,a);this.g&=-8193;this.A=-1}}function oc(a,b){this.c(b,this.b(this.a))}function pc(a,b){this.c(b,this.a)}function qc(a,b){this.c(this.a,this.b(b))}function rc(a,b){this.c(b,0)}function sc(a,b){this.c(b,I-this.b(b))}function tc(a,b){this.c(b,I)}
function uc(a,b){var c=this.b(this.a),d=this.b(b);this.c(b,vc(a,d,c)+(c-(c&C)))}function wc(a,b){var c=this.b(b);this.c(b,vc(a,c,0))}function xc(a,b){b=this.b(b);var c=this.b(this.a);this.c(this.a,vc(a,c,b)+(b-(b&C)))}function yc(a,b){var c=this.b(this.a),d=c;if(a&=384)switch(d-=d&C,a){case 256:d+=C;break;case 384:d+=c>F?C:0}c=d;this.c(this.a,c);b&&this.c(b,c)}function zc(a,b){var c=(this.b(this.a)&C)*E,d=this.b(b);this.c(b,vc(a,d,c)+c)}
function Ac(a,b){var c=this.a*E,d=this.b(b);this.c(b,vc(a,d,c)+c)}function Bc(a,b){b=(this.b(b)&C)*E;var c=this.b(this.a);this.c(this.a,vc(a,c,b)+b)}function Cc(a,b){var c=this.b(this.a),d=(c&C)*E,c=vc(a,c,d)+d;this.c(this.a,c);b&&this.c(b,c)}function Dc(a,b){var c=this.b(this.a)&C,d=this.b(b);this.c(b,Ec(a,d,c)+c)}function Fc(a,b){var c=this.b(b);this.c(b,Ec(a,c,this.a)+this.a)}function Gc(a,b){b=this.b(b)&C;var c=this.b(this.a);this.c(this.a,Ec(a,c,b)+b)}
function Hc(a,b){var c=this.b(this.a),d=c;if(a&=384)switch(d&=C,a){case 256:d+=C*E;break;case 384:d+=c>ab?C*E:0}c=d;this.c(this.a,c);b&&this.c(b,c)}function Ic(a,b){var c=this.b(this.a)/E|0,d=this.b(b);this.c(b,Ec(a,d,c)+c)}function Jc(a,b){var c=this.b(b);this.c(b,Ec(a,c,0))}function Kc(a,b){b=this.b(b)/E|0;var c=this.b(this.a);this.c(this.a,Ec(a,c,b)+b)}function Lc(a,b){var c=this.b(this.a),d=c/E|0,c=Ec(a,c,d)+d;this.c(this.a,c);b&&this.c(b,c)}function Q(a){Mc[a&7].call(this,a,a>>3&127)}
function Nc(){}function Oc(){}function O(a){this.M("undefined opcode: "+ka(a));this.f=(this.f+-1)%$a;N(this)}function Pc(a){a>F&&(a!=G?a=db-a:this.g|=163840);return a}function R(a,b){var c=(a+b)%J;Qc.call(this,a,b,c);return c}
function S(a,b,c){var d=!1,e=!1;if(void 0===c){if(!a)return this.g|=131104,-1;c=b>F?I:0}else if((c<G?c:db-c-(b?1:0))>=(a<G?a:db-a))return this.g|=131104,-1;var f=c-c%G;b=b%G+(c&1)*G;c=this.l=f+Math.trunc(c/2);a>F&&(a=J-a,d=!d);c>F&&(b?(c=I-c,b=J-b):c&&(c=J-c),e=!0,d=!d);f=this.Na;f[0]=0;f[1]=0;f=this.da;f[0]=1;f[1]=0;f=this.aa;f[0]=a;f[1]=0;a=this.ea;a[0]=b;for(a[1]=c;0<Rc(this.ea,this.aa);)Sc(this.aa,this.aa),Sc(this.da,this.da);do{if(0<=Rc(this.ea,this.aa)&&(c=this.ea,a=this.aa,c[0]-=a[0],c[1]-=
a[1],0>c[0]&&(c[0]+=J,c[1]--),Sc(this.Na,this.da),Tc(this.ea)))break;Uc(this.aa);Uc(this.da)}while(!Tc(this.da));b=this.Na[0];this.l=this.ea[0];d&&b&&(b=J-b);e&&this.l&&(this.l=J-this.l);return b}
function Vc(a,b,c,d){var e=a,f=b;b=!1;var g;e>F&&(d||1001!=this.Wa||e!=G)&&(e=J-e,b=!b);f>F&&(f=J-f,b=!b);if(e<E&&f<E)a=e*f,g=0;else{a=e&C;e=Math.trunc(e/E);g=f&C;var f=Math.trunc(f/E),h=a*g,m=e*g+Math.trunc(h/E);g=Math.trunc(m/E);m=(m&C)+a*f;a=(m*E+(h&C))%J;g+=Math.trunc(m/E)+e*f}b&&(a?(g=I-g,a=J-a):g&&(g=J-g));b=a;a=g;e=a-a%G;a=2*a%J+Math.trunc(b/G);b=e+b%G;a-a%G!=e&&(b=a);d?g=b:(b==G&&a==G&&(this.g|=131072),this.l=b,g=a);c&&(a=this.l,!d&&(g||a>F)&&(g!=I||a<=F)&&(this.g|=131072),g=a);return g}
function Wc(a){a?a==G?this.g|=163840:a=db-a:this.g|=98304;return a}function Xc(a,b){var c=a-b;0>c&&(c+=J);Qc.call(this,c,b,a);return c}function Qc(a,b,c){a=Math.trunc(a/cb);b=Math.trunc(b/cb);c=Math.trunc(c/cb);var d=a^(a^b)&(b^c);this.g=this.g|(d&2?65536:0)|(d&1?32768:0)|((a^c)&(b^c)&2?131072:0)}function T(a,b){return((a/K|0)&(b/K|0))*K+((a&b)>>>0)}function U(a,b){return T(a,(~(b/K|0)&15)*K+(~b>>>0))}function V(a,b){return(a<G?a:a-J)-(b<G?b:b-J)}
function Yc(a,b){return(~((a/K|0)^(b/K|0))&15)*K+(~(a^b)>>>0)}function W(a,b){return(a/K|0|b/K|0)*K+((a|b)>>>0)}function X(a){return a<G?a:a-J}function Y(a,b){return((a/K|0)^(b/K|0))*K+((a^b)>>>0)}function Z(a){return(a/E|0)+(a&C)*E}function Ec(a,b,c){switch(a&384){case 0:b-=b&C;break;case 128:b=0;break;case 256:b=C*E;break;case 384:b=c>ab?C*E:0}return b}function vc(a,b,c){switch(a&384){case 0:b&=C;break;case 128:b=0;break;case 256:b=C;break;case 384:b=c>F?C:0}return b}
@ -119,7 +120,7 @@ b){if(a=(this.a&bb)<<14>>23|this.a&255){var c,d=this.b(b),e=this.b(b+1&15);if(0<
F?I:0:Math.trunc(d%G/Math.pow(2,-a-35)),d<=F?d=0:(d=I,e+=G)):(c=d>F?J-Math.pow(2,36+a):0,e=Math.trunc(e%G/Math.pow(2,-a))+d%G*Math.pow(2,35+a)%G,d=Math.trunc(d/Math.pow(2,-a))+c,d>F&&(e+=G));this.c(b,d);this.c(b+1&15,e)}},function(a,b){if(a=((this.a&bb)<<14>>23|this.a&255)%72){var c=this.b(b),d=this.b(b+1&15),e=c;0>a&&(a=72+a);36>a?(c=c*Math.pow(2,a)%J+Math.trunc(d/Math.pow(2,36-a)),d=d*Math.pow(2,a)%J+Math.trunc(e/Math.pow(2,36-a))):(c=d*Math.pow(2,a-36)%J+Math.trunc(c/Math.pow(2,72-a)),d=e*Math.pow(2,
a-36)%J+Math.trunc(d/Math.pow(2,72-a)));this.c(b,c);this.c(b+1&15,d)}},function(a,b){if(a=(this.a&bb)<<14>>23|this.a&255){var c=this.b(b),d=this.b(b+1&15);0<a?36<=a?(c=72<=a?0:d*Math.pow(2,a-36)%J,d=0):(c=c*Math.pow(2,a)%J+Math.trunc(d/Math.pow(2,36-a)),d=d*Math.pow(2,a)%J):-36>=a?(d=-72>=a?0:Math.trunc(c/Math.pow(2,-a-36)),c=0):(d=Math.trunc(d/Math.pow(2,-a))+c*Math.pow(2,36+a)%J,c=Math.trunc(c/Math.pow(2,-a)));this.c(b,c);this.c(b+1&15,d)}},O,function(a,b){a=this.b(b);this.c(b,this.b(this.a));this.c(this.a,
a)},function(a,b){a=!1;for(var c=this.b(b),d=c/E|0,c=c&C;!a;)this.c(c,this.b(d)),c==this.a&&(a=!0),d=d+1&C,c=c+1&C,this.h.B||(this.c(b,d*E+c),a||(this.f=(this.f+-1)%$a),a=!0)},function(a,b){a=(this.b(b)+262145)%J;this.c(b,a);a<G&&M(this,this.a)},function(a,b){a=(this.b(b)+262145)%J;this.c(b,a);a>=G&&M(this,this.a)},function(a,b){b&1&&(this.g|=4096);if(b&2){var c=this.qa/E|0;this.g=this.g&-254049|c&254048;this.g|=c&4096;c&2048?this.g&4096||(this.g|=2048):this.g&=-2049}b&4&&N(this);b&8&&this.i(a);M(this,
this.a)},function(a,b){a=b<<14;this.g&a&&(this.g&=~a,M(this,this.a))},function(){this.aa=this.a},O,function(a,b){a=(this.b(b)+262145)%J;this.c(b,a);a/E|0||(this.g|=262144);this.c(a&Za,(this.g&C)*E+this.f);this.g&=-8193;M(this,this.a)},function(a,b){a=this.b(b);a+=262145;this.c(a&Za,this.b(this.a));a>=J&&(a-=J);a/E|0||(this.g|=262144);this.c(b,a)},function(a,b){a=this.b(b);var c=this.b(a&Za);this.c(this.a,c);this.a==b&&(a=c);a-=262145;0>a&&(a+=J);(a/E|0)==C&&(this.g|=262144);this.c(b,a)},function(a,
this.a)},function(a,b){a=b<<14;this.g&a&&(this.g&=~a,M(this,this.a))},function(){this.J=this.a},O,function(a,b){a=(this.b(b)+262145)%J;this.c(b,a);a/E|0||(this.g|=262144);this.c(a&Za,(this.g&C)*E+this.f);this.g&=-8193;M(this,this.a)},function(a,b){a=this.b(b);a+=262145;this.c(a&Za,this.b(this.a));a>=J&&(a-=J);a/E|0||(this.g|=262144);this.c(b,a)},function(a,b){a=this.b(b);var c=this.b(a&Za);this.c(this.a,c);this.a==b&&(a=c);a-=262145;0>a&&(a+=J);(a/E|0)==C&&(this.g|=262144);this.c(b,a)},function(a,
b){a=this.b(b);var c=this.b(a&Za);a-=262145;0>a&&(a+=J);(a/E|0)==C&&(this.g|=262144);this.c(b,a);M(this,c&Za)},function(){this.c(this.a,(this.g&C)*E+this.f);this.g&=-8193;M(this,this.a+1)},function(a,b){this.c(b,(this.g&C)*E+this.f);this.g&=-8193;M(this,this.a)},function(a,b){this.c(this.a,this.b(b));this.c(b,this.a*E+this.f);M(this,this.a+1)},function(a,b){a=this.b(b);this.c(b,this.b(a/E|0));M(this,this.a)},function(a,b){this.c(b,R.call(this,this.b(b),this.b(this.a)))},function(a,b){this.c(b,R.call(this,
this.b(b),this.a))},function(a,b){this.c(this.a,R.call(this,this.b(b),this.b(this.a)))},function(a,b){this.c(this.a,this.c(b,R.call(this,this.b(b),this.b(this.a))))},function(a,b){this.c(b,Xc.call(this,this.b(b),this.b(this.a)))},function(a,b){this.c(b,Xc.call(this,this.b(b),this.a))},function(a,b){this.c(this.a,Xc.call(this,this.b(b),this.b(this.a)))},function(a,b){this.c(this.a,this.c(b,Xc.call(this,this.b(b),this.b(this.a))))},Nc,function(a,b){0>V(this.b(b),this.a)&&M(this,this.f+1)},function(a,
b){V(this.b(b),this.a)||M(this,this.f+1)},function(a,b){0>=V(this.b(b),this.a)&&M(this,this.f+1)},function(){M(this,this.f+1)},function(a,b){0<=V(this.b(b),this.a)&&M(this,this.f+1)},function(a,b){V(this.b(b),this.a)&&M(this,this.f+1)},function(a,b){0<V(this.b(b),this.a)&&M(this,this.f+1)},Oc,function(a,b){0>V(this.b(b),this.b(this.a))&&M(this,this.f+1)},function(a,b){V(this.b(b),this.b(this.a))||M(this,this.f+1)},function(a,b){0>=V(this.b(b),this.b(this.a))&&M(this,this.f+1)},function(){M(this,this.f+
@ -147,35 +148,35 @@ b){this.c(b,W(this.b(b),this.b(this.a)))},function(a,b){this.c(b,W(this.b(b),Z(t
W(a,c))},function(a,b){a=this.b(b);var c=Z(this.b(this.a));T(a,c)&&M(this,this.f+1);this.c(b,W(a,c))},Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q],Mc=[function(a){this.i(a)},function(a){this.i(a)},function(a){this.i(a)},function(a){this.i(a)},function(a,b){switch(b){case 0:a=this.b(this.a);a&8&&(this.g&=-131073);a&131072&&(this.g&=-262145);break;default:this.i(a)}},function(a,b){switch(b){case 0:a=0;this.g&131072&&
(a|=8);this.g&262144&&(a|=65536);this.c(this.a,a);break;default:this.i(a)}},function(a){this.i(a)},function(a){this.i(a)}];
function Zc(a){t.call(this,"ROM",a);this.O=this.a=null;this.l=+a.addr;this.g=+a.size;this.f=a.alias;"string"==typeof this.f&&(this.f=eval(this.f));this.i=a.file;this.o=ma(this.i);if(this.i){a=this.i;var b=na(this.o);"json"!=b&&"hex"!=b&&(a=pa()+"/api/v1/dump?file="+this.i+"&format=bytes&decimal=true");var c=this;p(a,null,!0,function(a,b,f){f?(c.G("Unable to load ROM resource (error "+f+": "+a+")"),c.i=null):(La(c.wa,a,b),(a=ua(a,b))?(c.a=a.I,c.O=a.O):c.i=null);$c(c)})}}l(Zc,t);
Zc.prototype.Z=function(a,b,c,d){this.s=b;this.j=c;this.w=d;$c(this)};Zc.prototype.V=function(){this.O&&(this.w&&this.w.a(this.id,this.l,this.g,this.O),delete this.O);return!0};Zc.prototype.R=function(){return!0};
Zc.prototype.Z=function(a,b,c,d){this.s=b;this.j=c;this.w=d;$c(this)};Zc.prototype.W=function(){this.O&&(this.w&&this.w.a(this.id,this.l,this.g,this.O),delete this.O);return!0};Zc.prototype.R=function(){return!0};
function $c(a){if(!Wa(a)){if(a.i){if(!a.a||!a.s)return;a.g||(a.g=a.a.length);if(a.a.length!=a.g){var b="ROM size ("+la(a.a.length,8,!0)+") does not match specified size ("+la(a.g,8,!0)+")";a.h.error=!0;a.G(b)}else{b=a.l;if(Hb(a.s,b,a.g,Pb)){var c;for(c=0;c<a.a.length;c++)Cb(a.s,b+c,a.a[c]);b=!0}else b=!1;if(b){b=[];"number"==typeof a.f?b.push(a.f):null!=a.f&&a.f.length&&(b=a.f);for(c=0;c<b.length;c++){for(var d=a,e=b[c],f=d.s,g=d.g,h=[],m=d.l>>>f.f;0<g&&m<f.a.length;)h.push(f.a[m++]),g-=16384;f=d.s;
d=d.g;g=0;for(e>>>=f.f;0<d&&e<f.a.length;){m=h[g++];if(!m)break;f.a[e++]=m;d-=16384}}delete a.a}}}B(a)}}Da(function(){for(var a=A(document,z,"rom"),b=0;b<a.length;b++){var c=a[b],d=y(c),d=new Zc(d);Qa(d,c)}});
function ad(a){t.call(this,"RAM",a);this.O=this.Y=null;this.f=+a.addr;this.g=+a.size;this.T=a.load;this.S=a.exec;null!=this.T&&(this.T=+this.T);null!=this.S&&(this.S=+this.S);this.i=this.o=!1;this.a=a.file;this.l=ma(this.a);if(this.a){a=this.a;var b=na(this.l);"json"!=b&&"hex"!=b&&(a=pa()+"/api/v1/dump?file="+this.a+"&format=bytes&decimal=true");var c=this;p(a,null,!0,function(a,b,f){f?(c.G("Unable to load RAM resource (error "+f+": "+a+")"),c.a=null):(La(c.wa,a,b),(a=ua(a,b))?(c.Y=a.Y,c.O=a.O,null==
c.T&&(c.T=a.T),null==c.S&&(c.S=a.S)):c.a=null);bd(c)})}}l(ad,t);ad.prototype.Z=function(a,b,c,d){this.s=b;this.j=c;this.w=d;bd(this)};ad.prototype.V=function(a,b){this.O&&(this.w&&this.w.a(this.id,this.f,this.g,this.O),delete this.O);b||this.reset();return!0};ad.prototype.R=function(){return!0};
c.T&&(c.T=a.T),null==c.S&&(c.S=a.S)):c.a=null);bd(c)})}}l(ad,t);ad.prototype.Z=function(a,b,c,d){this.s=b;this.j=c;this.w=d;bd(this)};ad.prototype.W=function(a,b){this.O&&(this.w&&this.w.a(this.id,this.f,this.g,this.O),delete this.O);b||this.reset();return!0};ad.prototype.R=function(){return!0};
function bd(a){if(a.s&&(!a.i&&a.g&&(Hb(a.s,a.f,a.g,1)?a.i=!0:a.g=0),!Wa(a))){if(!a.i)q("No RAM allocated");else if(a.a){if(!a.Y)return;cd(a,a.Y,a.T,a.S,a.f)?a.status('Loaded image "'+a.l+'"'):a.G('Error loading image "'+a.l+'"')}a.o=!0;B(a)}}
ad.prototype.reset=function(){if(this.i&&!this.o){for(var a=this.s,b=this.f,c=this.g,d=b&16383,b=b>>>a.f;0<c&&b<a.a.length;){var e=a.a[b],f=c,g=0,g=void 0===g?0:g,d=d||0;void 0===f&&(f=e.size);0>g&&g>=-G&&(g+=J);for(var g=Math.trunc(Math.abs(g))%J,h=d;f--&&h<e.size;h++)e.j(g,d,e.fa+d);c-=16384;b++;d=0}this.Y&&cd(this,this.Y,this.T,this.S,this.f,!this.w)}this.o=!1};
function cd(a,b,c,d,e,f){var g=!1;null==c&&(c=e);if(null!=c){for(g=0;g<b.length;g++)Cb(a.s,c+g,b[g]);g=!0}g&&(null==d&&(N(a.j),f=!1),null!=d&&(a=a.j,a.ua=d,M(a,d),f?a.h.F?a.h.B||wb(a):a.h.J=!0:a.w&&a.h.F?N(a)||a.v.h.reset||(a.w.g(),Ab(a.v,-1)):!1===f&&N(a),!a.h.B&&a.ta&&a.ta.stop()));return g}Da(function(){for(var a=A(document,z,"ram"),b=0;b<a.length;b++){var c=a[b],d=y(c),d=new ad(d);Qa(d,c)}});
function dd(a){t.call(this,"SerialPort",a);this.i=a.upperCase;"string"==typeof this.i&&(this.i="true"==this.i);this.g=!0;this.f=[];var b=a.binding;if("console"!=b){var c;a=ed;b&&(void 0===c&&(c="Panel"),(c=x(c,this.id))&&(b=c.m[b])&&this.U(null,a,b))}this.a=this.l=null;this.exports={connect:this.$a,receiveData:this.Da,receiveStatus:this.wb,setConnection:this.zb}}l(dd,t);k=dd.prototype;
k.U=function(a,b,c){var d=this;switch(b){case ed:return this.m[b]=c,c.onkeydown=function(a){a=a||window.event;var b=0,c=a.keyCode;8==c?b=a.altKey?n.Ua:n.eb:46==c?b=n.Ua:a.ctrlKey&&c>=n.Ta&&c<=n.fb&&(b=c-(n.Ta-n.ab));b&&(a.preventDefault&&a.preventDefault(),d.Da(b));return!0},c.onkeypress=function(a){a=a||window.event;if(!a.metaKey){var b=a.which||a.keyCode;a.altKey&&b==n.cb&&(b=n.bb);d.Da(b);a.preventDefault&&a.preventDefault()}return!0},c.onpaste=function(a){a.stopPropagation&&a.stopPropagation();
a.preventDefault&&a.preventDefault();(a=a.clipboardData||window.clipboardData)&&d.Da(a.getData("Text"))},c.removeAttribute("readonly"),!0}return!1};k.Z=function(a,b,c,d){this.v=a;this.s=b;this.j=c;this.w=d;B(this)};
k.$a=function(a){if(!this.a){var b=Yb(this.v,"connection");if(b){var c=b.split("->");if(2==c.length){var d=sa(c[0]);if(d!=this.va)return;c=sa(c[1]);if(this.a=Pa(c)){var e=this.a.exports;if(e){var f=e.connect;f&&f.call(this.a,this.g);if(this.l=e.receiveData){this.g=a;this.status("Connected "+this.wa+"."+d+" to "+c);return}}}}this.status("Unable to establish connection: "+b)}}};k.V=function(a,b){if(!b)if(this.$a(this.g),!a)this.reset();else if(!this.restore(a))return!1;return!0};
k.R=function(a){return a?this.save():!0};k.reset=function(){};k.save=function(){var a=new L(this);a.set(0,[]);return a.data()};k.restore=function(){return!0};k.Da=function(a){if("number"==typeof a)this.f.push(a);else if("string"==typeof a)for(var b=0,c,d=0;d<a.length;d++){c=b;b=a.charCodeAt(d);if(10==b){if(13==c)continue;b=13}this.f.push(b)}else this.f=this.f.concat(a);return!0};k.wb=function(){};k.zb=function(a,b){return this.a?!1:(this.a=a,this.l=b,!0)};var ed="buffer";
function cd(a,b,c,d,e,f){var g=!1;null==c&&(c=e);if(null!=c){for(g=0;g<b.length;g++)Cb(a.s,c+g,b[g]);g=!0}g&&(null==d&&(N(a.j),f=!1),null!=d&&(a=a.j,a.ua=d,M(a,d),f?a.h.F?a.h.B||wb(a):a.h.K=!0:a.w&&a.h.F?N(a)||a.v.h.reset||(a.w.g(),Ab(a.v,-1)):!1===f&&N(a),!a.h.B&&a.ta&&a.ta.stop()));return g}Da(function(){for(var a=A(document,z,"ram"),b=0;b<a.length;b++){var c=a[b],d=y(c),d=new ad(d);Qa(d,c)}});
function dd(a){t.call(this,"SerialPort",a);this.i=a.upperCase;"string"==typeof this.i&&(this.i="true"==this.i);this.g=!0;this.f=[];var b=a.binding;if("console"!=b){var c;a=ed;b&&(void 0===c&&(c="Panel"),(c=x(c,this.id))&&(b=c.m[b])&&this.U(null,a,b))}this.a=this.l=null;this.exports={connect:this.$a,receiveData:this.Ea,receiveStatus:this.wb,setConnection:this.zb}}l(dd,t);k=dd.prototype;
k.U=function(a,b,c){var d=this;switch(b){case ed:return this.m[b]=c,c.onkeydown=function(a){a=a||window.event;var b=0,c=a.keyCode;8==c?b=a.altKey?n.Ua:n.eb:46==c?b=n.Ua:a.ctrlKey&&c>=n.Ta&&c<=n.fb&&(b=c-(n.Ta-n.ab));b&&(a.preventDefault&&a.preventDefault(),d.Ea(b));return!0},c.onkeypress=function(a){a=a||window.event;if(!a.metaKey){var b=a.which||a.keyCode;a.altKey&&b==n.cb&&(b=n.bb);d.Ea(b);a.preventDefault&&a.preventDefault()}return!0},c.onpaste=function(a){a.stopPropagation&&a.stopPropagation();
a.preventDefault&&a.preventDefault();(a=a.clipboardData||window.clipboardData)&&d.Ea(a.getData("Text"))},c.removeAttribute("readonly"),!0}return!1};k.Z=function(a,b,c,d){this.v=a;this.s=b;this.j=c;this.w=d;B(this)};
k.$a=function(a){if(!this.a){var b=Yb(this.v,"connection");if(b){var c=b.split("->");if(2==c.length){var d=sa(c[0]);if(d!=this.va)return;c=sa(c[1]);if(this.a=Pa(c)){var e=this.a.exports;if(e){var f=e.connect;f&&f.call(this.a,this.g);if(this.l=e.receiveData){this.g=a;this.status("Connected "+this.wa+"."+d+" to "+c);return}}}}this.status("Unable to establish connection: "+b)}}};k.W=function(a,b){if(!b)if(this.$a(this.g),!a)this.reset();else if(!this.restore(a))return!1;return!0};
k.R=function(a){return a?this.save():!0};k.reset=function(){};k.save=function(){var a=new L(this);a.set(0,[]);return a.data()};k.restore=function(){return!0};k.Ea=function(a){if("number"==typeof a)this.f.push(a);else if("string"==typeof a)for(var b=0,c,d=0;d<a.length;d++){c=b;b=a.charCodeAt(d);if(10==b){if(13==c)continue;b=13}this.f.push(b)}else this.f=this.f.concat(a);return!0};k.wb=function(){};k.zb=function(a,b){return this.a?!1:(this.a=a,this.l=b,!0)};var ed="buffer";
Da(function(){for(var a=A(document,z,"serial"),b=0;b<a.length;b++){var c=a[b],d=y(c),d=new dd(d);Qa(d,c)}});
function fd(a,b,c){t.call(this,"Computer",a);this.h.F=!1;this.L=null;gd(this,b);this.H=Yb(this,"autoPower",a,6);this.i=0;this.W=+a.busWidth||+a.buswidth;this.C=this.o=this.D=null;this.A=this.P=!1;this.u=this.l=null;this.N=this.K=!1;this.X=Yb(this,"url")||"";(Math.random()+.1).toString(36);this.f=hd(this);if(this.j=x("CPU",this.id)){this.w=x("Debugger",this.id);this.s=new Db({id:this.wa+".bus",busWidth:this.W},this.j,this.w);var d,e=w(this.id);if((this.g=x("Panel",this.id))&&this.g.ga)for(b=0;b<e.length;b++)d=
function fd(a,b,c){t.call(this,"Computer",a);this.h.F=!1;this.L=null;gd(this,b);this.H=Yb(this,"autoPower",a,6);this.i=0;this.V=+a.busWidth||+a.buswidth;this.C=this.o=this.D=null;this.A=this.P=!1;this.u=this.l=null;this.N=this.J=!1;this.X=Yb(this,"url")||"";(Math.random()+.1).toString(36);this.f=hd(this);if(this.j=x("CPU",this.id)){this.w=x("Debugger",this.id);this.s=new Db({id:this.wa+".bus",busWidth:this.V},this.j,this.w);var d,e=w(this.id);if((this.g=x("Panel",this.id))&&this.g.ga)for(b=0;b<e.length;b++)d=
e[b],d.G=this.g.G,d.M=this.g.M,d.ga=this.g.ga;this.M(Ya+" v1.34.3\nCopyright \u00a9 2012-2017 Jeff Parsons <Jeff@pcjs.org>\nLicense: GPL version 3 or later <http://gnu.org/licenses/gpl.html>");for(b=0;b<e.length;b++)d=e[b],d.Z&&d.Z(this,this.s,this.j,this.w);b=null;d=Yb(this,"resume",a);void 0!==d&&(1<d.length?b=this.o=d:this.a=parseInt(d,10));var f;if(a=Yb(this,"state")||(f=!0,a.state))this.D=b=a,f||(this.A=!0,this.a=id),this.a&&(this.u=new L(this,"1.34.3"),jd(this.u)?b=null:delete this.u);!b&&this.a&&
(b=kd(this))&&(this.A=!0);if(b){var g=this;p(b,null,!0,function(a,b,c){c?(g.o=null,g.A=!1,g.G("Unable to load machine state from server (error "+c+(b?": "+sa(b):"")+")")):(g.C=b,g.P=!0);B(g)})}else B(this);this.m.power||(this.H=!0);!c&&this.H&&ld(this,this.sa)}else q("Unable to find CPU component")}l(fd,t);function gd(a,b){if(!b){var c;if("object"==typeof resources&&(c=resources.parms))try{b=eval("("+c+")")}catch(d){q(d.message+" ("+c+")")}}a.L=b}
function Yb(a,b,c,d){var e=b.toLowerCase(),e=Aa(b)||Aa(e);void 0===e&&a.L&&(e=a.L[b]);void 0===e&&c&&(e=c[b]);void 0===e&&"object"==typeof resources&&resources[b]&&(e=b);void 0===e&&(e=void 0);if("string"==typeof e&&d)switch(d){case 4:e=+e;isNaN(e)&&(e=0);break;case 6:e="true"==e}return e}function ld(a,b,c){for(var d=w(a.id),e=0;e<=d.length;e++){var f=e<d.length?d[e]:a;if(!Wa(f)){Wa(f,function(){ld(a,b,c)});return}}b.call(a,c)}
function md(a,b){var c=new L(a,"1.34.3",nd);if(jd(c)&&od(c)){var d=c.get(pd),e=b?b.get(pd):"unknown";d!=e&&(a.G("Machine state may be out-of-date\n("+d+" vs. "+e+")\nCheck your browser's local storage limits"),b||c.clear())}}k=fd.prototype;
k.sa=function(a){void 0===a&&(a=this.a||(this.C?qd:id));if(!this.i){this.i++;var b=!1,c=!1;this.K=!1;var d=this.u||new L(this,"1.34.3");if(a==rd)b=!0;else if(a>id){if(jd(d,this.C)){this.l=new L(this,"1.34.3",sd);jd(this.l)&&(td(this,d),a=ud,vd(this.l));this.l.set(pd,ta());wd(this.l);var e=this.a&&!this.A;if(a==qd||Oa("Click OK to restore the previous "+Ya+" machine state, or CANCEL to reset the machine.")){if(c=od(d)){var f=d.get("code"),g=d.get("data");f&&("ok"==f?jd(d,g):("error"==f&&"no machine state"!=
k.sa=function(a){void 0===a&&(a=this.a||(this.C?qd:id));if(!this.i){this.i++;var b=!1,c=!1;this.J=!1;var d=this.u||new L(this,"1.34.3");if(a==rd)b=!0;else if(a>id){if(jd(d,this.C)){this.l=new L(this,"1.34.3",sd);jd(this.l)&&(td(this,d),a=ud,vd(this.l));this.l.set(pd,ta());wd(this.l);var e=this.a&&!this.A;if(a==qd||Oa("Click OK to restore the previous "+Ya+" machine state, or CANCEL to reset the machine.")){if(c=od(d)){var f=d.get("code"),g=d.get("data");f&&("ok"==f?jd(d,g):("error"==f&&"no machine state"!=
g?(this.G("Error: "+g),"unable to verify user"==g&&(ya(xd,""),this.f=null)):this.M(f+": "+g),vd(d),jd(d)?(c=od(d),e=!0):c=!1))}e&&md(this,c?d:null)}else a==ud&&d.clear()}else md(this);delete this.C;delete this.u}e=w(this.id);for(f=0;f<e.length;f++)g=e[f],g!==this&&g!=this.j&&(c=yd(this,g,d,b,c));b=[d,a,c];a!=rd?ld(this,this.Ya,b):this.Ya(b)}};
function yd(a,b,c,d,e){if(!b.h.F){b.h.F=!0;var f=null;try{if(e&&((f=c.get(b.id))||(f=c.get(b.id.replace(/[a-z0-9]\./i,".")))),"string"===typeof f&&(f=null),!b.V(f,d)&&f&&(q("Unable to restore state for "+b.type),a.D&&!a.P?(c.clear(),a.a=id,window&&window.location.reload()):a.K=!0,b.V(null),e=!1),!d&&b.Va){var g=b.Va.split("|");for(a=0;a<g.length;a++)b.status(g[a])}}catch(h){q("Error restoring state for "+b.type+" ("+h.message+")")}}return e}
k.Ya=function(a){var b=a[0],c=0>a[1];a=a[2];this.N=!0;this.h.F=!0;var d=this.m.power;d&&(d.textContent="Shutdown");this.j&&(yd(this,this.j,b,c,a),Ab(this,-2),this.j.J());this.K&&(td(this,b),b.clear());!c&&this.l&&(this.l.clear(),delete this.l);this.i=0};
function yd(a,b,c,d,e){if(!b.h.F){b.h.F=!0;var f=null;try{if(e&&((f=c.get(b.id))||(f=c.get(b.id.replace(/[a-z0-9]\./i,".")))),"string"===typeof f&&(f=null),!b.W(f,d)&&f&&(q("Unable to restore state for "+b.type),a.D&&!a.P?(c.clear(),a.a=id,window&&window.location.reload()):a.J=!0,b.W(null),e=!1),!d&&b.Va){var g=b.Va.split("|");for(a=0;a<g.length;a++)b.status(g[a])}}catch(h){q("Error restoring state for "+b.type+" ("+h.message+")")}}return e}
k.Ya=function(a){var b=a[0],c=0>a[1];a=a[2];this.N=!0;this.h.F=!0;var d=this.m.power;d&&(d.textContent="Shutdown");this.j&&(yd(this,this.j,b,c,a),Ab(this,-2),this.j.K());this.J&&(td(this,b),b.clear());!c&&this.l&&(this.l.clear(),delete this.l);this.i=0};
function td(a,b){if(Oa("There may be a problem with your "+Ya+" machine.\n\nTo help us diagnose it, click OK to send this "+Ya+" machine state to http://www.pcjs.org.")){var c=a.X;a=a.f||"";b=b.toString();var d={};d.app=Ya;d.ver="1.34.3";d.url=c;d.user=a;d.type="bug";d.data=b;p("http://www.pcjs.org/api/v1/report",d,!0)}}
function zd(a,b,c){var d,e="none";if(a.i)return null;a.i--;var f=new L(a,"1.34.3"),g=new L(a,"1.34.3",nd),h=ta();g.set(pd,h);f.set(pd,h);f.set(Ad,"1.34.3");f.set(Bd,window?window.location.href:null);f.set(Cd,window?window.navigator.userAgent:"");a.j&&a.j.R&&(c&&(b&&(a.j.h.J=a.j.h.B),N(a.j)),d=a.j.R(b,c),"object"===typeof d&&f.set(a.j.id,d),c&&(a.j.h.F=!1,!1===d&&(e=null)));for(var h=w(a.id),m=0;m<h.length;m++){var u=h[m];u.h.F&&(u.R&&(d=u.R(b,c),"object"===typeof d&&f.set(u.id,d)),c&&(u.h.F=!1,!1===
function zd(a,b,c){var d,e="none";if(a.i)return null;a.i--;var f=new L(a,"1.34.3"),g=new L(a,"1.34.3",nd),h=ta();g.set(pd,h);f.set(pd,h);f.set(Ad,"1.34.3");f.set(Bd,window?window.location.href:null);f.set(Cd,window?window.navigator.userAgent:"");a.j&&a.j.R&&(c&&(b&&(a.j.h.K=a.j.h.B),N(a.j)),d=a.j.R(b,c),"object"===typeof d&&f.set(a.j.id,d),c&&(a.j.h.F=!1,!1===d&&(e=null)));for(var h=w(a.id),m=0;m<h.length;m++){var u=h[m];u.h.F&&(u.R&&(d=u.R(b,c),"object"===typeof d&&f.set(u.id,d)),c&&(u.h.F=!1,!1===
d&&(e=null)))}e&&(c?(h=d=!1,b?(a.f&&Dd(a,a.f,f.toString()),wd(g)&&wd(f)||(e=null,d=h=!0)):a.a&&(d=!0,h=a.a==Ed),d&&f.clear(h)):e=f.toString());c&&(a.h.F=!1,b=a.m.power)&&(b.textContent="Power");a.i=0;return e}k.reset=function(){this.h.reset=!0;this.s&&this.s.reset&&this.s.reset();this.j&&this.j.reset&&this.j.reset();for(var a=w(this.id),b=0;b<a.length;b++){var c=a[b];c!==this&&c!==this.s&&c!==this.j&&c.reset&&c.reset()}this.h.reset=!1;Ab(this,-1)};
k.start=function(a,b){for(var c=w(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.start&&e.start(a,b)}Ab(this,-1)};k.stop=function(a,b){for(var c=w(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.stop&&e.stop(a,b)}Ab(this,-1)};
function Ab(a,b){if(a.j){var c=a.j,d=b||0,e=c.m.speed;e&&(0>=d||30<=(c.Ha+=d))&&(e.textContent=c.h.B?c.W.toFixed(2)+"Mhz":"Stopped",c.Ha=0)}if(a.g&&(a=a.g,b=b||0,a.C)){c=a.j.h.B;d=!!(a.j.o&8);if(0>=b||60<=(a.A+=b)){e=a.j.f;if(a.m.PC){var f=a.w&&a.w.l||8,e=e||0,e=8==f?ka(e,void 0):la(e,void 0);a.m.PC.textContent!=e&&(a.m.PC.textContent=e)}a.A=0}-1>b?a.f=a.j.f:0<b&&c&&!d&&(a.f=a.j.ka);ob(a,a.f);ib(a,a.i)}}
k.U=function(a,b,c){var d=this;switch(b){case "power":return this.m[b]=c,c.onclick=function(){d.i||(d.h.F?zd(d,!1,!0):ld(d,d.sa))},!0;case "reset":return this.m[b]=c,c.onclick=function(){if(d.h.F&&!d.i)if(d.a&&!d.o){var a=Oa("Click OK to save changes to this "+Ya+" machine.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");zd(d,a,!0);!a&&d.D?window&&window.location.reload():d.sa(id)}else d.reset(),d.j&&!d.w&&d.j.J()},!0;case "save":if(oa())c.parentNode.removeChild(c);else return this.m[b]=
function Ab(a,b){if(a.j){var c=a.j,d=b||0,e=c.m.speed;e&&(0>=d||30<=(c.Ia+=d))&&(e.textContent=c.h.B?c.X.toFixed(2)+"Mhz":"Stopped",c.Ia=0)}if(a.g&&(a=a.g,b=b||0,a.C)){c=a.j.h.B;d=!!(a.j.o&8);if(0>=b||60<=(a.A+=b)){e=a.j.f;if(a.m.PC){var f=a.w&&a.w.l||8,e=e||0,e=8==f?ka(e,void 0):la(e,void 0);a.m.PC.textContent!=e&&(a.m.PC.textContent=e)}a.A=0}-1>b?a.f=a.j.f:0<b&&c&&!d&&(a.f=a.j.ka);ob(a,a.f);ib(a,a.i)}}
k.U=function(a,b,c){var d=this;switch(b){case "power":return this.m[b]=c,c.onclick=function(){d.i||(d.h.F?zd(d,!1,!0):ld(d,d.sa))},!0;case "reset":return this.m[b]=c,c.onclick=function(){if(d.h.F&&!d.i)if(d.a&&!d.o){var a=Oa("Click OK to save changes to this "+Ya+" machine.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");zd(d,a,!0);!a&&d.D?window&&window.location.reload():d.sa(id)}else d.reset(),d.j&&!d.w&&d.j.K()},!0;case "save":if(oa())c.parentNode.removeChild(c);else return this.m[b]=
c,c.onclick=function(){var a=hd(d,!0);if(a){var b=!!(d.a&&!d.o||d.D),c=zd(d,b);b?Dd(d,a,c):d.G("Resume disabled, machine state not saved")}},!0}return!1};function hd(a,b){var c=a.f;c||((c=xa(xd),void 0!==c)?!c&&b&&(b=null,window&&(b=window.prompt("Saving machine states on the pcjs.org server is currently unsupported.\n\nIf you're running your own server, enter your user ID below.","")),c=b)&&((c=Fd(a,c))||a.G("The user ID is invalid.")):b&&a.G("Browser local storage is not available"));return c}
function Fd(a,b){a.f=null;b=p(pa()+"/api/v1/user?req=verify&user="+b);var c=b[1];if(!b[0]&&c)try{b=eval("("+c+")"),b.code&&"ok"==b.code&&(ya(xd,b.data),a.f=b.data)}catch(d){q(d.message+" ("+c+")")}return a.f}function kd(a){var b=null;a.f&&(b=pa()+"/api/v1/user?req=load&user="+a.f+"&state="+Gd(a,"1.34.3"));return b}
function Dd(a,b,c){if(c){var d={req:"store"};d.user=b;d.state=Gd(a,"1.34.3");d.data=c;b=p(pa()+"/api/v1/user",d);d=b[0];if(b[1]){if(d){var e=d.indexOf("\n");0<e&&(d=d.substr(0,e));d.indexOf("Error: ")||(d=d.substr(7))}d='{"code":'+b[1]+',"data":"'+d+'"}'}b=JSON.parse(d);b&&"ok"==b.code?a.G("Machine state saved to server"):c&&(c=b&&b.data||"unable to save machine state",c="error"==b.code?"Error: "+c:"Error "+b.code+": "+c,a.G(c),ya(xd,""),a.f=null)}}

View file

@ -41,8 +41,8 @@ ja("Math.trunc",function(a){return a?a:function(a){a=Number(a);if(isNaN(a)||Infi
var ka={163840:[40,1,8,,254],184320:[40,1,9,,252],327680:[40,2,8,,255],368640:[40,2,9,,253],737280:[80,2,9,,249],1228800:[80,2,15,,249],1474560:[80,2,18,,240],2949120:[80,2,36,,240],21368320:[615,4,17],256256:[77,1,26,128],2494464:[203,2,12,512],5242880:[256,2,40,256],10485760:[512,2,40,256]},la={Ph:0,Ud:1,Wh:2,Xh:3,Yh:4,Zh:5,$h:6,ai:7,ld:8,bi:9,Vd:10,ci:11,di:12,Wd:13,ei:14,fi:15,gi:16,hi:17,ii:18,ji:19,ki:20,li:21,mi:22,ni:23,oi:24,pi:25,ri:26," ":32,"!":33,'"':34,"#":35,$:36,"%":37,"&":38,"'":39,
"(":40,")":41,"*":42,"+":43,",":44,"-":45,".":46,"/":47,0:48,1:49,2:50,3:51,4:52,5:53,6:54,7:55,8:56,9:57,":":58,";":59,"<":60,"=":61,">":62,"?":63,"@":64,jd:65,Lh:66,Rh:67,si:68,E:69,yi:70,Bi:71,Ni:72,Pi:73,Qi:74,Ri:75,Si:76,Vi:77,Xi:78,cj:79,fj:80,Q:81,hj:82,kj:83,tj:84,vj:85,xj:86,yj:87,Cj:88,Dj:89,Ke:90,"[":91,"\\":92,"]":93,"^":94,_:95,"`":96,Ej:97,Gj:98,Jj:99,d:100,e:101,Kj:102,Lj:103,Mj:104,Nj:105,Rj:106,k:107,Sj:108,Tj:109,n:110,Uj:111,p:112,q:113,r:114,Vj:115,t:116,Xj:117,Yj:118,Zj:119,x:120,
y:121,z:122,"{":123,"|":124,"}":125,"~":126,Cb:127};
function na(a,b){var c;if(a){b||(b=10);var d,e,f=0<a.indexOf(",");f&&(a=a.replace(/,/g,""));d=e=a.charAt(0);"#"==e?(b=8,e=""):"$"==e&&(b=16,e="");d!=e?a=a.substr(1):(d=e=a.substr(0,2),"0b"==e&&f||"^B"==e?(b=2,e=""):"0o"==e||"^O"==e?(b=8,e=""):"^D"==e?(b=10,e=""):"0x"==e&&(b=16,e=""),d!=e&&(a=a.substr(2)));d=e=a.slice(-1);"Y"==e||"y"==e?(b=2,e=""):"."==e?(b=10,e=""):"H"==e||"h"==e?(b=16,e=""):"K"==e?e="000":"M"==e?e="000000":"G"==e&&(e="000000000");d!=e&&(a=a.slice(0,-1)+e);var g;d=0;if(e=a.match(/(-?[0-9]+)B([0-9]*)/))a=
e[1],d=35-((e[2]||35)&255);e=a;((f=b)&&10!=f?16==f?e.match(/^-?[0-9a-f]+$/i):8==f?e.match(/^-?[0-7]+$/):2==f&&e.match(/^-?[01]+$/):e.match(/^-?[0-9]+$/))&&!isNaN(g=parseInt(a,b))&&(d&&(0>g&&(g+=Math.pow(2,36)),g=0<d?g*Math.pow(2,d):Math.trunc(g/Math.pow(2,-d))),c=g)}return c}
function na(a,b){var c;if(a){b||(b=10);var d,e,f=0<a.indexOf(",");f&&(a=a.replace(/,/g,""));d=e=a.charAt(0);"#"==e?(b=8,e=""):"$"==e&&(b=16,e="");d!=e?a=a.substr(1):(d=e=a.substr(0,2),"0b"==e&&f||"^B"==e?(b=2,e=""):"0o"==e||"^O"==e?(b=8,e=""):"^D"==e?(b=10,e=""):"0x"==e&&(b=16,e=""),d!=e&&(a=a.substr(2)));d=e=a.slice(-1);"Y"==e||"y"==e?(b=2,e=""):"."==e?(b=10,e=""):"H"==e||"h"==e?(b=16,e=""):"K"==e?e="000":"M"==e?e="000000":"G"==e&&(e="000000000");d!=e&&(a=a.slice(0,-1)+e);var g;d=0;10>=b&&(e=a.match(/(-?[0-9]+)B([0-9]*)/))&&
(a=e[1],d=35-((e[2]||35)&255));e=a;((f=b)&&10!=f?16==f?e.match(/^-?[0-9a-f]+$/i):8==f?e.match(/^-?[0-7]+$/):2==f&&e.match(/^-?[01]+$/):e.match(/^-?[0-9]+$/))&&!isNaN(g=parseInt(a,b))&&(d&&(0>g&&(g+=Math.pow(2,36)),g=0<d?g*Math.pow(2,d):Math.trunc(g/Math.pow(2,-d))),c=g)}return c}
function oa(a,b,c,d){var e;e=void 0===e?0:e;var f="";isNaN(a)?a=null:null!=a&&(0>a&&-1<a&&(a=-1),0>a&&(a+=Math.pow(b,c)),a>=Math.pow(b,c)&&(c=Math.ceil(Math.log(a)/Math.log(b))));for(var g=e||-1;0<c--;){g||(f=","+f,g=e);if(null==a)f="?"+f;else{var k=a%b,k=k+(0<=k&&9>=k?48:55),f=String.fromCharCode(k)+f;a=Math.trunc(a/b)}g--}return(void 0===d?"":d)+f}function pa(a,b){b?12<b&&(b=12):(b=Math.abs(a),b=262143>=b?6:16777215>=b?8:12);return oa(a,8,b,"")}
function qa(a,b,c){b?9<b&&(b=9):(b=Math.abs(a),b=65535>=b?4:4294967295>=b?8:9);return oa(a,16,b,c?"0x":"")}function ra(a,b){var c=a,d=a.lastIndexOf("/");0<=d&&(c=a.substr(d+1));d=c.indexOf("&");0<d&&(c=c.substr(0,d));b&&(d=c.lastIndexOf("."),0<d&&(c=c.substring(0,d)));return c}function sa(a){var b="",c=a.lastIndexOf(".");0<=c&&(b=a.substr(c+1).toLowerCase());return b}function ta(a,b){return-1!==a.indexOf(b,a.length-b.length)}function ua(a){return a.replace(/[&<>"']/g,function(a){return va[a]})}
function wa(a){return String.prototype.trim?a.trim():a.replace(/^\s+|\s+$/g,"")}var va={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#039;"},xa={0:"NUL",1:"SOH",2:"STX",3:"ETX",4:"EOT",5:"ENQ",6:"ACK",7:"BEL",8:"BS",9:"TAB",10:"LF",11:"VT",12:"FF",13:"CR",14:"SO",15:"SI",16:"DLE",17:"XON",18:"DC2",19:"XOFF",20:"DC4",21:"NAK",22:"SYN",23:"ETB",24:"CAN",25:"EM",26:"SUB",27:"ESC",28:"FS",29:"GS",30:"RS",31:"US"};