pcjs/versions/pdpjs/1.37.0/pdp10.js

200 lines
72 KiB
JavaScript

(function(){/*
http://pcjs.org/modules/shared/lib/dumpapi.js (C) Jeff Parsons 2012-2017
http://pcjs.org/modules/shared/lib/reportapi.js (C) Jeff Parsons 2012-2017
http://pcjs.org/modules/shared/lib/userapi.js (C) Jeff Parsons 2012-2017
http://pcjs.org/modules/shared/lib/keys.js (C) Jeff Parsons 2012-2017
http://pcjs.org/modules/shared/lib/strlib.js (C) Jeff Parsons 2012-2017
http://pcjs.org/modules/shared/lib/weblib.js (C) Jeff Parsons 2012-2017
http://pcjs.org/modules/pdp10/lib/messages.js (C) Jeff Parsons 2012-2017
http://pcjs.org/modules/pdp10/lib/device.js (C) Jeff Parsons 2012-2017
http://pcjs.org/modules/pdp10/lib/rom.js (C) Jeff Parsons 2012-2017
http://pcjs.org/modules/pdp10/lib/ram.js (C) Jeff Parsons 2012-2017
http://pcjs.org/modules/pdp10/lib/computer.js (C) Jeff Parsons 2012-2017
http://pcjs.org/modules/shared/lib/state.js (C) Jeff Parsons 2012-2017
http://pcjs.org/modules/shared/lib/embed.js (C) Jeff Parsons 2012-2017
http://pcjs.org/modules/shared/lib/defines.js (C) Jeff Parsons 2012-2017
http://pcjs.org/modules/shared/lib/usrlib.js (C) Jeff Parsons 2012-2017
http://pcjs.org/modules/shared/lib/component.js (C) Jeff Parsons 2012-2017
http://pcjs.org/modules/pdp10/lib/defines.js (C) Jeff Parsons 2012-2017
http://pcjs.org/modules/pdp10/lib/panel.js (C) Jeff Parsons 2012-2017
http://pcjs.org/modules/pdp10/lib/bus.js (C) Jeff Parsons 2012-2017
http://pcjs.org/modules/pdp10/lib/memory.js (C) Jeff Parsons 2012-2017
http://pcjs.org/modules/pdp10/lib/cpu.js (C) Jeff Parsons 2012-2017
http://pcjs.org/modules/pdp10/lib/cpustate.js (C) Jeff Parsons 2012-2017
http://pcjs.org/modules/pdp10/lib/cpuops.js (C) Jeff Parsons 2012-2017
http://pcjs.org/modules/pdp10/lib/serial.js (C) Jeff Parsons 2012-2017
http://pcjs.org/modules/shared/lib/debugger.js (C) Jeff Parsons 2012-2017
http://pcjs.org/modules/pdp10/lib/debugger.js (C) Jeff Parsons 2012-2017
http://pcjs.org/modules/pdp10/lib/macro10.js (C) Jeff Parsons 2012-2017
*/
var h,aa="function"==typeof Object.defineProperties?Object.defineProperty:function(a,b,c){a!=Array.prototype&&a!=Object.prototype&&(a[b]=c.value)},ba="undefined"!=typeof window&&window===this?this:"undefined"!=typeof global&&null!=global?global:this;function ca(){ca=function(){};ba.Symbol||(ba.Symbol=da)}var da=function(){var a=0;return function(b){return"jscomp_symbol_"+(b||"")+a++}}();
function ea(){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 fa(this)}});ea=function(){}}function fa(a){var b=0;return ha(function(){return b<a.length?{done:!1,value:a[b++]}:{done:!0}})}function ha(a){ea();a={next:a};a[ba.Symbol.iterator]=function(){return this};return a}
var ia="function"==typeof Object.create?Object.create:function(a){function b(){}b.prototype=a;return new b},ja;if("function"==typeof Object.setPrototypeOf)ja=Object.setPrototypeOf;else{var ka;a:{var la={Va:!0},ma={};try{ma.__proto__=la;ka=ma.Va;break a}catch(a){}ka=!1}ja=ka?function(a,b){a.__proto__=b;if(a.__proto__!==b)throw new TypeError(a+" is not extensible");return a}:null}var na=ja;
function l(a,b){a.prototype=ia(b.prototype);a.prototype.constructor=a;if(na)na(a,b);else for(var c in b)if("prototype"!=c)if(Object.defineProperties){var d=Object.getOwnPropertyDescriptor(b,c);d&&Object.defineProperty(a,c,d)}else a[c]=b[c];a.Lc=b.prototype}function oa(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})}}
oa("Math.trunc",function(a){return a?a:function(a){a=Number(a);if(isNaN(a)||Infinity===a||-Infinity===a||0===a)return a;var b=Math.floor(Math.abs(a));return 0>a?-b:b}});oa("Math.log2",function(a){return a?a:function(a){return Math.log(a)/Math.LN2}});
var n={Ib:0,bb:1,Kb:2,Lb:3,Mb:4,Nb:5,Ob:6,Pb:7,Ta:8,Qb:9,cb:10,Rb:11,Sb:12,eb:13,Tb:14,Ub:15,Vb:16,Wb:17,Xb:18,Yb:19,Zb:20,$b:21,ac:22,bc:23,cc:24,dc:25,ec: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,Sa:65,Hb:66,Jb:67,fc:68,E:69,gc:70,hc:71,ic:72,jc:73,kc:74,lc:75,mc:76,nc:77,oc:78,pc:79,qc:80,Q:81,rc:82,sc:83,tc:84,uc:85,vc:86,wc:87,
xc:88,yc:89,gb:90,"[":91,"\\":92,"]":93,"^":94,_:95,"`":96,Va:97,zc:98,Ac:99,d:100,e:101,Bc:102,Cc:103,Dc:104,Ec:105,Gc:106,k:107,Hc:108,Ic:109,n:110,Jc:111,p:112,q:113,r:114,Kc:115,t:116,Mc:117,Nc:118,Oc:119,x:120,y:121,z:122,"{":123,"|":124,"}":125,"~":126,fb:127};
function pa(a,b,c,d){var 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+=0<=k&&9>=k?48:55;f=String.fromCharCode(k)+f;a=Math.trunc(a/b)}g--}return(void 0===d?"":d)+f}function qa(a,b){b?12<b&&(b=12):(b=Math.abs(a),b=262143>=b?6:16777215>=b?8:12);return pa(a,8,b,"")}
function ra(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 sa(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 ta(a){var b="",c=a.lastIndexOf(".");0<=c&&(b=a.substr(c+1).toLowerCase());return b}function ua(){var a=va();return-1!==a.indexOf("pcjs.org",a.length-8)}function wa(a){return a.replace(/[&<>"']/g,function(a){return xa[a]})}
function ya(a){return String.prototype.trim?a.trim():a.replace(/^\s+|\s+$/g,"")}var xa={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#039;"};
function za(){var a,b="";a||(a=new Date);for(var c=a.getHours(),d=a.getDate(),e=a.getMonth()+1,f=0;11>f;f++){var g;switch(g="Y-m-d H:i:s".charAt(f)){case "a":b+=12>c?"am":"pm";break;case "d":b+=("0"+d).slice(-2);break;case "D":b+=Aa[a.getDay()].substr(0,3);break;case "F":b+=Ba[e-1];break;case "g":b+=c?12<c?c-12:c:12;break;case "h":b+=c;break;case "H":b+=("0"+c).slice(-2);break;case "i":b+=("0"+a.getMinutes()).slice(-2);break;case "j":b+=d;break;case "l":b+=Aa[a.getDay()];break;case "m":b+=("0"+e).slice(-2);
break;case "M":b+=Ba[e-1].substr(0,3);break;case "n":b+=e;break;case "s":b+=("0"+a.getSeconds()).slice(-2);break;case "y":b+=(""+a.getFullYear()).slice(-2);break;case "Y":b+=a.getFullYear();break;default:b+=g}}return b}var Aa="Sunday Monday Tuesday Wednesday Thursday Friday Saturday".split(" "),Ba="January February March April May June July August September October November December".split(" ");
function p(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 k=window.XMLHttpRequest?new window.XMLHttpRequest:new window.ActiveXObject("Microsoft.XMLHTTP");c&&(k.onreadystatechange=function(){4===k.readyState&&(f=k.responseText,200==k.status||!k.status&&f.length&&"file:"==(window?window.location.protocol:"file:")||(e=k.status||-1),d&&d(a,
f,e))});if(b&&"object"==typeof b){var m="",t;for(t in b)b.hasOwnProperty(t)&&(m&&(m+="&"),m+=t+"="+encodeURIComponent(b[t]));m=m.replace(/%20/g,"+");k.open("POST",a,c);k.setRequestHeader("Content-type","application/x-www-form-urlencoded");k.send(m)}else k.open("GET",a,c),"bytes"==b&&k.overrideMimeType("text/plain; charset=x-user-defined"),k.send();c||(f=k.responseText,200!=k.status&&(e=k.status||-1),d&&d(a,f,e),g=[f,e]);return g}
function Ca(a,b){var c,d={I:null,O:null,U:null,T:null};if("["==b.charAt(0)||"{"==b.charAt(0))try{var e,f;if("<"==b.charAt(0))throw Error(b);var 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.U=g.load;d.T=g.exec;if(e=g.bytes)d.I=e;else if(e=g.words)for(d.I=Array(2*e.length),f=c=0;c<e.length;c++)d.I[f++]=e[c]&255,d.I[f++]=e[c]>>8&255;else if(e=g.longs)for(d.I=Array(4*e.length),f=c=0;c<e.length;c++)d.I[f++]=
e[c]&255,d.I[f++]=e[c]>>8&255,d.I[f++]=e[c]>>16&255,d.I[f++]=e[c]>>24&255;else(e=g.data)?d.Z=e:d.I=g;d.I&&(d.I.length?1==d.I.length&&(q(d.I[0]),d=null):(q("Empty resource: "+a),d=null));d.O=g.symbols}catch(k){q("Resource data error ("+a+"): "+k.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.I=e)}return d}
function va(){return"http://"+(window?window.location.host:"www.pcjs.org")}function Da(){if(null==Ea){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}Ea=a}return Ea}function Fa(a){if(window)try{var b=window.localStorage.getItem(a)}catch(c){}return b}
function Ga(a,b){try{return window.localStorage.setItem(a,b),!0}catch(c){}return!1}function Ha(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 Ia(a){if(!Ja){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," "))}Ja=c}return Ja[a]||Ja[a.toLowerCase()]}function Ka(a,b){if(window){var c=window[a];window[a]="function"!==typeof c?b:function(){c&&c();b()}}}function La(a){r.init.push(a)}
function Ma(a){if(Na)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 Oa(a){!Na&&a?(Na=!0,Pa&&Qa("init"),Ra&&Qa("show")):Na=a}function Qa(a){r[a]&&Ma(r[a])}var Ja=null,r={init:[],show:[],exit:[]},Pa=!1,Ra=!1,Na=!0,Ea=null;Ka("onload",function(){Pa=!0;Ma(r.init)});Ka("onpageshow",function(){Ra=!0;Ma(r.show)});
Ka(Ha("iOS")?"onpagehide":Ha("Opera")?"onunload":"onbeforeunload",function(){Ma(r.exit)});function u(a,b){this.type=a;b||(b={id:"",name:""});this.id=b.id||"";this.name=b.name;this.Ra=b.comment;this.jb=b;this.exports={};this.m=this.bindings={};a=this.id.indexOf(".");0>a?this.Wa=this.id:(this.ua=this.id.substr(0,a),this.Wa=this.id.substr(a+1));this.h={ready:!1,za:!1,Ma:!1,Fc:!1,F:!1,Qa:!1,error:!1};this.Ba=null;this.h.error=!1;this.w=this.j=this.s=this.v=null;v.push(this)}
function Sa(a,b,c){Ta[a]&&b&&(Ta[a][b]=c)}function Ua(){return Date.now()||+new Date}function q(a){window&&window.alert(a)}function Va(a){var b=!1;window&&(b=window.confirm(a));return b}function Wa(a,b){a.value+=b;b=a.value;8192<b.length&&(a.value=b.substr(b.length-4096));a.scrollTop=a.scrollHeight}
function Xa(a,b){var c=w;b=x(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 k=g.getAttribute("class");if(k)for(var m=k.split(" "),t=0;t<m.length;t++)switch(k=m[t],k){case c+"-binding":(k=y(g))&&k.binding&&a.V(k.type,k.binding,g,k.value),t=m.length}}}}function Ya(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 Za(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 z(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 x(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 $a(a){for(var b=!0,c=ab[a];c&&c.length;){var d=c.splice(0,1)[0],e=d[0],f=null;0<=bb.indexOf(e)&&(f=function(){return function(){$a(a)}}());var g=cb[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{b=!1;var k=z(d[1],a);if(k)if(g=db[e])b=g(k,d[2],d[3]);else{var m=k.exports;if(m&&(g=m[e]))if(b=!0,!f)b=g.call(k,d[2],d[3]);else if(!g.call(k,f,d[2],d[3]))break}}if(!b){q("Script error: '"+e+(g?" failed":" unrecognized"));break}}c&&!c.length&&delete ab[a];return b}h=u.prototype;
h.toString=function(){return this.name?this.name:this.id||this.type};
h.V=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.m[b]=c,this.G=function(a){this.N(a,this.type);return!0},c.value="",this.print=function(a){return function(b){Wa(a,b)}}(c),this.N=function(a,b){return function(a,c){a||(a="");if(c!=eb||"..."!=a.slice(-3))c&&(a=c+": "+a),Wa(b,a+"\n");else{c=b.value;var d=c.lastIndexOf(a);0>d?c+=a+"\n":c=c.substr(0,d)+(a+".")+
c.substr(d+a.length);8192<c.length&&(c=c.substr(c.length-4096));b.value=c;b.scrollTop=b.scrollHeight}}}(this,c)),!0;default:return!1}};h.log=function(){};h.print=function(){};h.N=function(){};h.status=function(a){this.N(this.type+": "+a)};h.G=function(a,b,c){if(!b){var d=z("Computer",this.id);if(d&&d.h.Qa)return console.log("ignoring notice during unload: "+a),!1}c=c||this.type;b||q((c?c+": ":"")+a);return!0};function fb(a,b){b&&(a.h.ready?b():a.Ba=b);return a.h.ready}
function A(a){if(!a.h.error&&(a.h.ready=!0,a.h.ready)){var b=a.Ba;a.Ba=null;b&&b()}}function gb(a,b){a.h.Ma?(a.h.za=!1,a.h.Ma=!1):a.h.error?a.N(a.toString()+" error"):a.h.za=b}h.W=function(){return this.h.F=!0};h.R=function(a,b){b&&(this.h.F=!1);return!0};var eb="progress";window&&(window.PCjs||(window.PCjs={}),window.PCjs.Machines||(window.PCjs.Machines={}),window.PCjs.Components||(window.PCjs.Components=[]),window.PCjs.Commands||(window.PCjs.Commands={}));
var Ta=window?window.PCjs.Machines:{},v=window?window.PCjs.Components:[],ab=window?window.PCjs.Commands:{},bb=["hold","sleep","wait"],cb={alert:function(a){q(a);return!0},sleep:function(a,b){setTimeout(a,+b);return!1}},db={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 w="pdp10",hb="PDPjs",ib=Math.pow(2,18)-1,jb=Math.pow(2,18),kb=Math.pow(2,17)-1,lb=Math.pow(2,17),C=Math.pow(2,18)-1,D=Math.pow(2,18),E=Math.pow(2,35)-1,F=Math.pow(2,35),G=Math.pow(2,36)-1,H=Math.pow(2,36),J=Math.pow(2,32),mb=Math.pow(2,34),nb=Math.pow(2,36),ob=Math.pow(2,23),pb=Math.pow(2,30);w="pdp10";hb="PDPjs";
function qb(a,b){u.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.M=rb;this.l={};this.a={START:[1,1,!0,!1,this.sb],STEP:[1,1,!1,!1,this.tb],ENABLE:[1,1,!1,!1,this.nb],CONT:[1,1,!0,!1,this.lb],DEP:[0,0,!0,!1,this.mb],EXAM:[1,1,!0,!1,this.ob],LOAD:[1,1,!0,!1,this.qb],TEST:[0,0,!0,!1,this.pb]};for(a=0;22>a;a++)this.a["S"+a]=[0,0,!1,!1,this.rb,a];this.w=this.j=this.s=this.v=null;this.exports={hold:this.kb,toggle:this.Cb,reset:this.yb,
set:this.Bb};A(this)}l(qb,u);h=qb.prototype;h.reset=function(a){this.stop();a&&sb(this,this.i=0)};
h.V=function(a,b,c,d){if(this.v&&this.v.V(a,b,c,d)||this.j&&this.j.V(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(){tb(a,b)}}(this,b),a.onmouseup=a.onmouseout=function(a,b){return function(){ub(a,b)}}(this,b),a.ontouchstart=function(a,b){return function(c){tb(a,
b);c.preventDefault()}}(this,b),a.ontouchend=function(a,b){return function(){ub(a,b)}}(this,b),!0):u.prototype.V.call(this,a,b,c,d)}};h.aa=function(a,b,c,d){this.v=a;this.s=b;this.j=c;this.w=d;vb(this);wb(this)};h.W=function(a,b){if(!b)if(this.P&&xb(),!a)this.reset(!0);else if(!this.restore(a))return!1;return!0};h.R=function(a){return a?this.save():!0};h.save=function(){var a=new K(this);a.set(0,[this.f,this.i,this.g]);return a.data()};
h.restore=function(a){if(a=a[0])yb(this,this.f=a[0]),sb(this,this.i=a[1]),zb(this,a[2]);return!0};h.yb=function(){for(var a in this.a){var b=this.a[a];b[1]=b[0]}wb(this);return!0};function Ab(a,b,c){if(a=a.m[b])a.style.backgroundColor=c?"#ff0000":"#000000"}function vb(a,b){for(var c in a.l)Ab(a,c,null!=b?b:a.l[c])}function Bb(a,b,c){if(a=a.m[b])a.style.marginTop=c?"0px":"20px",a.style.backgroundColor=c?"#00ff00":"#228B22"}function wb(a){for(var b in a.a)Bb(a,b,a.a[b][1])}
h.kb=function(a,b,c){if(tb(this,b)){if(c){var d=this;setTimeout(function(){ub(d,b);a&&a()},+c);return!1}ub(this,b)}return!0};
h.Bb=function(a,b){if("SR"==a){a=b;b=8;if(a){b||(b=10);var c,d=0<a.indexOf(",");d&&(a=a.replace(/,/g,""));var e=c=a.charAt(0);"#"==c?(b=8,c=""):"$"==c&&(b=16,c="");e!=c?a=a.substr(1):(e=c=a.substr(0,2),"0b"==c&&d||"^B"==c?(b=2,c=""):"0o"==c||"^O"==c?(b=8,c=""):"^D"==c?(b=10,c=""):"0x"==c&&(b=16,c=""),e!=c&&(a=a.substr(2)));e=c=a.slice(-1);"Y"==c||"y"==c?(b=2,c=""):"."==c?(b=10,c=""):"H"==c||"h"==c?(b=16,c=""):"K"==c?c="000":"M"==c?c="000000":"G"==c&&(c="000000000");e!=c&&(a=a.slice(0,-1)+c);var f;
e=0;10>=b&&(c=a.match(/(-?[0-9]+)B([0-9]*)/))&&(a=c[1],e=35-((c[2]||35)&255));c=a;if(((d=b)&&10!=d?16==d?null!==c.match(/^-?[0-9a-f]+$/i):8==d?null!==c.match(/^-?[0-7]+$/):2==d&&null!==c.match(/^-?[01]+$/):null!==c.match(/^-?[0-9]+$/))&&!isNaN(f=parseInt(a,b))){e&&(0>f&&(f+=Math.pow(2,36)),f=0<e?f*Math.pow(2,e):Math.trunc(f/Math.pow(2,-e)));var g=f}}return zb(this,g)}return(g=this.a[a])?(g[1]=+b?1:0,Bb(this,a,g[1]),!0):!1};h.Cb=function(a){return tb(this,a)?(ub(this,a),!0):!1};
function tb(a,b){var c=a.a[b];return c?(Bb(a,b,c[1]=1-c[1]),c[3]=!0,c[4]&&c[4].call(a,c[1],c[5]),b!=Cb&&(a.J=b==Db,a.L=b==Eb),!0):!1}function ub(a,b){var c=a.a[b];c&&(c[2]&&c[3]&&(Bb(a,b,c[1]=c[0]),c[4]&&c[4].call(a,c[1],c[5])),c[3]=!1)}h.sb=function(a){a||this.j.h.B||(L(this.j,this.f),this.a[Fb]&&this.a[Fb][1]&&Gb(this.j))};h.tb=function(){};h.nb=function(a){a||M(this.j)};
h.lb=function(a){if(!a&&!this.j.h.B)if(this.a[Fb]&&this.a[Fb][1])Gb(this.j);else{a=this.w;var b;if(b=a)a.h.za&&(a.h.Ma=!0),b=!a.h.za;if(b)gb(a,!0),a.f(0,null),gb(a,!1);else try{var c=this.j.Fa(1);0<c&&(Hb(this.j,c),Ib(this.j,c,!0),Jb(this.j,c))}catch(d){"number"!=typeof d&&(a=d,c=this.j,a=a.stack||a.message,c.h.error=!0,c.G(a))}this.stop();this.v&&Kb(this.v)}};h.mb=function(a){a&&!this.j.h.B&&(this.J&&Lb(this),a=sb(this,this.i=this.g),this.M==rb?Mb(this.s,this.f,a):this.j.c(this.f,a))};
h.ob=function(a){if(!a&&!this.j.h.B){this.L&&Lb(this);if(this.M==rb){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);sb(this,this.i=a)}};h.qb=function(a){a||this.j.h.B||yb(this,this.g)};h.pb=function(a){a?(this.o=!0,vb(this,!0)):(this.o=!1,vb(this),zb(this,0))};h.rb=function(a,b){this.g=a?this.g|1<<b:this.g&~(1<<b)};function Lb(a){var b=1,c=a.s.g;a.a[Cb]&&a.a[Cb][1]||(b=-b);yb(a,a.f&~c|a.f+b&c)}
function yb(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||Ab(d,e,f)}}}function sb(a,b){a.u=b%H;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||Ab(d,e,f)}}return a.u}function zb(a,b){a.g=b|0;for(b=0;22>b;b++)a.a["S"+b][1]=a.g&1<<b?1:0;wb(a);return!0}h.stop=function(){yb(this,this.j.f)};
function xb(){for(var a=x(document,w,"panel"),b=0;b<a.length;b++){var c=a[b],d=y(c),e=Za(d.id);e||(e=new qb(d,!0));Xa(e,c)}}var rb=7,Db="DEP",Fb="ENABLE",Eb="EXAM",Cb="STEP";La(xb);function Nb(a,b,c){u.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 Ob(this);Pb(a);this.a=Array(this.l);for(b=0;b<this.l;b++)this.a[b]=a;A(this)}l(Nb,u);h=Nb.prototype;h.reset=function(){};
h.W=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};h.R=function(a){return a?this.save():!0};h.save=function(){var a=new K(this);a.set(0,Qb(this));return a.data()};h.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 k=d[g++],m=d[g++];k--;)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 Rb(a,b,c,d){for(var e=b,f=c,g=e>>>a.f;0<f&&g<a.a.length;){var k=a.a[g],m=16384*g,t=16384-(e-m);t>f&&(t=f);if(k&&k.size){if(k.type==d){if(e+f<=k.fa)return k.Da+=k.fa-e,k.fa=e,!0;if(e>=k.fa+k.Da){t=k.size-(e-m);t>f&&(t=f);k.Da=e-k.fa+t;e=m+16384;f-=t;g++;continue}}return Sb(Tb,e,f)}e=new Ob(a,e,t,16384,d);Pb(e,k);a.a[g++]=e;e=m+16384;f-=t}return 0>=f?(a.status("Added "+(c>>10)+"Kb "+Ub[d]+" at "+qa(b)),!0):Sb(Vb,b,c)}
function Mb(a,b,c){var d=a.a[(b&a.g)>>>a.f];a.i++;d.j(c,b&16383,b);a.i--}function Qb(a){for(var b=0,c=[],d=0;d<a.l;d++){var e=a.a[d];if(e.Na||e.ib){c[b++]=d;var f=b++;if(e=e.save()){for(var g=0,k=0,m=[];g<e.length;){for(var t=e[g],B=g+1;B<e.length&&e[B]===t;)B++;m[k++]=B-g;m[k++]=t;g=B}m.length<e.length&&(e=m)}c[f]=e}}return c}function Sb(a,b,c){q("Memory block error ("+a+": "+ra(b)+","+ra(c)+")");return!1}var Tb=1,Vb=2;function Wb(a){u.call(this,"Device",a)}l(Wb,u);h=Wb.prototype;
h.aa=function(a,b,c,d){this.s=b;this.v=a;this.j=c;this.w=d;A(this)};h.W=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};h.R=function(a){return a?this.save():!0};h.reset=function(){};h.save=function(){return(new K(this)).data()};h.restore=function(){return!0};La(function(){for(var a=x(document,w,"device"),b=0;b<a.length;b++){var c=a[b];var d=y(c);switch(d.type){case "default":d=new Wb(d),Xa(d,c)}}});
function Ob(a,b,c,d,e){this.m=a;this.id=Xb+=2;this.fa=b;this.Da=c;this.size=d||0;this.type=e||Yb;this.s=e==Zb;this.b=this.i=this.Oa;this.c=this.j=this.Ea;this.f=this.g=0;Pb(this);this.Na=this.ib=!1;if(this.size){a=this.a=Array(this.size);for(b=0;b<a.length;b++)a[b]=0;$b(this,ac)}else $b(this)}h=Ob.prototype;h.save=function(){return this.a};h.restore=function(a){return a&&this.size==a.length?(this.a=a,this.Na=!0):!1};function $b(a,b){b||(b=bc);cc(a,b,void 0);dc(a,b,void 0)}
function cc(a,b,c){c&&a.f||(a.b=b[0]||a.Oa);if(c||void 0===c)a.i=b[0]||a.Oa}function dc(a,b,c){c&&a.g||(a.c=!a.s&&b[1]||a.Ea);if(c||void 0===c)a.j=b[1]||a.Ea}function Pb(a,b){a.f=a.g=0;b&&((a.f=b.f)&&cc(a,ec,!1),(a.g=b.g)&&dc(a,ec,!1))}h.Oa=function(){var a=this.m;if(!a.i)throw M(a.j),-1;return-1};h.Ea=function(){var a=this.m;if(!a.i)throw M(a.j),-1;};h.wb=function(a){return this.a[a]};h.Fb=function(a,b){this.a[b]!=a&&(this.a[b]=a,this.Na=!0)};h.ub=function(a,b){return this.i(a,b)};
h.Eb=function(a,b,c){this.s?this.Ea():this.j(a,b,c)};var Yb=0,Zb=2,Ub=["NONE","RAM","ROM"],Xb=0,bc=[],ac=[Ob.prototype.wb,Ob.prototype.Fb],ec=[Ob.prototype.ub,Ob.prototype.Eb];
function fc(a,b){u.call(this,"CPU",a);b=+a.cycles||b;var c=+a.multiplier||1;this.Ga=0;this.Ja=b;this.ia=c;this.Ha=Math.round(this.Ja/1E4)/100;this.ga=this.Ha*this.ia;this.Ia=this.oa=this.ba=this.ya=0;this.h.B=this.h.Pa=!1;this.h.K=a.autoStart;"string"==typeof this.h.K&&(this.h.K="true"==this.h.K);this.h.Aa=!1;this.wa=this.ha=0;this.xa=+a.csStart;this.ma=+a.csInterval;this.na=+a.csStop;this.L=[];this.Ya=this.zb.bind(this);this.S=this.D=this.P=this.H=this.C=this.la=this.M=this.ca=this.Ka=this.X=0;this.sa=
null;A(this)}l(fc,u);h=fc.prototype;h.aa=function(a,b,c,d){this.v=a;this.s=b;this.w=d;this.sa=a.g;for(a=0;a<gc.length;a++)(b=this.m[gc[a]])&&this.v.V(null,gc[a],b);A(this)};h.reset=function(){};h.save=function(){return null};h.restore=function(){return!1};
h.W=function(a,b){var c=hc(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){ic(this);if(!this.restore(a))return!1;jc(this)}else this.reset();this.status("No debugger detected");this.h.K||this.N("CPU will not be auto-started "+(this.sa?"(click Run to start)":"(type 'go' to start)"))}return!0};h.R=function(a){return a?this.save():!0};h.K=function(){return this.h.B?!0:this.h.K?(Gb(this),!0):!1};h.$a=function(){return 0};
function jc(a){void 0===a.xa&&(a.xa=0);void 0===a.ma&&(a.ma=-1);void 0===a.na&&(a.na=-1);a.h.Aa=0<=a.xa&&0<a.ma;a.h.Aa&&(a.wa=0,a.ha=a.xa-a.S)}function Jb(a,b){if(a.h.Aa){var c=!1;a.wa=a.wa+a.$a()|0;a.ha-=b;0>=a.ha&&(a.ha+=a.ma,c=!0);0<=a.na&&a.na<=kc(a)&&(a.ma=a.na=-1,jc(a),M(a),c=!0);c&&a.N(kc(a)+" cycles: checksum="+ra(a.wa))}}
h.V=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,k=Ya(a.id);for(c=0;c<k.length&&(b=k[c],b===a||b.h.ready);c++);if(c==k.length)for(c=0;c<k.length&&(b=k[c],b===a||b.h.F);c++);c==k.length&&(b=a);q("The "+b.type+" component ("+b.id+") is not "+(b.h.ready?"powered yet":"ready yet"+(b.Ba?" (waiting for notification)":""))+".");a=!1}a&&(d.h.B?M(d):Gb(d))},!0;case "speed":return this.m[b]=
c,!0;case "setSpeed":return this.m[b]=c,c.onclick=function(){lc(d,d.ia<<1,!0)},c.textContent=this.ga.toFixed(2)+"Mhz",!0}return!1};function Ib(a,b,c){a.S+=b;c&&(a.P=a.H=0)}function mc(a,b){var c=1;b&&1<a.ia&&a.X&&(c=a.X/a.Ha);a.Ia=Math.round(1E3/nc);a.oa=Math.floor(a.Ja/nc*c);b||(a.ba=a.oa);a.ya=0}function kc(a){return a.S+a.D+a.P-a.H}function ic(a){a.X=0;a.Ka=0;a.S=a.D=a.P=a.H=0;jc(a);lc(a,1)}
function lc(a,b,c){if(void 0!==b){.8>a.X/a.ga&&(b=1);a.ia=b;b=a.Ha*a.ia;if(a.ga!=b){a.ga=b;b=a.ga.toFixed(2)+"Mhz";var d=a.m.setSpeed;d&&(d.textContent=b);a.N("target speed: "+b)}c&&a.v&&(c=a.v,c.H&&(d=b=0,window&&(b=window.scrollX,d=window.scrollY),c.H.focus(),window&&window.scrollTo(b,d)))}Ib(a,a.D);a.D=0;a.C=Ua();a.M=0;mc(a)}function oc(a){for(var b=[],c=0;c<a.L.length;c++)b.push(a.L[c][0]);return b}
function Hb(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 pc(a,b){var c=a.P-=a.H;a.H=0;b&&(a.P=0);return c}
h.zb=function(){if(this.h.B){this.ya>=this.Ja&&mc(this,!0);this.ca=0;this.la=Ua();if(this.M){var a=this.la-this.M;a>this.Ia&&(this.C+=a,this.C>this.la&&(this.C=this.la))}try{do{for(var b,c=this.h.Aa?1:this.oa,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.Fa(b)}catch(f){if("number"!=typeof f)throw f;}b=pc(this,!0);this.ca+=b;this.D+=b;Jb(this,b);Hb(this,b);this.ba-=b;if(0>=this.ba){this.ba+=this.oa;++this.Ka>=qc&&(this.v&&Kb(this.v,void 0),this.Ka=0);break}}while(this.h.B)}catch(f){M(this);
this.v&&this.v.stop(Ua(),kc(this));a=f.stack||f.message;this.h.error=!0;this.G(a);return}if(this.h.B){a=setTimeout;b=this.Ya;this.M=Ua();c=this.Ia;this.ca&&(c=Math.round(c*this.ca/this.oa));c-=this.M-this.la;if(d=this.M-this.C)this.X=Math.round(this.D/(10*d))/100,864E5<=d&&(this.S=0,lc(this));if(0>c||this.X<this.ga)-1E3>c&&(this.C-=c),c=0;this.ya+=this.ca;this.M+=c;a(b,c)}}};
function Gb(a){if(a.h.error){a.N(a.toString()+" error");var b=!0}else b=!1;if(!b)if(a.h.B)a.N(a.toString()+" busy");else{lc(a);a.h.B=!0;a.h.Pa=!0;if(b=a.m.run)b.textContent="Halt";a.v&&a.v.start(a.C,kc(a));a.w||a.status("Started");setTimeout(a.Ya,0)}}h.Fa=function(){return 0};function M(a){var b=!1;if(a.h.B){pc(a);Ib(a,a.D);a.D=0;a.h.B=!1;if(b=a.m.run)b.textContent="Run";a.v&&a.v.stop(Ua(),kc(a));b=!0;a.w||a.status("Stopped")}a.h.complete=void 0;return b}var nc=30,qc=15,gc=["power","reset"];
function rc(a){var b=+a.model||1001;fc.call(this,a,1E6);this.Xa=b;this.ta=+a.addrReset||0;this.hb=sc.bind(this);this.i=N.bind(this);this.ka=null;this.Ua=[];this.h.complete=!1}l(rc,fc);h=rc.prototype;
h.reset=function(){this.status("Model "+this.Xa);this.h.B&&M(this);this.pa=this.qa=this.a=this.u=0;this.f=this.va=this.ta;this.A=this.J=-1;this.l=this.g=0;this.La=[0,0];this.da=[0,0];this.Y=[0,0];this.ea=[0,0];this.ja=this.f;this.o=0;this.b=this.vb;this.c=this.Gb;this.ka=null;ic(this);this.h.error=!1;fc.prototype.reset.call(this)};h.$a=function(){return 0};
h.save=function(){var a=new K(this);a.set(0,[this.a,this.u,this.pa,this.qa,this.f,this.J,this.A,this.g,this.o,this.va,this.ja,this.ta]);a.set(1,[]);a.set(2,[this.S,this.ia,this.h.K]);a.set(3,tc(this));a.set(4,oc(this));return a.data()};
h.restore=function(a){var b=a[0];ea();ca();ea();var c=b[Symbol.iterator];b=c?c.call(b):fa(b);this.a=b.next().value;this.u=b.next().value;this.pa=b.next().value;this.qa=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.va=b.next().value;this.ja=b.next().value;this.ta=b.next().value;b=a[2];this.S=b[0];lc(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.Ua.length;d++){var e=this.Ua[d];if(e.Db===
b[c]){d=e;break a}}d=null}d&&(d.next=this.ka,this.ka=d)}a=a[4];for(b=0;b<this.L.length&&b<a.length;b++)this.L[b][0]=a[b];return!0};function L(a,b){a.u=0;a.J=-1;a.f=b%jb}function tc(a){var b=[];for(a=a.ka;a;)b.push(a.Db),a=a.next;return b}h.vb=function(a){var b=this.s;a=this.ja=a;return b.a[(a&b.g)>>>b.f].b(a&16383,a)};h.Gb=function(a,b){var c=this.s;a=this.ja=a;c.a[(a&c.g)>>>c.f].c(b,a&16383,a);return b};
h.Fa=function(a){this.h.complete=!0;var b=a?this.h.Pa?0:1:-1;this.h.Pa=!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.ka||(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.va:this.f,b)){M(this);break}if(0>b)break}this.o&=15;this.u&4194304?this.u=this.pa=this.b(this.a):0<=this.J?(this.u=this.qa=this.b(this.J),this.J=-1):(this.u=this.qa=this.b(this.va=this.f),this.f=(this.f+1)%jb);this.u&=8388607;this.a=this.u&262143;
if(a=this.u>>18&15)this.a=this.a+(this.pa=this.b(a))&ib;a=this.u&4194304?-1:this.qa/ob|0;0<=a&&this.hb(a);this.H--}while(0<this.H);return this.h.complete?this.P-this.H:!1===this.h.complete?-1:0};La(function(){for(var a=x(document,w,"cpu"),b=0;b<a.length;b++){var c=a[b],d=y(c);d=new rc(d);Xa(d,c)}});function sc(a){uc[a>>4].call(this,a,a&15)}function O(a){this.i(a)}
function vc(){var a=0,b=this.b(this.a),c=b/pb&63,d=b>>24&63;c-=d;0>c&&(a++,c=36-d,0>c&&(c=100-d));b=c*pb+(d<<24)+(b&16777215);a&&(b=(b+a)%H);this.c(this.a,b)}function wc(a,b){a=this.b(this.a);if(0>this.A)this.A=a,this.u=this.a|4194304;else{var c=this.A/pb&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 xc(a,b){a=this.b(this.a);if(0>this.A)this.A=a,this.u=this.a|4194304;else{var c=this.A/pb&63,d=this.A>>24&63;b=this.b(b)%Math.pow(2,d)*Math.pow(2,c)%H;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 yc(a,b){this.c(b,this.b(this.a))}function zc(a,b){this.c(b,this.a)}function Ac(a,b){this.c(this.a,this.b(b))}function Bc(a,b){this.c(b,0)}function Cc(a,b){this.c(b,G-this.b(b))}function Dc(a,b){this.c(b,G)}
function Ec(a,b){var c=this.b(this.a),d=this.b(b);this.c(b,Fc(a,d,c)+(c-(c&C)))}function Gc(a,b){var c=this.b(b);this.c(b,Fc(a,c,0))}function Hc(a,b){b=this.b(b);var c=this.b(this.a);this.c(this.a,Fc(a,c,b)+(b-(b&C)))}function Ic(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>E?C:0}c=d;this.c(this.a,c);b&&this.c(b,c)}function Jc(a,b){var c=(this.b(this.a)&C)*D,d=this.b(b);this.c(b,Fc(a,d,c)+c)}
function Kc(a,b){var c=this.a*D,d=this.b(b);this.c(b,Fc(a,d,c)+c)}function Lc(a,b){b=(this.b(b)&C)*D;var c=this.b(this.a);this.c(this.a,Fc(a,c,b)+b)}function Mc(a,b){var c=this.b(this.a),d=(c&C)*D;c=Fc(a,c,d)+d;this.c(this.a,c);b&&this.c(b,c)}function Nc(a,b){var c=this.b(this.a)&C,d=this.b(b);this.c(b,Oc(a,d,c)+c)}function Pc(a,b){var c=this.b(b);this.c(b,Oc(a,c,this.a)+this.a)}function Qc(a,b){b=this.b(b)&C;var c=this.b(this.a);this.c(this.a,Oc(a,c,b)+b)}
function Rc(a,b){var c=this.b(this.a),d=c;if(a&=384)switch(d&=C,a){case 256:d+=C*D;break;case 384:d+=c>kb?C*D:0}c=d;this.c(this.a,c);b&&this.c(b,c)}function Sc(a,b){var c=this.b(this.a)/D|0,d=this.b(b);this.c(b,Oc(a,d,c)+c)}function Tc(a,b){var c=this.b(b);this.c(b,Oc(a,c,0))}function Uc(a,b){b=this.b(b)/D|0;var c=this.b(this.a);this.c(this.a,Oc(a,c,b)+b)}function Vc(a,b){var c=this.b(this.a),d=c/D|0;c=Oc(a,c,d)+d;this.c(this.a,c);b&&this.c(b,c)}function P(a){Wc[a&7].call(this,a,a>>3&127)}
function Xc(){}function Yc(){}function N(a){this.N("undefined opcode: "+qa(a));this.f=(this.f+-1)%jb;M(this)}function Zc(a){a>E&&(a!=F?a=nb-a:this.g|=163840);return a}function Q(a,b){var c=(a+b)%H;$c.call(this,a,b,c);return c}
function ad(a,b,c){var d=!1,e=!1;if(void 0===c){if(!a)return this.g|=131104,-1;c=b>E?G:0}else if((c<F?c:nb-c-(b?1:0))>=(a<F?a:nb-a))return this.g|=131104,-1;var f=c-c%F;b=b%F+(c&1)*F;c=this.l=f+Math.trunc(c/2);a>E&&(a=H-a,d=!d);c>E&&(b?(c=G-c,b=H-b):c&&(c=H-c),e=!0,d=!d);f=this.La;f[0]=0;f[1]=0;f=this.da;f[0]=1;f[1]=0;f=this.Y;f[0]=a;f[1]=0;a=this.ea;a[0]=b;for(a[1]=c;0<bd(this.ea,this.Y);)cd(this.Y,this.Y),cd(this.da,this.da);do{if(0<=bd(this.ea,this.Y)&&(c=this.ea,a=this.Y,c[0]-=a[0],c[1]-=a[1],
0>c[0]&&(c[0]+=H,c[1]--),cd(this.La,this.da),dd(this.ea)))break;ed(this.Y);ed(this.da)}while(!dd(this.da));b=this.La[0];this.l=this.ea[0];d&&b&&(b=H-b);e&&this.l&&(this.l=H-this.l);return b}
function fd(a,b,c,d){var e=a,f=b;b=!1;e>E&&(d||1001!=this.Xa||e!=F)&&(e=H-e,b=!b);f>E&&(f=H-f,b=!b);if(e<D&&f<D){a=e*f;var g=0}else{a=e&C;e=Math.trunc(e/D);g=f&C;f=Math.trunc(f/D);var k=a*g,m=e*g+Math.trunc(k/D);g=Math.trunc(m/D);m=(m&C)+a*f;a=(m*D+(k&C))%H;g+=Math.trunc(m/D)+e*f}b&&(a?(g=G-g,a=H-a):g&&(g=H-g));b=a;a=g;e=a-a%F;a=2*a%H+Math.trunc(b/F);b=e+b%F;a-a%F!=e&&(b=a);d?g=b:(b==F&&a==F&&(this.g|=131072),this.l=b,g=a);c&&(a=this.l,!d&&(g||a>E)&&(g!=G||a<=E)&&(this.g|=131072),g=a);return g}
function gd(a){a?a==F?this.g|=163840:a=nb-a:this.g|=98304;return a}function hd(a,b){var c=a-b;0>c&&(c+=H);$c.call(this,c,b,a);return c}function $c(a,b,c){a=Math.trunc(a/mb);b=Math.trunc(b/mb);c=Math.trunc(c/mb);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 R(a,b){return((a/J|0)&(b/J|0))*J+((a&b)>>>0)}function T(a,b){return R(a,(~(b/J|0)&15)*J+(~b>>>0))}function U(a,b){return(a<F?a:a-H)-(b<F?b:b-H)}
function id(a,b){return(~((a/J|0)^(b/J|0))&15)*J+(~(a^b)>>>0)}function V(a,b){return(a/J|0|b/J|0)*J+((a|b)>>>0)}function W(a){return a<F?a:a-H}function Y(a,b){return((a/J|0)^(b/J|0))*J+((a^b)>>>0)}function Z(a){return(a/D|0)+(a&C)*D}function Oc(a,b,c){switch(a&384){case 0:b-=b&C;break;case 128:b=0;break;case 256:b=C*D;break;case 384:b=c>kb?C*D:0}return b}function Fc(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>E?C:0}return b}
function cd(a,b){a[0]+=b[0];a[1]+=b[1];a[0]>=H&&(a[0]%=H,a[1]++)}function bd(a,b){var c=a[1]-b[1];c||(c=a[0]-b[0]);return c}function ed(a){a[1]%2&&(a[0]+=H);a[0]=Math.trunc(a[0]/2);a[1]=Math.trunc(a[1]/2)}function dd(a){return!a[0]&&!a[1]}
var uc=[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,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,function(a){this.i(a)},function(a){this.i(a)},function(a){this.i(a)},vc,function(a,b){this.g&8192||(vc.call(this),this.g|=8192);wc.call(this,0,b)},wc,function(a,b){this.g&8192||(vc.call(this),this.g|=8192);xc.call(this,0,b)},xc,function(a){this.i(a)},function(a){this.i(a)},function(a){this.i(a)},function(a){this.i(a)},
function(a){this.i(a)},function(a){this.i(a)},function(a){this.i(a)},function(a){this.i(a)},function(a){this.i(a)},function(a){this.i(a)},function(a){this.i(a)},function(a){this.i(a)},function(a){this.i(a)},function(a){this.i(a)},function(a){this.i(a)},function(a){this.i(a)},function(a){this.i(a)},function(a){this.i(a)},function(a){this.i(a)},function(a){this.i(a)},function(a){this.i(a)},function(a){this.i(a)},function(a){this.i(a)},function(a){this.i(a)},function(a){this.i(a)},function(a){this.i(a)},
function(a){this.i(a)},function(a){this.i(a)},function(a){this.i(a)},function(a){this.i(a)},function(a){this.i(a)},function(a){this.i(a)},yc,zc,Ac,function(a,b){b&&this.c(b,this.b(this.a))},function(a,b){a=this.b(this.a);a=(a/D|0)+(a&C)*D;this.c(b,a)},function(a,b){this.c(b,this.a*D)},function(a,b){a=this.b(b);a=(a/D|0)+(a&C)*D;this.c(this.a,a)},function(a,b){a=this.b(this.a);a=(a/D|0)+(a&C)*D;this.c(this.a,a);b&&this.c(b,a)},function(a,b){this.c(b,gd.call(this,this.b(this.a)))},function(a,b){this.c(b,
gd.call(this,this.a))},function(a,b){this.c(this.a,gd.call(this,this.b(b)))},function(a,b){a=gd.call(this,this.b(this.a));this.c(this.a,a);b&&this.c(b,a)},function(a,b){this.c(b,Zc.call(this,this.b(this.a)))},function(a,b){this.c(b,this.a)},function(a,b){this.c(this.a,Zc.call(this,this.b(b)))},function(a,b){a=Zc.call(this,this.b(this.a));this.c(this.a,a);b&&this.c(b,a)},function(a,b){this.c(b,fd.call(this,this.b(b),this.b(this.a),!0))},function(a,b){this.c(b,fd.call(this,this.b(b),this.a,!0))},function(a,
b){this.c(this.a,fd.call(this,this.b(b),this.b(this.a),!0))},function(a,b){this.c(this.a,this.c(b,fd.call(this,this.b(b),this.b(this.a),!0)))},function(a,b){this.c(b,fd.call(this,this.b(b),this.b(this.a)));this.c(b+1&15,this.l)},function(a,b){this.c(b,fd.call(this,this.b(b),this.a));this.c(b+1&15,this.l)},function(a,b){this.c(this.a,fd.call(this,this.b(b),this.b(this.a)))},function(a,b){this.c(this.a,this.c(b,fd.call(this,this.b(b),this.b(this.a))));this.c(b+1&15,this.l)},function(a,b){a=ad.call(this,
this.b(this.a),this.b(b));0>a||(this.c(b,a),this.c(b+1&15,this.l))},function(a,b){a=ad.call(this,this.a,this.b(b));0>a||(this.c(b,a),this.c(b+1&15,this.l))},function(a,b){a=ad.call(this,this.b(this.a),this.b(b));0>a||this.c(this.a,a)},function(a,b){a=ad.call(this,this.b(this.a),this.b(b));0>a||(this.c(this.a,this.c(b,a)),this.c(b+1&15,this.l))},function(a,b){a=this.b(b);var c=this.b(b+1&15);c=ad.call(this,this.b(this.a),c,a);0>c||(this.c(b,c),this.c(b+1&15,this.l))},function(a,b){a=this.b(b);var c=
this.b(b+1&15);c=ad.call(this,this.a,c,a);0>c||(this.c(b,c),this.c(b+1&15,this.l))},function(a,b){a=this.b(b);b=this.b(b+1&15);b=ad.call(this,this.b(this.a),b,a);0>b||this.c(this.a,b)},function(a,b){a=this.b(b);var c=this.b(b+1&15);c=ad.call(this,this.b(this.a),c,a);0>c||(this.c(b,this.c(this.a,c)),this.c(b+1&15,this.l))},function(a,b){if(a=(this.a&lb)<<14>>23|this.a&255){var c=this.b(b);if(0<a){var d=E;var e=c<F?0:F;35>a&&(e+=c*Math.pow(2,a)%F,d=F-Math.pow(2,35-a));c<F?c+d>E&&(this.g|=131072):c-
d<F&&(this.g|=131072)}else-35>=a?e=c<F?0:E:(e=Math.trunc(c/Math.pow(2,-a)),c>E&&(d=H-Math.pow(2,36+a),e+=d));this.c(b,e)}},function(a,b){if(a=((this.a&lb)<<14>>23|this.a&255)%36){var c=this.b(b);0>a&&(a=36+a);c=c*Math.pow(2,a)%H+Math.trunc(c/Math.pow(2,36-a));this.c(b,c)}},function(a,b){if(a=(this.a&lb)<<14>>23|this.a&255){var c=this.b(b);c=0<a?36<=a?0:c*Math.pow(2,a)%H:-36>=a?0:Math.trunc(c/Math.pow(2,-a));this.c(b,c)}},function(a,b){a=0;var c=this.b(b);if(c){for(;c<F;)a++,c*=2;L(this,this.a)}this.c(b+
1&15,a)},function(a,b){if(a=(this.a&lb)<<14>>23|this.a&255){var c=this.b(b),d=this.b(b+1&15);if(0<a){var e=c;if(36<=a){if(0<c&&c<F||c>E&&c<G)this.g|=131072;if(71<=a){if(0<d&&d<F||d>E&&d<G)this.g|=131072;c=0}else{c=d*Math.pow(2,a-35)%F;var f=F-Math.pow(2,70-a);e<=E?d+f>E&&(this.g|=131072):d-f<=E&&(this.g|=131072)}d=0;e>E&&(c+=F,d+=F)}else c=c*Math.pow(2,a)%F+Math.trunc(d%F/Math.pow(2,35-a)),d=d*Math.pow(2,a)%F,f=F-Math.pow(2,35-a),e<=E?e+f>E&&(this.g|=131072):(e-f<=E&&(this.g|=131072),c+=F,d+=F)}else-36>=
a?(d=-72>=a?c>E?G:0:Math.trunc(c%F/Math.pow(2,-a-35)),c<=E?c=0:(c=G,d+=F)):(f=c>E?H-Math.pow(2,36+a):0,d=Math.trunc(d%F/Math.pow(2,-a))+c%F*Math.pow(2,35+a)%F,c=Math.trunc(c/Math.pow(2,-a))+f,c>E&&(d+=F));this.c(b,c);this.c(b+1&15,d)}},function(a,b){if(a=((this.a&lb)<<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)%H+Math.trunc(d/Math.pow(2,36-a)),d=d*Math.pow(2,a)%H+Math.trunc(e/Math.pow(2,36-a))):(c=d*Math.pow(2,a-36)%H+Math.trunc(c/Math.pow(2,72-
a)),d=e*Math.pow(2,a-36)%H+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&lb)<<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)%H,d=0):(c=c*Math.pow(2,a)%H+Math.trunc(d/Math.pow(2,36-a)),d=d*Math.pow(2,a)%H):-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)%H,c=Math.trunc(c/Math.pow(2,-a)));this.c(b,c);this.c(b+1&15,d)}},N,function(a,b){a=this.b(b);this.c(b,
this.b(this.a));this.c(this.a,a)},function(a,b){var c=a=!1,d=this.b(b),e=d/D|0;for(d&=C;!a;)if(this.c(d,this.b(e)),(a=d>=this.a)||(e=e+1&C,d=d+1&C,c=!0),a||!this.h.B){c&&this.c(b,e*D+d);a||(this.f=(this.f+-1)%jb);break}},function(a,b){a=(this.b(b)+262145)%H;this.c(b,a);a<F&&L(this,this.a)},function(a,b){a=(this.b(b)+262145)%H;this.c(b,a);a>=F&&L(this,this.a)},function(a,b){b&1&&(this.g|=4096);if(b&2){var c=this.pa/D|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&&M(this);b&8&&this.i(a);L(this,this.a)},function(a,b){a=b<<14;this.g&a&&(this.g&=~a,L(this,this.a))},function(){this.J=this.a},N,function(a,b){a=(this.b(b)+262145)%H;this.c(b,a);a/D|0||(this.g|=262144);this.c(a&ib,(this.g&C)*D+this.f);this.g&=-8193;L(this,this.a)},function(a,b){a=this.b(b);a+=262145;this.c(a&ib,this.b(this.a));a>=H&&(a-=H);a/D|0||(this.g|=262144);this.c(b,a)},function(a,b){a=this.b(b);var c=this.b(a&ib);this.c(this.a,c);this.a==b&&(a=c);a-=262145;0>a&&(a+=H);(a/
D|0)==C&&(this.g|=262144);this.c(b,a)},function(a,b){a=this.b(b);var c=this.b(a&ib);a-=262145;0>a&&(a+=H);(a/D|0)==C&&(this.g|=262144);this.c(b,a);L(this,c&ib)},function(){this.c(this.a,(this.g&C)*D+this.f);this.g&=-8193;L(this,this.a+1)},function(a,b){this.c(b,(this.g&C)*D+this.f);this.g&=-8193;L(this,this.a)},function(a,b){this.c(this.a,this.b(b));this.c(b,this.a*D+this.f);L(this,this.a+1)},function(a,b){a=this.b(b);this.c(b,this.b(a/D|0));L(this,this.a)},function(a,b){this.c(b,Q.call(this,this.b(b),
this.b(this.a)))},function(a,b){this.c(b,Q.call(this,this.b(b),this.a))},function(a,b){this.c(this.a,Q.call(this,this.b(b),this.b(this.a)))},function(a,b){this.c(this.a,this.c(b,Q.call(this,this.b(b),this.b(this.a))))},function(a,b){this.c(b,hd.call(this,this.b(b),this.b(this.a)))},function(a,b){this.c(b,hd.call(this,this.b(b),this.a))},function(a,b){this.c(this.a,hd.call(this,this.b(b),this.b(this.a)))},function(a,b){this.c(this.a,this.c(b,hd.call(this,this.b(b),this.b(this.a))))},Xc,function(a,
b){0>U(this.b(b),this.a)&&L(this,this.f+1)},function(a,b){0==U(this.b(b),this.a)&&L(this,this.f+1)},function(a,b){0>=U(this.b(b),this.a)&&L(this,this.f+1)},function(){L(this,this.f+1)},function(a,b){0<=U(this.b(b),this.a)&&L(this,this.f+1)},function(a,b){0!=U(this.b(b),this.a)&&L(this,this.f+1)},function(a,b){0<U(this.b(b),this.a)&&L(this,this.f+1)},Yc,function(a,b){0>U(this.b(b),this.b(this.a))&&L(this,this.f+1)},function(a,b){0==U(this.b(b),this.b(this.a))&&L(this,this.f+1)},function(a,b){0>=U(this.b(b),
this.b(this.a))&&L(this,this.f+1)},function(){L(this,this.f+1)},function(a,b){0<=U(this.b(b),this.b(this.a))&&L(this,this.f+1)},function(a,b){0!=U(this.b(b),this.b(this.a))&&L(this,this.f+1)},function(a,b){0<U(this.b(b),this.b(this.a))&&L(this,this.f+1)},Xc,function(a,b){0>W(this.b(b))&&L(this,this.a)},function(a,b){0==W(this.b(b))&&L(this,this.a)},function(a,b){0>=W(this.b(b))&&L(this,this.a)},function(){L(this,this.a)},function(a,b){0<=W(this.b(b))&&L(this,this.a)},function(a,b){0!=W(this.b(b))&&
L(this,this.a)},function(a,b){0<W(this.b(b))&&L(this,this.a)},function(a,b){b&&this.c(b,this.b(this.a))},function(a,b){a=this.b(this.a);0>W(a)&&L(this,this.f+1);b&&this.c(b,a)},function(a,b){a=this.b(this.a);0==W(a)&&L(this,this.f+1);b&&this.c(b,a)},function(a,b){a=this.b(this.a);0>=W(a)&&L(this,this.f+1);b&&this.c(b,a)},function(a,b){L(this,this.f+1);b&&this.c(b,this.b(this.a))},function(a,b){a=this.b(this.a);0<=W(a)&&L(this,this.f+1);b&&this.c(b,a)},function(a,b){a=this.b(this.a);0!=W(a)&&L(this,
this.f+1);b&&this.c(b,a)},function(a,b){a=this.b(this.a);0<W(a)&&L(this,this.f+1);b&&this.c(b,a)},function(a,b){this.c(b,Q.call(this,this.b(b),1))},function(a,b){a=this.c(b,Q.call(this,this.b(b),1));0>W(a)&&L(this,this.a)},function(a,b){a=this.c(b,Q.call(this,this.b(b),1));0==W(a)&&L(this,this.a)},function(a,b){a=this.c(b,Q.call(this,this.b(b),1));0>=W(a)&&L(this,this.a)},function(a,b){this.c(b,Q.call(this,this.b(b),1));L(this,this.a)},function(a,b){a=this.c(b,Q.call(this,this.b(b),1));0<=W(a)&&L(this,
this.a)},function(a,b){a=this.c(b,Q.call(this,this.b(b),1));0!=W(a)&&L(this,this.a)},function(a,b){a=this.c(b,Q.call(this,this.b(b),1));0<W(a)&&L(this,this.a)},function(a,b){a=this.c(this.a,Q.call(this,this.b(this.a),1));b&&this.c(b,a)},function(a,b){a=this.c(this.a,Q.call(this,this.b(this.a),1));0>W(a)&&L(this,this.f+1);b&&this.c(b,a)},function(a,b){a=this.c(this.a,Q.call(this,this.b(this.a),1));0==W(a)&&L(this,this.f+1);b&&this.c(b,a)},function(a,b){a=this.c(this.a,Q.call(this,this.b(this.a),1));
0>=W(a)&&L(this,this.f+1);b&&this.c(b,a)},function(a,b){a=this.c(this.a,Q.call(this,this.b(this.a),1));L(this,this.f+1);b&&this.c(b,a)},function(a,b){a=this.c(this.a,Q.call(this,this.b(this.a),1));0<=W(a)&&L(this,this.f+1);b&&this.c(b,a)},function(a,b){a=this.c(this.a,Q.call(this,this.b(this.a),1));0!=W(a)&&L(this,this.f+1);b&&this.c(b,a)},function(a,b){a=this.c(this.a,Q.call(this,this.b(this.a),1));0<W(a)&&L(this,this.f+1);b&&this.c(b,a)},function(a,b){this.c(b,Q.call(this,this.b(b),G))},function(a,
b){a=this.c(b,Q.call(this,this.b(b),G));0>W(a)&&L(this,this.a)},function(a,b){a=this.c(b,Q.call(this,this.b(b),G));0==W(a)&&L(this,this.a)},function(a,b){a=this.c(b,Q.call(this,this.b(b),G));0>=W(a)&&L(this,this.a)},function(a,b){this.c(b,Q.call(this,this.b(b),G));L(this,this.a)},function(a,b){a=this.c(b,Q.call(this,this.b(b),G));0<=W(a)&&L(this,this.a)},function(a,b){a=this.c(b,Q.call(this,this.b(b),G));0!=W(a)&&L(this,this.a)},function(a,b){a=this.c(b,Q.call(this,this.b(b),G));0<W(a)&&L(this,this.a)},
function(a,b){a=this.c(this.a,Q.call(this,this.b(this.a),G));b&&this.c(b,a)},function(a,b){a=this.c(this.a,Q.call(this,this.b(this.a),G));0>W(a)&&L(this,this.f+1);b&&this.c(b,a)},function(a,b){a=this.c(this.a,Q.call(this,this.b(this.a),G));0==W(a)&&L(this,this.f+1);b&&this.c(b,a)},function(a,b){a=this.c(this.a,Q.call(this,this.b(this.a),G));0>=W(a)&&L(this,this.f+1);b&&this.c(b,a)},function(a,b){a=this.c(this.a,Q.call(this,this.b(this.a),G));L(this,this.f+1);b&&this.c(b,a)},function(a,b){a=this.c(this.a,
Q.call(this,this.b(this.a),G));0<=W(a)&&L(this,this.f+1);b&&this.c(b,a)},function(a,b){a=this.c(this.a,Q.call(this,this.b(this.a),G));0!=W(a)&&L(this,this.f+1);b&&this.c(b,a)},function(a,b){a=this.c(this.a,Q.call(this,this.b(this.a),G));0<W(a)&&L(this,this.f+1);b&&this.c(b,a)},Bc,Bc,function(){this.c(this.a,0)},function(a,b){this.c(this.a,this.c(b,0))},function(a,b){this.c(b,R(this.b(b),this.b(this.a)))},function(a,b){this.c(b,R(this.b(b),this.a))},function(a,b){this.c(this.a,R(this.b(b),this.b(this.a)))},
function(a,b){this.c(this.a,this.c(b,R(this.b(b),this.b(this.a))))},function(a,b){this.c(b,R(G-this.b(b),this.b(this.a)))},function(a,b){this.c(b,R(G-this.b(b),this.a))},function(a,b){this.c(this.a,R(G-this.b(b),this.b(this.a)))},function(a,b){this.c(this.a,this.c(b,R(G-this.b(b),this.b(this.a))))},yc,zc,Yc,yc,function(a,b){this.c(b,R(this.b(b),G-this.b(this.a)))},function(a,b){this.c(b,R(this.b(b),G-this.a))},function(a,b){this.c(this.a,R(this.b(b),G-this.b(this.a)))},function(a,b){this.c(this.a,
this.c(b,R(this.b(b),G-this.b(this.a))))},Xc,Xc,Ac,Ac,function(a,b){this.c(b,Y(this.b(b),this.b(this.a)))},function(a,b){this.c(b,Y(this.b(b),this.a))},function(a,b){this.c(this.a,Y(this.b(b),this.b(this.a)))},function(a,b){this.c(this.a,this.c(b,Y(this.b(b),this.b(this.a))))},function(a,b){this.c(b,V(this.b(b),this.b(this.a)))},function(a,b){this.c(b,V(this.b(b),this.a))},function(a,b){this.c(this.a,V(this.b(b),this.b(this.a)))},function(a,b){this.c(this.a,this.c(b,V(this.b(b),this.b(this.a))))},
function(a,b){this.c(b,R(G-this.b(b),G-this.b(this.a)))},function(a,b){this.c(b,R(G-this.b(b),G-this.a))},function(a,b){this.c(this.a,R(G-this.b(b),G-this.b(this.a)))},function(a,b){this.c(this.a,this.c(b,R(G-this.b(b),G-this.b(this.a))))},function(a,b){this.c(b,id(this.b(b),this.b(this.a)))},function(a,b){this.c(b,id(this.b(b),this.a))},function(a,b){this.c(this.a,id(this.b(b),this.b(this.a)))},function(a,b){this.c(this.a,this.c(b,id(this.b(b),this.b(this.a))))},Cc,Cc,function(a,b){this.c(this.a,
G-this.b(b))},function(a,b){this.c(this.a,this.c(b,G-this.b(b)))},function(a,b){this.c(b,V(G-this.b(b),this.b(this.a)))},function(a,b){this.c(b,V(G-this.b(b),this.a))},function(a,b){this.c(this.a,V(G-this.b(b),this.b(this.a)))},function(a,b){this.c(this.a,this.c(b,V(G-this.b(b),this.b(this.a))))},function(a,b){this.c(b,G-this.b(this.a))},function(a,b){this.c(b,G-this.a)},function(){this.c(this.a,G-this.b(this.a))},function(a,b){this.c(this.a,this.c(b,G-this.b(this.a)))},function(a,b){this.c(b,V(this.b(b),
G-this.b(this.a)))},function(a,b){this.c(b,V(this.b(b),G-this.a))},function(a,b){this.c(this.a,V(this.b(b),G-this.b(this.a)))},function(a,b){this.c(this.a,this.c(b,V(this.b(b),G-this.b(this.a))))},function(a,b){this.c(b,V(G-this.b(b),G-this.b(this.a)))},function(a,b){this.c(b,V(G-this.b(b),G-this.a))},function(a,b){this.c(this.a,V(G-this.b(b),G-this.b(this.a)))},function(a,b){this.c(this.a,this.c(b,V(G-this.b(b),G-this.b(this.a))))},Dc,Dc,function(){this.c(this.a,G)},function(a,b){this.c(this.a,this.c(b,
G))},Ec,Gc,Hc,Ic,Jc,Kc,Lc,Mc,Ec,Gc,Hc,Ic,Jc,Kc,Lc,Mc,Ec,Gc,Hc,Ic,Jc,Kc,Lc,Mc,Ec,Gc,Hc,Ic,Jc,Kc,Lc,Mc,Nc,Pc,Qc,Rc,Sc,Tc,Uc,Vc,Nc,Pc,Qc,Rc,Sc,Tc,Uc,Vc,Nc,Pc,Qc,Rc,Sc,Tc,Uc,Vc,Nc,Pc,Qc,Rc,Sc,Tc,Uc,Vc,Xc,Xc,function(a,b){0==R(this.b(b),this.a)&&L(this,this.f+1)},function(a,b){0==R(this.b(b),this.a*D)&&L(this,this.f+1)},function(){L(this,this.f+1)},function(){L(this,this.f+1)},function(a,b){0!=R(this.b(b),this.a)&&L(this,this.f+1)},function(a,b){0!=R(this.b(b),this.a*D)&&L(this,this.f+1)},Yc,Yc,function(a,
b){0==R(this.b(b),this.b(this.a))&&L(this,this.f+1)},function(a,b){0==R(this.b(b),Z(this.b(this.a)))&&L(this,this.f+1)},function(){L(this,this.f+1)},function(){L(this,this.f+1)},function(a,b){0!=R(this.b(b),this.b(this.a))&&L(this,this.f+1)},function(a,b){0!=R(this.b(b),Z(this.b(this.a)))&&L(this,this.f+1)},function(a,b){this.c(b,T(this.b(b),this.a))},function(a,b){this.c(b,T(this.b(b),this.a*D))},function(a,b){a=this.b(b);0==R(a,this.a)&&L(this,this.f+1);this.c(b,T(a,this.a))},function(a,b){a=this.b(b);
var c=this.a*D;0==R(a,c)&&L(this,this.f+1);this.c(b,T(a,c))},function(a,b){L(this,this.f+1);this.c(b,T(this.b(b),this.a))},function(a,b){L(this,this.f+1);this.c(b,T(this.b(b),this.a*D))},function(a,b){a=this.b(b);0!=R(a,this.a)&&L(this,this.f+1);this.c(b,T(a,this.a))},function(a,b){a=this.b(b);var c=this.a*D;0!=R(a,c)&&L(this,this.f+1);this.c(b,T(a,c))},function(a,b){this.c(b,T(this.b(b),this.b(this.a)))},function(a,b){this.c(b,T(this.b(b),Z(this.b(this.a))))},function(a,b){a=this.b(b);var c=this.b(this.a);
0==R(a,c)&&L(this,this.f+1);this.c(b,T(a,c))},function(a,b){a=this.b(b);var c=Z(this.b(this.a));0==R(a,c)&&L(this,this.f+1);this.c(b,T(a,c))},function(a,b){L(this,this.f+1);this.c(b,T(this.b(b),this.b(this.a)))},function(a,b){L(this,this.f+1);this.c(b,T(this.b(b),Z(this.b(this.a))))},function(a,b){a=this.b(b);var c=this.b(this.a);0!=R(a,c)&&L(this,this.f+1);this.c(b,T(a,c))},function(a,b){a=this.b(b);var c=Z(this.b(this.a));0!=R(a,c)&&L(this,this.f+1);this.c(b,T(a,c))},function(a,b){this.c(b,Y(this.b(b),
this.a))},function(a,b){this.c(b,Y(this.b(b),this.a*D))},function(a,b){a=this.b(b);0==R(a,this.a)&&L(this,this.f+1);this.c(b,Y(a,this.a))},function(a,b){a=this.b(b);var c=this.a*D;0==R(a,c)&&L(this,this.f+1);this.c(b,Y(a,c))},function(a,b){L(this,this.f+1);this.c(b,Y(this.b(b),this.a))},function(a,b){L(this,this.f+1);this.c(b,Y(this.b(b),this.a*D))},function(a,b){a=this.b(b);0!=R(a,this.a)&&L(this,this.f+1);this.c(b,Y(a,this.a))},function(a,b){a=this.b(b);var c=this.a*D;0!=R(a,c)&&L(this,this.f+1);
this.c(b,Y(a,c))},function(a,b){this.c(b,Y(this.b(b),this.b(this.a)))},function(a,b){this.c(b,Y(this.b(b),Z(this.b(this.a))))},function(a,b){a=this.b(b);var c=this.b(this.a);0==R(a,c)&&L(this,this.f+1);this.c(b,Y(a,c))},function(a,b){a=this.b(b);var c=Z(this.b(this.a));0==R(a,c)&&L(this,this.f+1);this.c(b,Y(a,c))},function(a,b){L(this,this.f+1);this.c(b,Y(this.b(b),this.b(this.a)))},function(a,b){L(this,this.f+1);this.c(b,Y(this.b(b),Z(this.b(this.a))))},function(a,b){a=this.b(b);var c=this.b(this.a);
0!=R(a,c)&&L(this,this.f+1);this.c(b,Y(a,c))},function(a,b){a=this.b(b);var c=Z(this.b(this.a));0!=R(a,c)&&L(this,this.f+1);this.c(b,Y(a,c))},function(a,b){this.c(b,V(this.b(b),this.a))},function(a,b){this.c(b,V(this.b(b),this.a*D))},function(a,b){a=this.b(b);0==R(a,this.a)&&L(this,this.f+1);this.c(b,V(a,this.a))},function(a,b){a=this.b(b);0==R(a,this.a*D)&&L(this,this.f+1);this.c(b,V(a,this.a*D))},function(a,b){L(this,this.f+1);this.c(b,V(this.b(b),this.a))},function(a,b){L(this,this.f+1);this.c(b,
V(this.b(b),this.a*D))},function(a,b){a=this.b(b);0!=R(a,this.a)&&L(this,this.f+1);this.c(b,V(a,this.a))},function(a,b){a=this.b(b);var c=this.a*D;0!=R(a,c)&&L(this,this.f+1);this.c(b,V(a,c))},function(a,b){this.c(b,V(this.b(b),this.b(this.a)))},function(a,b){this.c(b,V(this.b(b),Z(this.b(this.a))))},function(a,b){a=this.b(b);var c=this.b(this.a);0==R(a,c)&&L(this,this.f+1);this.c(b,V(a,c))},function(a,b){a=this.b(b);var c=Z(this.b(this.a));0==R(a,c)&&L(this,this.f+1);this.c(b,V(a,c))},function(a,
b){L(this,this.f+1);this.c(b,V(this.b(b),this.b(this.a)))},function(a,b){L(this,this.f+1);this.c(b,V(this.b(b),Z(this.b(this.a))))},function(a,b){a=this.b(b);var c=this.b(this.a);0!=R(a,c)&&L(this,this.f+1);this.c(b,V(a,c))},function(a,b){a=this.b(b);var c=Z(this.b(this.a));0!=R(a,c)&&L(this,this.f+1);this.c(b,V(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],Wc=[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 jd(a){u.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=sa(this.i);if(this.i){a=this.i;var b=ta(this.o);"json"!=b&&"hex"!=b&&(a=va()+"/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):(Sa(c.ua,a,b),(a=Ca(a,b))?(c.a=a.I,c.O=a.O):c.i=null);kd(c)})}}l(jd,u);
jd.prototype.aa=function(a,b,c,d){this.s=b;this.j=c;this.w=d;kd(this)};jd.prototype.W=function(){this.O&&(this.w&&this.w.a(this.id,this.l,this.g,this.O),delete this.O);return!0};jd.prototype.R=function(){return!0};
function kd(a){if(!fb(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 ("+ra(a.a.length,8,!0)+") does not match specified size ("+ra(a.g,8,!0)+")";a.h.error=!0;a.G(b)}else{b=a.l;if(Rb(a.s,b,a.g,Zb)){var c;for(c=0;c<a.a.length;c++)Mb(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,k=[],m=d.l>>>f.f;0<g&&m<f.a.length;)k.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=k[g++];if(!m)break;f.a[e++]=m;d-=16384}}delete a.a}}}A(a)}}La(function(){for(var a=x(document,w,"rom"),b=0;b<a.length;b++){var c=a[b],d=y(c);d=new jd(d);Xa(d,c)}});
function ld(a){u.call(this,"RAM",a);this.O=this.Z=null;this.f=+a.addr;this.g=+a.size;this.U=a.load;this.T=a.exec;null!=this.U&&(this.U=+this.U);null!=this.T&&(this.T=+this.T);this.i=this.o=!1;this.a=a.file;this.l=sa(this.a);if(this.a){a=this.a;var b=ta(this.l);"json"!=b&&"hex"!=b&&(a=va()+"/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):(Sa(c.ua,a,b),(a=Ca(a,b))?(c.Z=a.Z,c.O=a.O,null==
c.U&&(c.U=a.U),null==c.T&&(c.T=a.T)):c.a=null);md(c)})}}l(ld,u);ld.prototype.aa=function(a,b,c,d){this.s=b;this.j=c;this.w=d;md(this)};ld.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};ld.prototype.R=function(){return!0};
function md(a){if(a.s&&(!a.i&&a.g&&(Rb(a.s,a.f,a.g,1)?a.i=!0:a.g=0),!fb(a))){if(!a.i)q("No RAM allocated");else if(a.a){if(!a.Z)return;nd(a,a.Z,a.U,a.T,a.f)?a.status('Loaded image "'+a.l+'"'):a.G('Error loading image "'+a.l+'"')}a.o=!0;A(a)}}
ld.prototype.reset=function(){if(this.i&&!this.o){var a=this.s,b=this.f,c=this.g,d=b&16383;for(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>=-F&&(g+=H);g=Math.trunc(Math.abs(g))%H;for(var k=d;f--&&k<e.size;k++)e.j(g,d,e.fa+d);c-=16384;b++;d=0}this.Z&&nd(this,this.Z,this.U,this.T,this.f,!this.w)}this.o=!1};
function nd(a,b,c,d,e,f){var g=!1;null==c&&(c=e);if(null!=c){for(g=0;g<b.length;g++)Mb(a.s,c+g,b[g]);g=!0}g&&(null==d&&(M(a.j),f=!1),null!=d&&(a=a.j,a.ta=d,L(a,d),f?a.h.F?a.h.B||Gb(a):a.h.K=!0:a.w&&a.h.F?M(a)||a.v.h.reset||(a.w.g(),Kb(a.v,-1)):!1===f&&M(a),!a.h.B&&a.sa&&a.sa.stop()));return g}La(function(){for(var a=x(document,w,"ram"),b=0;b<a.length;b++){var c=a[b],d=y(c);d=new ld(d);Xa(d,c)}});
function od(a){u.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=pd;b&&(void 0===c&&(c="Panel"),(c=z(c,this.id))&&(b=c.m[b])&&this.V(null,a,b))}this.a=this.l=null;this.exports={connect:this.ab,receiveData:this.Ca,receiveStatus:this.xb,setConnection:this.Ab}}l(od,u);h=od.prototype;
h.V=function(a,b,c){var d=this;switch(b){case pd: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.Ta:n.fb:46==c?b=n.Ta:a.ctrlKey&&c>=n.Sa&&c<=n.gb&&(b=c-(n.Sa-n.bb));b&&(a.preventDefault&&a.preventDefault(),d.Ca(b));return!0},c.onkeypress=function(a){a=a||window.event;if(!a.metaKey){var b=a.which||a.keyCode;a.altKey&&b==n.eb&&(b=n.cb);d.Ca(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.Ca(a.getData("Text"))},c.removeAttribute("readonly"),!0}return!1};h.aa=function(a,b,c,d){this.v=a;this.s=b;this.j=c;this.w=d;A(this)};
h.ab=function(a){if(!this.a){var b=hc(this.v,"connection");if(b){var c=b.split("->");if(2==c.length){var d=ya(c[0]);if(d!=this.Wa)return;c=ya(c[1]);if(this.a=Za(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.ua+"."+d+" to "+c);return}}}}this.status("Unable to establish connection: "+b)}}};h.W=function(a,b){if(!b)if(this.ab(this.g),!a)this.reset();else if(!this.restore(a))return!1;return!0};
h.R=function(a){return a?this.save():!0};h.reset=function(){};h.save=function(){var a=new K(this);a.set(0,[]);return a.data()};h.restore=function(){return!0};h.Ca=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};h.xb=function(){};h.Ab=function(a,b){return this.a?!1:(this.a=a,this.l=b,!0)};var pd="buffer";
La(function(){for(var a=x(document,w,"serial"),b=0;b<a.length;b++){var c=a[b],d=y(c);d=new od(d);Xa(d,c)}});
function qd(a,b,c){u.call(this,"Computer",a);this.h.F=!1;this.M=null;rd(this,b);this.J=hc(this,"autoPower",a,6);this.i=0;this.X=+a.busWidth||+a.buswidth;this.C=this.o=this.D=null;this.A=this.S=!1;this.u=this.l=null;this.P=this.L=!1;this.Y=hc(this,"url")||"";(Math.random()+.1).toString(36);this.f=sd(this);if(this.j=z("CPU",this.id)){this.w=z("Debugger",this.id);this.s=new Nb({id:this.ua+".bus",busWidth:this.X},this.j,this.w);var d=Ya(this.id);if(this.H=(this.g=z("Panel",this.id))&&this.g.m.print)for(b=
0;b<d.length;b++){var e=d[b];e.G=this.g.G;e.print=this.g.print;e.N=this.g.N}this.N(hb+" v1.37.0\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<d.length;b++)e=d[b],e.aa&&e.aa(this,this.s,this.j,this.w);b=null;e=hc(this,"resume",a);void 0!==e&&(1<e.length?b=this.o=e:this.a=parseInt(e,10));var f;if(a=hc(this,"state")||(f=!0,a.state))this.D=b=a,f||(this.A=!0,this.a=td),this.a&&(this.u=new K(this,"1.37.0"),ud(this.u)?
b=null:delete this.u);!b&&this.a&&(b=vd(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?": "+ya(b):"")+")")):(g.C=b,g.S=!0);A(g)})}else A(this);this.m.power||(this.J=!0);!c&&this.J&&wd(this,this.ra)}else q("Unable to find CPU component")}l(qd,u);function rd(a,b){if(!b){var c;if("object"==typeof resources&&(c=resources.parms))try{b=eval("("+c+")")}catch(d){q(d.message+" ("+c+")")}}a.M=b}
function hc(a,b,c,d){var e=b.toLowerCase();e=Ia(b)||Ia(e);void 0===e&&a.M&&(e=a.M[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 wd(a,b,c){for(var d=Ya(a.id),e=0;e<=d.length;e++){var f=e<d.length?d[e]:a;if(!fb(f)){fb(f,function(){wd(a,b,c)});return}}b.call(a,c)}
function xd(a,b){var c=new K(a,"1.37.0",yd);if(ud(c)&&zd(c)){var d=c.get(Ad),e=b?b.get(Ad):"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())}}h=qd.prototype;
h.ra=function(a){void 0===a&&(a=this.a||(this.C?Bd:td));if(!this.i){this.i++;var b=!1,c=!1;this.L=!1;var d=this.u||new K(this,"1.37.0");if(a==Cd)b=!0;else if(a>td){if(ud(d,this.C)){this.l=new K(this,"1.37.0",Dd);ud(this.l)&&(Ed(this,d),a=Fd,Gd(this.l));this.l.set(Ad,za());Hd(this.l);var e=this.a&&!this.A;if(a==Bd||Va("Click OK to restore the previous "+hb+" machine state, or CANCEL to reset the machine.")){if(c=zd(d)){var f=d.get("code"),g=d.get("data");f&&("ok"==f?ud(d,g):("error"==f&&"no machine state"!=
g?(this.G("Error: "+g),"unable to verify user"==g&&(Ga(Id,""),this.f=null)):this.N(f+": "+g),Gd(d),ud(d)?(c=zd(d),e=!0):c=!1))}e&&xd(this,c?d:null)}else a==Fd&&d.clear()}else xd(this);delete this.C;delete this.u}e=Ya(this.id);for(f=0;f<e.length;f++)g=e[f],g!==this&&g!=this.j&&(c=Jd(this,g,d,b,c));b=[d,a,c];a!=Cd?wd(this,this.Za,b):this.Za(b)}};
function Jd(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.S?(c.clear(),a.a=td,window&&window.location.reload()):a.L=!0,b.W(null),e=!1),!d&&b.Ra){var g=b.Ra.split("|");for(a=0;a<g.length;a++)b.status(g[a])}}catch(k){q("Error restoring state for "+b.type+" ("+k.message+")")}}return e}
h.Za=function(a){var b=a[0],c=0>a[1];a=a[2];this.P=!0;this.h.F=!0;var d=this.m.power;d&&(d.textContent="Shutdown");this.j&&(Jd(this,this.j,b,c,a),Kb(this,-2),this.j.K());this.L&&(Ed(this,b),b.clear());!c&&this.l&&(this.l.clear(),delete this.l);this.i=0};
function Ed(a,b){if(Va("There may be a problem with your "+hb+" machine.\n\nTo help us diagnose it, click OK to send this "+hb+" machine state to http://www.pcjs.org.")){var c=a.Y;a=a.f||"";b=b.toString();var d={};d.app=hb;d.ver="1.37.0";d.url=c;d.user=a;d.type="bug";d.data=b;p("http://www.pcjs.org/api/v1/report",d,!0)}}
function Kd(a,b,c){var d="none";if(a.i)return null;a.i--;var e=new K(a,"1.37.0"),f=new K(a,"1.37.0",yd),g=za();f.set(Ad,g);e.set(Ad,g);e.set(Ld,"1.37.0");e.set(Md,window?window.location.href:null);e.set(Nd,window?window.navigator.userAgent:"");if(a.j&&a.j.R){c&&(b&&(a.j.h.K=a.j.h.B),M(a.j));var k=a.j.R(b,c);"object"===typeof k&&e.set(a.j.id,k);c&&(a.j.h.F=!1,!1===k&&(d=null))}g=Ya(a.id);for(var m=0;m<g.length;m++){var t=g[m];t.h.F&&(t.R&&(k=t.R(b,c),"object"===typeof k&&e.set(t.id,k)),c&&(t.h.F=!1,
!1===k&&(d=null)))}d&&(c?(g=k=!1,b?(a.f&&Od(a,a.f,e.toString()),Hd(f)&&Hd(e)||(d=null,k=g=!0)):a.a&&(k=!0,g=a.a==Pd),k&&e.clear(g)):d=e.toString());c&&(a.h.F=!1,b=a.m.power)&&(b.textContent="Power");a.i=0;return d}h.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=Ya(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;Kb(this,-1)};
h.start=function(a,b){for(var c=Ya(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.start&&e.start(a,b)}Kb(this,-1)};h.stop=function(a,b){for(var c=Ya(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.stop&&e.stop(a,b)}Kb(this,-1)};
function Kb(a,b){if(a.j){var c=a.j,d=b||0,e=c.m.speed;e&&(0>=d||30<=(c.Ga+=d))&&(e.textContent=c.h.B?c.X.toFixed(2)+"Mhz":"Stopped",c.Ga=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?qa(e,void 0):ra(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.ja);yb(a,a.f);sb(a,a.i)}}
h.V=function(a,b,c){var d=this;switch(b){case "power":return this.m[b]=c,c.onclick=function(){d.i||(d.h.F?Kd(d,!1,!0):wd(d,d.ra))},!0;case "reset":return this.m[b]=c,c.onclick=function(){if(d.h.F&&!d.i)if(d.a&&!d.o){var a=Va("Click OK to save changes to this "+hb+" machine.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");Kd(d,a,!0);!a&&d.D?window&&window.location.reload():d.ra(td)}else d.reset(),d.j&&!d.w&&d.j.K()},!0;case "save":if(ua())c.parentNode.removeChild(c);else return this.m[b]=
c,c.onclick=function(){var a=sd(d,!0);if(a){var b=!!(d.a&&!d.o||d.D),c=Kd(d,b);b?Od(d,a,c):d.G("Resume disabled, machine state not saved")}},!0}return!1};function sd(a,b){var c=a.f;c||((c=Fa(Id),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=Qd(a,c))||a.G("The user ID is invalid.")):b&&a.G("Browser local storage is not available"));return c}
function Qd(a,b){a.f=null;b=p(va()+"/api/v1/user?req=verify&user="+b);var c=b[1];if(!b[0]&&c)try{b=eval("("+c+")"),b.code&&"ok"==b.code&&(Ga(Id,b.data),a.f=b.data)}catch(d){q(d.message+" ("+c+")")}return a.f}function vd(a){var b=null;a.f&&(b=va()+"/api/v1/user?req=load&user="+a.f+"&state="+Rd(a,"1.37.0"));return b}
function Od(a,b,c){if(c){var d={req:"store"};d.user=b;d.state=Rd(a,"1.37.0");d.data=c;b=p(va()+"/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),Ga(Id,""),a.f=null)}}
var Dd="failsafe",yd="validate",Ad="timestamp",Ld="version",Md="url",Nd="browser",Id="user",Cd=-1,td=0,Bd=1,Fd=2,Pd=3;La(function(){for(var a=x(document,w+"-machine"),b=0;b<a.length;b++){var c=a[b],d=y(c);c=x(c,w,"computer");for(var e=0;e<c.length;e++){var f=c[e],g=y(f);g=new qd(g,d,!0);Xa(g,f);g.J&&wd(g,g.ra)}}});r.show.push(function(){for(var a=x(document,w,"computer"),b=0;b<a.length;b++){var c=y(a[b]);if(c=z("Computer",c.id))c.h.Qa=!1,c.P&&!c.h.F&&c.ra(Cd)}});
r.exit.push(function(){for(var a=x(document,w,"computer"),b=0;b<a.length;b++){var c=y(a[b]);if(c=z("Computer",c.id))c.h.Qa=!0,c.h.F&&Kd(c,!(!c.a||c.o),!0)}});function K(a,b,c){this.id=a.id;this.f="";this.a={};this.g=this.j=!1;this.key=Rd(a,b,c);Gd(this,a.jb)}h=K.prototype;h.set=function(a,b){try{this.a[a]=b}catch(c){}};h.get=function(a){return this.a[a]||null};h.data=function(){return this.a};function ud(a,b){return b?(a.f=b,a.g=!0,a.j=!1,!0):a.g?!0:Da()&&(b=Fa(a.key))?(a.f=b,a.g=!0):!1}
function zd(a){var b=!0;if(!a.j)try{a.a=JSON.parse(a.f),a.j=!0}catch(c){q(c.message||c),b=!1}return b}function Hd(a){var b=!0;if(Da()){var c=JSON.stringify(a.a);Ga(a.key,c)||(q("Unable to store "+c.length+" bytes in browser local storage"),b=!1)}return b}h.toString=function(){return this.a?JSON.stringify(this.a):this.f};function Gd(a,b){a.f="";a.a={};a.g=a.j=!1;b&&a.set("parms",b)}
h.clear=function(a){Gd(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 Rd(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 Sd=0;
function Td(a,b,c,d,e,f,g){f("Loading "+a+"...");p(a,null,!0,function(k,m,t){t?(m||(m="unable to load "+a+" ("+t+")"),g(m,null)):Ud(m,a,b,c,d,e,f,g)})}
function Ud(a,b,c,d,e,f,g,k){function m(a,g){if(g)k(g,null);else{c&&(Sa(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),e=e.replace(/\$/g,"$$$$"),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(S){g=null,a=S.message}else a="unrecognized XML: "+(255<a.length?a.substr(0,255)+"...":a);k(a,g)}}a?f?Vd(a,g,m):m(a,null):k("no data"+(b?" for file: "+
b:""),null)}
function Vd(a,b,c){var d;if(d=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g.exec(a)){var e=d[2];b("Loading "+e+"...");p(e,null,!0,function(f,g,k){if(k||!g)c(a,"unable to resolve XML reference: "+d[0]+" ("+k+")");else{if(f=d[3])if(k=g.match(new RegExp("<"+d[1]+"[^>]*>"))){for(var m=k[0],t,B=/( [a-z]+=)(['"])(.*?)\2/gi;t=B.exec(f);)m=0>m.toLowerCase().indexOf(t[1].toLowerCase())?m.replace(">",t[0]+">"):m.replace(new RegExp(t[1]+"(['\"])(.*?)\\1"),t[0]);k[0]!=m&&(g=g.replace(k[0],m))}else{c(a,"missing <"+d[1]+
"> in "+e);return}g=g.replace(/<\?xml[^>]*>[\r\n]*/,"");a=a.replace(d[0],g);Vd(a,b,c)}})}else c(a,null)}
function Wd(a,b,c,d,e){function f(a){if(void 0===m){var b=k&&x(k,"machine-warning");m=b&&b[0]||k}m&&(m.innerHTML=wa(a))}function g(a){f("Error: "+a);t&&(--Sd||Oa(!0));t=!1}var k,m,t=!0;Sd++;Ta[b]={};try{if(k=document.getElementById(b)){var B;if("object"==typeof resources&&(B=resources.css)){var S=document.head||document.getElementsByTagName("head")[0],X=document.createElement("style");X.type="text/css";X.styleSheet?X.styleSheet.cssText=B:X.appendChild(document.createTextNode(B));S.appendChild(X)}d||
(B=a,"pdp"==a.substr(0,3)&&(B="pdpjs"),d="/versions/"+B+"/1.37.0/components.xsl");B=function(e,m){m?Td(d,null,a,null,!1,f,function(a,e){e?(Sa(b,d,a),f("Processing "+c+"..."),window.ActiveXObject||"ActiveXObject"in window?(e=m.transformNode(e))?(k.outerHTML=e,--Sd||Oa(!0)):g("transformNodeToObject failed"):document.implementation&&document.implementation.createDocument?(a=new XSLTProcessor,a.importStylesheet(e),(e=a.transformToFragment(m,document))?k.parentNode?(k.parentNode.replaceChild(e,k),--Sd||
Oa(!0)):g("invalid machine element: "+b):g("transformToFragment failed")):g("unable to transform XML: unsupported browser")):g(a)}):g(e)};"<"!=c.charAt(0)?Td(c,b,a,e,!0,f,B):Ud(c,null,b,a,e,!1,f,B)}else g("missing machine element: "+b)}catch(I){g(I.message)}return t}window.embedPDP10=function(a,b,c,d){Oa(!1);return Wd("pdp10",a,b,c,d)};window.embedPDP11=function(a,b,c,d){Oa(!1);return Wd("pdp11",a,b,c,d)};
window.commandMachine=function(a,b,c,d,e,f){if("script"==e){d=!1;c+=".machine";if(!f)delete ab[c],d=!0;else if("string"==typeof f&&!ab[c]){d=!0;e=ab;for(var g=c,k=f.length,m=[],t=[],B="",S=null,X=0;X<k;X++){var I=f[X];if('"'==I||"'"==I)S&&I!=S?B+=I:(S?S=null:S=I,B&&(t.push(B),B=""));else{if(!S){if("\r"==I||"\n"==I)I=";";if(" "==I||"\t"==I||";"==I){B&&(t.push(B),B="");";"==I&&t.length&&(m.push(t),t=[]);continue}}B+=I}}B&&t.push(B);t.length&&m.push(t);e[g]=m;$a(c)||(d=!1)}return d?(b&&(a.disabled=!0),
!0):!1}if(d&&(g=z(d,c+".machine"))&&(k=g.exports)&&(k=k[e]))return k.call(g,f)?(b&&(a.disabled=!0),!0):!1;console.log("unimplemented: commandMachine('"+c+"','"+d+"','"+e+"','"+f+"')");return!1};window.enableEvents=Oa;window.sendEvent=Qa;})();//# sourceMappingURL=/versions/pdpjs/1.37.0/pdp10.map