1
0
mirror of https://github.com/sehugg/8bitworkshop.git synced 2024-05-28 23:41:32 +00:00
8bitworkshop/gen/chunk-A3GHABOL.js

49 lines
221 KiB
JavaScript

import{a as en,b as Xo}from"./chunk-YT7MMFDW.js";import{a as Ps}from"./chunk-5SHCNQ2O.js";import{a as As,b as Ds,c as Qo}from"./chunk-D6UER3F3.js";import{D as ua,J as ca,l as Z,u as Cs,v as ks}from"./chunk-VFG63MRQ.js";import{D as Ft,E as sa,F as Lr,I as Ss,J as oa,S as la,U as _s,a as Dt,aa as Zi,b as ii,ba as Ts,ca as ni,d as wt,e as aa,f as ht,g as Fe,j as ys,l as Yi,m as Xi,n as Qi,o as mr,p as xs,s as Ji,v as ws,w as Es,x as Ki,y as pt,z as Fr}from"./chunk-JC7DT6V7.js";import{b as ri,c as bs,e as na}from"./chunk-5XVCUSSZ.js";var da=bs((Fs,fa)=>{(function(l){if(typeof Fs=="object"&&typeof fa!="undefined")fa.exports=l();else if(typeof define=="function"&&define.amd)define([],l);else{var t;typeof window!="undefined"?t=window:typeof global!="undefined"?t=global:typeof self!="undefined"?t=self:t=this,t.localforage=l()}})(function(){var l,t,i;return function a(u,d,m){function y(W,ue){if(!d[W]){if(!u[W]){var j=typeof ri=="function"&&ri;if(!ue&&j)return j(W,!0);if(b)return b(W,!0);var U=new Error("Cannot find module '"+W+"'");throw U.code="MODULE_NOT_FOUND",U}var G=d[W]={exports:{}};u[W][0].call(G.exports,function(de){var K=u[W][1][de];return y(K||de)},G,G.exports,a,u,d,m)}return d[W].exports}for(var b=typeof ri=="function"&&ri,L=0;L<m.length;L++)y(m[L]);return y}({1:[function(a,u,d){(function(m){"use strict";var y=m.MutationObserver||m.WebKitMutationObserver,b;if(y){var L=0,W=new y(de),ue=m.document.createTextNode("");W.observe(ue,{characterData:!0}),b=function(){ue.data=L=++L%2}}else if(!m.setImmediate&&typeof m.MessageChannel!="undefined"){var j=new m.MessageChannel;j.port1.onmessage=de,b=function(){j.port2.postMessage(0)}}else"document"in m&&"onreadystatechange"in m.document.createElement("script")?b=function(){var ye=m.document.createElement("script");ye.onreadystatechange=function(){de(),ye.onreadystatechange=null,ye.parentNode.removeChild(ye),ye=null},m.document.documentElement.appendChild(ye)}:b=function(){setTimeout(de,0)};var U,G=[];function de(){U=!0;for(var ye,Pe,be=G.length;be;){for(Pe=G,G=[],ye=-1;++ye<be;)Pe[ye]();be=G.length}U=!1}u.exports=K;function K(ye){G.push(ye)===1&&!U&&b()}}).call(this,typeof global!="undefined"?global:typeof self!="undefined"?self:typeof window!="undefined"?window:{})},{}],2:[function(a,u,d){"use strict";var m=a(1);function y(){}var b={},L=["REJECTED"],W=["FULFILLED"],ue=["PENDING"];u.exports=j;function j(Y){if(typeof Y!="function")throw new TypeError("resolver must be a function");this.state=ue,this.queue=[],this.outcome=void 0,Y!==y&&K(this,Y)}j.prototype.catch=function(Y){return this.then(null,Y)},j.prototype.then=function(Y,ae){if(typeof Y!="function"&&this.state===W||typeof ae!="function"&&this.state===L)return this;var se=new this.constructor(y);if(this.state!==ue){var Te=this.state===W?Y:ae;G(se,Te,this.outcome)}else this.queue.push(new U(se,Y,ae));return se};function U(Y,ae,se){this.promise=Y,typeof ae=="function"&&(this.onFulfilled=ae,this.callFulfilled=this.otherCallFulfilled),typeof se=="function"&&(this.onRejected=se,this.callRejected=this.otherCallRejected)}U.prototype.callFulfilled=function(Y){b.resolve(this.promise,Y)},U.prototype.otherCallFulfilled=function(Y){G(this.promise,this.onFulfilled,Y)},U.prototype.callRejected=function(Y){b.reject(this.promise,Y)},U.prototype.otherCallRejected=function(Y){G(this.promise,this.onRejected,Y)};function G(Y,ae,se){m(function(){var Te;try{Te=ae(se)}catch(He){return b.reject(Y,He)}Te===Y?b.reject(Y,new TypeError("Cannot resolve promise with itself")):b.resolve(Y,Te)})}b.resolve=function(Y,ae){var se=ye(de,ae);if(se.status==="error")return b.reject(Y,se.value);var Te=se.value;if(Te)K(Y,Te);else{Y.state=W,Y.outcome=ae;for(var He=-1,Ie=Y.queue.length;++He<Ie;)Y.queue[He].callFulfilled(ae)}return Y},b.reject=function(Y,ae){Y.state=L,Y.outcome=ae;for(var se=-1,Te=Y.queue.length;++se<Te;)Y.queue[se].callRejected(ae);return Y};function de(Y){var ae=Y&&Y.then;if(Y&&(typeof Y=="object"||typeof Y=="function")&&typeof ae=="function")return function(){ae.apply(Y,arguments)}}function K(Y,ae){var se=!1;function Te(Xe){se||(se=!0,b.reject(Y,Xe))}function He(Xe){se||(se=!0,b.resolve(Y,Xe))}function Ie(){ae(He,Te)}var tt=ye(Ie);tt.status==="error"&&Te(tt.value)}function ye(Y,ae){var se={};try{se.value=Y(ae),se.status="success"}catch(Te){se.status="error",se.value=Te}return se}j.resolve=Pe;function Pe(Y){return Y instanceof this?Y:b.resolve(new this(y),Y)}j.reject=be;function be(Y){var ae=new this(y);return b.reject(ae,Y)}j.all=_e;function _e(Y){var ae=this;if(Object.prototype.toString.call(Y)!=="[object Array]")return this.reject(new TypeError("must be an array"));var se=Y.length,Te=!1;if(!se)return this.resolve([]);for(var He=new Array(se),Ie=0,tt=-1,Xe=new this(y);++tt<se;)mt(Y[tt],tt);return Xe;function mt(ir,Er){ae.resolve(ir).then(Nr,function(Gt){Te||(Te=!0,b.reject(Xe,Gt))});function Nr(Gt){He[Er]=Gt,++Ie===se&&!Te&&(Te=!0,b.resolve(Xe,He))}}}j.race=o;function o(Y){var ae=this;if(Object.prototype.toString.call(Y)!=="[object Array]")return this.reject(new TypeError("must be an array"));var se=Y.length,Te=!1;if(!se)return this.resolve([]);for(var He=-1,Ie=new this(y);++He<se;)tt(Y[He]);return Ie;function tt(Xe){ae.resolve(Xe).then(function(mt){Te||(Te=!0,b.resolve(Ie,mt))},function(mt){Te||(Te=!0,b.reject(Ie,mt))})}}},{"1":1}],3:[function(a,u,d){(function(m){"use strict";typeof m.Promise!="function"&&(m.Promise=a(2))}).call(this,typeof global!="undefined"?global:typeof self!="undefined"?self:typeof window!="undefined"?window:{})},{"2":2}],4:[function(a,u,d){"use strict";var m=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(p){return typeof p}:function(p){return p&&typeof Symbol=="function"&&p.constructor===Symbol&&p!==Symbol.prototype?"symbol":typeof p};function y(p,S){if(!(p instanceof S))throw new TypeError("Cannot call a class as a function")}function b(){try{if(typeof indexedDB!="undefined")return indexedDB;if(typeof webkitIndexedDB!="undefined")return webkitIndexedDB;if(typeof mozIndexedDB!="undefined")return mozIndexedDB;if(typeof OIndexedDB!="undefined")return OIndexedDB;if(typeof msIndexedDB!="undefined")return msIndexedDB}catch(p){return}}var L=b();function W(){try{if(!L||!L.open)return!1;var p=typeof openDatabase!="undefined"&&/(Safari|iPhone|iPad|iPod)/.test(navigator.userAgent)&&!/Chrome/.test(navigator.userAgent)&&!/BlackBerry/.test(navigator.platform),S=typeof fetch=="function"&&fetch.toString().indexOf("[native code")!==-1;return(!p||S)&&typeof indexedDB!="undefined"&&typeof IDBKeyRange!="undefined"}catch(v){return!1}}function ue(p,S){p=p||[],S=S||{};try{return new Blob(p,S)}catch(T){if(T.name!=="TypeError")throw T;for(var v=typeof BlobBuilder!="undefined"?BlobBuilder:typeof MSBlobBuilder!="undefined"?MSBlobBuilder:typeof MozBlobBuilder!="undefined"?MozBlobBuilder:WebKitBlobBuilder,_=new v,P=0;P<p.length;P+=1)_.append(p[P]);return _.getBlob(S.type)}}typeof Promise=="undefined"&&a(3);var j=Promise;function U(p,S){S&&p.then(function(v){S(null,v)},function(v){S(v)})}function G(p,S,v){typeof S=="function"&&p.then(S),typeof v=="function"&&p.catch(v)}function de(p){return typeof p!="string"&&(console.warn(p+" used as a key, but it is not a string."),p=String(p)),p}function K(){if(arguments.length&&typeof arguments[arguments.length-1]=="function")return arguments[arguments.length-1]}var ye="local-forage-detect-blob-support",Pe=void 0,be={},_e=Object.prototype.toString,o="readonly",Y="readwrite";function ae(p){for(var S=p.length,v=new ArrayBuffer(S),_=new Uint8Array(v),P=0;P<S;P++)_[P]=p.charCodeAt(P);return v}function se(p){return new j(function(S){var v=p.transaction(ye,Y),_=ue([""]);v.objectStore(ye).put(_,"key"),v.onabort=function(P){P.preventDefault(),P.stopPropagation(),S(!1)},v.oncomplete=function(){var P=navigator.userAgent.match(/Chrome\/(\d+)/),T=navigator.userAgent.match(/Edge\//);S(T||!P||parseInt(P[1],10)>=43)}}).catch(function(){return!1})}function Te(p){return typeof Pe=="boolean"?j.resolve(Pe):se(p).then(function(S){return Pe=S,Pe})}function He(p){var S=be[p.name],v={};v.promise=new j(function(_,P){v.resolve=_,v.reject=P}),S.deferredOperations.push(v),S.dbReady?S.dbReady=S.dbReady.then(function(){return v.promise}):S.dbReady=v.promise}function Ie(p){var S=be[p.name],v=S.deferredOperations.pop();if(v)return v.resolve(),v.promise}function tt(p,S){var v=be[p.name],_=v.deferredOperations.pop();if(_)return _.reject(S),_.promise}function Xe(p,S){return new j(function(v,_){if(be[p.name]=be[p.name]||nr(),p.db)if(S)He(p),p.db.close();else return v(p.db);var P=[p.name];S&&P.push(p.version);var T=L.open.apply(L,P);S&&(T.onupgradeneeded=function(N){var z=T.result;try{z.createObjectStore(p.storeName),N.oldVersion<=1&&z.createObjectStore(ye)}catch(V){if(V.name==="ConstraintError")console.warn('The database "'+p.name+'" has been upgraded from version '+N.oldVersion+" to version "+N.newVersion+', but the storage "'+p.storeName+'" already exists.');else throw V}}),T.onerror=function(N){N.preventDefault(),_(T.error)},T.onsuccess=function(){var N=T.result;N.onversionchange=function(z){z.target.close()},v(N),Ie(p)}})}function mt(p){return Xe(p,!1)}function ir(p){return Xe(p,!0)}function Er(p,S){if(!p.db)return!0;var v=!p.db.objectStoreNames.contains(p.storeName),_=p.version<p.db.version,P=p.version>p.db.version;if(_&&(p.version!==S&&console.warn('The database "'+p.name+`" can't be downgraded from version `+p.db.version+" to version "+p.version+"."),p.version=p.db.version),P||v){if(v){var T=p.db.version+1;T>p.version&&(p.version=T)}return!0}return!1}function Nr(p){return new j(function(S,v){var _=new FileReader;_.onerror=v,_.onloadend=function(P){var T=btoa(P.target.result||"");S({__local_forage_encoded_blob:!0,data:T,type:p.type})},_.readAsBinaryString(p)})}function Gt(p){var S=ae(atob(p.data));return ue([S],{type:p.type})}function Or(p){return p&&p.__local_forage_encoded_blob}function vt(p){var S=this,v=S._initReady().then(function(){var _=be[S._dbInfo.name];if(_&&_.dbReady)return _.dbReady});return G(v,p,p),v}function _n(p){He(p);for(var S=be[p.name],v=S.forages,_=0;_<v.length;_++){var P=v[_];P._dbInfo.db&&(P._dbInfo.db.close(),P._dbInfo.db=null)}return p.db=null,mt(p).then(function(T){return p.db=T,Er(p)?ir(p):T}).then(function(T){p.db=S.db=T;for(var N=0;N<v.length;N++)v[N]._dbInfo.db=T}).catch(function(T){throw tt(p,T),T})}function Qe(p,S,v,_){_===void 0&&(_=1);try{var P=p.db.transaction(p.storeName,S);v(null,P)}catch(T){if(_>0&&(!p.db||T.name==="InvalidStateError"||T.name==="NotFoundError"))return j.resolve().then(function(){if(!p.db||T.name==="NotFoundError"&&!p.db.objectStoreNames.contains(p.storeName)&&p.version<=p.db.version)return p.db&&(p.version=p.db.version+1),ir(p)}).then(function(){return _n(p).then(function(){Qe(p,S,v,_-1)})}).catch(v);v(T)}}function nr(){return{forages:[],db:null,dbReady:null,deferredOperations:[]}}function _i(p){var S=this,v={db:null};if(p)for(var _ in p)v[_]=p[_];var P=be[v.name];P||(P=nr(),be[v.name]=P),P.forages.push(S),S._initReady||(S._initReady=S.ready,S.ready=vt);var T=[];function N(){return j.resolve()}for(var z=0;z<P.forages.length;z++){var V=P.forages[z];V!==S&&T.push(V._initReady().catch(N))}var q=P.forages.slice(0);return j.all(T).then(function(){return v.db=P.db,mt(v)}).then(function(X){return v.db=X,Er(v,S._defaultConfig.version)?ir(v):X}).then(function(X){v.db=P.db=X,S._dbInfo=v;for(var te=0;te<q.length;te++){var xe=q[te];xe!==S&&(xe._dbInfo.db=v.db,xe._dbInfo.version=v.version)}})}function Tn(p,S){var v=this;p=de(p);var _=new j(function(P,T){v.ready().then(function(){Qe(v._dbInfo,o,function(N,z){if(N)return T(N);try{var V=z.objectStore(v._dbInfo.storeName),q=V.get(p);q.onsuccess=function(){var X=q.result;X===void 0&&(X=null),Or(X)&&(X=Gt(X)),P(X)},q.onerror=function(){T(q.error)}}catch(X){T(X)}})}).catch(T)});return U(_,S),_}function $r(p,S){var v=this,_=new j(function(P,T){v.ready().then(function(){Qe(v._dbInfo,o,function(N,z){if(N)return T(N);try{var V=z.objectStore(v._dbInfo.storeName),q=V.openCursor(),X=1;q.onsuccess=function(){var te=q.result;if(te){var xe=te.value;Or(xe)&&(xe=Gt(xe));var Ce=p(xe,te.key,X++);Ce!==void 0?P(Ce):te.continue()}else P()},q.onerror=function(){T(q.error)}}catch(te){T(te)}})}).catch(T)});return U(_,S),_}function Sr(p,S,v){var _=this;p=de(p);var P=new j(function(T,N){var z;_.ready().then(function(){return z=_._dbInfo,_e.call(S)==="[object Blob]"?Te(z.db).then(function(V){return V?S:Nr(S)}):S}).then(function(V){Qe(_._dbInfo,Y,function(q,X){if(q)return N(q);try{var te=X.objectStore(_._dbInfo.storeName);V===null&&(V=void 0);var xe=te.put(V,p);X.oncomplete=function(){V===void 0&&(V=null),T(V)},X.onabort=X.onerror=function(){var Ce=xe.error?xe.error:xe.transaction.error;N(Ce)}}catch(Ce){N(Ce)}})}).catch(N)});return U(P,v),P}function St(p,S){var v=this;p=de(p);var _=new j(function(P,T){v.ready().then(function(){Qe(v._dbInfo,Y,function(N,z){if(N)return T(N);try{var V=z.objectStore(v._dbInfo.storeName),q=V.delete(p);z.oncomplete=function(){P()},z.onerror=function(){T(q.error)},z.onabort=function(){var X=q.error?q.error:q.transaction.error;T(X)}}catch(X){T(X)}})}).catch(T)});return U(_,S),_}function Cn(p){var S=this,v=new j(function(_,P){S.ready().then(function(){Qe(S._dbInfo,Y,function(T,N){if(T)return P(T);try{var z=N.objectStore(S._dbInfo.storeName),V=z.clear();N.oncomplete=function(){_()},N.onabort=N.onerror=function(){var q=V.error?V.error:V.transaction.error;P(q)}}catch(q){P(q)}})}).catch(P)});return U(v,p),v}function kn(p){var S=this,v=new j(function(_,P){S.ready().then(function(){Qe(S._dbInfo,o,function(T,N){if(T)return P(T);try{var z=N.objectStore(S._dbInfo.storeName),V=z.count();V.onsuccess=function(){_(V.result)},V.onerror=function(){P(V.error)}}catch(q){P(q)}})}).catch(P)});return U(v,p),v}function Pn(p,S){var v=this,_=new j(function(P,T){if(p<0){P(null);return}v.ready().then(function(){Qe(v._dbInfo,o,function(N,z){if(N)return T(N);try{var V=z.objectStore(v._dbInfo.storeName),q=!1,X=V.openKeyCursor();X.onsuccess=function(){var te=X.result;if(!te){P(null);return}p===0||q?P(te.key):(q=!0,te.advance(p))},X.onerror=function(){T(X.error)}}catch(te){T(te)}})}).catch(T)});return U(_,S),_}function bt(p){var S=this,v=new j(function(_,P){S.ready().then(function(){Qe(S._dbInfo,o,function(T,N){if(T)return P(T);try{var z=N.objectStore(S._dbInfo.storeName),V=z.openKeyCursor(),q=[];V.onsuccess=function(){var X=V.result;if(!X){_(q);return}q.push(X.key),X.continue()},V.onerror=function(){P(V.error)}}catch(X){P(X)}})}).catch(P)});return U(v,p),v}function ar(p,S){S=K.apply(this,arguments);var v=this.config();p=typeof p!="function"&&p||{},p.name||(p.name=p.name||v.name,p.storeName=p.storeName||v.storeName);var _=this,P;if(!p.name)P=j.reject("Invalid arguments");else{var T=p.name===v.name&&_._dbInfo.db,N=T?j.resolve(_._dbInfo.db):mt(p).then(function(z){var V=be[p.name],q=V.forages;V.db=z;for(var X=0;X<q.length;X++)q[X]._dbInfo.db=z;return z});p.storeName?P=N.then(function(z){if(!!z.objectStoreNames.contains(p.storeName)){var V=z.version+1;He(p);var q=be[p.name],X=q.forages;z.close();for(var te=0;te<X.length;te++){var xe=X[te];xe._dbInfo.db=null,xe._dbInfo.version=V}var Ce=new j(function(Ee,We){var Me=L.open(p.name,V);Me.onerror=function(at){var Kt=Me.result;Kt.close(),We(at)},Me.onupgradeneeded=function(){var at=Me.result;at.deleteObjectStore(p.storeName)},Me.onsuccess=function(){var at=Me.result;at.close(),Ee(at)}});return Ce.then(function(Ee){q.db=Ee;for(var We=0;We<X.length;We++){var Me=X[We];Me._dbInfo.db=Ee,Ie(Me._dbInfo)}}).catch(function(Ee){throw(tt(p,Ee)||j.resolve()).catch(function(){}),Ee})}}):P=N.then(function(z){He(p);var V=be[p.name],q=V.forages;z.close();for(var X=0;X<q.length;X++){var te=q[X];te._dbInfo.db=null}var xe=new j(function(Ce,Ee){var We=L.deleteDatabase(p.name);We.onerror=function(){var Me=We.result;Me&&Me.close(),Ee(We.error)},We.onblocked=function(){console.warn('dropInstance blocked for database "'+p.name+'" until all open connections are closed')},We.onsuccess=function(){var Me=We.result;Me&&Me.close(),Ce(Me)}});return xe.then(function(Ce){V.db=Ce;for(var Ee=0;Ee<q.length;Ee++){var We=q[Ee];Ie(We._dbInfo)}}).catch(function(Ce){throw(tt(p,Ce)||j.resolve()).catch(function(){}),Ce})})}return U(P,S),P}var sr={_driver:"asyncStorage",_initStorage:_i,_support:W(),iterate:$r,getItem:Tn,setItem:Sr,removeItem:St,clear:Cn,length:kn,key:Pn,keys:bt,dropInstance:ar};function le(){return typeof openDatabase=="function"}var $e="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",An="~~local_forage_type~",Ti=/^~~local_forage_type~([^~]+)~/,_r="__lfsc__:",Tr=_r.length,Cr="arbf",It="blob",yt="si08",At="ui08",Mt="uic8",Ci="si16",or="si32",Wr="ur16",jr="ui32",ki="fl32",Nt="fl64",Yt=Tr+Cr.length,Br=Object.prototype.toString;function Hr(p){var S=p.length*.75,v=p.length,_,P=0,T,N,z,V;p[p.length-1]==="="&&(S--,p[p.length-2]==="="&&S--);var q=new ArrayBuffer(S),X=new Uint8Array(q);for(_=0;_<v;_+=4)T=$e.indexOf(p[_]),N=$e.indexOf(p[_+1]),z=$e.indexOf(p[_+2]),V=$e.indexOf(p[_+3]),X[P++]=T<<2|N>>4,X[P++]=(N&15)<<4|z>>2,X[P++]=(z&3)<<6|V&63;return q}function Je(p){var S=new Uint8Array(p),v="",_;for(_=0;_<S.length;_+=3)v+=$e[S[_]>>2],v+=$e[(S[_]&3)<<4|S[_+1]>>4],v+=$e[(S[_+1]&15)<<2|S[_+2]>>6],v+=$e[S[_+2]&63];return S.length%3==2?v=v.substring(0,v.length-1)+"=":S.length%3==1&&(v=v.substring(0,v.length-2)+"=="),v}function Ke(p,S){var v="";if(p&&(v=Br.call(p)),p&&(v==="[object ArrayBuffer]"||p.buffer&&Br.call(p.buffer)==="[object ArrayBuffer]")){var _,P=_r;p instanceof ArrayBuffer?(_=p,P+=Cr):(_=p.buffer,v==="[object Int8Array]"?P+=yt:v==="[object Uint8Array]"?P+=At:v==="[object Uint8ClampedArray]"?P+=Mt:v==="[object Int16Array]"?P+=Ci:v==="[object Uint16Array]"?P+=Wr:v==="[object Int32Array]"?P+=or:v==="[object Uint32Array]"?P+=jr:v==="[object Float32Array]"?P+=ki:v==="[object Float64Array]"?P+=Nt:S(new Error("Failed to get type for BinaryArray"))),S(P+Je(_))}else if(v==="[object Blob]"){var T=new FileReader;T.onload=function(){var N=An+p.type+"~"+Je(this.result);S(_r+It+N)},T.readAsArrayBuffer(p)}else try{S(JSON.stringify(p))}catch(N){console.error("Couldn't convert value into a JSON string: ",p),S(null,N)}}function Ur(p){if(p.substring(0,Tr)!==_r)return JSON.parse(p);var S=p.substring(Yt),v=p.substring(Tr,Yt),_;if(v===It&&Ti.test(S)){var P=S.match(Ti);_=P[1],S=S.substring(P[0].length)}var T=Hr(S);switch(v){case Cr:return T;case It:return ue([T],{type:_});case yt:return new Int8Array(T);case At:return new Uint8Array(T);case Mt:return new Uint8ClampedArray(T);case Ci:return new Int16Array(T);case Wr:return new Uint16Array(T);case or:return new Int32Array(T);case jr:return new Uint32Array(T);case ki:return new Float32Array(T);case Nt:return new Float64Array(T);default:throw new Error("Unkown type: "+v)}}var zr={serialize:Ke,deserialize:Ur,stringToBuffer:Hr,bufferToString:Je};function Vr(p,S,v,_){p.executeSql("CREATE TABLE IF NOT EXISTS "+S.storeName+" (id INTEGER PRIMARY KEY, key unique, value)",[],v,_)}function Pi(p){var S=this,v={db:null};if(p)for(var _ in p)v[_]=typeof p[_]!="string"?p[_].toString():p[_];var P=new j(function(T,N){try{v.db=openDatabase(v.name,String(v.version),v.description,v.size)}catch(z){return N(z)}v.db.transaction(function(z){Vr(z,v,function(){S._dbInfo=v,T()},function(V,q){N(q)})},N)});return v.serializer=zr,P}function rt(p,S,v,_,P,T){p.executeSql(v,_,P,function(N,z){z.code===z.SYNTAX_ERR?N.executeSql("SELECT name FROM sqlite_master WHERE type='table' AND name = ?",[S.storeName],function(V,q){q.rows.length?T(V,z):Vr(V,S,function(){V.executeSql(v,_,P,T)},T)},T):T(N,z)},T)}function Xt(p,S){var v=this;p=de(p);var _=new j(function(P,T){v.ready().then(function(){var N=v._dbInfo;N.db.transaction(function(z){rt(z,N,"SELECT * FROM "+N.storeName+" WHERE key = ? LIMIT 1",[p],function(V,q){var X=q.rows.length?q.rows.item(0).value:null;X&&(X=N.serializer.deserialize(X)),P(X)},function(V,q){T(q)})})}).catch(T)});return U(_,S),_}function Dn(p,S){var v=this,_=new j(function(P,T){v.ready().then(function(){var N=v._dbInfo;N.db.transaction(function(z){rt(z,N,"SELECT * FROM "+N.storeName,[],function(V,q){for(var X=q.rows,te=X.length,xe=0;xe<te;xe++){var Ce=X.item(xe),Ee=Ce.value;if(Ee&&(Ee=N.serializer.deserialize(Ee)),Ee=p(Ee,Ce.key,xe+1),Ee!==void 0){P(Ee);return}}P()},function(V,q){T(q)})})}).catch(T)});return U(_,S),_}function Ai(p,S,v,_){var P=this;p=de(p);var T=new j(function(N,z){P.ready().then(function(){S===void 0&&(S=null);var V=S,q=P._dbInfo;q.serializer.serialize(S,function(X,te){te?z(te):q.db.transaction(function(xe){rt(xe,q,"INSERT OR REPLACE INTO "+q.storeName+" (key, value) VALUES (?, ?)",[p,X],function(){N(V)},function(Ce,Ee){z(Ee)})},function(xe){if(xe.code===xe.QUOTA_ERR){if(_>0){N(Ai.apply(P,[p,V,v,_-1]));return}z(xe)}})})}).catch(z)});return U(T,v),T}function qr(p,S,v){return Ai.apply(this,[p,S,v,1])}function kr(p,S){var v=this;p=de(p);var _=new j(function(P,T){v.ready().then(function(){var N=v._dbInfo;N.db.transaction(function(z){rt(z,N,"DELETE FROM "+N.storeName+" WHERE key = ?",[p],function(){P()},function(V,q){T(q)})})}).catch(T)});return U(_,S),_}function Fn(p){var S=this,v=new j(function(_,P){S.ready().then(function(){var T=S._dbInfo;T.db.transaction(function(N){rt(N,T,"DELETE FROM "+T.storeName,[],function(){_()},function(z,V){P(V)})})}).catch(P)});return U(v,p),v}function Ln(p){var S=this,v=new j(function(_,P){S.ready().then(function(){var T=S._dbInfo;T.db.transaction(function(N){rt(N,T,"SELECT COUNT(key) as c FROM "+T.storeName,[],function(z,V){var q=V.rows.item(0).c;_(q)},function(z,V){P(V)})})}).catch(P)});return U(v,p),v}function Rn(p,S){var v=this,_=new j(function(P,T){v.ready().then(function(){var N=v._dbInfo;N.db.transaction(function(z){rt(z,N,"SELECT key FROM "+N.storeName+" WHERE id = ? LIMIT 1",[p+1],function(V,q){var X=q.rows.length?q.rows.item(0).key:null;P(X)},function(V,q){T(q)})})}).catch(T)});return U(_,S),_}function Di(p){var S=this,v=new j(function(_,P){S.ready().then(function(){var T=S._dbInfo;T.db.transaction(function(N){rt(N,T,"SELECT key FROM "+T.storeName,[],function(z,V){for(var q=[],X=0;X<V.rows.length;X++)q.push(V.rows.item(X).key);_(q)},function(z,V){P(V)})})}).catch(P)});return U(v,p),v}function In(p){return new j(function(S,v){p.transaction(function(_){_.executeSql("SELECT name FROM sqlite_master WHERE type='table' AND name <> '__WebKitDatabaseInfoTable__'",[],function(P,T){for(var N=[],z=0;z<T.rows.length;z++)N.push(T.rows.item(z).name);S({db:p,storeNames:N})},function(P,T){v(T)})},function(_){v(_)})})}function Mn(p,S){S=K.apply(this,arguments);var v=this.config();p=typeof p!="function"&&p||{},p.name||(p.name=p.name||v.name,p.storeName=p.storeName||v.storeName);var _=this,P;return p.name?P=new j(function(T){var N;p.name===v.name?N=_._dbInfo.db:N=openDatabase(p.name,"","",0),p.storeName?T({db:N,storeNames:[p.storeName]}):T(In(N))}).then(function(T){return new j(function(N,z){T.db.transaction(function(V){function q(Ce){return new j(function(Ee,We){V.executeSql("DROP TABLE IF EXISTS "+Ce,[],function(){Ee()},function(Me,at){We(at)})})}for(var X=[],te=0,xe=T.storeNames.length;te<xe;te++)X.push(q(T.storeNames[te]));j.all(X).then(function(){N()}).catch(function(Ce){z(Ce)})},function(V){z(V)})})}):P=j.reject("Invalid arguments"),U(P,S),P}var Fi={_driver:"webSQLStorage",_initStorage:Pi,_support:le(),iterate:Dn,getItem:Xt,setItem:qr,removeItem:kr,clear:Fn,length:Ln,key:Rn,keys:Di,dropInstance:Mn};function Nn(){try{return typeof localStorage!="undefined"&&"setItem"in localStorage&&!!localStorage.setItem}catch(p){return!1}}function Ot(p,S){var v=p.name+"/";return p.storeName!==S.storeName&&(v+=p.storeName+"/"),v}function Li(){var p="_localforage_support_test";try{return localStorage.setItem(p,!0),localStorage.removeItem(p),!1}catch(S){return!0}}function Gr(){return!Li()||localStorage.length>0}function Pr(p){var S=this,v={};if(p)for(var _ in p)v[_]=p[_];return v.keyPrefix=Ot(p,S._defaultConfig),Gr()?(S._dbInfo=v,v.serializer=zr,j.resolve()):j.reject()}function Ri(p){var S=this,v=S.ready().then(function(){for(var _=S._dbInfo.keyPrefix,P=localStorage.length-1;P>=0;P--){var T=localStorage.key(P);T.indexOf(_)===0&&localStorage.removeItem(T)}});return U(v,p),v}function On(p,S){var v=this;p=de(p);var _=v.ready().then(function(){var P=v._dbInfo,T=localStorage.getItem(P.keyPrefix+p);return T&&(T=P.serializer.deserialize(T)),T});return U(_,S),_}function lr(p,S){var v=this,_=v.ready().then(function(){for(var P=v._dbInfo,T=P.keyPrefix,N=T.length,z=localStorage.length,V=1,q=0;q<z;q++){var X=localStorage.key(q);if(X.indexOf(T)===0){var te=localStorage.getItem(X);if(te&&(te=P.serializer.deserialize(te)),te=p(te,X.substring(N),V++),te!==void 0)return te}}});return U(_,S),_}function Ii(p,S){var v=this,_=v.ready().then(function(){var P=v._dbInfo,T;try{T=localStorage.key(p)}catch(N){T=null}return T&&(T=T.substring(P.keyPrefix.length)),T});return U(_,S),_}function Mi(p){var S=this,v=S.ready().then(function(){for(var _=S._dbInfo,P=localStorage.length,T=[],N=0;N<P;N++){var z=localStorage.key(N);z.indexOf(_.keyPrefix)===0&&T.push(z.substring(_.keyPrefix.length))}return T});return U(v,p),v}function Ni(p){var S=this,v=S.keys().then(function(_){return _.length});return U(v,p),v}function Oi(p,S){var v=this;p=de(p);var _=v.ready().then(function(){var P=v._dbInfo;localStorage.removeItem(P.keyPrefix+p)});return U(_,S),_}function $n(p,S,v){var _=this;p=de(p);var P=_.ready().then(function(){S===void 0&&(S=null);var T=S;return new j(function(N,z){var V=_._dbInfo;V.serializer.serialize(S,function(q,X){if(X)z(X);else try{localStorage.setItem(V.keyPrefix+p,q),N(T)}catch(te){(te.name==="QuotaExceededError"||te.name==="NS_ERROR_DOM_QUOTA_REACHED")&&z(te),z(te)}})})});return U(P,v),P}function Yr(p,S){if(S=K.apply(this,arguments),p=typeof p!="function"&&p||{},!p.name){var v=this.config();p.name=p.name||v.name,p.storeName=p.storeName||v.storeName}var _=this,P;return p.name?P=new j(function(T){p.storeName?T(Ot(p,_._defaultConfig)):T(p.name+"/")}).then(function(T){for(var N=localStorage.length-1;N>=0;N--){var z=localStorage.key(N);z.indexOf(T)===0&&localStorage.removeItem(z)}}):P=j.reject("Invalid arguments"),U(P,S),P}var Wn={_driver:"localStorageWrapper",_initStorage:Pr,_support:Nn(),iterate:lr,getItem:On,setItem:$n,removeItem:Oi,clear:Ri,length:Ni,key:Ii,keys:Mi,dropInstance:Yr},$i=function(S,v){return S===v||typeof S=="number"&&typeof v=="number"&&isNaN(S)&&isNaN(v)},jn=function(S,v){for(var _=S.length,P=0;P<_;){if($i(S[P],v))return!0;P++}return!1},Xr=Array.isArray||function(p){return Object.prototype.toString.call(p)==="[object Array]"},Qt={},Ar={},$t={INDEXEDDB:sr,WEBSQL:Fi,LOCALSTORAGE:Wn},Ze=[$t.INDEXEDDB._driver,$t.WEBSQL._driver,$t.LOCALSTORAGE._driver],_t=["dropInstance"],Jt=["clear","getItem","iterate","key","keys","length","removeItem","setItem"].concat(_t),Bn={description:"",driver:Ze.slice(),name:"localforage",size:4980736,storeName:"keyvaluepairs",version:1};function Hn(p,S){p[S]=function(){var v=arguments;return p.ready().then(function(){return p[S].apply(p,v)})}}function ur(){for(var p=1;p<arguments.length;p++){var S=arguments[p];if(S)for(var v in S)S.hasOwnProperty(v)&&(Xr(S[v])?arguments[0][v]=S[v].slice():arguments[0][v]=S[v])}return arguments[0]}var Wi=function(){function p(S){y(this,p);for(var v in $t)if($t.hasOwnProperty(v)){var _=$t[v],P=_._driver;this[v]=P,Qt[P]||this.defineDriver(_)}this._defaultConfig=ur({},Bn),this._config=ur({},this._defaultConfig,S),this._driverSet=null,this._initDriver=null,this._ready=!1,this._dbInfo=null,this._wrapLibraryMethodsWithReady(),this.setDriver(this._config.driver).catch(function(){})}return p.prototype.config=function(v){if((typeof v=="undefined"?"undefined":m(v))==="object"){if(this._ready)return new Error("Can't call config() after localforage has been used.");for(var _ in v){if(_==="storeName"&&(v[_]=v[_].replace(/\W/g,"_")),_==="version"&&typeof v[_]!="number")return new Error("Database version must be a number.");this._config[_]=v[_]}return"driver"in v&&v.driver?this.setDriver(this._config.driver):!0}else return typeof v=="string"?this._config[v]:this._config},p.prototype.defineDriver=function(v,_,P){var T=new j(function(N,z){try{var V=v._driver,q=new Error("Custom driver not compliant; see https://mozilla.github.io/localForage/#definedriver");if(!v._driver){z(q);return}for(var X=Jt.concat("_initStorage"),te=0,xe=X.length;te<xe;te++){var Ce=X[te],Ee=!jn(_t,Ce);if((Ee||v[Ce])&&typeof v[Ce]!="function"){z(q);return}}var We=function(){for(var Kt=function(zn){return function(){var Vn=new Error("Method "+zn+" is not implemented by the current driver"),ji=j.reject(Vn);return U(ji,arguments[arguments.length-1]),ji}},Qr=0,Un=_t.length;Qr<Un;Qr++){var cr=_t[Qr];v[cr]||(v[cr]=Kt(cr))}};We();var Me=function(Kt){Qt[V]&&console.info("Redefining LocalForage driver: "+V),Qt[V]=v,Ar[V]=Kt,N()};"_support"in v?v._support&&typeof v._support=="function"?v._support().then(Me,z):Me(!!v._support):Me(!0)}catch(at){z(at)}});return G(T,_,P),T},p.prototype.driver=function(){return this._driver||null},p.prototype.getDriver=function(v,_,P){var T=Qt[v]?j.resolve(Qt[v]):j.reject(new Error("Driver not found."));return G(T,_,P),T},p.prototype.getSerializer=function(v){var _=j.resolve(zr);return G(_,v),_},p.prototype.ready=function(v){var _=this,P=_._driverSet.then(function(){return _._ready===null&&(_._ready=_._initDriver()),_._ready});return G(P,v,v),P},p.prototype.setDriver=function(v,_,P){var T=this;Xr(v)||(v=[v]);var N=this._getSupportedDrivers(v);function z(){T._config.driver=T.driver()}function V(te){return T._extend(te),z(),T._ready=T._initStorage(T._config),T._ready}function q(te){return function(){var xe=0;function Ce(){for(;xe<te.length;){var Ee=te[xe];return xe++,T._dbInfo=null,T._ready=null,T.getDriver(Ee).then(V).catch(Ce)}z();var We=new Error("No available storage method found.");return T._driverSet=j.reject(We),T._driverSet}return Ce()}}var X=this._driverSet!==null?this._driverSet.catch(function(){return j.resolve()}):j.resolve();return this._driverSet=X.then(function(){var te=N[0];return T._dbInfo=null,T._ready=null,T.getDriver(te).then(function(xe){T._driver=xe._driver,z(),T._wrapLibraryMethodsWithReady(),T._initDriver=q(N)})}).catch(function(){z();var te=new Error("No available storage method found.");return T._driverSet=j.reject(te),T._driverSet}),G(this._driverSet,_,P),this._driverSet},p.prototype.supports=function(v){return!!Ar[v]},p.prototype._extend=function(v){ur(this,v)},p.prototype._getSupportedDrivers=function(v){for(var _=[],P=0,T=v.length;P<T;P++){var N=v[P];this.supports(N)&&_.push(N)}return _},p.prototype._wrapLibraryMethodsWithReady=function(){for(var v=0,_=Jt.length;v<_;v++)Hn(this,Jt[v])},p.prototype.createInstance=function(v){return new p(v)},p}(),Dr=new Wi;u.exports=Dr},{"3":3}]},{},[4])(4)})});var Ns=bs((Ms,rn)=>{(function(l,t){"use strict";typeof rn=="object"&&typeof rn.exports=="object"?rn.exports=l.document?t(l,!0):function(i){if(!i.document)throw new Error("jQuery requires a window with a document");return t(i)}:t(l)})(typeof window!="undefined"?window:Ms,function(l,t){"use strict";var i=[],a=Object.getPrototypeOf,u=i.slice,d=i.flat?function(e){return i.flat.call(e)}:function(e){return i.concat.apply([],e)},m=i.push,y=i.indexOf,b={},L=b.toString,W=b.hasOwnProperty,ue=W.toString,j=ue.call(Object),U={},G=function(r){return typeof r=="function"&&typeof r.nodeType!="number"&&typeof r.item!="function"},de=function(r){return r!=null&&r===r.window},K=l.document,ye={type:!0,src:!0,nonce:!0,noModule:!0};function Pe(e,r,n){n=n||K;var s,c,f=n.createElement("script");if(f.text=e,r)for(s in ye)c=r[s]||r.getAttribute&&r.getAttribute(s),c&&f.setAttribute(s,c);n.head.appendChild(f).parentNode.removeChild(f)}function be(e){return e==null?e+"":typeof e=="object"||typeof e=="function"?b[L.call(e)]||"object":typeof e}var _e="3.6.0",o=function(e,r){return new o.fn.init(e,r)};o.fn=o.prototype={jquery:_e,constructor:o,length:0,toArray:function(){return u.call(this)},get:function(e){return e==null?u.call(this):e<0?this[e+this.length]:this[e]},pushStack:function(e){var r=o.merge(this.constructor(),e);return r.prevObject=this,r},each:function(e){return o.each(this,e)},map:function(e){return this.pushStack(o.map(this,function(r,n){return e.call(r,n,r)}))},slice:function(){return this.pushStack(u.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},even:function(){return this.pushStack(o.grep(this,function(e,r){return(r+1)%2}))},odd:function(){return this.pushStack(o.grep(this,function(e,r){return r%2}))},eq:function(e){var r=this.length,n=+e+(e<0?r:0);return this.pushStack(n>=0&&n<r?[this[n]]:[])},end:function(){return this.prevObject||this.constructor()},push:m,sort:i.sort,splice:i.splice},o.extend=o.fn.extend=function(){var e,r,n,s,c,f,h=arguments[0]||{},w=1,E=arguments.length,k=!1;for(typeof h=="boolean"&&(k=h,h=arguments[w]||{},w++),typeof h!="object"&&!G(h)&&(h={}),w===E&&(h=this,w--);w<E;w++)if((e=arguments[w])!=null)for(r in e)s=e[r],!(r==="__proto__"||h===s)&&(k&&s&&(o.isPlainObject(s)||(c=Array.isArray(s)))?(n=h[r],c&&!Array.isArray(n)?f=[]:!c&&!o.isPlainObject(n)?f={}:f=n,c=!1,h[r]=o.extend(k,f,s)):s!==void 0&&(h[r]=s));return h},o.extend({expando:"jQuery"+(_e+Math.random()).replace(/\D/g,""),isReady:!0,error:function(e){throw new Error(e)},noop:function(){},isPlainObject:function(e){var r,n;return!e||L.call(e)!=="[object Object]"?!1:(r=a(e),r?(n=W.call(r,"constructor")&&r.constructor,typeof n=="function"&&ue.call(n)===j):!0)},isEmptyObject:function(e){var r;for(r in e)return!1;return!0},globalEval:function(e,r,n){Pe(e,{nonce:r&&r.nonce},n)},each:function(e,r){var n,s=0;if(Y(e))for(n=e.length;s<n&&r.call(e[s],s,e[s])!==!1;s++);else for(s in e)if(r.call(e[s],s,e[s])===!1)break;return e},makeArray:function(e,r){var n=r||[];return e!=null&&(Y(Object(e))?o.merge(n,typeof e=="string"?[e]:e):m.call(n,e)),n},inArray:function(e,r,n){return r==null?-1:y.call(r,e,n)},merge:function(e,r){for(var n=+r.length,s=0,c=e.length;s<n;s++)e[c++]=r[s];return e.length=c,e},grep:function(e,r,n){for(var s,c=[],f=0,h=e.length,w=!n;f<h;f++)s=!r(e[f],f),s!==w&&c.push(e[f]);return c},map:function(e,r,n){var s,c,f=0,h=[];if(Y(e))for(s=e.length;f<s;f++)c=r(e[f],f,n),c!=null&&h.push(c);else for(f in e)c=r(e[f],f,n),c!=null&&h.push(c);return d(h)},guid:1,support:U}),typeof Symbol=="function"&&(o.fn[Symbol.iterator]=i[Symbol.iterator]),o.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "),function(e,r){b["[object "+r+"]"]=r.toLowerCase()});function Y(e){var r=!!e&&"length"in e&&e.length,n=be(e);return G(e)||de(e)?!1:n==="array"||r===0||typeof r=="number"&&r>0&&r-1 in e}var ae=function(e){var r,n,s,c,f,h,w,E,k,R,B,F,I,re,ve,ie,Ve,Ue,ut,De="sizzle"+1*new Date,me=e.document,st=0,ke=0,je=zi(),Kr=zi(),Bi=zi(),ct=zi(),fr=function(g,x){return g===x&&(B=!0),0},dr={}.hasOwnProperty,ot=[],Zt=ot.pop,xt=ot.push,er=ot.push,us=ot.slice,hr=function(g,x){for(var C=0,M=g.length;C<M;C++)if(g[C]===x)return C;return-1},Qn="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",Ae="[\\x20\\t\\r\\n\\f]",pr="(?:\\\\[\\da-fA-F]{1,6}"+Ae+"?|\\\\[^\\r\\n\\f]|[\\w-]|[^\0-\\x7f])+",cs="\\["+Ae+"*("+pr+")(?:"+Ae+"*([*^$|!~]?=)"+Ae+`*(?:'((?:\\\\.|[^\\\\'])*)'|"((?:\\\\.|[^\\\\"])*)"|(`+pr+"))|)"+Ae+"*\\]",Jn=":("+pr+`)(?:\\((('((?:\\\\.|[^\\\\'])*)'|"((?:\\\\.|[^\\\\"])*)")|((?:\\\\.|[^\\\\()[\\]]|`+cs+")*)|.*)\\)|)",Mo=new RegExp(Ae+"+","g"),Hi=new RegExp("^"+Ae+"+|((?:^|[^\\\\])(?:\\\\.)*)"+Ae+"+$","g"),No=new RegExp("^"+Ae+"*,"+Ae+"*"),fs=new RegExp("^"+Ae+"*([>+~]|"+Ae+")"+Ae+"*"),Oo=new RegExp(Ae+"|>"),$o=new RegExp(Jn),Wo=new RegExp("^"+pr+"$"),Ui={ID:new RegExp("^#("+pr+")"),CLASS:new RegExp("^\\.("+pr+")"),TAG:new RegExp("^("+pr+"|[*])"),ATTR:new RegExp("^"+cs),PSEUDO:new RegExp("^"+Jn),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+Ae+"*(even|odd|(([+-]|)(\\d*)n|)"+Ae+"*(?:([+-]|)"+Ae+"*(\\d+)|))"+Ae+"*\\)|)","i"),bool:new RegExp("^(?:"+Qn+")$","i"),needsContext:new RegExp("^"+Ae+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+Ae+"*((?:-\\d)?\\d*)"+Ae+"*\\)|)(?=[^-]|$)","i")},jo=/HTML$/i,Bo=/^(?:input|select|textarea|button)$/i,Ho=/^h\d$/i,Zr=/^[^{]+\{\s*\[native \w/,Uo=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,Kn=/[+~]/,Wt=new RegExp("\\\\[\\da-fA-F]{1,6}"+Ae+"?|\\\\([^\\r\\n\\f])","g"),jt=function(g,x){var C="0x"+g.slice(1)-65536;return x||(C<0?String.fromCharCode(C+65536):String.fromCharCode(C>>10|55296,C&1023|56320))},ds=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,hs=function(g,x){return x?g==="\0"?"\uFFFD":g.slice(0,-1)+"\\"+g.charCodeAt(g.length-1).toString(16)+" ":"\\"+g},ps=function(){F()},zo=qi(function(g){return g.disabled===!0&&g.nodeName.toLowerCase()==="fieldset"},{dir:"parentNode",next:"legend"});try{er.apply(ot=us.call(me.childNodes),me.childNodes),ot[me.childNodes.length].nodeType}catch(g){er={apply:ot.length?function(x,C){xt.apply(x,us.call(C))}:function(x,C){for(var M=x.length,A=0;x[M++]=C[A++];);x.length=M-1}}}function Le(g,x,C,M){var A,O,H,Q,J,ce,oe,he=x&&x.ownerDocument,we=x?x.nodeType:9;if(C=C||[],typeof g!="string"||!g||we!==1&&we!==9&&we!==11)return C;if(!M&&(F(x),x=x||I,ve)){if(we!==11&&(J=Uo.exec(g)))if(A=J[1]){if(we===9)if(H=x.getElementById(A)){if(H.id===A)return C.push(H),C}else return C;else if(he&&(H=he.getElementById(A))&&ut(x,H)&&H.id===A)return C.push(H),C}else{if(J[2])return er.apply(C,x.getElementsByTagName(g)),C;if((A=J[3])&&n.getElementsByClassName&&x.getElementsByClassName)return er.apply(C,x.getElementsByClassName(A)),C}if(n.qsa&&!ct[g+" "]&&(!ie||!ie.test(g))&&(we!==1||x.nodeName.toLowerCase()!=="object")){if(oe=g,he=x,we===1&&(Oo.test(g)||fs.test(g))){for(he=Kn.test(g)&&ea(x.parentNode)||x,(he!==x||!n.scope)&&((Q=x.getAttribute("id"))?Q=Q.replace(ds,hs):x.setAttribute("id",Q=De)),ce=h(g),O=ce.length;O--;)ce[O]=(Q?"#"+Q:":scope")+" "+Vi(ce[O]);oe=ce.join(",")}try{return er.apply(C,he.querySelectorAll(oe)),C}catch(Re){ct(g,!0)}finally{Q===De&&x.removeAttribute("id")}}}return E(g.replace(Hi,"$1"),x,C,M)}function zi(){var g=[];function x(C,M){return g.push(C+" ")>s.cacheLength&&delete x[g.shift()],x[C+" "]=M}return x}function Tt(g){return g[De]=!0,g}function Ct(g){var x=I.createElement("fieldset");try{return!!g(x)}catch(C){return!1}finally{x.parentNode&&x.parentNode.removeChild(x),x=null}}function Zn(g,x){for(var C=g.split("|"),M=C.length;M--;)s.attrHandle[C[M]]=x}function gs(g,x){var C=x&&g,M=C&&g.nodeType===1&&x.nodeType===1&&g.sourceIndex-x.sourceIndex;if(M)return M;if(C){for(;C=C.nextSibling;)if(C===x)return-1}return g?1:-1}function Vo(g){return function(x){var C=x.nodeName.toLowerCase();return C==="input"&&x.type===g}}function qo(g){return function(x){var C=x.nodeName.toLowerCase();return(C==="input"||C==="button")&&x.type===g}}function ms(g){return function(x){return"form"in x?x.parentNode&&x.disabled===!1?"label"in x?"label"in x.parentNode?x.parentNode.disabled===g:x.disabled===g:x.isDisabled===g||x.isDisabled!==!g&&zo(x)===g:x.disabled===g:"label"in x?x.disabled===g:!1}}function gr(g){return Tt(function(x){return x=+x,Tt(function(C,M){for(var A,O=g([],C.length,x),H=O.length;H--;)C[A=O[H]]&&(C[A]=!(M[A]=C[A]))})})}function ea(g){return g&&typeof g.getElementsByTagName!="undefined"&&g}n=Le.support={},f=Le.isXML=function(g){var x=g&&g.namespaceURI,C=g&&(g.ownerDocument||g).documentElement;return!jo.test(x||C&&C.nodeName||"HTML")},F=Le.setDocument=function(g){var x,C,M=g?g.ownerDocument||g:me;return M==I||M.nodeType!==9||!M.documentElement||(I=M,re=I.documentElement,ve=!f(I),me!=I&&(C=I.defaultView)&&C.top!==C&&(C.addEventListener?C.addEventListener("unload",ps,!1):C.attachEvent&&C.attachEvent("onunload",ps)),n.scope=Ct(function(A){return re.appendChild(A).appendChild(I.createElement("div")),typeof A.querySelectorAll!="undefined"&&!A.querySelectorAll(":scope fieldset div").length}),n.attributes=Ct(function(A){return A.className="i",!A.getAttribute("className")}),n.getElementsByTagName=Ct(function(A){return A.appendChild(I.createComment("")),!A.getElementsByTagName("*").length}),n.getElementsByClassName=Zr.test(I.getElementsByClassName),n.getById=Ct(function(A){return re.appendChild(A).id=De,!I.getElementsByName||!I.getElementsByName(De).length}),n.getById?(s.filter.ID=function(A){var O=A.replace(Wt,jt);return function(H){return H.getAttribute("id")===O}},s.find.ID=function(A,O){if(typeof O.getElementById!="undefined"&&ve){var H=O.getElementById(A);return H?[H]:[]}}):(s.filter.ID=function(A){var O=A.replace(Wt,jt);return function(H){var Q=typeof H.getAttributeNode!="undefined"&&H.getAttributeNode("id");return Q&&Q.value===O}},s.find.ID=function(A,O){if(typeof O.getElementById!="undefined"&&ve){var H,Q,J,ce=O.getElementById(A);if(ce){if(H=ce.getAttributeNode("id"),H&&H.value===A)return[ce];for(J=O.getElementsByName(A),Q=0;ce=J[Q++];)if(H=ce.getAttributeNode("id"),H&&H.value===A)return[ce]}return[]}}),s.find.TAG=n.getElementsByTagName?function(A,O){if(typeof O.getElementsByTagName!="undefined")return O.getElementsByTagName(A);if(n.qsa)return O.querySelectorAll(A)}:function(A,O){var H,Q=[],J=0,ce=O.getElementsByTagName(A);if(A==="*"){for(;H=ce[J++];)H.nodeType===1&&Q.push(H);return Q}return ce},s.find.CLASS=n.getElementsByClassName&&function(A,O){if(typeof O.getElementsByClassName!="undefined"&&ve)return O.getElementsByClassName(A)},Ve=[],ie=[],(n.qsa=Zr.test(I.querySelectorAll))&&(Ct(function(A){var O;re.appendChild(A).innerHTML="<a id='"+De+"'></a><select id='"+De+"-\r\\' msallowcapture=''><option selected=''></option></select>",A.querySelectorAll("[msallowcapture^='']").length&&ie.push("[*^$]="+Ae+`*(?:''|"")`),A.querySelectorAll("[selected]").length||ie.push("\\["+Ae+"*(?:value|"+Qn+")"),A.querySelectorAll("[id~="+De+"-]").length||ie.push("~="),O=I.createElement("input"),O.setAttribute("name",""),A.appendChild(O),A.querySelectorAll("[name='']").length||ie.push("\\["+Ae+"*name"+Ae+"*="+Ae+`*(?:''|"")`),A.querySelectorAll(":checked").length||ie.push(":checked"),A.querySelectorAll("a#"+De+"+*").length||ie.push(".#.+[+~]"),A.querySelectorAll("\\\f"),ie.push("[\\r\\n\\f]")}),Ct(function(A){A.innerHTML="<a href='' disabled='disabled'></a><select disabled='disabled'><option/></select>";var O=I.createElement("input");O.setAttribute("type","hidden"),A.appendChild(O).setAttribute("name","D"),A.querySelectorAll("[name=d]").length&&ie.push("name"+Ae+"*[*^$|!~]?="),A.querySelectorAll(":enabled").length!==2&&ie.push(":enabled",":disabled"),re.appendChild(A).disabled=!0,A.querySelectorAll(":disabled").length!==2&&ie.push(":enabled",":disabled"),A.querySelectorAll("*,:x"),ie.push(",.*:")})),(n.matchesSelector=Zr.test(Ue=re.matches||re.webkitMatchesSelector||re.mozMatchesSelector||re.oMatchesSelector||re.msMatchesSelector))&&Ct(function(A){n.disconnectedMatch=Ue.call(A,"*"),Ue.call(A,"[s!='']:x"),Ve.push("!=",Jn)}),ie=ie.length&&new RegExp(ie.join("|")),Ve=Ve.length&&new RegExp(Ve.join("|")),x=Zr.test(re.compareDocumentPosition),ut=x||Zr.test(re.contains)?function(A,O){var H=A.nodeType===9?A.documentElement:A,Q=O&&O.parentNode;return A===Q||!!(Q&&Q.nodeType===1&&(H.contains?H.contains(Q):A.compareDocumentPosition&&A.compareDocumentPosition(Q)&16))}:function(A,O){if(O){for(;O=O.parentNode;)if(O===A)return!0}return!1},fr=x?function(A,O){if(A===O)return B=!0,0;var H=!A.compareDocumentPosition-!O.compareDocumentPosition;return H||(H=(A.ownerDocument||A)==(O.ownerDocument||O)?A.compareDocumentPosition(O):1,H&1||!n.sortDetached&&O.compareDocumentPosition(A)===H?A==I||A.ownerDocument==me&&ut(me,A)?-1:O==I||O.ownerDocument==me&&ut(me,O)?1:R?hr(R,A)-hr(R,O):0:H&4?-1:1)}:function(A,O){if(A===O)return B=!0,0;var H,Q=0,J=A.parentNode,ce=O.parentNode,oe=[A],he=[O];if(!J||!ce)return A==I?-1:O==I?1:J?-1:ce?1:R?hr(R,A)-hr(R,O):0;if(J===ce)return gs(A,O);for(H=A;H=H.parentNode;)oe.unshift(H);for(H=O;H=H.parentNode;)he.unshift(H);for(;oe[Q]===he[Q];)Q++;return Q?gs(oe[Q],he[Q]):oe[Q]==me?-1:he[Q]==me?1:0}),I},Le.matches=function(g,x){return Le(g,null,null,x)},Le.matchesSelector=function(g,x){if(F(g),n.matchesSelector&&ve&&!ct[x+" "]&&(!Ve||!Ve.test(x))&&(!ie||!ie.test(x)))try{var C=Ue.call(g,x);if(C||n.disconnectedMatch||g.document&&g.document.nodeType!==11)return C}catch(M){ct(x,!0)}return Le(x,I,null,[g]).length>0},Le.contains=function(g,x){return(g.ownerDocument||g)!=I&&F(g),ut(g,x)},Le.attr=function(g,x){(g.ownerDocument||g)!=I&&F(g);var C=s.attrHandle[x.toLowerCase()],M=C&&dr.call(s.attrHandle,x.toLowerCase())?C(g,x,!ve):void 0;return M!==void 0?M:n.attributes||!ve?g.getAttribute(x):(M=g.getAttributeNode(x))&&M.specified?M.value:null},Le.escape=function(g){return(g+"").replace(ds,hs)},Le.error=function(g){throw new Error("Syntax error, unrecognized expression: "+g)},Le.uniqueSort=function(g){var x,C=[],M=0,A=0;if(B=!n.detectDuplicates,R=!n.sortStable&&g.slice(0),g.sort(fr),B){for(;x=g[A++];)x===g[A]&&(M=C.push(A));for(;M--;)g.splice(C[M],1)}return R=null,g},c=Le.getText=function(g){var x,C="",M=0,A=g.nodeType;if(A){if(A===1||A===9||A===11){if(typeof g.textContent=="string")return g.textContent;for(g=g.firstChild;g;g=g.nextSibling)C+=c(g)}else if(A===3||A===4)return g.nodeValue}else for(;x=g[M++];)C+=c(x);return C},s=Le.selectors={cacheLength:50,createPseudo:Tt,match:Ui,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(g){return g[1]=g[1].replace(Wt,jt),g[3]=(g[3]||g[4]||g[5]||"").replace(Wt,jt),g[2]==="~="&&(g[3]=" "+g[3]+" "),g.slice(0,4)},CHILD:function(g){return g[1]=g[1].toLowerCase(),g[1].slice(0,3)==="nth"?(g[3]||Le.error(g[0]),g[4]=+(g[4]?g[5]+(g[6]||1):2*(g[3]==="even"||g[3]==="odd")),g[5]=+(g[7]+g[8]||g[3]==="odd")):g[3]&&Le.error(g[0]),g},PSEUDO:function(g){var x,C=!g[6]&&g[2];return Ui.CHILD.test(g[0])?null:(g[3]?g[2]=g[4]||g[5]||"":C&&$o.test(C)&&(x=h(C,!0))&&(x=C.indexOf(")",C.length-x)-C.length)&&(g[0]=g[0].slice(0,x),g[2]=C.slice(0,x)),g.slice(0,3))}},filter:{TAG:function(g){var x=g.replace(Wt,jt).toLowerCase();return g==="*"?function(){return!0}:function(C){return C.nodeName&&C.nodeName.toLowerCase()===x}},CLASS:function(g){var x=je[g+" "];return x||(x=new RegExp("(^|"+Ae+")"+g+"("+Ae+"|$)"))&&je(g,function(C){return x.test(typeof C.className=="string"&&C.className||typeof C.getAttribute!="undefined"&&C.getAttribute("class")||"")})},ATTR:function(g,x,C){return function(M){var A=Le.attr(M,g);return A==null?x==="!=":x?(A+="",x==="="?A===C:x==="!="?A!==C:x==="^="?C&&A.indexOf(C)===0:x==="*="?C&&A.indexOf(C)>-1:x==="$="?C&&A.slice(-C.length)===C:x==="~="?(" "+A.replace(Mo," ")+" ").indexOf(C)>-1:x==="|="?A===C||A.slice(0,C.length+1)===C+"-":!1):!0}},CHILD:function(g,x,C,M,A){var O=g.slice(0,3)!=="nth",H=g.slice(-4)!=="last",Q=x==="of-type";return M===1&&A===0?function(J){return!!J.parentNode}:function(J,ce,oe){var he,we,Re,fe,qe,et,ft=O!==H?"nextSibling":"previousSibling",Ne=J.parentNode,ei=Q&&J.nodeName.toLowerCase(),ti=!oe&&!Q,dt=!1;if(Ne){if(O){for(;ft;){for(fe=J;fe=fe[ft];)if(Q?fe.nodeName.toLowerCase()===ei:fe.nodeType===1)return!1;et=ft=g==="only"&&!et&&"nextSibling"}return!0}if(et=[H?Ne.firstChild:Ne.lastChild],H&&ti){for(fe=Ne,Re=fe[De]||(fe[De]={}),we=Re[fe.uniqueID]||(Re[fe.uniqueID]={}),he=we[g]||[],qe=he[0]===st&&he[1],dt=qe&&he[2],fe=qe&&Ne.childNodes[qe];fe=++qe&&fe&&fe[ft]||(dt=qe=0)||et.pop();)if(fe.nodeType===1&&++dt&&fe===J){we[g]=[st,qe,dt];break}}else if(ti&&(fe=J,Re=fe[De]||(fe[De]={}),we=Re[fe.uniqueID]||(Re[fe.uniqueID]={}),he=we[g]||[],qe=he[0]===st&&he[1],dt=qe),dt===!1)for(;(fe=++qe&&fe&&fe[ft]||(dt=qe=0)||et.pop())&&!((Q?fe.nodeName.toLowerCase()===ei:fe.nodeType===1)&&++dt&&(ti&&(Re=fe[De]||(fe[De]={}),we=Re[fe.uniqueID]||(Re[fe.uniqueID]={}),we[g]=[st,dt]),fe===J)););return dt-=A,dt===M||dt%M==0&&dt/M>=0}}},PSEUDO:function(g,x){var C,M=s.pseudos[g]||s.setFilters[g.toLowerCase()]||Le.error("unsupported pseudo: "+g);return M[De]?M(x):M.length>1?(C=[g,g,"",x],s.setFilters.hasOwnProperty(g.toLowerCase())?Tt(function(A,O){for(var H,Q=M(A,x),J=Q.length;J--;)H=hr(A,Q[J]),A[H]=!(O[H]=Q[J])}):function(A){return M(A,0,C)}):M}},pseudos:{not:Tt(function(g){var x=[],C=[],M=w(g.replace(Hi,"$1"));return M[De]?Tt(function(A,O,H,Q){for(var J,ce=M(A,null,Q,[]),oe=A.length;oe--;)(J=ce[oe])&&(A[oe]=!(O[oe]=J))}):function(A,O,H){return x[0]=A,M(x,null,H,C),x[0]=null,!C.pop()}}),has:Tt(function(g){return function(x){return Le(g,x).length>0}}),contains:Tt(function(g){return g=g.replace(Wt,jt),function(x){return(x.textContent||c(x)).indexOf(g)>-1}}),lang:Tt(function(g){return Wo.test(g||"")||Le.error("unsupported lang: "+g),g=g.replace(Wt,jt).toLowerCase(),function(x){var C;do if(C=ve?x.lang:x.getAttribute("xml:lang")||x.getAttribute("lang"))return C=C.toLowerCase(),C===g||C.indexOf(g+"-")===0;while((x=x.parentNode)&&x.nodeType===1);return!1}}),target:function(g){var x=e.location&&e.location.hash;return x&&x.slice(1)===g.id},root:function(g){return g===re},focus:function(g){return g===I.activeElement&&(!I.hasFocus||I.hasFocus())&&!!(g.type||g.href||~g.tabIndex)},enabled:ms(!1),disabled:ms(!0),checked:function(g){var x=g.nodeName.toLowerCase();return x==="input"&&!!g.checked||x==="option"&&!!g.selected},selected:function(g){return g.parentNode&&g.parentNode.selectedIndex,g.selected===!0},empty:function(g){for(g=g.firstChild;g;g=g.nextSibling)if(g.nodeType<6)return!1;return!0},parent:function(g){return!s.pseudos.empty(g)},header:function(g){return Ho.test(g.nodeName)},input:function(g){return Bo.test(g.nodeName)},button:function(g){var x=g.nodeName.toLowerCase();return x==="input"&&g.type==="button"||x==="button"},text:function(g){var x;return g.nodeName.toLowerCase()==="input"&&g.type==="text"&&((x=g.getAttribute("type"))==null||x.toLowerCase()==="text")},first:gr(function(){return[0]}),last:gr(function(g,x){return[x-1]}),eq:gr(function(g,x,C){return[C<0?C+x:C]}),even:gr(function(g,x){for(var C=0;C<x;C+=2)g.push(C);return g}),odd:gr(function(g,x){for(var C=1;C<x;C+=2)g.push(C);return g}),lt:gr(function(g,x,C){for(var M=C<0?C+x:C>x?x:C;--M>=0;)g.push(M);return g}),gt:gr(function(g,x,C){for(var M=C<0?C+x:C;++M<x;)g.push(M);return g})}},s.pseudos.nth=s.pseudos.eq;for(r in{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})s.pseudos[r]=Vo(r);for(r in{submit:!0,reset:!0})s.pseudos[r]=qo(r);function vs(){}vs.prototype=s.filters=s.pseudos,s.setFilters=new vs,h=Le.tokenize=function(g,x){var C,M,A,O,H,Q,J,ce=Kr[g+" "];if(ce)return x?0:ce.slice(0);for(H=g,Q=[],J=s.preFilter;H;){(!C||(M=No.exec(H)))&&(M&&(H=H.slice(M[0].length)||H),Q.push(A=[])),C=!1,(M=fs.exec(H))&&(C=M.shift(),A.push({value:C,type:M[0].replace(Hi," ")}),H=H.slice(C.length));for(O in s.filter)(M=Ui[O].exec(H))&&(!J[O]||(M=J[O](M)))&&(C=M.shift(),A.push({value:C,type:O,matches:M}),H=H.slice(C.length));if(!C)break}return x?H.length:H?Le.error(g):Kr(g,Q).slice(0)};function Vi(g){for(var x=0,C=g.length,M="";x<C;x++)M+=g[x].value;return M}function qi(g,x,C){var M=x.dir,A=x.next,O=A||M,H=C&&O==="parentNode",Q=ke++;return x.first?function(J,ce,oe){for(;J=J[M];)if(J.nodeType===1||H)return g(J,ce,oe);return!1}:function(J,ce,oe){var he,we,Re,fe=[st,Q];if(oe){for(;J=J[M];)if((J.nodeType===1||H)&&g(J,ce,oe))return!0}else for(;J=J[M];)if(J.nodeType===1||H)if(Re=J[De]||(J[De]={}),we=Re[J.uniqueID]||(Re[J.uniqueID]={}),A&&A===J.nodeName.toLowerCase())J=J[M]||J;else{if((he=we[O])&&he[0]===st&&he[1]===Q)return fe[2]=he[2];if(we[O]=fe,fe[2]=g(J,ce,oe))return!0}return!1}}function ta(g){return g.length>1?function(x,C,M){for(var A=g.length;A--;)if(!g[A](x,C,M))return!1;return!0}:g[0]}function Go(g,x,C){for(var M=0,A=x.length;M<A;M++)Le(g,x[M],C);return C}function Gi(g,x,C,M,A){for(var O,H=[],Q=0,J=g.length,ce=x!=null;Q<J;Q++)(O=g[Q])&&(!C||C(O,M,A))&&(H.push(O),ce&&x.push(Q));return H}function ra(g,x,C,M,A,O){return M&&!M[De]&&(M=ra(M)),A&&!A[De]&&(A=ra(A,O)),Tt(function(H,Q,J,ce){var oe,he,we,Re=[],fe=[],qe=Q.length,et=H||Go(x||"*",J.nodeType?[J]:J,[]),ft=g&&(H||!x)?Gi(et,Re,g,J,ce):et,Ne=C?A||(H?g:qe||M)?[]:Q:ft;if(C&&C(ft,Ne,J,ce),M)for(oe=Gi(Ne,fe),M(oe,[],J,ce),he=oe.length;he--;)(we=oe[he])&&(Ne[fe[he]]=!(ft[fe[he]]=we));if(H){if(A||g){if(A){for(oe=[],he=Ne.length;he--;)(we=Ne[he])&&oe.push(ft[he]=we);A(null,Ne=[],oe,ce)}for(he=Ne.length;he--;)(we=Ne[he])&&(oe=A?hr(H,we):Re[he])>-1&&(H[oe]=!(Q[oe]=we))}}else Ne=Gi(Ne===Q?Ne.splice(qe,Ne.length):Ne),A?A(null,Q,Ne,ce):er.apply(Q,Ne)})}function ia(g){for(var x,C,M,A=g.length,O=s.relative[g[0].type],H=O||s.relative[" "],Q=O?1:0,J=qi(function(he){return he===x},H,!0),ce=qi(function(he){return hr(x,he)>-1},H,!0),oe=[function(he,we,Re){var fe=!O&&(Re||we!==k)||((x=we).nodeType?J(he,we,Re):ce(he,we,Re));return x=null,fe}];Q<A;Q++)if(C=s.relative[g[Q].type])oe=[qi(ta(oe),C)];else{if(C=s.filter[g[Q].type].apply(null,g[Q].matches),C[De]){for(M=++Q;M<A&&!s.relative[g[M].type];M++);return ra(Q>1&&ta(oe),Q>1&&Vi(g.slice(0,Q-1).concat({value:g[Q-2].type===" "?"*":""})).replace(Hi,"$1"),C,Q<M&&ia(g.slice(Q,M)),M<A&&ia(g=g.slice(M)),M<A&&Vi(g))}oe.push(C)}return ta(oe)}function Yo(g,x){var C=x.length>0,M=g.length>0,A=function(O,H,Q,J,ce){var oe,he,we,Re=0,fe="0",qe=O&&[],et=[],ft=k,Ne=O||M&&s.find.TAG("*",ce),ei=st+=ft==null?1:Math.random()||.1,ti=Ne.length;for(ce&&(k=H==I||H||ce);fe!==ti&&(oe=Ne[fe])!=null;fe++){if(M&&oe){for(he=0,!H&&oe.ownerDocument!=I&&(F(oe),Q=!ve);we=g[he++];)if(we(oe,H||I,Q)){J.push(oe);break}ce&&(st=ei)}C&&((oe=!we&&oe)&&Re--,O&&qe.push(oe))}if(Re+=fe,C&&fe!==Re){for(he=0;we=x[he++];)we(qe,et,H,Q);if(O){if(Re>0)for(;fe--;)qe[fe]||et[fe]||(et[fe]=Zt.call(J));et=Gi(et)}er.apply(J,et),ce&&!O&&et.length>0&&Re+x.length>1&&Le.uniqueSort(J)}return ce&&(st=ei,k=ft),qe};return C?Tt(A):A}return w=Le.compile=function(g,x){var C,M=[],A=[],O=Bi[g+" "];if(!O){for(x||(x=h(g)),C=x.length;C--;)O=ia(x[C]),O[De]?M.push(O):A.push(O);O=Bi(g,Yo(A,M)),O.selector=g}return O},E=Le.select=function(g,x,C,M){var A,O,H,Q,J,ce=typeof g=="function"&&g,oe=!M&&h(g=ce.selector||g);if(C=C||[],oe.length===1){if(O=oe[0]=oe[0].slice(0),O.length>2&&(H=O[0]).type==="ID"&&x.nodeType===9&&ve&&s.relative[O[1].type]){if(x=(s.find.ID(H.matches[0].replace(Wt,jt),x)||[])[0],x)ce&&(x=x.parentNode);else return C;g=g.slice(O.shift().value.length)}for(A=Ui.needsContext.test(g)?0:O.length;A--&&(H=O[A],!s.relative[Q=H.type]);)if((J=s.find[Q])&&(M=J(H.matches[0].replace(Wt,jt),Kn.test(O[0].type)&&ea(x.parentNode)||x))){if(O.splice(A,1),g=M.length&&Vi(O),!g)return er.apply(C,M),C;break}}return(ce||w(g,oe))(M,x,!ve,C,!x||Kn.test(g)&&ea(x.parentNode)||x),C},n.sortStable=De.split("").sort(fr).join("")===De,n.detectDuplicates=!!B,F(),n.sortDetached=Ct(function(g){return g.compareDocumentPosition(I.createElement("fieldset"))&1}),Ct(function(g){return g.innerHTML="<a href='#'></a>",g.firstChild.getAttribute("href")==="#"})||Zn("type|href|height|width",function(g,x,C){if(!C)return g.getAttribute(x,x.toLowerCase()==="type"?1:2)}),(!n.attributes||!Ct(function(g){return g.innerHTML="<input/>",g.firstChild.setAttribute("value",""),g.firstChild.getAttribute("value")===""}))&&Zn("value",function(g,x,C){if(!C&&g.nodeName.toLowerCase()==="input")return g.defaultValue}),Ct(function(g){return g.getAttribute("disabled")==null})||Zn(Qn,function(g,x,C){var M;if(!C)return g[x]===!0?x.toLowerCase():(M=g.getAttributeNode(x))&&M.specified?M.value:null}),Le}(l);o.find=ae,o.expr=ae.selectors,o.expr[":"]=o.expr.pseudos,o.uniqueSort=o.unique=ae.uniqueSort,o.text=ae.getText,o.isXMLDoc=ae.isXML,o.contains=ae.contains,o.escapeSelector=ae.escape;var se=function(e,r,n){for(var s=[],c=n!==void 0;(e=e[r])&&e.nodeType!==9;)if(e.nodeType===1){if(c&&o(e).is(n))break;s.push(e)}return s},Te=function(e,r){for(var n=[];e;e=e.nextSibling)e.nodeType===1&&e!==r&&n.push(e);return n},He=o.expr.match.needsContext;function Ie(e,r){return e.nodeName&&e.nodeName.toLowerCase()===r.toLowerCase()}var tt=/^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function Xe(e,r,n){return G(r)?o.grep(e,function(s,c){return!!r.call(s,c,s)!==n}):r.nodeType?o.grep(e,function(s){return s===r!==n}):typeof r!="string"?o.grep(e,function(s){return y.call(r,s)>-1!==n}):o.filter(r,e,n)}o.filter=function(e,r,n){var s=r[0];return n&&(e=":not("+e+")"),r.length===1&&s.nodeType===1?o.find.matchesSelector(s,e)?[s]:[]:o.find.matches(e,o.grep(r,function(c){return c.nodeType===1}))},o.fn.extend({find:function(e){var r,n,s=this.length,c=this;if(typeof e!="string")return this.pushStack(o(e).filter(function(){for(r=0;r<s;r++)if(o.contains(c[r],this))return!0}));for(n=this.pushStack([]),r=0;r<s;r++)o.find(e,c[r],n);return s>1?o.uniqueSort(n):n},filter:function(e){return this.pushStack(Xe(this,e||[],!1))},not:function(e){return this.pushStack(Xe(this,e||[],!0))},is:function(e){return!!Xe(this,typeof e=="string"&&He.test(e)?o(e):e||[],!1).length}});var mt,ir=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/,Er=o.fn.init=function(e,r,n){var s,c;if(!e)return this;if(n=n||mt,typeof e=="string")if(e[0]==="<"&&e[e.length-1]===">"&&e.length>=3?s=[null,e,null]:s=ir.exec(e),s&&(s[1]||!r))if(s[1]){if(r=r instanceof o?r[0]:r,o.merge(this,o.parseHTML(s[1],r&&r.nodeType?r.ownerDocument||r:K,!0)),tt.test(s[1])&&o.isPlainObject(r))for(s in r)G(this[s])?this[s](r[s]):this.attr(s,r[s]);return this}else return c=K.getElementById(s[2]),c&&(this[0]=c,this.length=1),this;else return!r||r.jquery?(r||n).find(e):this.constructor(r).find(e);else{if(e.nodeType)return this[0]=e,this.length=1,this;if(G(e))return n.ready!==void 0?n.ready(e):e(o)}return o.makeArray(e,this)};Er.prototype=o.fn,mt=o(K);var Nr=/^(?:parents|prev(?:Until|All))/,Gt={children:!0,contents:!0,next:!0,prev:!0};o.fn.extend({has:function(e){var r=o(e,this),n=r.length;return this.filter(function(){for(var s=0;s<n;s++)if(o.contains(this,r[s]))return!0})},closest:function(e,r){var n,s=0,c=this.length,f=[],h=typeof e!="string"&&o(e);if(!He.test(e)){for(;s<c;s++)for(n=this[s];n&&n!==r;n=n.parentNode)if(n.nodeType<11&&(h?h.index(n)>-1:n.nodeType===1&&o.find.matchesSelector(n,e))){f.push(n);break}}return this.pushStack(f.length>1?o.uniqueSort(f):f)},index:function(e){return e?typeof e=="string"?y.call(o(e),this[0]):y.call(this,e.jquery?e[0]:e):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,r){return this.pushStack(o.uniqueSort(o.merge(this.get(),o(e,r))))},addBack:function(e){return this.add(e==null?this.prevObject:this.prevObject.filter(e))}});function Or(e,r){for(;(e=e[r])&&e.nodeType!==1;);return e}o.each({parent:function(e){var r=e.parentNode;return r&&r.nodeType!==11?r:null},parents:function(e){return se(e,"parentNode")},parentsUntil:function(e,r,n){return se(e,"parentNode",n)},next:function(e){return Or(e,"nextSibling")},prev:function(e){return Or(e,"previousSibling")},nextAll:function(e){return se(e,"nextSibling")},prevAll:function(e){return se(e,"previousSibling")},nextUntil:function(e,r,n){return se(e,"nextSibling",n)},prevUntil:function(e,r,n){return se(e,"previousSibling",n)},siblings:function(e){return Te((e.parentNode||{}).firstChild,e)},children:function(e){return Te(e.firstChild)},contents:function(e){return e.contentDocument!=null&&a(e.contentDocument)?e.contentDocument:(Ie(e,"template")&&(e=e.content||e),o.merge([],e.childNodes))}},function(e,r){o.fn[e]=function(n,s){var c=o.map(this,r,n);return e.slice(-5)!=="Until"&&(s=n),s&&typeof s=="string"&&(c=o.filter(s,c)),this.length>1&&(Gt[e]||o.uniqueSort(c),Nr.test(e)&&c.reverse()),this.pushStack(c)}});var vt=/[^\x20\t\r\n\f]+/g;function _n(e){var r={};return o.each(e.match(vt)||[],function(n,s){r[s]=!0}),r}o.Callbacks=function(e){e=typeof e=="string"?_n(e):o.extend({},e);var r,n,s,c,f=[],h=[],w=-1,E=function(){for(c=c||e.once,s=r=!0;h.length;w=-1)for(n=h.shift();++w<f.length;)f[w].apply(n[0],n[1])===!1&&e.stopOnFalse&&(w=f.length,n=!1);e.memory||(n=!1),r=!1,c&&(n?f=[]:f="")},k={add:function(){return f&&(n&&!r&&(w=f.length-1,h.push(n)),function R(B){o.each(B,function(F,I){G(I)?(!e.unique||!k.has(I))&&f.push(I):I&&I.length&&be(I)!=="string"&&R(I)})}(arguments),n&&!r&&E()),this},remove:function(){return o.each(arguments,function(R,B){for(var F;(F=o.inArray(B,f,F))>-1;)f.splice(F,1),F<=w&&w--}),this},has:function(R){return R?o.inArray(R,f)>-1:f.length>0},empty:function(){return f&&(f=[]),this},disable:function(){return c=h=[],f=n="",this},disabled:function(){return!f},lock:function(){return c=h=[],!n&&!r&&(f=n=""),this},locked:function(){return!!c},fireWith:function(R,B){return c||(B=B||[],B=[R,B.slice?B.slice():B],h.push(B),r||E()),this},fire:function(){return k.fireWith(this,arguments),this},fired:function(){return!!s}};return k};function Qe(e){return e}function nr(e){throw e}function _i(e,r,n,s){var c;try{e&&G(c=e.promise)?c.call(e).done(r).fail(n):e&&G(c=e.then)?c.call(e,r,n):r.apply(void 0,[e].slice(s))}catch(f){n.apply(void 0,[f])}}o.extend({Deferred:function(e){var r=[["notify","progress",o.Callbacks("memory"),o.Callbacks("memory"),2],["resolve","done",o.Callbacks("once memory"),o.Callbacks("once memory"),0,"resolved"],["reject","fail",o.Callbacks("once memory"),o.Callbacks("once memory"),1,"rejected"]],n="pending",s={state:function(){return n},always:function(){return c.done(arguments).fail(arguments),this},catch:function(f){return s.then(null,f)},pipe:function(){var f=arguments;return o.Deferred(function(h){o.each(r,function(w,E){var k=G(f[E[4]])&&f[E[4]];c[E[1]](function(){var R=k&&k.apply(this,arguments);R&&G(R.promise)?R.promise().progress(h.notify).done(h.resolve).fail(h.reject):h[E[0]+"With"](this,k?[R]:arguments)})}),f=null}).promise()},then:function(f,h,w){var E=0;function k(R,B,F,I){return function(){var re=this,ve=arguments,ie=function(){var Ue,ut;if(!(R<E)){if(Ue=F.apply(re,ve),Ue===B.promise())throw new TypeError("Thenable self-resolution");ut=Ue&&(typeof Ue=="object"||typeof Ue=="function")&&Ue.then,G(ut)?I?ut.call(Ue,k(E,B,Qe,I),k(E,B,nr,I)):(E++,ut.call(Ue,k(E,B,Qe,I),k(E,B,nr,I),k(E,B,Qe,B.notifyWith))):(F!==Qe&&(re=void 0,ve=[Ue]),(I||B.resolveWith)(re,ve))}},Ve=I?ie:function(){try{ie()}catch(Ue){o.Deferred.exceptionHook&&o.Deferred.exceptionHook(Ue,Ve.stackTrace),R+1>=E&&(F!==nr&&(re=void 0,ve=[Ue]),B.rejectWith(re,ve))}};R?Ve():(o.Deferred.getStackHook&&(Ve.stackTrace=o.Deferred.getStackHook()),l.setTimeout(Ve))}}return o.Deferred(function(R){r[0][3].add(k(0,R,G(w)?w:Qe,R.notifyWith)),r[1][3].add(k(0,R,G(f)?f:Qe)),r[2][3].add(k(0,R,G(h)?h:nr))}).promise()},promise:function(f){return f!=null?o.extend(f,s):s}},c={};return o.each(r,function(f,h){var w=h[2],E=h[5];s[h[1]]=w.add,E&&w.add(function(){n=E},r[3-f][2].disable,r[3-f][3].disable,r[0][2].lock,r[0][3].lock),w.add(h[3].fire),c[h[0]]=function(){return c[h[0]+"With"](this===c?void 0:this,arguments),this},c[h[0]+"With"]=w.fireWith}),s.promise(c),e&&e.call(c,c),c},when:function(e){var r=arguments.length,n=r,s=Array(n),c=u.call(arguments),f=o.Deferred(),h=function(w){return function(E){s[w]=this,c[w]=arguments.length>1?u.call(arguments):E,--r||f.resolveWith(s,c)}};if(r<=1&&(_i(e,f.done(h(n)).resolve,f.reject,!r),f.state()==="pending"||G(c[n]&&c[n].then)))return f.then();for(;n--;)_i(c[n],h(n),f.reject);return f.promise()}});var Tn=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;o.Deferred.exceptionHook=function(e,r){l.console&&l.console.warn&&e&&Tn.test(e.name)&&l.console.warn("jQuery.Deferred exception: "+e.message,e.stack,r)},o.readyException=function(e){l.setTimeout(function(){throw e})};var $r=o.Deferred();o.fn.ready=function(e){return $r.then(e).catch(function(r){o.readyException(r)}),this},o.extend({isReady:!1,readyWait:1,ready:function(e){(e===!0?--o.readyWait:o.isReady)||(o.isReady=!0,!(e!==!0&&--o.readyWait>0)&&$r.resolveWith(K,[o]))}}),o.ready.then=$r.then;function Sr(){K.removeEventListener("DOMContentLoaded",Sr),l.removeEventListener("load",Sr),o.ready()}K.readyState==="complete"||K.readyState!=="loading"&&!K.documentElement.doScroll?l.setTimeout(o.ready):(K.addEventListener("DOMContentLoaded",Sr),l.addEventListener("load",Sr));var St=function(e,r,n,s,c,f,h){var w=0,E=e.length,k=n==null;if(be(n)==="object"){c=!0;for(w in n)St(e,r,w,n[w],!0,f,h)}else if(s!==void 0&&(c=!0,G(s)||(h=!0),k&&(h?(r.call(e,s),r=null):(k=r,r=function(R,B,F){return k.call(o(R),F)})),r))for(;w<E;w++)r(e[w],n,h?s:s.call(e[w],w,r(e[w],n)));return c?e:k?r.call(e):E?r(e[0],n):f},Cn=/^-ms-/,kn=/-([a-z])/g;function Pn(e,r){return r.toUpperCase()}function bt(e){return e.replace(Cn,"ms-").replace(kn,Pn)}var ar=function(e){return e.nodeType===1||e.nodeType===9||!+e.nodeType};function sr(){this.expando=o.expando+sr.uid++}sr.uid=1,sr.prototype={cache:function(e){var r=e[this.expando];return r||(r={},ar(e)&&(e.nodeType?e[this.expando]=r:Object.defineProperty(e,this.expando,{value:r,configurable:!0}))),r},set:function(e,r,n){var s,c=this.cache(e);if(typeof r=="string")c[bt(r)]=n;else for(s in r)c[bt(s)]=r[s];return c},get:function(e,r){return r===void 0?this.cache(e):e[this.expando]&&e[this.expando][bt(r)]},access:function(e,r,n){return r===void 0||r&&typeof r=="string"&&n===void 0?this.get(e,r):(this.set(e,r,n),n!==void 0?n:r)},remove:function(e,r){var n,s=e[this.expando];if(s!==void 0){if(r!==void 0)for(Array.isArray(r)?r=r.map(bt):(r=bt(r),r=r in s?[r]:r.match(vt)||[]),n=r.length;n--;)delete s[r[n]];(r===void 0||o.isEmptyObject(s))&&(e.nodeType?e[this.expando]=void 0:delete e[this.expando])}},hasData:function(e){var r=e[this.expando];return r!==void 0&&!o.isEmptyObject(r)}};var le=new sr,$e=new sr,An=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,Ti=/[A-Z]/g;function _r(e){return e==="true"?!0:e==="false"?!1:e==="null"?null:e===+e+""?+e:An.test(e)?JSON.parse(e):e}function Tr(e,r,n){var s;if(n===void 0&&e.nodeType===1)if(s="data-"+r.replace(Ti,"-$&").toLowerCase(),n=e.getAttribute(s),typeof n=="string"){try{n=_r(n)}catch(c){}$e.set(e,r,n)}else n=void 0;return n}o.extend({hasData:function(e){return $e.hasData(e)||le.hasData(e)},data:function(e,r,n){return $e.access(e,r,n)},removeData:function(e,r){$e.remove(e,r)},_data:function(e,r,n){return le.access(e,r,n)},_removeData:function(e,r){le.remove(e,r)}}),o.fn.extend({data:function(e,r){var n,s,c,f=this[0],h=f&&f.attributes;if(e===void 0){if(this.length&&(c=$e.get(f),f.nodeType===1&&!le.get(f,"hasDataAttrs"))){for(n=h.length;n--;)h[n]&&(s=h[n].name,s.indexOf("data-")===0&&(s=bt(s.slice(5)),Tr(f,s,c[s])));le.set(f,"hasDataAttrs",!0)}return c}return typeof e=="object"?this.each(function(){$e.set(this,e)}):St(this,function(w){var E;if(f&&w===void 0)return E=$e.get(f,e),E!==void 0||(E=Tr(f,e),E!==void 0)?E:void 0;this.each(function(){$e.set(this,e,w)})},null,r,arguments.length>1,null,!0)},removeData:function(e){return this.each(function(){$e.remove(this,e)})}}),o.extend({queue:function(e,r,n){var s;if(e)return r=(r||"fx")+"queue",s=le.get(e,r),n&&(!s||Array.isArray(n)?s=le.access(e,r,o.makeArray(n)):s.push(n)),s||[]},dequeue:function(e,r){r=r||"fx";var n=o.queue(e,r),s=n.length,c=n.shift(),f=o._queueHooks(e,r),h=function(){o.dequeue(e,r)};c==="inprogress"&&(c=n.shift(),s--),c&&(r==="fx"&&n.unshift("inprogress"),delete f.stop,c.call(e,h,f)),!s&&f&&f.empty.fire()},_queueHooks:function(e,r){var n=r+"queueHooks";return le.get(e,n)||le.access(e,n,{empty:o.Callbacks("once memory").add(function(){le.remove(e,[r+"queue",n])})})}}),o.fn.extend({queue:function(e,r){var n=2;return typeof e!="string"&&(r=e,e="fx",n--),arguments.length<n?o.queue(this[0],e):r===void 0?this:this.each(function(){var s=o.queue(this,e,r);o._queueHooks(this,e),e==="fx"&&s[0]!=="inprogress"&&o.dequeue(this,e)})},dequeue:function(e){return this.each(function(){o.dequeue(this,e)})},clearQueue:function(e){return this.queue(e||"fx",[])},promise:function(e,r){var n,s=1,c=o.Deferred(),f=this,h=this.length,w=function(){--s||c.resolveWith(f,[f])};for(typeof e!="string"&&(r=e,e=void 0),e=e||"fx";h--;)n=le.get(f[h],e+"queueHooks"),n&&n.empty&&(s++,n.empty.add(w));return w(),c.promise(r)}});var Cr=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,It=new RegExp("^(?:([+-])=|)("+Cr+")([a-z%]*)$","i"),yt=["Top","Right","Bottom","Left"],At=K.documentElement,Mt=function(e){return o.contains(e.ownerDocument,e)},Ci={composed:!0};At.getRootNode&&(Mt=function(e){return o.contains(e.ownerDocument,e)||e.getRootNode(Ci)===e.ownerDocument});var or=function(e,r){return e=r||e,e.style.display==="none"||e.style.display===""&&Mt(e)&&o.css(e,"display")==="none"};function Wr(e,r,n,s){var c,f,h=20,w=s?function(){return s.cur()}:function(){return o.css(e,r,"")},E=w(),k=n&&n[3]||(o.cssNumber[r]?"":"px"),R=e.nodeType&&(o.cssNumber[r]||k!=="px"&&+E)&&It.exec(o.css(e,r));if(R&&R[3]!==k){for(E=E/2,k=k||R[3],R=+E||1;h--;)o.style(e,r,R+k),(1-f)*(1-(f=w()/E||.5))<=0&&(h=0),R=R/f;R=R*2,o.style(e,r,R+k),n=n||[]}return n&&(R=+R||+E||0,c=n[1]?R+(n[1]+1)*n[2]:+n[2],s&&(s.unit=k,s.start=R,s.end=c)),c}var jr={};function ki(e){var r,n=e.ownerDocument,s=e.nodeName,c=jr[s];return c||(r=n.body.appendChild(n.createElement(s)),c=o.css(r,"display"),r.parentNode.removeChild(r),c==="none"&&(c="block"),jr[s]=c,c)}function Nt(e,r){for(var n,s,c=[],f=0,h=e.length;f<h;f++)s=e[f],!!s.style&&(n=s.style.display,r?(n==="none"&&(c[f]=le.get(s,"display")||null,c[f]||(s.style.display="")),s.style.display===""&&or(s)&&(c[f]=ki(s))):n!=="none"&&(c[f]="none",le.set(s,"display",n)));for(f=0;f<h;f++)c[f]!=null&&(e[f].style.display=c[f]);return e}o.fn.extend({show:function(){return Nt(this,!0)},hide:function(){return Nt(this)},toggle:function(e){return typeof e=="boolean"?e?this.show():this.hide():this.each(function(){or(this)?o(this).show():o(this).hide()})}});var Yt=/^(?:checkbox|radio)$/i,Br=/<([a-z][^\/\0>\x20\t\r\n\f]*)/i,Hr=/^$|^module$|\/(?:java|ecma)script/i;(function(){var e=K.createDocumentFragment(),r=e.appendChild(K.createElement("div")),n=K.createElement("input");n.setAttribute("type","radio"),n.setAttribute("checked","checked"),n.setAttribute("name","t"),r.appendChild(n),U.checkClone=r.cloneNode(!0).cloneNode(!0).lastChild.checked,r.innerHTML="<textarea>x</textarea>",U.noCloneChecked=!!r.cloneNode(!0).lastChild.defaultValue,r.innerHTML="<option></option>",U.option=!!r.lastChild})();var Je={thead:[1,"<table>","</table>"],col:[2,"<table><colgroup>","</colgroup></table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:[0,"",""]};Je.tbody=Je.tfoot=Je.colgroup=Je.caption=Je.thead,Je.th=Je.td,U.option||(Je.optgroup=Je.option=[1,"<select multiple='multiple'>","</select>"]);function Ke(e,r){var n;return typeof e.getElementsByTagName!="undefined"?n=e.getElementsByTagName(r||"*"):typeof e.querySelectorAll!="undefined"?n=e.querySelectorAll(r||"*"):n=[],r===void 0||r&&Ie(e,r)?o.merge([e],n):n}function Ur(e,r){for(var n=0,s=e.length;n<s;n++)le.set(e[n],"globalEval",!r||le.get(r[n],"globalEval"))}var zr=/<|&#?\w+;/;function Vr(e,r,n,s,c){for(var f,h,w,E,k,R,B=r.createDocumentFragment(),F=[],I=0,re=e.length;I<re;I++)if(f=e[I],f||f===0)if(be(f)==="object")o.merge(F,f.nodeType?[f]:f);else if(!zr.test(f))F.push(r.createTextNode(f));else{for(h=h||B.appendChild(r.createElement("div")),w=(Br.exec(f)||["",""])[1].toLowerCase(),E=Je[w]||Je._default,h.innerHTML=E[1]+o.htmlPrefilter(f)+E[2],R=E[0];R--;)h=h.lastChild;o.merge(F,h.childNodes),h=B.firstChild,h.textContent=""}for(B.textContent="",I=0;f=F[I++];){if(s&&o.inArray(f,s)>-1){c&&c.push(f);continue}if(k=Mt(f),h=Ke(B.appendChild(f),"script"),k&&Ur(h),n)for(R=0;f=h[R++];)Hr.test(f.type||"")&&n.push(f)}return B}var Pi=/^([^.]*)(?:\.(.+)|)/;function rt(){return!0}function Xt(){return!1}function Dn(e,r){return e===Ai()==(r==="focus")}function Ai(){try{return K.activeElement}catch(e){}}function qr(e,r,n,s,c,f){var h,w;if(typeof r=="object"){typeof n!="string"&&(s=s||n,n=void 0);for(w in r)qr(e,w,n,s,r[w],f);return e}if(s==null&&c==null?(c=n,s=n=void 0):c==null&&(typeof n=="string"?(c=s,s=void 0):(c=s,s=n,n=void 0)),c===!1)c=Xt;else if(!c)return e;return f===1&&(h=c,c=function(E){return o().off(E),h.apply(this,arguments)},c.guid=h.guid||(h.guid=o.guid++)),e.each(function(){o.event.add(this,r,c,s,n)})}o.event={global:{},add:function(e,r,n,s,c){var f,h,w,E,k,R,B,F,I,re,ve,ie=le.get(e);if(!!ar(e))for(n.handler&&(f=n,n=f.handler,c=f.selector),c&&o.find.matchesSelector(At,c),n.guid||(n.guid=o.guid++),(E=ie.events)||(E=ie.events=Object.create(null)),(h=ie.handle)||(h=ie.handle=function(Ve){return typeof o!="undefined"&&o.event.triggered!==Ve.type?o.event.dispatch.apply(e,arguments):void 0}),r=(r||"").match(vt)||[""],k=r.length;k--;)w=Pi.exec(r[k])||[],I=ve=w[1],re=(w[2]||"").split(".").sort(),!!I&&(B=o.event.special[I]||{},I=(c?B.delegateType:B.bindType)||I,B=o.event.special[I]||{},R=o.extend({type:I,origType:ve,data:s,handler:n,guid:n.guid,selector:c,needsContext:c&&o.expr.match.needsContext.test(c),namespace:re.join(".")},f),(F=E[I])||(F=E[I]=[],F.delegateCount=0,(!B.setup||B.setup.call(e,s,re,h)===!1)&&e.addEventListener&&e.addEventListener(I,h)),B.add&&(B.add.call(e,R),R.handler.guid||(R.handler.guid=n.guid)),c?F.splice(F.delegateCount++,0,R):F.push(R),o.event.global[I]=!0)},remove:function(e,r,n,s,c){var f,h,w,E,k,R,B,F,I,re,ve,ie=le.hasData(e)&&le.get(e);if(!(!ie||!(E=ie.events))){for(r=(r||"").match(vt)||[""],k=r.length;k--;){if(w=Pi.exec(r[k])||[],I=ve=w[1],re=(w[2]||"").split(".").sort(),!I){for(I in E)o.event.remove(e,I+r[k],n,s,!0);continue}for(B=o.event.special[I]||{},I=(s?B.delegateType:B.bindType)||I,F=E[I]||[],w=w[2]&&new RegExp("(^|\\.)"+re.join("\\.(?:.*\\.|)")+"(\\.|$)"),h=f=F.length;f--;)R=F[f],(c||ve===R.origType)&&(!n||n.guid===R.guid)&&(!w||w.test(R.namespace))&&(!s||s===R.selector||s==="**"&&R.selector)&&(F.splice(f,1),R.selector&&F.delegateCount--,B.remove&&B.remove.call(e,R));h&&!F.length&&((!B.teardown||B.teardown.call(e,re,ie.handle)===!1)&&o.removeEvent(e,I,ie.handle),delete E[I])}o.isEmptyObject(E)&&le.remove(e,"handle events")}},dispatch:function(e){var r,n,s,c,f,h,w=new Array(arguments.length),E=o.event.fix(e),k=(le.get(this,"events")||Object.create(null))[E.type]||[],R=o.event.special[E.type]||{};for(w[0]=E,r=1;r<arguments.length;r++)w[r]=arguments[r];if(E.delegateTarget=this,!(R.preDispatch&&R.preDispatch.call(this,E)===!1)){for(h=o.event.handlers.call(this,E,k),r=0;(c=h[r++])&&!E.isPropagationStopped();)for(E.currentTarget=c.elem,n=0;(f=c.handlers[n++])&&!E.isImmediatePropagationStopped();)(!E.rnamespace||f.namespace===!1||E.rnamespace.test(f.namespace))&&(E.handleObj=f,E.data=f.data,s=((o.event.special[f.origType]||{}).handle||f.handler).apply(c.elem,w),s!==void 0&&(E.result=s)===!1&&(E.preventDefault(),E.stopPropagation()));return R.postDispatch&&R.postDispatch.call(this,E),E.result}},handlers:function(e,r){var n,s,c,f,h,w=[],E=r.delegateCount,k=e.target;if(E&&k.nodeType&&!(e.type==="click"&&e.button>=1)){for(;k!==this;k=k.parentNode||this)if(k.nodeType===1&&!(e.type==="click"&&k.disabled===!0)){for(f=[],h={},n=0;n<E;n++)s=r[n],c=s.selector+" ",h[c]===void 0&&(h[c]=s.needsContext?o(c,this).index(k)>-1:o.find(c,this,null,[k]).length),h[c]&&f.push(s);f.length&&w.push({elem:k,handlers:f})}}return k=this,E<r.length&&w.push({elem:k,handlers:r.slice(E)}),w},addProp:function(e,r){Object.defineProperty(o.Event.prototype,e,{enumerable:!0,configurable:!0,get:G(r)?function(){if(this.originalEvent)return r(this.originalEvent)}:function(){if(this.originalEvent)return this.originalEvent[e]},set:function(n){Object.defineProperty(this,e,{enumerable:!0,configurable:!0,writable:!0,value:n})}})},fix:function(e){return e[o.expando]?e:new o.Event(e)},special:{load:{noBubble:!0},click:{setup:function(e){var r=this||e;return Yt.test(r.type)&&r.click&&Ie(r,"input")&&kr(r,"click",rt),!1},trigger:function(e){var r=this||e;return Yt.test(r.type)&&r.click&&Ie(r,"input")&&kr(r,"click"),!0},_default:function(e){var r=e.target;return Yt.test(r.type)&&r.click&&Ie(r,"input")&&le.get(r,"click")||Ie(r,"a")}},beforeunload:{postDispatch:function(e){e.result!==void 0&&e.originalEvent&&(e.originalEvent.returnValue=e.result)}}}};function kr(e,r,n){if(!n){le.get(e,r)===void 0&&o.event.add(e,r,rt);return}le.set(e,r,!1),o.event.add(e,r,{namespace:!1,handler:function(s){var c,f,h=le.get(this,r);if(s.isTrigger&1&&this[r]){if(h.length)(o.event.special[r]||{}).delegateType&&s.stopPropagation();else if(h=u.call(arguments),le.set(this,r,h),c=n(this,r),this[r](),f=le.get(this,r),h!==f||c?le.set(this,r,!1):f={},h!==f)return s.stopImmediatePropagation(),s.preventDefault(),f&&f.value}else h.length&&(le.set(this,r,{value:o.event.trigger(o.extend(h[0],o.Event.prototype),h.slice(1),this)}),s.stopImmediatePropagation())}})}o.removeEvent=function(e,r,n){e.removeEventListener&&e.removeEventListener(r,n)},o.Event=function(e,r){if(!(this instanceof o.Event))return new o.Event(e,r);e&&e.type?(this.originalEvent=e,this.type=e.type,this.isDefaultPrevented=e.defaultPrevented||e.defaultPrevented===void 0&&e.returnValue===!1?rt:Xt,this.target=e.target&&e.target.nodeType===3?e.target.parentNode:e.target,this.currentTarget=e.currentTarget,this.relatedTarget=e.relatedTarget):this.type=e,r&&o.extend(this,r),this.timeStamp=e&&e.timeStamp||Date.now(),this[o.expando]=!0},o.Event.prototype={constructor:o.Event,isDefaultPrevented:Xt,isPropagationStopped:Xt,isImmediatePropagationStopped:Xt,isSimulated:!1,preventDefault:function(){var e=this.originalEvent;this.isDefaultPrevented=rt,e&&!this.isSimulated&&e.preventDefault()},stopPropagation:function(){var e=this.originalEvent;this.isPropagationStopped=rt,e&&!this.isSimulated&&e.stopPropagation()},stopImmediatePropagation:function(){var e=this.originalEvent;this.isImmediatePropagationStopped=rt,e&&!this.isSimulated&&e.stopImmediatePropagation(),this.stopPropagation()}},o.each({altKey:!0,bubbles:!0,cancelable:!0,changedTouches:!0,ctrlKey:!0,detail:!0,eventPhase:!0,metaKey:!0,pageX:!0,pageY:!0,shiftKey:!0,view:!0,char:!0,code:!0,charCode:!0,key:!0,keyCode:!0,button:!0,buttons:!0,clientX:!0,clientY:!0,offsetX:!0,offsetY:!0,pointerId:!0,pointerType:!0,screenX:!0,screenY:!0,targetTouches:!0,toElement:!0,touches:!0,which:!0},o.event.addProp),o.each({focus:"focusin",blur:"focusout"},function(e,r){o.event.special[e]={setup:function(){return kr(this,e,Dn),!1},trigger:function(){return kr(this,e),!0},_default:function(){return!0},delegateType:r}}),o.each({mouseenter:"mouseover",mouseleave:"mouseout",pointerenter:"pointerover",pointerleave:"pointerout"},function(e,r){o.event.special[e]={delegateType:r,bindType:r,handle:function(n){var s,c=this,f=n.relatedTarget,h=n.handleObj;return(!f||f!==c&&!o.contains(c,f))&&(n.type=h.origType,s=h.handler.apply(this,arguments),n.type=r),s}}}),o.fn.extend({on:function(e,r,n,s){return qr(this,e,r,n,s)},one:function(e,r,n,s){return qr(this,e,r,n,s,1)},off:function(e,r,n){var s,c;if(e&&e.preventDefault&&e.handleObj)return s=e.handleObj,o(e.delegateTarget).off(s.namespace?s.origType+"."+s.namespace:s.origType,s.selector,s.handler),this;if(typeof e=="object"){for(c in e)this.off(c,r,e[c]);return this}return(r===!1||typeof r=="function")&&(n=r,r=void 0),n===!1&&(n=Xt),this.each(function(){o.event.remove(this,e,n,r)})}});var Fn=/<script|<style|<link/i,Ln=/checked\s*(?:[^=]|=\s*.checked.)/i,Rn=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g;function Di(e,r){return Ie(e,"table")&&Ie(r.nodeType!==11?r:r.firstChild,"tr")&&o(e).children("tbody")[0]||e}function In(e){return e.type=(e.getAttribute("type")!==null)+"/"+e.type,e}function Mn(e){return(e.type||"").slice(0,5)==="true/"?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Fi(e,r){var n,s,c,f,h,w,E;if(r.nodeType===1){if(le.hasData(e)&&(f=le.get(e),E=f.events,E)){le.remove(r,"handle events");for(c in E)for(n=0,s=E[c].length;n<s;n++)o.event.add(r,c,E[c][n])}$e.hasData(e)&&(h=$e.access(e),w=o.extend({},h),$e.set(r,w))}}function Nn(e,r){var n=r.nodeName.toLowerCase();n==="input"&&Yt.test(e.type)?r.checked=e.checked:(n==="input"||n==="textarea")&&(r.defaultValue=e.defaultValue)}function Ot(e,r,n,s){r=d(r);var c,f,h,w,E,k,R=0,B=e.length,F=B-1,I=r[0],re=G(I);if(re||B>1&&typeof I=="string"&&!U.checkClone&&Ln.test(I))return e.each(function(ve){var ie=e.eq(ve);re&&(r[0]=I.call(this,ve,ie.html())),Ot(ie,r,n,s)});if(B&&(c=Vr(r,e[0].ownerDocument,!1,e,s),f=c.firstChild,c.childNodes.length===1&&(c=f),f||s)){for(h=o.map(Ke(c,"script"),In),w=h.length;R<B;R++)E=c,R!==F&&(E=o.clone(E,!0,!0),w&&o.merge(h,Ke(E,"script"))),n.call(e[R],E,R);if(w)for(k=h[h.length-1].ownerDocument,o.map(h,Mn),R=0;R<w;R++)E=h[R],Hr.test(E.type||"")&&!le.access(E,"globalEval")&&o.contains(k,E)&&(E.src&&(E.type||"").toLowerCase()!=="module"?o._evalUrl&&!E.noModule&&o._evalUrl(E.src,{nonce:E.nonce||E.getAttribute("nonce")},k):Pe(E.textContent.replace(Rn,""),E,k))}return e}function Li(e,r,n){for(var s,c=r?o.filter(r,e):e,f=0;(s=c[f])!=null;f++)!n&&s.nodeType===1&&o.cleanData(Ke(s)),s.parentNode&&(n&&Mt(s)&&Ur(Ke(s,"script")),s.parentNode.removeChild(s));return e}o.extend({htmlPrefilter:function(e){return e},clone:function(e,r,n){var s,c,f,h,w=e.cloneNode(!0),E=Mt(e);if(!U.noCloneChecked&&(e.nodeType===1||e.nodeType===11)&&!o.isXMLDoc(e))for(h=Ke(w),f=Ke(e),s=0,c=f.length;s<c;s++)Nn(f[s],h[s]);if(r)if(n)for(f=f||Ke(e),h=h||Ke(w),s=0,c=f.length;s<c;s++)Fi(f[s],h[s]);else Fi(e,w);return h=Ke(w,"script"),h.length>0&&Ur(h,!E&&Ke(e,"script")),w},cleanData:function(e){for(var r,n,s,c=o.event.special,f=0;(n=e[f])!==void 0;f++)if(ar(n)){if(r=n[le.expando]){if(r.events)for(s in r.events)c[s]?o.event.remove(n,s):o.removeEvent(n,s,r.handle);n[le.expando]=void 0}n[$e.expando]&&(n[$e.expando]=void 0)}}}),o.fn.extend({detach:function(e){return Li(this,e,!0)},remove:function(e){return Li(this,e)},text:function(e){return St(this,function(r){return r===void 0?o.text(this):this.empty().each(function(){(this.nodeType===1||this.nodeType===11||this.nodeType===9)&&(this.textContent=r)})},null,e,arguments.length)},append:function(){return Ot(this,arguments,function(e){if(this.nodeType===1||this.nodeType===11||this.nodeType===9){var r=Di(this,e);r.appendChild(e)}})},prepend:function(){return Ot(this,arguments,function(e){if(this.nodeType===1||this.nodeType===11||this.nodeType===9){var r=Di(this,e);r.insertBefore(e,r.firstChild)}})},before:function(){return Ot(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this)})},after:function(){return Ot(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)})},empty:function(){for(var e,r=0;(e=this[r])!=null;r++)e.nodeType===1&&(o.cleanData(Ke(e,!1)),e.textContent="");return this},clone:function(e,r){return e=e==null?!1:e,r=r==null?e:r,this.map(function(){return o.clone(this,e,r)})},html:function(e){return St(this,function(r){var n=this[0]||{},s=0,c=this.length;if(r===void 0&&n.nodeType===1)return n.innerHTML;if(typeof r=="string"&&!Fn.test(r)&&!Je[(Br.exec(r)||["",""])[1].toLowerCase()]){r=o.htmlPrefilter(r);try{for(;s<c;s++)n=this[s]||{},n.nodeType===1&&(o.cleanData(Ke(n,!1)),n.innerHTML=r);n=0}catch(f){}}n&&this.empty().append(r)},null,e,arguments.length)},replaceWith:function(){var e=[];return Ot(this,arguments,function(r){var n=this.parentNode;o.inArray(this,e)<0&&(o.cleanData(Ke(this)),n&&n.replaceChild(r,this))},e)}}),o.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(e,r){o.fn[e]=function(n){for(var s,c=[],f=o(n),h=f.length-1,w=0;w<=h;w++)s=w===h?this:this.clone(!0),o(f[w])[r](s),m.apply(c,s.get());return this.pushStack(c)}});var Gr=new RegExp("^("+Cr+")(?!px)[a-z%]+$","i"),Pr=function(e){var r=e.ownerDocument.defaultView;return(!r||!r.opener)&&(r=l),r.getComputedStyle(e)},Ri=function(e,r,n){var s,c,f={};for(c in r)f[c]=e.style[c],e.style[c]=r[c];s=n.call(e);for(c in r)e.style[c]=f[c];return s},On=new RegExp(yt.join("|"),"i");(function(){function e(){if(!!k){E.style.cssText="position:absolute;left:-11111px;width:60px;margin-top:1px;padding:0;border:0",k.style.cssText="position:relative;display:block;box-sizing:border-box;overflow:scroll;margin:auto;border:1px;padding:1px;width:60%;top:1%",At.appendChild(E).appendChild(k);var R=l.getComputedStyle(k);n=R.top!=="1%",w=r(R.marginLeft)===12,k.style.right="60%",f=r(R.right)===36,s=r(R.width)===36,k.style.position="absolute",c=r(k.offsetWidth/3)===12,At.removeChild(E),k=null}}function r(R){return Math.round(parseFloat(R))}var n,s,c,f,h,w,E=K.createElement("div"),k=K.createElement("div");!k.style||(k.style.backgroundClip="content-box",k.cloneNode(!0).style.backgroundClip="",U.clearCloneStyle=k.style.backgroundClip==="content-box",o.extend(U,{boxSizingReliable:function(){return e(),s},pixelBoxStyles:function(){return e(),f},pixelPosition:function(){return e(),n},reliableMarginLeft:function(){return e(),w},scrollboxSize:function(){return e(),c},reliableTrDimensions:function(){var R,B,F,I;return h==null&&(R=K.createElement("table"),B=K.createElement("tr"),F=K.createElement("div"),R.style.cssText="position:absolute;left:-11111px;border-collapse:separate",B.style.cssText="border:1px solid",B.style.height="1px",F.style.height="9px",F.style.display="block",At.appendChild(R).appendChild(B).appendChild(F),I=l.getComputedStyle(B),h=parseInt(I.height,10)+parseInt(I.borderTopWidth,10)+parseInt(I.borderBottomWidth,10)===B.offsetHeight,At.removeChild(R)),h}}))})();function lr(e,r,n){var s,c,f,h,w=e.style;return n=n||Pr(e),n&&(h=n.getPropertyValue(r)||n[r],h===""&&!Mt(e)&&(h=o.style(e,r)),!U.pixelBoxStyles()&&Gr.test(h)&&On.test(r)&&(s=w.width,c=w.minWidth,f=w.maxWidth,w.minWidth=w.maxWidth=w.width=h,h=n.width,w.width=s,w.minWidth=c,w.maxWidth=f)),h!==void 0?h+"":h}function Ii(e,r){return{get:function(){if(e()){delete this.get;return}return(this.get=r).apply(this,arguments)}}}var Mi=["Webkit","Moz","ms"],Ni=K.createElement("div").style,Oi={};function $n(e){for(var r=e[0].toUpperCase()+e.slice(1),n=Mi.length;n--;)if(e=Mi[n]+r,e in Ni)return e}function Yr(e){var r=o.cssProps[e]||Oi[e];return r||(e in Ni?e:Oi[e]=$n(e)||e)}var Wn=/^(none|table(?!-c[ea]).+)/,$i=/^--/,jn={position:"absolute",visibility:"hidden",display:"block"},Xr={letterSpacing:"0",fontWeight:"400"};function Qt(e,r,n){var s=It.exec(r);return s?Math.max(0,s[2]-(n||0))+(s[3]||"px"):r}function Ar(e,r,n,s,c,f){var h=r==="width"?1:0,w=0,E=0;if(n===(s?"border":"content"))return 0;for(;h<4;h+=2)n==="margin"&&(E+=o.css(e,n+yt[h],!0,c)),s?(n==="content"&&(E-=o.css(e,"padding"+yt[h],!0,c)),n!=="margin"&&(E-=o.css(e,"border"+yt[h]+"Width",!0,c))):(E+=o.css(e,"padding"+yt[h],!0,c),n!=="padding"?E+=o.css(e,"border"+yt[h]+"Width",!0,c):w+=o.css(e,"border"+yt[h]+"Width",!0,c));return!s&&f>=0&&(E+=Math.max(0,Math.ceil(e["offset"+r[0].toUpperCase()+r.slice(1)]-f-E-w-.5))||0),E}function $t(e,r,n){var s=Pr(e),c=!U.boxSizingReliable()||n,f=c&&o.css(e,"boxSizing",!1,s)==="border-box",h=f,w=lr(e,r,s),E="offset"+r[0].toUpperCase()+r.slice(1);if(Gr.test(w)){if(!n)return w;w="auto"}return(!U.boxSizingReliable()&&f||!U.reliableTrDimensions()&&Ie(e,"tr")||w==="auto"||!parseFloat(w)&&o.css(e,"display",!1,s)==="inline")&&e.getClientRects().length&&(f=o.css(e,"boxSizing",!1,s)==="border-box",h=E in e,h&&(w=e[E])),w=parseFloat(w)||0,w+Ar(e,r,n||(f?"border":"content"),h,s,w)+"px"}o.extend({cssHooks:{opacity:{get:function(e,r){if(r){var n=lr(e,"opacity");return n===""?"1":n}}}},cssNumber:{animationIterationCount:!0,columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,gridArea:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnStart:!0,gridRow:!0,gridRowEnd:!0,gridRowStart:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{},style:function(e,r,n,s){if(!(!e||e.nodeType===3||e.nodeType===8||!e.style)){var c,f,h,w=bt(r),E=$i.test(r),k=e.style;if(E||(r=Yr(w)),h=o.cssHooks[r]||o.cssHooks[w],n!==void 0){if(f=typeof n,f==="string"&&(c=It.exec(n))&&c[1]&&(n=Wr(e,r,c),f="number"),n==null||n!==n)return;f==="number"&&!E&&(n+=c&&c[3]||(o.cssNumber[w]?"":"px")),!U.clearCloneStyle&&n===""&&r.indexOf("background")===0&&(k[r]="inherit"),(!h||!("set"in h)||(n=h.set(e,n,s))!==void 0)&&(E?k.setProperty(r,n):k[r]=n)}else return h&&"get"in h&&(c=h.get(e,!1,s))!==void 0?c:k[r]}},css:function(e,r,n,s){var c,f,h,w=bt(r),E=$i.test(r);return E||(r=Yr(w)),h=o.cssHooks[r]||o.cssHooks[w],h&&"get"in h&&(c=h.get(e,!0,n)),c===void 0&&(c=lr(e,r,s)),c==="normal"&&r in Xr&&(c=Xr[r]),n===""||n?(f=parseFloat(c),n===!0||isFinite(f)?f||0:c):c}}),o.each(["height","width"],function(e,r){o.cssHooks[r]={get:function(n,s,c){if(s)return Wn.test(o.css(n,"display"))&&(!n.getClientRects().length||!n.getBoundingClientRect().width)?Ri(n,jn,function(){return $t(n,r,c)}):$t(n,r,c)},set:function(n,s,c){var f,h=Pr(n),w=!U.scrollboxSize()&&h.position==="absolute",E=w||c,k=E&&o.css(n,"boxSizing",!1,h)==="border-box",R=c?Ar(n,r,c,k,h):0;return k&&w&&(R-=Math.ceil(n["offset"+r[0].toUpperCase()+r.slice(1)]-parseFloat(h[r])-Ar(n,r,"border",!1,h)-.5)),R&&(f=It.exec(s))&&(f[3]||"px")!=="px"&&(n.style[r]=s,s=o.css(n,r)),Qt(n,s,R)}}}),o.cssHooks.marginLeft=Ii(U.reliableMarginLeft,function(e,r){if(r)return(parseFloat(lr(e,"marginLeft"))||e.getBoundingClientRect().left-Ri(e,{marginLeft:0},function(){return e.getBoundingClientRect().left}))+"px"}),o.each({margin:"",padding:"",border:"Width"},function(e,r){o.cssHooks[e+r]={expand:function(n){for(var s=0,c={},f=typeof n=="string"?n.split(" "):[n];s<4;s++)c[e+yt[s]+r]=f[s]||f[s-2]||f[0];return c}},e!=="margin"&&(o.cssHooks[e+r].set=Qt)}),o.fn.extend({css:function(e,r){return St(this,function(n,s,c){var f,h,w={},E=0;if(Array.isArray(s)){for(f=Pr(n),h=s.length;E<h;E++)w[s[E]]=o.css(n,s[E],!1,f);return w}return c!==void 0?o.style(n,s,c):o.css(n,s)},e,r,arguments.length>1)}});function Ze(e,r,n,s,c){return new Ze.prototype.init(e,r,n,s,c)}o.Tween=Ze,Ze.prototype={constructor:Ze,init:function(e,r,n,s,c,f){this.elem=e,this.prop=n,this.easing=c||o.easing._default,this.options=r,this.start=this.now=this.cur(),this.end=s,this.unit=f||(o.cssNumber[n]?"":"px")},cur:function(){var e=Ze.propHooks[this.prop];return e&&e.get?e.get(this):Ze.propHooks._default.get(this)},run:function(e){var r,n=Ze.propHooks[this.prop];return this.options.duration?this.pos=r=o.easing[this.easing](e,this.options.duration*e,0,1,this.options.duration):this.pos=r=e,this.now=(this.end-this.start)*r+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):Ze.propHooks._default.set(this),this}},Ze.prototype.init.prototype=Ze.prototype,Ze.propHooks={_default:{get:function(e){var r;return e.elem.nodeType!==1||e.elem[e.prop]!=null&&e.elem.style[e.prop]==null?e.elem[e.prop]:(r=o.css(e.elem,e.prop,""),!r||r==="auto"?0:r)},set:function(e){o.fx.step[e.prop]?o.fx.step[e.prop](e):e.elem.nodeType===1&&(o.cssHooks[e.prop]||e.elem.style[Yr(e.prop)]!=null)?o.style(e.elem,e.prop,e.now+e.unit):e.elem[e.prop]=e.now}}},Ze.propHooks.scrollTop=Ze.propHooks.scrollLeft={set:function(e){e.elem.nodeType&&e.elem.parentNode&&(e.elem[e.prop]=e.now)}},o.easing={linear:function(e){return e},swing:function(e){return .5-Math.cos(e*Math.PI)/2},_default:"swing"},o.fx=Ze.prototype.init,o.fx.step={};var _t,Jt,Bn=/^(?:toggle|show|hide)$/,Hn=/queueHooks$/;function ur(){Jt&&(K.hidden===!1&&l.requestAnimationFrame?l.requestAnimationFrame(ur):l.setTimeout(ur,o.fx.interval),o.fx.tick())}function Wi(){return l.setTimeout(function(){_t=void 0}),_t=Date.now()}function Dr(e,r){var n,s=0,c={height:e};for(r=r?1:0;s<4;s+=2-r)n=yt[s],c["margin"+n]=c["padding"+n]=e;return r&&(c.opacity=c.width=e),c}function p(e,r,n){for(var s,c=(_.tweeners[r]||[]).concat(_.tweeners["*"]),f=0,h=c.length;f<h;f++)if(s=c[f].call(n,r,e))return s}function S(e,r,n){var s,c,f,h,w,E,k,R,B="width"in r||"height"in r,F=this,I={},re=e.style,ve=e.nodeType&&or(e),ie=le.get(e,"fxshow");n.queue||(h=o._queueHooks(e,"fx"),h.unqueued==null&&(h.unqueued=0,w=h.empty.fire,h.empty.fire=function(){h.unqueued||w()}),h.unqueued++,F.always(function(){F.always(function(){h.unqueued--,o.queue(e,"fx").length||h.empty.fire()})}));for(s in r)if(c=r[s],Bn.test(c)){if(delete r[s],f=f||c==="toggle",c===(ve?"hide":"show"))if(c==="show"&&ie&&ie[s]!==void 0)ve=!0;else continue;I[s]=ie&&ie[s]||o.style(e,s)}if(E=!o.isEmptyObject(r),!(!E&&o.isEmptyObject(I))){B&&e.nodeType===1&&(n.overflow=[re.overflow,re.overflowX,re.overflowY],k=ie&&ie.display,k==null&&(k=le.get(e,"display")),R=o.css(e,"display"),R==="none"&&(k?R=k:(Nt([e],!0),k=e.style.display||k,R=o.css(e,"display"),Nt([e]))),(R==="inline"||R==="inline-block"&&k!=null)&&o.css(e,"float")==="none"&&(E||(F.done(function(){re.display=k}),k==null&&(R=re.display,k=R==="none"?"":R)),re.display="inline-block")),n.overflow&&(re.overflow="hidden",F.always(function(){re.overflow=n.overflow[0],re.overflowX=n.overflow[1],re.overflowY=n.overflow[2]})),E=!1;for(s in I)E||(ie?"hidden"in ie&&(ve=ie.hidden):ie=le.access(e,"fxshow",{display:k}),f&&(ie.hidden=!ve),ve&&Nt([e],!0),F.done(function(){ve||Nt([e]),le.remove(e,"fxshow");for(s in I)o.style(e,s,I[s])})),E=p(ve?ie[s]:0,s,F),s in ie||(ie[s]=E.start,ve&&(E.end=E.start,E.start=0))}}function v(e,r){var n,s,c,f,h;for(n in e)if(s=bt(n),c=r[s],f=e[n],Array.isArray(f)&&(c=f[1],f=e[n]=f[0]),n!==s&&(e[s]=f,delete e[n]),h=o.cssHooks[s],h&&"expand"in h){f=h.expand(f),delete e[s];for(n in f)n in e||(e[n]=f[n],r[n]=c)}else r[s]=c}function _(e,r,n){var s,c,f=0,h=_.prefilters.length,w=o.Deferred().always(function(){delete E.elem}),E=function(){if(c)return!1;for(var B=_t||Wi(),F=Math.max(0,k.startTime+k.duration-B),I=F/k.duration||0,re=1-I,ve=0,ie=k.tweens.length;ve<ie;ve++)k.tweens[ve].run(re);return w.notifyWith(e,[k,re,F]),re<1&&ie?F:(ie||w.notifyWith(e,[k,1,0]),w.resolveWith(e,[k]),!1)},k=w.promise({elem:e,props:o.extend({},r),opts:o.extend(!0,{specialEasing:{},easing:o.easing._default},n),originalProperties:r,originalOptions:n,startTime:_t||Wi(),duration:n.duration,tweens:[],createTween:function(B,F){var I=o.Tween(e,k.opts,B,F,k.opts.specialEasing[B]||k.opts.easing);return k.tweens.push(I),I},stop:function(B){var F=0,I=B?k.tweens.length:0;if(c)return this;for(c=!0;F<I;F++)k.tweens[F].run(1);return B?(w.notifyWith(e,[k,1,0]),w.resolveWith(e,[k,B])):w.rejectWith(e,[k,B]),this}}),R=k.props;for(v(R,k.opts.specialEasing);f<h;f++)if(s=_.prefilters[f].call(k,e,R,k.opts),s)return G(s.stop)&&(o._queueHooks(k.elem,k.opts.queue).stop=s.stop.bind(s)),s;return o.map(R,p,k),G(k.opts.start)&&k.opts.start.call(e,k),k.progress(k.opts.progress).done(k.opts.done,k.opts.complete).fail(k.opts.fail).always(k.opts.always),o.fx.timer(o.extend(E,{elem:e,anim:k,queue:k.opts.queue})),k}o.Animation=o.extend(_,{tweeners:{"*":[function(e,r){var n=this.createTween(e,r);return Wr(n.elem,e,It.exec(r),n),n}]},tweener:function(e,r){G(e)?(r=e,e=["*"]):e=e.match(vt);for(var n,s=0,c=e.length;s<c;s++)n=e[s],_.tweeners[n]=_.tweeners[n]||[],_.tweeners[n].unshift(r)},prefilters:[S],prefilter:function(e,r){r?_.prefilters.unshift(e):_.prefilters.push(e)}}),o.speed=function(e,r,n){var s=e&&typeof e=="object"?o.extend({},e):{complete:n||!n&&r||G(e)&&e,duration:e,easing:n&&r||r&&!G(r)&&r};return o.fx.off?s.duration=0:typeof s.duration!="number"&&(s.duration in o.fx.speeds?s.duration=o.fx.speeds[s.duration]:s.duration=o.fx.speeds._default),(s.queue==null||s.queue===!0)&&(s.queue="fx"),s.old=s.complete,s.complete=function(){G(s.old)&&s.old.call(this),s.queue&&o.dequeue(this,s.queue)},s},o.fn.extend({fadeTo:function(e,r,n,s){return this.filter(or).css("opacity",0).show().end().animate({opacity:r},e,n,s)},animate:function(e,r,n,s){var c=o.isEmptyObject(e),f=o.speed(r,n,s),h=function(){var w=_(this,o.extend({},e),f);(c||le.get(this,"finish"))&&w.stop(!0)};return h.finish=h,c||f.queue===!1?this.each(h):this.queue(f.queue,h)},stop:function(e,r,n){var s=function(c){var f=c.stop;delete c.stop,f(n)};return typeof e!="string"&&(n=r,r=e,e=void 0),r&&this.queue(e||"fx",[]),this.each(function(){var c=!0,f=e!=null&&e+"queueHooks",h=o.timers,w=le.get(this);if(f)w[f]&&w[f].stop&&s(w[f]);else for(f in w)w[f]&&w[f].stop&&Hn.test(f)&&s(w[f]);for(f=h.length;f--;)h[f].elem===this&&(e==null||h[f].queue===e)&&(h[f].anim.stop(n),c=!1,h.splice(f,1));(c||!n)&&o.dequeue(this,e)})},finish:function(e){return e!==!1&&(e=e||"fx"),this.each(function(){var r,n=le.get(this),s=n[e+"queue"],c=n[e+"queueHooks"],f=o.timers,h=s?s.length:0;for(n.finish=!0,o.queue(this,e,[]),c&&c.stop&&c.stop.call(this,!0),r=f.length;r--;)f[r].elem===this&&f[r].queue===e&&(f[r].anim.stop(!0),f.splice(r,1));for(r=0;r<h;r++)s[r]&&s[r].finish&&s[r].finish.call(this);delete n.finish})}}),o.each(["toggle","show","hide"],function(e,r){var n=o.fn[r];o.fn[r]=function(s,c,f){return s==null||typeof s=="boolean"?n.apply(this,arguments):this.animate(Dr(r,!0),s,c,f)}}),o.each({slideDown:Dr("show"),slideUp:Dr("hide"),slideToggle:Dr("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(e,r){o.fn[e]=function(n,s,c){return this.animate(r,n,s,c)}}),o.timers=[],o.fx.tick=function(){var e,r=0,n=o.timers;for(_t=Date.now();r<n.length;r++)e=n[r],!e()&&n[r]===e&&n.splice(r--,1);n.length||o.fx.stop(),_t=void 0},o.fx.timer=function(e){o.timers.push(e),o.fx.start()},o.fx.interval=13,o.fx.start=function(){Jt||(Jt=!0,ur())},o.fx.stop=function(){Jt=null},o.fx.speeds={slow:600,fast:200,_default:400},o.fn.delay=function(e,r){return e=o.fx&&o.fx.speeds[e]||e,r=r||"fx",this.queue(r,function(n,s){var c=l.setTimeout(n,e);s.stop=function(){l.clearTimeout(c)}})},function(){var e=K.createElement("input"),r=K.createElement("select"),n=r.appendChild(K.createElement("option"));e.type="checkbox",U.checkOn=e.value!=="",U.optSelected=n.selected,e=K.createElement("input"),e.value="t",e.type="radio",U.radioValue=e.value==="t"}();var P,T=o.expr.attrHandle;o.fn.extend({attr:function(e,r){return St(this,o.attr,e,r,arguments.length>1)},removeAttr:function(e){return this.each(function(){o.removeAttr(this,e)})}}),o.extend({attr:function(e,r,n){var s,c,f=e.nodeType;if(!(f===3||f===8||f===2)){if(typeof e.getAttribute=="undefined")return o.prop(e,r,n);if((f!==1||!o.isXMLDoc(e))&&(c=o.attrHooks[r.toLowerCase()]||(o.expr.match.bool.test(r)?P:void 0)),n!==void 0){if(n===null){o.removeAttr(e,r);return}return c&&"set"in c&&(s=c.set(e,n,r))!==void 0?s:(e.setAttribute(r,n+""),n)}return c&&"get"in c&&(s=c.get(e,r))!==null?s:(s=o.find.attr(e,r),s==null?void 0:s)}},attrHooks:{type:{set:function(e,r){if(!U.radioValue&&r==="radio"&&Ie(e,"input")){var n=e.value;return e.setAttribute("type",r),n&&(e.value=n),r}}}},removeAttr:function(e,r){var n,s=0,c=r&&r.match(vt);if(c&&e.nodeType===1)for(;n=c[s++];)e.removeAttribute(n)}}),P={set:function(e,r,n){return r===!1?o.removeAttr(e,n):e.setAttribute(n,n),n}},o.each(o.expr.match.bool.source.match(/\w+/g),function(e,r){var n=T[r]||o.find.attr;T[r]=function(s,c,f){var h,w,E=c.toLowerCase();return f||(w=T[E],T[E]=h,h=n(s,c,f)!=null?E:null,T[E]=w),h}});var N=/^(?:input|select|textarea|button)$/i,z=/^(?:a|area)$/i;o.fn.extend({prop:function(e,r){return St(this,o.prop,e,r,arguments.length>1)},removeProp:function(e){return this.each(function(){delete this[o.propFix[e]||e]})}}),o.extend({prop:function(e,r,n){var s,c,f=e.nodeType;if(!(f===3||f===8||f===2))return(f!==1||!o.isXMLDoc(e))&&(r=o.propFix[r]||r,c=o.propHooks[r]),n!==void 0?c&&"set"in c&&(s=c.set(e,n,r))!==void 0?s:e[r]=n:c&&"get"in c&&(s=c.get(e,r))!==null?s:e[r]},propHooks:{tabIndex:{get:function(e){var r=o.find.attr(e,"tabindex");return r?parseInt(r,10):N.test(e.nodeName)||z.test(e.nodeName)&&e.href?0:-1}}},propFix:{for:"htmlFor",class:"className"}}),U.optSelected||(o.propHooks.selected={get:function(e){var r=e.parentNode;return r&&r.parentNode&&r.parentNode.selectedIndex,null},set:function(e){var r=e.parentNode;r&&(r.selectedIndex,r.parentNode&&r.parentNode.selectedIndex)}}),o.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){o.propFix[this.toLowerCase()]=this});function V(e){var r=e.match(vt)||[];return r.join(" ")}function q(e){return e.getAttribute&&e.getAttribute("class")||""}function X(e){return Array.isArray(e)?e:typeof e=="string"?e.match(vt)||[]:[]}o.fn.extend({addClass:function(e){var r,n,s,c,f,h,w,E=0;if(G(e))return this.each(function(k){o(this).addClass(e.call(this,k,q(this)))});if(r=X(e),r.length){for(;n=this[E++];)if(c=q(n),s=n.nodeType===1&&" "+V(c)+" ",s){for(h=0;f=r[h++];)s.indexOf(" "+f+" ")<0&&(s+=f+" ");w=V(s),c!==w&&n.setAttribute("class",w)}}return this},removeClass:function(e){var r,n,s,c,f,h,w,E=0;if(G(e))return this.each(function(k){o(this).removeClass(e.call(this,k,q(this)))});if(!arguments.length)return this.attr("class","");if(r=X(e),r.length){for(;n=this[E++];)if(c=q(n),s=n.nodeType===1&&" "+V(c)+" ",s){for(h=0;f=r[h++];)for(;s.indexOf(" "+f+" ")>-1;)s=s.replace(" "+f+" "," ");w=V(s),c!==w&&n.setAttribute("class",w)}}return this},toggleClass:function(e,r){var n=typeof e,s=n==="string"||Array.isArray(e);return typeof r=="boolean"&&s?r?this.addClass(e):this.removeClass(e):G(e)?this.each(function(c){o(this).toggleClass(e.call(this,c,q(this),r),r)}):this.each(function(){var c,f,h,w;if(s)for(f=0,h=o(this),w=X(e);c=w[f++];)h.hasClass(c)?h.removeClass(c):h.addClass(c);else(e===void 0||n==="boolean")&&(c=q(this),c&&le.set(this,"__className__",c),this.setAttribute&&this.setAttribute("class",c||e===!1?"":le.get(this,"__className__")||""))})},hasClass:function(e){var r,n,s=0;for(r=" "+e+" ";n=this[s++];)if(n.nodeType===1&&(" "+V(q(n))+" ").indexOf(r)>-1)return!0;return!1}});var te=/\r/g;o.fn.extend({val:function(e){var r,n,s,c=this[0];return arguments.length?(s=G(e),this.each(function(f){var h;this.nodeType===1&&(s?h=e.call(this,f,o(this).val()):h=e,h==null?h="":typeof h=="number"?h+="":Array.isArray(h)&&(h=o.map(h,function(w){return w==null?"":w+""})),r=o.valHooks[this.type]||o.valHooks[this.nodeName.toLowerCase()],(!r||!("set"in r)||r.set(this,h,"value")===void 0)&&(this.value=h))})):c?(r=o.valHooks[c.type]||o.valHooks[c.nodeName.toLowerCase()],r&&"get"in r&&(n=r.get(c,"value"))!==void 0?n:(n=c.value,typeof n=="string"?n.replace(te,""):n==null?"":n)):void 0}}),o.extend({valHooks:{option:{get:function(e){var r=o.find.attr(e,"value");return r!=null?r:V(o.text(e))}},select:{get:function(e){var r,n,s,c=e.options,f=e.selectedIndex,h=e.type==="select-one",w=h?null:[],E=h?f+1:c.length;for(f<0?s=E:s=h?f:0;s<E;s++)if(n=c[s],(n.selected||s===f)&&!n.disabled&&(!n.parentNode.disabled||!Ie(n.parentNode,"optgroup"))){if(r=o(n).val(),h)return r;w.push(r)}return w},set:function(e,r){for(var n,s,c=e.options,f=o.makeArray(r),h=c.length;h--;)s=c[h],(s.selected=o.inArray(o.valHooks.option.get(s),f)>-1)&&(n=!0);return n||(e.selectedIndex=-1),f}}}}),o.each(["radio","checkbox"],function(){o.valHooks[this]={set:function(e,r){if(Array.isArray(r))return e.checked=o.inArray(o(e).val(),r)>-1}},U.checkOn||(o.valHooks[this].get=function(e){return e.getAttribute("value")===null?"on":e.value})}),U.focusin="onfocusin"in l;var xe=/^(?:focusinfocus|focusoutblur)$/,Ce=function(e){e.stopPropagation()};o.extend(o.event,{trigger:function(e,r,n,s){var c,f,h,w,E,k,R,B,F=[n||K],I=W.call(e,"type")?e.type:e,re=W.call(e,"namespace")?e.namespace.split("."):[];if(f=B=h=n=n||K,!(n.nodeType===3||n.nodeType===8)&&!xe.test(I+o.event.triggered)&&(I.indexOf(".")>-1&&(re=I.split("."),I=re.shift(),re.sort()),E=I.indexOf(":")<0&&"on"+I,e=e[o.expando]?e:new o.Event(I,typeof e=="object"&&e),e.isTrigger=s?2:3,e.namespace=re.join("."),e.rnamespace=e.namespace?new RegExp("(^|\\.)"+re.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,e.result=void 0,e.target||(e.target=n),r=r==null?[e]:o.makeArray(r,[e]),R=o.event.special[I]||{},!(!s&&R.trigger&&R.trigger.apply(n,r)===!1))){if(!s&&!R.noBubble&&!de(n)){for(w=R.delegateType||I,xe.test(w+I)||(f=f.parentNode);f;f=f.parentNode)F.push(f),h=f;h===(n.ownerDocument||K)&&F.push(h.defaultView||h.parentWindow||l)}for(c=0;(f=F[c++])&&!e.isPropagationStopped();)B=f,e.type=c>1?w:R.bindType||I,k=(le.get(f,"events")||Object.create(null))[e.type]&&le.get(f,"handle"),k&&k.apply(f,r),k=E&&f[E],k&&k.apply&&ar(f)&&(e.result=k.apply(f,r),e.result===!1&&e.preventDefault());return e.type=I,!s&&!e.isDefaultPrevented()&&(!R._default||R._default.apply(F.pop(),r)===!1)&&ar(n)&&E&&G(n[I])&&!de(n)&&(h=n[E],h&&(n[E]=null),o.event.triggered=I,e.isPropagationStopped()&&B.addEventListener(I,Ce),n[I](),e.isPropagationStopped()&&B.removeEventListener(I,Ce),o.event.triggered=void 0,h&&(n[E]=h)),e.result}},simulate:function(e,r,n){var s=o.extend(new o.Event,n,{type:e,isSimulated:!0});o.event.trigger(s,null,r)}}),o.fn.extend({trigger:function(e,r){return this.each(function(){o.event.trigger(e,r,this)})},triggerHandler:function(e,r){var n=this[0];if(n)return o.event.trigger(e,r,n,!0)}}),U.focusin||o.each({focus:"focusin",blur:"focusout"},function(e,r){var n=function(s){o.event.simulate(r,s.target,o.event.fix(s))};o.event.special[r]={setup:function(){var s=this.ownerDocument||this.document||this,c=le.access(s,r);c||s.addEventListener(e,n,!0),le.access(s,r,(c||0)+1)},teardown:function(){var s=this.ownerDocument||this.document||this,c=le.access(s,r)-1;c?le.access(s,r,c):(s.removeEventListener(e,n,!0),le.remove(s,r))}}});var Ee=l.location,We={guid:Date.now()},Me=/\?/;o.parseXML=function(e){var r,n;if(!e||typeof e!="string")return null;try{r=new l.DOMParser().parseFromString(e,"text/xml")}catch(s){}return n=r&&r.getElementsByTagName("parsererror")[0],(!r||n)&&o.error("Invalid XML: "+(n?o.map(n.childNodes,function(s){return s.textContent}).join(`
`):e)),r};var at=/\[\]$/,Kt=/\r?\n/g,Qr=/^(?:submit|button|image|reset|file)$/i,Un=/^(?:input|select|textarea|keygen)/i;function cr(e,r,n,s){var c;if(Array.isArray(r))o.each(r,function(f,h){n||at.test(e)?s(e,h):cr(e+"["+(typeof h=="object"&&h!=null?f:"")+"]",h,n,s)});else if(!n&&be(r)==="object")for(c in r)cr(e+"["+c+"]",r[c],n,s);else s(e,r)}o.param=function(e,r){var n,s=[],c=function(f,h){var w=G(h)?h():h;s[s.length]=encodeURIComponent(f)+"="+encodeURIComponent(w==null?"":w)};if(e==null)return"";if(Array.isArray(e)||e.jquery&&!o.isPlainObject(e))o.each(e,function(){c(this.name,this.value)});else for(n in e)cr(n,e[n],r,c);return s.join("&")},o.fn.extend({serialize:function(){return o.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var e=o.prop(this,"elements");return e?o.makeArray(e):this}).filter(function(){var e=this.type;return this.name&&!o(this).is(":disabled")&&Un.test(this.nodeName)&&!Qr.test(e)&&(this.checked||!Yt.test(e))}).map(function(e,r){var n=o(this).val();return n==null?null:Array.isArray(n)?o.map(n,function(s){return{name:r.name,value:s.replace(Kt,`\r
`)}}):{name:r.name,value:n.replace(Kt,`\r
`)}}).get()}});var is=/%20/g,zn=/#.*$/,Vn=/([?&])_=[^&]*/,ji=/^(.*?):[ \t]*([^\r\n]*)$/mg,Co=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,ko=/^(?:GET|HEAD)$/,Po=/^\/\//,ns={},qn={},as="*/".concat("*"),Gn=K.createElement("a");Gn.href=Ee.href;function ss(e){return function(r,n){typeof r!="string"&&(n=r,r="*");var s,c=0,f=r.toLowerCase().match(vt)||[];if(G(n))for(;s=f[c++];)s[0]==="+"?(s=s.slice(1)||"*",(e[s]=e[s]||[]).unshift(n)):(e[s]=e[s]||[]).push(n)}}function os(e,r,n,s){var c={},f=e===qn;function h(w){var E;return c[w]=!0,o.each(e[w]||[],function(k,R){var B=R(r,n,s);if(typeof B=="string"&&!f&&!c[B])return r.dataTypes.unshift(B),h(B),!1;if(f)return!(E=B)}),E}return h(r.dataTypes[0])||!c["*"]&&h("*")}function Yn(e,r){var n,s,c=o.ajaxSettings.flatOptions||{};for(n in r)r[n]!==void 0&&((c[n]?e:s||(s={}))[n]=r[n]);return s&&o.extend(!0,e,s),e}function Ao(e,r,n){for(var s,c,f,h,w=e.contents,E=e.dataTypes;E[0]==="*";)E.shift(),s===void 0&&(s=e.mimeType||r.getResponseHeader("Content-Type"));if(s){for(c in w)if(w[c]&&w[c].test(s)){E.unshift(c);break}}if(E[0]in n)f=E[0];else{for(c in n){if(!E[0]||e.converters[c+" "+E[0]]){f=c;break}h||(h=c)}f=f||h}if(f)return f!==E[0]&&E.unshift(f),n[f]}function Do(e,r,n,s){var c,f,h,w,E,k={},R=e.dataTypes.slice();if(R[1])for(h in e.converters)k[h.toLowerCase()]=e.converters[h];for(f=R.shift();f;)if(e.responseFields[f]&&(n[e.responseFields[f]]=r),!E&&s&&e.dataFilter&&(r=e.dataFilter(r,e.dataType)),E=f,f=R.shift(),f){if(f==="*")f=E;else if(E!=="*"&&E!==f){if(h=k[E+" "+f]||k["* "+f],!h){for(c in k)if(w=c.split(" "),w[1]===f&&(h=k[E+" "+w[0]]||k["* "+w[0]],h)){h===!0?h=k[c]:k[c]!==!0&&(f=w[0],R.unshift(w[1]));break}}if(h!==!0)if(h&&e.throws)r=h(r);else try{r=h(r)}catch(B){return{state:"parsererror",error:h?B:"No conversion from "+E+" to "+f}}}}return{state:"success",data:r}}o.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:Ee.href,type:"GET",isLocal:Co.test(Ee.protocol),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":as,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/\bxml\b/,html:/\bhtml/,json:/\bjson\b/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":JSON.parse,"text xml":o.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(e,r){return r?Yn(Yn(e,o.ajaxSettings),r):Yn(o.ajaxSettings,e)},ajaxPrefilter:ss(ns),ajaxTransport:ss(qn),ajax:function(e,r){typeof e=="object"&&(r=e,e=void 0),r=r||{};var n,s,c,f,h,w,E,k,R,B,F=o.ajaxSetup({},r),I=F.context||F,re=F.context&&(I.nodeType||I.jquery)?o(I):o.event,ve=o.Deferred(),ie=o.Callbacks("once memory"),Ve=F.statusCode||{},Ue={},ut={},De="canceled",me={readyState:0,getResponseHeader:function(ke){var je;if(E){if(!f)for(f={};je=ji.exec(c);)f[je[1].toLowerCase()+" "]=(f[je[1].toLowerCase()+" "]||[]).concat(je[2]);je=f[ke.toLowerCase()+" "]}return je==null?null:je.join(", ")},getAllResponseHeaders:function(){return E?c:null},setRequestHeader:function(ke,je){return E==null&&(ke=ut[ke.toLowerCase()]=ut[ke.toLowerCase()]||ke,Ue[ke]=je),this},overrideMimeType:function(ke){return E==null&&(F.mimeType=ke),this},statusCode:function(ke){var je;if(ke)if(E)me.always(ke[me.status]);else for(je in ke)Ve[je]=[Ve[je],ke[je]];return this},abort:function(ke){var je=ke||De;return n&&n.abort(je),st(0,je),this}};if(ve.promise(me),F.url=((e||F.url||Ee.href)+"").replace(Po,Ee.protocol+"//"),F.type=r.method||r.type||F.method||F.type,F.dataTypes=(F.dataType||"*").toLowerCase().match(vt)||[""],F.crossDomain==null){w=K.createElement("a");try{w.href=F.url,w.href=w.href,F.crossDomain=Gn.protocol+"//"+Gn.host!=w.protocol+"//"+w.host}catch(ke){F.crossDomain=!0}}if(F.data&&F.processData&&typeof F.data!="string"&&(F.data=o.param(F.data,F.traditional)),os(ns,F,r,me),E)return me;k=o.event&&F.global,k&&o.active++==0&&o.event.trigger("ajaxStart"),F.type=F.type.toUpperCase(),F.hasContent=!ko.test(F.type),s=F.url.replace(zn,""),F.hasContent?F.data&&F.processData&&(F.contentType||"").indexOf("application/x-www-form-urlencoded")===0&&(F.data=F.data.replace(is,"+")):(B=F.url.slice(s.length),F.data&&(F.processData||typeof F.data=="string")&&(s+=(Me.test(s)?"&":"?")+F.data,delete F.data),F.cache===!1&&(s=s.replace(Vn,"$1"),B=(Me.test(s)?"&":"?")+"_="+We.guid+++B),F.url=s+B),F.ifModified&&(o.lastModified[s]&&me.setRequestHeader("If-Modified-Since",o.lastModified[s]),o.etag[s]&&me.setRequestHeader("If-None-Match",o.etag[s])),(F.data&&F.hasContent&&F.contentType!==!1||r.contentType)&&me.setRequestHeader("Content-Type",F.contentType),me.setRequestHeader("Accept",F.dataTypes[0]&&F.accepts[F.dataTypes[0]]?F.accepts[F.dataTypes[0]]+(F.dataTypes[0]!=="*"?", "+as+"; q=0.01":""):F.accepts["*"]);for(R in F.headers)me.setRequestHeader(R,F.headers[R]);if(F.beforeSend&&(F.beforeSend.call(I,me,F)===!1||E))return me.abort();if(De="abort",ie.add(F.complete),me.done(F.success),me.fail(F.error),n=os(qn,F,r,me),!n)st(-1,"No Transport");else{if(me.readyState=1,k&&re.trigger("ajaxSend",[me,F]),E)return me;F.async&&F.timeout>0&&(h=l.setTimeout(function(){me.abort("timeout")},F.timeout));try{E=!1,n.send(Ue,st)}catch(ke){if(E)throw ke;st(-1,ke)}}function st(ke,je,Kr,Bi){var ct,fr,dr,ot,Zt,xt=je;E||(E=!0,h&&l.clearTimeout(h),n=void 0,c=Bi||"",me.readyState=ke>0?4:0,ct=ke>=200&&ke<300||ke===304,Kr&&(ot=Ao(F,me,Kr)),!ct&&o.inArray("script",F.dataTypes)>-1&&o.inArray("json",F.dataTypes)<0&&(F.converters["text script"]=function(){}),ot=Do(F,ot,me,ct),ct?(F.ifModified&&(Zt=me.getResponseHeader("Last-Modified"),Zt&&(o.lastModified[s]=Zt),Zt=me.getResponseHeader("etag"),Zt&&(o.etag[s]=Zt)),ke===204||F.type==="HEAD"?xt="nocontent":ke===304?xt="notmodified":(xt=ot.state,fr=ot.data,dr=ot.error,ct=!dr)):(dr=xt,(ke||!xt)&&(xt="error",ke<0&&(ke=0))),me.status=ke,me.statusText=(je||xt)+"",ct?ve.resolveWith(I,[fr,xt,me]):ve.rejectWith(I,[me,xt,dr]),me.statusCode(Ve),Ve=void 0,k&&re.trigger(ct?"ajaxSuccess":"ajaxError",[me,F,ct?fr:dr]),ie.fireWith(I,[me,xt]),k&&(re.trigger("ajaxComplete",[me,F]),--o.active||o.event.trigger("ajaxStop")))}return me},getJSON:function(e,r,n){return o.get(e,r,n,"json")},getScript:function(e,r){return o.get(e,void 0,r,"script")}}),o.each(["get","post"],function(e,r){o[r]=function(n,s,c,f){return G(s)&&(f=f||c,c=s,s=void 0),o.ajax(o.extend({url:n,type:r,dataType:f,data:s,success:c},o.isPlainObject(n)&&n))}}),o.ajaxPrefilter(function(e){var r;for(r in e.headers)r.toLowerCase()==="content-type"&&(e.contentType=e.headers[r]||"")}),o._evalUrl=function(e,r,n){return o.ajax({url:e,type:"GET",dataType:"script",cache:!0,async:!1,global:!1,converters:{"text script":function(){}},dataFilter:function(s){o.globalEval(s,r,n)}})},o.fn.extend({wrapAll:function(e){var r;return this[0]&&(G(e)&&(e=e.call(this[0])),r=o(e,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&r.insertBefore(this[0]),r.map(function(){for(var n=this;n.firstElementChild;)n=n.firstElementChild;return n}).append(this)),this},wrapInner:function(e){return G(e)?this.each(function(r){o(this).wrapInner(e.call(this,r))}):this.each(function(){var r=o(this),n=r.contents();n.length?n.wrapAll(e):r.append(e)})},wrap:function(e){var r=G(e);return this.each(function(n){o(this).wrapAll(r?e.call(this,n):e)})},unwrap:function(e){return this.parent(e).not("body").each(function(){o(this).replaceWith(this.childNodes)}),this}}),o.expr.pseudos.hidden=function(e){return!o.expr.pseudos.visible(e)},o.expr.pseudos.visible=function(e){return!!(e.offsetWidth||e.offsetHeight||e.getClientRects().length)},o.ajaxSettings.xhr=function(){try{return new l.XMLHttpRequest}catch(e){}};var Fo={0:200,1223:204},Jr=o.ajaxSettings.xhr();U.cors=!!Jr&&"withCredentials"in Jr,U.ajax=Jr=!!Jr,o.ajaxTransport(function(e){var r,n;if(U.cors||Jr&&!e.crossDomain)return{send:function(s,c){var f,h=e.xhr();if(h.open(e.type,e.url,e.async,e.username,e.password),e.xhrFields)for(f in e.xhrFields)h[f]=e.xhrFields[f];e.mimeType&&h.overrideMimeType&&h.overrideMimeType(e.mimeType),!e.crossDomain&&!s["X-Requested-With"]&&(s["X-Requested-With"]="XMLHttpRequest");for(f in s)h.setRequestHeader(f,s[f]);r=function(w){return function(){r&&(r=n=h.onload=h.onerror=h.onabort=h.ontimeout=h.onreadystatechange=null,w==="abort"?h.abort():w==="error"?typeof h.status!="number"?c(0,"error"):c(h.status,h.statusText):c(Fo[h.status]||h.status,h.statusText,(h.responseType||"text")!=="text"||typeof h.responseText!="string"?{binary:h.response}:{text:h.responseText},h.getAllResponseHeaders()))}},h.onload=r(),n=h.onerror=h.ontimeout=r("error"),h.onabort!==void 0?h.onabort=n:h.onreadystatechange=function(){h.readyState===4&&l.setTimeout(function(){r&&n()})},r=r("abort");try{h.send(e.hasContent&&e.data||null)}catch(w){if(r)throw w}},abort:function(){r&&r()}}}),o.ajaxPrefilter(function(e){e.crossDomain&&(e.contents.script=!1)}),o.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/\b(?:java|ecma)script\b/},converters:{"text script":function(e){return o.globalEval(e),e}}}),o.ajaxPrefilter("script",function(e){e.cache===void 0&&(e.cache=!1),e.crossDomain&&(e.type="GET")}),o.ajaxTransport("script",function(e){if(e.crossDomain||e.scriptAttrs){var r,n;return{send:function(s,c){r=o("<script>").attr(e.scriptAttrs||{}).prop({charset:e.scriptCharset,src:e.url}).on("load error",n=function(f){r.remove(),n=null,f&&c(f.type==="error"?404:200,f.type)}),K.head.appendChild(r[0])},abort:function(){n&&n()}}}});var ls=[],Xn=/(=)\?(?=&|$)|\?\?/;o.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=ls.pop()||o.expando+"_"+We.guid++;return this[e]=!0,e}}),o.ajaxPrefilter("json jsonp",function(e,r,n){var s,c,f,h=e.jsonp!==!1&&(Xn.test(e.url)?"url":typeof e.data=="string"&&(e.contentType||"").indexOf("application/x-www-form-urlencoded")===0&&Xn.test(e.data)&&"data");if(h||e.dataTypes[0]==="jsonp")return s=e.jsonpCallback=G(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,h?e[h]=e[h].replace(Xn,"$1"+s):e.jsonp!==!1&&(e.url+=(Me.test(e.url)?"&":"?")+e.jsonp+"="+s),e.converters["script json"]=function(){return f||o.error(s+" was not called"),f[0]},e.dataTypes[0]="json",c=l[s],l[s]=function(){f=arguments},n.always(function(){c===void 0?o(l).removeProp(s):l[s]=c,e[s]&&(e.jsonpCallback=r.jsonpCallback,ls.push(s)),f&&G(c)&&c(f[0]),f=c=void 0}),"script"}),U.createHTMLDocument=function(){var e=K.implementation.createHTMLDocument("").body;return e.innerHTML="<form></form><form></form>",e.childNodes.length===2}(),o.parseHTML=function(e,r,n){if(typeof e!="string")return[];typeof r=="boolean"&&(n=r,r=!1);var s,c,f;return r||(U.createHTMLDocument?(r=K.implementation.createHTMLDocument(""),s=r.createElement("base"),s.href=K.location.href,r.head.appendChild(s)):r=K),c=tt.exec(e),f=!n&&[],c?[r.createElement(c[1])]:(c=Vr([e],r,f),f&&f.length&&o(f).remove(),o.merge([],c.childNodes))},o.fn.load=function(e,r,n){var s,c,f,h=this,w=e.indexOf(" ");return w>-1&&(s=V(e.slice(w)),e=e.slice(0,w)),G(r)?(n=r,r=void 0):r&&typeof r=="object"&&(c="POST"),h.length>0&&o.ajax({url:e,type:c||"GET",dataType:"html",data:r}).done(function(E){f=arguments,h.html(s?o("<div>").append(o.parseHTML(E)).find(s):E)}).always(n&&function(E,k){h.each(function(){n.apply(this,f||[E.responseText,k,E])})}),this},o.expr.pseudos.animated=function(e){return o.grep(o.timers,function(r){return e===r.elem}).length},o.offset={setOffset:function(e,r,n){var s,c,f,h,w,E,k,R=o.css(e,"position"),B=o(e),F={};R==="static"&&(e.style.position="relative"),w=B.offset(),f=o.css(e,"top"),E=o.css(e,"left"),k=(R==="absolute"||R==="fixed")&&(f+E).indexOf("auto")>-1,k?(s=B.position(),h=s.top,c=s.left):(h=parseFloat(f)||0,c=parseFloat(E)||0),G(r)&&(r=r.call(e,n,o.extend({},w))),r.top!=null&&(F.top=r.top-w.top+h),r.left!=null&&(F.left=r.left-w.left+c),"using"in r?r.using.call(e,F):B.css(F)}},o.fn.extend({offset:function(e){if(arguments.length)return e===void 0?this:this.each(function(c){o.offset.setOffset(this,e,c)});var r,n,s=this[0];if(!!s)return s.getClientRects().length?(r=s.getBoundingClientRect(),n=s.ownerDocument.defaultView,{top:r.top+n.pageYOffset,left:r.left+n.pageXOffset}):{top:0,left:0}},position:function(){if(!!this[0]){var e,r,n,s=this[0],c={top:0,left:0};if(o.css(s,"position")==="fixed")r=s.getBoundingClientRect();else{for(r=this.offset(),n=s.ownerDocument,e=s.offsetParent||n.documentElement;e&&(e===n.body||e===n.documentElement)&&o.css(e,"position")==="static";)e=e.parentNode;e&&e!==s&&e.nodeType===1&&(c=o(e).offset(),c.top+=o.css(e,"borderTopWidth",!0),c.left+=o.css(e,"borderLeftWidth",!0))}return{top:r.top-c.top-o.css(s,"marginTop",!0),left:r.left-c.left-o.css(s,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){for(var e=this.offsetParent;e&&o.css(e,"position")==="static";)e=e.offsetParent;return e||At})}}),o.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(e,r){var n=r==="pageYOffset";o.fn[e]=function(s){return St(this,function(c,f,h){var w;if(de(c)?w=c:c.nodeType===9&&(w=c.defaultView),h===void 0)return w?w[r]:c[f];w?w.scrollTo(n?w.pageXOffset:h,n?h:w.pageYOffset):c[f]=h},e,s,arguments.length)}}),o.each(["top","left"],function(e,r){o.cssHooks[r]=Ii(U.pixelPosition,function(n,s){if(s)return s=lr(n,r),Gr.test(s)?o(n).position()[r]+"px":s})}),o.each({Height:"height",Width:"width"},function(e,r){o.each({padding:"inner"+e,content:r,"":"outer"+e},function(n,s){o.fn[s]=function(c,f){var h=arguments.length&&(n||typeof c!="boolean"),w=n||(c===!0||f===!0?"margin":"border");return St(this,function(E,k,R){var B;return de(E)?s.indexOf("outer")===0?E["inner"+e]:E.document.documentElement["client"+e]:E.nodeType===9?(B=E.documentElement,Math.max(E.body["scroll"+e],B["scroll"+e],E.body["offset"+e],B["offset"+e],B["client"+e])):R===void 0?o.css(E,k,w):o.style(E,k,R,w)},r,h?c:void 0,h)}})}),o.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,r){o.fn[r]=function(n){return this.on(r,n)}}),o.fn.extend({bind:function(e,r,n){return this.on(e,null,r,n)},unbind:function(e,r){return this.off(e,null,r)},delegate:function(e,r,n,s){return this.on(r,e,n,s)},undelegate:function(e,r,n){return arguments.length===1?this.off(e,"**"):this.off(r,e||"**",n)},hover:function(e,r){return this.mouseenter(e).mouseleave(r||e)}}),o.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,r){o.fn[r]=function(n,s){return arguments.length>0?this.on(r,null,n,s):this.trigger(r)}});var Lo=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g;o.proxy=function(e,r){var n,s,c;if(typeof r=="string"&&(n=e[r],r=e,e=n),!!G(e))return s=u.call(arguments,2),c=function(){return e.apply(r||this,s.concat(u.call(arguments)))},c.guid=e.guid=e.guid||o.guid++,c},o.holdReady=function(e){e?o.readyWait++:o.ready(!0)},o.isArray=Array.isArray,o.parseJSON=JSON.parse,o.nodeName=Ie,o.isFunction=G,o.isWindow=de,o.camelCase=bt,o.type=be,o.now=Date.now,o.isNumeric=function(e){var r=o.type(e);return(r==="number"||r==="string")&&!isNaN(e-parseFloat(e))},o.trim=function(e){return e==null?"":(e+"").replace(Lo,"")},typeof define=="function"&&define.amd&&define("jquery",[],function(){return o});var Ro=l.jQuery,Io=l.$;return o.noConflict=function(e){return l.$===o&&(l.$=Io),e&&l.jQuery===o&&(l.jQuery=Ro),o},typeof t=="undefined"&&(l.jQuery=l.$=o),o})});var Ua=na(da());var tn=class{constructor(t,i){t=t||[],this.lines=t,this.text=i,this.offset2loc=new Map,this.line2offset=new Map;for(var a of t)a.offset>=0&&(this.offset2loc[a.offset]||(this.offset2loc[a.offset]=a),this.line2offset[a.line]||(this.line2offset[a.line]=a.offset))}findLineForOffset(t,i){if(this.offset2loc)for(var a=0;a<=i;a++){var u=this.offset2loc[t];if(u)return u;t--}return null}lineCount(){return this.lines.length}};function Ls(l){return"errors"in l}function Rs(l){return"output"in l}var Is=na(da()),ha=class{constructor(t){this.preset_id=pt(t)}async getRemoteFile(t){return new Promise((i,a)=>Ki(t,i,mr(t)?"arraybuffer":"text"))}async getFileData(t){var i="presets/"+this.preset_id+"/"+t,a=await this.getRemoteFile(i);return a&&console.log("read",i,a.length,"bytes"),a}async setFileData(t,i){}};var ai=class{constructor(t,i){this.basefs=t,this.overlayfs=i}async getFileData(t){var i=await this.overlayfs.getFileData(t);return i==null?this.basefs.getFileData(t):i}async setFileData(t,i){return await this.overlayfs.setFileData(t,i),this.basefs.setFileData(t,i)}},pa=class{constructor(t){this.store=t}async getFileData(t){return this.store.getItem(t)}async setFileData(t,i){return this.store.setItem(t,i)}};var ma=class{constructor(t,i,a,u){this.filedata={};this.pendingWorkerMessages=0;this.tools_preloaded={};this.isCompiling=!1;this.filename2path={};this.worker=t,this.platform_id=i,this.platform=a,this.filesystem=u,t.onmessage=d=>{this.receiveWorkerMessage(d.data)}}receiveWorkerMessage(t){var i=this.pendingWorkerMessages>1;i?(this.sendBuild(),this.pendingWorkerMessages=1):(this.callbackBuildStatus&&this.callbackBuildStatus(!1),this.isCompiling||(console.log(this.pendingWorkerMessages),console.trace()),this.isCompiling=!1,this.pendingWorkerMessages=0),t&&Rs(t)?this.processBuildResult(t):Ls(t)&&this.processBuildListings(t),this.callbackBuildResult(t)}preloadWorker(t){var i=this.platform.getToolForFilename(t);i&&!this.tools_preloaded[i]&&(this.worker.postMessage({preload:i,platform:this.platform_id}),this.tools_preloaded[i]=!0)}pushAllFiles(t,i){t.push(i);var a=aa(this.mainPath);a.length>0&&a!="local"&&t.push(a+"/"+i)}parseIncludeDependencies(t){let i=[],a;if(this.platform_id.startsWith("script")){let u=/\b\w+[.]read\(["'](.+?)["']/gmi;for(;a=u.exec(t);)a[1]&&a[1].indexOf(":/")<0&&this.pushAllFiles(i,a[1])}else if(this.platform_id.startsWith("verilog")){let u=/^\s*(`include|[.]include)\s+"(.+?)"/gmi;for(;a=u.exec(t);)this.pushAllFiles(i,a[2]);let d=/^\s*\$(include|\$dofile|\$write_image_in_table)\('(.+?)'/gmi;for(;a=d.exec(t);)this.pushAllFiles(i,a[2]);let m=/^\s*([.]arch)\s+(\w+)/gmi;for(;a=m.exec(t);)this.pushAllFiles(i,a[2]+".json");let y=/\$readmem[bh]\("(.+?)"/gmi;for(;a=y.exec(t);)this.pushAllFiles(i,a[1])}else{let u=/^\s*[.#%]?(include|incbin)\s+"(.+?)"/gmi;for(;a=u.exec(t);)this.pushAllFiles(i,a[2]);let d=/^\s*([;']|[/][/])#resource\s+"(.+?)"/gm;for(;a=d.exec(t);)this.pushAllFiles(i,a[2]);let m=/^\s+(USE|ASM)\s+(\S+[.]\S+)/gm;for(;a=m.exec(t);)this.pushAllFiles(i,a[2]);let y=/^\s*(import|embed)\s*"(.+?)";/gmi;for(;a=y.exec(t);)a[1]=="import"?this.pushAllFiles(i,a[2]+".wiz"):this.pushAllFiles(i,a[2]);let b=/^\s*(import)\s*"(.+?)"/gmi;for(;a=b.exec(t);)this.pushAllFiles(i,a[2])}return i}parseLinkDependencies(t){let i=[],a;if(!this.platform_id.startsWith("verilog")){let u=/^\s*([;]|[/][/])#link\s+"(.+?)"/gm;for(;a=u.exec(t);)this.pushAllFiles(i,a[2])}return i}loadFileDependencies(t){let i=this.parseIncludeDependencies(t),a=this.parseLinkDependencies(t),u=i.concat(a);return this.loadFiles(u).then(d=>{if(d)for(let m of d)m.link=a.indexOf(m.path)>=0;return d})}okToSend(){return this.pendingWorkerMessages++==0&&this.mainPath!=null}updateFileInStore(t,i){this.filesystem.setFileData(t,i)}buildWorkerMessage(t){this.preloadWorker(this.mainPath);var i={updates:[],buildsteps:[]},a=this.stripLocalPath(this.mainPath),u=this.getFile(this.mainPath),d=[];i.updates.push({path:a,data:u}),this.filename2path[a]=this.mainPath;for(var m of t)m.link||(i.updates.push({path:m.filename,data:m.data}),d.push(m.filename)),this.filename2path[m.filename]=m.path;i.buildsteps.push({path:a,files:[a].concat(d),platform:this.platform_id,tool:this.platform.getToolForFilename(this.mainPath),mainfile:!0});for(var m of t)m.data&&m.link&&(this.preloadWorker(m.filename),i.updates.push({path:m.filename,data:m.data}),i.buildsteps.push({path:m.filename,files:[m.filename].concat(d),platform:this.platform_id,tool:this.platform.getToolForFilename(m.path)}));return this.dataItems&&(i.setitems=this.dataItems),i}async loadFiles(t){var i=[],a=(m,y)=>{i.push({path:m,filename:this.stripLocalPath(m),link:!0,data:y})};for(var u of t)if(u in this.filedata){var d=this.filedata[u];d&&a(u,d)}else{var d=await this.filesystem.getFileData(u);d?(this.filedata[u]=d,a(u,d)):this.filedata[u]=null}return i}getFile(t){return this.filedata[t]}iterateFiles(t){for(var i in this.filedata)t(i,this.getFile(i))}sendBuild(){if(!this.mainPath)throw Error("need to call setMainFile first");var t=this.getFile(this.mainPath);if(t instanceof Uint8Array){this.isCompiling=!0,this.receiveWorkerMessage({output:t,errors:[],listings:null,symbolmap:null,params:{}});return}var i=typeof t=="string"?t:"";return this.loadFileDependencies(i).then(a=>{a||(a=[]);var u=this.buildWorkerMessage(a);this.worker.postMessage(u),this.isCompiling=!0})}updateFile(t,i){this.filedata[t]!=i&&(this.updateFileInStore(t,i),this.filedata[t]=i,this.okToSend()&&(this.callbackBuildStatus&&this.callbackBuildStatus(!0),this.sendBuild()))}setMainFile(t){this.mainPath=t,this.callbackBuildStatus&&this.callbackBuildStatus(!0),this.sendBuild()}processBuildListings(t){if(t.listings){this.listings=t.listings;for(var i in this.listings){var a=this.listings[i];a.lines&&(a.sourcefile=new tn(a.lines,a.text)),a.asmlines&&(a.assemblyfile=new tn(a.asmlines,a.text))}}}processBuildResult(t){this.processBuildListings(t),this.processBuildSegments(t)}processBuildSegments(t){var i=this.platform.getMemoryMap&&this.platform.getMemoryMap().main||[];t.segments&&(i=i.concat(t.segments||[])),i.sort((a,u)=>a.start-u.start),this.segments=i}getListings(){return this.listings}getListingForFile(t){var i=ht(this.stripLocalPath(t)),a=this.getListings(),u=null;for(var d in a)if(d==t)return a[d];for(var d in a)if(u=d,ht(d)==i)return a[d]}stripLocalPath(t){if(this.mainPath){var i=aa(this.mainPath);i!=""&&t.startsWith(i)&&(t=t.substring(i.length+1))}return t}updateDataItems(t){this.dataItems=t,this.okToSend()&&this.sendBuild()}};function va(l){var t=Is.default.createInstance({name:"__"+l,version:2});return t}var ba=Ns(),ya=class{constructor(t,i){this.id2window={};this.id2createfn={};this.id2showfn={};this.id2div={};this.containerdiv=t,this.project=i,this.undofiles=[]}isWindow(t){return this.id2createfn[t]!=null}setCreateFunc(t,i){this.id2createfn[t]=i}setShowFunc(t,i){this.id2showfn[t]=i}create(t){var i=this.id2window[t];i||(console.log("creating window",t),i=this.id2window[t]=this.id2createfn[t](t));var a=this.id2div[t];return a||(a=this.id2div[t]=i.createDiv(this.containerdiv),ba(a).hide()),i}createOrShow(t,i){var a=this.create(t),u=this.id2div[t];return this.activewnd!=a?(this.activediv&&ba(this.activediv).hide(),this.activewnd&&this.activewnd.setVisible&&this.activewnd.setVisible(!1),this.activediv=u,this.activewnd=a,ba(u).show(),this.refresh(!0),this.refreshErrors(),a.setVisible&&a.setVisible(!0),this.id2showfn[t]&&this.id2showfn[t](t,a)):this.refresh(i),this.activeid=t,a}put(t,i){this.id2window[t]=i}refresh(t){this.activewnd&&this.activewnd.refresh&&this.activewnd.refresh(t)}tick(){this.activewnd&&this.activewnd.tick&&this.activewnd.tick()}setErrors(t){this.lasterrors=t,this.refreshErrors()}refreshErrors(){this.activewnd&&this.activewnd.markErrors&&(this.lasterrors&&this.lasterrors.length?this.activewnd.markErrors(this.lasterrors):this.activewnd.clearErrors())}getActive(){return this.activewnd}getActiveID(){return this.activeid}getCurrentText(){if(this.activewnd&&this.activewnd.getValue)return this.activewnd.getValue();bootbox.alert("Please switch to an editor window.")}resize(){this.activeid&&this.activewnd&&this.activewnd.recreateOnResize&&(this.activewnd=null,this.id2window[this.activeid]=null,this.id2div[this.activeid]=null,this.createOrShow(this.activeid))}updateFile(t,i){var a=this.id2window[t];a&&a.setText&&typeof i=="string"?(a.setText(i),this.undofiles.push(t)):this.project.updateFile(t,i)}undoStep(){var t=this.undofiles.pop(),i=this.id2window[t];i&&i.undoStep?i.undoStep():bootbox.alert("No more steps to undo.")}updateAllOpenWindows(t){for(var i in this.id2window){var a=this.id2window[i];a&&a.setText&&t.getItem(i).then(u=>{this.updateFile(i,u)})}}findWindowWithFilePrefix(t){t=wt(ht(t));for(var i in this.id2createfn)if(!(i.toLowerCase().endsWith(".h")||i.toLowerCase().endsWith(".inc")||i.toLowerCase().endsWith(".bas"))&&wt(ht(i))==t)return i;return null}};var Jo=`$NAME
=====
[Open this project in 8bitworkshop](http://8bitworkshop.com/redir.html?platform=$PLATFORM&githubURL=$GITHUBURL&file=$MAINFILE).
`;function si(){for(var l={},t=0;t<localStorage.length;t++){var i=localStorage.key(t);if(i.startsWith("__repo__")){var a=JSON.parse(localStorage.getItem(i)),u=i.substring("__repo__".length);l[u]=a}}return l}function nn(l){var t=l.split("/",8);return t.length<5||t[0]!="https:"||t[2]!="github.com"||t[5]&&t[5]!="tree"?null:{user:t[3],repo:t[4],repopath:t[3]+"/"+t[4],branch:t[6],subtreepath:t[7]}}var xa=class{constructor(t,i,a,u){this.githubCons=t,this.githubToken=i,this.store=a,this.project=u,this.recreateGithub()}recreateGithub(){this.github=new this.githubCons({token:this.githubToken})}login(){if(this.githubToken&&this.githubToken.length)return new Promise((i,a)=>{i()});var t=new firebase.auth.GithubAuthProvider;return t.addScope("repo"),firebase.auth().signInWithPopup(t).then(i=>{this.githubToken=i.credential.accessToken;var a=i.user;this.recreateGithub(),document.cookie="__github_key="+this.githubToken+";path=/;max-age=31536000",console.log("Stored GitHub OAUTH key")})}logout(){return this.githubToken&&this.githubToken.length?firebase.auth().signOut().then(()=>{document.cookie="__github_key=;path=/;max-age=0",this.githubToken=null,this.recreateGithub()}):new Promise((t,i)=>{t()})}isFileIgnored(t){return t=t.toUpperCase(),!!(t.startsWith("LICENSE")||t.startsWith("README")||t.startsWith("."))}async getGithubSession(t){var i=nn(t);if(!i)throw new Error("Please enter a valid GitHub URL.");var a=si()[i.repopath],u=i.branch||a&&a.branch,d=this.github.repos(i.user,i.repo);try{u=(await d.fetch()).defaultBranch||"master"}catch(y){console.log("could not fetch default branch: "+y),u="main"}console.log("branch =",u);var m={url:t,user:i.user,reponame:i.repo,repopath:i.repopath,branch:u,subtreepath:i.subtreepath,prefix:"",repo:d,platform_id:this.project?this.project.platform_id:a?a.platform_id:null};return m}getGithubHEADTree(t){var i;return this.getGithubSession(t).then(a=>(i=a,i.repo.git.refs.heads(i.branch).fetch())).then(a=>(i.head=a,i.sha=a.object.sha,i.repo.git.trees(i.sha).fetch())).then(a=>{if(i.subtreepath){for(let u of a.tree)if(u.type=="tree"&&u.path==i.subtreepath&&u.sha)return i.repo.git.trees(u.sha).fetch();throw Error("Cannot find subtree '"+i.subtreepath+"' in tree "+a.sha)}return a}).then(a=>(i.tree=a,i))}bind(t,i){var a="__repo__"+t.repopath;if(i){var u={url:t.url,branch:t.branch,platform_id:t.platform_id,mainPath:t.mainPath,sha:t.sha};console.log("storing",u),localStorage.setItem(a,JSON.stringify(u))}else localStorage.removeItem(a)}import(t){var i;return this.getGithubSession(t).then(a=>(i=a,i.repo.contents("README.md").read())).catch(a=>(console.log(a),console.log("no README.md found"),i.repo.fetch().then(u=>""))).then(a=>{var u;if(u=/8bitworkshop.com[^)]+file=([^)&]+)/.exec(a),u&&u[1]&&(console.log("main path: '"+u[1]+"'"),i.mainPath=u[1]),u=/8bitworkshop.com[^)]+platform=([A-Za-z0-9._\-]+)/.exec(a),u){if(console.log("platform id: '"+u[1]+"'"),i.platform_id&&!i.platform_id.startsWith(u[1]))throw Error("Platform mismatch: Repository is "+u[1]+", you have "+this.project.platform_id+" selected.");i.platform_id=u[1]}return this.bind(i,!0),i})}pull(t,i){var a;return this.getGithubHEADTree(t).then(u=>{a=u;let d=[];return a.paths=[],a.tree.tree.forEach(m=>{if(console.log(m.path,m.type,m.size),a.paths.push(m.path),m.type=="blob"&&!this.isFileIgnored(m.path)){var y=a.repo.git.blobs(m.sha).fetch().then(b=>{var L=a.prefix+m.path,W=m.size,ue=b.encoding,j=b.content;if(b.encoding=="base64"){var U=Yi(atob(j)),G=mr(m.path,U);j=G?U:Qi(U)}return b.size!=j.length&&(j=j.slice(0,b.size)),(i||this.store).setItem(L,j)});d.push(y)}else console.log("ignoring "+m.path)}),Promise.all(d)}).then(u=>a)}importAndPull(t){return this.import(t).then(i=>this.pull(t))}publish(t,i,a,u){var d,m=this.project.platform_id,y=this.project.stripLocalPath(this.project.mainPath);return this.github.user.repos.create({name:t,description:i,private:u,auto_init:!1,license_template:a}).then(b=>{d=b;var L=Jo;L=L.replace(/\$NAME/g,encodeURIComponent(t)),L=L.replace(/\$PLATFORM/g,encodeURIComponent(m)),L=L.replace(/\$GITHUBURL/g,encodeURIComponent(d.htmlUrl)),L=L.replace(/\$MAINFILE/g,encodeURIComponent(y));var W={message:"8bitworkshop: updated metadata in README.md",content:btoa(L)};return d.contents("README.md").add(W)}).then(()=>this.getGithubSession(d.htmlUrl))}commit(t,i,a){var u;return i||(i="updated from 8bitworkshop.com"),this.getGithubHEADTree(t).then(d=>{if(u=d,u.subtreepath)throw Error("Sorry, right now you can only commit files to the root directory of a repository.");return Promise.all(a.map(m=>typeof m.data=="string"?u.repo.git.blobs.create({content:m.data,encoding:"utf-8"}):u.repo.git.blobs.create({content:btoa(Xi(m.data)),encoding:"base64"})))}).then(d=>u.repo.git.trees.create({tree:a.map((m,y)=>({path:m.path,mode:"100644",type:"blob",sha:d[y].sha})),base_tree:u.tree.sha})).then(d=>u.repo.git.commits.create({message:i,tree:d.sha,parents:[u.head.object.sha]})).then(d=>u.repo.commits(d.sha).fetch()).then(d=>(u.commit=d,u))}push(t){return t.head.update({sha:t.commit.sha}).then(i=>t)}deleteRepository(t){return this.getGithubSession(t).then(i=>i.repo.remove())}};var oi=window.matchMedia&&window.matchMedia("only screen and (max-width: 760px)").matches;function Bt(l,t){var i=$(document.createElement("div"));return l&&i.appendTo(l),t&&i.addClass(t),i}function Os(l,t){var i=l.charCoords({line:t,ch:0},"local").top,a=l.getScrollerElement().offsetHeight/2;l.scrollTo(null,i-a-5)}function $s(l,t){var i=document.createElement("span");return i.setAttribute("class",t),i.appendChild(document.createTextNode(l)),i}var an=64,Ko=200,wa={default:{theme:"mbo"},"6502":{isAsm:!0},z80:{isAsm:!0},jsasm:{isAsm:!0},gas:{isAsm:!0},vasm:{isAsm:!0},inform6:{theme:"cobalt"},markdown:{lineWrap:!0},fastbasic:{noGutters:!0},basic:{noLineNumbers:!0,noGutters:!0},ecs:{theme:"mbo",isAsm:!0}},Ws={input:null},li=class{constructor(t,i){this.updateTimer=null;this.dirtylisting=!0;this.errormsgs=[];this.errorwidgets=[];this.errormarks=[];this.path=t,this.mode=i}createDiv(t){var i=document.createElement("div");i.setAttribute("class","editor"),t.appendChild(i);var a=pe.getFile(this.path),u=a&&this.mode=="verilog"&&/__asm\b([\s\S]+?)\b__endasm\b/.test(a);return this.newEditor(i,u),a&&(this.setText(a),this.editor.setSelection({line:0,ch:0},{line:0,ch:0},{scroll:!0})),this.setupEditor(),i}setVisible(t){t&&this.editor.focus()}newEditor(t,i){var a=wa[this.mode]||wa.default,u=i||a.isAsm,d=!!a.lineWrap,m=a.theme||wa.default.theme,y=!a.noLineNumbers&&!oi;ee.embed&&(y=!1,u=!1);var b=["CodeMirror-linenumbers","gutter-offset","gutter-info"];u&&(b=["CodeMirror-linenumbers","gutter-offset","gutter-bytes","gutter-clock","gutter-info"]),(a.noGutters||oi)&&(b=["gutter-info"]),this.editor=CodeMirror(t,{theme:m,lineNumbers:y,matchBrackets:!0,tabSize:8,indentAuto:!0,lineWrapping:d,gutters:b})}editorChanged(){clearTimeout(this.updateTimer),this.updateTimer=setTimeout(()=>{pe.updateFile(this.path,this.editor.getValue())},300),this.markHighlight&&(this.markHighlight.clear(),this.markHighlight=null)}setupEditor(){this.editor.on("changes",(t,i)=>{this.editorChanged()}),this.editor.on("cursorActivity",t=>{this.inspectUnderCursor()}),this.editor.on("gutterClick",(t,i)=>{this.toggleBreakpoint(i)}),this.editor.setOption("mode",this.mode),this.editor.on("beforeChange",(t,i)=>{Ws.input&&i.text&&(i.text=i.text.map(Ws.input))})}inspectUnderCursor(){var t=this.editor.getCursor(!0),i=this.editor.getCursor(!1);if(t.line==i.line&&t.ch<i.ch&&i.ch-t.ch<80){var a=this.editor.getSelection();this.inspect(a)}else this.inspect(null)}inspect(t){var i;if(D.inspect&&(i=D.inspect(t)),this.inspectWidget&&(this.inspectWidget.clear(),this.inspectWidget=null),i){var a=$s(i,"tooltipinfoline"),u=this.editor.getCursor().line;this.inspectWidget=this.editor.addLineWidget(u,a,{above:!1})}}setText(t){var i,a,u=this.editor.getValue();u!=t&&(this.editor.setValue(t),u==""&&this.editor.clearHistory())}insertText(t){var i=this.editor.getCursor();this.editor.replaceRange(t,i,i)}highlightLines(t,i){var a="hilite-span",u={className:a,inclusiveLeft:!0};this.markHighlight=this.editor.markText({line:t,ch:0},{line:i,ch:0},u),this.editor.scrollIntoView({from:{line:t,ch:0},to:{line:i,ch:0}})}replaceSelection(t,i,a){this.editor.setSelection(this.editor.posFromIndex(t),this.editor.posFromIndex(i)),this.editor.replaceSelection(a)}getValue(){return this.editor.getValue()}getPath(){return this.path}addError(t){if(!t.path||this.path.endsWith(t.path)){var i=this.editor.lineCount(),a=t.line-1;if((isNaN(a)||a<0||a>=i)&&(a=0),this.addErrorMarker(a,t.msg),t.start!=null){var u={className:"mark-error",inclusiveLeft:!0},d={line:a,ch:t.end?t.start:t.start-1},m={line:a,ch:t.end?t.end:t.start},y=this.editor.markText(d,m,u);this.errormarks.push(y)}}}addErrorMarker(t,i){var a=document.createElement("div");a.setAttribute("class","tooltipbox tooltiperror"),a.appendChild(document.createTextNode("\u24CD")),this.editor.setGutterMarker(t,"gutter-info",a),this.errormsgs.push({line:t,msg:i}),$(a).mouseover(u=>{this.expandErrors()})}addErrorLine(t,i){var a=$s(i,"tooltiperrorline");this.errorwidgets.push(this.editor.addLineWidget(t,a))}expandErrors(){for(var t;t=this.errormsgs.shift();)this.addErrorLine(t.line,t.msg)}markErrors(t){this.clearErrors(),t=t.slice(0,Ko);for(var i of t)this.addError(i)}clearErrors(){for(this.dirtylisting=!0,this.editor.clearGutter("gutter-info"),this.errormsgs=[];this.errorwidgets.length;)this.errorwidgets.shift().clear();for(;this.errormarks.length;)this.errormarks.shift().clear()}getSourceFile(){return this.sourcefile}updateListing(){this.clearErrors(),this.editor.clearGutter("gutter-bytes"),this.editor.clearGutter("gutter-offset"),this.editor.clearGutter("gutter-clock");var t=this.sourcefile.lines||[];for(var i of t)if(i.offset>=0&&this.setGutter("gutter-offset",i.line-1,Fe(i.offset&65535,4)),i.insns){var a=i.insns.length>9?"...":i.insns;if(this.setGutter("gutter-bytes",i.line-1,a),i.iscode){if(i.cycles)this.setGutter("gutter-clock",i.line-1,i.cycles+"");else if(D.getOpcodeMetadata){var u=parseInt(i.insns.split(" ")[0],16),d=D.getOpcodeMetadata(u,i.offset);if(d&&d.minCycles){var m=d.minCycles+"";this.setGutter("gutter-clock",i.line-1,m)}}}}}setGutter(t,i,a){var u=this.editor.lineInfo(i);if(!(u&&u.gutterMarkers&&u.gutterMarkers[t])){var d=document.createTextNode(a);this.editor.setGutterMarker(i,t,d)}}setGutterBytes(t,i){this.setGutter("gutter-bytes",t-1,i)}setTimingResult(t){if(this.editor.clearGutter("gutter-bytes"),this.sourcefile!=null)for(let m of Object.keys(this.sourcefile.line2offset)){var i=this.sourcefile.line2offset[m],a=t.pc2minclocks[i],u=t.pc2maxclocks[i];if(a>=0&&u>=0){var d;u==a?d=a+"":d=a+"-"+u,u==t.MAX_CLOCKS&&(d+="+"),this.setGutterBytes(parseInt(m),d)}}}setCurrentLine(t,i){var a=D.isBlocked&&D.isBlocked(),u=y=>{var b=document.createElement("div"),L=a?"currentpc-marker-blocked":"currentpc-marker";b.classList.add(L),b.appendChild(document.createTextNode("\u25B6")),this.editor.setGutterMarker(y.line-1,"gutter-info",b)};if(this.clearCurrentLine(i),t){u(t),i&&this.editor.setCursor({line:t.line-1,ch:t.start||0},{scroll:!0});var d=a?"currentpc-span-blocked":"currentpc-span",m={className:d,inclusiveLeft:!0};t.start||t.end?this.markCurrentPC=this.editor.markText({line:t.line-1,ch:t.start},{line:t.line-1,ch:t.end||t.start+1},m):this.markCurrentPC=this.editor.markText({line:t.line-1,ch:0},{line:t.line,ch:0},m),this.currentDebugLine=t}}clearCurrentLine(t){this.currentDebugLine&&(this.editor.clearGutter("gutter-info"),t&&this.editor.setSelection(this.editor.getCursor()),this.currentDebugLine=null),this.markCurrentPC&&(this.markCurrentPC.clear(),this.markCurrentPC=null)}getActiveLine(){if(this.sourcefile){var t=tr&&tr.c;if(!t&&D.getCPUState&&!D.isRunning()&&(t=D.getCPUState()),t){var i=t&&(t.EPC||t.PC),a=this.sourcefile.findLineForOffset(i,an);return a}}}refreshDebugState(t){this.clearCurrentLine(t);var i=this.getActiveLine();i&&this.setCurrentLine(i,t)}refreshListing(){var t=pe.getListingForFile(this.path);t&&t.sourcefile&&t.sourcefile!==this.sourcefile&&(this.sourcefile=t.sourcefile,this.dirtylisting=!0),!(!this.sourcefile||!this.dirtylisting)&&(this.updateListing(),this.dirtylisting=!1)}refresh(t){this.refreshListing(),this.refreshDebugState(t)}tick(){this.refreshDebugState(!1)}getLine(t){return this.editor.getLine(t-1)}getCurrentLine(){return this.editor.getCursor().line+1}getCursorPC(){for(var t=this.getCurrentLine();this.sourcefile&&t>=0;){var i=this.sourcefile.line2offset[t];if(i>=0)return i;t--}return-1}undoStep(){this.editor.execCommand("undo")}toggleBreakpoint(t){if(this.sourcefile!=null){var i=this.sourcefile.line2offset[t+1];ui(i)}}},Ea=1024,sn=class{getDisasmView(){return this.disasmview}createDiv(t){var i=document.createElement("div");return i.setAttribute("class","editor"),t.appendChild(i),this.newEditor(i),i}newEditor(t){this.disasmview=CodeMirror(t,{mode:"z80",theme:"cobalt",tabSize:8,readOnly:!0,styleActiveLine:!0})}refresh(t){let i=tr||D.saveState(),a=i.c?i.c.PC:0,u=0,d=0,m=D.debugSymbols&&D.debugSymbols.addr2symbol||{},y=(W,ue)=>{let j="",U=0;for(;U<ue;){let G=W+U|0,de=D.disassemble(G,D.readAddress.bind(D)),K="",ye="";for(let _e=0;_e<de.nbytes;_e++)K+=Fe(D.readAddress(G+_e));for(;K.length<14;)K+=" ";let Pe=de.line;if(m&&de.isaddr&&(Pe=Pe.replace(/([^#])[$]([0-9A-F]+)/,(_e,...o)=>{let Y=parseInt(o[1],16),ae=m[Y];return ae?o[0]+ae:(ae=m[Y-1],ae?o[0]+ae+"+1":_e)})),m){let _e=m[G];_e&&(ye="; "+_e)}j+=Fe(G,4)+" "+ii(K,14)+" "+ii(Pe,30)+ye+`
`,G==a&&(d=u),u++,U+=de.nbytes||1}return j};var b=a<0?a-Ea:Math.max(0,a-Ea);let L=y(b,a-b)+y(a,Ea);this.disasmview.setValue(L),t&&this.disasmview.setCursor(d,0),Os(this.disasmview,d)}getCursorPC(){var t=this.disasmview.getCursor().line;if(t>=0){var i=this.disasmview.getLine(t).trim().split(/\s+/);if(i&&i.length>=1){var a=parseInt(i[0],16);if(a>=0)return a}}return-1}},Sa=class extends sn{constructor(t){super();this.path=t}refreshListing(){var t=pe.getListingForFile(this.path);this.assemblyfile=t&&(t.assemblyfile||t.sourcefile)}refresh(t){if(this.refreshListing(),!!this.assemblyfile){var i=this.assemblyfile.text,a=this.getDisasmView();if(a.setValue(i),!!D.saveState){var u=tr||D.saveState(),d=u.c?u.c.EPC||u.c.PC:0;if(d>=0&&this.assemblyfile){var m=this.assemblyfile.findLineForOffset(d,an);m&&(t&&a.setCursor(m.line-1,0),Os(a,m.line-1))}}}}};function js(l){return l.endsWith("_SIZE__")||l.endsWith("_LAST__")||l.endsWith("STACKSIZE__")||l.endsWith("FILEOFFS__")||l.startsWith("l__")||l.startsWith("s__")||l.startsWith(".__.")}var on=class{constructor(){this.recreateOnResize=!0;this.totalRows=5120}createDiv(t){var i=document.createElement("div");return i.setAttribute("class","memdump"),t.appendChild(i),this.showMemoryWindow(t,i),this.maindiv=i}showMemoryWindow(t,i){this.memorylist=new Ss({w:$(t).width(),h:$(t).height(),itemHeight:Ts(),totalRows:this.totalRows,generatorFn:a=>{var u=this.getMemoryLineAt(a),d=document.createElement("div");if(this.dumplines){var m=this.dumplines[a];m&&d.classList.add("seg_"+this.getMemorySegment(this.dumplines[a].a))}return d.appendChild(document.createTextNode(u)),d}}),$(i).append(this.memorylist.container),this.tick(),lt&&this.dumplines&&this.scrollToAddress(lt.data_start)}scrollToAddress(t){this.dumplines&&this.memorylist.scrollToItem(this.findMemoryWindowLine(t))}refresh(){this.dumplines=null,this.tick()}tick(){this.memorylist&&$(this.maindiv).find("[data-index]").each((t,i)=>{var a=$(i),u=parseInt(a.attr("data-index")),d=a.text(),m=this.getMemoryLineAt(u);d!=m&&a.text(m)})}getMemoryLineAt(t){var i=t*16,a=0,u=16,d;if(this.getDumpLines()){var m=this.dumplines[t];if(m)i=m.a&65520,a=m.a-i,u=a+m.l,d=m.s;else return"."}for(var y=Fe(i+a,4)+" ",b=0;b<a;b++)y+=" ";a>8&&(y+=" ");for(var b=a;b<u;b++){var L=this.readAddress(i+b);b==8&&(y+=" "),y+=" "+(typeof L=="number"?Fe(L,2):"??")}for(var b=u;b<16;b++)y+=" ";return d&&(y+=" "+d),y}readAddress(t){return D.readAddress(t)}getDumpLineAt(t){var i=this.dumplines[t];if(i)return i.a+" "+i.s}getDumpLines(){var t=D.debugSymbols&&D.debugSymbols.addr2symbol||{};if(this.dumplines==null){this.dumplines=[];var i=0,a;for(let y of Object.keys(t)){var u=parseInt(y),d=t[u];if(a)for(js(a)&&(a="");i<u&&this.dumplines.length<65536;){var m=i+16&1048560;m>u&&(m=u),this.dumplines.push({a:i,l:m-i,s:a}),i=m}a=d}}return this.dumplines}getMemorySegment(t){if(lt){if(t>=lt.data_start&&t<lt.data_start+lt.data_size)return D.getSP&&t>=D.getSP()-15?"stack":"data";if(t>=lt.code_start&&t<lt.code_start+(lt.code_size||lt.rom_size))return"code"}var i=pe.segments;if(i){for(var a of i)if(t>=a.start&&t<a.start+a.size){if(a.type=="rom")return"code";if(a.type=="ram")return"data";if(a.type=="io")return"io"}}return"unknown"}findMemoryWindowLine(t){for(var i=0;i<this.dumplines.length;i++)if(this.dumplines[i].a>=t)return i}},_a=class extends on{constructor(){super(...arguments);this.totalRows=2048}readAddress(t){return D.readVRAMAddress(t)}getMemorySegment(t){return"video"}getDumpLines(){return null}},Ta=class{constructor(t,i){this.recreateOnResize=!0;this.path=t,this.data=i}createDiv(t){return this.vlist=new ni(t),this.vlist.create(t,this.data.length+15>>4,this.getMemoryLineAt.bind(this)),this.vlist.maindiv}getMemoryLineAt(t){for(var i=t*16,a=0,u=16,d=Fe(i+a,4)+" ",m=0;m<a;m++)d+=" ";a>8&&(d+=" ");for(var m=a;m<u;m++){var y=this.data[i+m];m==8&&(d+=" "),d+=" "+(y>=0?Fe(y,2):" ")}return{text:d}}refresh(){this.vlist.refresh()}getPath(){return this.path}},Ca=class{createDiv(t){return this.maindiv=Bt(t,"vertical-scroll"),this.maindiv.css("display","grid"),this.maindiv.css("grid-template-columns","5em 40% 40%"),this.maindiv[0]}addSegment(t,i){if(i){var a=$('<div class="segment-offset" style="grid-column-start:1"/>');a.text("$"+Fe(t.start,4)),this.maindiv.append(a)}var u=$('<div class="segment"/>');if(i||u.css("grid-column-start",3),t.last?u.text(t.name+" ("+(t.last-t.start)+" / "+t.size+" bytes used)"):u.text(t.name+" ("+t.size+" bytes)"),t.size>=256){var d=(Math.log(t.size)-Math.log(256))*.5;u.css("padding-top",d+"em"),u.css("padding-bottom",d+"em")}t.type&&u.addClass("segment-"+t.type),this.maindiv.append(u),u.click(()=>{var m=ge.createOrShow("#memory");m.scrollToAddress(t.start)})}refresh(){this.maindiv.empty();var t=pe.segments;if(t){var i=0,a=-1;for(var u of t)u.start>i&&this.addSegment({name:"",start:i,size:u.start-i},!0),this.addSegment(u,a!=u.start),a=u.start,i=u.start+u.size}}},kt=4278190080,vr=class{constructor(){this.cumulativeData=!1;var t=160,i=262;try{t=Math.ceil(D.machine.cpuCyclesPerLine)||t,i=Math.ceil(D.machine.numTotalScanlines)||i}catch(a){}this.cyclesPerLine=t,this.totalScanlines=i}addr2symbol(t){var i=D.debugSymbols&&D.debugSymbols.addr2symbol||{};return i[t]}addr2str(t){var i=this.addr2symbol(t);return typeof i=="string"?"$"+Fe(t)+" ("+i+")":"$"+Fe(t)}showTooltip(t){t?(this.tooldiv||(this.tooldiv=document.createElement("div"),this.tooldiv.setAttribute("class","tooltiptrack"),document.body.appendChild(this.tooldiv)),$(this.tooldiv).text(t).show()):$(this.tooldiv).hide()}setVisible(t){t?(this.probe=D.startProbing(),this.probe.singleFrame=!this.cumulativeData,this.tick()):(this.probe&&(this.probe.singleFrame=!0),D.stopProbing(),this.probe=null)}redraw(t){var i=this.probe;if(!(!i||!i.idx)){var a=0,u=0,d=0;this.sp=0;for(var m=0;m<i.idx;m++){var y=i.buf[m],b=y&65535,L=y>>16&255,W=y&kt;switch(W){case Z.SCANLINE:a++,u=0;break;case Z.FRAME:a=0,u=0;break;case Z.CLOCKS:u+=b,d+=b;break;case Z.SP_PUSH:case Z.SP_POP:this.sp=b;default:t(W,b,u,a,d,L);break}}}}opToString(t,i,a){var u="";switch(t){case Z.EXECUTE:u="Exec";break;case Z.MEM_READ:u="Read";break;case Z.MEM_WRITE:u="Write";break;case Z.IO_READ:u="IO Read";break;case Z.IO_WRITE:u="IO Write";break;case Z.VRAM_READ:u="VRAM Read";break;case Z.VRAM_WRITE:u="VRAM Write";break;case Z.DMA_READ:u="DMA Read";break;case Z.DMA_WRITE:u="DMA Write";break;case Z.INTERRUPT:u="Interrupt";break;case Z.ILLEGAL:u="Error";break;case Z.WAIT:u="Wait";break;case Z.SP_PUSH:u="Stack Push";break;case Z.SP_POP:u="Stack Pop";break;default:return""}return typeof i=="number"&&(u+=" "+this.addr2str(i)),t&Z.HAS_VALUE&&typeof a=="number"&&(u+=" = $"+Fe(a,2)),u}getOpRGB(t,i){switch(t){case Z.EXECUTE:return 98305;case Z.MEM_READ:return 8388865;case Z.MEM_WRITE:return 65920;case Z.IO_READ:return 98432;case Z.IO_WRITE:return 12583296;case Z.DMA_READ:case Z.VRAM_READ:return 8421377;case Z.DMA_WRITE:case Z.VRAM_WRITE:return 4227264;case Z.INTERRUPT:return 4177727;case Z.ILLEGAL:return 4145151;case Z.WAIT:return 16727871;default:return 0}}},Bs=class extends vr{constructor(){super(...arguments);this.recreateOnResize=!0}createCanvas(t,i,a){var u=document.createElement("div"),d=document.createElement("canvas");return d.width=i,d.height=a,d.classList.add("pixelated"),d.style.width="100%",d.style.height="90vh",d.style.backgroundColor="black",d.style.cursor="crosshair",d.onmousemove=m=>{var y=Zi(d,m);this.showTooltip(this.getTooltipText(y.x,y.y)),$(this.tooldiv).css("left",m.pageX+10).css("top",m.pageY-30)},d.onmouseout=m=>{$(this.tooldiv).hide()},t.appendChild(u),u.appendChild(d),this.canvas=d,this.ctx=d.getContext("2d"),this.initCanvas(),this.maindiv=u}initCanvas(){}getTooltipText(t,i){return null}getOpAtPos(t,i,a){t=t|0,i=i|0;let u=0;return this.redraw((d,m,y,b,L,W)=>{!u&&b==i&&y>=t&&(d&a)!=0&&(u=d|m)}),u}clear(){}tick(){this.clear(),this.redraw(this.drawEvent.bind(this))}},ka=class extends Bs{constructor(){super(...arguments);this.recreateOnResize=!1}createDiv(t){return this.createCanvas(t,this.cyclesPerLine,this.totalScanlines)}initCanvas(){this.imageData=this.ctx.createImageData(this.canvas.width,this.canvas.height),this.datau32=new Uint32Array(this.imageData.data.buffer)}getTooltipText(t,i){t=t|0,i=i|0;var a="",u=null,d=[],m=-1;return this.redraw((y,b,L,W,ue,j)=>{switch(y){case Z.EXECUTE:u=this.addr2symbol(b)||u;break;case Z.SP_PUSH:d.push(u);break;case Z.SP_POP:u=d.pop();break}W==i&&L<=t&&(L!=m&&(a="",m=L),a==""&&u&&(a+=`
`+u),a+=`
`+this.opToString(y,b,j))}),"X: "+t+" Y: "+i+" "+a}refresh(){this.tick(),this.datau32.fill(kt)}tick(){super.tick(),this.drawImage()}drawImage(){this.ctx.putImageData(this.imageData,0,0)}clear(){this.datau32.fill(kt)}},Pa=class extends ka{createDiv(t){return this.createCanvas(t,256,256)}initCanvas(){super.initCanvas(),this.canvas.onclick=t=>{var i=Zi(this.canvas,t),a=Math.floor(i.x)+Math.floor(i.y)*256,u=-1,d=-1;this.redraw((m,y)=>{d<0&&u>=0&&y==a&&(d=u),m==Z.EXECUTE&&(u=y)}),d>=0&&ui(d)}}clear(){for(var t=0;t<=65535;t++){var i=D.readAddress(t),a=i>>2|i&31;a|=a<<8|a<<16,this.datau32[t]=a|kt}}drawEvent(t,i,a,u){var d=this.getOpRGB(t,i);if(!!d){var m=i&255,y=i>>8&255,b=this.datau32[i&65535];b=b|d|kt,this.datau32[i&65535]=b}}getTooltipText(t,i){var a=(t&255)+(i<<8),u="",d=-1,m={},y=null,b=[];return this.redraw((L,W,ue,j,U,G)=>{switch(L){case Z.EXECUTE:d=W,y=this.addr2symbol(W)||y;break;case Z.SP_PUSH:b.push(y);break;case Z.SP_POP:y=b.pop();break}var de=L|d;W==a&&!m[de]&&(u==""&&y&&(u+=`
`+y),u+=`
PC `+this.addr2str(d)+" "+this.opToString(L,null,G),m[de]=1)}),this.addr2str(a)+u}},Hs=class extends ka{initCanvas(){super.initCanvas(),this.canvas.onclick=t=>{var i=Zi(this.canvas,t),a=Math.floor(i.x),u=Math.floor(i.y),d=this.getOpAtPos(i.x,i.y,Z.EXECUTE);d&&(Lt("toline"),D.runEval(()=>{let m=D.getRasterScanline&&D.getRasterScanline()>=u;return m&&D.getRasterLineClock?m&&D.getRasterLineClock()>a:m}))}}drawEvent(t,i,a,u){var d=this.getOpRGB(t,i);if(!!d){var m=a+u*this.canvas.width,y=d|kt;this.datau32[m]|=y}}drawImage(){let t=kt;for(let i=0;i<this.datau32.length;i++)this.datau32[i]==kt?this.datau32[i]=t:t=this.datau32[i];super.drawImage()}},Aa=class extends Hs{constructor(){super(...arguments);this.interrupt=0;this.rgb=0;this.lastpc=0}drawEvent(t,i,a,u){var d=a+u*this.canvas.width;if(t==Z.INTERRUPT&&(this.interrupt=1),this.interrupt==1&&t==Z.SP_PUSH&&(this.interrupt=i),this.interrupt>1&&this.sp>this.interrupt&&(this.interrupt=0),t==Z.MEM_WRITE&&(this.rgb|=47),t==Z.VRAM_WRITE&&(this.rgb|=16256),t==Z.IO_WRITE&&(this.rgb|=2047872),t==Z.IO_READ&&(this.rgb|=7936),t==Z.WAIT&&(this.rgb=32768),t==Z.ILLEGAL||t==Z.DMA_READ)this.datau32[d]=4279176975;else{let m=this.rgb;if(t==Z.EXECUTE){let y=this.sp&15;y>=8&&(y=16-y),Math.abs(this.lastpc)-i>16&&(y+=1),Math.abs(this.lastpc)-i>256&&(y+=1),m=this.rgb=526344*y+2105376,this.lastpc=i}this.interrupt&&(m|=8388672),this.datau32[d]==kt&&(this.datau32[d]=m|kt)}}},Da=class extends vr{constructor(){super(...arguments);this.recreateOnResize=!0}createDiv(t){return this.vlist=new ni(t),this.vlist.create(t,this.cyclesPerLine*this.totalScanlines,this.getMemoryLineAt.bind(this)),this.vlist.maindiv}getMemoryLineAt(t){var i="",a="seg_data",u=this.dumplines&&this.dumplines[t];if(u!=null){var d=u.info.join(", ");i="("+Dt(u.row,4)+", "+Dt(u.col,4)+") "+ii(u.asm||"",20)+d,d.indexOf("Write ")>=0&&(a="seg_io")}return{text:i,clas:a}}refresh(){this.tick()}tick(){let t=D instanceof ca||D instanceof ua;this.dumplines={},this.redraw((i,a,u,d,m,y)=>{t&&(m>>=2);var b=this.dumplines[m];switch(b==null&&(b={op:i,addr:a,row:d,col:u,asm:null,info:[]},this.dumplines[m]=b),i){case Z.EXECUTE:if(D.disassemble){var L=D.disassemble(a,D.readAddress.bind(D));b.asm=L&&L.line}break;default:var W=this.opToString(i,a,y);W!=""&&b.info.push(W);break}}),this.vlist.refresh()}},Fa=class extends vr{constructor(){super(...arguments);this.recreateOnResize=!0}createDiv(t){return this.vlist=new ni(t),this.vlist.create(t,this.totalScanlines,this.getMemoryLineAt.bind(this)),this.vlist.maindiv}getMemoryLineAt(t){for(var i=Dt(t+"",3)+" ",a="seg_code",u=this.dumplines&&this.dumplines[t]||[],d=Math.round(this.cyclesPerLine/3.3),m=0;m<this.cyclesPerLine;m++){var y=u[m];if(y!==void 0){var b=y&65535,L=L&kt;if(L==Z.EXECUTE)i+=",";else{var W=Fe(b);i+=W,m+=W.length-1}}else i+=m==d?"|":"."}return u[-1]&&(i+=" "+u[-1]),{text:i,clas:a}}refresh(){this.tick()}tick(){let t=D instanceof ca||D instanceof ua;this.dumplines={},this.redraw((i,a,u,d,m,y)=>{var b=this.dumplines[d];switch(b==null&&(this.dumplines[d]=b=[]),i){case Z.EXECUTE:var L=D.debugSymbols.addr2symbol[a];L&&(b[-1]=L);break;case Z.IO_READ:case Z.IO_WRITE:case Z.VRAM_READ:case Z.VRAM_WRITE:b[u]=i|a;break}}),this.vlist.refresh()}},La=class extends vr{constructor(){super(...arguments);this.recreateOnResize=!0;this.cumulativeData=!0}createDiv(t){return D.debugSymbols&&D.debugSymbols.symbolmap?this.keys=Array.from(Object.keys(D.debugSymbols.symbolmap).filter(i=>!js(i))):this.keys=["no symbols defined"],this.vlist=new ni(t),this.vlist.create(t,this.keys.length+1,this.getMemoryLineAt.bind(this)),this.vlist.maindiv}getMemoryLineAt(t){if(t==0)return{text:Dt("Symbol",35)+Dt("Reads",8)+Dt("Writes",8)};var i=this.keys[t-1],a=this.dumplines&&this.dumplines[i];function u(y){var b=a[y]|0;return Dt(b?b.toString():"",8)}var d,m;return a!=null?(d=Dt(i,35)+u(Z.MEM_READ)+u(Z.MEM_WRITE),a[Z.EXECUTE]?m="seg_code":a[Z.IO_READ]||a[Z.IO_WRITE]?m="seg_io":m="seg_data"):(d=Dt(i,35),m="seg_unknown"),{text:d,clas:m}}refresh(){this.tick()}tick(){this.dumplines={},this.redraw((t,i,a,u,d,m)=>{var y=D.debugSymbols.addr2symbol[i];if(y!=null){var b=this.dumplines[y];b==null&&(b={},this.dumplines[y]=b),b[t]=(b[t]|0)+1}}),this.vlist.refresh(),this.probe&&this.probe.clear()}};var Ic=Ps(),ln=/([0#]?)([x$%]|\d'h)([0-9a-f]+)(?:[;].*)?|(\d'b|0b)([01]+)/gim;function Zo(l){return l.replace(/(\shex\s+)([0-9a-f]+)/ig,function(t,i,a){for(var u=i,d=0;d<a.length;d+=2)u+="0x"+a.substr(d,2)+",";return u})}function el(l){for(var t=[],i;i=ln.exec(l);){var a;typeof i[4]!="undefined"?a=parseInt(i[5],2):i[2].startsWith("%")||i[2].endsWith("b")?a=parseInt(i[3],2):i[2].startsWith("x")||i[2].startsWith("$")||i[2].endsWith("h")?a=parseInt(i[3],16):a=parseInt(i[3]),t.push(a)}return t}function tl(l,t){for(var i="",a,u=0,d=0;a=ln.exec(l);)i+=l.slice(u,ln.lastIndex-a[0].length),u=ln.lastIndex,typeof a[4]!="undefined"?i+=a[4]+t[d++].toString(2):a[2].startsWith("%")?i+=a[1]+"%"+t[d++].toString(2):a[2].endsWith("b")?i+=a[1]+a[2]+t[d++].toString(2):a[2].endsWith("h")?i+=a[1]+a[2]+t[d++].toString(16):a[2].startsWith("x")?i+=a[1]+"x"+Fe(t[d++]):a[2].startsWith("$")?i+=a[1]+"$"+Fe(t[d++]):i+=a[1]+t[d++].toString();return i+=l.slice(u),i=i.replace(/(\shex\s+)([,x0-9a-f]+)/ig,(m,y,b)=>{var L=y+b;return L=L.replace(/0x/ig,"").replace(/,/ig,""),L}),i}function Us(l,t){if(!t)return l;for(var i=0,a=0;a<t.length;a++){var u=t[a];u<0&&(u=-u-1,i^=1<<u),l&1<<a&&(i^=1<<u)}return i}function zs(l,t){var i=t[l%t.length];return[i>>3,i&7]}function rl(l,t){for(var i=t.w,a=t.h,u=t.count||1,d=t.bpp||1,m=t.np||1,y=t.bpw||8,b=t.sl||Math.ceil(i*d/y),L=(1<<d)-1,W=t.pofs||b*a*u,ue=t.skip||0,j=t.wpimg||b*a,U=[],G=0;G<u;G++){for(var de=[],K=0;K<a;K++)for(var ye=t.flip?a-1-K:K,Pe=j*G+ye*b,be=0,_e=0;_e<i;_e++){var o=0,Y=Us(Pe,t.remap);t.reindex&&([Y,be]=zs(_e,t.reindex),Y+=Pe);for(var ae=0;ae<m;ae++){var se=l[Y+ae*W+ue];o|=((t.brev?se>>y-be-d:se>>be)&L)<<ae*d}de.push(o),be+=d,be>=y&&!t.reindex&&(Pe+=1,be=0)}U.push(new Uint8Array(de))}return U}function il(l,t){t.destfmt&&(t=t.destfmt);var i=t.w,a=t.h,u=t.count||1,d=t.bpp||1,m=t.np||1,y=t.bpw||8,b=t.sl||Math.ceil(t.w*d/y),L=(1<<d)-1,W=t.pofs||b*a*u,ue=t.skip||0,j=t.wpimg||b*a,U;m>0&&t.sl?U=new Uint8Array(j*u):y<=8?U=new Uint8Array(j*u*m):U=new Uint32Array(j*u*m);for(var G=0;G<u;G++)for(var de=l[G],K=0,ye=0;ye<a;ye++)for(var Pe=t.flip?a-1-ye:ye,be=G*j+Pe*b,_e=0,o=0;o<i;o++){var Y=de[K++],ae=Us(be,t.remap);t.reindex&&([ae,_e]=zs(o,t.reindex),ae+=be);for(var se=0;se<m;se++){var Te=Y>>se*d&L;U[ae+se*W+ue]|=t.brev?Te<<y-_e-d:Te<<_e}_e+=d,_e>=y&&!t.reindex&&(be+=1,_e=0)}return U}function Vs(l,t,i,a,u,d,m){for(var y=[],b=0;b<l.length;b++){var L=l[b],W=4278190080;W|=(L>>t&(1<<i)-1)<<0+8-i,W|=(L>>a&(1<<u)-1)<<8+8-u,W|=(L>>d&(1<<m)-1)<<16+8-m,y.push(W)}return y}function nl(l){var t=l.pal;if(typeof t=="number"){var i=Math.floor(Math.abs(t/100)%10),a=Math.floor(Math.abs(t/10)%10),u=Math.floor(Math.abs(t)%10);return 1<<i+a+u}else{var d=Gs[t];if(d)return d.length;throw new Error("No palette named "+t)}}function qs(l,t){var i=t.pal,a;if(typeof i=="number"){var u=Math.floor(Math.abs(i/100)%10),d=Math.floor(Math.abs(i/10)%10),m=Math.floor(Math.abs(i)%10);i>=0?a=Vs(l,0,u,u,d,u+d,m):a=Vs(l,u+d,m,u,d,0,u)}else{var y=Gs[i];if(y)a=new Uint32Array(l).map(b=>y[b&y.length-1]|4278190080);else throw new Error("No palette named "+i)}return a}var Gs={nes:[5395026,11796480,10485760,11599933,7602281,91,95,6208,12048,543240,26368,1196544,7153664,0,0,0,12899815,16728064,14421538,16729963,14090399,6818519,6588,21681,27227,35843,43776,2918400,10777088,0,0,0,16316664,16755516,16742785,16735173,16730354,14633471,4681215,46327,57599,58229,259115,7911470,15065624,7895160,0,0,16777215,16773822,16300216,16300248,16758527,16761855,13095423,10148607,8973816,8650717,12122296,16119980,16777136,16308472,0,0],ap2lores:[0,16711935,127,8323199,32512,8355711,191,255,12549888,16760576,12566463,16744319,65280,16776960,49023,16777215],vcs:[0,0,4210752,4210752,7105644,7105644,9474192,9474192,11579568,11579568,13158600,13158600,14474460,14474460,16053492,16053492,17476,17476,1074276,1074276,2393220,2393220,3448992,3448992,4241592,4241592,5296336,5296336,6088936,6088936,6880508,6880508,10352,10352,1328260,1328260,2645144,2645144,3963052,3963052,5016764,5016764,6070476,6070476,6862044,6862044,7915756,7915756,6276,6276,1586328,1586328,3166380,3166380,4745408,4745408,6062288,6062288,7378144,7378144,8431852,8431852,9747708,9747708,136,136,2105500,2105500,3947696,3947696,5789888,5789888,7368912,7368912,8947936,8947936,10526956,10526956,11842812,11842812,6029432,6029432,7610508,7610508,8928416,8928416,10246320,10246320,11563200,11563200,12616912,12616912,13671644,13671644,14725356,14725356,7864392,7864392,9445472,9445472,10763384,10763384,12081292,12081292,13398176,13398176,14451892,14451892,15506628,15506628,16560340,16560340,8650772,8650772,9969712,9969712,11287628,11287628,12605544,12605544,13660284,13660284,14715028,14715028,15507624,15507624,16561340,16561340,8912896,8912896,10231836,10231836,11550776,11550776,12606544,12606544,13661288,13661288,14716028,14716028,15508624,15508624,16562340,16562340,8132608,8132608,9451548,9451548,11031608,11031608,12349520,12349520,13404264,13404264,14457980,14457980,15512720,15512720,16566436,16566436,6040576,6040576,7883804,7883804,9463864,9463864,11306064,11306064,12622952,12622952,13939836,13939836,15256720,15256720,16572580,16572580,2898944,2898944,4742172,4742172,6585400,6585400,8428624,8428624,9745512,9745512,11325564,11325564,12641424,12641424,13958308,13958308,15360,15360,2120736,2120736,4226112,4226112,6069340,6069340,7648372,7648372,9228428,9228428,10806436,10806436,12123320,12123320,14356,14356,1858612,1858612,3701840,3701840,5281900,5281900,6861956,6861956,8178844,8178844,9495732,9495732,10812616,10812616,12332,12332,1855564,1855564,3436648,3436648,5016708,5016708,6596764,6596764,7913652,7913652,8967372,8967372,10284256,10284256,10308,10308,1591396,1591396,3172484,3172484,4490400,4490400,5807288,5807288,7124176,7124176,8178920,8178920,9232636,9232636],astrocade:[0,2368548,4737096,7171437,9539985,11974326,14342874,16777215,12255269,14680137,16716142,16725394,16734903,16744155,16753663,16762879,11534409,13959277,16318866,16721334,16730842,16740095,16749311,16758783,10420330,12779662,15138995,16718039,16727291,16736767,16745983,16755199,8847495,11206827,13631696,15994612,16724735,16733951,16743423,16752639,6946975,9306307,11731175,14092287,16461055,16732415,16741631,16751103,4784304,7143637,9568505,11929087,14297599,16731647,16741119,16750335,2425019,4784352,7209215,9570047,12004095,14372863,16741375,16750847,191,2359523,4718847,7146495,9515263,11949311,14318079,16752127,187,224,2294015,4658431,7092735,9461247,11895551,14264063,176,213,249,2367999,4736511,7105279,9539327,11908095,159,195,3303,209151,2577919,4946431,7380735,9749247,135,171,7888,17140,681983,3050495,5484543,7853311,106,3470,12723,22231,31483,1548031,3916799,6285311,73,8557,17810,27318,36570,373759,2742271,5176575,4389,13641,23150,32402,41911,51163,2026495,4456447,9472,18724,27976,37485,46737,56246,1834970,4194303,14080,23296,32803,42055,51564,60816,2031541,4456409,18176,27648,36864,46116,55624,392556,2752401,5177269,21760,30976,40192,49667,58919,1572683,3932016,6291348,24320,33536,43008,52224,716810,3079982,5504851,7864183,25856,35328,44544,250368,2619136,4980503,7405371,9764703,26624,35840,45312,2413824,4782336,7143173,9568041,11927374,26112,35584,2338560,4707328,7141376,9502464,11927326,14286659,24832,2393344,4762112,7196160,9564928,11992832,14352155,16711487,2447360,4815872,7250176,9618688,12052992,14417664,16776990,16777027,4803328,7172096,9606144,11974912,14343424,16776965,16777001,16777038,6962176,9330688,11764992,14133504,16502272,16773655,16777019,16777055,8858112,11226880,13660928,16029440,16759818,16769070,16777043,16777079,10426112,12794624,15163392,16745475,16754727,16764235,16773488,16777108,11534848,13969152,16337664,16740388,16749640,16759148,16768401,16777141,12255232,14684928,16725795,16735047,16744556,16753808,16763317,16772569],c64:[0,16777215,2832232,11707504,8797551,4427096,7940149,7325624,2445167,14659,5859226,4473924,7105644,8704666,11886188,9803157]},al={nes:[["Screen Color",0,1],["Background 0",1,3],["Background 1",5,3],["Background 2",9,3],["Background 3",13,3],["Sprite 0",17,3],["Sprite 1",21,3],["Sprite 2",25,3],["Sprite 3",29,3]],astrocade:[["Left",0,-4],["Right",4,-4]]};function ci(l,t){if(l==null||t==null||l.length!==t.length)return!1;if(l===t)return!0;for(var i=0;i<l.length;i++)if(l[i]!==t[i])return!1;return!0}function un(l,t){if(l==null||t==null||l.length!==t.length)return!1;if(l===t)return!0;for(var i=0;i<l.length;i++)if(!ci(l[i],t[i]))return!1;return!0}var Ht=class{refreshLeft(){for(var t=this;t;)t.updateLeft(),t=t.left}refreshRight(){for(var t=this;t;)t.updateRight(),t=t.right}addRight(t){return this.right=t,t.left=this,t}addLeft(t){return this.left=t,t.right=this,t}},Ra=class extends Ht{},cn=class extends Ra{constructor(t,i){super();this.project=t,this.fileid=i,this.label=i}updateLeft(){return this.words=this.right.words,this.project&&this.project.updateFile(this.fileid,this.words),!0}updateRight(){return this.project&&(this.words=this.project.project.getFile(this.fileid)),!0}},Ia=class extends Ra{constructor(t,i,a,u,d){super();this.project=t,this.fileid=i,this.label=a,this.start=u,this.end=d}updateLeft(){if(this.right.words.length!=this.words.length)throw Error("Cannot put "+this.right.words.length+" image bytes into array of "+this.words.length+" bytes");this.words=this.right.words;var t=this.text.substring(this.start,this.end);return t=tl(t,this.words),this.text=this.text.substring(0,this.start)+t+this.text.substring(this.end),this.project&&this.project.updateFile(this.fileid,this.text),!0}updateRight(){this.project&&(this.text=this.project.project.getFile(this.fileid));var t=this.text.substring(this.start,this.end);t=Zo(t);var i=el(t);return this.words=i,!0}},Ma=class extends Ht{updateLeft(){return!1}updateRight(){return this.words=Es(new Uint8Array(this.left.words)),!0}},Na=class extends Ht{constructor(t){super();this.fmt=t}updateLeft(){return this.images=this.right.images,this.words=il(this.images,this.fmt),!0}updateRight(){return ci(this.words,this.left.words)?!1:(this.words=this.left.words,this.images=rl(this.words,this.fmt),!0)}},Ys=class{constructor(t){this.palcols=t}indexOf(t){return this.palcols.indexOf(t)}},Rr=class extends Ht{constructor(t,i){super();this.palindex=0;this.context=t,this.ncolors=1<<(i.bpp||1)*(i.np||1)}updateLeft(){this.right&&(this.rgbimgs=this.right.rgbimgs);var t=new Ys(this.palette),i=this.rgbimgs.map(a=>{for(var u=new Uint8Array(a.length),d=0;d<a.length;d++)u[d]=t.indexOf(a[d]);return u});return this.images=i,!0}updateRight(){if(!this.updateRefs()&&un(this.images,this.left.images))return!1;this.images=this.left.images;var t=this.palette.length-1;return this.rgbimgs=this.images.map(i=>{for(var a=new Uint32Array(i.length),u=0;u<i.length;u++)a[u]=this.palette[i[u]&t];return a}),!0}updateRefs(){var t;return this.context!=null&&(this.paloptions=this.context.getPalettes(this.ncolors),this.paloptions&&this.paloptions.length>0&&(t=this.paloptions[this.palindex].palette)),t==null&&(this.ncolors<=2?t=new Uint32Array([4278190080,4294967295]):t=new Uint32Array([4278190080,4294902015,4294967040,4294967295])),ci(this.palette,t)?!1:(this.palette=t,!0)}};function sl(l){for(var t=new Map,i=new Uint32Array(l.length),a=0,u=0;u<l.length;u++){for(var d=l[u];t[d];)d^=++a;i[u]=d,t[d]=1}return i}var fn=class extends Ht{constructor(t){super();this.palfmt=t}updateLeft(){return!0}updateRight(){return ci(this.words,this.left.words)?!1:(this.words=this.left.words,this.palette=sl(qs(this.words,this.palfmt)),this.layout=al[this.palfmt.layout],this.rgbimgs=[],this.palette.forEach(t=>{this.rgbimgs.push(new Uint32Array([t]))}),!0)}getAllColors(){for(var t=[],i=0;i<nl(this.palfmt);i++)t.push(i);return qs(t,this.palfmt)}},Xs=class extends Ht{constructor(t){super();this.tileindex=0;this.context=t}updateRefs(){var t=this.tilemap;return this.context!=null&&(this.tileoptions=this.context.getTilemaps(256),this.tileoptions&&this.tileoptions.length>0&&(this.tilemap=this.tileoptions[this.tileindex].images)),!un(t,this.tilemap)}};var Oa=class extends Xs{constructor(t){super(t)}updateLeft(){return!1}updateRight(){if(!this.updateRefs()&&ci(this.words,this.left.words))return!1;this.words=this.left.words,this.cols=32,this.rows=30,this.width=this.cols*8,this.height=this.rows*8,this.baseofs=0;var t=new Uint8Array(this.width*this.height);this.images=[t];for(var i=0,a,u=0;u<this.rows;u++)for(var d=0;d<this.cols;d++){var m=this.words[this.baseofs+i];if(typeof m=="undefined")throw Error("No name for address "+this.baseofs+" + "+i);var y=this.tilemap[m];if(!y)throw Error("No tilemap found for tile index "+m);a=i&11264|960|i&3072|i>>4&56|i>>2&7;for(var b=this.words[a],L=m^b<<9^2147483648,W=u*this.cols*8*8+d*8,ue=0,j=(d&2)+((i&64)>>4),U=(b>>j&3)<<2,G=0;G<8;G++){for(var de=0;de<8;de++){var K=y[ue++];K&&(K+=U),t[W++]=K}W+=this.cols*8-8}i++}return!0}},dn=class{recreate(t,i){var a=$('<div class="asset_grid"/>');t.empty().append(a);var u=Math.max(2,Math.ceil(16/this.width)),d=this.width<=8?16:8,m=null;this.rgbimgs.forEach((y,b)=>{var L=new hn;L.width=this.width,L.height=this.height,L.recreate(),L.canvas.style.width=L.width*u+"px",L.canvas.title="$"+Fe(b),L.updateImage(y),$(L.canvas).addClass("asset_cell"),$(L.canvas).click(ue=>{i(b,L)}),m||(m=$("<span/>"),a.append(m)),m.append(L.canvas);var W=b%d==d-1;W&&(a.append($("<br/>")),m=null)})}};function br(l,t){var i=$(document.createElement("div"));return l&&i.appendTo(l),t&&i.addClass(t),i}var $a=class extends Ht{constructor(t,i,a){super();this.context=t,this.parentdiv=i,this.fmt=a}updateLeft(){return!0}updateRight(){if(un(this.rgbimgs,this.left.rgbimgs))return!1;this.rgbimgs=this.left.rgbimgs;var t=br(this.parentdiv.empty(),"asset_dual"),i=br(t),a=br(t,"asset_editor").hide(),u=this.chooser=new dn;u.rgbimgs=this.rgbimgs,u.width=this.fmt.w||1,u.height=this.fmt.h||1,u.recreate(i,(y,b)=>{var L=Math.ceil(192/this.fmt.w),W=L*(this.fmt.aspect||1),ue=this.createEditor(a,b,W,L);this.context.setCurrentEditor(a,$(b.canvas),this),this.rgbimgs[y]=b.rgbdata});var d=this.left;if(d instanceof Rr&&d.paloptions.length>1){var m=$(document.createElement("select"));d.paloptions.forEach((y,b)=>{var L=$(document.createElement("option")).text(y.name).val(b).appendTo(m);b==d.palindex&&L.attr("selected","selected")}),m.appendTo(i).change(y=>{var b=$(y.target).val();d.palindex=b,d.refreshRight()})}return!0}createEditor(t,i,a,u){var d=new Qs;d.createWith(i),d.updateImage();for(var m=i.width*a,y=i.height*u;m>500||y>500;)m/=2,y/=2;return d.canvas.style.width=m+"px",d.canvas.style.height=y+"px",d.makeEditable(this,t,this.left.palette),d}},Wa=class extends Ht{constructor(t,i,a){super();this.context=t,this.parentdiv=i,this.fmt=a}updateLeft(){return!0}updateRight(){if(un(this.rgbimgs,this.left.rgbimgs))return!1;this.rgbimgs=this.left.rgbimgs;var t=br(this.parentdiv.empty(),"asset_dual"),i=br(t),a=br(t,"asset_editor").hide(),u=new hn;return u.width=this.fmt.w,u.height=this.fmt.h,u.recreate(),u.updateImage(this.rgbimgs[0]),i.append(u.canvas),!0}},hn=class{recreate(){this.canvas=this.newCanvas(),this.imagedata=this.ctx.createImageData(this.width,this.height),this.rgbdata=new Uint32Array(this.imagedata.data.buffer),this.peerviewers=[this]}createWith(t){this.width=t.width,this.height=t.height,this.imagedata=t.imagedata,this.rgbdata=t.rgbdata,this.canvas=this.newCanvas(),this.peerviewers=[this,t]}newCanvas(){var t=document.createElement("canvas");return t.width=this.width,t.height=this.height,t.classList.add("pixels"),t.classList.add("pixelated"),this.ctx=t.getContext("2d"),t}updateImage(t){t&&this.rgbdata.set(t);for(let i of this.peerviewers)i.ctx.putImageData(this.imagedata,0,0)}},Qs=class extends hn{constructor(){super(...arguments);this.curpalcol=-1;this.offscreen=new Map}getPositionFromEvent(t){var i=Math.floor(t.offsetX*this.width/$(this.canvas).width()),a=Math.floor(t.offsetY*this.height/$(this.canvas).height());return{x:i,y:a}}setPaletteColor(t){t&=this.palette.length-1,this.curpalcol!=t&&(this.curpalcol>=0&&this.palbtns[this.curpalcol].removeClass("selected"),this.curpalcol=t,this.currgba=this.palette[t&this.palette.length-1],this.palbtns[t].addClass("selected"))}makeEditable(t,i,a){this.left=t,this.palette=a;var u,d=!1,m=$(this.canvas);m.mousedown(y=>{var b=this.getPositionFromEvent(y);u=this.getPixel(b.x,b.y)==this.currgba?this.palette[0]:this.currgba,this.setPixel(b.x,b.y,this.currgba),d=!0,$(document).mouseup(L=>{$(document).off("mouseup");var W=this.getPositionFromEvent(L);this.setPixel(W.x,W.y,u),d=!1,this.commit()})}).mousemove(y=>{var b=this.getPositionFromEvent(y);d&&this.setPixel(b.x,b.y,u)}),i.empty(),this.createToolbarButtons(i[0]),i.append(this.canvas),i.append(this.createPaletteButtons()),this.setPaletteColor(1)}getPixel(t,i){if(t=Math.round(t),i=Math.round(i),t<0||t>=this.width||i<0||i>=this.height)return this.offscreen[t+","+i]|this.palette[0];var a=t+i*this.width;return this.rgbdata[a]}setPixel(t,i,a){if(t=Math.round(t),i=Math.round(i),t<0||t>=this.width||i<0||i>=this.height)this.offscreen[t+","+i]=a;else{var u=t+i*this.width,d=this.rgbdata[u];d!=a&&(this.rgbdata[u]=a,this.updateImage())}}createPaletteButtons(){this.palbtns=[];for(var t=br(null,"asset_toolbar"),i=0;i<this.palette.length;i++){var a=$(document.createElement("button")).addClass("palbtn"),u=this.palette[i]&16777215,d="#"+Fe(Ji(u),6);a.click(this.setPaletteColor.bind(this,i)),a.css("backgroundColor",d).text(i.toString(16)),a.css("color",u&32768?"black":"white"),t.append(a),this.palbtns.push(a)}return t}createToolbarButtons(t){var i=new en(t,null);i.add("ctrl+shift+h","Flip X","glyphicon-resize-horizontal",this.flipX.bind(this)),i.add("ctrl+shift+v","Flip Y","glyphicon-resize-vertical",this.flipY.bind(this)),i.add("ctrl+shift+9","Rotate","glyphicon-repeat",this.rotate90.bind(this)),i.add("ctrl+shift+left","Move Left","glyphicon-arrow-left",this.translate.bind(this,1,0)),i.add("ctrl+shift+right","Move Right","glyphicon-arrow-right",this.translate.bind(this,-1,0)),i.add("ctrl+shift+up","Move Up","glyphicon-arrow-up",this.translate.bind(this,0,1)),i.add("ctrl+shift+down","Move Down","glyphicon-arrow-down",this.translate.bind(this,0,-1))}commit(){this.updateImage();try{this.left.refreshLeft()}catch(t){console.log(t),alert(`Could not update source code. ${t}`)}}remapPixels(t){for(var i=0,a=new Uint32Array(this.rgbdata.length),u=0;u<this.height;u++)for(var d=0;d<this.width;d++)a[i]=t(d,u),i++;this.rgbdata.set(a),this.commit()}rotate(t){var i=Math.sin(t*Math.PI/180),a=Math.cos(t*Math.PI/180);this.remapPixels((u,d)=>{var m=u+.5-this.width/2,y=d+.5-this.height/2,b=m*a-y*i+this.width/2-.5,L=y*a+m*i+this.height/2-.5;return this.getPixel(b,L)})}rotate90(){this.rotate(90)}flipX(){this.remapPixels((t,i)=>this.getPixel(this.width-1-t,i))}flipY(){this.remapPixels((t,i)=>this.getPixel(t,this.height-1-i))}translate(t,i){this.remapPixels((a,u)=>this.getPixel(a+t,u+i))}};var pn=Ps(),ja=class{createDiv(t){return this.maindiv=Bt(t,"vertical-scroll"),this.maindiv[0]}clearAssets(){this.rootnodes=[],this.deferrednodes=[]}registerAsset(t,i,a){this.rootnodes.push(i),a?a>1?this.deferrednodes.push(i):this.deferrednodes.unshift(i):i.refreshRight()}getPalettes(t){var i=[];return this.rootnodes.forEach(a=>{for(;a!=null;){if(a instanceof fn){var u=a.palette;t==u.length&&i.push({node:a,name:"Palette",palette:u}),a.layout&&a.layout.forEach(([d,m,y])=>{if(m<u.length){if(y==t){var b=u.slice(m,m+y);i.push({node:a,name:d,palette:b})}else if(-y==t){var b=u.slice(m,m-y);b.reverse(),i.push({node:a,name:d,palette:b})}else if(y+1==t){var b=new Uint32Array(t);b[0]=u[0],b.set(u.slice(m,m+y),1),i.push({node:a,name:d,palette:b})}}});break}a=a.right}}),i}getTilemaps(t){var i=[];return this.rootnodes.forEach(a=>{for(;a!=null;){if(a instanceof Rr){var u=a.rgbimgs;u&&u.length>=t&&i.push({node:a,name:"Tilemap",images:a.images,rgbimgs:u})}a=a.right}}),i}isEditing(){return this.cureditordiv!=null}getCurrentEditNode(){return this.cureditnode}setCurrentEditor(t,i,a){let u=250;for(this.cureditordiv!=t&&(this.cureditordiv&&(this.cureditordiv.hide(u),this.cureditordiv=null),t&&(this.cureditordiv=t,this.cureditordiv.show(),this.cureditordiv[0].scrollIntoView({behavior:"smooth",block:"center"}))),this.cureditelem&&(this.cureditelem.removeClass("selected"),this.cureditelem=null),i&&(this.cureditelem=i,this.cureditelem.addClass("selected"));a.left;)a=a.left;this.cureditnode=a}scanFileTextForAssets(t,i){for(var a=[],u=/[/;][*;]([{].+[}])[*;][/;]/g,d;d=u.exec(i);){var m=d.index+d[0].length,y;if(ne.includes("verilog")?y=i.indexOf("end",m):d[0].startsWith(";;")?y=i.indexOf(";;",m):y=i.indexOf(";",m),y>m)try{var b=d[1].replace(/([A-Za-z]+):/g,'"$1":'),L=JSON.parse(b);a.push({fileid:t,fmt:L,start:m,end:y})}catch(_e){console.log(_e)}}for(var W=/DEF_METASPRITE_(\d+)x(\d+)[(](\w+),\s*(\w+),\s*(\w+)/gi;d=W.exec(i);){for(var ue=parseInt(d[1]),j=parseInt(d[2]),U=d[3],G=parseInt(d[4]),de=parseInt(d[5]),K=[],ye=0;ye<ue;ye++)for(var Pe=0;Pe<j;Pe++)K.push({x:ye*8,y:Pe*8,tile:G,attr:de});var be={defs:K,width:ue*8,height:j*8};a.push({fileid:t,label:U,meta:be})}return a}addPaletteEditorViews(t,i,a){var u=$('<div class="asset_dual"/>').appendTo(t),d=$('<div class="asset_editor"/>').hide(),m=[];i.getAllColors().forEach(U=>{m.push(new Uint32Array([U]))});var y=$("<table/>").appendTo(u);d.appendTo(u);var b=i.layout;if(!b){var L=i.palette.length,W=L>32?8:4;b=[];for(var ue=0;ue<L;ue+=W)b.push(["",ue,Math.min(L-ue,W)])}function j(U,G){var de=i.words[G],K=i.palette[G],ye="#"+Fe(Ji(K),6),Pe=K&32768?"black":"white";U.text(Fe(de,2)).css("background-color",ye).css("color",Pe)}b.forEach(([U,G,de])=>{if(G<i.palette.length){var K=$("<tr/>").appendTo(y);$("<td/>").text(U).appendTo(K);for(var ye=[],Pe=G;Pe<G+Math.abs(de);Pe++)ye.push(Pe);de<0&&ye.reverse(),ye.forEach(be=>{var _e=$("<td/>").addClass("asset_cell asset_editable").appendTo(K);j(_e,be),_e.click(o=>{var Y=new dn;Y.rgbimgs=m,Y.width=1,Y.height=1,Y.recreate(d,(ae,se)=>{a(be,ae),j(_e,be)}),this.setCurrentEditor(d,_e,i)})})}})}addPixelEditor(t,i,a){a.xform="scale(2)";var u=new Na(a);i.addRight(u);var d=new Rr(this,a);u.addRight(d),d.addRight(new $a(this,Bt(t),a))}addPaletteEditor(t,i,a){var u=new fn(a);i.addRight(u),i.refreshRight(),this.addPaletteEditorViews(t,u,(d,m)=>{console.log("set entry",d,"=",m),i.words[d]=m,u.words=null,u.updateRight(),u.refreshLeft()})}ensureFileDiv(t){var i=this.getFileDivId(t),a=$(document.getElementById(i));if(a.length===0){var u=Bt(this.maindiv,"asset_file"),d=Bt(u,"asset_file_header").text(t);a=Bt(u).attr("id",i).addClass("disable-select")}return a}refreshAssetsInFile(t,i){let a=0;if(ne.startsWith("nes")&&t.endsWith(".chr")&&i instanceof Uint8Array){let u=new cn(ge,t),d={w:8,h:8,bpp:1,count:i.length>>4,brev:!0,np:2,pofs:8,remap:[0,1,2,4,5,6,7,8,9,10,11,12]};this.addPixelEditor(this.ensureFileDiv(t),u,d),this.registerAsset("charmap",u,1),a++}else if(ne.startsWith("nes")&&t.endsWith(".pal")&&i instanceof Uint8Array){let u=new cn(ge,t),d={pal:"nes",layout:"nes"};this.addPaletteEditor(this.ensureFileDiv(t),u,d),this.registerAsset("palette",u,0),a++}else if(typeof i=="string"){let u=this.scanFileTextForAssets(t,i);for(let d of u)if(d.fmt){let m=t,y=new Ia(ge,t,m,d.start,d.end),b=y;if(d.fmt.comp=="rletag"&&(y=y.addRight(new Ma)),d.fmt.map=="nesnt"){y=y.addRight(new Oa(this)),y=y.addRight(new Rr(this,{w:8,h:8,bpp:4}));let L={w:8*(d.fmt.w||32),h:8*(d.fmt.h||30),count:1};y=y.addRight(new Wa(this,Bt(this.ensureFileDiv(t)),L)),this.registerAsset("nametable",b,2),a++}else d.fmt.w>0&&d.fmt.h>0?(this.addPixelEditor(this.ensureFileDiv(t),y,d.fmt),this.registerAsset("charmap",b,1),a++):d.fmt.pal&&(this.addPaletteEditor(this.ensureFileDiv(t),y,d.fmt),this.registerAsset("palette",b,0),a++)}}return a}getFileDivId(t){return"__asset__"+ws(t)}refresh(t){if(t)this.maindiv.empty(),this.clearAssets(),pe.iterateFiles((a,u)=>{try{var d=this.refreshAssetsInFile(a,u)}catch(m){console.log(m),this.ensureFileDiv(a).text(m+"")}}),console.log("Found "+this.rootnodes.length+" assets"),this.deferrednodes.forEach(a=>{try{a.refreshRight()}catch(u){console.log(u),alert(u+"")}}),this.deferrednodes=[];else for(var i of this.rootnodes)i!==this.getCurrentEditNode()&&i.refreshRight()}setVisible(t){t?pn.bind&&pn.bind("ctrl+z",ge.undoStep.bind(ge)):pn.unbind&&pn.unbind("ctrl+z")}};var fi=256,Js=100,Ks=!1,di=class{constructor(t,i){this.expanded=!1;this.parent=t,this.name=i,this.children=new Map,this.level=t?t.level+1:-1,this.view=t?t.view:null}getDiv(){return this._div==null&&(this._div=document.createElement("div"),this._div.classList.add("vertical-scroll"),this._div.classList.add("tree-content"),this._header=document.createElement("div"),this._header.classList.add("tree-header"),this._header.classList.add("tree-level-"+this.level),this._header.append(this.name),this._inline=document.createElement("span"),this._inline.classList.add("tree-value"),this._header.append(this._inline),this._div.append(this._header),this.parent._content.append(this._div),this._header.onclick=t=>{this.toggleExpanded()}),this.expanded&&this._content==null?(this._content=document.createElement("div"),this._div.append(this._content)):!this.expanded&&this._content!=null&&(this._content.remove(),this._content=null,this.children.clear()),this._div}toggleExpanded(){this.expanded=!this.expanded,this.view.tick()}remove(){this._div.remove(),this._div=null}update(t){this.getDiv();var i="";if(t&&t.$$&&typeof t.$$=="function"&&this._content!=null&&(t=t.$$()),t==null)i=t+"";else if(typeof t=="number")t!=(t|0)?i=t.toString():i=t+" ($"+Fe(t)+")";else if(typeof t=="boolean")i=t.toString();else if(typeof t=="string")t.length<Js?i=t:i=t.substring(0,Js)+"...";else if(t.buffer&&t.length<=fi)i=_s(t,0,t.length);else if(typeof t=="object"||typeof t=="function")if(this._content!=null){if(t.slice&&t.length>fi){let b={},L=t;for(var a=fi;t.length/a>fi;)a*=2;for(let W=0;W<L.length;W+=a)b["$"+Fe(W)]={$$:()=>L.slice(W,W+a)};t=b}let m=t instanceof Array?Array.from(t.keys()):Object.getOwnPropertyNames(t);if(m.length>fi){let b={},L=t;for(var a=100;m.length/a>100;)a*=2;for(let ue=0;ue<m.length;ue+=a){for(var u={},d=ue;d<ue+a;d++)u[m[d]]=L[m[d]];b["["+ue+"...]"]=u}t=b,m=Object.getOwnPropertyNames(t)}let y=new Set(this.children.keys());m.forEach(b=>{var L=!Ks&&typeof b=="string"&&b.startsWith("$$");if(!L){let W=this.children.get(b);W==null&&(W=new di(this,b),this.children.set(b,W)),W.update(t[b])}y.delete(b)}),y.forEach(b=>{this.children.get(b).remove(),this.children.delete(b)}),this._header.classList.add("tree-expanded"),this._header.classList.remove("tree-collapsed")}else this._header.classList.add("tree-collapsed"),this._header.classList.remove("tree-expanded");else i=typeof t;this._inline.innerText!=i&&(this._inline.innerText=i)}};function Zs(l,t){var i=new di(null,null);i.view=t,i._content=l;var a=new di(i,"/");return a.expanded=!0,a.getDiv(),a._div.style.padding="0px",a}var eo=class{createDiv(t){return this.root=Zs(t,this),this.root.getDiv()}refresh(){this.tick()}tick(){this.root.update(this.getRootObject())}};var Ba=class extends eo{getRootObject(){return D.getDebugTree()}},Ha=class extends vr{constructor(){super(...arguments);this.cumulativeData=!0}createDiv(t){return this.clear(),this.treeroot=Zs(t,this),this.treeroot.getDiv()}refresh(){this.tick()}tick(){this.treeroot.update(this.getRootObject()),this.probe&&this.probe.clear()}clear(){this.graph=null,this.reset()}reset(){this.stack=[],this.lastsp=-1,this.lastpc=0,this.jsr=!1,this.rts=!1}newNode(t,i){return{$$SP:i,$$PC:t,count:0,startLine:null,endLine:null,calls:{}}}newRoot(t,i){this.stack.length==0?(this.graph=this.newNode(null,i),this.stack.unshift(this.graph)):i>this.stack[0].$$SP&&(this.graph=this.newNode(null,i),this.graph.calls[this.addr2str(t)]=this.stack[0],this.stack.unshift(this.graph))}getRootObject(){return this.redraw((t,i,a,u,d,m)=>{switch(t){case Z.SP_POP:this.newRoot(this.lastpc,this.lastsp);case Z.SP_PUSH:if(this.stack.length){let b=this.stack[this.stack.length-1];var y=this.lastsp-i;(y==2||y==3)&&i<b.$$SP&&(this.jsr=!0),(y==-2||y==-3)&&this.stack.length>1&&i>b.$$SP&&(this.rts=!0)}this.lastsp=i;break;case Z.EXECUTE:if(Math.abs(i-this.lastpc)>=4){if(this.jsr&&this.stack.length){let b=this.stack[this.stack.length-1],L=this.addr2str(i),W=b.calls[L];W==null?W=b.calls[L]=this.newNode(i,this.lastsp):W.$$PC==null&&(W.$$PC=i),this.stack.push(W),W.count++,W.startLine=u}this.jsr=!1,this.rts&&this.stack.length&&(this.stack.pop().endLine=u),this.rts=!1}this.lastpc=i;break}}),this.graph&&(this.graph.$$Stack=this.stack),Ks?this.graph:this.graph&&this.graph.calls}};var Ut=na(Qo()),ol=Xo(),ee=sa(window.location.search||"?"),hi=Lr(ee.electron),it=Lr(ee.embed),gn,ne,yr,Be,D,pi=$("#controls_top"),ze,pe,ge,nt,za,Ge,mn,Ye,lt,tr,gi,mi,vn=!1,Ir=!1,bn=null,to=null,Va=!1,ro="c.PC == 0x6000",ll={dasm:"6502",acme:"6502",cc65:"text/x-csrc",ca65:"6502",nesasm:"6502",z80asm:"z80",sdasz80:"z80",sdcc:"text/x-csrc",verilator:"verilog",jsasm:"z80",zmac:"z80",bataribasic:"bataribasic",markdown:"markdown",js:"javascript",xasm6809:"z80",cmoc:"text/x-csrc",yasm:"gas",smlrc:"text/x-csrc",inform6:"inform6",fastbasic:"fastbasic",basic:"basic",silice:"verilog",wiz:"text/x-wiz",vasmarm:"vasm",armips:"vasm",ecs:"ecs"};function vi(l,t,i,a){window.ga&&ga("send","event",l,t,i,a)}function Se(l){Oe(!1),bootbox.alert({title:'<span class="glyphicon glyphicon-alert" aria-hidden="true"></span> Alert',message:l})}function zt(l){Oe(!1),bootbox.alert(l)}function ul(l){throw Se(l),new Error(l)}function cl(){return new Worker("./gen/worker/bundle.js")}var Et=function(){try{let t="__some_random_key_you_are_not_going_to_use__";localStorage.setItem(t,t);var l=localStorage.getItem(t)==t;return localStorage.removeItem(t),l}catch(t){return!1}}(),io=class{setLastPreset(t){Et&&!it&&(Be&&ne&&!hi?localStorage.setItem("__lastrepo_"+ne,Be):localStorage.removeItem("__lastrepo_"+ne),localStorage.setItem("__lastplatform",ne),localStorage.setItem("__lastid_"+yr,t))}unsetLastPreset(){Et&&!it&&(delete ee.file,localStorage.removeItem("__lastid_"+yr))}getLastPreset(){return Et&&!it&&localStorage.getItem("__lastid_"+yr)}getLastPlatformID(){return Et&&!it&&localStorage.getItem("__lastplatform")}getLastRepoID(t){return Et&&!it&&t&&localStorage.getItem("__lastrepo_"+t)}shouldCompleteTour(){return Et&&!it&&!localStorage.getItem("8bitworkshop.hello")}completedTour(){Et&&!it&&localStorage.setItem("8bitworkshop.hello","true")}},xr=new io;function qa(l,t){navigator.storage&&navigator.storage.persist?navigator.storage.persist().then(i=>{console.log("requestPersistPermission =",i),i?l&&!t&&zt("Your browser says it will persist your local file edits, but you may want to back up your work anyway."):l&&Se("Your browser refused to expand the peristent storage quota. Your edits may not be preserved after closing the page.")}):l&&Se("Your browser may not persist edits after closing the page. Try a different browser.")}function fl(){return mn?mn.title||mn.name||pe.mainPath||"ROM":pe.mainPath||"ROM"}async function dl(){var l=new ha(ne);return hi?(console.log("using electron with local filesystem",alternateLocalFilesystem),new ai(l,alternateLocalFilesystem)):ee.localfs!=null?new ai(l,await Sl(ee.localfs)):new ai(l,new pa(Ye))}async function hl(){var l=await dl();pe=new ma(cl(),ne,D,l),ge=new ya($("#workspace")[0],pe),pe.callbackBuildResult=t=>{Zl(t)},pe.callbackBuildStatus=t=>{pl(t)}}function pl(l){l?pi.addClass("is-busy"):pi.removeClass("is-busy"),$("#compile_spinner").css("visibility",l?"visible":"hidden")}function bi(){var l=$("#windowMenuList").empty(),t=!1;function i(b,L,W){t&&(l.append(document.createElement("hr")),t=!1);var ue=document.createElement("li"),j=document.createElement("a");if(j.setAttribute("class","dropdown-item"),j.setAttribute("href","#"),j.setAttribute("data-wndid",b),b==ge.getActiveID()&&$(j).addClass("dropdown-item-checked"),j.appendChild(document.createTextNode(L)),ue.appendChild(j),l.append(ue),W){var U=(G,de)=>{l.find("a").removeClass("dropdown-item-checked"),$(j).addClass("dropdown-item-checked")};ge.setCreateFunc(b,W),ge.setShowFunc(b,U),$(j).click(G=>{ge.createOrShow(b),bn=b})}}function a(b){var L=D.getToolForFilename(b),W=L&&ll[L];return new li(b,W)}function u(b){i(b,wt(b),()=>{var L=pe.getFile(b);if(typeof L=="string")return a(b);if(L instanceof Uint8Array)return new Ta(b,L)})}u(pe.mainPath),pe.iterateFiles((b,L)=>{L&&b!=pe.mainPath&&u(b)}),t=!0;var d=pe.getListings();if(d)for(var m in d){var y=d[m];(y.assemblyfile&&y.assemblyfile.text||y.sourcefile&&y.sourcefile.text||y.text)&&i(m,wt(m),b=>new Sa(b))}t=!0,D.disassemble&&D.saveState&&i("#disasm","Disassembly",()=>new sn),D.readAddress&&i("#memory","Memory Browser",()=>new on),pe.segments&&pe.segments.length&&i("#memmap","Memory Map",()=>new Ca),D.readVRAMAddress&&i("#memvram","VRAM Browser",()=>new _a),D.startProbing&&(i("#memheatmap","Memory Probe",()=>new Pa),i("#crtheatmap","CRT Probe",()=>new Aa),i("#probelog","Probe Log",()=>new Da),i("#scanlineio","Scanline I/O",()=>new Fa),i("#symbolprobe","Symbol Profiler",()=>new La),i("#callstack","Call Stack",()=>new Ha)),D.getDebugTree&&i("#debugview","Debug Tree",()=>new Ba),i("#asseteditor","Asset Editor",()=>new ja)}function gl(l,t){if(t){var i=ee.highlight.split(","),a=parseInt(i[0])-1,u=parseInt(i[1])-1,d=ge.createOrShow(l);d.highlightLines(a,u)}}function no(l){bi(),ge.createOrShow(l),pe.setMainFile(l),gl(l,ee.highlight)}async function ml(l){pe.mainPath=l,xr.setLastPreset(l);var t=await pe.loadFiles([l]);if(wi=new Date,t&&t.length)no(l);else{var i=await vl(l);pe.filedata[l]=i||`
`,no(l),ee.newfile?qa(!0,!0):zt('Could not find file "'+l+'". Loading default file.'),delete ee.newfile,Sn()}}function Ga(l){if(l=="/")ee={repo:"/"};else if(l.indexOf("://")>=0){var t=nn(l);t&&(ee={repo:t.repopath})}else ee.platform=ne,ee.file=l;Mr()}async function vl(l){var t=D.getToolForFilename(l);try{return await $.get("presets/"+pt(ne)+"/skeleton."+t,"text")}catch(i){Se("Could not load skeleton for "+ne+"/"+t+"; using blank file")}}function Ya(l){return l.indexOf(" ")>=0?(Se("No spaces in filenames, please."),!1):!0}function bl(l){return bootbox.prompt({title:"Enter the name of your new main source file.",placeholder:"newfile"+D.getDefaultExtension(),callback:t=>{if(t&&t.trim().length>0){if(!Ya(t))return;t.indexOf(".")<0&&(t+=D.getDefaultExtension());var i=t;vi("workspace","file","new"),ee.newfile="1",Ga(i)}}}),!0}function yl(l){let t=$('<input type="file" multiple accept="*" style="display:none">'),i=t[0];t.change(a=>{xl(i.files)}),t.click()}function xl(l){console.log(l);var t=0;function i(){var a=l[t++];if(!a)console.log("Done uploading",t),t>2?(zt("Files uploaded."),setTimeout(xi,1e3)):(ee.file=l[0].name,bootbox.confirm({message:"Open '"+ee.file+"' as main project file?",buttons:{confirm:{label:"Open As New Project"},cancel:{label:"Include/Link With Project Later"}},callback:m=>{m?Mr():setTimeout(xi,1e3)}})),vi("workspace","file","upload");else{var u=a.name,d=new FileReader;d.onload=function(m){var y=m.target.result,b=new Uint8Array(y);mr(u,b)||(b=Qi(b).replace(`\r
`,`
`)),ge.updateFile(u,b),console.log("Uploaded "+u+" "+b.length+" bytes"),i()},d.readAsArrayBuffer(a)}}l&&i()}async function wl(l){var t=window.showDirectoryPicker;t||bootbox.alert("This browser can't open local files on your computer, yet. Try Chrome.");var i=await t(),a=i.name,u="__localfs__"+a,d={handle:i},m=Ua.createInstance({name:u,version:2});await m.setItem(u,d),ee={localfs:a},Mr(!0)}async function El(l){return new Promise((t,i)=>{bootbox.prompt(l,a=>{t(a)})})}async function Sl(l){let t={mode:"readwrite"};var i="__localfs__"+l,a=Ua.createInstance({name:i,version:2}),u=await a.getItem(i),d=u.handle;console.log(u,d);var m=await d.queryPermission(t);if(console.log(m),m!=="granted"&&(await El("Request permissions to access filesystem?"),m=await d.requestPermission(t)),m!=="granted"){bootbox.alert("Could not get permission to access filesystem.");return}return{getFileData:async y=>{console.log("getFileData",y);let b=await d.getFileHandle(y,{create:!1});console.log("getFileData",b);let L=await b.getFile();console.log("getFileData",L);let W=await(mr(y)?L.binary():L.text());return console.log(b,L,W),W},setFileData:async(y,b)=>{}}}function gt(){return wt(pe.mainPath)}function _l(){return wt(ge.getActiveID())}var Xa;function ao(l){for(var t=l+"=",i=document.cookie.split(";"),a=0;a<i.length;a++){for(var u=i[a];u.charAt(0)==" ";)u=u.substring(1,u.length);if(u.indexOf(t)==0)return u.substring(t.length,u.length)}return null}async function wr(){if(!Xa){await Ft("lib/octokat.js"),await Ft("https://www.gstatic.com/firebasejs/8.8.1/firebase-app.js"),await Ft("https://www.gstatic.com/firebasejs/8.8.1/firebase-auth.js"),await Ft("https://8bitworkshop.com/config.js");var l=ao("__github_key");Xa=new xa(Octokat,l,Ye,pe),console.log("loaded github service")}return Xa}function yi(){var l=(Be||"").split("/");return l.length!=2?(Se("<p>You are not in a GitHub repository.</p><p>Choose one from the pulldown, or Import or Publish one.</p>"),null):"https://github.com/"+l[0]+"/"+l[1]}async function Qa(l,t){var i,a=nn(l);if(!a){Se("Could not parse Github URL.");return}var u=si()[a.repopath];if(!(u&&!confirm("You've already imported "+a.repopath+" -- do you want to replace all local files?"))){Oe(!0);var d=va(a.repopath);qt(.25);var m=await wr();return m.import(l).then(y=>(i=y,qt(.75),m.pull(l,d))).then(y=>{ee={repo:i.repopath},Oe(!1),vi("sync","import",l),Mr(t)}).catch(y=>{Oe(!1),console.log(y),Se("<p>Could not import "+l+".</p>"+y)})}}async function Tl(l){var t=await wr();t.login().then(()=>{zt("You are signed in to Github.")}).catch(i=>{Se("<p>Could not sign in.</p>"+i)})}async function Cl(l){var t=await wr();t.logout().then(()=>{zt("You are logged out of Github.")})}function kl(l){var t=$("#importGithubModal"),i=$("#importGithubButton");t.modal("show"),i.off("click").on("click",()=>{var a=$("#importGithubURL").val()+"";t.modal("hide"),Qa(a,!1)})}function Pl(l){if(!(Be&&!confirm("This project ("+pe.mainPath+") is already bound to a Github repository. Do you want to re-publish to a new repository? (You can instead choose 'Push Changes' to update files in the existing repository.)"))){var t=$("#publishGithubModal"),i=$("#publishGithubButton");$("#githubRepoName").val(ht(wt(pe.mainPath))),t.modal("show"),i.off("click").on("click",async()=>{var a=$("#githubRepoName").val()+"",u=$("#githubRepoDesc").val()+"",d=$("#githubRepoPrivate").val()=="private",m=$("#githubRepoLicense").val()+"",y;if(!a){Se("You did not enter a project name.");return}t.modal("hide"),Oe(!0);var b=await wr();b.login().then(()=>(qt(.25),b.publish(a,u,m,d))).then(L=>(y=L,qt(.5),Be=ee.repo=y.repopath,so("initial import from 8bitworkshop.com"))).then(()=>{vi("sync","publish",d?"":a),Qa(y.url,!1)}).catch(L=>{Oe(!1),console.log(L),Se("Could not publish GitHub repository: "+L)})})}}function Al(l){var t=yi();if(!!t){var i=$("#pushGithubModal"),a=$("#pushGithubButton");i.modal("show"),a.off("click").on("click",()=>{var u=$("#githubCommitMsg").val()+"";i.modal("hide"),so(u)})}}function Dl(l){var t=yi();!t||bootbox.confirm("Pull from repository and replace all local files? Any changes you've made will be overwritten.",async i=>{if(i){Oe(!0);var a=await wr();a.pull(t).then(u=>{Oe(!1),ge.updateAllOpenWindows(Ye)})}})}function Fl(l){return new Promise((t,i)=>{var a=l.commit.files;if(console.log(a),a.length==0){Oe(!1),bootbox.alert("No files changed.");return}var u="";for(var d of a)u+=d.filename+": "+d.status,(d.additions||d.deletions||d.changes)&&(u+=" ("+d.additions+" additions, "+d.deletions+" deletions, "+d.changes+" changes)"),u+="<br/>";bootbox.confirm(u,m=>{m?t(l):Oe(!1)})})}async function so(l){var t=yi();if(!!t){var i=[];for(var a in pe.filedata){var u=pe.stripLocalPath(a),d=pe.filedata[a];u&&d&&i.push({path:u,data:d})}if(Ge instanceof Uint8Array){let y="bin/"+gt()+".rom";i.push({path:y,data:Ge})}Oe(!0);var m=await wr();return m.login().then(()=>(qt(.5),m.commit(t,l,i))).then(y=>Fl(y)).then(y=>m.push(y)).then(y=>(Oe(!1),zt("Pushed files to "+t),y)).catch(y=>{Oe(!1),console.log(y),Se("Could not push GitHub repository: "+y)})}}function Ll(){var l=yi();!l||bootbox.prompt("<p>Are you sure you want to delete this repository ("+l+") from browser storage?</p><p>All changes since last commit will be lost.</p><p>Type DELETE to proceed.<p>",t=>{t.trim().toUpperCase()=="DELETE"&&Rl()})}function Rl(){var l=yi(),t;Oe(!0),Ye.keys().then(i=>Promise.all(i.map(a=>Ye.removeItem(a)))).then(()=>(t=wr(),t.getGithubSession(l))).then(i=>{t.bind(i,!1)}).then(()=>{Oe(!1),ee={repo:"/"},Mr()})}function Il(l){return Ge==null?(Se("Please fix errors before sharing."),!0):Ge instanceof Uint8Array?(Ml(),Ft("lib/liblzg.js").then(()=>{var t=xs(window.Module,Array.from(Ge));window.Module=null;var i=btoa(Xi(t)),a={p:ne,r:i},u=$.param(a),d=Nl(u,"player.html"),m='<iframe width=640 height=600 src="'+d+'">';$("#embedLinkTextarea").text(d),$("#embedIframeTextarea").text(m),$("#embedLinkModal").modal("show"),$("#embedAdviceWarnAll").hide(),$("#embedAdviceWarnIE").hide(),d.length>=65536?$("#embedAdviceWarnAll").show():d.length>=5120&&$("#embedAdviceWarnIE").show()}),!0):(Se("Can't share a Verilog executable yet. (It's not actually a ROM...)"),!0)}function Ml(){console.log("clipboard"),import("./clipboard-JDH3YSSJ.js").then(l=>{let t=l.default;new t(".btn")})}function Nl(l,t){console.log(l);var i=window.location,a=i.pathname.replace("index.html",""),u=i.host=="8bitworkshop.com"?"https:":i.protocol,d=u+"//"+i.host+a+t+"?"+l;return d}function Ol(l){var t=lt&&lt.code_start;Ft("lib/c2t.js").then(()=>{var i="",a=function(ue){i+=ue+`
`},u=window.c2t({noInitialRun:!0,print:a,printErr:a}),d=u.FS,m=gt()+".bin",y=gt()+".wav";d.writeFile(m,Ge,{encoding:"binary"});var b=["-2bc",m+","+t.toString(16),y];u.callMain(b);var L=d.readFile(y,{encoding:"binary"});if(L){var W=new Blob([L],{type:"audio/wav"});(0,Ut.saveAs)(W,y),i+="Then connect your audio output to the cassette input, turn up the volume, and play the audio file.",zt('<pre style="white-space: pre-wrap">'+i+"</pre>")}})}function $l(l){Ft("lib/makewav.js").then(()=>{let t="",i=function(y){t+=y+`
`};var a=ht(gt());let u=a+".bin",d=a+".wav";window.makewav({noInitialRun:!1,print:i,printErr:i,arguments:["-ts","-f0","-v10",u],preRun:y=>{y.FS.writeFile(u,Ge,{encoding:"binary"})}}).ready.then(y=>{let b=[u];y.run(b),console.log(t);let W=y.FS.readFile(d,{encoding:"binary"});if(W){let ue=new Blob([W],{type:"audio/wav"});(0,Ut.saveAs)(ue,d),t+=`
Connect your audio output to the SuperCharger input, turn up the volume, and play the audio file.`,zt('<pre style="white-space: pre-wrap">'+t+"</pre>")}})})}function Wl(l){if(Ge==null)return Se("Please fix errors before exporting."),!0;var t;switch(pt(ne)){case"vcs":t=$l;break;case"apple2":t=Ol;break}if(t===void 0)return Se("Cassette export is not supported on this platform."),!0;t(l)}function jl(l){var t=ge.getActive();if(t&&t.setText){var i=ge.getActiveID();$.get("presets/"+pt(ne)+"/"+i,a=>{bootbox.confirm("Reset '"+i+"' to default?",u=>{u&&t.setText(a)})},"text").fail(()=>{Se(Be?"Can only revert built-in examples. If you want to revert all files, You can pull from the repository.":"Can only revert built-in examples.")})}else Se("Cannot revert the active window. Please choose a text file.")}function Bl(l){var t=ge.getActive();if(t&&t.getPath){var i=ge.getActiveID();bootbox.confirm("Delete '"+i+"'?",a=>{a&&Ye.removeItem(i).then(()=>{ee.file==i?(xr.unsetLastPreset(),Mr()):(xi(),zt("Deleted "+i))})})}else Se("Cannot delete the active window.")}function Hl(l){var t=ge.getActive();if(t&&t.getPath&&pe.getFile(t.getPath())){var i=ge.getActiveID();bootbox.prompt({title:"Rename '"+i+"' to?",value:i,callback:a=>{var u=pe.getFile(t.getPath());if(a&&a!=i&&u){if(!Ya(a))return;Ye.removeItem(i).then(()=>Ye.setItem(a,u)).then(()=>{xi(),alert("Renamed "+i+" to "+a),i==pe.mainPath&&Ga(a)})}}})}else Se("Cannot rename the active window.")}function Ul(l){if(Ge==null)return Se("Please finish compiling with no errors before downloading ROM."),!0;var t=ht(gt());if(D.getDownloadFile){var i=D.getDownloadFile(),t=ht(gt());(0,Ut.saveAs)(i.blob,t+i.extension)}else if(Ge instanceof Uint8Array){var a=new Blob([Ge],{type:"application/octet-stream"}),u=D.getROMExtension&&D.getROMExtension(Ge)||"-"+pt(ne)+".bin";(0,Ut.saveAs)(a,t+u)}else Se(`The "${ne}" platform doesn't have downloadable ROMs.`)}function zl(l){var t=ge.getCurrentText();if(!t)return!1;var i=new Blob([t],{type:"text/plain;charset=utf-8"});(0,Ut.saveAs)(i,_l(),{autoBom:!1})}async function oo(){let l=(await import("./jszip.min-SSIOTNUA.js")).default;return new l}async function Vl(l){var t=await oo();pe.iterateFiles((i,a)=>{a&&t.file(wt(i),a)}),t.generateAsync({type:"blob"}).then(i=>{(0,Ut.saveAs)(i,gt()+"-"+pt(ne)+".zip")})}function ql(l){let t=D.getDebugSymbolFile&&D.getDebugSymbolFile();if(!t){Se("This project does not have debug information.");return}var i=ht(gt());(0,Ut.saveAs)(t.blob,i+t.extension,{autoBom:!1})}async function Gl(l){var t=await oo(),i=await Ye.keys();Oe(!0);try{var a=0;await Promise.all(i.map(d=>Ye.getItem(d).then(m=>{qt(a++/(i.length+1)),m&&t.file(d,m)})));var u=await t.generateAsync({type:"blob"});(0,Ut.saveAs)(u,pt(ne)+"-all.zip")}finally{Oe(!1)}}function Yl(l){var t={};l.append($("<option />").text("--------- Examples ---------").attr("disabled","true"));for(var i=0;i<gn.length;i++){var a=gn[i],u=a.chapter?a.chapter+". "+a.name:a.name,d=a.id==pe.mainPath;l.append($("<option />").val(a.id).text(u).attr("selected",d?"selected":null)),d&&(mn=a),t[a.id]=u}return t}function Xl(l){if(Et&&!hi){var t=0,i=si();if(i)for(let u in i){var a=i[u];a.platform_id&&pt(a.platform_id)==pt(ne)&&(t++==0&&l.append($("<option />").text("------ Repositories ------").attr("disabled","true")),l.append($("<option />").val(a.url).text(a.url.substring(a.url.indexOf("/")))))}}}async function lo(l,t,i,a){var u=await Ye.keys(),d=0;u||(u=[]);for(var m=0;m<u.length;m++){var y=u[m];if(y.startsWith(i)&&!a[y]){d++==0&&l.append($("<option />").text("------- "+t+" -------").attr("disabled","true"));var b=y.substring(i.length);l.append($("<option />").val(y).text(b).attr("selected",y==pe.mainPath?"selected":null))}}}function uo(l){l.css("visibility","visible");var t=pe.mainPath;l.val()!=t&&l.append($("<option />").val(t).text(t).attr("selected","selected"))}async function xi(){var l=$("#preset_select").empty();if(Be)l.append($("<option />").val("/").text("Leave Repository")),$("#repo_name").text(wt(Be)+"/").show(),await lo(l,Be,"",{}),uo(l);else{Xl(l);var t=Yl(l);await lo(l,"Local Files","",t),uo(l)}l.off("change").change(function(i){Ga($(this).val().toString())})}function Ql(l){var t=$("<p/>");if(l.path!=null){var i=l.line?l.label?`(${l.path} @ ${l.label})`:`(${l.path}:${l.line})`:`(${l.path})`,a=$("<a/>").text(i),u=l.path;u==gt()&&(u=pe.mainPath),ge.isWindow(u)&&a.click(d=>{var m=ge.createOrShow(u);m instanceof li&&m.setCurrentLine(l,!0)}),t.append(a),t.append("&nbsp;")}return t.append($("<span/>").text(l.msg)),t}function co(){$("#error_alert").hide(),Va=!1}function Ja(l,t){var i=$("#error_alert_msg").empty();for(var a of l.slice(0,10))i.append(Ql(a));$("#error_alert").show(),Va=t}function fo(l,t){if(t!=null){var i={msg:t,line:0};l instanceof la&&l.$loc&&(i=Object.create(l.$loc),i.msg=t,console.log(i)),Ja([i],!0)}}var Jl=new Date,wi;function Kl(){if(window.ga&&wi){var l=new Date;ga("send","timing","load",ne,wi.getTime()-Jl.getTime()),ga("send","timing","build",ne,l.getTime()-wi.getTime()),wi=null}}async function Zl(l){if("errors"in l&&l.errors.length>0)pi.addClass("has-errors"),ge.setErrors(l.errors),bi(),Ja(l.errors,!1);else{if(pi.removeClass("has-errors"),ge.setErrors(null),co(),l==null||"unchanged"in l&&l.unchanged||!("output"in l))return;D.debugSymbols=new Cs(l.symbolmap,l.debuginfo),lt=l.params;var t=l.output;if(t!=null)try{Si(),bo(),await D.loadROM(fl(),t),Ge=t,za||Rt(),Kl(),Vu()}catch(i){console.log(i),pi.addClass("has-errors"),fo(i,i+""),Ge=null,bi();return}bi(),ge.refresh(!1)}}async function eu(){if(D.loadBIOS){var l=ne+".rom",t=await Ye.getItem(l);t instanceof Uint8Array?(console.log("loading BIOS",l,t.length+" bytes"),D.loadBIOS(l,t)):console.log("BIOS file must be binary")}}function ho(){var l=$("#mem_info");l.hide(),gi=null}function Ei(l){if(!!ks(D)){var t=$("#mem_info"),i=D.getDebugCategories();i&&!mi&&(mi=i[0]);var a=l&&D.getDebugInfo(mi,l);if(a){var u=gi?ys(gi,a):a;t.show().html(u);var d=$('<div class="mem_info_links">'),m=b=>{var L=$("<a>"+b+"</a>");b==mi&&L.addClass("selected"),L.click(W=>{mi=b,gi=null,Ei(tr)}),d.append(L),d.append("<span> </span>")};for(var y of i)m(y);t.append("<br>"),t.append(d),gi=a}else ho()}}function yn(l,t){$("#debug_bar, #run_bar").find("button").removeClass("btn_active").removeClass("btn_stopped"),$("#dbg_"+l).addClass("btn_"+t)}function Ka(){return D&&Ge!=null}function Pt(){return Ka()?!0:(Se("Can't do this until build successfully completes."),!1)}function tu(l){if(bn&&bn.startsWith("#")||["toline","restart","tovsync","stepover"].includes(to)||!D.disassemble)return;let t=pe.getListings(),i="#disasm",a=256;if(t){let u=l.c?l.c.EPC||l.c.PC:0;for(let d in t){let m=t[d],y=m.assemblyfile||m.sourcefile,b=pe.filename2path[d]||d;if(y==m.sourcefile&&(b=ge.findWindowWithFilePrefix(d)),ge.isWindow(b)){let L=y&&y.findLineForOffset(u,an);if(L){let W=y.lines[L.line+1];if(!W||u<W.offset){let ue=u-L.offset;ue<a&&(i=b,a=ue)}}}}}ge.createOrShow(i,!0)}function xn(l){tr=l,Ei(l),tu(l),ge.refresh(!0),vn=!0}function po(l){D.setupDebug&&(D.setupDebug((t,i)=>{xn(t),yn(l||"pause","stopped"),i&&Ja([{msg:"STOPPED: "+i,line:0}],!0)}),to=l)}function Lt(l){!Pt()||(ts(),po(l),l&&yn(l,"active"))}function Vt(){D&&D.isRunning()&&(D.pause(),console.log("Paused")),yn("pause","stopped")}function ru(){!Pt()||(Si(),Vt(),za=!0)}function Rt(){D.isRunning()||(D.resume(),console.log("Resumed")),yn("go","active"),Va&&co()}function go(){!Pt()||(Si(),D.isRunning()||ge.refresh(!1),Rt(),za=!1,bn=null)}function iu(){!Pt()||(Lt("step"),D.step())}function nu(){!Pt()||(Lt("stepover"),D.stepOver())}function au(){!Pt()||(Lt("tovsync"),D.runToVsync())}function mo(){var l=ge.getActive();return l&&l.getCursorPC&&l.getCursorPC()}function ui(l){!Pt()||!(l>=0)||(Lt("toline"),console.log("Run to",l.toString(16)),D.runToPC?D.runToPC(l):D.runEval(t=>t.PC==l))}function su(){D.restartAtPC(mo())?go():Se("Could not restart program at selected line.")}function ou(){ui(mo())}function lu(){!Pt()||(Lt("stepout"),D.runUntilReturn())}function uu(){!Pt()||(Lt("stepback"),D.stepBack())}function Si(){tr=null,D.clearDebug&&D.clearDebug(),po(),Ei()}function Za(){D.reset(),bo()}function cu(){!Pt()||(Si(),Za(),Rt())}function fu(){if(!!Pt()){var l=Ir;ts(),D.setupDebug&&D.runEval?(Si(),Rt(),Za(),Lt("restart"),D.runEval(t=>!0)):(Za(),Rt()),l&&yo()}}function du(){var l=$("#debugExprModal"),t=$("#debugExprSubmit");$("#debugExprInput").val(ro),$("#debugExprExamples").text(hu()),l.modal("show"),t.off("click").on("click",()=>{var i=$("#debugExprInput").val()+"";l.modal("hide"),pu(i)})}function hu(){var l=D.saveState&&D.saveState(),t=l.c;console.log(t,l);var i="";return t.PC&&(i+="c.PC == 0x"+Fe(t.PC)+`
`),t.SP&&(i+="c.SP < 0x"+Fe(t.SP)+`
`),t.HL&&(i+=`c.HL == 0x4000
`),D.readAddress&&(i+=`this.readAddress(0x1234) == 0x0
`),D.readVRAMAddress&&(i+=`this.readVRAMAddress(0x1234) != 0x80
`),D.getRasterScanline&&(i+=`this.getRasterScanline() > 222
`),i}function pu(l){var t=new Function("c","return ("+l+");").bind(D);Lt(),D.runEval(t),ro=l}function vo(){D.isRunning()?(ge.tick(),vn=!1):vn||(ge.tick(),vn=!0),setTimeout(vo,100)}function Oe(l){l?(qt(0),$("#pleaseWaitModal").modal("show")):(qt(1),$("#pleaseWaitModal").modal("hide"))}function qt(l){$("#pleaseWaitProgressBar").css("width",l*100+"%").show()}var es=!1;function gu(){es||Ft("lib/gif.js").then(()=>{var l=$("#emulator").find("canvas")[0];if(!l){Se("Could not find canvas element to record video!");return}var t=0;l.style&&l.style.transform&&(l.style.transform.indexOf("rotate(-90deg)")>=0?t=-1:l.style.transform.indexOf("rotate(90deg)")>=0&&(t=1));var i=new GIF({workerScript:"lib/gif.worker.js",workers:4,quality:10,rotate:t}),a=$("#videoPreviewImage");i.on("progress",b=>{qt(b)}),i.on("finished",b=>{a.attr("src",URL.createObjectURL(b)),Oe(!1),Rt(),$("#videoPreviewModal").modal("show")});var u=20,d=300,m=0;console.log("Recording video",l),$("#emulator").css("backgroundColor","#cc3333");var y=()=>{m++>d?(console.log("Rendering video"),$("#emulator").css("backgroundColor","inherit"),Oe(!0),Vt(),i.render(),es=!1):(i.addFrame(l,{delay:u,copy:!0}),setTimeout(y,u),es=!0)};y()})}function wn(l){D.setFrameRate(l),l>.01?$("#fps_label").text(l.toFixed(2)):$("#fps_label").text("1/"+Math.round(1/l))}function mu(){var l=D.getFrameRate();l=l/2,l>1e-5&&wn(l)}function vu(){var l=D.getFrameRate();l=Math.min(60,l*2),wn(l)}function bu(){wn(60/65536)}function yu(){Rt(),wn(60)}function xu(){ge.refresh(!1);var l=ge.getActive();if(l.getSourceFile&&l.setTimingResult){var t=D.newCodeAnalyzer();t.showLoopTimingForPC(0),l.setTimingResult(t)}}function ts(){Ir&&(D.setRecorder(null),$("#dbg_record").removeClass("btn_recording"),$("#replaydiv").hide(),ho(),Ir=!1)}function bo(){Ir&&nt.reset()}function yo(){nt.reset(),D.setRecorder(nt),$("#dbg_record").addClass("btn_recording"),$("#replaydiv").show(),Ir=!0}function wu(){Ir?ts():yo()}function Eu(){if(D.showHelp){let l=D.getToolForFilename(pe.mainPath);D.showHelp(l)}}function rr(l,t,i){var a=ge.getActive();a&&a.insertText?bootbox.prompt({title:"Add "+l+" File to Project",value:"filename"+t,callback:u=>{if(u&&u.trim().length>0){if(!Ya(u))return;var d=u,m=`
`+i(u)+`
`;pe.loadFiles([d]).then(y=>{y&&y.length?Se(u+" already exists; including anyway"):pe.updateFile(d,`
`),a.insertText(m),bi()})}}}):Se("Can't insert text in this window -- switch back to main file")}function Su(){var l=gt(),t=D.getToolForFilename(l);l.endsWith(".c")||t=="sdcc"||t=="cc65"||t=="cmoc"||t=="smlrc"?rr("Header",".h",i=>'#include "'+i+'"'):t=="dasm"||t=="zmac"?rr("Include",".inc",i=>' include "'+i+'"'):t=="ca65"||t=="sdasz80"||t=="vasm"||t=="armips"?rr("Include",".inc",i=>' .include "'+i+'"'):t=="verilator"?rr("Verilog",".v",i=>'`include "'+i+'"'):t=="wiz"?rr("Include",".wiz",i=>'import "'+i+'";'):t=="ecs"?rr("Include",".ecs",i=>'import "'+i+'"'):Se("Can't add include file to this project type ("+t+")")}function _u(){var l=gt(),t=D.getToolForFilename(l);l.endsWith(".c")||t=="sdcc"||t=="cc65"||t=="cmoc"||t=="smlrc"?rr("Linked C (or .s)",".c",i=>'//#link "'+i+'"'):l.endsWith("asm")||l.endsWith(".s")||t=="ca65"||t=="lwasm"?rr("Linked ASM",".inc",i=>';#link "'+i+'"'):Se("Can't add linked file to this project type ("+t+")")}function Tu(){ze=new en($("#toolbar")[0],null),ze.grp.prop("id","run_bar"),ze.add("ctrl+alt+r","Reset","glyphicon-refresh",cu).prop("id","dbg_reset"),ze.add("ctrl+alt+,","Pause","glyphicon-pause",ru).prop("id","dbg_pause"),ze.add("ctrl+alt+.","Resume","glyphicon-play",go).prop("id","dbg_go"),D.restartAtPC&&ze.add("ctrl+alt+/","Restart at Cursor","glyphicon-play-circle",su).prop("id","dbg_restartatline"),ze.newGroup(),ze.grp.prop("id","debug_bar"),D.runEval&&ze.add("ctrl+alt+e","Reset and Debug","glyphicon-fast-backward",fu).prop("id","dbg_restart"),D.stepBack&&ze.add("ctrl+alt+b","Step Backwards","glyphicon-step-backward",uu).prop("id","dbg_stepback"),D.step&&ze.add("ctrl+alt+s","Single Step","glyphicon-step-forward",iu).prop("id","dbg_step"),D.stepOver&&ze.add("ctrl+alt+t","Step Over","glyphicon-hand-right",nu).prop("id","dbg_stepover"),D.runUntilReturn&&ze.add("ctrl+alt+o","Step Out of Subroutine","glyphicon-hand-up",lu).prop("id","dbg_stepout"),D.runToVsync&&ze.add("ctrl+alt+n","Next Frame/Interrupt","glyphicon-forward",au).prop("id","dbg_tovsync"),(D.runEval||D.runToPC)&&!ne.startsWith("verilog")&&ze.add("ctrl+alt+l","Run To Line","glyphicon-save",ou).prop("id","dbg_toline"),ze.newGroup(),ze.grp.prop("id","xtra_bar"),$(".dropdown-menu").collapse({toggle:!1}),$("#item_new_file").click(bl),$("#item_upload_file").click(yl),$("#item_open_directory").click(wl),$("#item_github_login").click(Tl),$("#item_github_logout").click(Cl),$("#item_github_import").click(kl),$("#item_github_publish").click(Pl),$("#item_github_push").click(Al),$("#item_github_pull").click(Dl),$("#item_repo_delete").click(Ll),$("#item_share_file").click(Il),$("#item_reset_file").click(jl),$("#item_rename_file").click(Hl),$("#item_delete_file").click(Bl),D.runEval?$("#item_debug_expr").click(du).show():$("#item_debug_expr").hide(),$("#item_download_rom").click(Ul),$("#item_download_file").click(zl),$("#item_download_zip").click(Vl),$("#item_download_sym").click(ql),$("#item_download_allzip").click(Gl),$("#item_record_video").click(gu),ne.startsWith("apple2")||ne.startsWith("vcs")?$("#item_export_cassette").click(Wl):$("#item_export_cassette").hide(),D.setFrameRate&&D.getFrameRate&&($("#dbg_slower").click(mu),$("#dbg_faster").click(vu),$("#dbg_slowest").click(bu),$("#dbg_fastest").click(yu)),$("#item_addfile_include").click(Su),$("#item_addfile_link").click(_u),$("#item_request_persist").click(()=>qa(!0,!1)),vo(),D.showHelp&&ze.add("ctrl+alt+?","Show Help","glyphicon-question-sign",Eu),D.newCodeAnalyzer&&ze.add(null,"Analyze CPU Timing","glyphicon-time",xu),D.setRecorder&&D.advance&&Cu()}function Cu(){var l=$("#replayslider"),t=$("#clockslider"),i=$("#replay_frame"),a=$("#replay_clock");D.advanceFrameClock||$("#clockdiv").hide();var u=()=>{i.text(nt.lastSeekFrame+""),a.text(nt.lastSeekStep+"")},d=b=>{Vt();var L=parseInt(l.val().toString()),W=parseInt(t.val().toString());nt.loadFrame(L,W)>=0&&(t.attr("min",0),t.attr("max",nt.lastStepCount),u(),xn(D.saveState()))},m=b=>{Vt(),nt.loadFrame(b)>=0&&(l.val(b),u(),xn(D.saveState()))},y=b=>{Vt();var L=parseInt(l.val().toString());nt.loadFrame(L,b)>=0&&(t.val(b),u(),xn(D.saveState()))};nt.callbackStateChanged=()=>{l.attr("min",0),l.attr("max",nt.numFrames()),l.val(nt.currentFrame()),t.val(nt.currentStep()),u(),Ei(D.saveState())},l.on("input",d),t.on("input",d),$("#replay_min").click(()=>{m(1)}),$("#replay_max").click(()=>{m(nt.numFrames())}),$("#replay_back").click(()=>{m(parseInt(l.val().toString())-1)}),$("#replay_fwd").click(()=>{m(parseInt(l.val().toString())+1)}),$("#clock_back").click(()=>{y(parseInt(t.val().toString())-1)}),$("#clock_fwd").click(()=>{y(parseInt(t.val().toString())+1)}),$("#replay_bar").show(),ze.add("ctrl+alt+0","Start/Stop Replay Recording","glyphicon-record",wu).prop("id","dbg_record")}function ku(){try{var l=window.screen.orientation||window.screen.msOrientation||window.screen.mozOrientation||null;if(l){if(l.type.indexOf("landscape")!==-1)return!0;if(l.type.indexOf("portrait")!==-1)return!1}if("orientation"in window){var t=window.orientation;if(t===0||t===180)return!1;if(t===90||t===270)return!0}}catch(i){}return window.innerWidth>window.innerHeight}async function Pu(){if(xr.shouldCompleteTour()){await Ft("lib/bootstrap-tourist.js");var l=ne.startsWith("vcs"),t=[{element:"#platformsMenuButton",placement:"right",title:"Platform Selector",content:`You're currently on the "<b>`+ne+'</b>" platform. You can choose a different one from the menu.'},{element:"#preset_select",title:"Project Selector",content:"You can choose different code examples, create your own files, or import projects from GitHub."},{element:"#workspace",title:"Code Editor",content:l?"Type your 6502 assembly code into the editor, and it'll be assembled in real-time.":"Type your source code into the editor, and it'll be compiled in real-time."},{element:"#emulator",placement:"left",title:"Emulator",content:"We'll load your compiled code into the emulator whenever you make changes."},{element:"#debug_bar",placement:"bottom",title:"Debug Tools",content:"Use these buttons to set breakpoints, single step through code, pause/resume, and use debugging tools."},{element:"#dropdownMenuButton",title:"Main Menu",content:"Click the menu to create new files, download your code, or share your work with others."},{element:"#sidebar",title:"Sidebar",content:"Pull right to expose the sidebar. It lets you switch between source files, view assembly listings, and use other tools like Disassembler, Memory Browser, and Asset Editor."}];ku()||t.unshift({element:"#controls_top",placement:"bottom",title:"Portrait mode detected",content:"This site works best on desktop browsers. For best results, rotate your device to landscape orientation."}),window.location.host.endsWith("8bitworkshop.com")&&(t.unshift({element:"#dropdownMenuButton",placement:"right",title:"Cookie Consent",content:'Before we start, we should tell you that this website stores cookies and other data in your browser. You can review our <a href="/privacy.html" target="_new">privacy policy</a>.'}),t.push({element:"#booksMenuButton",placement:"left",title:"Books",content:"Get some books that explain how to program all of this stuff, and write some games!"})),hi&&(t.unshift({element:"#dropdownMenuButton",placement:"right",title:"Developer Analytics",content:"BTW, we send stack traces to sentry.io when exceptions are thrown. Hope that's ok."}),t.unshift({element:"#dropdownMenuButton",placement:"right",title:"Welcome to 8bitworkshop Desktop!",content:'The directory "~/8bitworkshop" contains all of your file edits and built ROM images. You can create new projects under the platform directories (e.g. "c64/myproject")'}));var i=new Tour({autoscroll:!1,steps:t,onEnd:()=>{xr.completedTour()}});setTimeout(()=>{i.start()},2500)}}function En(l){var t=(l.message||l.error||l)+"";if(t.indexOf("QuotaExceededError")>=0)qa(!1,!1);else{var i=l.error||l.reason;i!=null&&i instanceof la&&Au(i)}}function Au(l){console.log("haltEmulation"),Vt(),zu(l)}function Du(){window.addEventListener("error",En),window.addEventListener("unhandledrejection",En)}function xo(){window.removeEventListener("error",En),window.removeEventListener("unhandledrejection",En)}function Mr(l){xo(),l?window.location.replace("?"+$.param(ee)):window.location.href="?"+$.param(ee)}function Sn(){ne&&(ee.platform=ne),delete ee[""],history.replaceState({},"","?"+$.param(ee))}function Fu(){var l=!1;document.addEventListener("visibilitychange",()=>{document.visibilityState=="hidden"&&D&&D.isRunning()?(Vt(),l=!0):document.visibilityState=="visible"&&l&&(Rt(),l=!1)}),$(window).on("focus",()=>{l&&(Rt(),l=!1)}),$(window).on("blur",()=>{D&&D.isRunning()&&(Vt(),l=!0)}),$(window).on("orientationchange",()=>{D&&D.resize&&setTimeout(D.resize.bind(D),200)})}function Lu(){var l=$(document).find(".emucontrols-"+Fr(ne));ne.endsWith(".mame")&&l.show();var t=$("#emulator").find("canvas");t&&(t.on("focus",()=>{D.isRunning()&&(l.fadeIn(200),D.resume())}),t.on("blur",()=>{l.fadeOut(200)}))}function Ru(){window.ga&&($(".dropdown-item").click(l=>{l.target&&l.target.id&&vi("menu",l.target.id)}),ga("send","pageview",location.pathname+"?platform="+ne+(Be?"&repo="+Be:"&file="+ee.file)))}async function Iu(){if(!oa[ne])throw Error("Invalid platform '"+ne+"'.");let l=$("#emuscreen")[0],t=sa(ee.options||"");if(D=new oa[ne](l,t),ju(),nt=new As(D),gn=D.getPresets?D.getPresets():[],!ee.file){var i=xr.getLastPreset(),a=i||(Be?null:gn[0].id);ee.file=a||"DEFAULT",a||Se("There is no default main file for this project. Try selecting one from the pulldown.")}ne=="vcs"&&ee.file.startsWith("examples/")&&!ee.file.endsWith(".a")&&(ee.file+=".a"),Sn(),Du(),Ru(),await D.start(),await eu(),await hl(),await ml(ee.file),D.sourceFileFetch=u=>pe.filedata[u],Tu(),Fu(),Lu(),it?Mu():(xi(),Nu(),Pu()),wo()}function Mu(){$("#dropdownMenuButton").hide(),$("#platformsMenuButton").hide(),$("#booksMenuButton").hide()}function Nu(){Fr(ne)=="nes"?$(".book-nes").addClass("book-active"):Fr(ne)=="vcs"?$(".book-vcs").addClass("book-active"):Fr(ne)=="verilog"?$(".book-verilog").addClass("book-active"):D.getToolForFilename(gt())=="sdcc"&&$(".book-arcade").addClass("book-active")}function wo(){setTimeout(()=>{$("#controls_dynamic").css("visibility","inherit")},250)}function Ou(){var l="workspace-split3-"+ne;it&&(l="embed-"+l);var t;ne.startsWith("vcs")?t=[0,50,50]:it||oi?t=[0,55,45]:t=[12,44,44];var i=Et&&localStorage.getItem(l);if(i)try{t=JSON.parse(i)}catch(u){console.log(u)}var a=ol(["#sidebar","#workspace","#emulator"],{sizes:t,minSize:[0,250,250],onDrag:()=>{D&&D.resize&&D.resize()},onDragEnd:()=>{Et&&localStorage.setItem(l,JSON.stringify(a.getSizes())),ge&&ge.resize()}})}function $u(l){let t=Lr(ee.ignore)||it;Oe(!0),Ki(l,async i=>{if(i){var a=wt(l);console.log("Importing "+i.length+" bytes as "+a);try{var u=await Ye.getItem(a);Oe(!1),u!=null&&t||(u==null||confirm("Replace existing file '"+a+"'?"))&&await Ye.setItem(a,i),delete ee.importURL,ee.file=a,Sn(),So()}finally{Oe(!1)}}else Se("Could not load source code from URL: "+l),Oe(!1)},"text")}async function Wu(){var l=Lr(ee.ignore),t=Lr(ee.force);it?l=!t:t=!1;for(var i=0;i<20;i++){let u=ee["file"+i+"_name"],d=ee["file"+i+"_data"];if(u==null||d==null)break;var a=await Ye.getItem(u);if(!(l&&a)){let m=d;ee["file"+i+"_type"]=="binary"&&(m=Yi(atob(m))),(!a||t||confirm("Replace existing file '"+u+"'?"))&&await Ye.setItem(u,m)}i==0&&(ee.file=u),delete ee["file"+i+"_name"],delete ee["file"+i+"_data"],delete ee["file"+i+"_type"]}delete ee.ignore,delete ee.force,Sn()}function ju(){var l=D.getPlatformName&&D.getPlatformName(),t=$('a[href="?platform='+ne+'"]');t.length&&(t.addClass("dropdown-item-checked"),l=l||t.text()||l),$(".platform_name").text(l||ne)}function Bu(){if(ne=ee.platform||xr.getLastPlatformID(),Be=ee.repo,!ee.repo&&!ee.file&&(Be=xr.getLastRepoID(ne)),Et&&Be&&Be!=="/"){var l=si()[Be];l&&(console.log(ne,ee,l),ee.repo=Be,l.platform_id&&!ee.platform&&(ee.platform=ne=l.platform_id),!ee.file&&l.mainPath&&(ee.file=l.mainPath))}else Be="",delete ee.repo;ne||(it&&ul("The 'platform' must be specified when embed=1"),ne=ee.platform="vcs")}async function Eo(){if(ee.githubURL){Qa(ee.githubURL,!0);return}if(Bu(),Ou(),yr=Be||pt(ne),it&&(yr=(document.referrer||document.location.href)+yr),Ye=va(yr),ee.importURL){$u(ee.importURL);return}ee.file0_name&&await Wu(),So()}async function So(){try{var l=await Ds(Fr(ne));console.log("starting platform",ne),await Iu(),document.title=document.title+" ["+ne+"] - "+(Be?"["+Be+"] - ":"")+pe.mainPath}catch(t){console.log(t),Se('Platform "'+ne+'" failed to load.')}finally{wo()}}var rs="__use_https";function _o(l){document.cookie=rs+"="+l+";domain=8bitworkshop.com;path=/;max-age=315360000"}function Hu(){var l=ao(rs);if(typeof l=="string")return!!l;var t=Et&&!localStorage.getItem("__lastplatform")?1:0;return _o(t),!!t}function Uu(){bootbox.confirm('<p>Do you want to force the browser to use HTTPS from now on?</p><p>WARNING: This will make all of your local files unavailable, so you should "Download All Changes" first for each platform where you have done work.</p><p>You can go back to HTTP by setting the "'+rs+'" cookie to 0.</p>',l=>{l&&(_o(1),To())})}function To(){window.location.protocol=="http:"&&window.location.host=="8bitworkshop.com"&&(Hu()?(xo(),window.location.replace(window.location.href.replace(/^http:/,"https:"))):$("#item_switch_https").click(Uu).show())}To();function mf(l,t){D.writeFile(l,t)}function vf(l){return D.readFile(l)}function bf(){return D.saveState()}function zu(l){var t=l&&l.message||t;fo(l,t),ge.refresh(!1),D.saveState&&Ei(D.saveState())}async function yf(l){var t=pe.filedata[l];t!=null&&(ge.updateFile(l,await alternateLocalFilesystem.getFileData(l)),console.log("updating file",l))}function Vu(){if(hi&&Ge instanceof Uint8Array){var l=ht(gt()),t=D.getROMExtension&&D.getROMExtension(Ge)||"-"+pt(ne)+".bin";alternateLocalFilesystem.setFileData(`bin/${l}${t}`,Ge)}}function xf(l){var t=ge.getActive();if(t instanceof li){var i=t.editor.getSearchCursor(l);i.findNext()&&t.editor.setSelection(i.pos.to,i.pos.from)}}function qu(){let l=!1;new IntersectionObserver((i,a)=>{for(var u of i)u.isIntersecting&&!l&&(Eo(),l=!0),u.intersectionRatio==0&&Ka()&&D.isRunning()&&Vt(),u.intersectionRatio>0&&Ka()&&!D.isRunning()&&Rt()},{}).observe($("#emulator")[0])}typeof process=="undefined"&&(it&&typeof IntersectionObserver=="function"?qu():Eo());export{Ws as a,ee as b,ne as c,yr as d,Be as e,D as f,pe as g,ge as h,lt as i,tr as j,Lt as k,ui as l,Si as m,wn as n,Au as o,Ou as p,Bu as q,Eo as r,mf as s,vf as t,bf as u,zu as v,yf as w,xf as x};
/*!
localForage -- Offline Storage, Improved
Version 1.10.0
https://localforage.github.io/localForage
(c) 2013-2017 Mozilla, Apache License 2.0
*/
/*!
* jQuery JavaScript Library v3.6.0
* https://jquery.com/
*
* Includes Sizzle.js
* https://sizzlejs.com/
*
* Copyright OpenJS Foundation and other contributors
* Released under the MIT license
* https://jquery.org/license
*
* Date: 2021-03-02T17:08Z
*/
//# sourceMappingURL=chunk-A3GHABOL.js.map